@meshmakers/shared-ui 3.3.500 → 3.3.520

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshmakers/shared-ui",
3
- "version": "3.3.500",
3
+ "version": "3.3.520",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.2.0",
6
6
  "@angular/core": "^21.2.0",
@@ -12,7 +12,8 @@ import { PagerSettings, SelectableSettings, SelectionEvent, PageChangeEvent, Cel
12
12
  import { SVGIcon as SVGIcon$1 } from '@progress/kendo-svg-icons/dist/svg-icon.interface';
13
13
  import { MenuItem, ContextMenuComponent, ContextMenuSelectEvent, ContextMenuPopupEvent } from '@progress/kendo-angular-menu';
14
14
  import { AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
15
- import { DialogContentBase, DialogRef } from '@progress/kendo-angular-dialog';
15
+ import { DialogContentBase, DialogRef, WindowRef } from '@progress/kendo-angular-dialog';
16
+ import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
16
17
  import { CanDeactivate } from '@angular/router';
17
18
 
18
19
  /**
@@ -66,9 +67,66 @@ interface TableColumn {
66
67
  * Set to false to disable sorting for computed or client-side-only columns.
67
68
  */
68
69
  sortable?: boolean;
70
+ /**
71
+ * Whether filtering is enabled for this column.
72
+ * When not set, defaults to true (filterable).
73
+ * Set to false to hide the filter cell for this column when row filtering is active.
74
+ */
75
+ filterable?: boolean;
76
+ /**
77
+ * Dropdown filter options for the row filter.
78
+ * When set, the column's row filter renders a dropdown instead of a text input.
79
+ * Each option has a display text and a value used for filtering.
80
+ */
81
+ filterOptions?: {
82
+ text: string;
83
+ value: string;
84
+ }[];
69
85
  }
70
86
  type ColumnDefinition = string | TableColumn;
71
87
  type ContextMenuType = 'contextMenu' | 'actionMenu';
88
+ /**
89
+ * Translatable messages for the ListViewComponent.
90
+ * Pass translated strings to override the English defaults.
91
+ */
92
+ interface ListViewMessages {
93
+ /** Search input placeholder. Default: "Search in all columns..." */
94
+ searchPlaceholder: string;
95
+ /** Tooltip for "Show Row Filter" button. Default: "Show Row Filter" */
96
+ showRowFilter: string;
97
+ /** Tooltip for "Export to Excel" button. Default: "Export to Excel" */
98
+ exportToExcel: string;
99
+ /** Tooltip for "Export to PDF" button. Default: "Export to PDF" */
100
+ exportToPdf: string;
101
+ /** Tooltip for "Refresh Data" button. Default: "Refresh Data" */
102
+ refreshData: string;
103
+ /** Title for the actions command column. Default: "Actions" */
104
+ actionsColumnTitle: string;
105
+ /** PDF footer page template. Default: "Page {pageNum} of {totalPages}" */
106
+ pdfPageTemplate: string;
107
+ /** Pager: text after page size selector. Default: "items per page" */
108
+ pagerItemsPerPage: string;
109
+ /** Pager: "of" text between page number and total. Default: "of" */
110
+ pagerOf: string;
111
+ /** Pager: text after total count. Default: "items" */
112
+ pagerItems: string;
113
+ /** Pager: text before page input. Default: "Page" */
114
+ pagerPage: string;
115
+ /** Pager: first page button tooltip. Default: "Go to the first page" */
116
+ pagerFirstPage: string;
117
+ /** Pager: last page button tooltip. Default: "Go to the last page" */
118
+ pagerLastPage: string;
119
+ /** Pager: previous page button tooltip. Default: "Go to the previous page" */
120
+ pagerPreviousPage: string;
121
+ /** Pager: next page button tooltip. Default: "Go to the next page" */
122
+ pagerNextPage: string;
123
+ /** Grid: no records message. Default: "No records available." */
124
+ noRecords: string;
125
+ }
126
+ /**
127
+ * Default English messages for the ListViewComponent.
128
+ */
129
+ declare const DEFAULT_LIST_VIEW_MESSAGES: ListViewMessages;
72
130
 
73
131
  declare class ListViewComponent extends CommandBaseService implements OnDestroy, AfterViewInit {
74
132
  private readonly cronHumanizer;
@@ -85,7 +143,7 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
85
143
  protected _contextMenuItems: MenuItem[];
86
144
  protected _showRowFilter: boolean;
87
145
  /** Indicates if the data source is currently loading data */
88
- protected isLoading: boolean;
146
+ protected isLoading: i0.WritableSignal<boolean>;
89
147
  private gridComponent?;
90
148
  private dataBindingDirective?;
91
149
  gridContextMenu?: ContextMenuComponent;
@@ -108,10 +166,12 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
108
166
  sortable: boolean;
109
167
  rowFilterEnabled: boolean;
110
168
  searchTextBoxEnabled: boolean;
169
+ protected _messages: ListViewMessages;
170
+ set messages(value: Partial<ListViewMessages>);
171
+ get messages(): ListViewMessages;
111
172
  selectable: SelectableSettings;
112
173
  set columns(cols: ColumnDefinition[]);
113
174
  get columns(): TableColumn[];
114
- private readonly cdr;
115
175
  constructor();
116
176
  ngAfterViewInit(): void;
117
177
  ngOnDestroy(): void;
@@ -136,6 +196,9 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
136
196
  * Gets the human-readable description of a cron expression.
137
197
  */
138
198
  protected getCronHumanReadable(expression: unknown): string;
199
+ protected hasFilterOptions(column: TableColumn): boolean;
200
+ protected getSelectedFilterValue(column: TableColumn): string | null;
201
+ protected onDropdownFilter(value: string | null, column: TableColumn): void;
139
202
  protected onShowRowFilter(): void;
140
203
  protected onRefresh(): void;
141
204
  onExecuteFilter: EventEmitter<string | null>;
@@ -154,9 +217,10 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
154
217
  protected onContextMenuClosed(_event: ContextMenuPopupEvent): void;
155
218
  protected onToolbarCommand(commandItem: CommandItem): Promise<void>;
156
219
  private buildMenuItems;
220
+ protected getPdfPageText(pageNum: number, totalPages: number): string;
157
221
  protected readonly moreVerticalIcon: SVGIcon$1;
158
222
  static ɵfac: i0.ɵɵFactoryDeclaration<ListViewComponent, never>;
159
- static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "mm-list-view", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "rowIsClickable": { "alias": "rowIsClickable"; "required": false; }; "showRowCheckBoxes": { "alias": "showRowCheckBoxes"; "required": false; }; "showRowSelectAllCheckBox": { "alias": "showRowSelectAllCheckBox"; "required": false; }; "contextMenuType": { "alias": "contextMenuType"; "required": false; }; "leftToolbarActions": { "alias": "leftToolbarActions"; "required": false; }; "rightToolbarActions": { "alias": "rightToolbarActions"; "required": false; }; "actionCommandItems": { "alias": "actionCommandItems"; "required": false; }; "contextMenuCommandItems": { "alias": "contextMenuCommandItems"; "required": false; }; "excelExportFileName": { "alias": "excelExportFileName"; "required": false; }; "pdfExportFileName": { "alias": "pdfExportFileName"; "required": false; }; "pageable": { "alias": "pageable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "rowFilterEnabled": { "alias": "rowFilterEnabled"; "required": false; }; "searchTextBoxEnabled": { "alias": "searchTextBoxEnabled"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; }, { "rowClicked": "rowClicked"; }, never, never, true, never>;
223
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "mm-list-view", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "rowIsClickable": { "alias": "rowIsClickable"; "required": false; }; "showRowCheckBoxes": { "alias": "showRowCheckBoxes"; "required": false; }; "showRowSelectAllCheckBox": { "alias": "showRowSelectAllCheckBox"; "required": false; }; "contextMenuType": { "alias": "contextMenuType"; "required": false; }; "leftToolbarActions": { "alias": "leftToolbarActions"; "required": false; }; "rightToolbarActions": { "alias": "rightToolbarActions"; "required": false; }; "actionCommandItems": { "alias": "actionCommandItems"; "required": false; }; "contextMenuCommandItems": { "alias": "contextMenuCommandItems"; "required": false; }; "excelExportFileName": { "alias": "excelExportFileName"; "required": false; }; "pdfExportFileName": { "alias": "pdfExportFileName"; "required": false; }; "pageable": { "alias": "pageable"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "rowFilterEnabled": { "alias": "rowFilterEnabled"; "required": false; }; "searchTextBoxEnabled": { "alias": "searchTextBoxEnabled"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; }, { "rowClicked": "rowClicked"; }, never, never, true, never>;
160
224
  }
161
225
 
162
226
  declare class UploadFileDialogComponent extends DialogContentBase {
@@ -602,8 +666,13 @@ declare class MmListViewDataBindingDirective extends DataBindingDirective implem
602
666
  private _textSearchValue;
603
667
  private _forceRefresh;
604
668
  constructor();
605
- ngOnInit(): Promise<void>;
669
+ ngOnInit(): void;
606
670
  ngOnDestroy(): void;
671
+ /**
672
+ * Triggers a rebind when the filter state changes programmatically.
673
+ * Syncs the grid's filter into the DataBindingDirective state before rebinding.
674
+ */
675
+ notifyFilterChange(filter: CompositeFilterDescriptor): void;
607
676
  rebind(): void;
608
677
  static ɵfac: i0.ɵɵFactoryDeclaration<MmListViewDataBindingDirective, never>;
609
678
  static ɵdir: i0.ɵɵDirectiveDeclaration<MmListViewDataBindingDirective, "[mmListViewDataBinding]", never, {}, {}, never, never, true, never>;
@@ -732,17 +801,18 @@ interface MessageDetailsDialogData {
732
801
  title: string;
733
802
  details: string;
734
803
  level: 'error' | 'warning';
804
+ copyLabel?: string;
805
+ closeLabel?: string;
735
806
  }
736
807
  declare class MessageDetailsDialogComponent implements OnInit {
737
808
  protected readonly copyIcon: _progress_kendo_svg_icons.SVGIcon;
738
809
  protected readonly xIcon: _progress_kendo_svg_icons.SVGIcon;
739
- private readonly dialogRef;
810
+ private readonly windowRef;
740
811
  data: MessageDetailsDialogData;
741
- title: string;
742
812
  details: string;
743
- level: 'error' | 'warning';
813
+ copyLabel: string;
814
+ closeLabel: string;
744
815
  ngOnInit(): void;
745
- get dialogTitle(): string;
746
816
  onClose(): void;
747
817
  copyToClipboard(): Promise<void>;
748
818
  private fallbackCopyToClipboard;
@@ -751,11 +821,11 @@ declare class MessageDetailsDialogComponent implements OnInit {
751
821
  }
752
822
 
753
823
  declare class MessageDetailsDialogService {
754
- private readonly dialogService;
824
+ private readonly windowService;
755
825
  /**
756
- * Opens a modal dialog to show message details with copy-to-clipboard functionality
826
+ * Opens a resizable window to show message details with copy-to-clipboard functionality
757
827
  */
758
- showDetailsDialog(data: MessageDetailsDialogData): DialogRef;
828
+ showDetailsDialog(data: MessageDetailsDialogData): WindowRef;
759
829
  static ɵfac: i0.ɵɵFactoryDeclaration<MessageDetailsDialogService, never>;
760
830
  static ɵprov: i0.ɵɵInjectableDeclaration<MessageDetailsDialogService>;
761
831
  }
@@ -1644,5 +1714,5 @@ declare class ImportStrategyDialogService {
1644
1714
 
1645
1715
  declare function provideMmSharedUi(): EnvironmentProviders;
1646
1716
 
1647
- export { BaseFormComponent, BaseTreeDetailComponent, BytesToSizePipe, CRON_PRESETS, ConfirmationService, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_TIME_RANGE_LABELS, DataSourceBase, DataSourceTyped, EntitySelectDialogComponent, EntitySelectDialogService, EntitySelectInputComponent, FetchResultBase, FetchResultTyped, FileUploadService, HAS_UNSAVED_CHANGES, HOUR_INTERVALS, HierarchyDataSource, HierarchyDataSourceBase, ImportStrategyDialogComponent, ImportStrategyDialogResult, ImportStrategyDialogService, ImportStrategyDto, InputDialogComponent, InputService, ListViewComponent, MINUTE_INTERVALS, MessageDetailsDialogComponent, MessageDetailsDialogService, MessageListenerService, MmListViewDataBindingDirective, NotificationDisplayService, PascalCasePipe, ProgressValue, ProgressWindowComponent, ProgressWindowService, RELATIVE_WEEKS, SECOND_INTERVALS, SaveAsDialogComponent, SaveAsDialogService, TimeRangePickerComponent, TimeRangeUtils, TreeComponent, UnsavedChangesDirective, UnsavedChangesGuard, UploadFileDialogComponent, WEEKDAYS, WEEKDAY_ABBREVIATIONS, generateDayOfMonthOptions, generateHourOptions, generateMinuteOptions, provideMmSharedUi };
1648
- export type { BaseFormConfig, ColumnDefinition, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogOptions, EntitySelectDialogResult, FetchDataOptions, FetchResult, HasUnsavedChanges, MessageDetailsDialogData, NameAvailabilityResult, NodeDroppedEvent, NodeInfo, ProgressWindowConfig, ProgressWindowData, ProgressWindowOptions, ProgressWindowResult, Quarter, RelativeTimeUnit, ResponsiveFormBreakPoint, SaveAsDialogDataSource, SaveAsDialogOptions, SaveAsDialogResult, ScheduleType, StatusFieldConfig, StatusIconMapping, StatusMapping, TableColumn, TimeRange, TimeRangeISO, TimeRangeOption, TimeRangePickerConfig, TimeRangePickerLabels, TimeRangeSelection, TimeRangeType, Weekday };
1717
+ export { BaseFormComponent, BaseTreeDetailComponent, BytesToSizePipe, CRON_PRESETS, ConfirmationService, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_LIST_VIEW_MESSAGES, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_TIME_RANGE_LABELS, DataSourceBase, DataSourceTyped, EntitySelectDialogComponent, EntitySelectDialogService, EntitySelectInputComponent, FetchResultBase, FetchResultTyped, FileUploadService, HAS_UNSAVED_CHANGES, HOUR_INTERVALS, HierarchyDataSource, HierarchyDataSourceBase, ImportStrategyDialogComponent, ImportStrategyDialogResult, ImportStrategyDialogService, ImportStrategyDto, InputDialogComponent, InputService, ListViewComponent, MINUTE_INTERVALS, MessageDetailsDialogComponent, MessageDetailsDialogService, MessageListenerService, MmListViewDataBindingDirective, NotificationDisplayService, PascalCasePipe, ProgressValue, ProgressWindowComponent, ProgressWindowService, RELATIVE_WEEKS, SECOND_INTERVALS, SaveAsDialogComponent, SaveAsDialogService, TimeRangePickerComponent, TimeRangeUtils, TreeComponent, UnsavedChangesDirective, UnsavedChangesGuard, UploadFileDialogComponent, WEEKDAYS, WEEKDAY_ABBREVIATIONS, generateDayOfMonthOptions, generateHourOptions, generateMinuteOptions, provideMmSharedUi };
1718
+ export type { BaseFormConfig, ColumnDefinition, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogOptions, EntitySelectDialogResult, FetchDataOptions, FetchResult, HasUnsavedChanges, ListViewMessages, MessageDetailsDialogData, NameAvailabilityResult, NodeDroppedEvent, NodeInfo, ProgressWindowConfig, ProgressWindowData, ProgressWindowOptions, ProgressWindowResult, Quarter, RelativeTimeUnit, ResponsiveFormBreakPoint, SaveAsDialogDataSource, SaveAsDialogOptions, SaveAsDialogResult, ScheduleType, StatusFieldConfig, StatusIconMapping, StatusMapping, TableColumn, TimeRange, TimeRangeISO, TimeRangeOption, TimeRangePickerConfig, TimeRangePickerLabels, TimeRangeSelection, TimeRangeType, Weekday };