@openmfp/ngx 0.16.2 → 0.17.0

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": "@openmfp/ngx",
3
- "version": "0.16.2",
3
+ "version": "0.17.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/openmfp/webcomponents.git"
@@ -2,7 +2,6 @@ import * as _angular_core from '@angular/core';
2
2
  import { OnInit, OnDestroy, Type } from '@angular/core';
3
3
  import { FormGroup, FormControl } from '@angular/forms';
4
4
  import * as _openmfp_ngx from '@openmfp/ngx';
5
- import { Input } from '@fundamental-ngx/ui5-webcomponents/input';
6
5
  import { SafeHtml } from '@angular/platform-browser';
7
6
  import { GridStackOptions } from 'gridstack';
8
7
 
@@ -167,18 +166,30 @@ declare class DeclarativeTable<T extends GenericResource> {
167
166
  totalItemsCount: _angular_core.InputSignal<number | undefined>;
168
167
  paginationLimit: _angular_core.InputSignal<number>;
169
168
  hasMore: _angular_core.InputSignal<boolean>;
170
- growMode: _angular_core.InputSignal<"Scroll" | "Button">;
169
+ loadMode: _angular_core.InputSignal<"button" | "scroll" | "pager">;
171
170
  loadMoreButtonText: _angular_core.InputSignal<string>;
172
171
  height: _angular_core.InputSignal<number | undefined>;
172
+ currentPage: _angular_core.InputSignal<number>;
173
173
  readonly buttonClick: _angular_core.OutputEmitterRef<ResourceFieldButtonClickEvent<T>>;
174
174
  readonly tableRowClicked: _angular_core.OutputEmitterRef<T>;
175
175
  readonly loadMoreResources: _angular_core.OutputEmitterRef<void>;
176
176
  readonly paginationLimitChanged: _angular_core.OutputEmitterRef<number>;
177
+ readonly pageChange: _angular_core.OutputEmitterRef<number>;
177
178
  columnTrackBy: (column: TableFieldDefinition, index: number) => string | number | string[];
178
179
  rowTrackBy: (_index: number, item: T) => unknown;
179
180
  viewColumns: _angular_core.Signal<ProcessedTableFieldDefinition[]>;
181
+ isPagerMode: _angular_core.Signal<boolean>;
182
+ hasResults: _angular_core.Signal<boolean>;
183
+ totalPages: _angular_core.Signal<number>;
184
+ canPrev: _angular_core.Signal<boolean>;
185
+ canNext: _angular_core.Signal<boolean>;
186
+ goToPage(page: number): void;
187
+ firstPage: () => void;
188
+ prevPage: () => void;
189
+ nextPage: () => void;
190
+ lastPage: () => void;
180
191
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeclarativeTable<any>, never>;
181
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTable<any>, "mfp-declarative-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "trackByPath": { "alias": "trackByPath"; "required": false; "isSignal": true; }; "totalItemsCount": { "alias": "totalItemsCount"; "required": false; "isSignal": true; }; "paginationLimit": { "alias": "paginationLimit"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "growMode": { "alias": "growMode"; "required": false; "isSignal": true; }; "loadMoreButtonText": { "alias": "loadMoreButtonText"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; }, never, never, true, never>;
192
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTable<any>, "mfp-declarative-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "trackByPath": { "alias": "trackByPath"; "required": false; "isSignal": true; }; "totalItemsCount": { "alias": "totalItemsCount"; "required": false; "isSignal": true; }; "paginationLimit": { "alias": "paginationLimit"; "required": false; "isSignal": true; }; "hasMore": { "alias": "hasMore"; "required": false; "isSignal": true; }; "loadMode": { "alias": "loadMode"; "required": false; "isSignal": true; }; "loadMoreButtonText": { "alias": "loadMoreButtonText"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; "pageChange": "pageChange"; }, never, never, true, never>;
182
193
  }
183
194
 
184
195
  /** Definition for a single form field rendered by `mfp-declarative-form`. */
@@ -300,12 +311,20 @@ interface TableConfig {
300
311
  fields: TableFieldDefinition[];
301
312
  /** Total number of items on the server (used by pagination). */
302
313
  totalItemsCount?: number;
303
- /** Number of rows per page. */
314
+ /** Page size in `pager` mode; batch size for the grow modes otherwise. */
304
315
  paginationLimit?: number;
305
- /** When `true`, the "Load More" control is shown. */
316
+ /** 1-based current page. Only used when `loadMode` is `'pager'`. */
317
+ currentPage?: number;
318
+ /** When `true`, the "Load More" control is shown. Grow modes only. */
306
319
  hasMore?: boolean;
307
320
  height?: number;
308
- growMode?: 'Scroll' | 'Button';
321
+ /**
322
+ * How additional rows are presented:
323
+ * - `'scroll'` / `'button'` — grow the list in place via `ui5-table-growing`.
324
+ * - `'pager'` — classic arrow pager (first/prev/next/last) emitting `pageChange`.
325
+ */
326
+ loadMode?: 'scroll' | 'button' | 'pager';
327
+ /** Text on the grow "Load More" button. Grow modes only. */
309
328
  loadMoreButtonText?: string;
310
329
  }
311
330
  /** Overrides for the table card's built-in action buttons. */
@@ -336,6 +355,11 @@ interface TableCardSearchConfig {
336
355
  * emitting `searchChanged`. Later changes to this value have no effect.
337
356
  */
338
357
  initialSearch?: string;
358
+ /**
359
+ * Placeholder text shown in the always-visible search input to prompt
360
+ * searching. Defaults to `Search` when omitted.
361
+ */
362
+ placeholder?: string;
339
363
  /**
340
364
  * Predefined filters rendered as a horizontal tab strip above the table.
341
365
  * Omit (or pass an empty array) to hide the strip while keeping the search
@@ -374,7 +398,6 @@ interface TableCardConfig {
374
398
  deleteResourceConfirmationConfig?: DeleteResourceConfirmationConfig;
375
399
  }
376
400
 
377
- type SearchState = 'collapsed' | 'expanded' | 'collapsing';
378
401
  declare class DeclarativeTableCard<T extends GenericResource> {
379
402
  resources: _angular_core.InputSignal<T[]>;
380
403
  config: _angular_core.InputSignal<TableCardConfig>;
@@ -384,6 +407,7 @@ declare class DeclarativeTableCard<T extends GenericResource> {
384
407
  readonly tableRowClicked: _angular_core.OutputEmitterRef<T>;
385
408
  readonly loadMoreResources: _angular_core.OutputEmitterRef<void>;
386
409
  readonly paginationLimitChanged: _angular_core.OutputEmitterRef<number>;
410
+ readonly pageChange: _angular_core.OutputEmitterRef<number>;
387
411
  readonly searchChanged: _angular_core.OutputEmitterRef<string>;
388
412
  readonly createFieldChange: _angular_core.OutputEmitterRef<FormFieldChangeEvent>;
389
413
  readonly editFieldChange: _angular_core.OutputEmitterRef<{
@@ -397,11 +421,7 @@ declare class DeclarativeTableCard<T extends GenericResource> {
397
421
  }>;
398
422
  readonly deleteSubmit: _angular_core.OutputEmitterRef<T>;
399
423
  readonly filterTabChanged: _angular_core.OutputEmitterRef<FieldFilterDefinition | undefined>;
400
- protected searchState: _angular_core.WritableSignal<SearchState>;
401
- protected searchExpanded: _angular_core.Signal<boolean>;
402
- protected searchCollapsing: _angular_core.Signal<boolean>;
403
424
  protected searchControl: FormControl<string | null>;
404
- protected searchInputRef: _angular_core.Signal<Input | undefined>;
405
425
  protected createDialogOpen: _angular_core.WritableSignal<boolean>;
406
426
  protected editDialogOpen: _angular_core.WritableSignal<boolean>;
407
427
  protected deleteDialogOpen: _angular_core.WritableSignal<boolean>;
@@ -418,15 +438,12 @@ declare class DeclarativeTableCard<T extends GenericResource> {
418
438
  protected editInitialValue: _angular_core.Signal<Record<string, unknown>>;
419
439
  protected searchConfig: _angular_core.Signal<_openmfp_ngx.TableCardSearchConfig | undefined>;
420
440
  protected resourcesSearchable: _angular_core.Signal<boolean>;
441
+ protected searchPlaceholder: _angular_core.Signal<string>;
421
442
  protected filterTabs: _angular_core.Signal<FieldFilterDefinition[]>;
422
443
  protected hasFilterTabs: _angular_core.Signal<boolean>;
423
- private readonly injector;
424
444
  constructor();
425
445
  protected onFilterTabChanged(tab: FieldFilterDefinition | undefined): void;
426
- toggleSearch(): void;
427
- onSearchBlur(): void;
428
- onSearchAnimationEnd(): void;
429
- private collapseSearch;
446
+ submitSearch(): void;
430
447
  onButtonClick(event: ResourceFieldButtonClickEvent<T>): void;
431
448
  closeCreateDialog(): void;
432
449
  closeEditDialog(): void;
@@ -440,7 +457,7 @@ declare class DeclarativeTableCard<T extends GenericResource> {
440
457
  private addActionsColumn;
441
458
  private buildInitialValues;
442
459
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeclarativeTableCard<any>, never>;
443
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTableCard<any>, "mfp-declarative-table-card", never, { "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "createFormState": { "alias": "createFormState"; "required": false; "isSignal": true; }; "editFormState": { "alias": "editFormState"; "required": false; "isSignal": true; }; }, { "actionButtonClick": "actionButtonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; "searchChanged": "searchChanged"; "createFieldChange": "createFieldChange"; "editFieldChange": "editFieldChange"; "createSubmit": "createSubmit"; "editSubmit": "editSubmit"; "deleteSubmit": "deleteSubmit"; "filterTabChanged": "filterTabChanged"; }, never, never, true, never>;
460
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeclarativeTableCard<any>, "mfp-declarative-table-card", never, { "resources": { "alias": "resources"; "required": true; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "createFormState": { "alias": "createFormState"; "required": false; "isSignal": true; }; "editFormState": { "alias": "editFormState"; "required": false; "isSignal": true; }; }, { "actionButtonClick": "actionButtonClick"; "tableRowClicked": "tableRowClicked"; "loadMoreResources": "loadMoreResources"; "paginationLimitChanged": "paginationLimitChanged"; "pageChange": "pageChange"; "searchChanged": "searchChanged"; "createFieldChange": "createFieldChange"; "editFieldChange": "editFieldChange"; "createSubmit": "createSubmit"; "editSubmit": "editSubmit"; "deleteSubmit": "deleteSubmit"; "filterTabChanged": "filterTabChanged"; }, never, never, true, never>;
444
461
  }
445
462
 
446
463
  type DashboardLanguage = 'en' | 'de';