@meshmakers/shared-ui 3.4.990 → 3.4.1010

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.4.990",
3
+ "version": "3.4.1010",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0",
@@ -353,6 +353,24 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
353
353
  * search input to a full row instead of stacking every control vertically.
354
354
  */
355
355
  protected get isNarrow(): boolean;
356
+ /**
357
+ * Card mode (AB#4930): below this component width the rows render as
358
+ * stacked cards instead of a horizontally scrolling table — the first
359
+ * column becomes the card title, every other column a labeled line
360
+ * (empty values are skipped, `hideBelow` is ignored because cards have
361
+ * vertical room), and the actions-column buttons move into the card
362
+ * header. Sorting headers and the row filter are unavailable while cards
363
+ * are active; the toolbar search and quick-view bars keep working.
364
+ * `null` (the default) keeps the table at every width.
365
+ */
366
+ cardModeBelow: number | null;
367
+ protected get isCardMode(): boolean;
368
+ /** First column = the card's title/identity line (AB#4930). */
369
+ protected get cardTitleColumn(): TableColumn | null;
370
+ /** Every column after the title one — the card's labeled body lines. */
371
+ protected get cardBodyColumns(): TableColumn[];
372
+ /** Empty values render no body line, so cards stay tight (AB#4930). */
373
+ protected hasCardValue(element: Record<string, unknown>, column: TableColumn): boolean;
356
374
  /**
357
375
  * Callback for applying CSS classes to grid rows based on row data.
358
376
  * Passed through to Kendo Grid's [rowClass] input.
@@ -389,6 +407,8 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
389
407
  */
390
408
  protected getEffectiveWidth(column: TableColumn): number | undefined;
391
409
  protected readonly checkboxColumnWidth = 48;
410
+ /** Compact checkbox gutter in card mode — the card sits right next to it (AB#4930). */
411
+ protected get effectiveCheckboxColumnWidth(): number;
392
412
  protected getDisplayName(column: TableColumn): string;
393
413
  protected getIsDisabled(commandItem: CommandItem, dataItem?: unknown): boolean;
394
414
  /**
@@ -476,6 +496,14 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
476
496
  protected onPageChange(_event: PageChangeEvent): void;
477
497
  protected onContextMenuSelect(_event: ContextMenuSelectEvent): Promise<void>;
478
498
  protected onCellClick(e: CellClickEvent): void;
499
+ /**
500
+ * On narrow (phone) viewports the context-menu popup opened at the pointer
501
+ * can overflow the right edge — Kendo's collision fit checks against a
502
+ * layout viewport the overflowing popup itself just widened, so it never
503
+ * kicks in. Clamp the anchor so a typically-sized menu stays on screen;
504
+ * wide viewports keep Kendo's own positioning untouched (AB#4930).
505
+ */
506
+ private clampContextMenuX;
479
507
  protected onSelectOptionActionItem(event: Event, dataItem: unknown, menuItem: MenuItem): Promise<void>;
480
508
  protected getMenuItemVisible(menuItem: MenuItem, dataItem: unknown): boolean;
481
509
  protected getMenuItemDisabled(menuItem: MenuItem, dataItem: unknown): boolean;
@@ -488,7 +516,7 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
488
516
  protected getPdfPageText(pageNum: number, totalPages: number): string;
489
517
  protected readonly moreVerticalIcon: SVGIcon$1;
490
518
  static ɵfac: i0.ɵɵFactoryDeclaration<ListViewComponent, never>;
491
- static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "mm-list-view", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "autoPageSize": { "alias": "autoPageSize"; "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; }; "persistListState": { "alias": "persistListState"; "required": false; }; "listStateKey": { "alias": "listStateKey"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "actionsColumnWidth": { "alias": "actionsColumnWidth"; "required": false; }; "hideCheckboxesBelow": { "alias": "hideCheckboxesBelow"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; }, { "rowClicked": "rowClicked"; "resetFilters": "resetFilters"; }, never, never, true, never>;
519
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "mm-list-view", never, { "pageSize": { "alias": "pageSize"; "required": false; }; "skip": { "alias": "skip"; "required": false; }; "autoPageSize": { "alias": "autoPageSize"; "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; }; "persistListState": { "alias": "persistListState"; "required": false; }; "listStateKey": { "alias": "listStateKey"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "actionsColumnWidth": { "alias": "actionsColumnWidth"; "required": false; }; "hideCheckboxesBelow": { "alias": "hideCheckboxesBelow"; "required": false; }; "cardModeBelow": { "alias": "cardModeBelow"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; }, { "rowClicked": "rowClicked"; "resetFilters": "resetFilters"; }, never, never, true, never>;
492
520
  }
493
521
 
494
522
  declare class UploadFileDialogComponent extends DialogContentBase {