@flusys/ng-storage 4.1.1 → 5.0.1

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 (24) hide show
  1. package/README.md +17 -382
  2. package/fesm2022/{flusys-ng-storage-file-manager-form.component-AM7JE-s5.mjs → flusys-ng-storage-file-manager-form.component-BLJDAvBX.mjs} +287 -74
  3. package/fesm2022/flusys-ng-storage-file-manager-form.component-BLJDAvBX.mjs.map +1 -0
  4. package/fesm2022/{flusys-ng-storage-file-manager-list.component-bj6oOzOL.mjs → flusys-ng-storage-file-manager-list.component-Dn5hVksO.mjs} +210 -70
  5. package/fesm2022/flusys-ng-storage-file-manager-list.component-Dn5hVksO.mjs.map +1 -0
  6. package/fesm2022/{flusys-ng-storage-folder-form.component-Cc2ybTwu.mjs → flusys-ng-storage-folder-form.component-B8vRSb1T.mjs} +88 -31
  7. package/fesm2022/flusys-ng-storage-folder-form.component-B8vRSb1T.mjs.map +1 -0
  8. package/fesm2022/{flusys-ng-storage-folder-list.component-B2Q41I1g.mjs → flusys-ng-storage-folder-list.component-B4yCKvAV.mjs} +96 -30
  9. package/fesm2022/flusys-ng-storage-folder-list.component-B4yCKvAV.mjs.map +1 -0
  10. package/fesm2022/flusys-ng-storage-storage-config-form.component-CMeTif8p.mjs +880 -0
  11. package/fesm2022/flusys-ng-storage-storage-config-form.component-CMeTif8p.mjs.map +1 -0
  12. package/fesm2022/{flusys-ng-storage-storage-config-list.component-DBH_qf9o.mjs → flusys-ng-storage-storage-config-list.component-C7OYYyrQ.mjs} +126 -33
  13. package/fesm2022/flusys-ng-storage-storage-config-list.component-C7OYYyrQ.mjs.map +1 -0
  14. package/fesm2022/flusys-ng-storage.mjs +143 -256
  15. package/fesm2022/flusys-ng-storage.mjs.map +1 -1
  16. package/package.json +4 -4
  17. package/types/flusys-ng-storage.d.ts +4 -2
  18. package/fesm2022/flusys-ng-storage-file-manager-form.component-AM7JE-s5.mjs.map +0 -1
  19. package/fesm2022/flusys-ng-storage-file-manager-list.component-bj6oOzOL.mjs.map +0 -1
  20. package/fesm2022/flusys-ng-storage-folder-form.component-Cc2ybTwu.mjs.map +0 -1
  21. package/fesm2022/flusys-ng-storage-folder-list.component-B2Q41I1g.mjs.map +0 -1
  22. package/fesm2022/flusys-ng-storage-storage-config-form.component-a88XhuPH.mjs +0 -465
  23. package/fesm2022/flusys-ng-storage-storage-config-form.component-a88XhuPH.mjs.map +0 -1
  24. package/fesm2022/flusys-ng-storage-storage-config-list.component-DBH_qf9o.mjs.map +0 -1
@@ -38,7 +38,9 @@ class FileManagerFormComponent extends BaseStoragePage {
38
38
  storageConfigId: '',
39
39
  }, ...(ngDevMode ? [{ debugName: "formModel" }] : []));
40
40
  fileForm = form(this.formModel, (f) => {
41
- required(f.name, { message: this.translateService.translate('storage.validation.file.name.required') });
41
+ required(f.name, {
42
+ message: this.translateService.translate('storage.validation.file.name.required'),
43
+ });
42
44
  });
43
45
  isFormValid = computed(() => this.formModel().name.trim().length > 0, ...(ngDevMode ? [{ debugName: "isFormValid" }] : []));
44
46
  constructor() {
@@ -61,22 +63,22 @@ class FileManagerFormComponent extends BaseStoragePage {
61
63
  async loadStorageConfigs() {
62
64
  this.isLoadingConfigs.set(true);
63
65
  try {
64
- const response = await firstValueFrom(this.configService.getAll('', {
66
+ const response = await this.configService.getAll({
65
67
  pagination: { currentPage: 0, pageSize: 100 },
66
68
  filter: {},
67
69
  select: [],
68
70
  sort: {},
69
- }));
71
+ });
70
72
  if (response.success && response.data) {
71
73
  this.availableConfigs.set(response.data);
72
74
  if (response.data.length === 1) {
73
- this.formModel.update((m) => ({ ...m, storageConfigId: response.data[0].id }));
75
+ this.formModel.update((m) => ({
76
+ ...m,
77
+ storageConfigId: response.data[0].id,
78
+ }));
74
79
  }
75
80
  }
76
81
  }
77
- catch {
78
- this.showError(this.translateService.translate('storage.config.load.failed'));
79
- }
80
82
  finally {
81
83
  this.isLoadingConfigs.set(false);
82
84
  }
@@ -84,12 +86,12 @@ class FileManagerFormComponent extends BaseStoragePage {
84
86
  async loadFolders() {
85
87
  this.isLoadingFolders.set(true);
86
88
  try {
87
- const response = await firstValueFrom(this.folderService.getAll('', {
89
+ const response = await this.folderService.getAll({
88
90
  pagination: { currentPage: 0, pageSize: 100 },
89
91
  filter: {},
90
92
  select: [],
91
93
  sort: {},
92
- }));
94
+ });
93
95
  if (response.success && response.data) {
94
96
  this.availableFolders.set(response.data);
95
97
  }
@@ -104,7 +106,7 @@ class FileManagerFormComponent extends BaseStoragePage {
104
106
  async loadFile(id) {
105
107
  this.isLoading.set(true);
106
108
  try {
107
- const response = await this.fileService.findByIdAsync(id);
109
+ const response = await this.fileService.findById(id);
108
110
  if (response.success && response.data) {
109
111
  const file = response.data;
110
112
  this.existingFile.set(file);
@@ -118,7 +120,6 @@ class FileManagerFormComponent extends BaseStoragePage {
118
120
  }
119
121
  }
120
122
  catch {
121
- this.showError(this.translateService.translate('storage.error.load.file.failed'));
122
123
  this.navigateTo(['/storage/files']);
123
124
  }
124
125
  finally {
@@ -139,13 +140,15 @@ class FileManagerFormComponent extends BaseStoragePage {
139
140
  try {
140
141
  const formValue = this.formModel();
141
142
  if (this.isEditMode()) {
142
- await this.fileService.updateAsync({
143
+ const response = await this.fileService.update({
143
144
  id: formValue.id,
144
145
  name: formValue.name,
145
146
  isPrivate: formValue.isPrivate,
146
147
  folderId: formValue.folderId || null,
147
148
  });
148
- this.showSuccess(this.translateService.translate('storage.file.update.success'));
149
+ this.showSuccess(response.messageKey
150
+ ? this.translateService.translate(response.messageKey, response.messageVariables)
151
+ : (response.message ?? ''));
149
152
  }
150
153
  else {
151
154
  const file = this.selectedFile();
@@ -164,7 +167,7 @@ class FileManagerFormComponent extends BaseStoragePage {
164
167
  }));
165
168
  if (uploadResponse.success && uploadResponse.data) {
166
169
  const uploadedFileInfo = uploadResponse.data;
167
- await firstValueFrom(this.fileService.createFile({
170
+ const createResponse = await firstValueFrom(this.fileService.createFile({
168
171
  name: formValue.name,
169
172
  key: uploadedFileInfo.key,
170
173
  contentType: file.type || 'application/octet-stream',
@@ -173,7 +176,9 @@ class FileManagerFormComponent extends BaseStoragePage {
173
176
  folderId: formValue.folderId || undefined,
174
177
  storageConfigId: formValue.storageConfigId,
175
178
  }));
176
- this.showSuccess(this.translateService.translate('storage.upload.success'));
179
+ this.showSuccess(createResponse?.messageKey
180
+ ? this.translateService.translate(createResponse.messageKey, createResponse.messageVariables)
181
+ : (createResponse?.message ?? ''));
177
182
  }
178
183
  else {
179
184
  throw new Error(this.translateService.translate('storage.upload.failed'));
@@ -195,9 +200,18 @@ class FileManagerFormComponent extends BaseStoragePage {
195
200
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: FileManagerFormComponent, isStandalone: true, selector: "lib-file-manager-form", usesInheritance: true, ngImport: i0, template: `
196
201
  <div class="card">
197
202
  <div class="mb-4">
198
- <h3 class="text-lg sm:text-xl font-semibold">{{ (isEditMode() ? 'storage.file.manager.edit.file' : 'storage.file.manager.upload.file') | translate }}</h3>
203
+ <h3 class="text-lg sm:text-xl font-semibold">
204
+ {{
205
+ (isEditMode()
206
+ ? 'storage.file.manager.edit.file'
207
+ : 'storage.file.manager.upload.file'
208
+ ) | translate
209
+ }}
210
+ </h3>
199
211
  @if (showCompanyInfo()) {
200
- <p class="text-sm text-muted-color mt-1">{{ 'storage.company' | translate }}: {{ currentCompanyName() }}</p>
212
+ <p class="text-sm text-muted-color mt-1">
213
+ {{ 'shared.company' | translate }}: {{ currentCompanyName() }}
214
+ </p>
201
215
  }
202
216
  </div>
203
217
 
@@ -205,11 +219,25 @@ class FileManagerFormComponent extends BaseStoragePage {
205
219
  @if (!isEditMode()) {
206
220
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
207
221
  <div class="field">
208
- <label for="storageConfig" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.config.provider.required' | translate }}</label>
209
- <select id="storageConfig" class="p-select-native w-full" [formField]="fileForm.storageConfigId">
210
- <option value="">{{ 'storage.config.select.config' | translate }}</option>
222
+ <label
223
+ for="storageConfig"
224
+ class="block font-medium mb-2 text-sm sm:text-base"
225
+ >{{ 'storage.config.provider.required' | translate }}</label
226
+ >
227
+ <select
228
+ id="storageConfig"
229
+ class="p-select-native w-full"
230
+ [formField]="fileForm.storageConfigId"
231
+ >
232
+ <option value="">
233
+ {{ 'storage.config.select.config' | translate }}
234
+ </option>
211
235
  @for (config of availableConfigs(); track config.id) {
212
- <option [value]="config.id">{{ config.name }} ({{ getProviderLabelKey(config.storage) | translate }})</option>
236
+ <option [value]="config.id">
237
+ {{ config.name }} ({{
238
+ getProviderLabelKey(config.storage) | translate
239
+ }})
240
+ </option>
213
241
  }
214
242
  </select>
215
243
  @if (availableConfigs().length === 0 && !isLoadingConfigs()) {
@@ -221,9 +249,19 @@ class FileManagerFormComponent extends BaseStoragePage {
221
249
  </div>
222
250
 
223
251
  <div class="field">
224
- <label for="folder" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.folder.optional' | translate }}</label>
225
- <select id="folder" class="p-select-native w-full" [formField]="fileForm.folderId">
226
- <option value="">{{ 'storage.folder.no.folder' | translate }}</option>
252
+ <label
253
+ for="folder"
254
+ class="block font-medium mb-2 text-sm sm:text-base"
255
+ >{{ 'storage.folder.optional' | translate }}</label
256
+ >
257
+ <select
258
+ id="folder"
259
+ class="p-select-native w-full"
260
+ [formField]="fileForm.folderId"
261
+ >
262
+ <option value="">
263
+ {{ 'storage.folder.no.folder' | translate }}
264
+ </option>
227
265
  @for (folder of availableFolders(); track folder.id) {
228
266
  <option [value]="folder.id">{{ folder.name }}</option>
229
267
  }
@@ -238,9 +276,19 @@ class FileManagerFormComponent extends BaseStoragePage {
238
276
  </div>
239
277
  } @else {
240
278
  <div class="field mb-4">
241
- <label for="folder" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.folder.optional' | translate }}</label>
242
- <select id="folder" class="p-select-native w-full" [formField]="fileForm.folderId">
243
- <option value="">{{ 'storage.folder.no.folder' | translate }}</option>
279
+ <label
280
+ for="folder"
281
+ class="block font-medium mb-2 text-sm sm:text-base"
282
+ >{{ 'storage.folder.optional' | translate }}</label
283
+ >
284
+ <select
285
+ id="folder"
286
+ class="p-select-native w-full"
287
+ [formField]="fileForm.folderId"
288
+ >
289
+ <option value="">
290
+ {{ 'storage.folder.no.folder' | translate }}
291
+ </option>
244
292
  @for (folder of availableFolders(); track folder.id) {
245
293
  <option [value]="folder.id">{{ folder.name }}</option>
246
294
  }
@@ -256,7 +304,9 @@ class FileManagerFormComponent extends BaseStoragePage {
256
304
 
257
305
  @if (!isEditMode()) {
258
306
  <div class="field mb-4">
259
- <label class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.file.select.required' | translate }}</label>
307
+ <label class="block font-medium mb-2 text-sm sm:text-base">{{
308
+ 'storage.file.select.required' | translate
309
+ }}</label>
260
310
  <p-fileupload
261
311
  #fileUpload
262
312
  [customUpload]="true"
@@ -274,35 +324,78 @@ class FileManagerFormComponent extends BaseStoragePage {
274
324
  @if (files && files.length > 0) {
275
325
  <div class="flex flex-col gap-2">
276
326
  @for (file of files; track file.name) {
277
- <div class="flex items-center gap-3 p-3 border border-surface rounded-lg bg-surface-ground">
278
- <i class="pi pi-file text-xl sm:text-2xl text-primary"></i>
327
+ <div
328
+ class="flex items-center gap-3 p-3 border border-surface rounded-lg bg-surface-ground"
329
+ >
330
+ <i
331
+ class="pi pi-file text-xl sm:text-2xl text-primary"
332
+ ></i>
279
333
  <div class="flex-1 min-w-0">
280
- <div class="font-medium truncate">{{ file.name }}</div>
281
- <div class="text-sm text-muted-color">{{ formatFileSize(file.size) }}</div>
334
+ <div class="font-medium truncate">
335
+ {{ file.name }}
336
+ </div>
337
+ <div class="text-sm text-muted-color">
338
+ {{ formatFileSize(file.size) }}
339
+ </div>
282
340
  </div>
283
- <p-button icon="pi pi-times" [text]="true" severity="danger" size="small" (onClick)="fileUpload.clear()" />
341
+ <p-button
342
+ icon="pi pi-times"
343
+ [text]="true"
344
+ severity="danger"
345
+ size="small"
346
+ (onClick)="fileUpload.clear()"
347
+ />
284
348
  </div>
285
349
  }
286
350
  </div>
287
351
  } @else {
288
- <div class="flex items-center justify-center flex-col p-6 sm:p-8 border-2 border-dashed border-surface rounded-lg">
289
- <i class="pi pi-cloud-upload text-3xl sm:text-4xl text-muted-color mb-3"></i>
290
- <p class="text-muted-color text-center text-sm sm:text-base">{{ 'storage.upload.drag.drop' | translate }}</p>
291
- <p class="text-xs sm:text-sm text-muted-color mt-2">{{ 'storage.upload.max.size' | translate: { size: '50MB' } }}</p>
352
+ <div
353
+ class="flex items-center justify-center flex-col p-6 sm:p-8 border-2 border-dashed border-surface rounded-lg"
354
+ >
355
+ <i
356
+ class="pi pi-cloud-upload text-3xl sm:text-4xl text-muted-color mb-3"
357
+ ></i>
358
+ <p
359
+ class="text-muted-color text-center text-sm sm:text-base"
360
+ >
361
+ {{ 'storage.upload.drag.drop' | translate }}
362
+ </p>
363
+ <p class="text-xs sm:text-sm text-muted-color mt-2">
364
+ {{
365
+ 'storage.upload.max.size' | translate: { size: '50MB' }
366
+ }}
367
+ </p>
292
368
  </div>
293
369
  }
294
370
  </ng-template>
295
371
  </p-fileupload>
296
372
  @if (!selectedFile() && !isEditMode()) {
297
- <small class="text-muted-color">{{ 'storage.upload.please.select' | translate }}</small>
373
+ <small class="text-muted-color">{{
374
+ 'storage.upload.please.select' | translate
375
+ }}</small>
298
376
  }
299
377
  </div>
300
378
  }
301
379
 
302
380
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
303
381
  <div class="field md:col-span-2">
304
- <label for="name" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.file.name.required' | translate }}</label>
305
- <input pInputText id="name" [formField]="fileForm.name" [placeholder]="(isEditMode() ? 'storage.file.placeholder.edit' : 'storage.file.placeholder') | translate" class="w-full" />
382
+ <label
383
+ for="name"
384
+ class="block font-medium mb-2 text-sm sm:text-base"
385
+ >{{ 'storage.file.name.required' | translate }}</label
386
+ >
387
+ <input
388
+ pInputText
389
+ id="name"
390
+ [formField]="fileForm.name"
391
+ [placeholder]="
392
+ (isEditMode()
393
+ ? 'storage.file.placeholder.edit'
394
+ : 'storage.file.placeholder'
395
+ ) | translate
396
+ "
397
+ class="w-full"
398
+ />
306
399
  </div>
307
400
 
308
401
  <div class="field">
@@ -311,18 +404,34 @@ class FileManagerFormComponent extends BaseStoragePage {
311
404
  <span>{{ 'storage.file.private' | translate }}</span>
312
405
  </label>
313
406
  <small class="text-muted-color block mt-2">
314
- {{ (formModel().isPrivate ? 'storage.file.private.hint' : 'storage.file.public.hint') | translate }}
407
+ {{
408
+ (formModel().isPrivate
409
+ ? 'storage.file.private.hint'
410
+ : 'storage.file.public.hint'
411
+ ) | translate
412
+ }}
315
413
  </small>
316
414
  </div>
317
415
  </div>
318
416
 
319
417
  <div class="flex justify-end gap-2 mt-4">
320
- <p-button [label]="'shared.cancel' | translate" severity="secondary" [outlined]="true" (onClick)="onCancel()" />
418
+ <p-button
419
+ [label]="'shared.cancel' | translate"
420
+ severity="secondary"
421
+ [outlined]="true"
422
+ (onClick)="onCancel()"
423
+ />
321
424
  <p-button
322
425
  type="submit"
323
- [label]="(isEditMode() ? 'shared.update' : 'storage.button.upload') | translate"
426
+ [label]="
427
+ (isEditMode() ? 'shared.update' : 'shared.upload') | translate
428
+ "
324
429
  [loading]="isLoading()"
325
- [disabled]="!isFormValid() || (!isEditMode() && !selectedFile()) || isLoading()"
430
+ [disabled]="
431
+ !isFormValid() ||
432
+ (!isEditMode() && !selectedFile()) ||
433
+ isLoading()
434
+ "
326
435
  />
327
436
  </div>
328
437
  </form>
@@ -337,9 +446,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
337
446
  template: `
338
447
  <div class="card">
339
448
  <div class="mb-4">
340
- <h3 class="text-lg sm:text-xl font-semibold">{{ (isEditMode() ? 'storage.file.manager.edit.file' : 'storage.file.manager.upload.file') | translate }}</h3>
449
+ <h3 class="text-lg sm:text-xl font-semibold">
450
+ {{
451
+ (isEditMode()
452
+ ? 'storage.file.manager.edit.file'
453
+ : 'storage.file.manager.upload.file'
454
+ ) | translate
455
+ }}
456
+ </h3>
341
457
  @if (showCompanyInfo()) {
342
- <p class="text-sm text-muted-color mt-1">{{ 'storage.company' | translate }}: {{ currentCompanyName() }}</p>
458
+ <p class="text-sm text-muted-color mt-1">
459
+ {{ 'shared.company' | translate }}: {{ currentCompanyName() }}
460
+ </p>
343
461
  }
344
462
  </div>
345
463
 
@@ -347,11 +465,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
347
465
  @if (!isEditMode()) {
348
466
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
349
467
  <div class="field">
350
- <label for="storageConfig" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.config.provider.required' | translate }}</label>
351
- <select id="storageConfig" class="p-select-native w-full" [formField]="fileForm.storageConfigId">
352
- <option value="">{{ 'storage.config.select.config' | translate }}</option>
468
+ <label
469
+ for="storageConfig"
470
+ class="block font-medium mb-2 text-sm sm:text-base"
471
+ >{{ 'storage.config.provider.required' | translate }}</label
472
+ >
473
+ <select
474
+ id="storageConfig"
475
+ class="p-select-native w-full"
476
+ [formField]="fileForm.storageConfigId"
477
+ >
478
+ <option value="">
479
+ {{ 'storage.config.select.config' | translate }}
480
+ </option>
353
481
  @for (config of availableConfigs(); track config.id) {
354
- <option [value]="config.id">{{ config.name }} ({{ getProviderLabelKey(config.storage) | translate }})</option>
482
+ <option [value]="config.id">
483
+ {{ config.name }} ({{
484
+ getProviderLabelKey(config.storage) | translate
485
+ }})
486
+ </option>
355
487
  }
356
488
  </select>
357
489
  @if (availableConfigs().length === 0 && !isLoadingConfigs()) {
@@ -363,9 +495,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
363
495
  </div>
364
496
 
365
497
  <div class="field">
366
- <label for="folder" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.folder.optional' | translate }}</label>
367
- <select id="folder" class="p-select-native w-full" [formField]="fileForm.folderId">
368
- <option value="">{{ 'storage.folder.no.folder' | translate }}</option>
498
+ <label
499
+ for="folder"
500
+ class="block font-medium mb-2 text-sm sm:text-base"
501
+ >{{ 'storage.folder.optional' | translate }}</label
502
+ >
503
+ <select
504
+ id="folder"
505
+ class="p-select-native w-full"
506
+ [formField]="fileForm.folderId"
507
+ >
508
+ <option value="">
509
+ {{ 'storage.folder.no.folder' | translate }}
510
+ </option>
369
511
  @for (folder of availableFolders(); track folder.id) {
370
512
  <option [value]="folder.id">{{ folder.name }}</option>
371
513
  }
@@ -380,9 +522,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
380
522
  </div>
381
523
  } @else {
382
524
  <div class="field mb-4">
383
- <label for="folder" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.folder.optional' | translate }}</label>
384
- <select id="folder" class="p-select-native w-full" [formField]="fileForm.folderId">
385
- <option value="">{{ 'storage.folder.no.folder' | translate }}</option>
525
+ <label
526
+ for="folder"
527
+ class="block font-medium mb-2 text-sm sm:text-base"
528
+ >{{ 'storage.folder.optional' | translate }}</label
529
+ >
530
+ <select
531
+ id="folder"
532
+ class="p-select-native w-full"
533
+ [formField]="fileForm.folderId"
534
+ >
535
+ <option value="">
536
+ {{ 'storage.folder.no.folder' | translate }}
537
+ </option>
386
538
  @for (folder of availableFolders(); track folder.id) {
387
539
  <option [value]="folder.id">{{ folder.name }}</option>
388
540
  }
@@ -398,7 +550,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
398
550
 
399
551
  @if (!isEditMode()) {
400
552
  <div class="field mb-4">
401
- <label class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.file.select.required' | translate }}</label>
553
+ <label class="block font-medium mb-2 text-sm sm:text-base">{{
554
+ 'storage.file.select.required' | translate
555
+ }}</label>
402
556
  <p-fileupload
403
557
  #fileUpload
404
558
  [customUpload]="true"
@@ -416,35 +570,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
416
570
  @if (files && files.length > 0) {
417
571
  <div class="flex flex-col gap-2">
418
572
  @for (file of files; track file.name) {
419
- <div class="flex items-center gap-3 p-3 border border-surface rounded-lg bg-surface-ground">
420
- <i class="pi pi-file text-xl sm:text-2xl text-primary"></i>
573
+ <div
574
+ class="flex items-center gap-3 p-3 border border-surface rounded-lg bg-surface-ground"
575
+ >
576
+ <i
577
+ class="pi pi-file text-xl sm:text-2xl text-primary"
578
+ ></i>
421
579
  <div class="flex-1 min-w-0">
422
- <div class="font-medium truncate">{{ file.name }}</div>
423
- <div class="text-sm text-muted-color">{{ formatFileSize(file.size) }}</div>
580
+ <div class="font-medium truncate">
581
+ {{ file.name }}
582
+ </div>
583
+ <div class="text-sm text-muted-color">
584
+ {{ formatFileSize(file.size) }}
585
+ </div>
424
586
  </div>
425
- <p-button icon="pi pi-times" [text]="true" severity="danger" size="small" (onClick)="fileUpload.clear()" />
587
+ <p-button
588
+ icon="pi pi-times"
589
+ [text]="true"
590
+ severity="danger"
591
+ size="small"
592
+ (onClick)="fileUpload.clear()"
593
+ />
426
594
  </div>
427
595
  }
428
596
  </div>
429
597
  } @else {
430
- <div class="flex items-center justify-center flex-col p-6 sm:p-8 border-2 border-dashed border-surface rounded-lg">
431
- <i class="pi pi-cloud-upload text-3xl sm:text-4xl text-muted-color mb-3"></i>
432
- <p class="text-muted-color text-center text-sm sm:text-base">{{ 'storage.upload.drag.drop' | translate }}</p>
433
- <p class="text-xs sm:text-sm text-muted-color mt-2">{{ 'storage.upload.max.size' | translate: { size: '50MB' } }}</p>
598
+ <div
599
+ class="flex items-center justify-center flex-col p-6 sm:p-8 border-2 border-dashed border-surface rounded-lg"
600
+ >
601
+ <i
602
+ class="pi pi-cloud-upload text-3xl sm:text-4xl text-muted-color mb-3"
603
+ ></i>
604
+ <p
605
+ class="text-muted-color text-center text-sm sm:text-base"
606
+ >
607
+ {{ 'storage.upload.drag.drop' | translate }}
608
+ </p>
609
+ <p class="text-xs sm:text-sm text-muted-color mt-2">
610
+ {{
611
+ 'storage.upload.max.size' | translate: { size: '50MB' }
612
+ }}
613
+ </p>
434
614
  </div>
435
615
  }
436
616
  </ng-template>
437
617
  </p-fileupload>
438
618
  @if (!selectedFile() && !isEditMode()) {
439
- <small class="text-muted-color">{{ 'storage.upload.please.select' | translate }}</small>
619
+ <small class="text-muted-color">{{
620
+ 'storage.upload.please.select' | translate
621
+ }}</small>
440
622
  }
441
623
  </div>
442
624
  }
443
625
 
444
626
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
445
627
  <div class="field md:col-span-2">
446
- <label for="name" class="block font-medium mb-2 text-sm sm:text-base">{{ 'storage.file.name.required' | translate }}</label>
447
- <input pInputText id="name" [formField]="fileForm.name" [placeholder]="(isEditMode() ? 'storage.file.placeholder.edit' : 'storage.file.placeholder') | translate" class="w-full" />
628
+ <label
629
+ for="name"
630
+ class="block font-medium mb-2 text-sm sm:text-base"
631
+ >{{ 'storage.file.name.required' | translate }}</label
632
+ >
633
+ <input
634
+ pInputText
635
+ id="name"
636
+ [formField]="fileForm.name"
637
+ [placeholder]="
638
+ (isEditMode()
639
+ ? 'storage.file.placeholder.edit'
640
+ : 'storage.file.placeholder'
641
+ ) | translate
642
+ "
643
+ class="w-full"
644
+ />
448
645
  </div>
449
646
 
450
647
  <div class="field">
@@ -453,18 +650,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
453
650
  <span>{{ 'storage.file.private' | translate }}</span>
454
651
  </label>
455
652
  <small class="text-muted-color block mt-2">
456
- {{ (formModel().isPrivate ? 'storage.file.private.hint' : 'storage.file.public.hint') | translate }}
653
+ {{
654
+ (formModel().isPrivate
655
+ ? 'storage.file.private.hint'
656
+ : 'storage.file.public.hint'
657
+ ) | translate
658
+ }}
457
659
  </small>
458
660
  </div>
459
661
  </div>
460
662
 
461
663
  <div class="flex justify-end gap-2 mt-4">
462
- <p-button [label]="'shared.cancel' | translate" severity="secondary" [outlined]="true" (onClick)="onCancel()" />
664
+ <p-button
665
+ [label]="'shared.cancel' | translate"
666
+ severity="secondary"
667
+ [outlined]="true"
668
+ (onClick)="onCancel()"
669
+ />
463
670
  <p-button
464
671
  type="submit"
465
- [label]="(isEditMode() ? 'shared.update' : 'storage.button.upload') | translate"
672
+ [label]="
673
+ (isEditMode() ? 'shared.update' : 'shared.upload') | translate
674
+ "
466
675
  [loading]="isLoading()"
467
- [disabled]="!isFormValid() || (!isEditMode() && !selectedFile()) || isLoading()"
676
+ [disabled]="
677
+ !isFormValid() ||
678
+ (!isEditMode() && !selectedFile()) ||
679
+ isLoading()
680
+ "
468
681
  />
469
682
  </div>
470
683
  </form>
@@ -474,4 +687,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
474
687
  }], ctorParameters: () => [] });
475
688
 
476
689
  export { FileManagerFormComponent };
477
- //# sourceMappingURL=flusys-ng-storage-file-manager-form.component-AM7JE-s5.mjs.map
690
+ //# sourceMappingURL=flusys-ng-storage-file-manager-form.component-BLJDAvBX.mjs.map