@meshmakers/shared-ui 3.3.540 → 3.3.550

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.
@@ -2494,6 +2494,29 @@ var ImportStrategyDto;
2494
2494
  ImportStrategyDto[ImportStrategyDto["Upsert"] = 1] = "Upsert";
2495
2495
  })(ImportStrategyDto || (ImportStrategyDto = {}));
2496
2496
 
2497
+ const DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES = {
2498
+ searchPlaceholder: 'Search...',
2499
+ cancelButton: 'Cancel',
2500
+ confirmButton: 'OK',
2501
+ selectedSuffix: 'selected',
2502
+ pagerItemsPerPage: 'items per page',
2503
+ pagerOf: 'of',
2504
+ pagerItems: 'items',
2505
+ pagerPage: 'Page',
2506
+ pagerFirstPage: 'Go to the first page',
2507
+ pagerLastPage: 'Go to the last page',
2508
+ pagerPreviousPage: 'Go to the previous page',
2509
+ pagerNextPage: 'Go to the next page',
2510
+ };
2511
+ const DEFAULT_ENTITY_SELECT_INPUT_MESSAGES = {
2512
+ placeholder: 'Select an entity...',
2513
+ advancedSearchLabel: 'Advanced Search...',
2514
+ dialogTitle: 'Select Entity',
2515
+ noEntitiesFound: 'No entities found for "{0}"',
2516
+ minCharactersHint: 'Type at least {0} characters to search...',
2517
+ selectedSuffix: 'selected',
2518
+ };
2519
+
2497
2520
  class EntitySelectDialogComponent {
2498
2521
  windowRef = inject(WindowRef);
2499
2522
  searchSubject = new Subject();
@@ -2501,6 +2524,10 @@ class EntitySelectDialogComponent {
2501
2524
  dataSource;
2502
2525
  multiSelect = false;
2503
2526
  preSelectedEntities = [];
2527
+ _messages = { ...DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES };
2528
+ set messages(value) {
2529
+ this._messages = { ...DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES, ...value };
2530
+ }
2504
2531
  columns = [];
2505
2532
  gridData = { data: [], total: 0 };
2506
2533
  selectedEntities = [];
@@ -2629,14 +2656,14 @@ class EntitySelectDialogComponent {
2629
2656
  this.windowRef.close();
2630
2657
  }
2631
2658
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySelectDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2632
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: EntitySelectDialogComponent, isStandalone: true, selector: "mm-entity-select-dialog", inputs: { dataSource: "dataSource", multiSelect: "multiSelect", preSelectedEntities: "preSelectedEntities" }, ngImport: i0, template: `
2659
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: EntitySelectDialogComponent, isStandalone: true, selector: "mm-entity-select-dialog", inputs: { dataSource: "dataSource", multiSelect: "multiSelect", preSelectedEntities: "preSelectedEntities", messages: "messages" }, ngImport: i0, template: `
2633
2660
  <div class="entity-select-dialog-content">
2634
2661
  <div class="search-toolbar">
2635
2662
  <kendo-textbox
2636
2663
  [style.width.px]="250"
2637
- placeholder="Search..."
2664
+ [placeholder]="_messages.searchPlaceholder"
2638
2665
  [value]="searchValue"
2639
- (valueChange)="onSearchChange($event)">
2666
+ (valueChange)="onSearchChange($event ?? '')">
2640
2667
  </kendo-textbox>
2641
2668
  </div>
2642
2669
 
@@ -2651,6 +2678,17 @@ class EntitySelectDialogComponent {
2651
2678
  (selectionChange)="onSelectionChange($event)"
2652
2679
  class="entity-grid">
2653
2680
 
2681
+ <kendo-grid-messages
2682
+ [pagerItemsPerPage]="_messages.pagerItemsPerPage"
2683
+ [pagerOf]="_messages.pagerOf"
2684
+ [pagerItems]="_messages.pagerItems"
2685
+ [pagerPage]="_messages.pagerPage"
2686
+ [pagerFirstPage]="_messages.pagerFirstPage"
2687
+ [pagerLastPage]="_messages.pagerLastPage"
2688
+ [pagerPreviousPage]="_messages.pagerPreviousPage"
2689
+ [pagerNextPage]="_messages.pagerNextPage"
2690
+ ></kendo-grid-messages>
2691
+
2654
2692
  <kendo-grid-checkbox-column
2655
2693
  [width]="40"
2656
2694
  [showSelectAll]="multiSelect">
@@ -2665,20 +2703,20 @@ class EntitySelectDialogComponent {
2665
2703
  </kendo-grid>
2666
2704
 
2667
2705
  <div class="selection-info" *ngIf="selectedEntities.length > 0">
2668
- {{ selectedEntities.length }} selected
2706
+ {{ selectedEntities.length }} {{ _messages.selectedSuffix }}
2669
2707
  </div>
2670
2708
 
2671
2709
  <div class="dialog-actions">
2672
- <button kendoButton (click)="onCancel()">Cancel</button>
2710
+ <button kendoButton (click)="onCancel()">{{ _messages.cancelButton }}</button>
2673
2711
  <button kendoButton
2674
2712
  themeColor="primary"
2675
2713
  [disabled]="selectedEntities.length === 0"
2676
2714
  (click)="onConfirm()">
2677
- OK
2715
+ {{ _messages.confirmButton }}
2678
2716
  </button>
2679
2717
  </div>
2680
2718
  </div>
2681
- `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.entity-select-dialog-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px 20px;box-sizing:border-box;gap:12px}.search-toolbar{flex-shrink:0}.entity-grid{flex:1;min-height:200px;border:1px solid var(--kendo-color-border)}.selection-info{padding:8px 0;font-size:12px;color:var(--kendo-color-subtle);flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: WindowModule }, { kind: "component", type: GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "csvExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "component", type: ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "component", type: CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll", "showDisabledCheckbox"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "pipe", type: PascalCasePipe, name: "pascalCase" }] });
2719
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.entity-select-dialog-content{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px 20px;box-sizing:border-box;gap:12px}.search-toolbar{flex-shrink:0}.entity-grid{flex:1;min-height:200px;border:1px solid var(--kendo-color-border)}.selection-info{padding:8px 0;font-size:12px;color:var(--kendo-color-subtle);flex-shrink:0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonsModule }, { kind: "component", type: i4.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "ngmodule", type: WindowModule }, { kind: "component", type: GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "adaptiveMode", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "gridResizable", "rowReorderable", "navigable", "autoSize", "rowClass", "rowSticky", "rowSelected", "isRowSelectable", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "showInactiveTools", "isDetailExpanded", "isGroupExpanded", "dataLayoutMode"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "gridStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "csvExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "component", type: ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterVariant", "filterable", "editable"] }, { kind: "component", type: CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll", "showDisabledCheckbox"] }, { kind: "component", type: CustomMessagesComponent, selector: "kendo-grid-messages" }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "pipe", type: PascalCasePipe, name: "pascalCase" }] });
2682
2720
  }
2683
2721
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySelectDialogComponent, decorators: [{
2684
2722
  type: Component,
@@ -2689,6 +2727,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
2689
2727
  GridComponent,
2690
2728
  ColumnComponent,
2691
2729
  CheckboxColumnComponent,
2730
+ CustomMessagesComponent,
2692
2731
  TextBoxComponent,
2693
2732
  PascalCasePipe
2694
2733
  ], template: `
@@ -2696,9 +2735,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
2696
2735
  <div class="search-toolbar">
2697
2736
  <kendo-textbox
2698
2737
  [style.width.px]="250"
2699
- placeholder="Search..."
2738
+ [placeholder]="_messages.searchPlaceholder"
2700
2739
  [value]="searchValue"
2701
- (valueChange)="onSearchChange($event)">
2740
+ (valueChange)="onSearchChange($event ?? '')">
2702
2741
  </kendo-textbox>
2703
2742
  </div>
2704
2743
 
@@ -2713,6 +2752,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
2713
2752
  (selectionChange)="onSelectionChange($event)"
2714
2753
  class="entity-grid">
2715
2754
 
2755
+ <kendo-grid-messages
2756
+ [pagerItemsPerPage]="_messages.pagerItemsPerPage"
2757
+ [pagerOf]="_messages.pagerOf"
2758
+ [pagerItems]="_messages.pagerItems"
2759
+ [pagerPage]="_messages.pagerPage"
2760
+ [pagerFirstPage]="_messages.pagerFirstPage"
2761
+ [pagerLastPage]="_messages.pagerLastPage"
2762
+ [pagerPreviousPage]="_messages.pagerPreviousPage"
2763
+ [pagerNextPage]="_messages.pagerNextPage"
2764
+ ></kendo-grid-messages>
2765
+
2716
2766
  <kendo-grid-checkbox-column
2717
2767
  [width]="40"
2718
2768
  [showSelectAll]="multiSelect">
@@ -2727,16 +2777,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
2727
2777
  </kendo-grid>
2728
2778
 
2729
2779
  <div class="selection-info" *ngIf="selectedEntities.length > 0">
2730
- {{ selectedEntities.length }} selected
2780
+ {{ selectedEntities.length }} {{ _messages.selectedSuffix }}
2731
2781
  </div>
2732
2782
 
2733
2783
  <div class="dialog-actions">
2734
- <button kendoButton (click)="onCancel()">Cancel</button>
2784
+ <button kendoButton (click)="onCancel()">{{ _messages.cancelButton }}</button>
2735
2785
  <button kendoButton
2736
2786
  themeColor="primary"
2737
2787
  [disabled]="selectedEntities.length === 0"
2738
2788
  (click)="onConfirm()">
2739
- OK
2789
+ {{ _messages.confirmButton }}
2740
2790
  </button>
2741
2791
  </div>
2742
2792
  </div>
@@ -2747,6 +2797,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
2747
2797
  type: Input
2748
2798
  }], preSelectedEntities: [{
2749
2799
  type: Input
2800
+ }], messages: [{
2801
+ type: Input
2750
2802
  }] } });
2751
2803
 
2752
2804
  class EntitySelectDialogService {
@@ -2772,6 +2824,9 @@ class EntitySelectDialogService {
2772
2824
  contentRef.instance.dataSource = dataSource;
2773
2825
  contentRef.instance.multiSelect = options.multiSelect ?? false;
2774
2826
  contentRef.instance.preSelectedEntities = options.selectedEntities ?? [];
2827
+ if (options.messages) {
2828
+ contentRef.instance.messages = options.messages;
2829
+ }
2775
2830
  }
2776
2831
  const result = await firstValueFrom(windowRef.result);
2777
2832
  if (result instanceof WindowCloseResult) {
@@ -2794,7 +2849,7 @@ class EntitySelectInputComponent {
2794
2849
  // Inputs
2795
2850
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- generic component accepts any entity type
2796
2851
  dataSource;
2797
- placeholder = 'Select an entity...';
2852
+ placeholder = '';
2798
2853
  minSearchLength = 3;
2799
2854
  maxResults = 50;
2800
2855
  debounceMs = 300;
@@ -2802,9 +2857,16 @@ class EntitySelectInputComponent {
2802
2857
  // Dialog inputs
2803
2858
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- generic component accepts any entity type
2804
2859
  dialogDataSource;
2805
- dialogTitle = 'Select Entity';
2860
+ dialogTitle = '';
2806
2861
  multiSelect = false;
2807
- advancedSearchLabel = 'Advanced Search...';
2862
+ advancedSearchLabel = '';
2863
+ // Dialog messages (passed through to the dialog component)
2864
+ dialogMessages;
2865
+ // Messages
2866
+ _messages = { ...DEFAULT_ENTITY_SELECT_INPUT_MESSAGES };
2867
+ set messages(value) {
2868
+ this._messages = { ...DEFAULT_ENTITY_SELECT_INPUT_MESSAGES, ...value };
2869
+ }
2808
2870
  _disabled = false;
2809
2871
  get disabled() {
2810
2872
  return this._disabled;
@@ -2848,6 +2910,9 @@ class EntitySelectInputComponent {
2848
2910
  // Injected dependencies
2849
2911
  elRef = inject(ElementRef);
2850
2912
  dialogService = inject(EntitySelectDialogService, { optional: true });
2913
+ formatMessage(template, ...args) {
2914
+ return template.replace(/\{(\d+)\}/g, (_, index) => String(args[+index] ?? ''));
2915
+ }
2851
2916
  ngOnInit() {
2852
2917
  this.setupSearch();
2853
2918
  }
@@ -3008,9 +3073,10 @@ class EntitySelectInputComponent {
3008
3073
  // Close the autocomplete dropdown
3009
3074
  this.autocomplete.toggle(false);
3010
3075
  const result = await this.dialogService.open(this.dialogDataSource, {
3011
- title: this.dialogTitle,
3076
+ title: this.dialogTitle || this._messages.dialogTitle,
3012
3077
  multiSelect: this.multiSelect,
3013
- selectedEntities: this.selectedEntity ? [this.selectedEntity] : []
3078
+ selectedEntities: this.selectedEntity ? [this.selectedEntity] : [],
3079
+ messages: this.dialogMessages,
3014
3080
  });
3015
3081
  if (result && result.selectedEntities.length > 0) {
3016
3082
  if (this.multiSelect) {
@@ -3022,7 +3088,7 @@ class EntitySelectInputComponent {
3022
3088
  }
3023
3089
  else {
3024
3090
  // Multiple selected - update display to show count
3025
- const displayText = `${result.selectedEntities.length} selected`;
3091
+ const displayText = `${result.selectedEntities.length} ${this._messages.selectedSuffix}`;
3026
3092
  this.searchFormControl.setValue(displayText, { emitEvent: false });
3027
3093
  this.selectedEntity = result.selectedEntities;
3028
3094
  this.onChange(result.selectedEntities);
@@ -3035,7 +3101,7 @@ class EntitySelectInputComponent {
3035
3101
  }
3036
3102
  }
3037
3103
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: EntitySelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3038
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: EntitySelectInputComponent, isStandalone: true, selector: "mm-entity-select-input", inputs: { dataSource: "dataSource", placeholder: "placeholder", minSearchLength: "minSearchLength", maxResults: "maxResults", debounceMs: "debounceMs", prefix: "prefix", dialogDataSource: "dialogDataSource", dialogTitle: "dialogTitle", multiSelect: "multiSelect", advancedSearchLabel: "advancedSearchLabel", disabled: "disabled", required: "required" }, outputs: { entitySelected: "entitySelected", entityCleared: "entityCleared", entitiesSelected: "entitiesSelected" }, providers: [
3104
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: EntitySelectInputComponent, isStandalone: true, selector: "mm-entity-select-input", inputs: { dataSource: "dataSource", placeholder: "placeholder", minSearchLength: "minSearchLength", maxResults: "maxResults", debounceMs: "debounceMs", prefix: "prefix", dialogDataSource: "dialogDataSource", dialogTitle: "dialogTitle", multiSelect: "multiSelect", advancedSearchLabel: "advancedSearchLabel", dialogMessages: "dialogMessages", messages: "messages", disabled: "disabled", required: "required" }, outputs: { entitySelected: "entitySelected", entityCleared: "entityCleared", entitiesSelected: "entitiesSelected" }, providers: [
3039
3105
  {
3040
3106
  provide: NG_VALUE_ACCESSOR,
3041
3107
  useExisting: forwardRef(() => EntitySelectInputComponent),
@@ -3054,7 +3120,7 @@ class EntitySelectInputComponent {
3054
3120
  [data]="filteredEntities"
3055
3121
  [loading]="isLoading"
3056
3122
  [disabled]="disabled"
3057
- [placeholder]="placeholder"
3123
+ [placeholder]="placeholder || _messages.placeholder"
3058
3124
  [suggest]="true"
3059
3125
  [clearButton]="true"
3060
3126
  [filterable]="true"
@@ -3075,10 +3141,10 @@ class EntitySelectInputComponent {
3075
3141
  <ng-template kendoAutoCompleteNoDataTemplate>
3076
3142
  <div class="no-data-message">
3077
3143
  <span *ngIf="!isLoading && searchFormControl.value && searchFormControl.value.length >= minSearchLength">
3078
- No entities found for "{{ searchFormControl.value }}"
3144
+ {{ formatMessage(_messages.noEntitiesFound, searchFormControl.value) }}
3079
3145
  </span>
3080
3146
  <span *ngIf="!isLoading && (!searchFormControl.value || searchFormControl.value.length < minSearchLength)">
3081
- Type at least {{ minSearchLength }} characters to search...
3147
+ {{ formatMessage(_messages.minCharactersHint, minSearchLength) }}
3082
3148
  </span>
3083
3149
  </div>
3084
3150
  </ng-template>
@@ -3087,7 +3153,7 @@ class EntitySelectInputComponent {
3087
3153
  <ng-template kendoAutoCompleteFooterTemplate *ngIf="dialogDataSource">
3088
3154
  <div class="advanced-search-footer" (click)="openAdvancedSearch($event)">
3089
3155
  <kendo-svg-icon [icon]="searchIcon" size="small"></kendo-svg-icon>
3090
- <span>{{ advancedSearchLabel }}</span>
3156
+ <span>{{ advancedSearchLabel || _messages.advancedSearchLabel }}</span>
3091
3157
  </div>
3092
3158
  </ng-template>
3093
3159
 
@@ -3099,7 +3165,7 @@ class EntitySelectInputComponent {
3099
3165
  type="button"
3100
3166
  [svgIcon]="searchIcon"
3101
3167
  [disabled]="disabled"
3102
- [title]="advancedSearchLabel"
3168
+ [title]="advancedSearchLabel || _messages.advancedSearchLabel"
3103
3169
  class="dialog-button"
3104
3170
  (click)="openAdvancedSearch()">
3105
3171
  </button>
@@ -3135,7 +3201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3135
3201
  [data]="filteredEntities"
3136
3202
  [loading]="isLoading"
3137
3203
  [disabled]="disabled"
3138
- [placeholder]="placeholder"
3204
+ [placeholder]="placeholder || _messages.placeholder"
3139
3205
  [suggest]="true"
3140
3206
  [clearButton]="true"
3141
3207
  [filterable]="true"
@@ -3156,10 +3222,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3156
3222
  <ng-template kendoAutoCompleteNoDataTemplate>
3157
3223
  <div class="no-data-message">
3158
3224
  <span *ngIf="!isLoading && searchFormControl.value && searchFormControl.value.length >= minSearchLength">
3159
- No entities found for "{{ searchFormControl.value }}"
3225
+ {{ formatMessage(_messages.noEntitiesFound, searchFormControl.value) }}
3160
3226
  </span>
3161
3227
  <span *ngIf="!isLoading && (!searchFormControl.value || searchFormControl.value.length < minSearchLength)">
3162
- Type at least {{ minSearchLength }} characters to search...
3228
+ {{ formatMessage(_messages.minCharactersHint, minSearchLength) }}
3163
3229
  </span>
3164
3230
  </div>
3165
3231
  </ng-template>
@@ -3168,7 +3234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3168
3234
  <ng-template kendoAutoCompleteFooterTemplate *ngIf="dialogDataSource">
3169
3235
  <div class="advanced-search-footer" (click)="openAdvancedSearch($event)">
3170
3236
  <kendo-svg-icon [icon]="searchIcon" size="small"></kendo-svg-icon>
3171
- <span>{{ advancedSearchLabel }}</span>
3237
+ <span>{{ advancedSearchLabel || _messages.advancedSearchLabel }}</span>
3172
3238
  </div>
3173
3239
  </ng-template>
3174
3240
 
@@ -3180,7 +3246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3180
3246
  type="button"
3181
3247
  [svgIcon]="searchIcon"
3182
3248
  [disabled]="disabled"
3183
- [title]="advancedSearchLabel"
3249
+ [title]="advancedSearchLabel || _messages.advancedSearchLabel"
3184
3250
  class="dialog-button"
3185
3251
  (click)="openAdvancedSearch()">
3186
3252
  </button>
@@ -3209,6 +3275,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
3209
3275
  type: Input
3210
3276
  }], advancedSearchLabel: [{
3211
3277
  type: Input
3278
+ }], dialogMessages: [{
3279
+ type: Input
3280
+ }], messages: [{
3281
+ type: Input
3212
3282
  }], disabled: [{
3213
3283
  type: Input
3214
3284
  }], required: [{
@@ -4998,5 +5068,5 @@ function provideMmSharedUi() {
4998
5068
  * Generated bundle index. Do not edit.
4999
5069
  */
5000
5070
 
5001
- 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 };
5071
+ 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 };
5002
5072
  //# sourceMappingURL=meshmakers-shared-ui.mjs.map