@ieeesa-npm/presentation 0.25.0 → 0.25.2

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 (41) hide show
  1. package/esm2022/lib/assets/constants.json +6 -1
  2. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +3 -3
  3. package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
  4. package/esm2022/lib/components/color-picker/color-picker.component.mjs +2 -2
  5. package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
  6. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +29 -8
  7. package/esm2022/lib/components/file-upload/file-upload.component.mjs +103 -9
  8. package/esm2022/lib/components/form-error/form-error.component.mjs +3 -3
  9. package/esm2022/lib/components/input/input.component.mjs +3 -3
  10. package/esm2022/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.mjs +3 -3
  11. package/esm2022/lib/components/notification/notification.component.mjs +3 -3
  12. package/esm2022/lib/components/radio/radio.component.mjs +3 -3
  13. package/esm2022/lib/components/select/select.component.mjs +3 -3
  14. package/esm2022/lib/components/tabs/tabs.component.mjs +8 -3
  15. package/esm2022/lib/components/text-area/text-area.component.mjs +3 -3
  16. package/esm2022/lib/components/time-picker/time-picker.component.mjs +3 -3
  17. package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +16 -2
  18. package/esm2022/lib/models/field-config.model.mjs +1 -1
  19. package/esm2022/lib/models/file-upload-payload-model.mjs +2 -0
  20. package/esm2022/lib/models/file-upload-response.model.mjs +2 -0
  21. package/esm2022/lib/models/tab.model.mjs +1 -1
  22. package/esm2022/lib/models/view-files-format.model.mjs +7 -0
  23. package/esm2022/lib/services/file-upload.service.mjs +75 -28
  24. package/esm2022/public-api.mjs +4 -1
  25. package/fesm2022/ieeesa-npm-presentation.mjs +268 -77
  26. package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
  27. package/lib/components/chips/chips.component.d.ts +5 -0
  28. package/lib/components/dynamic-form/dynamic-form.component.d.ts +15 -5
  29. package/lib/components/file-upload/file-upload.component.d.ts +37 -5
  30. package/lib/components/tabs/tabs.component.d.ts +2 -1
  31. package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +5 -2
  32. package/lib/directives/file-upload/file-upload.directive.d.ts +1 -1
  33. package/lib/models/field-config.model.d.ts +9 -0
  34. package/lib/models/file-upload-payload-model.d.ts +3 -0
  35. package/lib/models/file-upload-response.model.d.ts +9 -0
  36. package/lib/models/tab.model.d.ts +1 -0
  37. package/lib/models/view-files-format.model.d.ts +4 -0
  38. package/lib/services/file-upload.service.d.ts +39 -11
  39. package/package.json +1 -1
  40. package/public-api.d.ts +3 -0
  41. package/src/lib/assets/constants.json +6 -1
@@ -238,6 +238,8 @@ export declare class ChipsComponent implements OnInit, OnDestroy {
238
238
  allowedFileFormat: string;
239
239
  browseFiles: string;
240
240
  uploadProgress: string;
241
+ upload: string;
242
+ mb: string;
241
243
  };
242
244
  ariaLabel: {
243
245
  fileUpload: string;
@@ -274,6 +276,9 @@ export declare class ChipsComponent implements OnInit, OnDestroy {
274
276
  "2064": string;
275
277
  };
276
278
  };
279
+ limit: {
280
+ maxFileUpload: number;
281
+ };
277
282
  };
278
283
  list: {
279
284
  defaultIndentation: number;
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, EventEmitter, OnInit, QueryList } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ElementRef, EventEmitter, OnInit, QueryList } from '@angular/core';
2
2
  import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
3
  import { FormModel } from '../../models/form.model';
4
4
  import { FieldConfig } from '../../models/field-config.model';
@@ -22,8 +22,9 @@ import * as i0 from "@angular/core";
22
22
  * @implements {OnInit}
23
23
  * @implements {AfterContentInit}
24
24
  */
25
- export declare class DynamicFormComponent implements OnInit, AfterContentInit {
25
+ export declare class DynamicFormComponent implements OnInit, AfterContentInit, AfterViewInit {
26
26
  private fb;
27
+ private elementRef;
27
28
  formFields: QueryList<DynamicFormFieldDirective>;
28
29
  private _formGroups;
29
30
  /**
@@ -46,6 +47,9 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
46
47
  */
47
48
  set searchResponse(value: any);
48
49
  get searchResponse(): any;
50
+ private _filesUploadedSuccessfullyCount;
51
+ get filesUploadedSuccessfullyCount(): number;
52
+ set filesUploadedSuccessfullyCount(value: number);
49
53
  colWidth: FormGrid;
50
54
  isLegendVisible: boolean;
51
55
  rightButtonLabel: string;
@@ -53,6 +57,7 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
53
57
  isSubmitButtonDisabled: boolean;
54
58
  isLeftButtonDisabled: boolean;
55
59
  isLeftButtonNeeded: boolean;
60
+ isRightButtonNeeded: boolean;
56
61
  actionButtonAlign: AlignType;
57
62
  alignmentType: typeof AlignType;
58
63
  formSubmit: EventEmitter<any>;
@@ -81,7 +86,7 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
81
86
  formTimeSelected: EventEmitter<SelectedTime>;
82
87
  supportTextLinkClick: EventEmitter<LinkEventEmitType>;
83
88
  formSlideToggleChange: EventEmitter<SlideToggleOption>;
84
- formFileUpload: EventEmitter<File | FileList>;
89
+ formFileUpload: EventEmitter<FileList | File>;
85
90
  dropdownOpenedChange: EventEmitter<SelectOpenedState>;
86
91
  formColorPickerChange: EventEmitter<string>;
87
92
  formRadioOptionSelected: EventEmitter<RadioOption>;
@@ -94,7 +99,7 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
94
99
  formGroupArray: FormGroup[];
95
100
  formControlArray: any[];
96
101
  legendsArray: string[];
97
- constructor(fb: FormBuilder);
102
+ constructor(fb: FormBuilder, elementRef: ElementRef);
98
103
  /**
99
104
  * Implementation of ngOnInit lifecycle hook method to create form group
100
105
  * @memberof DynamicFormComponent
@@ -105,6 +110,11 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
105
110
  * @memberof DynamicFormComponent
106
111
  */
107
112
  ngAfterContentInit(): void;
113
+ /**
114
+ * Sets the focus to the first field.
115
+ * @memberof DynamicFormComponent
116
+ */
117
+ ngAfterViewInit(): void;
108
118
  /**
109
119
  * Creates form group on the basis of formGroups configuration input
110
120
  * @return {void}
@@ -315,5 +325,5 @@ export declare class DynamicFormComponent implements OnInit, AfterContentInit {
315
325
  */
316
326
  onCheckboxCTAButtonClick(event: IconButton): void;
317
327
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
318
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "ieeesa-dynamic-form", ["dynamicForm"], { "formGroups": { "alias": "formGroups"; "required": false; }; "submitResponse": { "alias": "submitResponse"; "required": false; }; "searchResponse": { "alias": "searchResponse"; "required": false; }; "colWidth": { "alias": "colWidth"; "required": false; }; "isLegendVisible": { "alias": "isLegendVisible"; "required": false; }; "rightButtonLabel": { "alias": "rightButtonLabel"; "required": false; }; "leftButtonLabel": { "alias": "leftButtonLabel"; "required": false; }; "isSubmitButtonDisabled": { "alias": "isSubmitButtonDisabled"; "required": false; }; "isLeftButtonDisabled": { "alias": "isLeftButtonDisabled"; "required": false; }; "isLeftButtonNeeded": { "alias": "isLeftButtonNeeded"; "required": false; }; "actionButtonAlign": { "alias": "actionButtonAlign"; "required": false; }; }, { "formSubmit": "formSubmit"; "formChange": "formChange"; "formInput": "formInput"; "formLeftButtonClicked": "formLeftButtonClicked"; "formSearchApply": "formSearchApply"; "formGroupsReference": "formGroupsReference"; "dropdownChange": "dropdownChange"; "formCheckboxSelection": "formCheckboxSelection"; "formDateSelected": "formDateSelected"; "formSelectSearch": "formSelectSearch"; "formControlChange": "formControlChange"; "formAutoCompleteSearch": "formAutoCompleteSearch"; "formAutoCompleteClearSearchValue": "formAutoCompleteClearSearchValue"; "autoCompleteOptionSelected": "autoCompleteOptionSelected"; "formAfterContentInit": "formAfterContentInit"; "formSelectedDateRange": "formSelectedDateRange"; "addFormGroup": "addFormGroup"; "formTimeSelected": "formTimeSelected"; "supportTextLinkClick": "supportTextLinkClick"; "formSlideToggleChange": "formSlideToggleChange"; "formFileUpload": "formFileUpload"; "dropdownOpenedChange": "dropdownOpenedChange"; "formColorPickerChange": "formColorPickerChange"; "formRadioOptionSelected": "formRadioOptionSelected"; "ctaButtonClick": "ctaButtonClick"; "formMultiSelectAutoCompleteSearch": "formMultiSelectAutoCompleteSearch"; "formMultiSelectAutoCompleteClearSearchValue": "formMultiSelectAutoCompleteClearSearchValue"; "multiSelectAutoCompleteOptionsSelected": "multiSelectAutoCompleteOptionsSelected"; "formRichTextEditorContentChange": "formRichTextEditorContentChange"; }, never, ["[component]"], true, never>;
328
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "ieeesa-dynamic-form", ["dynamicForm"], { "formGroups": { "alias": "formGroups"; "required": false; }; "submitResponse": { "alias": "submitResponse"; "required": false; }; "searchResponse": { "alias": "searchResponse"; "required": false; }; "filesUploadedSuccessfullyCount": { "alias": "filesUploadedSuccessfullyCount"; "required": false; }; "colWidth": { "alias": "colWidth"; "required": false; }; "isLegendVisible": { "alias": "isLegendVisible"; "required": false; }; "rightButtonLabel": { "alias": "rightButtonLabel"; "required": false; }; "leftButtonLabel": { "alias": "leftButtonLabel"; "required": false; }; "isSubmitButtonDisabled": { "alias": "isSubmitButtonDisabled"; "required": false; }; "isLeftButtonDisabled": { "alias": "isLeftButtonDisabled"; "required": false; }; "isLeftButtonNeeded": { "alias": "isLeftButtonNeeded"; "required": false; }; "isRightButtonNeeded": { "alias": "isRightButtonNeeded"; "required": false; }; "actionButtonAlign": { "alias": "actionButtonAlign"; "required": false; }; }, { "formSubmit": "formSubmit"; "formChange": "formChange"; "formInput": "formInput"; "formLeftButtonClicked": "formLeftButtonClicked"; "formSearchApply": "formSearchApply"; "formGroupsReference": "formGroupsReference"; "dropdownChange": "dropdownChange"; "formCheckboxSelection": "formCheckboxSelection"; "formDateSelected": "formDateSelected"; "formSelectSearch": "formSelectSearch"; "formControlChange": "formControlChange"; "formAutoCompleteSearch": "formAutoCompleteSearch"; "formAutoCompleteClearSearchValue": "formAutoCompleteClearSearchValue"; "autoCompleteOptionSelected": "autoCompleteOptionSelected"; "formAfterContentInit": "formAfterContentInit"; "formSelectedDateRange": "formSelectedDateRange"; "addFormGroup": "addFormGroup"; "formTimeSelected": "formTimeSelected"; "supportTextLinkClick": "supportTextLinkClick"; "formSlideToggleChange": "formSlideToggleChange"; "formFileUpload": "formFileUpload"; "dropdownOpenedChange": "dropdownOpenedChange"; "formColorPickerChange": "formColorPickerChange"; "formRadioOptionSelected": "formRadioOptionSelected"; "ctaButtonClick": "ctaButtonClick"; "formMultiSelectAutoCompleteSearch": "formMultiSelectAutoCompleteSearch"; "formMultiSelectAutoCompleteClearSearchValue": "formMultiSelectAutoCompleteClearSearchValue"; "multiSelectAutoCompleteOptionsSelected": "multiSelectAutoCompleteOptionsSelected"; "formRichTextEditorContentChange": "formRichTextEditorContentChange"; }, never, ["[component]"], true, never>;
319
329
  }
@@ -1,9 +1,11 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { ElementRef, EventEmitter, OnInit } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { FormUtilityService } from '../../services/form-utility.service';
4
4
  import { FieldConfig } from '../../models/field-config.model';
5
5
  import { AllowedFileTypes } from '../../models/allowed-file-types.model';
6
6
  import { FileUploadService } from '../../services/file-upload.service';
7
+ import { ViewFilesFormat } from '../../models/view-files-format.model';
8
+ import { AlignType } from '../../models/align-type.model';
7
9
  import * as i0 from "@angular/core";
8
10
  /**
9
11
  * Provides functionality for uploading files to aws s3 bucket.
@@ -14,6 +16,7 @@ import * as i0 from "@angular/core";
14
16
  export declare class FileUploadComponent implements OnInit {
15
17
  formUtilityService: FormUtilityService;
16
18
  fileUploadService: FileUploadService;
19
+ fileField: ElementRef;
17
20
  constants: {
18
21
  ariaLabel: {
19
22
  clear: string;
@@ -229,6 +232,8 @@ export declare class FileUploadComponent implements OnInit {
229
232
  allowedFileFormat: string;
230
233
  browseFiles: string;
231
234
  uploadProgress: string;
235
+ upload: string;
236
+ mb: string;
232
237
  };
233
238
  ariaLabel: {
234
239
  fileUpload: string;
@@ -265,6 +270,9 @@ export declare class FileUploadComponent implements OnInit {
265
270
  "2064": string;
266
271
  };
267
272
  };
273
+ limit: {
274
+ maxFileUpload: number;
275
+ };
268
276
  };
269
277
  list: {
270
278
  defaultIndentation: number;
@@ -289,6 +297,8 @@ export declare class FileUploadComponent implements OnInit {
289
297
  allowedFileFormat: string;
290
298
  browseFiles: string;
291
299
  uploadProgress: string;
300
+ upload: string;
301
+ mb: string;
292
302
  };
293
303
  fileUploadAriaLabel: {
294
304
  fileUpload: string;
@@ -318,11 +328,14 @@ export declare class FileUploadComponent implements OnInit {
318
328
  group: FormGroup;
319
329
  isValidFileType: boolean;
320
330
  isValidFileSize: boolean;
331
+ isValidMaxFileUploadLimit: boolean;
321
332
  selectedFiles: FileList | File | any;
322
333
  selectedFileNames: string;
323
334
  isFormField: boolean;
324
335
  totalSize: number;
325
336
  uploadedFiles: FileList | File | any;
337
+ actionButtonAlign: AlignType;
338
+ alignmentType: typeof AlignType;
326
339
  formControlName: string;
327
340
  isFileSelected: boolean;
328
341
  supportMessage: string;
@@ -330,12 +343,22 @@ export declare class FileUploadComponent implements OnInit {
330
343
  isMultiFileUpload: boolean;
331
344
  isUploadInProgress: boolean;
332
345
  fileUploadHeading: string;
346
+ isAllowAnyFileType: boolean;
347
+ viewFilesFormat: ViewFilesFormat;
348
+ isUploadButtonNeeded: boolean;
333
349
  maxUploadFileSize: number;
334
350
  private uploadedSizeValue;
351
+ fileUploadErrorPosition: string;
352
+ maxFilesUploadLimit: number;
353
+ maxFilesUploadLimitErrorMessage: string;
354
+ private _filesUploadedSuccessfullyCount;
355
+ get filesUploadedSuccessfullyCount(): number;
356
+ set filesUploadedSuccessfullyCount(value: number);
335
357
  get uploadedSize(): number;
336
358
  set uploadedSize(value: number);
337
- uploadSelectedFiles: EventEmitter<File | FileList>;
338
- downloadSelectedFile: EventEmitter<File | FileList>;
359
+ uploadSelectedFiles: EventEmitter<FileList | File>;
360
+ downloadSelectedFile: EventEmitter<FileList | File>;
361
+ uploadButtonClicked: EventEmitter<any>;
339
362
  constructor(formUtilityService: FormUtilityService, fileUploadService: FileUploadService);
340
363
  /**
341
364
  * Initializes component properties and retrieves configuration.
@@ -348,7 +371,7 @@ export declare class FileUploadComponent implements OnInit {
348
371
  */
349
372
  getAllowedFileFormatSizeMessage(): void;
350
373
  /**
351
- * Handles the selected of file(s) and emits FileUpload event emitter for uploading the file(s).
374
+ * Handles the selected file(s) and emits FileUpload event emitter for uploading the file(s).
352
375
  * @param {(File | FileList)} file
353
376
  * @memberof FileUploadComponent
354
377
  */
@@ -393,6 +416,15 @@ export declare class FileUploadComponent implements OnInit {
393
416
  * @memberof FileUploadComponent
394
417
  */
395
418
  trackByFn(index: number): number | string;
419
+ /**
420
+ * Triggers on browse element clicked
421
+ */
422
+ fileClick(): void;
423
+ /**
424
+ * Removes file from selectedFiles and selectedFileNames array
425
+ * @param index
426
+ */
427
+ removeFile(index: number): void;
396
428
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
397
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ieeesa-file-upload", never, { "formControlName": { "alias": "formControlName"; "required": false; }; "isFileSelected": { "alias": "isFileSelected"; "required": false; }; "supportMessage": { "alias": "supportMessage"; "required": false; }; "allowedFileTypes": { "alias": "allowedFileTypes"; "required": false; }; "isMultiFileUpload": { "alias": "isMultiFileUpload"; "required": false; }; "isUploadInProgress": { "alias": "isUploadInProgress"; "required": false; }; "fileUploadHeading": { "alias": "fileUploadHeading"; "required": false; }; "maxUploadFileSize": { "alias": "maxUploadFileSize"; "required": false; }; "uploadedSize": { "alias": "uploadedSize"; "required": false; }; }, { "uploadSelectedFiles": "uploadSelectedFiles"; "downloadSelectedFile": "downloadSelectedFile"; }, never, never, true, never>;
429
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ieeesa-file-upload", never, { "maxFileSizeErrorMessage": { "alias": "maxFileSizeErrorMessage"; "required": false; }; "actionButtonAlign": { "alias": "actionButtonAlign"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "isFileSelected": { "alias": "isFileSelected"; "required": false; }; "supportMessage": { "alias": "supportMessage"; "required": false; }; "allowedFileTypes": { "alias": "allowedFileTypes"; "required": false; }; "isMultiFileUpload": { "alias": "isMultiFileUpload"; "required": false; }; "isUploadInProgress": { "alias": "isUploadInProgress"; "required": false; }; "fileUploadHeading": { "alias": "fileUploadHeading"; "required": false; }; "isAllowAnyFileType": { "alias": "isAllowAnyFileType"; "required": false; }; "viewFilesFormat": { "alias": "viewFilesFormat"; "required": false; }; "isUploadButtonNeeded": { "alias": "isUploadButtonNeeded"; "required": false; }; "maxUploadFileSize": { "alias": "maxUploadFileSize"; "required": false; }; "fileUploadErrorPosition": { "alias": "fileUploadErrorPosition"; "required": false; }; "maxFilesUploadLimit": { "alias": "maxFilesUploadLimit"; "required": false; }; "maxFilesUploadLimitErrorMessage": { "alias": "maxFilesUploadLimitErrorMessage"; "required": false; }; "filesUploadedSuccessfullyCount": { "alias": "filesUploadedSuccessfullyCount"; "required": false; }; "uploadedSize": { "alias": "uploadedSize"; "required": false; }; }, { "uploadSelectedFiles": "uploadSelectedFiles"; "downloadSelectedFile": "downloadSelectedFile"; "uploadButtonClicked": "uploadButtonClicked"; }, never, never, true, never>;
398
430
  }
@@ -28,6 +28,7 @@ export declare class TabsComponent implements OnInit, OnDestroy {
28
28
  constants: any;
29
29
  modalConfigTexts: any;
30
30
  isViewOnly: string | boolean;
31
+ isMemberOfGroup: string | boolean;
31
32
  eventId: string;
32
33
  meetingId: string;
33
34
  actionType: any;
@@ -73,5 +74,5 @@ export declare class TabsComponent implements OnInit, OnDestroy {
73
74
  */
74
75
  ngOnDestroy(): void;
75
76
  static ɵfac: i0.ɵɵFactoryDeclaration<TabsComponent, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "ieeesa-tabs", never, { "selectedTabIndex": { "alias": "selectedTabIndex"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "isFormChanged": { "alias": "isFormChanged"; "required": false; }; "confirmationModalConfig": { "alias": "confirmationModalConfig"; "required": false; }; "isViewOnly": { "alias": "isViewOnly"; "required": false; }; "eventId": { "alias": "eventId"; "required": false; }; "meetingId": { "alias": "meetingId"; "required": false; }; "actionType": { "alias": "actionType"; "required": false; }; "routePaths": { "alias": "routePaths"; "required": false; }; "apiBaseURL": { "alias": "apiBaseURL"; "required": false; }; "userPermissions": { "alias": "userPermissions"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; }, never, never, true, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<TabsComponent, "ieeesa-tabs", never, { "selectedTabIndex": { "alias": "selectedTabIndex"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "isFormChanged": { "alias": "isFormChanged"; "required": false; }; "confirmationModalConfig": { "alias": "confirmationModalConfig"; "required": false; }; "isViewOnly": { "alias": "isViewOnly"; "required": false; }; "isMemberOfGroup": { "alias": "isMemberOfGroup"; "required": false; }; "eventId": { "alias": "eventId"; "required": false; }; "meetingId": { "alias": "meetingId"; "required": false; }; "actionType": { "alias": "actionType"; "required": false; }; "routePaths": { "alias": "routePaths"; "required": false; }; "apiBaseURL": { "alias": "apiBaseURL"; "required": false; }; "userPermissions": { "alias": "userPermissions"; "required": false; }; }, { "selectedIndexChange": "selectedIndexChange"; }, never, never, true, never>;
77
78
  }
@@ -38,6 +38,9 @@ export declare class DynamicFormFieldDirective implements FormField, OnInit, OnD
38
38
  */
39
39
  set group(value: FormGroup);
40
40
  get group(): FormGroup;
41
+ private _filesUploadedSuccessfullyCount;
42
+ get filesUploadedSuccessfullyCount(): number;
43
+ set filesUploadedSuccessfullyCount(value: number);
41
44
  private _submitResponse;
42
45
  /**
43
46
  * Sets the submit response of form submit event
@@ -74,7 +77,7 @@ export declare class DynamicFormFieldDirective implements FormField, OnInit, OnD
74
77
  formSlideToggleChange: EventEmitter<SlideToggleOption>;
75
78
  dropdownOpenedChange: EventEmitter<SelectOpenedState>;
76
79
  formColorPickerChange: EventEmitter<string>;
77
- formFileUpload: EventEmitter<File | FileList>;
80
+ formFileUpload: EventEmitter<FileList | File>;
78
81
  formRadioOptionSelected: EventEmitter<RadioOption>;
79
82
  ctaButtonClick: EventEmitter<IconButton>;
80
83
  formMultiSelectAutoCompleteSearch: EventEmitter<string>;
@@ -99,5 +102,5 @@ export declare class DynamicFormFieldDirective implements FormField, OnInit, OnD
99
102
  */
100
103
  ngOnDestroy(): void;
101
104
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormFieldDirective, never>;
102
- static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormFieldDirective, "[ieeesaDynamicFormField]", never, { "config": { "alias": "config"; "required": false; }; "group": { "alias": "group"; "required": false; }; "submitResponse": { "alias": "submitResponse"; "required": false; }; "searchResponse": { "alias": "searchResponse"; "required": false; }; }, { "formSearchApply": "formSearchApply"; "formDropdownSelected": "formDropdownSelected"; "formDateSelected": "formDateSelected"; "formTimeSelected": "formTimeSelected"; "formSelectedDateRange": "formSelectedDateRange"; "formSelectSearch": "formSelectSearch"; "formAutoCompleteSearch": "formAutoCompleteSearch"; "autoCompleteClearSearchValue": "autoCompleteClearSearchValue"; "autoCompleteOptionSelected": "autoCompleteOptionSelected"; "formCheckboxSelection": "formCheckboxSelection"; "formInputValue": "formInputValue"; "addFormGroup": "addFormGroup"; "supportTextLinkClick": "supportTextLinkClick"; "formSlideToggleChange": "formSlideToggleChange"; "dropdownOpenedChange": "dropdownOpenedChange"; "formColorPickerChange": "formColorPickerChange"; "formFileUpload": "formFileUpload"; "formRadioOptionSelected": "formRadioOptionSelected"; "ctaButtonClick": "ctaButtonClick"; "formMultiSelectAutoCompleteSearch": "formMultiSelectAutoCompleteSearch"; "multiSelectAutoCompleteClearSearchValue": "multiSelectAutoCompleteClearSearchValue"; "multiSelectAutoCompleteOptionsSelected": "multiSelectAutoCompleteOptionsSelected"; "formRichTextEditorContentChange": "formRichTextEditorContentChange"; }, never, never, true, never>;
105
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicFormFieldDirective, "[ieeesaDynamicFormField]", never, { "config": { "alias": "config"; "required": false; }; "group": { "alias": "group"; "required": false; }; "filesUploadedSuccessfullyCount": { "alias": "filesUploadedSuccessfullyCount"; "required": false; }; "submitResponse": { "alias": "submitResponse"; "required": false; }; "searchResponse": { "alias": "searchResponse"; "required": false; }; }, { "formSearchApply": "formSearchApply"; "formDropdownSelected": "formDropdownSelected"; "formDateSelected": "formDateSelected"; "formTimeSelected": "formTimeSelected"; "formSelectedDateRange": "formSelectedDateRange"; "formSelectSearch": "formSelectSearch"; "formAutoCompleteSearch": "formAutoCompleteSearch"; "autoCompleteClearSearchValue": "autoCompleteClearSearchValue"; "autoCompleteOptionSelected": "autoCompleteOptionSelected"; "formCheckboxSelection": "formCheckboxSelection"; "formInputValue": "formInputValue"; "addFormGroup": "addFormGroup"; "supportTextLinkClick": "supportTextLinkClick"; "formSlideToggleChange": "formSlideToggleChange"; "dropdownOpenedChange": "dropdownOpenedChange"; "formColorPickerChange": "formColorPickerChange"; "formFileUpload": "formFileUpload"; "formRadioOptionSelected": "formRadioOptionSelected"; "ctaButtonClick": "ctaButtonClick"; "formMultiSelectAutoCompleteSearch": "formMultiSelectAutoCompleteSearch"; "multiSelectAutoCompleteClearSearchValue": "multiSelectAutoCompleteClearSearchValue"; "multiSelectAutoCompleteOptionsSelected": "multiSelectAutoCompleteOptionsSelected"; "formRichTextEditorContentChange": "formRichTextEditorContentChange"; }, never, never, true, never>;
103
106
  }
@@ -8,7 +8,7 @@ import * as i0 from "@angular/core";
8
8
  export declare class FileUploadDirective {
9
9
  allowedFileTypes: string[];
10
10
  isMultiFileUpload: boolean;
11
- fileDropped: EventEmitter<File | FileList>;
11
+ fileDropped: EventEmitter<FileList | File>;
12
12
  /**
13
13
  * Binds the 'multiple' attribute based on the value of allowMultiple property.
14
14
  * @readonly
@@ -10,6 +10,8 @@ import { SlideToggleOption } from './slide-toggle-options.model';
10
10
  import { ColorFormat, ColorsAnimation } from './color-format.model';
11
11
  import { AllowedFileTypes } from './allowed-file-types.model';
12
12
  import { EditorConfig } from 'ngx-simple-text-editor';
13
+ import { ViewFilesFormat } from './view-files-format.model';
14
+ import { AlignType } from '../models/align-type.model';
13
15
  export interface FieldConfig {
14
16
  isSortNeeded?: boolean;
15
17
  disabled?: boolean;
@@ -84,4 +86,11 @@ export interface FieldConfig {
84
86
  canHideTextInput?: boolean;
85
87
  multiSelectAutoCompleteOptions?: AutoCompleteOption[];
86
88
  editorConfig?: EditorConfig;
89
+ isAllowAnyFileType?: boolean;
90
+ viewFilesFormat?: ViewFilesFormat;
91
+ isUploadButtonNeeded?: boolean;
92
+ actionButtonAlign?: AlignType;
93
+ fileUploadErrorPosition?: string;
94
+ maxFilesUploadLimit?: number;
95
+ maxFilesUploadLimitErrorMessage?: string;
87
96
  }
@@ -0,0 +1,3 @@
1
+ export interface FileUploadPayload {
2
+ [key: string]: any;
3
+ }
@@ -0,0 +1,9 @@
1
+ export interface FileUploadBodyResponse {
2
+ fileName: string;
3
+ preSignedUrl: string;
4
+ }
5
+ export interface FileUploadResponse {
6
+ status: boolean;
7
+ body: FileUploadBodyResponse[];
8
+ message: string;
9
+ }
@@ -2,4 +2,5 @@ export interface Tab {
2
2
  id: number | string;
3
3
  label: string;
4
4
  componentRef: any;
5
+ disabled?: boolean;
5
6
  }
@@ -0,0 +1,4 @@
1
+ export declare enum ViewFilesFormat {
2
+ DEFAULT = "default",
3
+ BOTTOM = "bottom"
4
+ }
@@ -3,6 +3,8 @@ import { OnDestroy } from '@angular/core';
3
3
  import { AlertsService, HttpService, LoaderNotificationService } from '@ieeesa-npm/utility';
4
4
  import { FileUploadPresignedUrl } from '../models/file-upload-presigned-url-res.model';
5
5
  import { Observable, Subject } from 'rxjs';
6
+ import { FileUploadPayload } from '@presentation/models/file-upload-payload-model';
7
+ import { FileUploadBodyResponse, FileUploadResponse } from '@presentation/models/file-upload-response.model';
6
8
  import * as i0 from "@angular/core";
7
9
  /**
8
10
  * This service interacts with the server to obtain pre-signed URLs for file upload and uploads files to Amazon S3.
@@ -52,6 +54,10 @@ export declare class FileUploadService implements OnDestroy {
52
54
  };
53
55
  remove: {
54
56
  id: number;
57
+ /**
58
+ * This service interacts with the server to obtain pre-signed URLs for file upload and uploads files to Amazon S3.
59
+ * @class FileUploadService
60
+ */
55
61
  iconURL: string;
56
62
  toolTip: string;
57
63
  ariaLabel: string;
@@ -92,6 +98,11 @@ export declare class FileUploadService implements OnDestroy {
92
98
  endDateLabel: string;
93
99
  datePickerIcon: string;
94
100
  };
101
+ /**
102
+ * Gets pre-signed URL for the files to be uploaded in S3 bucket
103
+ * @param fileUploadPayload
104
+ * @param fileUploadAPIPath
105
+ */
95
106
  dropdown: {
96
107
  placeholderText: string;
97
108
  };
@@ -192,12 +203,7 @@ export declare class FileUploadService implements OnDestroy {
192
203
  ariaLabel: {
193
204
  spinner: string;
194
205
  };
195
- }; /**
196
- * Retrieves presigned URL for downloading files to Amazon S3 bucket.
197
- * @param {(File | FileList)} file
198
- * @return {Observable<string>}
199
- * @memberof FileUploadService
200
- */
206
+ };
201
207
  defaultWelcomeBgColor: string;
202
208
  timePicker: {
203
209
  defaultTimeFormat: number;
@@ -233,6 +239,8 @@ export declare class FileUploadService implements OnDestroy {
233
239
  allowedFileFormat: string;
234
240
  browseFiles: string;
235
241
  uploadProgress: string;
242
+ upload: string;
243
+ mb: string;
236
244
  };
237
245
  ariaLabel: {
238
246
  fileUpload: string;
@@ -269,6 +277,9 @@ export declare class FileUploadService implements OnDestroy {
269
277
  "2064": string;
270
278
  };
271
279
  };
280
+ limit: {
281
+ maxFileUpload: number;
282
+ };
272
283
  };
273
284
  list: {
274
285
  defaultIndentation: number;
@@ -290,6 +301,8 @@ export declare class FileUploadService implements OnDestroy {
290
301
  fileByteArray: Uint8Array | undefined;
291
302
  httpClient: HttpClient;
292
303
  isFileUploading: boolean;
304
+ filesNamesUploadFailed: string[];
305
+ filesUploadedSuccessfullyCount: number;
293
306
  constructor(httpService: HttpService, handler: HttpBackend, alertService: AlertsService, loaderNotificationService: LoaderNotificationService);
294
307
  /**
295
308
  * Sets the base URL for API requests.
@@ -305,13 +318,28 @@ export declare class FileUploadService implements OnDestroy {
305
318
  */
306
319
  getFileUploadPresignedUrl(file: File | FileList, appId: string): Observable<FileUploadPresignedUrl>;
307
320
  /**
308
- * Uploads file to AWS S3 using a presigned URL.
309
- * @param {string} presignedUrl
310
- * @param {(File | FileList)} file
321
+ * Gets pre-signed URL for the files to be uploaded in S3 bucket
322
+ * @param fileUploadPayload
323
+ * @param fileUploadAPIPath
324
+ */
325
+ getPreSignedURL(fileUploadPayload: FileUploadPayload, fileUploadAPIPath?: string): Observable<FileUploadResponse>;
326
+ /**
327
+ * Uploads file to AWS S3 using a pre-signed URL.
328
+ * @param {string} preSignedUrl
329
+ * @param files
330
+ * @param isMultipleFileUpload
311
331
  * @return {Observable<any>} -Returns an observable that emits the response after uploading the file to S3.
312
332
  * @memberof FileUploadService
313
333
  */
314
- uploadFileToS3(presignedUrl: string, file: File | FileList): Observable<any>;
334
+ uploadFileToS3(preSignedUrl: FileUploadBodyResponse[] | string, files: File | FileList, isMultipleFileUpload?: boolean): Observable<any>;
335
+ /**
336
+ * Makes http call to AWS to upload file in S3 bucket
337
+ * @param preSignedUrl
338
+ * @param file
339
+ * @param fileType
340
+ * @param fileSize
341
+ */
342
+ httpCallToAWS(preSignedUrl: string, file: File, fileType: string, fileSize: number): Observable<any>;
315
343
  /**
316
344
  * Gets file upload progress.
317
345
  * @param {*} message
@@ -325,7 +353,7 @@ export declare class FileUploadService implements OnDestroy {
325
353
  * @return {*}
326
354
  * @memberof FileUploadService
327
355
  */
328
- getEventMessage(event: HttpEvent<any>, file: File | FileList): string | true;
356
+ getEventMessage(event: HttpEvent<any>, file: File): string | true;
329
357
  /**
330
358
  * Converts file to byte array.
331
359
  * @param {File} file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ieeesa-npm/presentation",
3
- "version": "0.25.0",
3
+ "version": "0.25.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0",
package/public-api.d.ts CHANGED
@@ -79,6 +79,7 @@ export * from './lib/models/table-actions.model';
79
79
  export * from './lib/models/table-schema.model';
80
80
  export * from './lib/models/breadcrumb.model';
81
81
  export * from './lib/models/tile.model';
82
+ export * from './lib/models/file-upload-response.model';
82
83
  export * from './lib/models/filters-options.model';
83
84
  export * from './lib/models/profile-menu.model';
84
85
  export * from './lib/models/slide-toggle-options.model';
@@ -87,10 +88,12 @@ export * from './lib/models/card-button.model';
87
88
  export * from './lib/models/card-info.model';
88
89
  export * from './lib/models/color-format.model';
89
90
  export * from './lib/models/allowed-file-types.model';
91
+ export * from './lib/models/file-upload-payload-model';
90
92
  export * from './lib/models/file-upload-presigned-url-res.model';
91
93
  export * from './lib/models/accordion-info.model';
92
94
  export * from './lib/models/inactive-tenant.model';
93
95
  export * from './lib/models/table-column-menu-info.model';
96
+ export * from './lib/models/view-files-format.model';
94
97
  export * from './lib/services/datepicker.service';
95
98
  export * from './lib/services/form-utility.service';
96
99
  export * from './lib/services/file-upload.service';
@@ -548,7 +548,9 @@
548
548
  "allowedFileSize2": "mb only;",
549
549
  "allowedFileFormat": "Allowed file format(s): ",
550
550
  "browseFiles": "Browse Files",
551
- "uploadProgress": "Uploading... please wait"
551
+ "uploadProgress": "Uploading... please wait",
552
+ "upload": "Upload",
553
+ "mb": "MB"
552
554
  },
553
555
  "ariaLabel": {
554
556
  "fileUpload": "Drag and Drop your files here or Click 'Browse Files'.",
@@ -586,6 +588,9 @@
586
588
  "2063": "File Name is required.",
587
589
  "2064": "Application Id or Domain is required."
588
590
  }
591
+ },
592
+ "limit": {
593
+ "maxFileUpload": 5
589
594
  }
590
595
  },
591
596
  "list": {