@siemens/element-ng 49.10.0 → 49.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +13 -4
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-application-header.mjs +4 -4
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-date-range-filter.mjs +12 -3
  6. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-datepicker.mjs +1 -1
  8. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-filtered-search.mjs +2 -2
  10. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-form.mjs +6 -6
  12. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-landing-page.mjs +2 -2
  14. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +355 -258
  16. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +18 -2
  18. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-photo-upload.mjs +2 -2
  20. package/fesm2022/siemens-element-ng-select.mjs +2 -2
  21. package/fesm2022/siemens-element-ng-side-panel.mjs +2 -2
  22. package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
  23. package/fesm2022/siemens-element-ng-tour.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-tree-view.mjs +2 -2
  26. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  27. package/package.json +3 -3
  28. package/template-i18n.json +8 -6
  29. package/types/siemens-element-ng-about.d.ts +11 -1
  30. package/types/siemens-element-ng-date-range-filter.d.ts +10 -1
  31. package/types/siemens-element-ng-navbar-vertical-next.d.ts +161 -85
  32. package/types/siemens-element-ng-translate.d.ts +2 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@siemens/element-ng",
3
3
  "description": "Element Angular component library, implementing the Siemens Design Language",
4
- "version": "49.10.0",
4
+ "version": "49.11.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -43,8 +43,8 @@
43
43
  "@ngx-formly/bootstrap": "^6.2.2",
44
44
  "@ngx-formly/core": "^6.2.2",
45
45
  "@siemens/element-icons": "1",
46
- "@siemens/element-translate-ng": "49.10.0",
47
- "@siemens/element-theme": "49.10.0",
46
+ "@siemens/element-translate-ng": "49.11.0",
47
+ "@siemens/element-theme": "49.11.0",
48
48
  "@siemens/ngx-datatable": "22 - 26",
49
49
  "ag-grid-community": "^34.3.1 || ^35.0.0",
50
50
  "flag-icons": "^7.3.2",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "SI_ABOUT.LOGO_ALT": "{{appName}} logo",
2
3
  "SI_AI_MESSAGE.SECONDARY_ACTIONS": "More actions",
3
4
  "SI_ALERT_DIALOG.OK": "OK",
4
5
  "SI_APPLICATION_HEADER.LAUNCHPAD": "Launchpad",
@@ -70,6 +71,7 @@
70
71
  "SI_DATE_RANGE_FILTER.REF_POINT": "Reference point",
71
72
  "SI_DATE_RANGE_FILTER.SEARCH": "Search",
72
73
  "SI_DATE_RANGE_FILTER.SELECT_RANGE_END": "Select end date",
74
+ "SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL": "Select date range",
73
75
  "SI_DATE_RANGE_FILTER.TO": "To",
74
76
  "SI_DATE_RANGE_FILTER.TODAY": "Today",
75
77
  "SI_DATE_RANGE_FILTER.UNIT": "Unit",
@@ -123,20 +125,20 @@
123
125
  "SI_FORM_CONTAINER.ERROR.IPV4": "Invalid IPv4 address",
124
126
  "SI_FORM_CONTAINER.ERROR.IPV6": "Invalid IPv6 address",
125
127
  "SI_FORM_CONTAINER.ERROR.MAX": "Max. {{max}}",
126
- "SI_FORM_CONTAINER.ERROR.MAX_DATE": "Date prior to {{maxString}} required",
128
+ "SI_FORM_CONTAINER.ERROR.MAX_DATE": "Date up to and including {{maxString}} required",
127
129
  "SI_FORM_CONTAINER.ERROR.MAX_LENGTH": "Max. {{requiredLength}} characters",
128
- "SI_FORM_CONTAINER.ERROR.MAX_TIME": "Time prior to {{maxString}} required",
130
+ "SI_FORM_CONTAINER.ERROR.MAX_TIME": "Time up to and including {{maxString}} required",
129
131
  "SI_FORM_CONTAINER.ERROR.MILLISECONDS": "Integer between 0 and 999 required",
130
132
  "SI_FORM_CONTAINER.ERROR.MIN": "Min. {{min}}",
131
133
  "SI_FORM_CONTAINER.ERROR.MINUTES": "Integer between 0 and 59 required",
132
- "SI_FORM_CONTAINER.ERROR.MIN_DATE": "Date after {{minString}} required",
134
+ "SI_FORM_CONTAINER.ERROR.MIN_DATE": "Date from {{minString}} required",
133
135
  "SI_FORM_CONTAINER.ERROR.MIN_LENGTH": "Min. {{requiredLength}} characters",
134
- "SI_FORM_CONTAINER.ERROR.MIN_TIME": "Time after {{minString}} required",
136
+ "SI_FORM_CONTAINER.ERROR.MIN_TIME": "Time from {{minString}} required",
135
137
  "SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT": "Number required",
136
138
  "SI_FORM_CONTAINER.ERROR.PATTERN": "The value does not match the predefined pattern.",
137
139
  "SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY": "Unsupported country/region code",
138
- "SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE": "Period prior to {{maxString}} required",
139
- "SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE": "Period after {{minString}} required",
140
+ "SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE": "Period up to and including {{maxString}} required",
141
+ "SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE": "Period from {{minString}} required",
140
142
  "SI_FORM_CONTAINER.ERROR.REQUIRED": "Required",
141
143
  "SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE": "Required",
142
144
  "SI_FORM_CONTAINER.ERROR.SECONDS": "Integer between 0 and 59 required",
@@ -1,6 +1,7 @@
1
1
  import * as _angular_platform_browser from '@angular/platform-browser';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { OnInit } from '@angular/core';
4
+ import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
4
5
  import { CopyrightDetails } from '@siemens/element-ng/copyright-notice';
5
6
  import { Link } from '@siemens/element-ng/link';
6
7
 
@@ -58,6 +59,15 @@ interface ApiInfo {
58
59
  declare class SiAboutComponent implements OnInit {
59
60
  private http;
60
61
  private sanitizer;
62
+ /**
63
+ * Alt text for the application logo. Supports `{{appName}}` placeholder for interpolation.
64
+ *
65
+ * @defaultValue
66
+ * ```
67
+ * t(() => $localize`:@@SI_ABOUT.LOGO_ALT:{{appName}} logo`)
68
+ * ```
69
+ */
70
+ readonly logoAlt: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
61
71
  /**
62
72
  * Title shown above the about information.
63
73
  */
@@ -119,7 +129,7 @@ declare class SiAboutComponent implements OnInit {
119
129
  protected toggleLoadLicenseApi(apiInfo: ApiInfo): void;
120
130
  protected toggleLoadLicenseContent(apiInfo: ApiInfo): void;
121
131
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiAboutComponent, never>;
122
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAboutComponent, "si-about", never, { "aboutTitle": { "alias": "aboutTitle"; "required": true; "isSignal": true; }; "licenseInfo": { "alias": "licenseInfo"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "appName": { "alias": "appName"; "required": true; "isSignal": true; }; "subheading": { "alias": "subheading"; "required": false; "isSignal": true; }; "acceptableUsePolicyLink": { "alias": "acceptableUsePolicyLink"; "required": false; "isSignal": true; }; "imprintLink": { "alias": "imprintLink"; "required": false; "isSignal": true; }; "privacyLink": { "alias": "privacyLink"; "required": false; "isSignal": true; }; "cookieNoticeLink": { "alias": "cookieNoticeLink"; "required": false; "isSignal": true; }; "termsLink": { "alias": "termsLink"; "required": false; "isSignal": true; }; "links": { "alias": "links"; "required": false; "isSignal": true; }; "copyrightDetails": { "alias": "copyrightDetails"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
132
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiAboutComponent, "si-about", never, { "logoAlt": { "alias": "logoAlt"; "required": false; "isSignal": true; }; "aboutTitle": { "alias": "aboutTitle"; "required": true; "isSignal": true; }; "licenseInfo": { "alias": "licenseInfo"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "appName": { "alias": "appName"; "required": true; "isSignal": true; }; "subheading": { "alias": "subheading"; "required": false; "isSignal": true; }; "acceptableUsePolicyLink": { "alias": "acceptableUsePolicyLink"; "required": false; "isSignal": true; }; "imprintLink": { "alias": "imprintLink"; "required": false; "isSignal": true; }; "privacyLink": { "alias": "privacyLink"; "required": false; "isSignal": true; }; "cookieNoticeLink": { "alias": "cookieNoticeLink"; "required": false; "isSignal": true; }; "termsLink": { "alias": "termsLink"; "required": false; "isSignal": true; }; "links": { "alias": "links"; "required": false; "isSignal": true; }; "copyrightDetails": { "alias": "copyrightDetails"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
123
133
  }
124
134
 
125
135
  declare class SiAboutModule {
@@ -266,6 +266,15 @@ declare class SiDateRangeFilterComponent implements OnChanges {
266
266
  * ```
267
267
  */
268
268
  readonly rangeEndDateMissingLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
269
+ /**
270
+ * label when range is not defined in the preview
271
+ *
272
+ * @defaultValue
273
+ * ```
274
+ * t(() => $localize`:@@SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL:Select date range`)
275
+ * ```
276
+ */
277
+ readonly selectRangeLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
269
278
  /** Event fired when the apply button has been clicked */
270
279
  readonly applyClicked: _angular_core.OutputEmitterRef<void>;
271
280
  /** Base configuration on how the dates should be displayed, parts of it may be overwritten internally. */
@@ -302,7 +311,7 @@ declare class SiDateRangeFilterComponent implements OnChanges {
302
311
  protected point2Changed(): void;
303
312
  protected selectPresetItem(event: Event, item: DateRangePreset): void;
304
313
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiDateRangeFilterComponent, never>;
305
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiDateRangeFilterComponent, "si-date-range-filter", never, { "range": { "alias": "range"; "required": true; "isSignal": true; }; "presetList": { "alias": "presetList"; "required": false; "isSignal": true; }; "presetSearch": { "alias": "presetSearch"; "required": false; "isSignal": true; }; "enableTimeSelection": { "alias": "enableTimeSelection"; "required": false; "isSignal": true; }; "basicMode": { "alias": "basicMode"; "required": false; "isSignal": true; }; "reverseInputFields": { "alias": "reverseInputFields"; "required": false; "isSignal": true; }; "showApplyButton": { "alias": "showApplyButton"; "required": false; "isSignal": true; }; "hideAdvancedMode": { "alias": "hideAdvancedMode"; "required": false; "isSignal": true; }; "refLabel": { "alias": "refLabel"; "required": false; "isSignal": true; }; "fromLabel": { "alias": "fromLabel"; "required": false; "isSignal": true; }; "toLabel": { "alias": "toLabel"; "required": false; "isSignal": true; }; "rangeLabel": { "alias": "rangeLabel"; "required": false; "isSignal": true; }; "todayLabel": { "alias": "todayLabel"; "required": false; "isSignal": true; }; "nowLabel": { "alias": "nowLabel"; "required": false; "isSignal": true; }; "dateLabel": { "alias": "dateLabel"; "required": false; "isSignal": true; }; "previewLabel": { "alias": "previewLabel"; "required": false; "isSignal": true; }; "datePlaceholder": { "alias": "datePlaceholder"; "required": false; "isSignal": true; }; "beforeLabel": { "alias": "beforeLabel"; "required": false; "isSignal": true; }; "afterLabel": { "alias": "afterLabel"; "required": false; "isSignal": true; }; "withinLabel": { "alias": "withinLabel"; "required": false; "isSignal": true; }; "valueLabel": { "alias": "valueLabel"; "required": false; "isSignal": true; }; "unitLabel": { "alias": "unitLabel"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "presetLabel": { "alias": "presetLabel"; "required": false; "isSignal": true; }; "advancedLabel": { "alias": "advancedLabel"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "rangeEndDateMissingLabel": { "alias": "rangeEndDateMissingLabel"; "required": false; "isSignal": true; }; "datepickerConfig": { "alias": "datepickerConfig"; "required": false; "isSignal": true; }; }, { "range": "rangeChange"; "applyClicked": "applyClicked"; }, never, never, true, never>;
314
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiDateRangeFilterComponent, "si-date-range-filter", never, { "range": { "alias": "range"; "required": true; "isSignal": true; }; "presetList": { "alias": "presetList"; "required": false; "isSignal": true; }; "presetSearch": { "alias": "presetSearch"; "required": false; "isSignal": true; }; "enableTimeSelection": { "alias": "enableTimeSelection"; "required": false; "isSignal": true; }; "basicMode": { "alias": "basicMode"; "required": false; "isSignal": true; }; "reverseInputFields": { "alias": "reverseInputFields"; "required": false; "isSignal": true; }; "showApplyButton": { "alias": "showApplyButton"; "required": false; "isSignal": true; }; "hideAdvancedMode": { "alias": "hideAdvancedMode"; "required": false; "isSignal": true; }; "refLabel": { "alias": "refLabel"; "required": false; "isSignal": true; }; "fromLabel": { "alias": "fromLabel"; "required": false; "isSignal": true; }; "toLabel": { "alias": "toLabel"; "required": false; "isSignal": true; }; "rangeLabel": { "alias": "rangeLabel"; "required": false; "isSignal": true; }; "todayLabel": { "alias": "todayLabel"; "required": false; "isSignal": true; }; "nowLabel": { "alias": "nowLabel"; "required": false; "isSignal": true; }; "dateLabel": { "alias": "dateLabel"; "required": false; "isSignal": true; }; "previewLabel": { "alias": "previewLabel"; "required": false; "isSignal": true; }; "datePlaceholder": { "alias": "datePlaceholder"; "required": false; "isSignal": true; }; "beforeLabel": { "alias": "beforeLabel"; "required": false; "isSignal": true; }; "afterLabel": { "alias": "afterLabel"; "required": false; "isSignal": true; }; "withinLabel": { "alias": "withinLabel"; "required": false; "isSignal": true; }; "valueLabel": { "alias": "valueLabel"; "required": false; "isSignal": true; }; "unitLabel": { "alias": "unitLabel"; "required": false; "isSignal": true; }; "searchLabel": { "alias": "searchLabel"; "required": false; "isSignal": true; }; "presetLabel": { "alias": "presetLabel"; "required": false; "isSignal": true; }; "advancedLabel": { "alias": "advancedLabel"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "rangeEndDateMissingLabel": { "alias": "rangeEndDateMissingLabel"; "required": false; "isSignal": true; }; "selectRangeLabel": { "alias": "selectRangeLabel"; "required": false; "isSignal": true; }; "datepickerConfig": { "alias": "datepickerConfig"; "required": false; "isSignal": true; }; }, { "range": "rangeChange"; "applyClicked": "applyClicked"; }, never, never, true, never>;
306
315
  }
307
316
 
308
317
  declare class SiDateRangeFilterModule {
@@ -1,7 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
2
+ import { TemplateRef, OnInit, OnChanges, ViewContainerRef, SimpleChanges } from '@angular/core';
3
3
  import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
4
4
  import * as _siemens_element_ng_navbar_vertical_next from '@siemens/element-ng/navbar-vertical-next';
5
+ import { DomPortal } from '@angular/cdk/portal';
5
6
 
6
7
  /**
7
8
  * Content slot for navbar items inside `si-navbar-vertical-next`.
@@ -13,6 +14,140 @@ declare class SiNavbarVerticalNextItemsComponent {
13
14
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextItemsComponent, "si-navbar-vertical-next-items", never, {}, {}, never, ["*"], true, never>;
14
15
  }
15
16
 
17
+ /** @experimental */
18
+ declare class SiNavbarVerticalNextGroupTriggerDirective {
19
+ private static idCounter;
20
+ /** @internal */
21
+ readonly groupId: string;
22
+ readonly id: string;
23
+ readonly groupTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
24
+ readonly stateId: _angular_core.InputSignal<string | undefined>;
25
+ /** @defaultValue false */
26
+ readonly expanded: _angular_core.WritableSignal<boolean>;
27
+ /**
28
+ * Whether the group is currently rendered as a transient flyout overlay
29
+ * (true) or inline within the navbar (false). Automatically resets to
30
+ * `false` whenever the rendering mode changes.
31
+ * @internal
32
+ */
33
+ readonly flyout: _angular_core.WritableSignal<boolean>;
34
+ /** `true` when this group contains the active route. Set by the group component.
35
+ * @internal
36
+ */
37
+ readonly active: _angular_core.WritableSignal<boolean>;
38
+ protected readonly navbar: _siemens_element_ng_navbar_vertical_next.SiNavbarVerticalNextComponent;
39
+ /** Signal mirror of the navbar's flyout mode. `true` when groups should render as transient overlays instead of inline.
40
+ * @internal
41
+ */
42
+ readonly flyoutMode: _angular_core.Signal<boolean>;
43
+ private flyoutOutsideClickSubscription?;
44
+ private readonly viewContainer;
45
+ private readonly overlay;
46
+ private readonly destroyRef;
47
+ private readonly injector;
48
+ private readonly overlayRef;
49
+ private groupView?;
50
+ private flyoutAnchorComponentRef?;
51
+ private readonly templatePortal;
52
+ constructor();
53
+ /** @internal */
54
+ private buildPositionStrategy;
55
+ /** @internal */
56
+ hideFlyout(): void;
57
+ protected triggered(): void;
58
+ private toggleFlyout;
59
+ private attachInline;
60
+ private attachFlyout;
61
+ private detachFlyout;
62
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalNextGroupTriggerDirective, never>;
63
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiNavbarVerticalNextGroupTriggerDirective, "button[siNavbarVerticalNextGroupTriggerFor]", never, { "groupTemplate": { "alias": "siNavbarVerticalNextGroupTriggerFor"; "required": true; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
64
+ }
65
+
66
+ /** @experimental */
67
+ declare class SiNavbarVerticalNextItemComponent implements OnInit {
68
+ protected readonly icons: Record<"elementDown2" | "elementRight2", string>;
69
+ /** Optional icon to render before the label. */
70
+ readonly icon: _angular_core.InputSignal<string | undefined>;
71
+ /** Badge value to display. */
72
+ readonly badge: _angular_core.InputSignal<string | number | undefined>;
73
+ /** Color of the badge. */
74
+ readonly badgeColor: _angular_core.InputSignal<string | undefined>;
75
+ /**
76
+ * Hide the badge when the navbar is collapsed.
77
+ *
78
+ * @defaultValue false
79
+ */
80
+ readonly hideBadgeWhenCollapsed: _angular_core.InputSignalWithTransform<boolean, unknown>;
81
+ /** Override the active state. Useful for action items. */
82
+ readonly activeOverride: _angular_core.InputSignal<boolean | undefined>;
83
+ protected readonly navbar: _siemens_element_ng_navbar_vertical_next.SiNavbarVerticalNextComponent;
84
+ protected readonly parent: SiNavbarVerticalNextItemComponent | null;
85
+ readonly group: SiNavbarVerticalNextGroupTriggerDirective | null;
86
+ private readonly routerLinkActive;
87
+ /** Signal mirror of `RouterLinkActive.isActive`.
88
+ * @internal
89
+ */
90
+ private readonly routerActive;
91
+ /** @internal */
92
+ private readonly elementRef;
93
+ /** DOM portal relocated into the chip slot when collapsed.
94
+ * @internal
95
+ */
96
+ readonly hostPortal: DomPortal<HTMLElement>;
97
+ /** Signal mirror of the navbar's chip mode. `true` when inline-collapse is active and the navbar is collapsed.
98
+ * @internal
99
+ */
100
+ readonly chipMode: _angular_core.Signal<boolean>;
101
+ /**
102
+ * Determines if the badge contains text-only content (not numeric)
103
+ */
104
+ protected readonly textOnlyBadge: _angular_core.Signal<boolean>;
105
+ /** `true` when the `active` CSS class should be applied to this item.
106
+ *
107
+ * In chip mode, root-level items use `is-chip` styling instead of `active`, so the
108
+ * class is suppressed unless the item is a sub-item (`parent` is set) or it is a
109
+ * group trigger whose flyout is currently open.
110
+ * Outside chip mode the value equals `active()`.
111
+ * @internal
112
+ */
113
+ protected readonly showActive: _angular_core.Signal<boolean | undefined>;
114
+ /**
115
+ * Formats badge value to limit display to "+99" for numbers greater than 99
116
+ */
117
+ protected readonly formattedBadge: _angular_core.Signal<string>;
118
+ /** Active via override or router link — excludes group state.
119
+ * @internal
120
+ */
121
+ private readonly anyRouteActive;
122
+ /** Own route is active, or a descendant route is active — includes group state, not gated on expansion.
123
+ * @internal
124
+ */
125
+ private readonly isOnActiveRoute;
126
+ /**
127
+ * `true` when this item should reflect activity.
128
+ *
129
+ * For non-trigger items: equivalent to being on the active route.
130
+ *
131
+ * For group trigger items: also `true` when a descendant route is active and
132
+ * the descendant is not currently visible inline — i.e. the group is collapsed
133
+ * or the navbar is collapsed. This surfaces the active state on the trigger
134
+ * when the active child cannot show it itself.
135
+ */
136
+ readonly active: _angular_core.Signal<boolean>;
137
+ /** `true` when this is a root-level item on the active route (ungated, so the chip survives collapse↔expand).
138
+ * @internal
139
+ */
140
+ readonly isActiveRootItem: _angular_core.Signal<boolean>;
141
+ /** `true` when this item is currently rendered as a chip in the inline-collapse bar.
142
+ * @internal
143
+ */
144
+ readonly isChip: _angular_core.Signal<boolean>;
145
+ ngOnInit(): void;
146
+ protected triggered(): void;
147
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalNextItemComponent, never>;
148
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextItemComponent, "a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeColor": { "alias": "badgeColor"; "required": false; "isSignal": true; }; "hideBadgeWhenCollapsed": { "alias": "hideBadgeWhenCollapsed"; "required": false; "isSignal": true; }; "activeOverride": { "alias": "activeOverride"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
149
+ }
150
+
16
151
  /** @experimental */
17
152
  declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit {
18
153
  protected readonly icons: Record<"elementDoubleLeft" | "elementDoubleRight" | "elementLayoutPane2" | "elementLayoutPane2Right", string>;
@@ -92,6 +227,22 @@ declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit {
92
227
  private injector;
93
228
  protected readonly ready: _angular_core.WritableSignal<boolean>;
94
229
  protected readonly smallScreen: _angular_core.WritableSignal<boolean>;
230
+ /** Stable ViewContainerRef inside <nav>, used to host flyout anchors when the chip DomPortal moves a trigger outside the nav.
231
+ * @internal
232
+ */
233
+ readonly flyoutAnchorHost: _angular_core.Signal<ViewContainerRef | undefined>;
234
+ /** All projected nav items, including descendants inside group templates.
235
+ * @internal
236
+ */
237
+ private readonly items;
238
+ /** The active root-level item; group triggers resolve for nested routes.
239
+ * @internal
240
+ */
241
+ readonly activeItem: _angular_core.Signal<SiNavbarVerticalNextItemComponent | undefined>;
242
+ /** `true` when the active item's portal should occupy the chip slot.
243
+ * @internal
244
+ */
245
+ readonly chipPortalAttached: _angular_core.Signal<boolean>;
95
246
  /**
96
247
  * @defaultValue
97
248
  * ```
@@ -101,6 +252,14 @@ declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit {
101
252
  readonly uiStateExpandedItems: _angular_core.WritableSignal<Record<string, boolean>>;
102
253
  private preferCollapse;
103
254
  protected readonly toggleIcon: _angular_core.Signal<string>;
255
+ /** `true` when inline-collapse is active and the nav is collapsed.
256
+ * @internal
257
+ */
258
+ readonly chipMode: _angular_core.Signal<boolean>;
259
+ /** `true` when groups should render as flyout overlays.
260
+ * @internal
261
+ */
262
+ readonly flyoutMode: _angular_core.Signal<boolean>;
104
263
  constructor();
105
264
  ngOnChanges(changes: SimpleChanges<this>): void;
106
265
  ngOnInit(): void;
@@ -115,7 +274,7 @@ declare class SiNavbarVerticalNextComponent implements OnChanges, OnInit {
115
274
  /** @internal */
116
275
  itemTriggered(): void;
117
276
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalNextComponent, never>;
118
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextComponent, "si-navbar-vertical-next", never, { "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "textOnly": { "alias": "textOnly"; "required": false; "isSignal": true; }; "inlineCollapse": { "alias": "inlineCollapse"; "required": false; "isSignal": true; }; "alwaysFlyout": { "alias": "alwaysFlyout"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "toggleButtonText": { "alias": "toggleButtonText"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; "skipLinkNavigationLabel": { "alias": "skipLinkNavigationLabel"; "required": false; "isSignal": true; }; "skipLinkMainContentLabel": { "alias": "skipLinkMainContentLabel"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["si-navbar-vertical-next-search", "si-navbar-vertical-next-items", "si-navbar-vertical-next-footer-items", "*"], true, never>;
277
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextComponent, "si-navbar-vertical-next", never, { "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "textOnly": { "alias": "textOnly"; "required": false; "isSignal": true; }; "inlineCollapse": { "alias": "inlineCollapse"; "required": false; "isSignal": true; }; "alwaysFlyout": { "alias": "alwaysFlyout"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "toggleButtonText": { "alias": "toggleButtonText"; "required": false; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; "skipLinkNavigationLabel": { "alias": "skipLinkNavigationLabel"; "required": false; "isSignal": true; }; "skipLinkMainContentLabel": { "alias": "skipLinkMainContentLabel"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, ["items"], ["si-navbar-vertical-next-search", "si-navbar-vertical-next-items", "si-navbar-vertical-next-footer-items", "*"], true, never>;
119
278
  }
120
279
 
121
280
  /**
@@ -138,52 +297,6 @@ declare class SiNavbarVerticalNextFooterItemsComponent {
138
297
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextFooterItemsComponent, "si-navbar-vertical-next-footer-items", never, {}, {}, never, ["*"], true, never>;
139
298
  }
140
299
 
141
- /** @experimental */
142
- declare class SiNavbarVerticalNextGroupTriggerDirective {
143
- private static idCounter;
144
- /** @internal */
145
- readonly groupId: string;
146
- readonly id: string;
147
- readonly groupTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
148
- readonly stateId: _angular_core.InputSignal<string | undefined>;
149
- /** @defaultValue false */
150
- readonly expanded: _angular_core.WritableSignal<boolean>;
151
- /**
152
- * Whether the group is currently rendered as a transient flyout overlay
153
- * (true) or inline within the navbar (false). Automatically resets to
154
- * `false` whenever the rendering mode changes.
155
- * @internal
156
- */
157
- readonly flyout: _angular_core.WritableSignal<boolean>;
158
- /**
159
- * Whether the open flyout overlay currently contains the active route.
160
- * Reset together with `flyout` so it never lingers across mode changes.
161
- * @internal
162
- */
163
- readonly active: _angular_core.WritableSignal<boolean>;
164
- protected readonly navbar: _siemens_element_ng_navbar_vertical_next.SiNavbarVerticalNextComponent;
165
- /** @internal */
166
- readonly flyoutMode: _angular_core.Signal<boolean>;
167
- private flyoutOutsideClickSubscription?;
168
- private readonly viewContainer;
169
- private readonly overlay;
170
- private readonly injector;
171
- private readonly overlayRef;
172
- private groupView?;
173
- private flyoutAnchorComponentRef?;
174
- private readonly templatePortal;
175
- constructor();
176
- /** @internal */
177
- hideFlyout(): void;
178
- protected triggered(): void;
179
- private toggleFlyout;
180
- private attachInline;
181
- private attachFlyout;
182
- private detachFlyout;
183
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalNextGroupTriggerDirective, never>;
184
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiNavbarVerticalNextGroupTriggerDirective, "button[siNavbarVerticalNextGroupTriggerFor]", never, { "groupTemplate": { "alias": "siNavbarVerticalNextGroupTriggerFor"; "required": true; "isSignal": true; }; "stateId": { "alias": "stateId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
185
- }
186
-
187
300
  /** @experimental */
188
301
  declare class SiNavbarVerticalNextGroupComponent {
189
302
  protected readonly navbar: _siemens_element_ng_navbar_vertical_next.SiNavbarVerticalNextComponent;
@@ -203,43 +316,6 @@ declare class SiNavbarVerticalNextHeaderComponent {
203
316
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextHeaderComponent, "si-navbar-vertical-next-header", never, {}, {}, never, ["*"], true, never>;
204
317
  }
205
318
 
206
- /** @experimental */
207
- declare class SiNavbarVerticalNextItemComponent implements OnInit {
208
- protected readonly icons: Record<"elementDown2" | "elementRight2", string>;
209
- /** Optional icon to render before the label. */
210
- readonly icon: _angular_core.InputSignal<string | undefined>;
211
- /** Badge value to display. */
212
- readonly badge: _angular_core.InputSignal<string | number | undefined>;
213
- /** Color of the badge. */
214
- readonly badgeColor: _angular_core.InputSignal<string | undefined>;
215
- /**
216
- * Hide the badge when the navbar is collapsed.
217
- *
218
- * @defaultValue false
219
- */
220
- readonly hideBadgeWhenCollapsed: _angular_core.InputSignalWithTransform<boolean, unknown>;
221
- /** Override the active state. Useful for action items. */
222
- readonly activeOverride: _angular_core.InputSignal<boolean | undefined>;
223
- protected readonly navbar: _siemens_element_ng_navbar_vertical_next.SiNavbarVerticalNextComponent;
224
- protected readonly parent: SiNavbarVerticalNextItemComponent | null;
225
- readonly group: SiNavbarVerticalNextGroupTriggerDirective | null;
226
- private readonly routerLinkActive;
227
- private readonly siLink;
228
- /**
229
- * Determines if the badge contains text-only content (not numeric)
230
- */
231
- protected readonly textOnlyBadge: _angular_core.Signal<boolean>;
232
- /**
233
- * Formats badge value to limit display to "+99" for numbers greater than 99
234
- */
235
- protected readonly formattedBadge: _angular_core.Signal<string>;
236
- ngOnInit(): void;
237
- protected triggered(): void;
238
- get active(): boolean;
239
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiNavbarVerticalNextItemComponent, never>;
240
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiNavbarVerticalNextItemComponent, "a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeColor": { "alias": "badgeColor"; "required": false; "isSignal": true; }; "hideBadgeWhenCollapsed": { "alias": "hideBadgeWhenCollapsed"; "required": false; "isSignal": true; }; "activeOverride": { "alias": "activeOverride"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
241
- }
242
-
243
319
  /** @experimental */
244
320
  declare class SiNavbarVerticalNextSearchComponent {
245
321
  protected readonly icons: Record<"elementSearch", string>;
@@ -2,6 +2,7 @@ import { Provider } from '@angular/core';
2
2
  export * from '@siemens/element-translate-ng/translate';
3
3
 
4
4
  interface SiTranslatableKeys {
5
+ 'SI_ABOUT.LOGO_ALT'?: string;
5
6
  'SI_AI_MESSAGE.SECONDARY_ACTIONS'?: string;
6
7
  'SI_ALERT_DIALOG.OK'?: string;
7
8
  'SI_APPLICATION_HEADER.LAUNCHPAD'?: string;
@@ -73,6 +74,7 @@ interface SiTranslatableKeys {
73
74
  'SI_DATE_RANGE_FILTER.REF_POINT'?: string;
74
75
  'SI_DATE_RANGE_FILTER.SEARCH'?: string;
75
76
  'SI_DATE_RANGE_FILTER.SELECT_RANGE_END'?: string;
77
+ 'SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL'?: string;
76
78
  'SI_DATE_RANGE_FILTER.TO'?: string;
77
79
  'SI_DATE_RANGE_FILTER.TODAY'?: string;
78
80
  'SI_DATE_RANGE_FILTER.UNIT'?: string;