@sapudex/web-components 2.18.0 → 2.19.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 (119) hide show
  1. package/bundle.esm.js +3 -0
  2. package/cypress/specs/BusyIndicator.cy.tsx +10 -0
  3. package/cypress/specs/FilterMenu.cy.tsx +1 -1
  4. package/cypress/specs/Footer.cy.tsx +7 -1
  5. package/cypress/specs/ImageGridTicker.cy.tsx +208 -0
  6. package/cypress/specs/ImageGridTickerItem.cy.tsx +74 -0
  7. package/cypress/specs/Table.cy.tsx +1 -1
  8. package/cypress/support/component-imports.instrumented.ts +52 -46
  9. package/cypress/support/component-imports.src.ts +53 -47
  10. package/dist/AssetsVariables.js +6 -0
  11. package/dist/AssetsVariables.js.map +1 -1
  12. package/dist/BusyIndicator.d.ts +22 -0
  13. package/dist/BusyIndicator.js +39 -0
  14. package/dist/BusyIndicator.js.map +1 -0
  15. package/dist/FilterMenu.js +2 -2
  16. package/dist/FilterMenu.js.map +1 -1
  17. package/dist/Footer.d.ts +10 -0
  18. package/dist/Footer.js +7 -0
  19. package/dist/Footer.js.map +1 -1
  20. package/dist/FooterTemplate.js +3 -3
  21. package/dist/FooterTemplate.js.map +1 -1
  22. package/dist/ImageGridTicker.d.ts +129 -0
  23. package/dist/ImageGridTicker.js +305 -0
  24. package/dist/ImageGridTicker.js.map +1 -0
  25. package/dist/ImageGridTickerItem.d.ts +50 -0
  26. package/dist/ImageGridTickerItem.js +61 -0
  27. package/dist/ImageGridTickerItem.js.map +1 -0
  28. package/dist/ImageGridTickerItemTemplate.d.ts +2 -0
  29. package/dist/ImageGridTickerItemTemplate.js +9 -0
  30. package/dist/ImageGridTickerItemTemplate.js.map +1 -0
  31. package/dist/ImageGridTickerTemplate.d.ts +2 -0
  32. package/dist/ImageGridTickerTemplate.js +14 -0
  33. package/dist/ImageGridTickerTemplate.js.map +1 -0
  34. package/dist/SelectBox.js +2 -0
  35. package/dist/SelectBox.js.map +1 -1
  36. package/dist/Table.js +2 -2
  37. package/dist/Table.js.map +1 -1
  38. package/dist/assets/{InputSuggestions-L-9bNSZM.js → InputSuggestions-EAcC3wZN.js} +1 -1
  39. package/dist/assets/{ListItemStandardExpandableTextTemplate-C2VMJfHu.js → ListItemStandardExpandableTextTemplate-Bb5Y2JOR.js} +1 -1
  40. package/dist/assets/{bundle.esm-D4RSd7yl.js → bundle.esm-BXDoCHfu.js} +217 -209
  41. package/dist/assets/messagebundle_en-BhTYnZbC.js +1 -0
  42. package/dist/css/themes/Button.css +1 -1
  43. package/dist/css/themes/CountrySelector.css +1 -1
  44. package/dist/css/themes/DatePickerPopover.css +1 -1
  45. package/dist/css/themes/ImageGridTicker.css +1 -0
  46. package/dist/css/themes/ImageGridTickerItem.css +1 -0
  47. package/dist/css/themes/RatingIndicator.css +1 -1
  48. package/dist/css/themes/Slider.css +1 -1
  49. package/dist/custom-elements-internal.json +403 -141
  50. package/dist/custom-elements.json +358 -126
  51. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  52. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  53. package/dist/generated/i18n/i18n-defaults.js +3 -1
  54. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  55. package/dist/generated/templates/SearchTemplate.lit.js +1 -1
  56. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  57. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
  58. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  59. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  60. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  61. package/dist/generated/themes/Button.css.d.ts +1 -1
  62. package/dist/generated/themes/Button.css.js +1 -1
  63. package/dist/generated/themes/Button.css.js.map +1 -1
  64. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  65. package/dist/generated/themes/CountrySelector.css.js +1 -1
  66. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  67. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  68. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  69. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  70. package/dist/generated/themes/ImageGridTicker.css.d.ts +2 -0
  71. package/dist/generated/themes/ImageGridTicker.css.js +8 -0
  72. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -0
  73. package/dist/generated/themes/ImageGridTickerItem.css.d.ts +2 -0
  74. package/dist/generated/themes/ImageGridTickerItem.css.js +8 -0
  75. package/dist/generated/themes/ImageGridTickerItem.css.js.map +1 -0
  76. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  77. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  78. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  79. package/dist/generated/themes/Slider.css.d.ts +1 -1
  80. package/dist/generated/themes/Slider.css.js +1 -1
  81. package/dist/generated/themes/Slider.css.js.map +1 -1
  82. package/dist/messagebundle.properties +4 -0
  83. package/dist/messagebundle_en.properties +2 -0
  84. package/dist/vscode.html-custom-data.json +42 -1
  85. package/dist/web-types.json +108 -2
  86. package/package.json +1 -1
  87. package/src/AssetsVariables.ts +6 -0
  88. package/src/BusyIndicator.ts +33 -0
  89. package/src/FilterMenu.ts +2 -2
  90. package/src/Footer.ts +16 -0
  91. package/src/FooterTemplate.tsx +26 -11
  92. package/src/ImageGridTicker.ts +355 -0
  93. package/src/ImageGridTickerItem.ts +81 -0
  94. package/src/ImageGridTickerItemTemplate.tsx +28 -0
  95. package/src/ImageGridTickerTemplate.tsx +50 -0
  96. package/src/Search.hbs +0 -1
  97. package/src/SearchableListBase.hbs +2 -2
  98. package/src/SelectBox.ts +2 -0
  99. package/src/Table.hbs +2 -2
  100. package/src/Table.ts +2 -2
  101. package/src/generated/i18n/i18n-defaults.ts +2 -2
  102. package/src/generated/templates/SearchTemplate.lit.ts +1 -1
  103. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
  104. package/src/generated/templates/TableTemplate.lit.ts +1 -1
  105. package/src/generated/themes/Button.css.ts +1 -1
  106. package/src/generated/themes/CountrySelector.css.ts +1 -1
  107. package/src/generated/themes/DatePickerPopover.css.ts +1 -1
  108. package/src/generated/themes/ImageGridTicker.css.ts +9 -0
  109. package/src/generated/themes/ImageGridTickerItem.css.ts +9 -0
  110. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  111. package/src/generated/themes/Slider.css.ts +1 -1
  112. package/src/i18n/messagebundle.properties +4 -0
  113. package/src/i18n/messagebundle_en.properties +2 -0
  114. package/src/themes/Button.css +1 -0
  115. package/src/themes/CountrySelector.css +2 -2
  116. package/src/themes/DatePickerPopover.css +3 -2
  117. package/src/themes/ImageGridTicker.css +134 -0
  118. package/src/themes/ImageGridTickerItem.css +52 -0
  119. package/dist/assets/messagebundle_en-D6cJIiUq.js +0 -1
@@ -0,0 +1,355 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
+ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
4
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
7
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
8
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
+ import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
10
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
11
+ import { isDesktop } from "@ui5/webcomponents-base/Device.js";
12
+ import { isLeft, isRight } from "@ui5/webcomponents-base/dist/Keys.js";
13
+ import { PAUSE_BUTTON_ACCESSIBLE_NAME, PLAY_BUTTON_ACCESSIBLE_NAME } from "./generated/i18n/i18n-defaults.js";
14
+ import { BreakpointUtils } from "./utils/Breakpoints.js";
15
+ import type UDExImageGridTickerItem from "./ImageGridTickerItem.js";
16
+ import ImageGridTickerItem from "./ImageGridTickerItem.js";
17
+ import ImageGridTickerTemplate from "./ImageGridTickerTemplate.js";
18
+
19
+ // Styles
20
+ import ImageGridTickerCss from "./generated/themes/ImageGridTicker.css.js";
21
+
22
+ export enum UDExImageGridTickerVariable {
23
+ itemGaps = "--udex-image-grid-ticker-item-gaps",
24
+ itemWidth = "--udex-image-grid-ticker-item-width",
25
+ }
26
+
27
+ type UDExImageGridTickerPlayBtnClickEventDetail = {
28
+ isPaused: boolean;
29
+ }
30
+
31
+ /**
32
+ * @class
33
+ *
34
+ * <h3 class="comment-api-title">Overview</h3>
35
+ *
36
+ *
37
+ * <h3>Usage</h3>
38
+ *
39
+ * For the <code>udex-image-grid-ticker</code>
40
+ * <h3>ES6 Module Import</h3>
41
+ *
42
+ * <code>import "@sapudex/web-components/dist/ImageGridTicker.js";</code>
43
+ *
44
+ * @constructor
45
+ * @extends UI5Element
46
+ * @public
47
+ */
48
+ @customElement({
49
+ tag: "udex-image-grid-ticker",
50
+ renderer: jsxRenderer,
51
+ styles: ImageGridTickerCss,
52
+ template: ImageGridTickerTemplate,
53
+ dependencies: [ImageGridTickerItem],
54
+ })
55
+
56
+ /**
57
+ * Fired event when the user click on a play/paused button.
58
+ *
59
+ * @public
60
+ */
61
+ @event("play-button-click", { bubbles: true })
62
+
63
+ class UDExImageGridTicker extends UI5Element {
64
+ eventDetails!: {
65
+ "play-button-click": UDExImageGridTickerPlayBtnClickEventDetail;
66
+ };
67
+
68
+ /**
69
+ * Slot for image grid ticker items.
70
+ *
71
+ * @slot
72
+ * @public
73
+ */
74
+ @slot({ type: HTMLElement, "default": true, individualSlots: true })
75
+ items!: Array<UDExImageGridTickerItem>;
76
+
77
+ /**
78
+ * Grayscale mode enhances visual harmony and can be used for minimal,
79
+ * professional layouts or to de-emphasize logos.
80
+ *
81
+ * @default false
82
+ * @public
83
+ */
84
+ @property({ type: Boolean })
85
+ grayscale = false;
86
+
87
+ /**
88
+ * Indicates whether the image grid ticker is scrollable.
89
+ *
90
+ * @default false
91
+ * @private
92
+ */
93
+ @property({ type: Boolean })
94
+ _isScrollable = false;
95
+
96
+ /**
97
+ * Indicates whether the screen size is small.
98
+ *
99
+ * @default false
100
+ * @private
101
+ */
102
+ @property({ type: Boolean })
103
+ _isSmallScreen = false;
104
+
105
+ /**
106
+ * Indicates whether the animation is paused.
107
+ *
108
+ * @default false
109
+ * @private
110
+ */
111
+ @property({ type: Boolean })
112
+ _isPaused = false;
113
+
114
+ /**
115
+ * Indicates focus in state.
116
+ *
117
+ * @default false
118
+ * @private
119
+ */
120
+ @property({ type: Boolean })
121
+ _isFocusIn: boolean = false;
122
+
123
+ /**
124
+ * Indicates mobile view.
125
+ *
126
+ * @default false
127
+ * @private
128
+ */
129
+ @property({ type: Boolean })
130
+ _isMobileView: boolean = false;
131
+
132
+ /**
133
+ * Defines direction of the component.
134
+ *
135
+ * @default undefined
136
+ * @private
137
+ */
138
+ @property({ type: String })
139
+ _direction!: string;
140
+
141
+ _isPlayBtnClicked: boolean = false;
142
+ _isMouseDown: boolean = false;
143
+ _handleResizeBound: ResizeObserverCallback;
144
+
145
+ @i18n("@sapudex/web-components")
146
+ static i18nBundle: I18nBundle;
147
+
148
+ constructor() {
149
+ super();
150
+ this._isMobileView = !this.isAtLeastBreakpointM;
151
+ this._handleResizeBound = this._handleResize.bind(this);
152
+ }
153
+
154
+ onAfterRendering(): void {
155
+ if (this._isMobileView) {
156
+ this._handleMobileView();
157
+ return;
158
+ }
159
+
160
+ this._handleDesktopView();
161
+ }
162
+
163
+ onEnterDOM(): void {
164
+ ResizeHandler.register(this, this._handleResizeBound);
165
+ if (isDesktop()) {
166
+ this.setAttribute("desktop", "");
167
+ }
168
+ }
169
+
170
+ onExitDOM(): void {
171
+ ResizeHandler.deregister(this, this._handleResizeBound);
172
+ }
173
+
174
+ _handleResize(): void {
175
+ this._isMobileView = !this.isAtLeastBreakpointM;
176
+ this._checkScrollable();
177
+ }
178
+
179
+ _checkScrollable(): void {
180
+ if (!this.grid || !this.track || this._isMobileView) {
181
+ this._isScrollable = false;
182
+ return;
183
+ }
184
+
185
+ const { width: itemWidth, gaps: itemGaps } = this.itemDimensions;
186
+ const totalItemWidth = itemWidth + itemGaps;
187
+ const totalWidth = this.items.length * totalItemWidth;
188
+
189
+ this._isScrollable = totalWidth > this.grid.offsetWidth;
190
+ }
191
+
192
+ _startAnimation(): void {
193
+ if (this._isScrollable && !this._isPlayBtnClicked && !this._isMobileView) {
194
+ this._isPaused = false;
195
+ }
196
+ }
197
+
198
+ _stopAnimation(): void {
199
+ if (this._isScrollable && !this._isMobileView) {
200
+ this._isPaused = true;
201
+ }
202
+ }
203
+
204
+ _toggleAnimation(): void {
205
+ this._isPlayBtnClicked = !this._isPlayBtnClicked;
206
+ if (this._isPaused) {
207
+ this._startAnimation();
208
+ } else {
209
+ this._stopAnimation();
210
+ }
211
+ }
212
+
213
+ _onFocusIn(): void {
214
+ if (this._isMouseDown || !this._isScrollable) {
215
+ return;
216
+ }
217
+
218
+ this._isFocusIn = true;
219
+ this._stopAnimation();
220
+
221
+ const focusedItem = this.trackItems[this.focusedIndex];
222
+ const isLastItem = this.focusedIndex === this.trackItems.length - 1;
223
+ const { right, left } = focusedItem.getBoundingClientRect();
224
+ const windowWidth = window.innerWidth || document.documentElement.clientWidth;
225
+ const isPartiallyVisible = right > 0 && left < windowWidth;
226
+
227
+ if (isPartiallyVisible) {
228
+ focusedItem.scrollIntoView({
229
+ behavior: "smooth",
230
+ block: "nearest",
231
+ inline: "center",
232
+ });
233
+ }
234
+
235
+ if (isLastItem) {
236
+ this._focusLastItem();
237
+ }
238
+ }
239
+
240
+ _onFocusOut(): void {
241
+ this._isFocusIn = false;
242
+ this._startAnimation();
243
+ }
244
+
245
+ _onKeyDown(e: KeyboardEvent): void {
246
+ if (isLeft(e) || isRight(e)) {
247
+ e.preventDefault();
248
+ const direction = (isLeft(e) && !this.isRtl) || (isRight(e) && this.isRtl) ? -1 : 1;
249
+ const index = this.focusedIndex + direction;
250
+
251
+ if (index >= 0 && index < this.trackItems.length) {
252
+ this._focusItem(this.trackItems[index]);
253
+ }
254
+ }
255
+ }
256
+
257
+ _onMouseDown(): void {
258
+ this._isMouseDown = true;
259
+ }
260
+
261
+ _onMouseUp(): void {
262
+ this._isMouseDown = false;
263
+ }
264
+
265
+ _focusLastItem(): void {
266
+ const lastItem = this.trackItems[this.items.length - 1];
267
+ this._focusItem(lastItem);
268
+ lastItem.scrollIntoView({
269
+ behavior: "smooth",
270
+ block: "nearest",
271
+ });
272
+ }
273
+
274
+ _handleMobileView(): void {
275
+ this._isScrollable = false;
276
+ this._stopAnimation();
277
+ }
278
+
279
+ _handleDesktopView(): void {
280
+ this._handleDirection();
281
+ this._checkScrollable();
282
+ if (this._isScrollable && !this._isPaused && !this._isMobileView) {
283
+ this._startAnimation();
284
+ } else {
285
+ this._stopAnimation();
286
+ }
287
+ }
288
+
289
+ _focusItem(item: HTMLElement): void {
290
+ const link = item.shadowRoot?.querySelector(".udex-image-grid-ticker-item__link") as HTMLElement;
291
+ link.focus();
292
+ }
293
+
294
+ _handleDirection(): void {
295
+ const directionStyles = window.getComputedStyle(this).getPropertyValue("direction");
296
+ this._direction = directionStyles || "ltr";
297
+ }
298
+
299
+ _onPlayButtonClick(): void {
300
+ this._toggleAnimation();
301
+ this._firePlayButtonClickEvent();
302
+ }
303
+
304
+ _firePlayButtonClickEvent(): void {
305
+ this.fireDecoratorEvent("play-button-click", {
306
+ isPaused: this._isPaused,
307
+ });
308
+ }
309
+
310
+ _getPropertyValues(variable: string): number {
311
+ const itemStyles = window.getComputedStyle(this.items[0]);
312
+ return parseInt(itemStyles.getPropertyValue(variable));
313
+ }
314
+
315
+ get itemDimensions(): { width: number; gaps: number } {
316
+ const width = this._getPropertyValues(UDExImageGridTickerVariable.itemWidth);
317
+ const gaps = this._getPropertyValues(UDExImageGridTickerVariable.itemGaps) * 2;
318
+ return { width, gaps };
319
+ }
320
+
321
+ get trackItems(): HTMLElement[] {
322
+ return Array.from(this.track.children) as HTMLElement[];
323
+ }
324
+
325
+ get focusedIndex(): number {
326
+ return this.trackItems.findIndex(item => item.matches(":focus"));
327
+ }
328
+
329
+ get isAtLeastBreakpointM(): boolean {
330
+ return BreakpointUtils.isAtLeast("M");
331
+ }
332
+
333
+ get track(): HTMLElement {
334
+ return this.shadowRoot?.querySelector(".udex-image-grid-ticker__track") as HTMLElement;
335
+ }
336
+
337
+ get grid(): HTMLElement {
338
+ return this.shadowRoot?.querySelector(".udex-image-grid-ticker") as HTMLElement;
339
+ }
340
+
341
+ get isRtl(): boolean {
342
+ return this._direction === "rtl";
343
+ }
344
+
345
+ get playBtnTooltipText(): string {
346
+ return this._isPaused
347
+ ? UDExImageGridTicker.i18nBundle.getText(PLAY_BUTTON_ACCESSIBLE_NAME)
348
+ : UDExImageGridTicker.i18nBundle.getText(PAUSE_BUTTON_ACCESSIBLE_NAME);
349
+ }
350
+ }
351
+
352
+ UDExImageGridTicker.define();
353
+
354
+ export default UDExImageGridTicker;
355
+ export type { UDExImageGridTickerPlayBtnClickEventDetail };
@@ -0,0 +1,81 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import { isDesktop } from "@ui5/webcomponents-base/Device.js";
3
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
6
+ import ImageGridTickerItemTemplate from "./ImageGridTickerItemTemplate.js";
7
+
8
+ // Styles
9
+ import ImageGridTickerItemCss from "./generated/themes/ImageGridTickerItem.css.js";
10
+
11
+ /**
12
+ * @class
13
+ *
14
+ * <h3 class="comment-api-title">Overview</h3>
15
+ *
16
+ *
17
+ * <h3>Usage</h3>
18
+ *
19
+ * For the <code>udex-image-grid-ticker-item</code>
20
+ * <h3>ES6 Module Import</h3>
21
+ *
22
+ * <code>import "@sapudex/web-components/dist/ImageGridTickerItem.js";</code>
23
+ *
24
+ * @constructor
25
+ * @extends UI5Element
26
+ * @public
27
+ */
28
+ @customElement({
29
+ tag: "udex-image-grid-ticker-item",
30
+ renderer: jsxRenderer,
31
+ styles: ImageGridTickerItemCss,
32
+ template: ImageGridTickerItemTemplate,
33
+ })
34
+
35
+ class UDExImageGridTickerItem extends UI5Element {
36
+ /**
37
+ * Defines the source URL
38
+ *
39
+ * @default ""
40
+ * @public
41
+ */
42
+ @property({ type: String })
43
+ src!: string;
44
+
45
+ /**
46
+ * Defines image alt text
47
+ *
48
+ * @default undefined
49
+ * @public
50
+ */
51
+ @property({ type: String })
52
+ alt?: string;
53
+
54
+ /**
55
+ * Defines tooltip on hover
56
+ *
57
+ * @default undefined
58
+ * @public
59
+ */
60
+ @property({ type: String })
61
+ tooltip?: string;
62
+
63
+ /**
64
+ * Defines link URL
65
+ *
66
+ * @default undefined
67
+ * @public
68
+ */
69
+ @property({ type: String })
70
+ href?: string;
71
+
72
+ onEnterDOM(): void {
73
+ if (isDesktop()) {
74
+ this.setAttribute("desktop", "");
75
+ }
76
+ }
77
+ }
78
+
79
+ UDExImageGridTickerItem.define();
80
+
81
+ export default UDExImageGridTickerItem;
@@ -0,0 +1,28 @@
1
+ import type ImageGridTickerItem from "./ImageGridTickerItem.js";
2
+
3
+ export default function ImageGridTickerItemTemplate(this: ImageGridTickerItem) {
4
+ const rootClass = "udex-image-grid-ticker-item";
5
+ const img = (
6
+ <img
7
+ class={`${rootClass}__img`}
8
+ part="grid-image"
9
+ src={this.src}
10
+ alt={this.alt}
11
+ title={this.tooltip}
12
+ />
13
+ );
14
+
15
+ return (
16
+ <div class={rootClass}>
17
+ {this.href && this.href.length > 0
18
+ ? <a
19
+ class={`${rootClass}__link`}
20
+ href={this.href}
21
+ title={this.tooltip}>
22
+ {img}
23
+ </a>
24
+ : img
25
+ }
26
+ </div>
27
+ );
28
+ }
@@ -0,0 +1,50 @@
1
+ import type ImageGridTicker from "./ImageGridTicker.js";
2
+ import ImageGridTickerItem from "./ImageGridTickerItem.js";
3
+ import UDExButton from "./Button.js";
4
+ import UDExButtonDesign from "./types/ButtonDesign.js";
5
+ import playIcon from "@ui5/webcomponents-icons/dist/play.js";
6
+ import pauseIcon from "@ui5/webcomponents-icons/dist/pause.js";
7
+
8
+ export default function ImageGridTickerTemplate(this: ImageGridTicker) {
9
+ const rootClass = "udex-image-grid-ticker";
10
+ const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;
11
+ const btnIcon = this._isPaused ? playIcon : pauseIcon;
12
+
13
+ return (
14
+ <div class={rootClass}>
15
+ {this._isScrollable &&
16
+ <div className={`${rootClass}__play-button-holder`}>
17
+ <UDExButton
18
+ class={`${rootClass}__play-button`}
19
+ icon={btnIcon}
20
+ design={UDExButtonDesign.Invisible}
21
+ onClick={this._onPlayButtonClick}
22
+ tooltip={this.playBtnTooltipText}>
23
+ </UDExButton>
24
+ </div>
25
+ }
26
+ <div className={`${rootClass}__track-holder`}>
27
+ <div className={`${rootClass}__track-wrapper`}>
28
+ <div
29
+ className={`${rootClass}__track`}
30
+ onMouseEnter={this._stopAnimation}
31
+ onMouseLeave={this._startAnimation}
32
+ onFocusIn={this._onFocusIn}
33
+ onFocusOut={this._onFocusOut}
34
+ onKeyDown={this._onKeyDown}
35
+ onMouseDown={this._onMouseDown}
36
+ onMouseUp={this._onMouseUp}>
37
+ {items.map(item =>
38
+ <ImageGridTickerItem
39
+ src={item.src}
40
+ alt={item.alt}
41
+ tooltip={item.tooltip}
42
+ href={item.href}>
43
+ </ImageGridTickerItem>
44
+ )}
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ );
50
+ }
package/src/Search.hbs CHANGED
@@ -123,7 +123,6 @@
123
123
  class="udex-search__icon"
124
124
  aria-hidden="true"
125
125
  accessible-name="{{accInfo.accessibleNameSearchIcon}}"
126
- show-tooltip
127
126
  name="search">
128
127
  </ui5-icon>
129
128
  {{/if}}
@@ -18,12 +18,12 @@
18
18
  {{#if isListEmpty}}
19
19
  <div class="udex-no-result"><span>{{getNoResultText}}</span></div>
20
20
  {{else if busy}}
21
- <ui5-busy-indicator
21
+ <udex-busy-indicator
22
22
  class="udex-busy-indicator"
23
23
  size="M"
24
24
  delay="{{busyDelay}}"
25
25
  active>
26
- </ui5-busy-indicator>
26
+ </udex-busy-indicator>
27
27
  {{else}}
28
28
  <udex-list
29
29
  id="udex-list"
package/src/SelectBox.ts CHANGED
@@ -29,6 +29,7 @@ import UDExButton from "./Button.js";
29
29
  import UDExValueState from "./types/common.js";
30
30
  import UDExStatusMessage from "./StatusMessage.js";
31
31
  import UDExControlButton from "./ControlButton.js";
32
+ import UDExBusyIndicator from "./BusyIndicator.js";
32
33
  import { Placement } from "./types/Dropdown.js";
33
34
  import { UDExPopoverPart } from "./types/SearchableListBase.js";
34
35
  import UDExTagGroup from "./TagGroup.js";
@@ -86,6 +87,7 @@ type UDExSelectBoxRemoveEventDetail = {
86
87
  UDExStatusMessage,
87
88
  UDExControlButton,
88
89
  UDExTagGroup,
90
+ UDExBusyIndicator,
89
91
  UDExListItem,
90
92
  UDExList,
91
93
  UDExSearch,
package/src/Table.hbs CHANGED
@@ -30,12 +30,12 @@
30
30
  </udex-table-row>
31
31
  {{/unless}}
32
32
  {{#if loading}}
33
- <ui5-busy-indicator
33
+ <udex-busy-indicator
34
34
  class="udex-table__loading"
35
35
  delay="{{loadingDelay}}"
36
36
  data-sap-focus-ref
37
37
  active>
38
- </ui5-busy-indicator>
38
+ </udex-busy-indicator>
39
39
  {{/if}}
40
40
  </div>
41
41
  {{#if footnotes.length}}
package/src/Table.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
4
- import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
5
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
6
5
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
7
6
  import {
@@ -11,6 +10,7 @@ import UDExTableHeaderRow from "./TableHeaderRow.js";
11
10
  import UDExTableRow from "./TableRow.js";
12
11
  import UDExTableCell from "./TableCell.js";
13
12
  import UDExTableGroupRow from "./TableGroupRow.js";
13
+ import UDExBusyIndicator from "./BusyIndicator.js";
14
14
  import type UDExTableHeaderCell from "./TableHeaderCell.js";
15
15
  import { TABLE_NO_DATA_FOUND } from "./generated/i18n/i18n-defaults.js";
16
16
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
@@ -51,7 +51,7 @@ export type KeyBoardItem = {
51
51
  styles: [TableCss, getEffectiveScrollbarStyle()],
52
52
  template: TableTemplate,
53
53
  dependencies: [
54
- BusyIndicator,
54
+ UDExBusyIndicator,
55
55
  UDExTableHeaderRow,
56
56
  UDExTableRow,
57
57
  UDExTableCell,
@@ -1,3 +1,3 @@
1
1
  import type { I18nText } from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
- const COUNT: I18nText = {key: "COUNT", defaultText: "Count"};const OF: I18nText = {key: "OF", defaultText: "of"};const PAGINATION_PAGE: I18nText = {key: "PAGINATION_PAGE", defaultText: "Pagination page"};const SELECTED: I18nText = {key: "SELECTED", defaultText: "Selected"};const FIRST_PAGE: I18nText = {key: "FIRST_PAGE", defaultText: "First page"};const LAST_PAGE: I18nText = {key: "LAST_PAGE", defaultText: "Last page"};const PREVIOUS_PAGE: I18nText = {key: "PREVIOUS_PAGE", defaultText: "Previous page"};const NEXT_PAGE: I18nText = {key: "NEXT_PAGE", defaultText: "Next page"};const CURRENT_PAGE: I18nText = {key: "CURRENT_PAGE", defaultText: "Current page"};const ACTIVATE_PAGE: I18nText = {key: "ACTIVATE_PAGE", defaultText: "Activate page number"};const BUTTON_ARIA_TYPE_PRIMARY: I18nText = {key: "BUTTON_ARIA_TYPE_PRIMARY", defaultText: "Primary"};const BUTTON_ARIA_TYPE_SECONDARY: I18nText = {key: "BUTTON_ARIA_TYPE_SECONDARY", defaultText: "Secondary"};const BUTTON_ARIA_TYPE_TERTIARY: I18nText = {key: "BUTTON_ARIA_TYPE_TERTIARY", defaultText: "Tertiary"};const BUTTON_ARIA_TYPE_WARNING: I18nText = {key: "BUTTON_ARIA_TYPE_WARNING", defaultText: "Warning"};const BUTTON_ARIA_TYPE_POSITIVE: I18nText = {key: "BUTTON_ARIA_TYPE_POSITIVE", defaultText: "Positive"};const BUTTON_ARIA_TYPE_NEGATIVE: I18nText = {key: "BUTTON_ARIA_TYPE_NEGATIVE", defaultText: "Negative"};const BUTTON_ARIA_EMPHASIZED: I18nText = {key: "BUTTON_ARIA_EMPHASIZED", defaultText: "Emphasized"};const BUTTON_ARIA_DEFAULT: I18nText = {key: "BUTTON_ARIA_DEFAULT", defaultText: "Default"};const BUTTON_ARIA_TRANSPARENT: I18nText = {key: "BUTTON_ARIA_TRANSPARENT", defaultText: "Transparent"};const BUTTON_ARIA_ATTENTION: I18nText = {key: "BUTTON_ARIA_ATTENTION", defaultText: "Attention"};const TOGGLED: I18nText = {key: "TOGGLED", defaultText: "Toggled"};const SUGGESTED_TEXT: I18nText = {key: "SUGGESTED_TEXT", defaultText: "Suggested searches"};const ACCESSIBLE_NAME_RESET_ICON: I18nText = {key: "ACCESSIBLE_NAME_RESET_ICON", defaultText: "Clear"};const ACCESSIBLE_NAME_SEARCH_ICON: I18nText = {key: "ACCESSIBLE_NAME_SEARCH_ICON", defaultText: "Search"};const TOOLTIP_RESET_BUTTON: I18nText = {key: "TOOLTIP_RESET_BUTTON", defaultText: "Clear"};const TOOLTIP_VOICE_BUTTON: I18nText = {key: "TOOLTIP_VOICE_BUTTON", defaultText: "Voice"};const TOOLTIP_SUBMIT_BUTTON: I18nText = {key: "TOOLTIP_SUBMIT_BUTTON", defaultText: "Submit"};const LISTENING: I18nText = {key: "LISTENING", defaultText: "Listening"};const AVAILABLE_VALUES: I18nText = {key: "AVAILABLE_VALUES", defaultText: "Available Values"};const RECOMMENDED_TEXT: I18nText = {key: "RECOMMENDED_TEXT", defaultText: "Recommended pages"};const EXPAND_ALL: I18nText = {key: "EXPAND_ALL", defaultText: "Expand All"};const COLLAPSE_ALL: I18nText = {key: "COLLAPSE_ALL", defaultText: "Collapse All"};const MORE: I18nText = {key: "MORE", defaultText: "More"};const ATTENTION_BADGE: I18nText = {key: "ATTENTION_BADGE", defaultText: "Attention badge"};const REVIEWS: I18nText = {key: "REVIEWS", defaultText: "reviews"};const STARS: I18nText = {key: "STARS", defaultText: "stars"};const READ_MORE: I18nText = {key: "READ_MORE", defaultText: "Read more"};const READ_LESS: I18nText = {key: "READ_LESS", defaultText: "Read less"};const RATING_INDICATOR_TEXT: I18nText = {key: "RATING_INDICATOR_TEXT", defaultText: "Rating Indicator"};const RATING_INDICATOR_TOOLTIP_TEXT: I18nText = {key: "RATING_INDICATOR_TOOLTIP_TEXT", defaultText: "Rating"};const RATING_INDICATOR_ARIA_DESCRIPTION: I18nText = {key: "RATING_INDICATOR_ARIA_DESCRIPTION", defaultText: "Required"};const TOTAL: I18nText = {key: "TOTAL", defaultText: "Total"};const MESSAGE_STRIP_CLOSE_BUTTON: I18nText = {key: "MESSAGE_STRIP_CLOSE_BUTTON", defaultText: "Message Strip Close Button"};const MESSAGE_STRIP_INFORMATION: I18nText = {key: "MESSAGE_STRIP_INFORMATION", defaultText: "Information Bar"};const MESSAGE_STRIP_SUCCESS: I18nText = {key: "MESSAGE_STRIP_SUCCESS", defaultText: "Positive Bar"};const MESSAGE_STRIP_WARNING: I18nText = {key: "MESSAGE_STRIP_WARNING", defaultText: "Warning Bar"};const MESSAGE_STRIP_ERROR: I18nText = {key: "MESSAGE_STRIP_ERROR", defaultText: "Negative Bar"};const MESSAGE_STRIP_ACTION: I18nText = {key: "MESSAGE_STRIP_ACTION", defaultText: "Action Bar"};const ARIA_LABEL_LIST_MULTISELECTABLE: I18nText = {key: "ARIA_LABEL_LIST_MULTISELECTABLE", defaultText: "Contains Multi-Selectable Items"};const ARIA_LABEL_LIST_SELECTABLE: I18nText = {key: "ARIA_LABEL_LIST_SELECTABLE", defaultText: "Contains Selectable Items"};const UNSELECTED: I18nText = {key: "UNSELECTED", defaultText: "Unselected"};const INDETERMINATE: I18nText = {key: "INDETERMINATE", defaultText: "Indeterminate"};const EDIT_BUTTON: I18nText = {key: "EDIT_BUTTON", defaultText: "Edit"};const DELETE_BUTTON: I18nText = {key: "DELETE_BUTTON", defaultText: "Delete"};const TEXTAREA_CHARACTERS_LEFT: I18nText = {key: "TEXTAREA_CHARACTERS_LEFT", defaultText: "{0} characters remaining"};const VALUE_STATE_TYPE_ERROR: I18nText = {key: "VALUE_STATE_TYPE_ERROR", defaultText: "Field State Error"};const VALUE_STATE_TYPE_WARNING: I18nText = {key: "VALUE_STATE_TYPE_WARNING", defaultText: "Field State Warning"};const VALUE_STATE_TYPE_SUCCESS: I18nText = {key: "VALUE_STATE_TYPE_SUCCESS", defaultText: "Field State Success"};const VALUE_STATE_TYPE_STANDARD: I18nText = {key: "VALUE_STATE_TYPE_STANDARD", defaultText: "Field State Standard"};const TEXT_FIELD: I18nText = {key: "TEXT_FIELD", defaultText: "Text field"};const CAROUSEL_PREVIOUS_ARROW_TEXT: I18nText = {key: "CAROUSEL_PREVIOUS_ARROW_TEXT", defaultText: "Previous Page"};const CAROUSEL_NEXT_ARROW_TEXT: I18nText = {key: "CAROUSEL_NEXT_ARROW_TEXT", defaultText: "Next Page"};const SHOW_RESULTS: I18nText = {key: "SHOW_RESULTS", defaultText: "Show Results"};const RESET: I18nText = {key: "RESET", defaultText: "Reset"};const SELECT_OPTIONS: I18nText = {key: "SELECT_OPTIONS", defaultText: "Select Options"};const SELECT_ALL: I18nText = {key: "SELECT_ALL", defaultText: "Select All"};const BREADCRUMBS_ARIA_LABEL: I18nText = {key: "BREADCRUMBS_ARIA_LABEL", defaultText: "Breadcrumb Trail"};const BREADCRUMBS_OVERFLOW_ARIA_LABEL: I18nText = {key: "BREADCRUMBS_OVERFLOW_ARIA_LABEL", defaultText: "More"};const STEPINPUT_INC_ICON_TITLE: I18nText = {key: "STEPINPUT_INC_ICON_TITLE", defaultText: "Increase Quantity by"};const STEPINPUT_DEC_ICON_TITLE: I18nText = {key: "STEPINPUT_DEC_ICON_TITLE", defaultText: "Decrease Quantity by"};const NO_MATCHES_FOUND: I18nText = {key: "NO_MATCHES_FOUND", defaultText: "No matches found."};const RESULT_RETURNED: I18nText = {key: "RESULT_RETURNED", defaultText: "results returned."};const VALUE_STATE_ERROR: I18nText = {key: "VALUE_STATE_ERROR", defaultText: "Invalid entry"};const VALUE_STATE_WARNING: I18nText = {key: "VALUE_STATE_WARNING", defaultText: "Warning issued"};const VALUE_STATE_INFORMATION: I18nText = {key: "VALUE_STATE_INFORMATION", defaultText: "Informative entry"};const VALUE_STATE_SUCCESS: I18nText = {key: "VALUE_STATE_SUCCESS", defaultText: "Entry successfully validated"};const READ_ONLY: I18nText = {key: "READ_ONLY", defaultText: "Read only"};const MAIN_LINKS: I18nText = {key: "MAIN_LINKS", defaultText: "main links"};const OPENS_IN_A_NEW_WINDOW: I18nText = {key: "OPENS_IN_A_NEW_WINDOW", defaultText: "opens in a new window"};const LOGOUT: I18nText = {key: "LOGOUT", defaultText: "Logout"};const PROFILE: I18nText = {key: "PROFILE", defaultText: "Profile"};const SWITCH_ACCOUNT: I18nText = {key: "SWITCH_ACCOUNT", defaultText: "Switch account"};const BACK: I18nText = {key: "BACK", defaultText: "Back"};const OTHER_IDENTITIES: I18nText = {key: "OTHER_IDENTITIES", defaultText: "Other identities"};const ADD_OR_REMOVE_ACCOUNT: I18nText = {key: "ADD_OR_REMOVE_ACCOUNT", defaultText: "Add or remove account"};const COUNTRY_SELECT: I18nText = {key: "COUNTRY_SELECT", defaultText: "Select country"};const OVERVIEW: I18nText = {key: "OVERVIEW", defaultText: "Overview"};const CART: I18nText = {key: "CART", defaultText: "Cart"};const COUNTRY_SELECTOR: I18nText = {key: "COUNTRY_SELECTOR", defaultText: "Country Selector"};const SUPPORT: I18nText = {key: "SUPPORT", defaultText: "Support"};const SEARCH: I18nText = {key: "SEARCH", defaultText: "Search"};const SHOW_HIDE_PASSWORD: I18nText = {key: "SHOW_HIDE_PASSWORD", defaultText: "Show/Hide Password Button"};const PHONE_NUMBER: I18nText = {key: "PHONE_NUMBER", defaultText: "Phone number"};const CONTACT_US: I18nText = {key: "CONTACT_US", defaultText: "Contact us"};const EMAIL: I18nText = {key: "EMAIL", defaultText: "Email"};const CHAT_WITH_US: I18nText = {key: "CHAT_WITH_US", defaultText: "Chat with us"};const QUICK_LINKS: I18nText = {key: "QUICK_LINKS", defaultText: "Quick Links"};const TRENDING: I18nText = {key: "TRENDING", defaultText: "Trending"};const ABOUT_SAP: I18nText = {key: "ABOUT_SAP", defaultText: "About SAP"};const SITE_INFORMATION: I18nText = {key: "SITE_INFORMATION", defaultText: "Site Information"};const SEE_COMPLETE_LIST: I18nText = {key: "SEE_COMPLETE_LIST", defaultText: "Or see our complete list of"};const LOCAL_COUNTRY_NAMES: I18nText = {key: "LOCAL_COUNTRY_NAMES", defaultText: "local country numbers"};const COPYRIGHT: I18nText = {key: "COPYRIGHT", defaultText: "© {0} SAP SE or an SAP affiliate company. All rights reserved."};const BACK_TO_TOP: I18nText = {key: "BACK_TO_TOP", defaultText: "Back to top"};const PUBLIC_SECURITY_NETWORK_NUMBER: I18nText = {key: "PUBLIC_SECURITY_NETWORK_NUMBER", defaultText: ""};const ICP_NUMBER: I18nText = {key: "ICP_NUMBER", defaultText: ""};const AVATAR_TEXT: I18nText = {key: "AVATAR_TEXT", defaultText: "Avatar"};const DISABLED: I18nText = {key: "DISABLED", defaultText: "Disabled"};const STATUS_BADGE_TEXT: I18nText = {key: "STATUS_BADGE_TEXT", defaultText: "Status Badge"};const STATUS_BADGE_EDIT_TITLE: I18nText = {key: "STATUS_BADGE_EDIT_TITLE", defaultText: "Click to edit profile"};const STATUS_BADGE_INFORMATION_TITLE: I18nText = {key: "STATUS_BADGE_INFORMATION_TITLE", defaultText: "Click to open profile information"};const STATUS_BADGE_WARNING_TITLE: I18nText = {key: "STATUS_BADGE_WARNING_TITLE", defaultText: "Warning, potential risk with the profile"};const STATUS_BADGE_ERROR_TITLE: I18nText = {key: "STATUS_BADGE_ERROR_TITLE", defaultText: "There is an error with the profile"};const STATUS_BADGE_SUCCESS_TITLE: I18nText = {key: "STATUS_BADGE_SUCCESS_TITLE", defaultText: "Successfully verified profile"};const CALENDAR_ICON: I18nText = {key: "CALENDAR_ICON", defaultText: "Open Calendar icon"};const DATEPICKER_DATE_DESCRIPTION: I18nText = {key: "DATEPICKER_DATE_DESCRIPTION", defaultText: "Date Input"};const TABLE_NO_DATA_FOUND: I18nText = {key: "TABLE_NO_DATA_FOUND", defaultText: "No data found"};const LIST_ITEM_EDIT_ICON: I18nText = {key: "LIST_ITEM_EDIT_ICON", defaultText: "Edit list item entry"};const LIST_ITEM_DELETE_ICON: I18nText = {key: "LIST_ITEM_DELETE_ICON", defaultText: "Delete list item entry"};const BACK_BUTTON_LABEL: I18nText = {key: "BACK_BUTTON_LABEL", defaultText: "back button label"};const TRIGGER: I18nText = {key: "TRIGGER", defaultText: "Dropdown trigger"};const UPLOADING_FILE_STATUS_TEXT: I18nText = {key: "UPLOADING_FILE_STATUS_TEXT", defaultText: "Uploading"};const TERMINATED_FILE_STATUS_TEXT: I18nText = {key: "TERMINATED_FILE_STATUS_TEXT", defaultText: "Terminated"};const REMOVE_FILE_TEXT: I18nText = {key: "REMOVE_FILE_TEXT", defaultText: "Remove file"};const UPLOAD_BUTTON_LABEL: I18nText = {key: "UPLOAD_BUTTON_LABEL", defaultText: "Upload file"};const COMPLETE_LIST_OF: I18nText = {key: "COMPLETE_LIST_OF", defaultText: "Complete list of"};const CALL_US_TODAY: I18nText = {key: "CALL_US_TODAY", defaultText: "Call us today!"};const SOCIAL_MEDIA_BUTTON: I18nText = {key: "SOCIAL_MEDIA_BUTTON", defaultText: "Social Media Button"};const PROMO_TILE: I18nText = {key: "PROMO_TILE", defaultText: "Promo Tile"};const PROMO_TILE_ICON: I18nText = {key: "PROMO_TILE_ICON", defaultText: "Promo Tile Icon"};
3
- export {COUNT,OF,PAGINATION_PAGE,SELECTED,FIRST_PAGE,LAST_PAGE,PREVIOUS_PAGE,NEXT_PAGE,CURRENT_PAGE,ACTIVATE_PAGE,BUTTON_ARIA_TYPE_PRIMARY,BUTTON_ARIA_TYPE_SECONDARY,BUTTON_ARIA_TYPE_TERTIARY,BUTTON_ARIA_TYPE_WARNING,BUTTON_ARIA_TYPE_POSITIVE,BUTTON_ARIA_TYPE_NEGATIVE,BUTTON_ARIA_EMPHASIZED,BUTTON_ARIA_DEFAULT,BUTTON_ARIA_TRANSPARENT,BUTTON_ARIA_ATTENTION,TOGGLED,SUGGESTED_TEXT,ACCESSIBLE_NAME_RESET_ICON,ACCESSIBLE_NAME_SEARCH_ICON,TOOLTIP_RESET_BUTTON,TOOLTIP_VOICE_BUTTON,TOOLTIP_SUBMIT_BUTTON,LISTENING,AVAILABLE_VALUES,RECOMMENDED_TEXT,EXPAND_ALL,COLLAPSE_ALL,MORE,ATTENTION_BADGE,REVIEWS,STARS,READ_MORE,READ_LESS,RATING_INDICATOR_TEXT,RATING_INDICATOR_TOOLTIP_TEXT,RATING_INDICATOR_ARIA_DESCRIPTION,TOTAL,MESSAGE_STRIP_CLOSE_BUTTON,MESSAGE_STRIP_INFORMATION,MESSAGE_STRIP_SUCCESS,MESSAGE_STRIP_WARNING,MESSAGE_STRIP_ERROR,MESSAGE_STRIP_ACTION,ARIA_LABEL_LIST_MULTISELECTABLE,ARIA_LABEL_LIST_SELECTABLE,UNSELECTED,INDETERMINATE,EDIT_BUTTON,DELETE_BUTTON,TEXTAREA_CHARACTERS_LEFT,VALUE_STATE_TYPE_ERROR,VALUE_STATE_TYPE_WARNING,VALUE_STATE_TYPE_SUCCESS,VALUE_STATE_TYPE_STANDARD,TEXT_FIELD,CAROUSEL_PREVIOUS_ARROW_TEXT,CAROUSEL_NEXT_ARROW_TEXT,SHOW_RESULTS,RESET,SELECT_OPTIONS,SELECT_ALL,BREADCRUMBS_ARIA_LABEL,BREADCRUMBS_OVERFLOW_ARIA_LABEL,STEPINPUT_INC_ICON_TITLE,STEPINPUT_DEC_ICON_TITLE,NO_MATCHES_FOUND,RESULT_RETURNED,VALUE_STATE_ERROR,VALUE_STATE_WARNING,VALUE_STATE_INFORMATION,VALUE_STATE_SUCCESS,READ_ONLY,MAIN_LINKS,OPENS_IN_A_NEW_WINDOW,LOGOUT,PROFILE,SWITCH_ACCOUNT,BACK,OTHER_IDENTITIES,ADD_OR_REMOVE_ACCOUNT,COUNTRY_SELECT,OVERVIEW,CART,COUNTRY_SELECTOR,SUPPORT,SEARCH,SHOW_HIDE_PASSWORD,PHONE_NUMBER,CONTACT_US,EMAIL,CHAT_WITH_US,QUICK_LINKS,TRENDING,ABOUT_SAP,SITE_INFORMATION,SEE_COMPLETE_LIST,LOCAL_COUNTRY_NAMES,COPYRIGHT,BACK_TO_TOP,PUBLIC_SECURITY_NETWORK_NUMBER,ICP_NUMBER,AVATAR_TEXT,DISABLED,STATUS_BADGE_TEXT,STATUS_BADGE_EDIT_TITLE,STATUS_BADGE_INFORMATION_TITLE,STATUS_BADGE_WARNING_TITLE,STATUS_BADGE_ERROR_TITLE,STATUS_BADGE_SUCCESS_TITLE,CALENDAR_ICON,DATEPICKER_DATE_DESCRIPTION,TABLE_NO_DATA_FOUND,LIST_ITEM_EDIT_ICON,LIST_ITEM_DELETE_ICON,BACK_BUTTON_LABEL,TRIGGER,UPLOADING_FILE_STATUS_TEXT,TERMINATED_FILE_STATUS_TEXT,REMOVE_FILE_TEXT,UPLOAD_BUTTON_LABEL,COMPLETE_LIST_OF,CALL_US_TODAY,SOCIAL_MEDIA_BUTTON,PROMO_TILE,PROMO_TILE_ICON};
2
+ const COUNT: I18nText = {key: "COUNT", defaultText: "Count"};const OF: I18nText = {key: "OF", defaultText: "of"};const PAGINATION_PAGE: I18nText = {key: "PAGINATION_PAGE", defaultText: "Pagination page"};const SELECTED: I18nText = {key: "SELECTED", defaultText: "Selected"};const FIRST_PAGE: I18nText = {key: "FIRST_PAGE", defaultText: "First page"};const LAST_PAGE: I18nText = {key: "LAST_PAGE", defaultText: "Last page"};const PREVIOUS_PAGE: I18nText = {key: "PREVIOUS_PAGE", defaultText: "Previous page"};const NEXT_PAGE: I18nText = {key: "NEXT_PAGE", defaultText: "Next page"};const CURRENT_PAGE: I18nText = {key: "CURRENT_PAGE", defaultText: "Current page"};const ACTIVATE_PAGE: I18nText = {key: "ACTIVATE_PAGE", defaultText: "Activate page number"};const BUTTON_ARIA_TYPE_PRIMARY: I18nText = {key: "BUTTON_ARIA_TYPE_PRIMARY", defaultText: "Primary"};const BUTTON_ARIA_TYPE_SECONDARY: I18nText = {key: "BUTTON_ARIA_TYPE_SECONDARY", defaultText: "Secondary"};const BUTTON_ARIA_TYPE_TERTIARY: I18nText = {key: "BUTTON_ARIA_TYPE_TERTIARY", defaultText: "Tertiary"};const BUTTON_ARIA_TYPE_WARNING: I18nText = {key: "BUTTON_ARIA_TYPE_WARNING", defaultText: "Warning"};const BUTTON_ARIA_TYPE_POSITIVE: I18nText = {key: "BUTTON_ARIA_TYPE_POSITIVE", defaultText: "Positive"};const BUTTON_ARIA_TYPE_NEGATIVE: I18nText = {key: "BUTTON_ARIA_TYPE_NEGATIVE", defaultText: "Negative"};const BUTTON_ARIA_EMPHASIZED: I18nText = {key: "BUTTON_ARIA_EMPHASIZED", defaultText: "Emphasized"};const BUTTON_ARIA_DEFAULT: I18nText = {key: "BUTTON_ARIA_DEFAULT", defaultText: "Default"};const BUTTON_ARIA_TRANSPARENT: I18nText = {key: "BUTTON_ARIA_TRANSPARENT", defaultText: "Transparent"};const BUTTON_ARIA_ATTENTION: I18nText = {key: "BUTTON_ARIA_ATTENTION", defaultText: "Attention"};const TOGGLED: I18nText = {key: "TOGGLED", defaultText: "Toggled"};const SUGGESTED_TEXT: I18nText = {key: "SUGGESTED_TEXT", defaultText: "Suggested searches"};const ACCESSIBLE_NAME_RESET_ICON: I18nText = {key: "ACCESSIBLE_NAME_RESET_ICON", defaultText: "Clear"};const ACCESSIBLE_NAME_SEARCH_ICON: I18nText = {key: "ACCESSIBLE_NAME_SEARCH_ICON", defaultText: "Search"};const TOOLTIP_RESET_BUTTON: I18nText = {key: "TOOLTIP_RESET_BUTTON", defaultText: "Clear"};const TOOLTIP_VOICE_BUTTON: I18nText = {key: "TOOLTIP_VOICE_BUTTON", defaultText: "Voice"};const TOOLTIP_SUBMIT_BUTTON: I18nText = {key: "TOOLTIP_SUBMIT_BUTTON", defaultText: "Submit"};const LISTENING: I18nText = {key: "LISTENING", defaultText: "Listening"};const AVAILABLE_VALUES: I18nText = {key: "AVAILABLE_VALUES", defaultText: "Available Values"};const RECOMMENDED_TEXT: I18nText = {key: "RECOMMENDED_TEXT", defaultText: "Recommended pages"};const EXPAND_ALL: I18nText = {key: "EXPAND_ALL", defaultText: "Expand All"};const COLLAPSE_ALL: I18nText = {key: "COLLAPSE_ALL", defaultText: "Collapse All"};const MORE: I18nText = {key: "MORE", defaultText: "More"};const ATTENTION_BADGE: I18nText = {key: "ATTENTION_BADGE", defaultText: "Attention badge"};const REVIEWS: I18nText = {key: "REVIEWS", defaultText: "reviews"};const STARS: I18nText = {key: "STARS", defaultText: "stars"};const READ_MORE: I18nText = {key: "READ_MORE", defaultText: "Read more"};const READ_LESS: I18nText = {key: "READ_LESS", defaultText: "Read less"};const RATING_INDICATOR_TEXT: I18nText = {key: "RATING_INDICATOR_TEXT", defaultText: "Rating Indicator"};const RATING_INDICATOR_TOOLTIP_TEXT: I18nText = {key: "RATING_INDICATOR_TOOLTIP_TEXT", defaultText: "Rating"};const RATING_INDICATOR_ARIA_DESCRIPTION: I18nText = {key: "RATING_INDICATOR_ARIA_DESCRIPTION", defaultText: "Required"};const TOTAL: I18nText = {key: "TOTAL", defaultText: "Total"};const MESSAGE_STRIP_CLOSE_BUTTON: I18nText = {key: "MESSAGE_STRIP_CLOSE_BUTTON", defaultText: "Message Strip Close Button"};const MESSAGE_STRIP_INFORMATION: I18nText = {key: "MESSAGE_STRIP_INFORMATION", defaultText: "Information Bar"};const MESSAGE_STRIP_SUCCESS: I18nText = {key: "MESSAGE_STRIP_SUCCESS", defaultText: "Positive Bar"};const MESSAGE_STRIP_WARNING: I18nText = {key: "MESSAGE_STRIP_WARNING", defaultText: "Warning Bar"};const MESSAGE_STRIP_ERROR: I18nText = {key: "MESSAGE_STRIP_ERROR", defaultText: "Negative Bar"};const MESSAGE_STRIP_ACTION: I18nText = {key: "MESSAGE_STRIP_ACTION", defaultText: "Action Bar"};const ARIA_LABEL_LIST_MULTISELECTABLE: I18nText = {key: "ARIA_LABEL_LIST_MULTISELECTABLE", defaultText: "Contains Multi-Selectable Items"};const ARIA_LABEL_LIST_SELECTABLE: I18nText = {key: "ARIA_LABEL_LIST_SELECTABLE", defaultText: "Contains Selectable Items"};const UNSELECTED: I18nText = {key: "UNSELECTED", defaultText: "Unselected"};const INDETERMINATE: I18nText = {key: "INDETERMINATE", defaultText: "Indeterminate"};const EDIT_BUTTON: I18nText = {key: "EDIT_BUTTON", defaultText: "Edit"};const DELETE_BUTTON: I18nText = {key: "DELETE_BUTTON", defaultText: "Delete"};const TEXTAREA_CHARACTERS_LEFT: I18nText = {key: "TEXTAREA_CHARACTERS_LEFT", defaultText: "{0} characters remaining"};const VALUE_STATE_TYPE_ERROR: I18nText = {key: "VALUE_STATE_TYPE_ERROR", defaultText: "Field State Error"};const VALUE_STATE_TYPE_WARNING: I18nText = {key: "VALUE_STATE_TYPE_WARNING", defaultText: "Field State Warning"};const VALUE_STATE_TYPE_SUCCESS: I18nText = {key: "VALUE_STATE_TYPE_SUCCESS", defaultText: "Field State Success"};const VALUE_STATE_TYPE_STANDARD: I18nText = {key: "VALUE_STATE_TYPE_STANDARD", defaultText: "Field State Standard"};const TEXT_FIELD: I18nText = {key: "TEXT_FIELD", defaultText: "Text field"};const CAROUSEL_PREVIOUS_ARROW_TEXT: I18nText = {key: "CAROUSEL_PREVIOUS_ARROW_TEXT", defaultText: "Previous Page"};const CAROUSEL_NEXT_ARROW_TEXT: I18nText = {key: "CAROUSEL_NEXT_ARROW_TEXT", defaultText: "Next Page"};const SHOW_RESULTS: I18nText = {key: "SHOW_RESULTS", defaultText: "Show Results"};const RESET: I18nText = {key: "RESET", defaultText: "Reset"};const SELECT_OPTIONS: I18nText = {key: "SELECT_OPTIONS", defaultText: "Select Options"};const SELECT_ALL: I18nText = {key: "SELECT_ALL", defaultText: "Select All"};const BREADCRUMBS_ARIA_LABEL: I18nText = {key: "BREADCRUMBS_ARIA_LABEL", defaultText: "Breadcrumb Trail"};const BREADCRUMBS_OVERFLOW_ARIA_LABEL: I18nText = {key: "BREADCRUMBS_OVERFLOW_ARIA_LABEL", defaultText: "More"};const STEPINPUT_INC_ICON_TITLE: I18nText = {key: "STEPINPUT_INC_ICON_TITLE", defaultText: "Increase Quantity by"};const STEPINPUT_DEC_ICON_TITLE: I18nText = {key: "STEPINPUT_DEC_ICON_TITLE", defaultText: "Decrease Quantity by"};const NO_MATCHES_FOUND: I18nText = {key: "NO_MATCHES_FOUND", defaultText: "No matches found."};const RESULT_RETURNED: I18nText = {key: "RESULT_RETURNED", defaultText: "results returned."};const VALUE_STATE_ERROR: I18nText = {key: "VALUE_STATE_ERROR", defaultText: "Invalid entry"};const VALUE_STATE_WARNING: I18nText = {key: "VALUE_STATE_WARNING", defaultText: "Warning issued"};const VALUE_STATE_INFORMATION: I18nText = {key: "VALUE_STATE_INFORMATION", defaultText: "Informative entry"};const VALUE_STATE_SUCCESS: I18nText = {key: "VALUE_STATE_SUCCESS", defaultText: "Entry successfully validated"};const READ_ONLY: I18nText = {key: "READ_ONLY", defaultText: "Read only"};const MAIN_LINKS: I18nText = {key: "MAIN_LINKS", defaultText: "main links"};const OPENS_IN_A_NEW_WINDOW: I18nText = {key: "OPENS_IN_A_NEW_WINDOW", defaultText: "opens in a new window"};const LOGOUT: I18nText = {key: "LOGOUT", defaultText: "Logout"};const PROFILE: I18nText = {key: "PROFILE", defaultText: "Profile"};const SWITCH_ACCOUNT: I18nText = {key: "SWITCH_ACCOUNT", defaultText: "Switch account"};const BACK: I18nText = {key: "BACK", defaultText: "Back"};const OTHER_IDENTITIES: I18nText = {key: "OTHER_IDENTITIES", defaultText: "Other identities"};const ADD_OR_REMOVE_ACCOUNT: I18nText = {key: "ADD_OR_REMOVE_ACCOUNT", defaultText: "Add or remove account"};const COUNTRY_SELECT: I18nText = {key: "COUNTRY_SELECT", defaultText: "Select country"};const OVERVIEW: I18nText = {key: "OVERVIEW", defaultText: "Overview"};const CART: I18nText = {key: "CART", defaultText: "Cart"};const COUNTRY_SELECTOR: I18nText = {key: "COUNTRY_SELECTOR", defaultText: "Country Selector"};const SUPPORT: I18nText = {key: "SUPPORT", defaultText: "Support"};const SEARCH: I18nText = {key: "SEARCH", defaultText: "Search"};const SHOW_HIDE_PASSWORD: I18nText = {key: "SHOW_HIDE_PASSWORD", defaultText: "Show/Hide Password Button"};const PHONE_NUMBER: I18nText = {key: "PHONE_NUMBER", defaultText: "Phone number"};const CONTACT_US: I18nText = {key: "CONTACT_US", defaultText: "Contact us"};const EMAIL: I18nText = {key: "EMAIL", defaultText: "Email"};const CHAT_WITH_US: I18nText = {key: "CHAT_WITH_US", defaultText: "Chat with us"};const QUICK_LINKS: I18nText = {key: "QUICK_LINKS", defaultText: "Quick Links"};const TRENDING: I18nText = {key: "TRENDING", defaultText: "Trending"};const ABOUT_SAP: I18nText = {key: "ABOUT_SAP", defaultText: "About SAP"};const SITE_INFORMATION: I18nText = {key: "SITE_INFORMATION", defaultText: "Site Information"};const SEE_COMPLETE_LIST: I18nText = {key: "SEE_COMPLETE_LIST", defaultText: "Or see our complete list of"};const LOCAL_COUNTRY_NAMES: I18nText = {key: "LOCAL_COUNTRY_NAMES", defaultText: "local country numbers"};const COPYRIGHT: I18nText = {key: "COPYRIGHT", defaultText: "© {0} SAP SE or an SAP affiliate company. All rights reserved."};const BACK_TO_TOP: I18nText = {key: "BACK_TO_TOP", defaultText: "Back to top"};const PUBLIC_SECURITY_NETWORK_NUMBER: I18nText = {key: "PUBLIC_SECURITY_NETWORK_NUMBER", defaultText: ""};const ICP_NUMBER: I18nText = {key: "ICP_NUMBER", defaultText: ""};const AVATAR_TEXT: I18nText = {key: "AVATAR_TEXT", defaultText: "Avatar"};const DISABLED: I18nText = {key: "DISABLED", defaultText: "Disabled"};const STATUS_BADGE_TEXT: I18nText = {key: "STATUS_BADGE_TEXT", defaultText: "Status Badge"};const STATUS_BADGE_EDIT_TITLE: I18nText = {key: "STATUS_BADGE_EDIT_TITLE", defaultText: "Click to edit profile"};const STATUS_BADGE_INFORMATION_TITLE: I18nText = {key: "STATUS_BADGE_INFORMATION_TITLE", defaultText: "Click to open profile information"};const STATUS_BADGE_WARNING_TITLE: I18nText = {key: "STATUS_BADGE_WARNING_TITLE", defaultText: "Warning, potential risk with the profile"};const STATUS_BADGE_ERROR_TITLE: I18nText = {key: "STATUS_BADGE_ERROR_TITLE", defaultText: "There is an error with the profile"};const STATUS_BADGE_SUCCESS_TITLE: I18nText = {key: "STATUS_BADGE_SUCCESS_TITLE", defaultText: "Successfully verified profile"};const CALENDAR_ICON: I18nText = {key: "CALENDAR_ICON", defaultText: "Open Calendar icon"};const DATEPICKER_DATE_DESCRIPTION: I18nText = {key: "DATEPICKER_DATE_DESCRIPTION", defaultText: "Date Input"};const TABLE_NO_DATA_FOUND: I18nText = {key: "TABLE_NO_DATA_FOUND", defaultText: "No data found"};const LIST_ITEM_EDIT_ICON: I18nText = {key: "LIST_ITEM_EDIT_ICON", defaultText: "Edit list item entry"};const LIST_ITEM_DELETE_ICON: I18nText = {key: "LIST_ITEM_DELETE_ICON", defaultText: "Delete list item entry"};const BACK_BUTTON_LABEL: I18nText = {key: "BACK_BUTTON_LABEL", defaultText: "back button label"};const TRIGGER: I18nText = {key: "TRIGGER", defaultText: "Dropdown trigger"};const UPLOADING_FILE_STATUS_TEXT: I18nText = {key: "UPLOADING_FILE_STATUS_TEXT", defaultText: "Uploading"};const TERMINATED_FILE_STATUS_TEXT: I18nText = {key: "TERMINATED_FILE_STATUS_TEXT", defaultText: "Terminated"};const REMOVE_FILE_TEXT: I18nText = {key: "REMOVE_FILE_TEXT", defaultText: "Remove file"};const UPLOAD_BUTTON_LABEL: I18nText = {key: "UPLOAD_BUTTON_LABEL", defaultText: "Upload file"};const COMPLETE_LIST_OF: I18nText = {key: "COMPLETE_LIST_OF", defaultText: "Complete list of"};const CALL_US_TODAY: I18nText = {key: "CALL_US_TODAY", defaultText: "Call us today!"};const SOCIAL_MEDIA_BUTTON: I18nText = {key: "SOCIAL_MEDIA_BUTTON", defaultText: "Social Media Button"};const PROMO_TILE: I18nText = {key: "PROMO_TILE", defaultText: "Promo Tile"};const PROMO_TILE_ICON: I18nText = {key: "PROMO_TILE_ICON", defaultText: "Promo Tile Icon"};const PLAY_BUTTON_ACCESSIBLE_NAME: I18nText = {key: "PLAY_BUTTON_ACCESSIBLE_NAME", defaultText: "Start button to begin customer logos rotation"};const PAUSE_BUTTON_ACCESSIBLE_NAME: I18nText = {key: "PAUSE_BUTTON_ACCESSIBLE_NAME", defaultText: "Pause button to stop customer logos rotation"};
3
+ export {COUNT,OF,PAGINATION_PAGE,SELECTED,FIRST_PAGE,LAST_PAGE,PREVIOUS_PAGE,NEXT_PAGE,CURRENT_PAGE,ACTIVATE_PAGE,BUTTON_ARIA_TYPE_PRIMARY,BUTTON_ARIA_TYPE_SECONDARY,BUTTON_ARIA_TYPE_TERTIARY,BUTTON_ARIA_TYPE_WARNING,BUTTON_ARIA_TYPE_POSITIVE,BUTTON_ARIA_TYPE_NEGATIVE,BUTTON_ARIA_EMPHASIZED,BUTTON_ARIA_DEFAULT,BUTTON_ARIA_TRANSPARENT,BUTTON_ARIA_ATTENTION,TOGGLED,SUGGESTED_TEXT,ACCESSIBLE_NAME_RESET_ICON,ACCESSIBLE_NAME_SEARCH_ICON,TOOLTIP_RESET_BUTTON,TOOLTIP_VOICE_BUTTON,TOOLTIP_SUBMIT_BUTTON,LISTENING,AVAILABLE_VALUES,RECOMMENDED_TEXT,EXPAND_ALL,COLLAPSE_ALL,MORE,ATTENTION_BADGE,REVIEWS,STARS,READ_MORE,READ_LESS,RATING_INDICATOR_TEXT,RATING_INDICATOR_TOOLTIP_TEXT,RATING_INDICATOR_ARIA_DESCRIPTION,TOTAL,MESSAGE_STRIP_CLOSE_BUTTON,MESSAGE_STRIP_INFORMATION,MESSAGE_STRIP_SUCCESS,MESSAGE_STRIP_WARNING,MESSAGE_STRIP_ERROR,MESSAGE_STRIP_ACTION,ARIA_LABEL_LIST_MULTISELECTABLE,ARIA_LABEL_LIST_SELECTABLE,UNSELECTED,INDETERMINATE,EDIT_BUTTON,DELETE_BUTTON,TEXTAREA_CHARACTERS_LEFT,VALUE_STATE_TYPE_ERROR,VALUE_STATE_TYPE_WARNING,VALUE_STATE_TYPE_SUCCESS,VALUE_STATE_TYPE_STANDARD,TEXT_FIELD,CAROUSEL_PREVIOUS_ARROW_TEXT,CAROUSEL_NEXT_ARROW_TEXT,SHOW_RESULTS,RESET,SELECT_OPTIONS,SELECT_ALL,BREADCRUMBS_ARIA_LABEL,BREADCRUMBS_OVERFLOW_ARIA_LABEL,STEPINPUT_INC_ICON_TITLE,STEPINPUT_DEC_ICON_TITLE,NO_MATCHES_FOUND,RESULT_RETURNED,VALUE_STATE_ERROR,VALUE_STATE_WARNING,VALUE_STATE_INFORMATION,VALUE_STATE_SUCCESS,READ_ONLY,MAIN_LINKS,OPENS_IN_A_NEW_WINDOW,LOGOUT,PROFILE,SWITCH_ACCOUNT,BACK,OTHER_IDENTITIES,ADD_OR_REMOVE_ACCOUNT,COUNTRY_SELECT,OVERVIEW,CART,COUNTRY_SELECTOR,SUPPORT,SEARCH,SHOW_HIDE_PASSWORD,PHONE_NUMBER,CONTACT_US,EMAIL,CHAT_WITH_US,QUICK_LINKS,TRENDING,ABOUT_SAP,SITE_INFORMATION,SEE_COMPLETE_LIST,LOCAL_COUNTRY_NAMES,COPYRIGHT,BACK_TO_TOP,PUBLIC_SECURITY_NETWORK_NUMBER,ICP_NUMBER,AVATAR_TEXT,DISABLED,STATUS_BADGE_TEXT,STATUS_BADGE_EDIT_TITLE,STATUS_BADGE_INFORMATION_TITLE,STATUS_BADGE_WARNING_TITLE,STATUS_BADGE_ERROR_TITLE,STATUS_BADGE_SUCCESS_TITLE,CALENDAR_ICON,DATEPICKER_DATE_DESCRIPTION,TABLE_NO_DATA_FOUND,LIST_ITEM_EDIT_ICON,LIST_ITEM_DELETE_ICON,BACK_BUTTON_LABEL,TRIGGER,UPLOADING_FILE_STATUS_TEXT,TERMINATED_FILE_STATUS_TEXT,REMOVE_FILE_TEXT,UPLOAD_BUTTON_LABEL,COMPLETE_LIST_OF,CALL_US_TODAY,SOCIAL_MEDIA_BUTTON,PROMO_TILE,PROMO_TILE_ICON,PLAY_BUTTON_ACCESSIBLE_NAME,PAUSE_BUTTON_ACCESSIBLE_NAME};