@meshmakers/shared-ui 3.4.1480 → 3.4.1490
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/README.md +30 -0
- package/fesm2022/meshmakers-shared-ui-assistant-core.mjs +938 -0
- package/fesm2022/meshmakers-shared-ui-assistant-core.mjs.map +1 -0
- package/fesm2022/meshmakers-shared-ui-assistant.mjs +796 -0
- package/fesm2022/meshmakers-shared-ui-assistant.mjs.map +1 -0
- package/fesm2022/meshmakers-shared-ui-command-palette.mjs +817 -0
- package/fesm2022/meshmakers-shared-ui-command-palette.mjs.map +1 -0
- package/fesm2022/meshmakers-shared-ui-shell.mjs +1738 -0
- package/fesm2022/meshmakers-shared-ui-shell.mjs.map +1 -0
- package/fesm2022/meshmakers-shared-ui-testing.mjs +92 -0
- package/fesm2022/meshmakers-shared-ui-testing.mjs.map +1 -0
- package/fesm2022/meshmakers-shared-ui.mjs +1167 -201
- package/fesm2022/meshmakers-shared-ui.mjs.map +1 -1
- package/package.json +28 -2
- package/types/meshmakers-shared-ui-assistant-core.d.ts +728 -0
- package/types/meshmakers-shared-ui-assistant.d.ts +247 -0
- package/types/meshmakers-shared-ui-command-palette.d.ts +398 -0
- package/types/meshmakers-shared-ui-shell.d.ts +939 -0
- package/types/meshmakers-shared-ui-testing.d.ts +41 -0
- package/types/meshmakers-shared-ui.d.ts +739 -153
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { TemplateRef, Type, OnDestroy, AfterViewInit, EventEmitter, ElementRef, OnInit, InjectionToken, PipeTransform, OnChanges, SimpleChanges, EnvironmentProviders } from '@angular/core';
|
|
3
3
|
import * as _progress_kendo_svg_icons from '@progress/kendo-svg-icons';
|
|
4
4
|
import { SVGIcon } from '@progress/kendo-svg-icons';
|
|
5
5
|
import { FormGroup, ControlValueAccessor, Validator, FormControl, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
6
|
-
import {
|
|
6
|
+
import { CommandItem, CommandBaseService, TreeItemData, TreeItemDataTyped, EntitySelectDataSource } from '@meshmakers/shared-services';
|
|
7
7
|
import { TreeViewComponent, TreeItem, NodeClickEvent, TreeItemDropEvent } from '@progress/kendo-angular-treeview';
|
|
8
8
|
import { Observable } from 'rxjs';
|
|
9
9
|
import { DialogContentBase, DialogRef, WindowRef } from '@progress/kendo-angular-dialog';
|
|
@@ -13,7 +13,7 @@ import { PagerSettings, SelectableSettings, SelectionEvent, PageChangeEvent, Cel
|
|
|
13
13
|
import { SVGIcon as SVGIcon$1 } from '@progress/kendo-svg-icons/dist/svg-icon.interface';
|
|
14
14
|
import { MenuItem, ContextMenuComponent, ContextMenuSelectEvent, ContextMenuPopupEvent } from '@progress/kendo-angular-menu';
|
|
15
15
|
import { AutoCompleteComponent } from '@progress/kendo-angular-dropdowns';
|
|
16
|
-
import {
|
|
16
|
+
import { State as State$1, CompositeFilterDescriptor, SortDescriptor } from '@progress/kendo-data-query';
|
|
17
17
|
import { CanDeactivate } from '@angular/router';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -41,8 +41,8 @@ import { CanDeactivate } from '@angular/router';
|
|
|
41
41
|
*/
|
|
42
42
|
declare class ListViewFiltersDirective {
|
|
43
43
|
readonly templateRef: TemplateRef<any>;
|
|
44
|
-
static ɵfac:
|
|
45
|
-
static ɵdir:
|
|
44
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListViewFiltersDirective, never>;
|
|
45
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ListViewFiltersDirective, "[mmListViewFilters]", never, {}, {}, never, never, true, never>;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -230,6 +230,11 @@ type RowClassFn = (context: {
|
|
|
230
230
|
/**
|
|
231
231
|
* Translatable messages for the ListViewComponent.
|
|
232
232
|
* Pass translated strings to override the English defaults.
|
|
233
|
+
*
|
|
234
|
+
* Members added after the interface was first published are optional, so an app that builds a
|
|
235
|
+
* complete `ListViewMessages` object for an older library version keeps compiling; a member that
|
|
236
|
+
* is missing (or `undefined`) falls back to {@link DEFAULT_LIST_VIEW_MESSAGES}. New members must
|
|
237
|
+
* be added as optional for the same reason.
|
|
233
238
|
*/
|
|
234
239
|
interface ListViewMessages {
|
|
235
240
|
/** Search input placeholder. Default: "Search in all columns..." */
|
|
@@ -242,12 +247,20 @@ interface ListViewMessages {
|
|
|
242
247
|
exportToPdf: string;
|
|
243
248
|
/** Tooltip for "Refresh Data" button. Default: "Refresh Data" */
|
|
244
249
|
refreshData: string;
|
|
245
|
-
/** Tooltip for the "Reset Filters" button. Default: "Reset Filters" */
|
|
246
|
-
resetFilters
|
|
247
|
-
/** Tooltip for the collapsed command menu. Default: "Commands" */
|
|
248
|
-
commands
|
|
250
|
+
/** Tooltip for the "Reset Filters" button. Default: "Reset Filters". Optional (added in 3.4). */
|
|
251
|
+
resetFilters?: string;
|
|
252
|
+
/** Tooltip for the collapsed command menu. Default: "Commands". Optional (added in 3.4). */
|
|
253
|
+
commands?: string;
|
|
249
254
|
/** Title for the actions command column. Default: "Actions" */
|
|
250
255
|
actionsColumnTitle: string;
|
|
256
|
+
/** Accessible name of a row's menu button; `{name}` = the row's name. Default: "Actions for {name}" */
|
|
257
|
+
rowActionsFor?: string;
|
|
258
|
+
/** Accessible name of a row's menu button when the row has no name. Default: "Row actions" */
|
|
259
|
+
rowActions?: string;
|
|
260
|
+
/** Disabled reason of a row action whose `CommandItem` has no `disabledReason` (AB#5572). Default: "Not available for this row" */
|
|
261
|
+
rowActionUnavailable?: string;
|
|
262
|
+
/** Disabled reason of every row action while the list loads (AB#5572). Default: "The list is loading" */
|
|
263
|
+
rowActionsLoading?: string;
|
|
251
264
|
/** PDF footer page template. Default: "Page {pageNum} of {totalPages}" */
|
|
252
265
|
pdfPageTemplate: string;
|
|
253
266
|
/** Pager: text after page size selector. Default: "items per page" */
|
|
@@ -280,10 +293,193 @@ interface ListViewCommand {
|
|
|
280
293
|
svgIcon: SVGIcon;
|
|
281
294
|
}
|
|
282
295
|
/**
|
|
283
|
-
* Default English messages for the ListViewComponent.
|
|
296
|
+
* Default English messages for the ListViewComponent. Complete: every member, including the
|
|
297
|
+
* optional ones, has a value.
|
|
298
|
+
*/
|
|
299
|
+
declare const DEFAULT_LIST_VIEW_MESSAGES: Required<ListViewMessages>;
|
|
300
|
+
/**
|
|
301
|
+
* Merges app-supplied list-view messages over {@link DEFAULT_LIST_VIEW_MESSAGES}. Members that
|
|
302
|
+
* are missing, `undefined` or `null` keep their default, so an app compiled against an older
|
|
303
|
+
* `ListViewMessages` shape (or one that leaves a translation unset) never renders an empty label.
|
|
304
|
+
*/
|
|
305
|
+
declare function resolveListViewMessages(messages: Partial<ListViewMessages> | null | undefined): Required<ListViewMessages>;
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* One user action (AB#5570): a row action, a toolbar action or a page action. The same
|
|
309
|
+
* definition drives the inline icon button, the overflow menu item and the text button, so
|
|
310
|
+
* label, icon, danger styling and the disabled reason never diverge between them.
|
|
311
|
+
*
|
|
312
|
+
* See `octo-frontend-refinery-studio/docs/concepts/studio-action-guideline.md`.
|
|
313
|
+
*/
|
|
314
|
+
interface MmAction<TId extends string = string> {
|
|
315
|
+
/** Stable id, emitted with the event and rendered as `data-action` (tests, analytics). */
|
|
316
|
+
id: TId;
|
|
317
|
+
/**
|
|
318
|
+
* Verb phrase in sentence case ("Edit", "Delete dump", "Set value"). Used as tooltip,
|
|
319
|
+
* menu/button text (unless `menuLabel` is set) and — together with the row label — as the
|
|
320
|
+
* accessible name. Never ends with "…"; put that into `menuLabel`.
|
|
321
|
+
*/
|
|
322
|
+
label: string;
|
|
323
|
+
/**
|
|
324
|
+
* Visible text in menus and text buttons when it differs from `label` — typically the "…" of
|
|
325
|
+
* actions that open a dialog ("Delete dump…"). Tooltips and accessible names keep `label`.
|
|
326
|
+
* Falls back to `label`.
|
|
327
|
+
*/
|
|
328
|
+
menuLabel?: string;
|
|
329
|
+
/** Kendo SVG icon; take it from {@link MM_ACTION_ICONS} where a canonical icon exists. */
|
|
330
|
+
icon?: SVGIcon;
|
|
331
|
+
/** Destructive action: danger styling; the handler must confirm (danger dialog, named target). */
|
|
332
|
+
danger?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* Why the action is not available right now. A non-empty reason disables the action
|
|
335
|
+
* (`aria-disabled`, still focusable) and is announced via `aria-describedby` and shown in
|
|
336
|
+
* the tooltip. `null`/`undefined`/`''` = enabled.
|
|
337
|
+
*/
|
|
338
|
+
disabledReason?: string | null;
|
|
339
|
+
/** `false` hides the action (no permission, not applicable to this row). Default: visible. */
|
|
340
|
+
visible?: boolean;
|
|
341
|
+
/** Always place the action in the overflow menu, even when there is room inline. */
|
|
342
|
+
overflow?: boolean;
|
|
343
|
+
/**
|
|
344
|
+
* Navigation target. Inline the action renders as a real link (`routerLink`, open in new tab
|
|
345
|
+
* works); in the overflow menu it navigates with the Router. `triggered` still fires.
|
|
346
|
+
*/
|
|
347
|
+
link?: MmActionLink;
|
|
348
|
+
}
|
|
349
|
+
/** Router target of a navigating action (`Router.navigate(commands, {queryParams})`). */
|
|
350
|
+
interface MmActionLink {
|
|
351
|
+
commands: readonly unknown[] | string;
|
|
352
|
+
queryParams?: Record<string, string>;
|
|
353
|
+
}
|
|
354
|
+
/** Emitted when an enabled action is triggered. */
|
|
355
|
+
interface MmActionEvent<TId extends string = string> {
|
|
356
|
+
id: TId;
|
|
357
|
+
action: MmAction<TId>;
|
|
358
|
+
}
|
|
359
|
+
/** Default number of row action slots (inline buttons incl. the overflow button). */
|
|
360
|
+
declare const MM_ROW_ACTIONS_MAX_INLINE = 3;
|
|
361
|
+
/**
|
|
362
|
+
* Canonical action icons (AB#5570). One verb, one icon, everywhere: pick from this map
|
|
363
|
+
* instead of importing a Kendo icon ad hoc, so "Edit" never shows a gear in one list and a
|
|
364
|
+
* pencil in the next.
|
|
365
|
+
*/
|
|
366
|
+
declare const MM_ACTION_ICONS: {
|
|
367
|
+
/** Create a new item ("New adapter", "Add mapping"). */
|
|
368
|
+
readonly add: SVGIcon;
|
|
369
|
+
/** Edit / open the editable form of the item. */
|
|
370
|
+
readonly edit: SVGIcon;
|
|
371
|
+
/** Read-only view / preview. */
|
|
372
|
+
readonly view: SVGIcon;
|
|
373
|
+
/** Open the item (or a related page) in its own view / new tab. */
|
|
374
|
+
readonly open: SVGIcon;
|
|
375
|
+
/** Delete / remove the item (always `danger`). */
|
|
376
|
+
readonly delete: SVGIcon;
|
|
377
|
+
/** Clear a stored value without deleting the item ("Not needed", "Clear secret"). */
|
|
378
|
+
readonly clear: SVGIcon;
|
|
379
|
+
/** Copy an id or value to the clipboard. */
|
|
380
|
+
readonly copy: SVGIcon;
|
|
381
|
+
/** Duplicate the item as a new item. */
|
|
382
|
+
readonly duplicate: SVGIcon;
|
|
383
|
+
/** Reload data. */
|
|
384
|
+
readonly refresh: SVGIcon;
|
|
385
|
+
/** Deploy to a pool / cluster. */
|
|
386
|
+
readonly deploy: SVGIcon;
|
|
387
|
+
/** Undeploy. */
|
|
388
|
+
readonly undeploy: SVGIcon;
|
|
389
|
+
/** Run / execute / start. */
|
|
390
|
+
readonly run: SVGIcon;
|
|
391
|
+
/** Stop / cancel a running job. */
|
|
392
|
+
readonly stop: SVGIcon;
|
|
393
|
+
/** Export data (file the user saves). */
|
|
394
|
+
readonly export: SVGIcon;
|
|
395
|
+
/** Import data. */
|
|
396
|
+
readonly import: SVGIcon;
|
|
397
|
+
/** Download a file. */
|
|
398
|
+
readonly download: SVGIcon;
|
|
399
|
+
/** Show a report / log. */
|
|
400
|
+
readonly report: SVGIcon;
|
|
401
|
+
/** Restore / roll back to a stored state (e.g. restore a dump); destructive restores are `danger`. */
|
|
402
|
+
readonly restore: SVGIcon;
|
|
403
|
+
};
|
|
404
|
+
type MmActionIconName = keyof typeof MM_ACTION_ICONS;
|
|
405
|
+
/** True when the action is disabled (non-empty {@link MmAction.disabledReason}). */
|
|
406
|
+
declare function isActionDisabled(action: MmAction): boolean;
|
|
407
|
+
/** True unless the action is explicitly hidden. */
|
|
408
|
+
declare function isActionVisible(action: MmAction): boolean;
|
|
409
|
+
/**
|
|
410
|
+
* Accessible name of an action on a named target: "Delete dump Encrypt run 2026-10-06 17:09".
|
|
411
|
+
* Without a target the label alone.
|
|
284
412
|
*/
|
|
285
|
-
declare
|
|
413
|
+
declare function actionAccessibleName(action: MmAction, targetLabel?: string | null): string;
|
|
414
|
+
/** Tooltip: the label, plus the reason when disabled ("Delete dump — Requires SecretManagement"). */
|
|
415
|
+
declare function actionTooltip(action: MmAction): string;
|
|
416
|
+
/**
|
|
417
|
+
* Splits visible actions into inline buttons and overflow-menu items. At most `maxInline`
|
|
418
|
+
* slots are rendered: when the actions do not fit, the last slot becomes the overflow
|
|
419
|
+
* button. Actions with `overflow: true` always go to the menu (and need the overflow slot).
|
|
420
|
+
*/
|
|
421
|
+
declare function splitRowActions<TId extends string>(actions: readonly MmAction<TId>[], maxInline?: number): {
|
|
422
|
+
inline: MmAction<TId>[];
|
|
423
|
+
menu: MmAction<TId>[];
|
|
424
|
+
};
|
|
286
425
|
|
|
426
|
+
/**
|
|
427
|
+
* A row action of `mm-list-view` (AB#5572), declared once per list from the shared action model
|
|
428
|
+
* ({@link MmAction}): the per-row parts (`disabledReason`, `visible`, `link`) may be callbacks that
|
|
429
|
+
* receive the row. Rendered with the guideline rules — neutral icon buttons (danger colour only for
|
|
430
|
+
* `danger` actions), tooltip = label, accessible name = label + row name, at most
|
|
431
|
+
* `maxInlineRowActions` slots (default 3; the last one becomes "More actions for …"), disabled
|
|
432
|
+
* actions stay focusable and announce their reason.
|
|
433
|
+
*
|
|
434
|
+
* ```ts
|
|
435
|
+
* protected readonly rowActions: MmListRowAction<AdapterDto>[] = [
|
|
436
|
+
* { id: 'edit', label: 'Edit', icon: MM_ACTION_ICONS.edit, link: (row) => ({ commands: ['details', row.rtId] }) },
|
|
437
|
+
* { id: 'delete', label: 'Delete', menuLabel: 'Delete…', icon: MM_ACTION_ICONS.delete, danger: true,
|
|
438
|
+
* disabledReason: (row) => row.deployed ? 'Undeploy the adapter first' : null, run: (row) => this.delete(row) },
|
|
439
|
+
* ];
|
|
440
|
+
* ```
|
|
441
|
+
* ```html
|
|
442
|
+
* <mm-list-view [rowActions]="rowActions" (rowAction)="onRowAction($event)" … />
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
445
|
+
interface MmListRowAction<TRow = any, TId extends string = string> extends Omit<MmAction<TId>, 'disabledReason' | 'visible' | 'link'> {
|
|
446
|
+
/** Why the action is unavailable for this row; non-empty = disabled (focusable, announced). */
|
|
447
|
+
disabledReason?: string | null | ((row: TRow) => string | null | undefined);
|
|
448
|
+
/** `false` (or a callback returning false) hides the action for the row. */
|
|
449
|
+
visible?: boolean | ((row: TRow) => boolean);
|
|
450
|
+
/** Navigation target (inline: real router link; overflow menu: Router.navigate relative to the host route). */
|
|
451
|
+
link?: MmActionLink | ((row: TRow) => MmActionLink | null | undefined);
|
|
452
|
+
/** Optional handler; `(rowAction)` fires as well. Destructive handlers confirm first (danger dialog). */
|
|
453
|
+
run?: (row: TRow) => void | Promise<void>;
|
|
454
|
+
}
|
|
455
|
+
/** Emitted by `(rowAction)` for an enabled row action. */
|
|
456
|
+
interface MmListRowActionEvent<TRow = any, TId extends string = string> {
|
|
457
|
+
id: TId;
|
|
458
|
+
action: MmAction<TId>;
|
|
459
|
+
row: TRow;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* One row action resolved for a concrete row: the rendered {@link MmAction} plus where it came from —
|
|
463
|
+
* a legacy `CommandItem` (`actionCommandItems`, handled via the CommandItem's link / onClick) or a
|
|
464
|
+
* {@link MmListRowAction} (`rowActions`).
|
|
465
|
+
*/
|
|
466
|
+
interface ResolvedListRowAction {
|
|
467
|
+
action: MmAction;
|
|
468
|
+
commandItem?: CommandItem;
|
|
469
|
+
rowAction?: MmListRowAction;
|
|
470
|
+
}
|
|
471
|
+
/** Resolves the per-row callbacks of a {@link MmListRowAction}. */
|
|
472
|
+
declare function resolveListRowAction(definition: MmListRowAction, row: unknown): MmAction;
|
|
473
|
+
/** Structural equality of two rendered actions (keeps object identity stable across change detection). */
|
|
474
|
+
declare function sameAction(a: MmAction, b: MmAction): boolean;
|
|
475
|
+
|
|
476
|
+
/** Row actions of one row, split for rendering (AB#5572). */
|
|
477
|
+
interface RowActionsView {
|
|
478
|
+
inline: ResolvedListRowAction[];
|
|
479
|
+
menu: ResolvedListRowAction[];
|
|
480
|
+
/** The "…" button is shown (overflowing actions and/or context menu items). */
|
|
481
|
+
hasMenu: boolean;
|
|
482
|
+
}
|
|
287
483
|
declare class ListViewComponent extends CommandBaseService implements OnDestroy, AfterViewInit {
|
|
288
484
|
private readonly cronHumanizer;
|
|
289
485
|
protected _columns: TableColumn[];
|
|
@@ -296,16 +492,21 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
296
492
|
private _actionMenuSelectedRow;
|
|
297
493
|
private _contextMenuSelectedRow;
|
|
298
494
|
protected _actionMenuItems: MenuItem[];
|
|
495
|
+
private _rowActions;
|
|
496
|
+
/** Per-row resolved actions; identical results keep their identity (no NG0100, no re-render churn). */
|
|
497
|
+
private rowActionCache;
|
|
498
|
+
private readonly activatedRoute;
|
|
499
|
+
private readonly routerForActions;
|
|
299
500
|
protected _contextMenuItems: MenuItem[];
|
|
300
501
|
protected _showRowFilter: boolean;
|
|
301
502
|
/** Indicates if the data source is currently loading data */
|
|
302
|
-
protected isLoading:
|
|
503
|
+
protected isLoading: _angular_core.WritableSignal<boolean>;
|
|
303
504
|
/**
|
|
304
505
|
* The component's own width in pixels, kept current via ResizeObserver.
|
|
305
506
|
* `null` until the first measurement (before that, all columns render visible
|
|
306
507
|
* and auto-sized). Drives `hideBelow` column hiding and `minWidth` pinning.
|
|
307
508
|
*/
|
|
308
|
-
protected readonly containerWidth:
|
|
509
|
+
protected readonly containerWidth: _angular_core.WritableSignal<number | null>;
|
|
309
510
|
private readonly hostElement;
|
|
310
511
|
private readonly ngZone;
|
|
311
512
|
private resizeObserver?;
|
|
@@ -357,6 +558,20 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
357
558
|
set actionCommandItems(commandItems: CommandItem[]);
|
|
358
559
|
get contextMenuCommandItems(): CommandItem[];
|
|
359
560
|
set contextMenuCommandItems(commandItems: CommandItem[]);
|
|
561
|
+
/**
|
|
562
|
+
* Row actions from the shared action model (AB#5572) — preferred over `actionCommandItems`.
|
|
563
|
+
* Rendered after the `actionCommandItems` (which keep working through an adapter); together they
|
|
564
|
+
* get at most {@link maxInlineRowActions} slots, the rest goes into the row's overflow menu.
|
|
565
|
+
*/
|
|
566
|
+
set rowActions(actions: readonly MmListRowAction[] | null | undefined);
|
|
567
|
+
get rowActions(): readonly MmListRowAction[];
|
|
568
|
+
/**
|
|
569
|
+
* Row action slots incl. the overflow ("…") button (guideline §2.2: 3). When the actions do not
|
|
570
|
+
* fit, the last slot opens the overflow menu with the remaining actions and the context menu items.
|
|
571
|
+
*/
|
|
572
|
+
maxInlineRowActions: number;
|
|
573
|
+
/** An enabled {@link rowActions} action was triggered (inline or from the overflow menu). */
|
|
574
|
+
rowAction: EventEmitter<MmListRowActionEvent<any, string>>;
|
|
360
575
|
excelExportFileName: string;
|
|
361
576
|
pdfExportFileName: string;
|
|
362
577
|
pageable: PagerSettings;
|
|
@@ -412,6 +627,10 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
412
627
|
* case the column has to be wide enough for.
|
|
413
628
|
*/
|
|
414
629
|
private get maxActionButtons();
|
|
630
|
+
/** The context menu is opened from the row's "…" button (not by right click). */
|
|
631
|
+
private get hasContextMenuButton();
|
|
632
|
+
/** The list renders an actions column / card actions at all. */
|
|
633
|
+
protected get hasRowActions(): boolean;
|
|
415
634
|
/**
|
|
416
635
|
* The actions column width actually used.
|
|
417
636
|
*
|
|
@@ -456,14 +675,31 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
456
675
|
* the window ever resizing.
|
|
457
676
|
*/
|
|
458
677
|
collapseCommandsBelow: number;
|
|
678
|
+
/**
|
|
679
|
+
* Tells the list that the host holds filters of its own (quick-view bars,
|
|
680
|
+
* app-side field filters) that a reset would clear. The toolbar's reset
|
|
681
|
+
* button only shows while something is filtered, and the list cannot see
|
|
682
|
+
* those host filters by itself.
|
|
683
|
+
*/
|
|
684
|
+
hasExternalFilters: boolean;
|
|
685
|
+
/**
|
|
686
|
+
* Whether anything narrows or reorders the default view right now: a row
|
|
687
|
+
* filter, a column sort, free-text search, or host-side filters announced
|
|
688
|
+
* through {@link hasExternalFilters}. Paging is deliberately not counted —
|
|
689
|
+
* the pager already gets back to page 1.
|
|
690
|
+
*/
|
|
691
|
+
protected get hasActiveFilters(): boolean;
|
|
459
692
|
/** True while the command buttons are collapsed into the overflow menu. */
|
|
460
693
|
protected get commandsCollapsed(): boolean;
|
|
461
694
|
/**
|
|
462
695
|
* The commands available right now, in toolbar order. The row filter is
|
|
463
696
|
* omitted in card mode: cards have no column headers for a filter row to
|
|
464
697
|
* appear in, and the grid already drops `filterable` there — leaving the
|
|
465
|
-
* button visible offered to toggle something that cannot exist. Reset
|
|
466
|
-
*
|
|
698
|
+
* button visible offered to toggle something that cannot exist. Reset shows
|
|
699
|
+
* only while something is actually filtered, sorted or searched (see
|
|
700
|
+
* {@link hasActiveFilters}); on the default view there is nothing to reset,
|
|
701
|
+
* so the button would only be noise. It is independent of card mode, so a
|
|
702
|
+
* filter set before the switch can still be cleared.
|
|
467
703
|
*/
|
|
468
704
|
protected get toolbarCommands(): ListViewCommand[];
|
|
469
705
|
/**
|
|
@@ -486,9 +722,13 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
486
722
|
*/
|
|
487
723
|
rowClass: RowClassFn | undefined;
|
|
488
724
|
protected readonly defaultRowClass: RowClassFn;
|
|
489
|
-
protected _messages: ListViewMessages
|
|
490
|
-
|
|
491
|
-
|
|
725
|
+
protected _messages: Required<ListViewMessages>;
|
|
726
|
+
/**
|
|
727
|
+
* Translated messages. Partial: members that are not supplied (or are `undefined`) keep the
|
|
728
|
+
* English default from `DEFAULT_LIST_VIEW_MESSAGES`.
|
|
729
|
+
*/
|
|
730
|
+
set messages(value: Partial<ListViewMessages> | null | undefined);
|
|
731
|
+
get messages(): Required<ListViewMessages>;
|
|
492
732
|
selectable: SelectableSettings;
|
|
493
733
|
set columns(cols: ColumnDefinition[]);
|
|
494
734
|
get columns(): TableColumn[];
|
|
@@ -550,6 +790,22 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
550
790
|
* with a hint message.
|
|
551
791
|
*/
|
|
552
792
|
protected getToolbarItemDisabled(commandItem: CommandItem): boolean;
|
|
793
|
+
/**
|
|
794
|
+
* Accessible name of a host toolbar action. A button with a visible text is named by that
|
|
795
|
+
* text; an icon-only one (no text) gets its tooltip as `aria-label`, because `title` alone is
|
|
796
|
+
* not reliably announced (action guideline §2.2: icon-only = tooltip + aria-label).
|
|
797
|
+
*/
|
|
798
|
+
protected toolbarItemAriaLabel(commandItem: CommandItem): string | null;
|
|
799
|
+
private readonly buttonAttributesCache;
|
|
800
|
+
private static readonly NO_BUTTON_ATTRIBUTES;
|
|
801
|
+
/**
|
|
802
|
+
* `buttonAttributes` for Kendo split / dropdown buttons: same rule as
|
|
803
|
+
* {@link toolbarItemAriaLabel}, cached per label so change detection sees a stable object.
|
|
804
|
+
*/
|
|
805
|
+
protected toolbarItemButtonAttributes(commandItem: CommandItem): Record<string, string>;
|
|
806
|
+
/** `buttonAttributes` of the icon-only menu the commands collapse into. */
|
|
807
|
+
protected get commandsMenuButtonAttributes(): Record<string, string>;
|
|
808
|
+
private ariaLabelAttributes;
|
|
553
809
|
protected getValue(element: Record<string, unknown>, column: TableColumn): unknown;
|
|
554
810
|
/**
|
|
555
811
|
* Produces the formatted cell content when a column defines a `formatter` callback.
|
|
@@ -564,6 +820,14 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
564
820
|
*/
|
|
565
821
|
protected getCellTitle(element: Record<string, unknown>, column: TableColumn): string | null;
|
|
566
822
|
protected getFilterType(column: TableColumn): 'text' | 'numeric' | 'boolean' | 'date';
|
|
823
|
+
/** Input attributes of a read-only boolean cell, cached per column and name (AB#5621). */
|
|
824
|
+
private readonly booleanCellAttributeCache;
|
|
825
|
+
/**
|
|
826
|
+
* Input attributes of a `boolean` cell's read-only checkbox: its accessible name is the column's
|
|
827
|
+
* display name (AB#5621), so a screen reader announces "<column>, checked" instead of an unnamed
|
|
828
|
+
* checkbox.
|
|
829
|
+
*/
|
|
830
|
+
protected booleanCellAttributes(column: TableColumn): Record<string, string>;
|
|
567
831
|
/**
|
|
568
832
|
* Gets all status field configurations for a statusIcons column.
|
|
569
833
|
* Returns an array of StatusFieldConfig, whether the column uses single or multi-field configuration.
|
|
@@ -636,11 +900,33 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
636
900
|
*/
|
|
637
901
|
private clampContextMenuX;
|
|
638
902
|
protected onSelectOptionActionItem(event: Event, dataItem: unknown, menuItem: MenuItem): Promise<void>;
|
|
903
|
+
/**
|
|
904
|
+
* Row field naming a row for assistive technology (row menu "Actions for <name>", action
|
|
905
|
+
* buttons "<action> <name>"). Falls back to `rtWellKnownName`, then `rtId`.
|
|
906
|
+
*/
|
|
907
|
+
rowLabelField: string;
|
|
908
|
+
/** Human name of a row (`rowLabelField`, `rtWellKnownName`, `rtId`), or '' when unknown. */
|
|
909
|
+
protected rowLabel(dataItem: unknown): string;
|
|
910
|
+
/** Accessible name and tooltip of the row menu button. */
|
|
911
|
+
protected rowActionsLabel(dataItem: unknown): string;
|
|
639
912
|
protected getMenuItemVisible(menuItem: MenuItem, dataItem: unknown): boolean;
|
|
640
913
|
protected getMenuItemDisabled(menuItem: MenuItem, dataItem: unknown): boolean;
|
|
641
914
|
protected onContextMenu(dataItem: unknown, e: PointerEvent): void;
|
|
642
915
|
private buildContextMenuItemsWithDisabledState;
|
|
643
916
|
protected onContextMenuClosed(_event: ContextMenuPopupEvent): void;
|
|
917
|
+
/**
|
|
918
|
+
* Row actions of one row (AB#5572): `actionCommandItems` (adapter) followed by `rowActions`,
|
|
919
|
+
* split into inline buttons and overflow-menu entries (max {@link maxInlineRowActions} slots,
|
|
920
|
+
* context menu items and `overflow: true` actions force the "…" button).
|
|
921
|
+
*/
|
|
922
|
+
protected rowActionsView(dataItem: unknown): RowActionsView;
|
|
923
|
+
/** Accessible name of the row action group: "Actions for <row>". */
|
|
924
|
+
protected rowActionsGroupLabel(dataItem: unknown): string;
|
|
925
|
+
protected onInlineRowAction(entry: ResolvedListRowAction, dataItem: unknown): Promise<void>;
|
|
926
|
+
private triggerRowAction;
|
|
927
|
+
/** `CommandItem` → `MmAction` adapter (AB#5572): `isDisabled` → reason, `danger`, icon, text. */
|
|
928
|
+
private commandItemAction;
|
|
929
|
+
private stableView;
|
|
644
930
|
protected onToolbarCommand(commandItem: CommandItem): Promise<void>;
|
|
645
931
|
protected onToolbarDropdownItemClick(childItem: CommandItem): Promise<void>;
|
|
646
932
|
private buildMenuItems;
|
|
@@ -654,8 +940,8 @@ declare class ListViewComponent extends CommandBaseService implements OnDestroy,
|
|
|
654
940
|
* are told apart by meaning rather than by dot orientation.
|
|
655
941
|
*/
|
|
656
942
|
protected readonly commandsIcon: SVGIcon$1;
|
|
657
|
-
static ɵfac:
|
|
658
|
-
static ɵcmp:
|
|
943
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListViewComponent, never>;
|
|
944
|
+
static ɵcmp: _angular_core.ɵɵ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; }; "rowActions": { "alias": "rowActions"; "required": false; }; "maxInlineRowActions": { "alias": "maxInlineRowActions"; "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; }; "collapseCommandsBelow": { "alias": "collapseCommandsBelow"; "required": false; }; "hasExternalFilters": { "alias": "hasExternalFilters"; "required": false; }; "rowClass": { "alias": "rowClass"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowLabelField": { "alias": "rowLabelField"; "required": false; }; }, { "rowClicked": "rowClicked"; "rowAction": "rowAction"; "resetFilters": "resetFilters"; }, ["filtersTemplate"], never, true, never>;
|
|
659
945
|
}
|
|
660
946
|
|
|
661
947
|
declare const upload: {
|
|
@@ -675,9 +961,9 @@ declare class UploadFileDialogComponent extends DialogContentBase {
|
|
|
675
961
|
message: string;
|
|
676
962
|
mimeTypes: string | null;
|
|
677
963
|
fileExtensions: string | null;
|
|
678
|
-
protected fileName:
|
|
679
|
-
protected fileSize:
|
|
680
|
-
protected uploadProgress:
|
|
964
|
+
protected fileName: _angular_core.WritableSignal<string>;
|
|
965
|
+
protected fileSize: _angular_core.WritableSignal<number>;
|
|
966
|
+
protected uploadProgress: _angular_core.WritableSignal<number>;
|
|
681
967
|
protected fileInput: ElementRef | undefined;
|
|
682
968
|
protected selectedFile: File | null;
|
|
683
969
|
protected uploadSuccess: boolean;
|
|
@@ -692,8 +978,8 @@ declare class UploadFileDialogComponent extends DialogContentBase {
|
|
|
692
978
|
onCancel(): void;
|
|
693
979
|
protected get upload(): typeof upload;
|
|
694
980
|
protected get deleteIcon(): typeof deleteIcon;
|
|
695
|
-
static ɵfac:
|
|
696
|
-
static ɵcmp:
|
|
981
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UploadFileDialogComponent, never>;
|
|
982
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<UploadFileDialogComponent, "mm-upload-file-dialog", never, { "message": { "alias": "message"; "required": false; }; "mimeTypes": { "alias": "mimeTypes"; "required": false; }; "fileExtensions": { "alias": "fileExtensions"; "required": false; }; }, {}, never, never, true, never>;
|
|
697
983
|
}
|
|
698
984
|
|
|
699
985
|
interface InputDialogMessages {
|
|
@@ -714,8 +1000,8 @@ declare class InputDialogComponent extends DialogContentBase {
|
|
|
714
1000
|
constructor();
|
|
715
1001
|
protected onOk(): void;
|
|
716
1002
|
protected onCancel(): void;
|
|
717
|
-
static ɵfac:
|
|
718
|
-
static ɵcmp:
|
|
1003
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputDialogComponent, never>;
|
|
1004
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputDialogComponent, "mm-input-dialog", never, { "buttonOkText": { "alias": "buttonOkText"; "required": false; }; "message": { "alias": "message"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; }, {}, never, never, true, never>;
|
|
719
1005
|
}
|
|
720
1006
|
|
|
721
1007
|
declare abstract class HierarchyDataSource {
|
|
@@ -810,8 +1096,8 @@ declare class TreeComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
810
1096
|
setExpandedKeys(keys: string[]): void;
|
|
811
1097
|
private _clearTimeouts;
|
|
812
1098
|
ngOnDestroy(): void;
|
|
813
|
-
static ɵfac:
|
|
814
|
-
static ɵcmp:
|
|
1099
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeComponent, never>;
|
|
1100
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeComponent, "mm-tree-view", never, { "dataSource": { "alias": "dataSource"; "required": false; }; }, { "nodeSelected": "nodeSelected"; "nodeClick": "nodeClick"; "nodeDoubleClick": "nodeDoubleClick"; "nodeDrop": "nodeDrop"; "expand": "expand"; "collapse": "collapse"; }, never, never, true, never>;
|
|
815
1101
|
}
|
|
816
1102
|
|
|
817
1103
|
/**
|
|
@@ -901,14 +1187,14 @@ declare class UnsavedChangesDirective {
|
|
|
901
1187
|
*/
|
|
902
1188
|
onBeforeUnload(event: BeforeUnloadEvent): void;
|
|
903
1189
|
private hostHasUnsavedChanges;
|
|
904
|
-
static ɵfac:
|
|
905
|
-
static ɵdir:
|
|
1190
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UnsavedChangesDirective, never>;
|
|
1191
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<UnsavedChangesDirective, "[mmUnsavedChanges]", never, {}, {}, never, never, true, never>;
|
|
906
1192
|
}
|
|
907
1193
|
|
|
908
1194
|
declare class FormTitleExtraDirective {
|
|
909
1195
|
readonly templateRef: TemplateRef<any>;
|
|
910
|
-
static ɵfac:
|
|
911
|
-
static ɵdir:
|
|
1196
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormTitleExtraDirective, never>;
|
|
1197
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FormTitleExtraDirective, "[mmFormTitleExtra]", never, {}, {}, never, never, true, never>;
|
|
912
1198
|
}
|
|
913
1199
|
interface ResponsiveFormBreakPoint {
|
|
914
1200
|
maxWidth: number;
|
|
@@ -1000,8 +1286,8 @@ declare class BaseFormComponent implements HasUnsavedChanges {
|
|
|
1000
1286
|
* Uses config.hasChanges if provided, otherwise falls back to form.dirty.
|
|
1001
1287
|
*/
|
|
1002
1288
|
hasUnsavedChanges(): boolean;
|
|
1003
|
-
static ɵfac:
|
|
1004
|
-
static ɵcmp:
|
|
1289
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseFormComponent, never>;
|
|
1290
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseFormComponent, "mm-base-form", never, { "form": { "alias": "form"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, { "saveForm": "saveForm"; "cancelForm": "cancelForm"; }, ["titleExtra"], ["*", "[additionalActions]"], true, [{ directive: typeof UnsavedChangesDirective; inputs: {}; outputs: {}; }]>;
|
|
1005
1291
|
}
|
|
1006
1292
|
|
|
1007
1293
|
declare class BaseTreeDetailComponent<T = unknown> extends CommandBaseService {
|
|
@@ -1045,8 +1331,8 @@ declare class BaseTreeDetailComponent<T = unknown> extends CommandBaseService {
|
|
|
1045
1331
|
getExpandedKeys(): string[];
|
|
1046
1332
|
collapseAll(): void;
|
|
1047
1333
|
setExpandedKeys(keys: string[]): void;
|
|
1048
|
-
static ɵfac:
|
|
1049
|
-
static ɵcmp:
|
|
1334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseTreeDetailComponent<any>, never>;
|
|
1335
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BaseTreeDetailComponent<any>, "mm-base-tree-detail", never, { "treeDataSource": { "alias": "treeDataSource"; "required": false; }; "leftPaneSize": { "alias": "leftPaneSize"; "required": false; }; "leftToolbarActions": { "alias": "leftToolbarActions"; "required": false; }; "rightToolbarActions": { "alias": "rightToolbarActions"; "required": false; }; }, { "nodeSelected": "nodeSelected"; "nodeDropped": "nodeDropped"; }, never, ["[slot=detail-panel]"], true, never>;
|
|
1050
1336
|
}
|
|
1051
1337
|
|
|
1052
1338
|
declare class ProgressValue {
|
|
@@ -1083,8 +1369,8 @@ declare class ProgressWindowComponent extends DialogContentBase implements OnDes
|
|
|
1083
1369
|
ngAfterViewInit(): void;
|
|
1084
1370
|
ngOnDestroy(): void;
|
|
1085
1371
|
onCancelClick(): void;
|
|
1086
|
-
static ɵfac:
|
|
1087
|
-
static ɵcmp:
|
|
1372
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressWindowComponent, never>;
|
|
1373
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgressWindowComponent, "mm-progress-window", never, { "isDeterminate": { "alias": "isDeterminate"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "isCancelOperationAvailable": { "alias": "isCancelOperationAvailable"; "required": false; }; "cancelOperation": { "alias": "cancelOperation"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; }, {}, never, never, true, never>;
|
|
1088
1374
|
}
|
|
1089
1375
|
|
|
1090
1376
|
declare class ProgressWindowService {
|
|
@@ -1107,8 +1393,8 @@ declare class ProgressWindowService {
|
|
|
1107
1393
|
* @returns DialogRef for the progress window
|
|
1108
1394
|
*/
|
|
1109
1395
|
showIndeterminateProgress(title: string, progress: Observable<ProgressValue>, options?: Partial<ProgressWindowOptions>): DialogRef;
|
|
1110
|
-
static ɵfac:
|
|
1111
|
-
static ɵprov:
|
|
1396
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgressWindowService, never>;
|
|
1397
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ProgressWindowService>;
|
|
1112
1398
|
}
|
|
1113
1399
|
interface ProgressWindowConfig {
|
|
1114
1400
|
title: string;
|
|
@@ -1162,6 +1448,8 @@ interface ConfirmationWindowData {
|
|
|
1162
1448
|
dialogType: DialogType;
|
|
1163
1449
|
buttonLabels?: ConfirmationButtonLabels;
|
|
1164
1450
|
messages?: Partial<ConfirmationWindowMessages>;
|
|
1451
|
+
/** Destructive confirmation: the confirming (right-most) button is styled as danger (`themeColor="error"`). */
|
|
1452
|
+
danger?: boolean;
|
|
1165
1453
|
}
|
|
1166
1454
|
declare class ConfirmationWindowResult {
|
|
1167
1455
|
result: ButtonTypes;
|
|
@@ -1189,11 +1477,17 @@ declare class ConfirmationWindowComponent extends DialogContentBase implements O
|
|
|
1189
1477
|
protected button3Result: ButtonTypes | null;
|
|
1190
1478
|
constructor();
|
|
1191
1479
|
ngOnInit(): void;
|
|
1480
|
+
private readonly host;
|
|
1481
|
+
/**
|
|
1482
|
+
* Destructive confirmations start with the focus on the dismissing button (AB#5578): Enter must
|
|
1483
|
+
* never confirm a delete. Backs up the service's `autoFocusedElement`.
|
|
1484
|
+
*/
|
|
1485
|
+
ngAfterViewInit(): void;
|
|
1192
1486
|
onButton1(): void;
|
|
1193
1487
|
onButton2(): void;
|
|
1194
1488
|
onButton3(): void;
|
|
1195
|
-
static ɵfac:
|
|
1196
|
-
static ɵcmp:
|
|
1489
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmationWindowComponent, never>;
|
|
1490
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmationWindowComponent, "mm-confirmation-window", never, { "data": { "alias": "data"; "required": false; }; }, {}, never, never, true, never>;
|
|
1197
1491
|
}
|
|
1198
1492
|
|
|
1199
1493
|
interface FetchResult<T = unknown> {
|
|
@@ -1245,7 +1539,7 @@ declare abstract class DataSourceBase {
|
|
|
1245
1539
|
* Kept current by MmListViewDataBindingDirective; lets host pages show the
|
|
1246
1540
|
* overall count (e.g. in a header badge) without a second query.
|
|
1247
1541
|
*/
|
|
1248
|
-
readonly totalCount:
|
|
1542
|
+
readonly totalCount: _angular_core.Signal<number | null>;
|
|
1249
1543
|
/** Set the total row count (called by MmListViewDataBindingDirective) */
|
|
1250
1544
|
setTotalCount(count: number | null): void;
|
|
1251
1545
|
protected constructor(listViewComponent: ListViewComponent);
|
|
@@ -1280,6 +1574,12 @@ declare class MmListViewDataBindingDirective extends DataBindingDirective implem
|
|
|
1280
1574
|
get isLoading$(): Observable<boolean>;
|
|
1281
1575
|
/** Current loading state */
|
|
1282
1576
|
get isLoading(): boolean;
|
|
1577
|
+
/**
|
|
1578
|
+
* Read-only view of the grid state (filter, sort, skip, take) Kendo keeps
|
|
1579
|
+
* protected on the base directive. The list view consults it to decide
|
|
1580
|
+
* whether anything is filtered right now.
|
|
1581
|
+
*/
|
|
1582
|
+
get currentState(): State$1;
|
|
1283
1583
|
private _serviceSubscription;
|
|
1284
1584
|
private _executeFilterSubscription;
|
|
1285
1585
|
private _fetchAgainSubscription;
|
|
@@ -1328,20 +1628,20 @@ declare class MmListViewDataBindingDirective extends DataBindingDirective implem
|
|
|
1328
1628
|
/** Writes the current sort/filter/skip + free-text search for this list to storage (best-effort). */
|
|
1329
1629
|
private persistState;
|
|
1330
1630
|
rebind(): void;
|
|
1331
|
-
static ɵfac:
|
|
1332
|
-
static ɵdir:
|
|
1631
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MmListViewDataBindingDirective, never>;
|
|
1632
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MmListViewDataBindingDirective, "[mmListViewDataBinding]", never, {}, {}, never, never, true, never>;
|
|
1333
1633
|
}
|
|
1334
1634
|
|
|
1335
1635
|
declare class PascalCasePipe implements PipeTransform {
|
|
1336
1636
|
transform(value: string): string;
|
|
1337
|
-
static ɵfac:
|
|
1338
|
-
static ɵpipe:
|
|
1637
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PascalCasePipe, never>;
|
|
1638
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<PascalCasePipe, "pascalCase", true>;
|
|
1339
1639
|
}
|
|
1340
1640
|
|
|
1341
1641
|
declare class BytesToSizePipe implements PipeTransform {
|
|
1342
1642
|
transform(value: number, decimals?: number): string;
|
|
1343
|
-
static ɵfac:
|
|
1344
|
-
static ɵpipe:
|
|
1643
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BytesToSizePipe, never>;
|
|
1644
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<BytesToSizePipe, "bytesToSize", true>;
|
|
1345
1645
|
}
|
|
1346
1646
|
|
|
1347
1647
|
declare enum ImportStrategyDto {
|
|
@@ -1352,28 +1652,132 @@ declare enum ImportStrategyDto {
|
|
|
1352
1652
|
declare class FileUploadService {
|
|
1353
1653
|
private readonly dialogService;
|
|
1354
1654
|
showUploadDialog(title: string, message: string, mimeTypes?: string | null, fileExtensions?: string | null): Promise<File | null>;
|
|
1355
|
-
static ɵfac:
|
|
1356
|
-
static ɵprov:
|
|
1655
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploadService, never>;
|
|
1656
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FileUploadService>;
|
|
1357
1657
|
}
|
|
1358
1658
|
|
|
1659
|
+
/**
|
|
1660
|
+
* Texts of the danger confirmation (AB#5578); apps translate them like the other shared-ui
|
|
1661
|
+
* dialogs (`Partial<…Messages>` per call or as `ConfirmationService.defaultDangerMessages`).
|
|
1662
|
+
*/
|
|
1663
|
+
interface DangerConfirmationMessages {
|
|
1664
|
+
/** Dismissing button. Default: "Cancel" */
|
|
1665
|
+
cancel: string;
|
|
1666
|
+
/** Label of the type-to-confirm input; `{name}` = target name. Default: "Type {name} to confirm" */
|
|
1667
|
+
typeToConfirm: string;
|
|
1668
|
+
/** Environment notice; `{environment}` = environment label. Default: "{environment} environment. Check the target before you confirm." */
|
|
1669
|
+
environmentNotice: string;
|
|
1670
|
+
/** Label in front of the target. Default: "Target" */
|
|
1671
|
+
target: string;
|
|
1672
|
+
}
|
|
1673
|
+
declare const DEFAULT_DANGER_CONFIRMATION_MESSAGES: DangerConfirmationMessages;
|
|
1674
|
+
/**
|
|
1675
|
+
* A destructive action's confirmation (Studio action guideline §2.4, AB#5578): the title names
|
|
1676
|
+
* the target, the body says what is lost, the confirming button names the verb + object and is
|
|
1677
|
+
* danger-styled on the right, Cancel on the left. Optionally the user has to type the target
|
|
1678
|
+
* name before the confirming button enables (production tenants).
|
|
1679
|
+
*
|
|
1680
|
+
* ```ts
|
|
1681
|
+
* const ok = await confirmation.showDangerConfirm({
|
|
1682
|
+
* title: 'Delete adapter Mesh Adapter?',
|
|
1683
|
+
* targetName: 'Mesh Adapter',
|
|
1684
|
+
* consequence: 'The adapter and its configuration are deleted. This cannot be undone.',
|
|
1685
|
+
* confirmText: 'Delete adapter',
|
|
1686
|
+
* });
|
|
1687
|
+
* ```
|
|
1688
|
+
*/
|
|
1689
|
+
interface DangerConfirmationOptions {
|
|
1690
|
+
/** Dialog title naming the target ("Delete adapter Mesh Adapter?"). */
|
|
1691
|
+
title: string;
|
|
1692
|
+
/** Name of the affected item ("Mesh Adapter", "3 adapters"); shown emphasised and typed when required. */
|
|
1693
|
+
targetName: string;
|
|
1694
|
+
/** What is lost and whether it can be undone. */
|
|
1695
|
+
consequence: string;
|
|
1696
|
+
/** Confirming button: verb + object ("Delete adapter"), never "Yes" / "OK". */
|
|
1697
|
+
confirmText: string;
|
|
1698
|
+
/** Overrides `messages.cancel`. */
|
|
1699
|
+
cancelText?: string;
|
|
1700
|
+
/** The confirming button enables only once `targetName` is typed exactly (trimmed). */
|
|
1701
|
+
requireTypingName?: boolean;
|
|
1702
|
+
/** Environment label ("PRODUCTION", "STAGING") — shows the environment notice; omit in dev/test tenants. */
|
|
1703
|
+
environmentLabel?: string | null;
|
|
1704
|
+
messages?: Partial<DangerConfirmationMessages>;
|
|
1705
|
+
}
|
|
1706
|
+
/** Word typed when the target name is empty and no confirm text is set either. */
|
|
1707
|
+
declare const DANGER_CONFIRM_FALLBACK_WORD = "DELETE";
|
|
1708
|
+
/**
|
|
1709
|
+
* The text the user has to type when `requireTypingName` is set: the target name, or — when the
|
|
1710
|
+
* target name is empty/whitespace — the confirm button text, else {@link DANGER_CONFIRM_FALLBACK_WORD}.
|
|
1711
|
+
* Never empty, so an empty input can never satisfy the type-to-confirm rule.
|
|
1712
|
+
*/
|
|
1713
|
+
declare function dangerConfirmTypingToken(options: Pick<DangerConfirmationOptions, 'targetName' | 'confirmText'>): string;
|
|
1714
|
+
/**
|
|
1715
|
+
* True when `typed` matches the target name (trimmed, case-sensitive). An empty/whitespace target
|
|
1716
|
+
* name never matches — use {@link dangerConfirmTypingToken} to get a non-empty word to type.
|
|
1717
|
+
*/
|
|
1718
|
+
declare function dangerConfirmNameMatches(typed: string | null | undefined, targetName: string): boolean;
|
|
1719
|
+
/**
|
|
1720
|
+
* App-wide environment defaults of {@link ConfirmationService.showDangerConfirm} (AB#5578), e.g.
|
|
1721
|
+
* "production tenants type the target name". Applied whenever a caller — typically a library
|
|
1722
|
+
* component — leaves `requireTypingName` / `environmentLabel` unset; explicit caller options win.
|
|
1723
|
+
*/
|
|
1724
|
+
interface DangerConfirmEnvironment {
|
|
1725
|
+
/** Default of `requireTypingName`. */
|
|
1726
|
+
requireTypingName: boolean;
|
|
1727
|
+
/** Default of `environmentLabel` ("PRODUCTION", "STAGING"); `null`/omitted = no notice. */
|
|
1728
|
+
environmentLabel?: string | null;
|
|
1729
|
+
}
|
|
1730
|
+
/**
|
|
1731
|
+
* Optional hook providing the current {@link DangerConfirmEnvironment}; evaluated each time a
|
|
1732
|
+
* danger confirmation opens (so it may read signals). Absent = behaviour unchanged.
|
|
1733
|
+
*
|
|
1734
|
+
* ```ts
|
|
1735
|
+
* { provide: DANGER_CONFIRM_ENVIRONMENT, useFactory: () => {
|
|
1736
|
+
* const mode = inject(MyEnvironmentService);
|
|
1737
|
+
* return () => ({ requireTypingName: mode.isProduction(), environmentLabel: mode.label() });
|
|
1738
|
+
* } }
|
|
1739
|
+
* ```
|
|
1740
|
+
*/
|
|
1741
|
+
declare const DANGER_CONFIRM_ENVIRONMENT: InjectionToken<() => DangerConfirmEnvironment>;
|
|
1742
|
+
/** Applies the environment defaults to options that leave `requireTypingName` / `environmentLabel` unset. */
|
|
1743
|
+
declare function applyDangerConfirmEnvironment(options: DangerConfirmationOptions, environment: DangerConfirmEnvironment | null | undefined): DangerConfirmationOptions;
|
|
1744
|
+
|
|
1359
1745
|
declare class ConfirmationService {
|
|
1360
1746
|
private readonly dialogService;
|
|
1747
|
+
/** Optional app-wide environment defaults (e.g. production → type the name), AB#5578. */
|
|
1748
|
+
private readonly dangerEnvironment;
|
|
1361
1749
|
defaultMessages: Partial<ConfirmationWindowMessages> | undefined;
|
|
1750
|
+
/** App-wide translations of {@link showDangerConfirm}; per-call `options.messages` win. */
|
|
1751
|
+
defaultDangerMessages: Partial<DangerConfirmationMessages> | undefined;
|
|
1752
|
+
/**
|
|
1753
|
+
* Danger confirmation that names the target (Studio action guideline §2.4, AB#5578): title +
|
|
1754
|
+
* target + consequence, Cancel left / danger confirm right, initial focus on Cancel (or on the
|
|
1755
|
+
* type-to-confirm input when `requireTypingName`, e.g. in production tenants). Resolves `true`
|
|
1756
|
+
* only when the confirming button was used. Unset `requireTypingName` / `environmentLabel` fall
|
|
1757
|
+
* back to the app's {@link DANGER_CONFIRM_ENVIRONMENT}, if provided.
|
|
1758
|
+
*/
|
|
1759
|
+
showDangerConfirm(callerOptions: DangerConfirmationOptions): Promise<boolean>;
|
|
1362
1760
|
showYesNoConfirmationDialog(title: string, message: string, cssClass?: string, buttonLabels?: ConfirmationButtonLabels, messages?: Partial<ConfirmationWindowMessages>): Promise<boolean>;
|
|
1363
1761
|
showYesNoCancelConfirmationDialog(title: string, message: string, buttonLabels?: ConfirmationButtonLabels, messages?: Partial<ConfirmationWindowMessages>): Promise<ConfirmationWindowResult | undefined>;
|
|
1364
1762
|
showOkCancelConfirmationDialog(title: string, message: string, messages?: Partial<ConfirmationWindowMessages>): Promise<boolean>;
|
|
1763
|
+
/**
|
|
1764
|
+
* Confirmation of a destructive action: explicit verb labels instead of Yes / No (e.g.
|
|
1765
|
+
* "Rotate" / "Cancel") and the confirming button styled as danger. Resolves `true` only when
|
|
1766
|
+
* the confirming button was clicked.
|
|
1767
|
+
*/
|
|
1768
|
+
showDestructiveConfirmationDialog(title: string, message: string, confirmLabel: string, cancelLabel?: string): Promise<boolean>;
|
|
1365
1769
|
showOkDialog(title: string, message: string, messages?: Partial<ConfirmationWindowMessages>): Promise<boolean>;
|
|
1366
1770
|
private openDialog;
|
|
1367
|
-
static ɵfac:
|
|
1368
|
-
static ɵprov:
|
|
1771
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmationService, never>;
|
|
1772
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmationService>;
|
|
1369
1773
|
}
|
|
1370
1774
|
|
|
1371
1775
|
declare class InputService {
|
|
1372
1776
|
private readonly dialogService;
|
|
1373
1777
|
defaultMessages: Partial<InputDialogMessages> | undefined;
|
|
1374
1778
|
showInputDialog(title: string, message: string, placeholder: string, buttonOkText?: string | null, messages?: Partial<InputDialogMessages>): Promise<string | null>;
|
|
1375
|
-
static ɵfac:
|
|
1376
|
-
static ɵprov:
|
|
1779
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputService, never>;
|
|
1780
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<InputService>;
|
|
1377
1781
|
}
|
|
1378
1782
|
|
|
1379
1783
|
interface NotificationDisplayMessages {
|
|
@@ -1381,13 +1785,43 @@ interface NotificationDisplayMessages {
|
|
|
1381
1785
|
}
|
|
1382
1786
|
declare const DEFAULT_NOTIFICATION_DISPLAY_MESSAGES: NotificationDisplayMessages;
|
|
1383
1787
|
|
|
1788
|
+
/**
|
|
1789
|
+
* How the {@link NotificationDisplayService} stacks its toasts. Provide it with
|
|
1790
|
+
* {@link NOTIFICATION_DISPLAY_OPTIONS}; without a provider the defaults keep the former behaviour
|
|
1791
|
+
* except for de-duplication, which is always safe.
|
|
1792
|
+
*/
|
|
1793
|
+
interface NotificationDisplayOptions {
|
|
1794
|
+
/**
|
|
1795
|
+
* Milliseconds after which an error hides itself when the caller passes no `hideAfter`.
|
|
1796
|
+
* 0 (default) keeps errors until user interaction or navigation. A caller passing
|
|
1797
|
+
* `hideAfter: 0` explicitly always gets a sticky (critical) error.
|
|
1798
|
+
*/
|
|
1799
|
+
errorHideAfter?: number;
|
|
1800
|
+
/** Same as {@link errorHideAfter} for warnings. */
|
|
1801
|
+
warningHideAfter?: number;
|
|
1802
|
+
/**
|
|
1803
|
+
* Errors and warnings that come with details (the "show details" button) stay until closed,
|
|
1804
|
+
* whatever {@link errorHideAfter} / {@link warningHideAfter} say. Default false.
|
|
1805
|
+
*/
|
|
1806
|
+
stickyWithDetails?: boolean;
|
|
1807
|
+
/** Most toasts shown at once; beyond it the oldest toast of the LOWEST severity is hidden
|
|
1808
|
+
* (an error or warning is never dropped in favour of a success or info). 0 (default) = no limit. */
|
|
1809
|
+
maxVisible?: number;
|
|
1810
|
+
/** A toast with the same type, text and details as a visible one is not stacked again; the visible one's timer restarts. Default true. */
|
|
1811
|
+
dedupe?: boolean;
|
|
1812
|
+
}
|
|
1813
|
+
declare const NOTIFICATION_DISPLAY_OPTIONS: InjectionToken<NotificationDisplayOptions>;
|
|
1814
|
+
type ToastStyle = 'success' | 'info' | 'warning' | 'error';
|
|
1384
1815
|
declare class NotificationDisplayService implements OnDestroy {
|
|
1385
1816
|
private readonly notificationService;
|
|
1386
1817
|
private readonly messageDetailsDialogService;
|
|
1387
1818
|
private readonly router;
|
|
1388
1819
|
private readonly ngZone;
|
|
1820
|
+
private readonly options;
|
|
1389
1821
|
private notificationCounter;
|
|
1390
1822
|
private activeNotifications;
|
|
1823
|
+
/** Every visible toast, oldest first (dedupe, stack cap, auto-hide timers). */
|
|
1824
|
+
private toasts;
|
|
1391
1825
|
private subscriptions;
|
|
1392
1826
|
private interactionDebounceTime;
|
|
1393
1827
|
private gracePeriod;
|
|
@@ -1412,19 +1846,33 @@ declare class NotificationDisplayService implements OnDestroy {
|
|
|
1412
1846
|
*/
|
|
1413
1847
|
showSuccess(title: string, hideAfter?: number): void;
|
|
1414
1848
|
/**
|
|
1415
|
-
* Shows an error notification
|
|
1849
|
+
* Shows an error notification. It persists until user interaction or navigation, or hides
|
|
1850
|
+
* after `hideAfter` ms (default: `errorHideAfter` of the options; `0` = sticky).
|
|
1416
1851
|
*/
|
|
1417
1852
|
showError(title: string, details?: string, hideAfter?: number): void;
|
|
1418
1853
|
/**
|
|
1419
|
-
* Shows a warning notification
|
|
1854
|
+
* Shows a warning notification. It persists until user interaction or navigation, or hides
|
|
1855
|
+
* after `hideAfter` ms (default: `warningHideAfter` of the options; `0` = sticky).
|
|
1420
1856
|
*/
|
|
1421
1857
|
showWarning(title: string, details?: string, hideAfter?: number): void;
|
|
1422
1858
|
/**
|
|
1423
1859
|
* Shows an info notification (auto-closes after 3 seconds)
|
|
1424
1860
|
*/
|
|
1425
1861
|
showInfo(title: string, hideAfter?: number): void;
|
|
1426
|
-
|
|
1427
|
-
|
|
1862
|
+
/** The visible toasts as `[style, text]`, oldest first — for tests and diagnostics. */
|
|
1863
|
+
visibleToasts(): [ToastStyle, string][];
|
|
1864
|
+
private present;
|
|
1865
|
+
/** (Re)starts the auto-hide timer of a toast; a toast with `hideAfter` 0 stays, a hovered or focused one waits. */
|
|
1866
|
+
private schedule;
|
|
1867
|
+
/** Pauses the auto-hide while the pointer is over the toast or focus is inside it; restarts it afterwards. */
|
|
1868
|
+
private watchPointerAndFocus;
|
|
1869
|
+
/** Beyond `maxVisible`, hides the oldest toast of the lowest severity (success/info before warning before error). */
|
|
1870
|
+
private enforceLimit;
|
|
1871
|
+
private hideToast;
|
|
1872
|
+
private forget;
|
|
1873
|
+
private addDetailsButton;
|
|
1874
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationDisplayService, never>;
|
|
1875
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NotificationDisplayService>;
|
|
1428
1876
|
}
|
|
1429
1877
|
|
|
1430
1878
|
/**
|
|
@@ -1445,8 +1893,8 @@ declare class MessageListenerService implements OnDestroy {
|
|
|
1445
1893
|
*/
|
|
1446
1894
|
stop(): void;
|
|
1447
1895
|
ngOnDestroy(): void;
|
|
1448
|
-
static ɵfac:
|
|
1449
|
-
static ɵprov:
|
|
1896
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageListenerService, never>;
|
|
1897
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MessageListenerService>;
|
|
1450
1898
|
}
|
|
1451
1899
|
|
|
1452
1900
|
/**
|
|
@@ -1502,8 +1950,8 @@ declare class ListStateService {
|
|
|
1502
1950
|
private reviveFilterDates;
|
|
1503
1951
|
private loadAll;
|
|
1504
1952
|
private saveAll;
|
|
1505
|
-
static ɵfac:
|
|
1506
|
-
static ɵprov:
|
|
1953
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ListStateService, never>;
|
|
1954
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ListStateService>;
|
|
1507
1955
|
}
|
|
1508
1956
|
|
|
1509
1957
|
interface MessageDetailsDialogMessages {
|
|
@@ -1537,8 +1985,8 @@ declare class MessageDetailsDialogComponent implements OnInit {
|
|
|
1537
1985
|
onClose(): void;
|
|
1538
1986
|
copyToClipboard(): Promise<void>;
|
|
1539
1987
|
private fallbackCopyToClipboard;
|
|
1540
|
-
static ɵfac:
|
|
1541
|
-
static ɵcmp:
|
|
1988
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageDetailsDialogComponent, never>;
|
|
1989
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MessageDetailsDialogComponent, "mm-message-details-dialog", never, {}, {}, never, never, true, never>;
|
|
1542
1990
|
}
|
|
1543
1991
|
|
|
1544
1992
|
declare class MessageDetailsDialogService {
|
|
@@ -1546,8 +1994,8 @@ declare class MessageDetailsDialogService {
|
|
|
1546
1994
|
private readonly windowStateService;
|
|
1547
1995
|
defaultMessages: Partial<MessageDetailsDialogMessages> | undefined;
|
|
1548
1996
|
showDetailsDialog(data: MessageDetailsDialogData): WindowRef;
|
|
1549
|
-
static ɵfac:
|
|
1550
|
-
static ɵprov:
|
|
1997
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MessageDetailsDialogService, never>;
|
|
1998
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<MessageDetailsDialogService>;
|
|
1551
1999
|
}
|
|
1552
2000
|
|
|
1553
2001
|
/**
|
|
@@ -1728,8 +2176,8 @@ declare class EntitySelectInputComponent implements OnInit, OnDestroy, ControlVa
|
|
|
1728
2176
|
private setupSearch;
|
|
1729
2177
|
private selectEntity;
|
|
1730
2178
|
openAdvancedSearch(event?: Event): Promise<void>;
|
|
1731
|
-
static ɵfac:
|
|
1732
|
-
static ɵcmp:
|
|
2179
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntitySelectInputComponent, never>;
|
|
2180
|
+
static ɵcmp: _angular_core.ɵɵ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; }; "initialDisplayValue": { "alias": "initialDisplayValue"; "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>;
|
|
1733
2181
|
}
|
|
1734
2182
|
|
|
1735
2183
|
declare class EntitySelectDialogComponent<T> implements OnInit, OnDestroy {
|
|
@@ -1765,8 +2213,8 @@ declare class EntitySelectDialogComponent<T> implements OnInit, OnDestroy {
|
|
|
1765
2213
|
onSelectionChange(event: SelectionEvent): void;
|
|
1766
2214
|
onConfirm(): void;
|
|
1767
2215
|
onCancel(): void;
|
|
1768
|
-
static ɵfac:
|
|
1769
|
-
static ɵcmp:
|
|
2216
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntitySelectDialogComponent<any>, never>;
|
|
2217
|
+
static ɵcmp: _angular_core.ɵɵ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>;
|
|
1770
2218
|
}
|
|
1771
2219
|
|
|
1772
2220
|
declare class EntitySelectDialogService {
|
|
@@ -1779,8 +2227,47 @@ declare class EntitySelectDialogService {
|
|
|
1779
2227
|
* @returns Promise resolving to selected entities or null if cancelled
|
|
1780
2228
|
*/
|
|
1781
2229
|
open<T>(dataSource: EntitySelectDialogDataSource<T>, options: EntitySelectDialogOptions<T>): Promise<EntitySelectDialogResult<T> | null>;
|
|
1782
|
-
static ɵfac:
|
|
1783
|
-
static ɵprov:
|
|
2230
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntitySelectDialogService, never>;
|
|
2231
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<EntitySelectDialogService>;
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
/** Selector of the element that gets the initial focus (never the destructive button). */
|
|
2235
|
+
declare function DANGER_CONFIRM_SAFE_FOCUS(requireTypingName: boolean): string;
|
|
2236
|
+
/** Result of the danger confirmation dialog: `true` only for the confirming button. */
|
|
2237
|
+
declare class DangerConfirmationResult {
|
|
2238
|
+
readonly confirmed: boolean;
|
|
2239
|
+
constructor(confirmed: boolean);
|
|
2240
|
+
}
|
|
2241
|
+
/**
|
|
2242
|
+
* Content of {@link ConfirmationService.showDangerConfirm} (AB#5578): environment notice,
|
|
2243
|
+
* target, consequence, optional type-to-confirm input; Cancel left, danger confirm right.
|
|
2244
|
+
*/
|
|
2245
|
+
declare class DangerConfirmationWindowComponent extends DialogContentBase {
|
|
2246
|
+
private readonly ref;
|
|
2247
|
+
/** Set by the service right after opening. */
|
|
2248
|
+
readonly options: _angular_core.WritableSignal<DangerConfirmationOptions>;
|
|
2249
|
+
protected readonly typed: _angular_core.WritableSignal<string>;
|
|
2250
|
+
protected readonly inputId: string;
|
|
2251
|
+
protected readonly messages: _angular_core.Signal<DangerConfirmationMessages>;
|
|
2252
|
+
/** What has to be typed: the target name, or a non-empty fallback when it is empty. */
|
|
2253
|
+
protected readonly typingToken: _angular_core.Signal<string>;
|
|
2254
|
+
protected readonly typeLabel: _angular_core.Signal<string>;
|
|
2255
|
+
protected readonly environmentNotice: _angular_core.Signal<string>;
|
|
2256
|
+
protected readonly canConfirm: _angular_core.Signal<boolean>;
|
|
2257
|
+
constructor();
|
|
2258
|
+
private readonly host;
|
|
2259
|
+
/**
|
|
2260
|
+
* Initial focus never on the destructive button (Enter must not delete): the type-to-confirm
|
|
2261
|
+
* input when required, else Cancel. The service also passes `autoFocusedElement`; this is the
|
|
2262
|
+
* fallback for hosts that render the content themselves.
|
|
2263
|
+
*/
|
|
2264
|
+
ngAfterViewInit(): void;
|
|
2265
|
+
/** Focuses the type-to-confirm input or Cancel (unless focus already sits on one of them). */
|
|
2266
|
+
focusSafeElement(): void;
|
|
2267
|
+
protected cancel(): void;
|
|
2268
|
+
protected confirm(): void;
|
|
2269
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DangerConfirmationWindowComponent, never>;
|
|
2270
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DangerConfirmationWindowComponent, "mm-danger-confirmation-window", never, {}, {}, never, never, true, never>;
|
|
1784
2271
|
}
|
|
1785
2272
|
|
|
1786
2273
|
/**
|
|
@@ -1813,8 +2300,8 @@ declare class EntitySelectDialogService {
|
|
|
1813
2300
|
declare class UnsavedChangesGuard implements CanDeactivate<HasUnsavedChanges> {
|
|
1814
2301
|
private readonly confirmationService;
|
|
1815
2302
|
canDeactivate(component: HasUnsavedChanges): Promise<boolean>;
|
|
1816
|
-
static ɵfac:
|
|
1817
|
-
static ɵprov:
|
|
2303
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UnsavedChangesGuard, never>;
|
|
2304
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UnsavedChangesGuard>;
|
|
1818
2305
|
}
|
|
1819
2306
|
|
|
1820
2307
|
interface SaveAsDialogMessages {
|
|
@@ -1923,8 +2410,8 @@ declare class SaveAsDialogComponent extends DialogContentBase implements OnInit,
|
|
|
1923
2410
|
canSave(): boolean;
|
|
1924
2411
|
onSave(): void;
|
|
1925
2412
|
onCancel(): void;
|
|
1926
|
-
static ɵfac:
|
|
1927
|
-
static ɵcmp:
|
|
2413
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SaveAsDialogComponent, never>;
|
|
2414
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SaveAsDialogComponent, "mm-save-as-dialog", never, {}, {}, never, never, true, never>;
|
|
1928
2415
|
}
|
|
1929
2416
|
|
|
1930
2417
|
declare class SaveAsDialogService {
|
|
@@ -1935,8 +2422,8 @@ declare class SaveAsDialogService {
|
|
|
1935
2422
|
* @returns Promise that resolves with the result containing confirmed status and entered name
|
|
1936
2423
|
*/
|
|
1937
2424
|
showSaveAsDialog(options: SaveAsDialogOptions): Promise<SaveAsDialogResult>;
|
|
1938
|
-
static ɵfac:
|
|
1939
|
-
static ɵprov:
|
|
2425
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SaveAsDialogService, never>;
|
|
2426
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<SaveAsDialogService>;
|
|
1940
2427
|
}
|
|
1941
2428
|
|
|
1942
2429
|
/**
|
|
@@ -2200,18 +2687,18 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
|
|
|
2200
2687
|
* Emits the current selection state
|
|
2201
2688
|
*/
|
|
2202
2689
|
selectionChange: EventEmitter<TimeRangeSelection>;
|
|
2203
|
-
protected selectedType:
|
|
2204
|
-
protected selectedYear:
|
|
2205
|
-
protected selectedQuarter:
|
|
2206
|
-
protected selectedMonth:
|
|
2207
|
-
protected selectedDay:
|
|
2208
|
-
protected relativeValue:
|
|
2209
|
-
protected relativeUnit:
|
|
2210
|
-
protected hourFrom:
|
|
2211
|
-
protected hourTo:
|
|
2212
|
-
protected customFrom:
|
|
2213
|
-
protected customTo:
|
|
2214
|
-
protected mergedLabels:
|
|
2690
|
+
protected selectedType: _angular_core.WritableSignal<TimeRangeType>;
|
|
2691
|
+
protected selectedYear: _angular_core.WritableSignal<number>;
|
|
2692
|
+
protected selectedQuarter: _angular_core.WritableSignal<Quarter>;
|
|
2693
|
+
protected selectedMonth: _angular_core.WritableSignal<number>;
|
|
2694
|
+
protected selectedDay: _angular_core.WritableSignal<number>;
|
|
2695
|
+
protected relativeValue: _angular_core.WritableSignal<number>;
|
|
2696
|
+
protected relativeUnit: _angular_core.WritableSignal<RelativeTimeUnit>;
|
|
2697
|
+
protected hourFrom: _angular_core.WritableSignal<number | null>;
|
|
2698
|
+
protected hourTo: _angular_core.WritableSignal<number | null>;
|
|
2699
|
+
protected customFrom: _angular_core.WritableSignal<Date>;
|
|
2700
|
+
protected customTo: _angular_core.WritableSignal<Date>;
|
|
2701
|
+
protected mergedLabels: _angular_core.Signal<{
|
|
2215
2702
|
rangeType?: string;
|
|
2216
2703
|
year?: string;
|
|
2217
2704
|
quarter?: string;
|
|
@@ -2238,18 +2725,18 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
|
|
|
2238
2725
|
quarter3?: string;
|
|
2239
2726
|
quarter4?: string;
|
|
2240
2727
|
}>;
|
|
2241
|
-
protected typeOptions:
|
|
2242
|
-
protected yearOptions:
|
|
2243
|
-
protected quarterOptions:
|
|
2244
|
-
protected monthOptions:
|
|
2245
|
-
protected dayOptions:
|
|
2246
|
-
protected hourFromOptions:
|
|
2247
|
-
protected hourToOptions:
|
|
2248
|
-
protected relativeUnitOptions:
|
|
2249
|
-
protected currentRange:
|
|
2250
|
-
protected minDate:
|
|
2251
|
-
protected maxDate:
|
|
2252
|
-
protected showTime:
|
|
2728
|
+
protected typeOptions: _angular_core.Signal<TimeRangeOption<TimeRangeType>[]>;
|
|
2729
|
+
protected yearOptions: _angular_core.Signal<TimeRangeOption<number>[]>;
|
|
2730
|
+
protected quarterOptions: _angular_core.Signal<TimeRangeOption<Quarter>[]>;
|
|
2731
|
+
protected monthOptions: _angular_core.Signal<TimeRangeOption<number>[]>;
|
|
2732
|
+
protected dayOptions: _angular_core.Signal<TimeRangeOption<number>[]>;
|
|
2733
|
+
protected hourFromOptions: _angular_core.Signal<TimeRangeOption<number>[]>;
|
|
2734
|
+
protected hourToOptions: _angular_core.Signal<TimeRangeOption<number>[]>;
|
|
2735
|
+
protected relativeUnitOptions: _angular_core.Signal<TimeRangeOption<RelativeTimeUnit>[]>;
|
|
2736
|
+
protected currentRange: _angular_core.Signal<TimeRange | null>;
|
|
2737
|
+
protected minDate: _angular_core.Signal<Date>;
|
|
2738
|
+
protected maxDate: _angular_core.Signal<Date>;
|
|
2739
|
+
protected showTime: _angular_core.Signal<boolean>;
|
|
2253
2740
|
ngOnInit(): void;
|
|
2254
2741
|
ngOnChanges(changes: SimpleChanges): void;
|
|
2255
2742
|
private initializeDefaults;
|
|
@@ -2268,8 +2755,8 @@ declare class TimeRangePickerComponent implements OnInit, OnChanges {
|
|
|
2268
2755
|
protected onCustomToChange(date: Date): void;
|
|
2269
2756
|
private emitChange;
|
|
2270
2757
|
protected isType(type: TimeRangeType): boolean;
|
|
2271
|
-
static ɵfac:
|
|
2272
|
-
static ɵcmp:
|
|
2758
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimeRangePickerComponent, never>;
|
|
2759
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimeRangePickerComponent, "mm-time-range-picker", never, { "config": { "alias": "config"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "initialSelection": { "alias": "initialSelection"; "required": false; }; }, { "rangeChange": "rangeChange"; "rangeChangeISO": "rangeChangeISO"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
2273
2760
|
}
|
|
2274
2761
|
|
|
2275
2762
|
/**
|
|
@@ -2373,33 +2860,33 @@ declare class CronBuilderComponent implements OnInit, ControlValueAccessor {
|
|
|
2373
2860
|
protected readonly xIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
2374
2861
|
private onChange;
|
|
2375
2862
|
private onTouched;
|
|
2376
|
-
protected disabled:
|
|
2377
|
-
protected readonly expression:
|
|
2378
|
-
protected readonly selectedTabIndex:
|
|
2379
|
-
protected readonly copiedRecently:
|
|
2863
|
+
protected disabled: _angular_core.WritableSignal<boolean>;
|
|
2864
|
+
protected readonly expression: _angular_core.WritableSignal<string>;
|
|
2865
|
+
protected readonly selectedTabIndex: _angular_core.WritableSignal<number>;
|
|
2866
|
+
protected readonly copiedRecently: _angular_core.WritableSignal<boolean>;
|
|
2380
2867
|
private suppressOnChange;
|
|
2381
|
-
protected readonly scheduleType:
|
|
2382
|
-
protected readonly secondInterval:
|
|
2383
|
-
protected readonly minuteInterval:
|
|
2384
|
-
protected readonly hourInterval:
|
|
2385
|
-
protected readonly hourMinute:
|
|
2386
|
-
protected readonly hourSecond:
|
|
2387
|
-
protected readonly timeHour:
|
|
2388
|
-
protected readonly timeMinute:
|
|
2389
|
-
protected readonly timeSecond:
|
|
2390
|
-
protected readonly dailyMode:
|
|
2391
|
-
protected readonly selectedDays:
|
|
2392
|
-
protected readonly monthlyMode:
|
|
2393
|
-
protected readonly dayOfMonth:
|
|
2394
|
-
protected readonly relativeWeek:
|
|
2395
|
-
protected readonly relativeDay:
|
|
2396
|
-
protected readonly customSecond:
|
|
2397
|
-
protected readonly customMinute:
|
|
2398
|
-
protected readonly customHour:
|
|
2399
|
-
protected readonly customDayOfMonth:
|
|
2400
|
-
protected readonly customMonth:
|
|
2401
|
-
protected readonly customDayOfWeek:
|
|
2402
|
-
protected readonly mergedConfig:
|
|
2868
|
+
protected readonly scheduleType: _angular_core.WritableSignal<ScheduleType>;
|
|
2869
|
+
protected readonly secondInterval: _angular_core.WritableSignal<number>;
|
|
2870
|
+
protected readonly minuteInterval: _angular_core.WritableSignal<number>;
|
|
2871
|
+
protected readonly hourInterval: _angular_core.WritableSignal<number>;
|
|
2872
|
+
protected readonly hourMinute: _angular_core.WritableSignal<number>;
|
|
2873
|
+
protected readonly hourSecond: _angular_core.WritableSignal<number>;
|
|
2874
|
+
protected readonly timeHour: _angular_core.WritableSignal<number>;
|
|
2875
|
+
protected readonly timeMinute: _angular_core.WritableSignal<number>;
|
|
2876
|
+
protected readonly timeSecond: _angular_core.WritableSignal<number>;
|
|
2877
|
+
protected readonly dailyMode: _angular_core.WritableSignal<"every" | "weekdays" | "weekends" | "specific">;
|
|
2878
|
+
protected readonly selectedDays: _angular_core.WritableSignal<Weekday[]>;
|
|
2879
|
+
protected readonly monthlyMode: _angular_core.WritableSignal<"relative" | "specific">;
|
|
2880
|
+
protected readonly dayOfMonth: _angular_core.WritableSignal<number>;
|
|
2881
|
+
protected readonly relativeWeek: _angular_core.WritableSignal<string>;
|
|
2882
|
+
protected readonly relativeDay: _angular_core.WritableSignal<Weekday>;
|
|
2883
|
+
protected readonly customSecond: _angular_core.WritableSignal<string>;
|
|
2884
|
+
protected readonly customMinute: _angular_core.WritableSignal<string>;
|
|
2885
|
+
protected readonly customHour: _angular_core.WritableSignal<string>;
|
|
2886
|
+
protected readonly customDayOfMonth: _angular_core.WritableSignal<string>;
|
|
2887
|
+
protected readonly customMonth: _angular_core.WritableSignal<string>;
|
|
2888
|
+
protected readonly customDayOfWeek: _angular_core.WritableSignal<string>;
|
|
2889
|
+
protected readonly mergedConfig: _angular_core.Signal<{
|
|
2403
2890
|
showPresets?: boolean;
|
|
2404
2891
|
showHumanReadable?: boolean;
|
|
2405
2892
|
showNextExecutions?: boolean;
|
|
@@ -2409,11 +2896,11 @@ declare class CronBuilderComponent implements OnInit, ControlValueAccessor {
|
|
|
2409
2896
|
defaultScheduleType?: ScheduleType;
|
|
2410
2897
|
locale?: string;
|
|
2411
2898
|
}>;
|
|
2412
|
-
protected readonly humanReadable:
|
|
2413
|
-
protected readonly validationResult:
|
|
2414
|
-
protected readonly nextExecutions:
|
|
2415
|
-
protected readonly presets:
|
|
2416
|
-
protected readonly presetsByCategory:
|
|
2899
|
+
protected readonly humanReadable: _angular_core.Signal<string>;
|
|
2900
|
+
protected readonly validationResult: _angular_core.Signal<_meshmakers_shared_ui.CronValidationResult>;
|
|
2901
|
+
protected readonly nextExecutions: _angular_core.Signal<Date[]>;
|
|
2902
|
+
protected readonly presets: _angular_core.Signal<CronPreset[]>;
|
|
2903
|
+
protected readonly presetsByCategory: _angular_core.Signal<{
|
|
2417
2904
|
frequent: CronPreset[];
|
|
2418
2905
|
hourly: CronPreset[];
|
|
2419
2906
|
daily: CronPreset[];
|
|
@@ -2460,8 +2947,8 @@ declare class CronBuilderComponent implements OnInit, ControlValueAccessor {
|
|
|
2460
2947
|
private parseExpressionToState;
|
|
2461
2948
|
protected trackByValue(_index: number, item: DropdownOption): number | string;
|
|
2462
2949
|
protected trackByPresetId(_index: number, item: CronPreset): string;
|
|
2463
|
-
static ɵfac:
|
|
2464
|
-
static ɵcmp:
|
|
2950
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CronBuilderComponent, never>;
|
|
2951
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CronBuilderComponent, "mm-cron-builder", never, { "config": { "alias": "config"; "required": false; }; }, {}, never, never, true, never>;
|
|
2465
2952
|
}
|
|
2466
2953
|
|
|
2467
2954
|
/**
|
|
@@ -2499,8 +2986,8 @@ declare class CronParserService {
|
|
|
2499
2986
|
private generateMonthlyExpression;
|
|
2500
2987
|
private generateCustomExpression;
|
|
2501
2988
|
private getWeekNumber;
|
|
2502
|
-
static ɵfac:
|
|
2503
|
-
static ɵprov:
|
|
2989
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CronParserService, never>;
|
|
2990
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CronParserService>;
|
|
2504
2991
|
}
|
|
2505
2992
|
|
|
2506
2993
|
/**
|
|
@@ -2535,8 +3022,8 @@ declare class CronHumanizerService {
|
|
|
2535
3022
|
name: string;
|
|
2536
3023
|
}[];
|
|
2537
3024
|
private normalizeLocale;
|
|
2538
|
-
static ɵfac:
|
|
2539
|
-
static ɵprov:
|
|
3025
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CronHumanizerService, never>;
|
|
3026
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<CronHumanizerService>;
|
|
2540
3027
|
}
|
|
2541
3028
|
|
|
2542
3029
|
/**
|
|
@@ -2568,8 +3055,8 @@ declare class CopyableTextComponent {
|
|
|
2568
3055
|
protected get hasValue(): boolean;
|
|
2569
3056
|
/** Copies the value to clipboard and shows a notification. */
|
|
2570
3057
|
protected copyToClipboard(): void;
|
|
2571
|
-
static ɵfac:
|
|
2572
|
-
static ɵcmp:
|
|
3058
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CopyableTextComponent, never>;
|
|
3059
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CopyableTextComponent, "mm-copyable-text", never, { "value": { "alias": "value"; "required": true; }; "label": { "alias": "label"; "required": false; }; "copyLabel": { "alias": "copyLabel"; "required": false; }; "buttonTitle": { "alias": "buttonTitle"; "required": false; }; }, { "copied": "copied"; }, never, never, true, never>;
|
|
2573
3060
|
}
|
|
2574
3061
|
|
|
2575
3062
|
declare class ImportStrategyDialogResult {
|
|
@@ -2584,15 +3071,15 @@ declare class ImportStrategyDialogComponent extends DialogContentBase {
|
|
|
2584
3071
|
constructor();
|
|
2585
3072
|
onImport(): void;
|
|
2586
3073
|
onCancel(): void;
|
|
2587
|
-
static ɵfac:
|
|
2588
|
-
static ɵcmp:
|
|
3074
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ImportStrategyDialogComponent, never>;
|
|
3075
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ImportStrategyDialogComponent, "mm-import-strategy-dialog", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, true, never>;
|
|
2589
3076
|
}
|
|
2590
3077
|
|
|
2591
3078
|
declare class ImportStrategyDialogService {
|
|
2592
3079
|
private readonly dialogService;
|
|
2593
3080
|
showImportStrategyDialog(title?: string, message?: string): Promise<ImportStrategyDto | null>;
|
|
2594
|
-
static ɵfac:
|
|
2595
|
-
static ɵprov:
|
|
3081
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ImportStrategyDialogService, never>;
|
|
3082
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ImportStrategyDialogService>;
|
|
2596
3083
|
}
|
|
2597
3084
|
|
|
2598
3085
|
interface WindowDimensions {
|
|
@@ -2642,11 +3129,110 @@ declare class WindowStateService {
|
|
|
2642
3129
|
private getOrCreateBackdropElement;
|
|
2643
3130
|
private loadStates;
|
|
2644
3131
|
private saveStates;
|
|
2645
|
-
static ɵfac:
|
|
2646
|
-
static ɵprov:
|
|
3132
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WindowStateService, never>;
|
|
3133
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<WindowStateService>;
|
|
3134
|
+
}
|
|
3135
|
+
|
|
3136
|
+
/** Where the button sits; drives size, icon size (16 px rows, 20 px toolbars) and emphasis. */
|
|
3137
|
+
type MmActionContext = 'row' | 'toolbar' | 'page';
|
|
3138
|
+
/** What the button shows. Icon-only buttons always get a tooltip and an accessible name. */
|
|
3139
|
+
type MmActionDisplay = 'icon' | 'text' | 'icon-text';
|
|
3140
|
+
/**
|
|
3141
|
+
* One action as a button (AB#5570), rendered from a shared {@link MmAction} definition.
|
|
3142
|
+
*
|
|
3143
|
+
* - `display="icon"`: icon-only, native tooltip = label (+ disabled reason), `aria-label`
|
|
3144
|
+
* = label + `targetLabel` ("Delete dump Encrypt run 2026-10-06 17:09").
|
|
3145
|
+
* - `display="text"` / `"icon-text"`: visible label; `targetLabel` still extends the
|
|
3146
|
+
* accessible name when the same label repeats (one per row).
|
|
3147
|
+
* - Disabled (`disabledReason`): stays focusable, `aria-disabled="true"`, the reason is
|
|
3148
|
+
* linked via `aria-describedby` and shown in the tooltip; clicks are swallowed.
|
|
3149
|
+
* - `danger`: Kendo `themeColor="error"`. The consumer confirms before acting.
|
|
3150
|
+
* - `primary` (page/toolbar context only): solid primary button for the one main action.
|
|
3151
|
+
* - `link`: rendered as a real router link (`<a kendoButton [routerLink]>`, so open-in-new-tab
|
|
3152
|
+
* works); a disabled link action renders as a disabled button.
|
|
3153
|
+
*
|
|
3154
|
+
* ```html
|
|
3155
|
+
* <mm-action-button [action]="refresh" context="toolbar" (triggered)="reload()" />
|
|
3156
|
+
* <mm-action-button [action]="newAdapter" context="page" display="icon-text" primary (triggered)="create()" />
|
|
3157
|
+
* ```
|
|
3158
|
+
*/
|
|
3159
|
+
declare class ActionButtonComponent<TId extends string = string> {
|
|
3160
|
+
/** The action definition. */
|
|
3161
|
+
readonly action: _angular_core.InputSignal<MmAction<TId>>;
|
|
3162
|
+
/** Name of the target (row) for the accessible name; required for repeated row actions. */
|
|
3163
|
+
readonly targetLabel: _angular_core.InputSignal<string | null | undefined>;
|
|
3164
|
+
readonly context: _angular_core.InputSignal<MmActionContext>;
|
|
3165
|
+
readonly display: _angular_core.InputSignal<MmActionDisplay>;
|
|
3166
|
+
/** Solid primary emphasis — at most one per page header / toolbar. */
|
|
3167
|
+
readonly primary: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
3168
|
+
/** Fires for enabled actions only. */
|
|
3169
|
+
readonly triggered: _angular_core.OutputEmitterRef<MmActionEvent<TId>>;
|
|
3170
|
+
protected readonly reasonId: string;
|
|
3171
|
+
protected readonly disabled: _angular_core.Signal<boolean>;
|
|
3172
|
+
/** Icon-only needs an icon; without one the button falls back to its text. */
|
|
3173
|
+
protected readonly iconOnly: _angular_core.Signal<boolean>;
|
|
3174
|
+
/** Visible text: `menuLabel` ("Delete dump…") when set, else the label. */
|
|
3175
|
+
protected readonly visibleLabel: _angular_core.Signal<string>;
|
|
3176
|
+
protected readonly showIcon: _angular_core.Signal<boolean>;
|
|
3177
|
+
protected readonly tooltip: _angular_core.Signal<string | null>;
|
|
3178
|
+
protected readonly ariaLabel: _angular_core.Signal<string | null>;
|
|
3179
|
+
/** Kendo button classes for the link variant (same look as `button[kendoButton]`). */
|
|
3180
|
+
protected readonly linkClasses: _angular_core.Signal<string>;
|
|
3181
|
+
protected onClick(event: Event): void;
|
|
3182
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionButtonComponent<any>, never>;
|
|
3183
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionButtonComponent<any>, "mm-action-button", never, { "action": { "alias": "action"; "required": true; "isSignal": true; }; "targetLabel": { "alias": "targetLabel"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "primary": { "alias": "primary"; "required": false; "isSignal": true; }; }, { "triggered": "triggered"; }, never, never, true, never>;
|
|
3184
|
+
}
|
|
3185
|
+
|
|
3186
|
+
/** Overflow menu item handed to the Kendo DropDownButton. */
|
|
3187
|
+
interface RowActionMenuItem<TId extends string> {
|
|
3188
|
+
text: string;
|
|
3189
|
+
svgIcon?: MmAction<TId>['icon'];
|
|
3190
|
+
disabled: boolean;
|
|
3191
|
+
action: MmAction<TId>;
|
|
3192
|
+
}
|
|
3193
|
+
/**
|
|
3194
|
+
* The actions of one table row (AB#5570): icon buttons (16 px) with tooltip and an accessible
|
|
3195
|
+
* name that includes the row ("Edit Mesh Adapter"), from one shared action definition.
|
|
3196
|
+
* At most `maxInline` slots (default 3): when the actions do not fit, the last slot becomes a
|
|
3197
|
+
* "More actions for …" menu. Disabled actions stay focusable and announce their reason;
|
|
3198
|
+
* in the menu the reason is shown under the item text.
|
|
3199
|
+
*
|
|
3200
|
+
* The component only emits — destructive handlers confirm first (danger dialog naming the target).
|
|
3201
|
+
*
|
|
3202
|
+
* ```html
|
|
3203
|
+
* <td class="actions">
|
|
3204
|
+
* <mm-row-actions [actions]="rowActions(run)" [rowLabel]="runLabel(run)" (triggered)="onAction($event, run)" />
|
|
3205
|
+
* </td>
|
|
3206
|
+
* ```
|
|
3207
|
+
*/
|
|
3208
|
+
declare class RowActionsComponent<TId extends string = string> {
|
|
3209
|
+
/** Action definitions for this row (hidden ones are filtered out). */
|
|
3210
|
+
readonly actions: _angular_core.InputSignal<readonly MmAction<TId>[]>;
|
|
3211
|
+
/** Human name of the row ("Mesh Adapter", "Encrypt run 2026-10-06 17:09"); part of every accessible name. */
|
|
3212
|
+
readonly rowLabel: _angular_core.InputSignal<string>;
|
|
3213
|
+
/** Slots incl. the overflow button. */
|
|
3214
|
+
readonly maxInline: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
3215
|
+
/** Fires for enabled actions only, inline or from the menu. */
|
|
3216
|
+
readonly triggered: _angular_core.OutputEmitterRef<MmActionEvent<TId>>;
|
|
3217
|
+
private readonly router;
|
|
3218
|
+
/** Menu links resolve like the inline `routerLink`: relative to the hosting route. */
|
|
3219
|
+
private readonly route;
|
|
3220
|
+
protected readonly moreIcon: _progress_kendo_svg_icons.SVGIcon;
|
|
3221
|
+
protected readonly split: _angular_core.Signal<{
|
|
3222
|
+
inline: MmAction<TId>[];
|
|
3223
|
+
menu: MmAction<TId>[];
|
|
3224
|
+
}>;
|
|
3225
|
+
protected readonly menuItems: _angular_core.Signal<RowActionMenuItem<TId>[]>;
|
|
3226
|
+
/** No group semantics for an empty cell (all actions hidden). */
|
|
3227
|
+
protected readonly hasActions: _angular_core.Signal<boolean>;
|
|
3228
|
+
protected readonly moreLabel: _angular_core.Signal<string>;
|
|
3229
|
+
protected readonly groupLabel: _angular_core.Signal<string>;
|
|
3230
|
+
protected onMenuItem(item: RowActionMenuItem<TId>): void;
|
|
3231
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RowActionsComponent<any>, never>;
|
|
3232
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RowActionsComponent<any>, "mm-row-actions", never, { "actions": { "alias": "actions"; "required": true; "isSignal": true; }; "rowLabel": { "alias": "rowLabel"; "required": true; "isSignal": true; }; "maxInline": { "alias": "maxInline"; "required": false; "isSignal": true; }; }, { "triggered": "triggered"; }, never, never, true, never>;
|
|
2647
3233
|
}
|
|
2648
3234
|
|
|
2649
3235
|
declare function provideMmSharedUi(): EnvironmentProviders;
|
|
2650
3236
|
|
|
2651
|
-
export { BaseFormComponent, BaseTreeDetailComponent, ButtonTypes, BytesToSizePipe, CRON_PRESETS, ConfirmationService, ConfirmationWindowComponent, ConfirmationWindowResult, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DEFAULT_CONFIRMATION_WINDOW_MESSAGES, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES, DEFAULT_ENTITY_SELECT_INPUT_MESSAGES, DEFAULT_INPUT_DIALOG_MESSAGES, DEFAULT_LIST_VIEW_MESSAGES, DEFAULT_MESSAGE_DETAILS_DIALOG_MESSAGES, DEFAULT_NOTIFICATION_DISPLAY_MESSAGES, DEFAULT_PROGRESS_WINDOW_MESSAGES, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_SAVE_AS_DIALOG_MESSAGES, 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, ListStateService, ListViewComponent, ListViewFiltersDirective, 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, WindowStateService, generateDayOfMonthOptions, generateHourOptions, generateMinuteOptions, provideMmSharedUi };
|
|
2652
|
-
export type { BadgeMapping, BadgeMappingTable, BaseFormConfig, BaseFormMessages, ColumnDefinition, ConfirmationButtonLabels, ConfirmationWindowData, ConfirmationWindowMessages, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogMessages, EntitySelectDialogOptions, EntitySelectDialogResult, EntitySelectInputMessages, FetchAgainOptions, FetchDataOptions, FetchResult, FileUploadData, HasUnsavedChanges, InputDialogMessages, ListViewCommand, ListViewMessages, MessageDetailsDialogData, MessageDetailsDialogMessages, NameAvailabilityResult, NodeDroppedEvent, NodeInfo, NotificationDisplayMessages, PersistedListState, ProgressWindowConfig, ProgressWindowData, ProgressWindowMessages, ProgressWindowOptions, ProgressWindowResult, Quarter, RelativeTimeUnit, ResponsiveFormBreakPoint, RowClassFn, SaveAsDialogDataSource, SaveAsDialogMessages, SaveAsDialogOptions, SaveAsDialogResult, ScheduleType, StatusFieldConfig, StatusIconMapping, StatusMapping, TableColumn, TimeRange, TimeRangeISO, TimeRangeOption, TimeRangePickerConfig, TimeRangePickerLabels, TimeRangeSelection, TimeRangeType, TimeRangeZone, UnsavedChangesMessages, Weekday, WindowDimensions };
|
|
3237
|
+
export { ActionButtonComponent, BaseFormComponent, BaseTreeDetailComponent, ButtonTypes, BytesToSizePipe, CRON_PRESETS, ConfirmationService, ConfirmationWindowComponent, ConfirmationWindowResult, CopyableTextComponent, CronBuilderComponent, CronHumanizerService, CronParserService, DANGER_CONFIRM_ENVIRONMENT, DANGER_CONFIRM_FALLBACK_WORD, DANGER_CONFIRM_SAFE_FOCUS, DEFAULT_CONFIRMATION_WINDOW_MESSAGES, DEFAULT_CRON_BUILDER_CONFIG, DEFAULT_DANGER_CONFIRMATION_MESSAGES, DEFAULT_ENTITY_SELECT_DIALOG_MESSAGES, DEFAULT_ENTITY_SELECT_INPUT_MESSAGES, DEFAULT_INPUT_DIALOG_MESSAGES, DEFAULT_LIST_VIEW_MESSAGES, DEFAULT_MESSAGE_DETAILS_DIALOG_MESSAGES, DEFAULT_NOTIFICATION_DISPLAY_MESSAGES, DEFAULT_PROGRESS_WINDOW_MESSAGES, DEFAULT_RESPONSIVE_COLSPAN, DEFAULT_SAVE_AS_DIALOG_MESSAGES, DEFAULT_TIME_RANGE_LABELS, DangerConfirmationResult, DangerConfirmationWindowComponent, DataSourceBase, DataSourceTyped, DialogType, EntitySelectDialogComponent, EntitySelectDialogService, EntitySelectInputComponent, FetchResultBase, FetchResultTyped, FileUploadResult, FileUploadService, FormTitleExtraDirective, HAS_UNSAVED_CHANGES, HOUR_INTERVALS, HierarchyDataSource, HierarchyDataSourceBase, ImportStrategyDialogComponent, ImportStrategyDialogResult, ImportStrategyDialogService, ImportStrategyDto, InputDialogComponent, InputService, ListStateService, ListViewComponent, ListViewFiltersDirective, MINUTE_INTERVALS, MM_ACTION_ICONS, MM_ROW_ACTIONS_MAX_INLINE, MessageDetailsDialogComponent, MessageDetailsDialogService, MessageListenerService, MmListViewDataBindingDirective, NOTIFICATION_DISPLAY_OPTIONS, NotificationDisplayService, PascalCasePipe, ProgressValue, ProgressWindowComponent, ProgressWindowService, RELATIVE_WEEKS, RowActionsComponent, SECOND_INTERVALS, SaveAsDialogComponent, SaveAsDialogService, TimeRangePickerComponent, TimeRangeUtils, TreeComponent, UnsavedChangesDirective, UnsavedChangesGuard, UploadFileDialogComponent, WEEKDAYS, WEEKDAY_ABBREVIATIONS, WindowStateService, actionAccessibleName, actionTooltip, applyDangerConfirmEnvironment, dangerConfirmNameMatches, dangerConfirmTypingToken, generateDayOfMonthOptions, generateHourOptions, generateMinuteOptions, isActionDisabled, isActionVisible, provideMmSharedUi, resolveListRowAction, resolveListViewMessages, sameAction, splitRowActions };
|
|
3238
|
+
export type { BadgeMapping, BadgeMappingTable, BaseFormConfig, BaseFormMessages, ColumnDefinition, ConfirmationButtonLabels, ConfirmationWindowData, ConfirmationWindowMessages, ContextMenuType, CronBuilderConfig, CronFields, CronPreset, CronSchedule, CronValidationResult, DangerConfirmEnvironment, DangerConfirmationMessages, DangerConfirmationOptions, DialogFetchOptions, DialogFetchResult, DropdownOption, EntitySelectDialogDataSource, EntitySelectDialogMessages, EntitySelectDialogOptions, EntitySelectDialogResult, EntitySelectInputMessages, FetchAgainOptions, FetchDataOptions, FetchResult, FileUploadData, HasUnsavedChanges, InputDialogMessages, ListViewCommand, ListViewMessages, MessageDetailsDialogData, MessageDetailsDialogMessages, MmAction, MmActionContext, MmActionDisplay, MmActionEvent, MmActionIconName, MmActionLink, MmListRowAction, MmListRowActionEvent, NameAvailabilityResult, NodeDroppedEvent, NodeInfo, NotificationDisplayMessages, NotificationDisplayOptions, PersistedListState, ProgressWindowConfig, ProgressWindowData, ProgressWindowMessages, ProgressWindowOptions, ProgressWindowResult, Quarter, RelativeTimeUnit, ResolvedListRowAction, ResponsiveFormBreakPoint, RowActionsView, RowClassFn, SaveAsDialogDataSource, SaveAsDialogMessages, SaveAsDialogOptions, SaveAsDialogResult, ScheduleType, StatusFieldConfig, StatusIconMapping, StatusMapping, TableColumn, TimeRange, TimeRangeISO, TimeRangeOption, TimeRangePickerConfig, TimeRangePickerLabels, TimeRangeSelection, TimeRangeType, TimeRangeZone, UnsavedChangesMessages, Weekday, WindowDimensions };
|