@meshmakers/shared-ui 3.3.540 → 3.3.560

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.540",
3
+ "version": "3.3.560",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.2.0",
6
6
  "@angular/core": "^21.2.0",
@@ -991,6 +991,8 @@ interface EntitySelectDialogOptions<T> {
991
991
  width?: number;
992
992
  /** Dialog height (default: 600) */
993
993
  height?: number;
994
+ /** Translatable messages for the dialog UI */
995
+ messages?: Partial<EntitySelectDialogMessages>;
994
996
  }
995
997
  /**
996
998
  * Result returned from the entity select dialog
@@ -999,6 +1001,54 @@ interface EntitySelectDialogResult<T> {
999
1001
  /** Selected entities (single item array for single-select) */
1000
1002
  selectedEntities: T[];
1001
1003
  }
1004
+ /**
1005
+ * Translatable messages for the entity select dialog.
1006
+ */
1007
+ interface EntitySelectDialogMessages {
1008
+ /** Search textbox placeholder. Default: "Search..." */
1009
+ searchPlaceholder: string;
1010
+ /** Cancel button text. Default: "Cancel" */
1011
+ cancelButton: string;
1012
+ /** Confirm button text. Default: "OK" */
1013
+ confirmButton: string;
1014
+ /** Text appended to the count of selected items (e.g. "3 selected"). Default: "selected" */
1015
+ selectedSuffix: string;
1016
+ /** Pager: "items per page" label */
1017
+ pagerItemsPerPage: string;
1018
+ /** Pager: "of" label between current and total */
1019
+ pagerOf: string;
1020
+ /** Pager: "items" label */
1021
+ pagerItems: string;
1022
+ /** Pager: "Page" label */
1023
+ pagerPage: string;
1024
+ /** Pager: tooltip for first page button */
1025
+ pagerFirstPage: string;
1026
+ /** Pager: tooltip for last page button */
1027
+ pagerLastPage: string;
1028
+ /** Pager: tooltip for previous page button */
1029
+ pagerPreviousPage: string;
1030
+ /** Pager: tooltip for next page button */
1031
+ pagerNextPage: string;
1032
+ }
1033
+ declare const DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES: EntitySelectDialogMessages;
1034
+ /**
1035
+ * Translatable messages for the entity select input.
1036
+ */
1037
+ interface EntitySelectInputMessages {
1038
+ /** Autocomplete placeholder. Default: "Select an entity..." */
1039
+ placeholder: string;
1040
+ /** Advanced search link/button label. Default: "Advanced Search..." */
1041
+ advancedSearchLabel: string;
1042
+ /** Default dialog title. Default: "Select Entity" */
1043
+ dialogTitle: string;
1044
+ /** Template for "no results" message. Use {0} for the search term. Default: "No entities found for \"{0}\"" */
1045
+ noEntitiesFound: string;
1046
+ /** Template for minimum characters hint. Use {0} for the minimum count. Default: "Type at least {0} characters to search..." */
1047
+ minCharactersHint: string;
1048
+ /** Text appended to count for multi-select display (e.g. "3 selected"). Default: "selected" */
1049
+ selectedSuffix: string;
1050
+ }
1051
+ declare const DEFAULT_ENTITY_SELECT_INPUT_MESSAGES: EntitySelectInputMessages;
1002
1052
 
1003
1053
  declare class EntitySelectInputComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
1004
1054
  autocomplete: AutoCompleteComponent;
@@ -1012,6 +1062,9 @@ declare class EntitySelectInputComponent implements OnInit, OnDestroy, ControlVa
1012
1062
  dialogTitle: string;
1013
1063
  multiSelect: boolean;
1014
1064
  advancedSearchLabel: string;
1065
+ dialogMessages?: Partial<EntitySelectDialogMessages>;
1066
+ _messages: EntitySelectInputMessages;
1067
+ set messages(value: Partial<EntitySelectInputMessages>);
1015
1068
  private _disabled;
1016
1069
  get disabled(): boolean;
1017
1070
  set disabled(value: boolean);
@@ -1034,6 +1087,7 @@ declare class EntitySelectInputComponent implements OnInit, OnDestroy, ControlVa
1034
1087
  protected readonly searchIcon: _progress_kendo_svg_icons.SVGIcon;
1035
1088
  private elRef;
1036
1089
  private dialogService;
1090
+ formatMessage(template: string, ...args: unknown[]): string;
1037
1091
  ngOnInit(): void;
1038
1092
  ngOnDestroy(): void;
1039
1093
  writeValue(value: unknown): void;
@@ -1052,7 +1106,7 @@ declare class EntitySelectInputComponent implements OnInit, OnDestroy, ControlVa
1052
1106
  private selectEntity;
1053
1107
  openAdvancedSearch(event?: Event): Promise<void>;
1054
1108
  static ɵfac: i0.ɵɵFactoryDeclaration<EntitySelectInputComponent, never>;
1055
- static ɵcmp: i0.ɵɵComponentDeclaration<EntitySelectInputComponent, "mm-entity-select-input", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; }; "maxResults": { "alias": "maxResults"; "required": false; }; "debounceMs": { "alias": "debounceMs"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "dialogDataSource": { "alias": "dialogDataSource"; "required": false; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; "advancedSearchLabel": { "alias": "advancedSearchLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "entitySelected": "entitySelected"; "entityCleared": "entityCleared"; "entitiesSelected": "entitiesSelected"; }, never, never, true, never>;
1109
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntitySelectInputComponent, "mm-entity-select-input", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minSearchLength": { "alias": "minSearchLength"; "required": false; }; "maxResults": { "alias": "maxResults"; "required": false; }; "debounceMs": { "alias": "debounceMs"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "dialogDataSource": { "alias": "dialogDataSource"; "required": false; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; "advancedSearchLabel": { "alias": "advancedSearchLabel"; "required": false; }; "dialogMessages": { "alias": "dialogMessages"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "entitySelected": "entitySelected"; "entityCleared": "entityCleared"; "entitiesSelected": "entitiesSelected"; }, never, never, true, never>;
1056
1110
  }
1057
1111
 
1058
1112
  declare class EntitySelectDialogComponent<T> implements OnInit, OnDestroy {
@@ -1062,6 +1116,8 @@ declare class EntitySelectDialogComponent<T> implements OnInit, OnDestroy {
1062
1116
  dataSource: EntitySelectDialogDataSource<T>;
1063
1117
  multiSelect: boolean;
1064
1118
  preSelectedEntities: T[];
1119
+ _messages: EntitySelectDialogMessages;
1120
+ set messages(value: Partial<EntitySelectDialogMessages>);
1065
1121
  columns: TableColumn[];
1066
1122
  gridData: {
1067
1123
  data: T[];
@@ -1087,7 +1143,7 @@ declare class EntitySelectDialogComponent<T> implements OnInit, OnDestroy {
1087
1143
  onConfirm(): void;
1088
1144
  onCancel(): void;
1089
1145
  static ɵfac: i0.ɵɵFactoryDeclaration<EntitySelectDialogComponent<any>, never>;
1090
- static ɵcmp: i0.ɵɵComponentDeclaration<EntitySelectDialogComponent<any>, "mm-entity-select-dialog", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; "preSelectedEntities": { "alias": "preSelectedEntities"; "required": false; }; }, {}, never, never, true, never>;
1146
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntitySelectDialogComponent<any>, "mm-entity-select-dialog", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; "preSelectedEntities": { "alias": "preSelectedEntities"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; }, {}, never, never, true, never>;
1091
1147
  }
1092
1148
 
1093
1149
  declare class EntitySelectDialogService {
@@ -1241,7 +1297,7 @@ declare class SaveAsDialogService {
1241
1297
  /**
1242
1298
  * The type of time range selection
1243
1299
  */
1244
- type TimeRangeType = 'year' | 'quarter' | 'month' | 'relative' | 'custom';
1300
+ type TimeRangeType = 'year' | 'quarter' | 'month' | 'day' | 'relative' | 'custom';
1245
1301
  /**
1246
1302
  * The unit for relative time calculations
1247
1303
  */
@@ -1297,6 +1353,12 @@ interface TimeRangeSelection {
1297
1353
  year?: number;
1298
1354
  quarter?: Quarter;
1299
1355
  month?: number;
1356
+ /** Day of month (1-31), used with 'day' type */
1357
+ day?: number;
1358
+ /** Hour from (0-23), optional hour filter for 'day' type */
1359
+ hourFrom?: number;
1360
+ /** Hour to (1-24), optional hour filter for 'day' type. Exclusive upper bound. */
1361
+ hourTo?: number;
1300
1362
  relativeValue?: number;
1301
1363
  relativeUnit?: RelativeTimeUnit;
1302
1364
  customFrom?: Date;
@@ -1317,13 +1379,17 @@ interface TimeRangePickerLabels {
1317
1379
  year?: string;
1318
1380
  quarter?: string;
1319
1381
  month?: string;
1382
+ day?: string;
1320
1383
  relativeValue?: string;
1321
1384
  relativeUnit?: string;
1385
+ hourFrom?: string;
1386
+ hourTo?: string;
1322
1387
  customFrom?: string;
1323
1388
  customTo?: string;
1324
1389
  typeYear?: string;
1325
1390
  typeQuarter?: string;
1326
1391
  typeMonth?: string;
1392
+ typeDay?: string;
1327
1393
  typeRelative?: string;
1328
1394
  typeCustom?: string;
1329
1395
  unitHours?: string;
@@ -1358,14 +1424,25 @@ declare class TimeRangeUtils {
1358
1424
  * Uses exclusive end boundary (start of next month) for correct LESS_THAN filtering.
1359
1425
  */
1360
1426
  static getMonthRange(year: number, month: number): TimeRange;
1427
+ /**
1428
+ * Calculate time range for a specific day.
1429
+ * Uses exclusive end boundary (start of next day) for correct LESS_THAN filtering.
1430
+ * Optionally filters to a specific hour range within the day.
1431
+ * @param hourFrom Start hour (0-23), defaults to 0
1432
+ * @param hourTo End hour (1-24, exclusive), defaults to 24 (= next day 00:00)
1433
+ */
1434
+ static getDayRange(year: number, month: number, day: number, hourFrom?: number, hourTo?: number): TimeRange;
1361
1435
  /**
1362
1436
  * Calculate time range relative to now
1363
1437
  */
1364
1438
  static getRelativeRange(value: number, unit: RelativeTimeUnit): TimeRange;
1365
1439
  /**
1366
- * Calculate time range from selection
1440
+ * Calculate time range from selection.
1441
+ * @param selection The current selection state
1442
+ * @param showTime If false (default), custom date ranges are normalized to full-day boundaries
1443
+ * with exclusive end (from: 00:00:00 UTC, to: start of next day 00:00:00 UTC)
1367
1444
  */
1368
- static getTimeRangeFromSelection(selection: TimeRangeSelection): TimeRange | null;
1445
+ static getTimeRangeFromSelection(selection: TimeRangeSelection, showTime?: boolean): TimeRange | null;
1369
1446
  /**
1370
1447
  * Convert TimeRange to ISO 8601 format
1371
1448
  */
@@ -1433,8 +1510,11 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
1433
1510
  protected selectedYear: i0.WritableSignal<number>;
1434
1511
  protected selectedQuarter: i0.WritableSignal<Quarter>;
1435
1512
  protected selectedMonth: i0.WritableSignal<number>;
1513
+ protected selectedDay: i0.WritableSignal<number>;
1436
1514
  protected relativeValue: i0.WritableSignal<number>;
1437
1515
  protected relativeUnit: i0.WritableSignal<RelativeTimeUnit>;
1516
+ protected hourFrom: i0.WritableSignal<number | null>;
1517
+ protected hourTo: i0.WritableSignal<number | null>;
1438
1518
  protected customFrom: i0.WritableSignal<Date>;
1439
1519
  protected customTo: i0.WritableSignal<Date>;
1440
1520
  protected mergedLabels: i0.Signal<{
@@ -1442,13 +1522,17 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
1442
1522
  year?: string;
1443
1523
  quarter?: string;
1444
1524
  month?: string;
1525
+ day?: string;
1445
1526
  relativeValue?: string;
1446
1527
  relativeUnit?: string;
1528
+ hourFrom?: string;
1529
+ hourTo?: string;
1447
1530
  customFrom?: string;
1448
1531
  customTo?: string;
1449
1532
  typeYear?: string;
1450
1533
  typeQuarter?: string;
1451
1534
  typeMonth?: string;
1535
+ typeDay?: string;
1452
1536
  typeRelative?: string;
1453
1537
  typeCustom?: string;
1454
1538
  unitHours?: string;
@@ -1464,6 +1548,9 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
1464
1548
  protected yearOptions: i0.Signal<TimeRangeOption<number>[]>;
1465
1549
  protected quarterOptions: i0.Signal<TimeRangeOption<Quarter>[]>;
1466
1550
  protected monthOptions: i0.Signal<TimeRangeOption<number>[]>;
1551
+ protected dayOptions: i0.Signal<TimeRangeOption<number>[]>;
1552
+ protected hourFromOptions: i0.Signal<TimeRangeOption<number>[]>;
1553
+ protected hourToOptions: i0.Signal<TimeRangeOption<number>[]>;
1467
1554
  protected relativeUnitOptions: i0.Signal<TimeRangeOption<RelativeTimeUnit>[]>;
1468
1555
  protected currentRange: i0.Signal<TimeRange | null>;
1469
1556
  protected minDate: i0.Signal<Date>;
@@ -1477,6 +1564,10 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
1477
1564
  protected onYearChange(year: number): void;
1478
1565
  protected onQuarterChange(quarter: Quarter): void;
1479
1566
  protected onMonthChange(month: number): void;
1567
+ protected onDayChange(day: number): void;
1568
+ protected onHourFromChange(hour: number | null): void;
1569
+ protected onHourToChange(hour: number | null): void;
1570
+ protected clearHourFilter(): void;
1480
1571
  protected onRelativeValueChange(value: number): void;
1481
1572
  protected onRelativeUnitChange(unit: RelativeTimeUnit): void;
1482
1573
  protected onCustomFromChange(date: Date): void;
@@ -1812,5 +1903,5 @@ declare class ImportStrategyDialogService {
1812
1903
 
1813
1904
  declare function provideMmSharedUi(): EnvironmentProviders;
1814
1905
 
1815
- export { BaseFormComponent, BaseTreeDetailComponent, ButtonTypes, BytesToSizePipe, CRON_PRESETS, ConfirmationService, ConfirmationWindowResult, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_LIST_VIEW_MESSAGES, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_TIME_RANGE_LABELS, DataSourceBase, DataSourceTyped, DialogType, EntitySelectDialogComponent, EntitySelectDialogService, EntitySelectInputComponent, FetchResultBase, FetchResultTyped, FileUploadResult, FileUploadService, FormTitleExtraDirective, 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 };
1816
- export type { BaseFormConfig, BaseFormMessages, ColumnDefinition, ConfirmationButtonLabels, ConfirmationWindowData, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogOptions, EntitySelectDialogResult, FetchDataOptions, FetchResult, FileUploadData, 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, UnsavedChangesMessages, Weekday };
1906
+ export { BaseFormComponent, BaseTreeDetailComponent, ButtonTypes, BytesToSizePipe, CRON_PRESETS, ConfirmationService, ConfirmationWindowResult, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES, DEFAULT_ENTITY_SELECT_INPUT_MESSAGES, DEFAULT_LIST_VIEW_MESSAGES, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_TIME_RANGE_LABELS, DataSourceBase, DataSourceTyped, DialogType, EntitySelectDialogComponent, EntitySelectDialogService, EntitySelectInputComponent, FetchResultBase, FetchResultTyped, FileUploadResult, FileUploadService, FormTitleExtraDirective, 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 };
1907
+ export type { BaseFormConfig, BaseFormMessages, ColumnDefinition, ConfirmationButtonLabels, ConfirmationWindowData, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogMessages, EntitySelectDialogOptions, EntitySelectDialogResult, EntitySelectInputMessages, FetchDataOptions, FetchResult, FileUploadData, 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, UnsavedChangesMessages, Weekday };