@siemens/element-ng 49.11.0 → 49.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/carousel/package.json +4 -0
- package/fesm2022/siemens-element-ng-ag-grid.mjs +6 -5
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +17 -20
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +3 -3
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +3 -3
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +2 -2
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +541 -0
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-chat-messages.mjs +18 -21
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +34 -35
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +10 -8
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +10 -9
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +3 -3
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +49 -47
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +5 -5
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +6 -5
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +3 -3
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +5 -4
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +24 -23
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +26 -17
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +3 -3
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +3 -3
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +3 -3
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +4 -3
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +2 -2
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +8 -7
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +13 -12
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +6 -8
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +3 -3
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +4 -1
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +3 -3
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +4 -4
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +3 -3
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +3 -3
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +3 -3
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +5 -5
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +3 -3
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +3 -3
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +3 -3
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +5 -5
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +3 -3
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +3 -3
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +5 -5
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/package.json +12 -8
- package/template-i18n.json +7 -0
- package/types/siemens-element-ng-application-header.d.ts +3 -4
- package/types/siemens-element-ng-carousel.d.ts +209 -0
- package/types/siemens-element-ng-chat-messages.d.ts +1 -2
- package/types/siemens-element-ng-dashboard.d.ts +4 -4
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +6 -8
- package/types/siemens-element-ng-header-dropdown.d.ts +3 -3
- package/types/siemens-element-ng-navbar.d.ts +1 -2
- package/types/siemens-element-ng-translate.d.ts +7 -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.
|
|
4
|
+
"version": "49.12.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"migrations": "./schematics/migration.json"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@angular/cdk": "21",
|
|
39
|
-
"@angular/common": "21",
|
|
40
|
-
"@angular/core": "21",
|
|
41
|
-
"@angular/forms": "21",
|
|
42
|
-
"@angular/router": "21",
|
|
38
|
+
"@angular/cdk": "21 - 22",
|
|
39
|
+
"@angular/common": "21 - 22",
|
|
40
|
+
"@angular/core": "21 - 22",
|
|
41
|
+
"@angular/forms": "21 - 22",
|
|
42
|
+
"@angular/router": "21 - 22",
|
|
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.
|
|
47
|
-
"@siemens/element-theme": "49.
|
|
46
|
+
"@siemens/element-translate-ng": "49.12.0",
|
|
47
|
+
"@siemens/element-theme": "49.12.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",
|
|
@@ -132,6 +132,10 @@
|
|
|
132
132
|
"types": "./types/siemens-element-ng-card.d.ts",
|
|
133
133
|
"default": "./fesm2022/siemens-element-ng-card.mjs"
|
|
134
134
|
},
|
|
135
|
+
"./carousel": {
|
|
136
|
+
"types": "./types/siemens-element-ng-carousel.d.ts",
|
|
137
|
+
"default": "./fesm2022/siemens-element-ng-carousel.mjs"
|
|
138
|
+
},
|
|
135
139
|
"./chat-messages": {
|
|
136
140
|
"types": "./types/siemens-element-ng-chat-messages.d.ts",
|
|
137
141
|
"default": "./fesm2022/siemens-element-ng-chat-messages.mjs"
|
package/template-i18n.json
CHANGED
|
@@ -8,6 +8,13 @@
|
|
|
8
8
|
"SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT": "Remove attachment",
|
|
9
9
|
"SI_BREADCRUMB": "Breadcrumbs",
|
|
10
10
|
"SI_BREADCRUMB_ROUTER_LABEL": "breadcrumb",
|
|
11
|
+
"SI_CAROUSEL.NEXT": "Next slide",
|
|
12
|
+
"SI_CAROUSEL.PAUSE": "Pause",
|
|
13
|
+
"SI_CAROUSEL.PLAY": "Play",
|
|
14
|
+
"SI_CAROUSEL.PREVIOUS": "Previous slide",
|
|
15
|
+
"SI_CAROUSEL.ROLE_DESCRIPTION": "carousel",
|
|
16
|
+
"SI_CAROUSEL.SLIDE_PAGE": "Slide {{page}} of {{total}}",
|
|
17
|
+
"SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION": "Slide",
|
|
11
18
|
"SI_CHANGE_PASSWORD.BACK": "Back",
|
|
12
19
|
"SI_CHANGE_PASSWORD.CHANGE": "Change",
|
|
13
20
|
"SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD": "Factory set password must be changed",
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import * as rxjs from 'rxjs';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
1
|
import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
|
|
4
2
|
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
5
3
|
import * as _angular_core from '@angular/core';
|
|
6
4
|
import { OnDestroy, TemplateRef, Injector, OnInit, OnChanges, SimpleChanges } from '@angular/core';
|
|
7
5
|
import { HeaderWithDropdowns, SiHeaderDropdownTriggerDirective } from '@siemens/element-ng/header-dropdown';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
8
7
|
import * as _siemens_element_ng_application_header from '@siemens/element-ng/application-header';
|
|
9
8
|
import { NavigationExtras, IsActiveMatchOptions, ActivatedRoute } from '@angular/router';
|
|
10
9
|
|
|
@@ -43,7 +42,8 @@ declare class SiApplicationHeaderComponent implements HeaderWithDropdowns, OnDes
|
|
|
43
42
|
private openDropdown?;
|
|
44
43
|
private closeMobileSub;
|
|
45
44
|
/** @internal */
|
|
46
|
-
readonly inlineDropdown:
|
|
45
|
+
readonly inlineDropdown: _angular_core.Signal<boolean>;
|
|
46
|
+
constructor();
|
|
47
47
|
ngOnDestroy(): void;
|
|
48
48
|
/** @internal */
|
|
49
49
|
onDropdownItemTriggered(): void;
|
|
@@ -109,7 +109,6 @@ declare class SiHeaderCollapsibleActionsComponent implements OnDestroy {
|
|
|
109
109
|
private readonly focusTrap;
|
|
110
110
|
private header;
|
|
111
111
|
private closeMobileSub;
|
|
112
|
-
private inlineChangeSubscription?;
|
|
113
112
|
ngOnDestroy(): void;
|
|
114
113
|
protected toggleMobileExpanded(): void;
|
|
115
114
|
protected escapePressed(): void;
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
|
|
2
|
+
import * as _angular_core from '@angular/core';
|
|
3
|
+
import { ElementRef } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
declare class SiCarouselItemDirective {
|
|
6
|
+
protected readonly carousel: SiCarouselComponent;
|
|
7
|
+
protected readonly isVisible: _angular_core.Signal<boolean>;
|
|
8
|
+
/** @internal */
|
|
9
|
+
readonly elementRef: ElementRef<HTMLElement>;
|
|
10
|
+
/** @internal */
|
|
11
|
+
readonly order: _angular_core.WritableSignal<number>;
|
|
12
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCarouselItemDirective, never>;
|
|
13
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiCarouselItemDirective, "[siCarouselItem]", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A carousel component for displaying slides with navigation controls and auto-play.
|
|
18
|
+
*
|
|
19
|
+
* Features horizontal scrolling with snap behavior, pagination dots, and ARIA accessibility.
|
|
20
|
+
* Suitable for dashboards, image galleries, and content showcases.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
*
|
|
24
|
+
* ```typescript
|
|
25
|
+
* import { SiCarouselComponent, SiCarouselItemDirective } from '@siemens/element-ng/carousel';
|
|
26
|
+
*
|
|
27
|
+
* @Component({
|
|
28
|
+
* imports: [SiCarouselComponent, SiCarouselItemDirective],
|
|
29
|
+
* template: `
|
|
30
|
+
* <si-carousel>
|
|
31
|
+
* <div siCarouselItem><h2>Slide 1</h2></div>
|
|
32
|
+
* <div siCarouselItem><h2>Slide 2</h2></div>
|
|
33
|
+
* <div siCarouselItem><h2>Slide 3</h2></div>
|
|
34
|
+
* </si-carousel>
|
|
35
|
+
* `
|
|
36
|
+
* })
|
|
37
|
+
* export class MyComponent {}
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
declare class SiCarouselComponent {
|
|
41
|
+
/**
|
|
42
|
+
* Controls whether pagination controls are shown.
|
|
43
|
+
* When `true`, the carousel shows one slide per page and hides pagination controls.
|
|
44
|
+
* @defaultValue false
|
|
45
|
+
* */
|
|
46
|
+
readonly hidePageControls: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Enables or configures auto-play for the carousel. When set to `true`, the carousel automatically
|
|
49
|
+
* navigates to the next slide every 5000 milliseconds (5 seconds). Pass a positive number to set a
|
|
50
|
+
* custom interval in milliseconds. Pass `false` to disable auto-play.
|
|
51
|
+
* @defaultValue false
|
|
52
|
+
* */
|
|
53
|
+
readonly autoPlay: _angular_core.InputSignal<number | boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Aria role of the carousel element. Can be set to 'region' or 'group' depending on the desired accessibility semantics.
|
|
56
|
+
* @defaultValue 'region'
|
|
57
|
+
* */
|
|
58
|
+
readonly ariaRole: _angular_core.InputSignal<"group" | "region">;
|
|
59
|
+
/**
|
|
60
|
+
* Aria label for the previous button, used for accessibility purposes.
|
|
61
|
+
* @defaultValue
|
|
62
|
+
* ```
|
|
63
|
+
* t(() => $localize`:@@SI_CAROUSEL.PREVIOUS:Previous slide`)
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
readonly previousButtonAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
67
|
+
/**
|
|
68
|
+
* Aria label for the next button, used for accessibility purposes.
|
|
69
|
+
* @defaultValue
|
|
70
|
+
* ```
|
|
71
|
+
* t(() => $localize`:@@SI_CAROUSEL.NEXT:Next slide`)
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
readonly nextButtonAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
75
|
+
/**
|
|
76
|
+
* @defaultValue
|
|
77
|
+
* ```
|
|
78
|
+
* t(() => $localize`:@@SI_CAROUSEL.SLIDE_PAGE:Slide {{page}} of {{total}}`)
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
readonly slidePageAriaLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
82
|
+
/**
|
|
83
|
+
* Label for the play button when autoplay is paused.
|
|
84
|
+
* @defaultValue
|
|
85
|
+
* ```
|
|
86
|
+
* t(() => $localize`:@@SI_CAROUSEL.PLAY:Play`)
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
readonly playButtonLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
90
|
+
/**
|
|
91
|
+
* Label for the pause button when autoplay is active.
|
|
92
|
+
* @defaultValue
|
|
93
|
+
* ```
|
|
94
|
+
* t(() => $localize`:@@SI_CAROUSEL.PAUSE:Pause`)
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
readonly pauseButtonLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
98
|
+
/**
|
|
99
|
+
* Role description for the carousel container, used for accessibility purposes.
|
|
100
|
+
* @defaultValue
|
|
101
|
+
* ```
|
|
102
|
+
* t(() => $localize`:@@SI_CAROUSEL.ROLE_DESCRIPTION:carousel`)
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
readonly carouselRoleDescription: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
106
|
+
/**
|
|
107
|
+
* Role description for each slide, used for accessibility purposes.
|
|
108
|
+
* @defaultValue
|
|
109
|
+
* ```
|
|
110
|
+
* t(() => $localize`:@@SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION:Slide`)
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
readonly slideRoleDescription: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
|
|
114
|
+
/** @internal */
|
|
115
|
+
readonly translatedSlideRoleDescription: _angular_core.Signal<string>;
|
|
116
|
+
/** @internal */
|
|
117
|
+
readonly currentActiveSlide: _angular_core.Signal<ElementRef<HTMLElement> | null>;
|
|
118
|
+
protected readonly translatedCarouselRoleDescription: _angular_core.Signal<string>;
|
|
119
|
+
protected readonly items: _angular_core.Signal<readonly SiCarouselItemDirective[]>;
|
|
120
|
+
protected readonly currentPage: _angular_core.WritableSignal<number | null>;
|
|
121
|
+
protected readonly isPaused: _angular_core.WritableSignal<boolean>;
|
|
122
|
+
protected readonly totalPages: _angular_core.Signal<number>;
|
|
123
|
+
protected readonly edgeLeftIndex: _angular_core.WritableSignal<number>;
|
|
124
|
+
protected readonly edgeRightIndex: _angular_core.WritableSignal<number>;
|
|
125
|
+
protected readonly insufficientSpace: _angular_core.WritableSignal<boolean>;
|
|
126
|
+
protected readonly pageControlContainerMinWidth: _angular_core.WritableSignal<number>;
|
|
127
|
+
protected readonly icons: Record<"elementLeft2" | "elementRight2" | "elementPlay" | "elementPause", string>;
|
|
128
|
+
private readonly autoPlayDuration;
|
|
129
|
+
private intervalId;
|
|
130
|
+
private scrollObserver;
|
|
131
|
+
/** requestAnimationFrame id of the running scroll animation, or null when idle. */
|
|
132
|
+
private animationFrameId;
|
|
133
|
+
/** Scroll position (`scrollLeft`) the running animation is easing towards. */
|
|
134
|
+
private animationTargetLeft;
|
|
135
|
+
/** Timestamp of the previous animation frame, used to make the easing frame-rate independent. */
|
|
136
|
+
private lastFrameTime;
|
|
137
|
+
/** Whether any slide's CSS order has been changed from its natural (source-index) position. */
|
|
138
|
+
private ordersModified;
|
|
139
|
+
private readonly destroyRef;
|
|
140
|
+
private readonly viewport;
|
|
141
|
+
private readonly pageControl;
|
|
142
|
+
private readonly playPauseBtn;
|
|
143
|
+
private readonly translateService;
|
|
144
|
+
private cdRef;
|
|
145
|
+
constructor();
|
|
146
|
+
protected goToPage(page: number, forceScroll?: boolean): void;
|
|
147
|
+
protected next(): void;
|
|
148
|
+
protected previous(): void;
|
|
149
|
+
/** Navigates directly to a specific slide, used by the pagination dots. */
|
|
150
|
+
protected goToSlide(index: number): void;
|
|
151
|
+
protected toggleAutoPlay(): void;
|
|
152
|
+
protected onResize(size: {
|
|
153
|
+
width: number;
|
|
154
|
+
height: number;
|
|
155
|
+
}): void;
|
|
156
|
+
/**
|
|
157
|
+
* Navigates a single slide forward (`1`) or backward (`-1`). Rapid clicks are intentionally not
|
|
158
|
+
* queued or throttled: each click advances {@link currentPage} immediately and retargets the
|
|
159
|
+
* running scroll animation (see {@link animateTo}) towards the new slide, so the carousel keeps
|
|
160
|
+
* gliding in the click direction without waiting for the previous scroll to finish.
|
|
161
|
+
*
|
|
162
|
+
* To keep the first/last wrap a continuous one-slide glide instead of a jump across the whole
|
|
163
|
+
* track, the target slide's CSS order is placed exactly one slot away from the current slide in
|
|
164
|
+
* the click direction (so it sits adjacent to it). The viewport scroll is compensated so this
|
|
165
|
+
* reorder is invisible. Orders may extend while the user keeps clicking; they are silently
|
|
166
|
+
* normalized once the animation settles (see {@link normalizeOrders}).
|
|
167
|
+
*/
|
|
168
|
+
private step;
|
|
169
|
+
/**
|
|
170
|
+
* Changes a slide's CSS order while keeping the picture stable. Reordering shifts slides along
|
|
171
|
+
* the flex track, so the scroll position is adjusted by the exact amount the anchor slide moved,
|
|
172
|
+
* making the relocation invisible and letting any in-flight animation continue seamlessly.
|
|
173
|
+
*/
|
|
174
|
+
private reorderSlide;
|
|
175
|
+
/**
|
|
176
|
+
* Sets the CSS order of a slide. The value is written to the DOM synchronously in addition to
|
|
177
|
+
* the signal, so a subsequent reflow/scroll uses the new order immediately instead of waiting
|
|
178
|
+
* for the asynchronous, signal-driven change detection update.
|
|
179
|
+
*/
|
|
180
|
+
private setSlideOrder;
|
|
181
|
+
/**
|
|
182
|
+
* Silently restores the canonical slide order (each slide's CSS order equals its source index).
|
|
183
|
+
* Reordering shifts the track, so it anchors on the current slide and compensates the scroll
|
|
184
|
+
* position to avoid any visible jump. Called once the scroll animation settles.
|
|
185
|
+
*/
|
|
186
|
+
private normalizeOrders;
|
|
187
|
+
/** Animates the viewport so the given slide is horizontally centered. */
|
|
188
|
+
private animateToSlide;
|
|
189
|
+
/**
|
|
190
|
+
* Eases `scrollLeft` towards `targetLeft` using a frame-rate independent exponential smoothing
|
|
191
|
+
* loop. The target can be updated mid-flight (rapid clicks), so the same animation simply chases
|
|
192
|
+
* the latest slide. Native scroll-snap and smooth scroll-behavior are disabled while animating so
|
|
193
|
+
* they do not fight the manual scrolling, and the scroll observer is paused to avoid feedback.
|
|
194
|
+
*/
|
|
195
|
+
private animateTo;
|
|
196
|
+
private animationFrame;
|
|
197
|
+
/** Finalizes the animation: normalizes orders, restores native scrolling and the observer. */
|
|
198
|
+
private endAnimation;
|
|
199
|
+
/** Stops the running scroll animation and restores native scrolling, without normalizing. */
|
|
200
|
+
private cancelAnimation;
|
|
201
|
+
private scheduleAutoPlay;
|
|
202
|
+
private stopAutoPlay;
|
|
203
|
+
private setupScrollObserver;
|
|
204
|
+
private updateEdgeIndices;
|
|
205
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiCarouselComponent, never>;
|
|
206
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiCarouselComponent, "si-carousel", never, { "hidePageControls": { "alias": "hidePageControls"; "required": false; "isSignal": true; }; "autoPlay": { "alias": "autoPlay"; "required": false; "isSignal": true; }; "ariaRole": { "alias": "ariaRole"; "required": false; "isSignal": true; }; "previousButtonAriaLabel": { "alias": "previousButtonAriaLabel"; "required": false; "isSignal": true; }; "nextButtonAriaLabel": { "alias": "nextButtonAriaLabel"; "required": false; "isSignal": true; }; "slidePageAriaLabel": { "alias": "slidePageAriaLabel"; "required": false; "isSignal": true; }; "playButtonLabel": { "alias": "playButtonLabel"; "required": false; "isSignal": true; }; "pauseButtonLabel": { "alias": "pauseButtonLabel"; "required": false; "isSignal": true; }; "carouselRoleDescription": { "alias": "carouselRoleDescription"; "required": false; "isSignal": true; }; "slideRoleDescription": { "alias": "slideRoleDescription"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export { SiCarouselComponent, SiCarouselItemDirective };
|
|
@@ -494,8 +494,7 @@ declare class SiChatInputComponent implements AfterViewInit {
|
|
|
494
494
|
protected readonly buttonDisabled: _angular_core.Signal<boolean>;
|
|
495
495
|
protected readonly buttonIcon: _angular_core.Signal<string>;
|
|
496
496
|
protected readonly buttonLabel: _angular_core.Signal<TranslatableString$1>;
|
|
497
|
-
protected dragOver: boolean
|
|
498
|
-
protected get attachmentList(): Attachment[];
|
|
497
|
+
protected readonly dragOver: _angular_core.WritableSignal<boolean>;
|
|
499
498
|
protected onInputChange(value: string): void;
|
|
500
499
|
protected onSend(): void;
|
|
501
500
|
protected onButtonClick(): void;
|
|
@@ -55,7 +55,7 @@ declare class SiDashboardCardComponent extends SiCardComponent implements OnDest
|
|
|
55
55
|
*/
|
|
56
56
|
readonly isExpanded: _angular_core.WritableSignal<boolean>;
|
|
57
57
|
/** @internal */
|
|
58
|
-
hide: boolean
|
|
58
|
+
readonly hide: _angular_core.WritableSignal<boolean>;
|
|
59
59
|
/** @internal */
|
|
60
60
|
readonly enableExpandInteractionInternal: _angular_core.WritableSignal<boolean>;
|
|
61
61
|
readonly enableExpandInteractionComputed: _angular_core.Signal<boolean>;
|
|
@@ -112,12 +112,12 @@ declare class SiDashboardComponent implements OnChanges, AfterViewInit {
|
|
|
112
112
|
readonly hideMenubar: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
113
113
|
/**
|
|
114
114
|
* Is `true` if a card is expanded.
|
|
115
|
-
* @defaultref {@link
|
|
115
|
+
* @defaultref {@link isExpandedSignal}
|
|
116
116
|
*/
|
|
117
117
|
get isExpanded(): boolean;
|
|
118
|
-
protected dashboardFrameEndPadding: number | null
|
|
118
|
+
protected readonly dashboardFrameEndPadding: _angular_core.WritableSignal<number | null>;
|
|
119
119
|
protected readonly hideMenubarComputed: _angular_core.Signal<boolean>;
|
|
120
|
-
|
|
120
|
+
protected readonly isExpandedSignal: _angular_core.WritableSignal<boolean>;
|
|
121
121
|
private scrollPosition;
|
|
122
122
|
private readonly reinitCards$;
|
|
123
123
|
private cards;
|
|
@@ -309,7 +309,7 @@ declare class SiDateRangeFilterComponent implements OnChanges {
|
|
|
309
309
|
protected updateFromDateRange(dateRange?: DateRange): void;
|
|
310
310
|
protected point1Changed(): void;
|
|
311
311
|
protected point2Changed(): void;
|
|
312
|
-
protected selectPresetItem(
|
|
312
|
+
protected selectPresetItem(label: string): void;
|
|
313
313
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiDateRangeFilterComponent, never>;
|
|
314
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>;
|
|
315
315
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
|
|
2
2
|
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
|
-
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
5
4
|
import { HttpHeaders, HttpRequest, HttpEvent, HttpResponse } from '@angular/common/http';
|
|
6
5
|
import { Observable, Subscription } from 'rxjs';
|
|
7
6
|
|
|
@@ -219,7 +218,7 @@ declare class SiFileDropzoneComponent {
|
|
|
219
218
|
private readonly fileUploadDirective;
|
|
220
219
|
protected dropHandler(event: DragEvent): void;
|
|
221
220
|
protected dragOverHandler(event: DragEvent): void;
|
|
222
|
-
protected
|
|
221
|
+
protected triggerFileSelect(): void;
|
|
223
222
|
protected onFilesAdded(files: UploadFile[]): void;
|
|
224
223
|
protected onFileError(error: FileUploadError): void;
|
|
225
224
|
/**
|
|
@@ -271,7 +270,7 @@ interface ExtUploadFile extends UploadFile {
|
|
|
271
270
|
successResponse?: HttpResponse<unknown>;
|
|
272
271
|
fadeOut?: boolean;
|
|
273
272
|
}
|
|
274
|
-
declare class SiFileUploaderComponent
|
|
273
|
+
declare class SiFileUploaderComponent {
|
|
275
274
|
/**
|
|
276
275
|
* Text of the link to open the file select dialog (follows `uploadDropText`).
|
|
277
276
|
*
|
|
@@ -485,15 +484,14 @@ declare class SiFileUploaderComponent implements OnChanges {
|
|
|
485
484
|
*/
|
|
486
485
|
readonly filesChanges: _angular_core.OutputEmitterRef<UploadFile[]>;
|
|
487
486
|
protected readonly icons: Record<"elementCancel" | "elementDelete" | "elementDocument" | "elementRedo", string>;
|
|
488
|
-
protected files: ExtUploadFile[]
|
|
487
|
+
protected readonly files: _angular_core.WritableSignal<ExtUploadFile[]>;
|
|
489
488
|
protected pending: number;
|
|
490
489
|
private uploading;
|
|
491
|
-
protected uploadEnabled: boolean
|
|
492
|
-
protected maxFilesReached: boolean
|
|
490
|
+
protected readonly uploadEnabled: _angular_core.WritableSignal<boolean>;
|
|
491
|
+
protected readonly maxFilesReached: _angular_core.WritableSignal<boolean>;
|
|
493
492
|
private readonly dropZone;
|
|
494
|
-
private cdRef;
|
|
495
493
|
private http?;
|
|
496
|
-
|
|
494
|
+
constructor();
|
|
497
495
|
protected handleFiles(files: UploadFile[]): void;
|
|
498
496
|
protected removeFile(index: number): void;
|
|
499
497
|
protected cancelUpload(file: ExtUploadFile): void;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as _siemens_element_ng_header_dropdown from '@siemens/element-ng/header-dropdown';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { OnChanges, OnInit, OnDestroy, TemplateRef, InjectionToken } from '@angular/core';
|
|
3
|
+
import { OnChanges, OnInit, OnDestroy, TemplateRef, Signal, InjectionToken } from '@angular/core';
|
|
4
4
|
import { MenuItem } from '@siemens/element-ng/common';
|
|
5
5
|
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
6
|
-
import { Observable } from 'rxjs';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* Trigger to open dropdowns in a navbar.
|
|
@@ -41,6 +40,7 @@ declare class SiHeaderDropdownTriggerDirective implements OnChanges, OnInit, OnD
|
|
|
41
40
|
/** @internal */
|
|
42
41
|
readonly ariaControls: string;
|
|
43
42
|
private headerAnchorComponentRef?;
|
|
43
|
+
constructor();
|
|
44
44
|
/** Whether the dropdown is open. */
|
|
45
45
|
get isOpen(): boolean;
|
|
46
46
|
/** @internal */
|
|
@@ -125,7 +125,7 @@ interface HeaderWithDropdowns {
|
|
|
125
125
|
/** Called whenever an item is triggered that is not opening another dropdown. */
|
|
126
126
|
onDropdownItemTriggered?(): void;
|
|
127
127
|
/** Whether the dropdown should be opened inline. */
|
|
128
|
-
inlineDropdown
|
|
128
|
+
inlineDropdown: Signal<boolean>;
|
|
129
129
|
/** The position of the dropdown if opened in an overlay. */
|
|
130
130
|
overlayPosition?: ConnectedPosition[];
|
|
131
131
|
/** Called whenever a dropdown is opened **/
|
|
@@ -2,7 +2,6 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { OnChanges, SimpleChanges, OnInit, DoCheck, OnDestroy } from '@angular/core';
|
|
3
3
|
import { MenuItem, EntityStatusType } from '@siemens/element-ng/common';
|
|
4
4
|
import { HeaderWithDropdowns, SiHeaderDropdownTriggerDirective } from '@siemens/element-ng/header-dropdown';
|
|
5
|
-
import * as rxjs from 'rxjs';
|
|
6
5
|
import * as _siemens_element_translate_ng_translate from '@siemens/element-translate-ng/translate';
|
|
7
6
|
import { TranslatableString } from '@siemens/element-translate-ng/translate';
|
|
8
7
|
import { SiApplicationHeaderComponent, SiHeaderCollapsibleActionsComponent, App, AppCategory, FavoriteChangeEvent } from '@siemens/element-ng/application-header';
|
|
@@ -261,7 +260,7 @@ declare class SiNavbarPrimaryComponent implements OnChanges, HeaderWithDropdowns
|
|
|
261
260
|
protected newAppItems?: App[] | AppCategory[];
|
|
262
261
|
protected active?: MenuItem;
|
|
263
262
|
/** @internal */
|
|
264
|
-
readonly inlineDropdown:
|
|
263
|
+
readonly inlineDropdown: _angular_core.Signal<boolean>;
|
|
265
264
|
/** @internal */
|
|
266
265
|
onDropdownItemTriggered(): void;
|
|
267
266
|
/** @internal */
|
|
@@ -11,6 +11,13 @@ interface SiTranslatableKeys {
|
|
|
11
11
|
'SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT'?: string;
|
|
12
12
|
'SI_BREADCRUMB'?: string;
|
|
13
13
|
'SI_BREADCRUMB_ROUTER_LABEL'?: string;
|
|
14
|
+
'SI_CAROUSEL.NEXT'?: string;
|
|
15
|
+
'SI_CAROUSEL.PAUSE'?: string;
|
|
16
|
+
'SI_CAROUSEL.PLAY'?: string;
|
|
17
|
+
'SI_CAROUSEL.PREVIOUS'?: string;
|
|
18
|
+
'SI_CAROUSEL.ROLE_DESCRIPTION'?: string;
|
|
19
|
+
'SI_CAROUSEL.SLIDE_PAGE'?: string;
|
|
20
|
+
'SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION'?: string;
|
|
14
21
|
'SI_CHANGE_PASSWORD.BACK'?: string;
|
|
15
22
|
'SI_CHANGE_PASSWORD.CHANGE'?: string;
|
|
16
23
|
'SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD'?: string;
|