@energycap/components 0.39.24-ECAP-26378-account-icon-pipe-summary-account-support.20240913-1549 → 0.39.25-ECAP-26539-Item-Picker-Select-All.20240916-0943

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.
@@ -80,6 +80,13 @@ export declare class FileUploadComponent extends FormControlBase implements OnIn
80
80
  * Optional property to control whether the user can select multiple files
81
81
  */
82
82
  multiSelect?: boolean;
83
+ /**
84
+ * When true, the onFileSelected callback will not be called if the form is invalid.
85
+ * This is useful when the file needs to be validated before it can be uploaded.
86
+ * For server-side validation, leave this as false and use the onFileSelected callback
87
+ * to upload the file and handle any errors thrown by the API.
88
+ */
89
+ validateBeforeUpload: boolean;
83
90
  fileInput?: ElementRef;
84
91
  /** Property bound to the file input to filter what file types are shown in the dialog */
85
92
  fileTypeAccept: string | undefined;
@@ -113,5 +120,5 @@ export declare class FileUploadComponent extends FormControlBase implements OnIn
113
120
  private handleMultipleFiles;
114
121
  private readFile;
115
122
  static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
116
- static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ec-file-upload", never, { "formModel": "formModel"; "placeholder": "placeholder"; "fileType": "fileType"; "fileOutput": "fileOutput"; "customExtensions": "customExtensions"; "onFileSelected": "onFileSelected"; "onMultipleFilesSelected": "onMultipleFilesSelected"; "displayType": "displayType"; "buttonLabel": "buttonLabel"; "buttonType": "buttonType"; "multiSelect": "multiSelect"; }, {}, never, never, false, never>;
123
+ static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "ec-file-upload", never, { "formModel": "formModel"; "placeholder": "placeholder"; "fileType": "fileType"; "fileOutput": "fileOutput"; "customExtensions": "customExtensions"; "onFileSelected": "onFileSelected"; "onMultipleFilesSelected": "onMultipleFilesSelected"; "displayType": "displayType"; "buttonLabel": "buttonLabel"; "buttonType": "buttonType"; "multiSelect": "multiSelect"; "validateBeforeUpload": "validateBeforeUpload"; }, {}, never, never, false, never>;
117
124
  }
@@ -6,6 +6,7 @@ import { PagingInfo } from '../../display/table/table-pagination.component';
6
6
  import { TableSelectableRowContext } from '../../display/table/table-selectable-row.component';
7
7
  import { Overlay } from '../../display/view-overlay/view-overlay.component';
8
8
  import { MenuItem } from '../menu/menu.component';
9
+ import { TranslateService } from '@ngx-translate/core';
9
10
  import * as i0 from "@angular/core";
10
11
  export interface PickerItem<TValue = any, SItems = any> extends MenuItem {
11
12
  id: string;
@@ -28,8 +29,14 @@ export declare class ItemPickerSelectableContext<T> extends TableSelectableRowCo
28
29
  * AdvancedRowClickBehavior is disabled for ItemPicker.
29
30
  */
30
31
  readonly disableAdvancedRowClickBehavior: boolean;
32
+ /** When true the user has opted to select all items across all pages. Due to api pagination
33
+ * we don't have all of the items locally, so the host will need to tell the API to operate on all
34
+ * via api filters or other means.
35
+ */
36
+ isSelectingAllItems: boolean;
31
37
  }
32
38
  export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDestroy {
39
+ private translateService;
33
40
  /** Identifier for the component. This will be added to the beginning of all internal action elements */
34
41
  id?: string;
35
42
  /** Title displayed above the available items table */
@@ -61,6 +68,12 @@ export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDest
61
68
  * interpolation will be used.
62
69
  */
63
70
  noSelectedItemsMessage?: string;
71
+ /** When true the button to select all items will be visible in the available items header when
72
+ * the header checkbox is checked and there are multiple pages of results
73
+ */
74
+ enableSelectAllItems: boolean;
75
+ /** Passed in message to display in the selected items table when the select all items button is clicked */
76
+ selectAllItemsMessage: string;
64
77
  /** List of available items to pick from */
65
78
  availableItems: PickerItem[];
66
79
  /**
@@ -74,6 +87,17 @@ export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDest
74
87
  /** Track by used for the searchable table rows */
75
88
  trackByIndex: (index: number) => number;
76
89
  tableStatus: Overlay;
90
+ /** Text to display next to the checkbox in the available items header. Used to dislay how many items are
91
+ * selected when select all items is enabled
92
+ */
93
+ availableCheckboxText: string;
94
+ /** When set to true the select all items button will show in the available items header. This is
95
+ * shown when the user has enabled select all for the item picker and the user selects the header checkbox
96
+ * with more than one page of results.
97
+ */
98
+ showSelectAllItemsButton: boolean;
99
+ /** The total number of items returned from the api across all pages */
100
+ totalItemsBeforePaging?: number;
77
101
  /**
78
102
  * Template used to display the available and selected items as well as the available item header.
79
103
  * This will be set to the default template if a custom is not provided
@@ -83,11 +107,12 @@ export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDest
83
107
  internalizedSelectedItemTemplate: TemplateRef<any>;
84
108
  /** Default templates used if a custom template is not provided */
85
109
  private defaultAvailableHeaderTemplate;
110
+ private defaultAvailableSelectAllHeaderTemplate;
86
111
  private defaultAvailableItemTemplate;
87
112
  private defaultSelectedItemTemplate;
88
113
  /** Used to shut down our subscriptions when the component is destroyed */
89
114
  private destroyed;
90
- constructor();
115
+ constructor(translateService: TranslateService);
91
116
  ngOnInit(): void;
92
117
  /**
93
118
  * Watch for changes and react if the custom item template value changes
@@ -108,11 +133,17 @@ export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDest
108
133
  * @param removeItem
109
134
  */
110
135
  removeSelectedItem(removeItem: PickerItem): void;
136
+ /**
137
+ * Click handler for the select all items button
138
+ */
139
+ selectAllItems(): void;
140
+ private clearSelectedItemsMap;
111
141
  /**
112
142
  * Watch for changes to the row checkboxes form array and update the selected items
113
143
  * list
114
144
  */
115
145
  private setupRowCheckboxesWatcher;
146
+ private updateAvailableCheckboxText;
116
147
  /**
117
148
  * Watch to be told if changes to the map were made outside of the component and if so update
118
149
  * the array displayed in the selected list and select checkboxes for visible available items
@@ -120,5 +151,5 @@ export declare class ItemPickerComponent<T> implements OnInit, OnChanges, OnDest
120
151
  private setupSelectedItemsChangedWatcher;
121
152
  private setInternalizedTemplates;
122
153
  static ɵfac: i0.ɵɵFactoryDeclaration<ItemPickerComponent<any>, never>;
123
- static ɵcmp: i0.ɵɵComponentDeclaration<ItemPickerComponent<any>, "ec-item-picker", never, { "id": "id"; "availableTitle": "availableTitle"; "selectedTitle": "selectedTitle"; "itemName": "itemName"; "formModel": "formModel"; "customAvailableHeaderTemplate": "customAvailableHeaderTemplate"; "customAvailableItemTemplate": "customAvailableItemTemplate"; "customSelectedItemTemplate": "customSelectedItemTemplate"; "ready": "ready"; "getItems": "getItems"; "selectionContext": "selectionContext"; "noDataMessage": "noDataMessage"; "noSelectedItemsMessage": "noSelectedItemsMessage"; }, {}, never, never, false, never>;
154
+ static ɵcmp: i0.ɵɵComponentDeclaration<ItemPickerComponent<any>, "ec-item-picker", never, { "id": "id"; "availableTitle": "availableTitle"; "selectedTitle": "selectedTitle"; "itemName": "itemName"; "formModel": "formModel"; "customAvailableHeaderTemplate": "customAvailableHeaderTemplate"; "customAvailableItemTemplate": "customAvailableItemTemplate"; "customSelectedItemTemplate": "customSelectedItemTemplate"; "ready": "ready"; "getItems": "getItems"; "selectionContext": "selectionContext"; "noDataMessage": "noDataMessage"; "noSelectedItemsMessage": "noSelectedItemsMessage"; "enableSelectAllItems": "enableSelectAllItems"; "selectAllItemsMessage": "selectAllItemsMessage"; }, {}, never, never, false, never>;
124
155
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@energycap/components",
3
- "version": "0.39.24-ECAP-26378-account-icon-pipe-summary-account-support.20240913-1549",
3
+ "version": "0.39.25-ECAP-26539-Item-Picker-Select-All.20240916-0943",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
@@ -44,5 +44,8 @@
44
44
  "LearnMore_SC": "Learn more",
45
45
  "SelectZipFiles_ELS": "Select ZIP files...",
46
46
  "Browse_TC": "Browse",
47
- "is invalid": "is invalid"
47
+ "is invalid": "is invalid",
48
+ "AllItemPickerItemsSelected_SC": "All {{count}} {{itemName}} selected",
49
+ "SelectAllItemPickerItems_TC": "Select all {{count}} {{itemName}}",
50
+ "CountSelected_TC": "{{count}} selected"
48
51
  }