@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.
- package/bundle.esm.js +3 -0
- package/cypress/specs/BusyIndicator.cy.tsx +10 -0
- package/cypress/specs/FilterMenu.cy.tsx +1 -1
- package/cypress/specs/Footer.cy.tsx +7 -1
- package/cypress/specs/ImageGridTicker.cy.tsx +208 -0
- package/cypress/specs/ImageGridTickerItem.cy.tsx +74 -0
- package/cypress/specs/Table.cy.tsx +1 -1
- package/cypress/support/component-imports.instrumented.ts +52 -46
- package/cypress/support/component-imports.src.ts +53 -47
- package/dist/AssetsVariables.js +6 -0
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/BusyIndicator.d.ts +22 -0
- package/dist/BusyIndicator.js +39 -0
- package/dist/BusyIndicator.js.map +1 -0
- package/dist/FilterMenu.js +2 -2
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +10 -0
- package/dist/Footer.js +7 -0
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +3 -3
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/ImageGridTicker.d.ts +129 -0
- package/dist/ImageGridTicker.js +305 -0
- package/dist/ImageGridTicker.js.map +1 -0
- package/dist/ImageGridTickerItem.d.ts +50 -0
- package/dist/ImageGridTickerItem.js +61 -0
- package/dist/ImageGridTickerItem.js.map +1 -0
- package/dist/ImageGridTickerItemTemplate.d.ts +2 -0
- package/dist/ImageGridTickerItemTemplate.js +9 -0
- package/dist/ImageGridTickerItemTemplate.js.map +1 -0
- package/dist/ImageGridTickerTemplate.d.ts +2 -0
- package/dist/ImageGridTickerTemplate.js +14 -0
- package/dist/ImageGridTickerTemplate.js.map +1 -0
- package/dist/SelectBox.js +2 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/Table.js +2 -2
- package/dist/Table.js.map +1 -1
- package/dist/assets/{InputSuggestions-L-9bNSZM.js → InputSuggestions-EAcC3wZN.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-C2VMJfHu.js → ListItemStandardExpandableTextTemplate-Bb5Y2JOR.js} +1 -1
- package/dist/assets/{bundle.esm-D4RSd7yl.js → bundle.esm-BXDoCHfu.js} +217 -209
- package/dist/assets/messagebundle_en-BhTYnZbC.js +1 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/DatePickerPopover.css +1 -1
- package/dist/css/themes/ImageGridTicker.css +1 -0
- package/dist/css/themes/ImageGridTickerItem.css +1 -0
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +403 -141
- package/dist/custom-elements.json +358 -126
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TableTemplate.lit.js +1 -1
- package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js +1 -1
- package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTicker.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridTicker.css.js +8 -0
- package/dist/generated/themes/ImageGridTicker.css.js.map +1 -0
- package/dist/generated/themes/ImageGridTickerItem.css.d.ts +2 -0
- package/dist/generated/themes/ImageGridTickerItem.css.js +8 -0
- package/dist/generated/themes/ImageGridTickerItem.css.js.map +1 -0
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +4 -0
- package/dist/messagebundle_en.properties +2 -0
- package/dist/vscode.html-custom-data.json +42 -1
- package/dist/web-types.json +108 -2
- package/package.json +1 -1
- package/src/AssetsVariables.ts +6 -0
- package/src/BusyIndicator.ts +33 -0
- package/src/FilterMenu.ts +2 -2
- package/src/Footer.ts +16 -0
- package/src/FooterTemplate.tsx +26 -11
- package/src/ImageGridTicker.ts +355 -0
- package/src/ImageGridTickerItem.ts +81 -0
- package/src/ImageGridTickerItemTemplate.tsx +28 -0
- package/src/ImageGridTickerTemplate.tsx +50 -0
- package/src/Search.hbs +0 -1
- package/src/SearchableListBase.hbs +2 -2
- package/src/SelectBox.ts +2 -0
- package/src/Table.hbs +2 -2
- package/src/Table.ts +2 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/SearchTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
- package/src/generated/templates/TableTemplate.lit.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/DatePickerPopover.css.ts +1 -1
- package/src/generated/themes/ImageGridTicker.css.ts +9 -0
- package/src/generated/themes/ImageGridTickerItem.css.ts +9 -0
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +4 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/themes/Button.css +1 -0
- package/src/themes/CountrySelector.css +2 -2
- package/src/themes/DatePickerPopover.css +3 -2
- package/src/themes/ImageGridTicker.css +134 -0
- package/src/themes/ImageGridTickerItem.css +52 -0
- package/dist/assets/messagebundle_en-D6cJIiUq.js +0 -1
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var UDExImageGridTicker_1;
|
|
8
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
+
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
11
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
12
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
14
|
+
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
15
|
+
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
16
|
+
import { isDesktop } from "@ui5/webcomponents-base/Device.js";
|
|
17
|
+
import { isLeft, isRight } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
18
|
+
import { PAUSE_BUTTON_ACCESSIBLE_NAME, PLAY_BUTTON_ACCESSIBLE_NAME } from "./generated/i18n/i18n-defaults.js";
|
|
19
|
+
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
20
|
+
import ImageGridTickerItem from "./ImageGridTickerItem.js";
|
|
21
|
+
import ImageGridTickerTemplate from "./ImageGridTickerTemplate.js";
|
|
22
|
+
// Styles
|
|
23
|
+
import ImageGridTickerCss from "./generated/themes/ImageGridTicker.css.js";
|
|
24
|
+
export var UDExImageGridTickerVariable;
|
|
25
|
+
(function (UDExImageGridTickerVariable) {
|
|
26
|
+
UDExImageGridTickerVariable["itemGaps"] = "--udex-image-grid-ticker-item-gaps";
|
|
27
|
+
UDExImageGridTickerVariable["itemWidth"] = "--udex-image-grid-ticker-item-width";
|
|
28
|
+
})(UDExImageGridTickerVariable || (UDExImageGridTickerVariable = {}));
|
|
29
|
+
/**
|
|
30
|
+
* @class
|
|
31
|
+
*
|
|
32
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
33
|
+
*
|
|
34
|
+
*
|
|
35
|
+
* <h3>Usage</h3>
|
|
36
|
+
*
|
|
37
|
+
* For the <code>udex-image-grid-ticker</code>
|
|
38
|
+
* <h3>ES6 Module Import</h3>
|
|
39
|
+
*
|
|
40
|
+
* <code>import "@sapudex/web-components/dist/ImageGridTicker.js";</code>
|
|
41
|
+
*
|
|
42
|
+
* @constructor
|
|
43
|
+
* @extends UI5Element
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
let UDExImageGridTicker = UDExImageGridTicker_1 = class UDExImageGridTicker extends UI5Element {
|
|
47
|
+
constructor() {
|
|
48
|
+
super();
|
|
49
|
+
/**
|
|
50
|
+
* Grayscale mode enhances visual harmony and can be used for minimal,
|
|
51
|
+
* professional layouts or to de-emphasize logos.
|
|
52
|
+
*
|
|
53
|
+
* @default false
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
this.grayscale = false;
|
|
57
|
+
/**
|
|
58
|
+
* Indicates whether the image grid ticker is scrollable.
|
|
59
|
+
*
|
|
60
|
+
* @default false
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
this._isScrollable = false;
|
|
64
|
+
/**
|
|
65
|
+
* Indicates whether the screen size is small.
|
|
66
|
+
*
|
|
67
|
+
* @default false
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
this._isSmallScreen = false;
|
|
71
|
+
/**
|
|
72
|
+
* Indicates whether the animation is paused.
|
|
73
|
+
*
|
|
74
|
+
* @default false
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
77
|
+
this._isPaused = false;
|
|
78
|
+
/**
|
|
79
|
+
* Indicates focus in state.
|
|
80
|
+
*
|
|
81
|
+
* @default false
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
this._isFocusIn = false;
|
|
85
|
+
/**
|
|
86
|
+
* Indicates mobile view.
|
|
87
|
+
*
|
|
88
|
+
* @default false
|
|
89
|
+
* @private
|
|
90
|
+
*/
|
|
91
|
+
this._isMobileView = false;
|
|
92
|
+
this._isPlayBtnClicked = false;
|
|
93
|
+
this._isMouseDown = false;
|
|
94
|
+
this._isMobileView = !this.isAtLeastBreakpointM;
|
|
95
|
+
this._handleResizeBound = this._handleResize.bind(this);
|
|
96
|
+
}
|
|
97
|
+
onAfterRendering() {
|
|
98
|
+
if (this._isMobileView) {
|
|
99
|
+
this._handleMobileView();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
this._handleDesktopView();
|
|
103
|
+
}
|
|
104
|
+
onEnterDOM() {
|
|
105
|
+
ResizeHandler.register(this, this._handleResizeBound);
|
|
106
|
+
if (isDesktop()) {
|
|
107
|
+
this.setAttribute("desktop", "");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
onExitDOM() {
|
|
111
|
+
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
112
|
+
}
|
|
113
|
+
_handleResize() {
|
|
114
|
+
this._isMobileView = !this.isAtLeastBreakpointM;
|
|
115
|
+
this._checkScrollable();
|
|
116
|
+
}
|
|
117
|
+
_checkScrollable() {
|
|
118
|
+
if (!this.grid || !this.track || this._isMobileView) {
|
|
119
|
+
this._isScrollable = false;
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const { width: itemWidth, gaps: itemGaps } = this.itemDimensions;
|
|
123
|
+
const totalItemWidth = itemWidth + itemGaps;
|
|
124
|
+
const totalWidth = this.items.length * totalItemWidth;
|
|
125
|
+
this._isScrollable = totalWidth > this.grid.offsetWidth;
|
|
126
|
+
}
|
|
127
|
+
_startAnimation() {
|
|
128
|
+
if (this._isScrollable && !this._isPlayBtnClicked && !this._isMobileView) {
|
|
129
|
+
this._isPaused = false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
_stopAnimation() {
|
|
133
|
+
if (this._isScrollable && !this._isMobileView) {
|
|
134
|
+
this._isPaused = true;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
_toggleAnimation() {
|
|
138
|
+
this._isPlayBtnClicked = !this._isPlayBtnClicked;
|
|
139
|
+
if (this._isPaused) {
|
|
140
|
+
this._startAnimation();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this._stopAnimation();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
_onFocusIn() {
|
|
147
|
+
if (this._isMouseDown || !this._isScrollable) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this._isFocusIn = true;
|
|
151
|
+
this._stopAnimation();
|
|
152
|
+
const focusedItem = this.trackItems[this.focusedIndex];
|
|
153
|
+
const isLastItem = this.focusedIndex === this.trackItems.length - 1;
|
|
154
|
+
const { right, left } = focusedItem.getBoundingClientRect();
|
|
155
|
+
const windowWidth = window.innerWidth || document.documentElement.clientWidth;
|
|
156
|
+
const isPartiallyVisible = right > 0 && left < windowWidth;
|
|
157
|
+
if (isPartiallyVisible) {
|
|
158
|
+
focusedItem.scrollIntoView({
|
|
159
|
+
behavior: "smooth",
|
|
160
|
+
block: "nearest",
|
|
161
|
+
inline: "center",
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (isLastItem) {
|
|
165
|
+
this._focusLastItem();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
_onFocusOut() {
|
|
169
|
+
this._isFocusIn = false;
|
|
170
|
+
this._startAnimation();
|
|
171
|
+
}
|
|
172
|
+
_onKeyDown(e) {
|
|
173
|
+
if (isLeft(e) || isRight(e)) {
|
|
174
|
+
e.preventDefault();
|
|
175
|
+
const direction = (isLeft(e) && !this.isRtl) || (isRight(e) && this.isRtl) ? -1 : 1;
|
|
176
|
+
const index = this.focusedIndex + direction;
|
|
177
|
+
if (index >= 0 && index < this.trackItems.length) {
|
|
178
|
+
this._focusItem(this.trackItems[index]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
_onMouseDown() {
|
|
183
|
+
this._isMouseDown = true;
|
|
184
|
+
}
|
|
185
|
+
_onMouseUp() {
|
|
186
|
+
this._isMouseDown = false;
|
|
187
|
+
}
|
|
188
|
+
_focusLastItem() {
|
|
189
|
+
const lastItem = this.trackItems[this.items.length - 1];
|
|
190
|
+
this._focusItem(lastItem);
|
|
191
|
+
lastItem.scrollIntoView({
|
|
192
|
+
behavior: "smooth",
|
|
193
|
+
block: "nearest",
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
_handleMobileView() {
|
|
197
|
+
this._isScrollable = false;
|
|
198
|
+
this._stopAnimation();
|
|
199
|
+
}
|
|
200
|
+
_handleDesktopView() {
|
|
201
|
+
this._handleDirection();
|
|
202
|
+
this._checkScrollable();
|
|
203
|
+
if (this._isScrollable && !this._isPaused && !this._isMobileView) {
|
|
204
|
+
this._startAnimation();
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
this._stopAnimation();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
_focusItem(item) {
|
|
211
|
+
const link = item.shadowRoot?.querySelector(".udex-image-grid-ticker-item__link");
|
|
212
|
+
link.focus();
|
|
213
|
+
}
|
|
214
|
+
_handleDirection() {
|
|
215
|
+
const directionStyles = window.getComputedStyle(this).getPropertyValue("direction");
|
|
216
|
+
this._direction = directionStyles || "ltr";
|
|
217
|
+
}
|
|
218
|
+
_onPlayButtonClick() {
|
|
219
|
+
this._toggleAnimation();
|
|
220
|
+
this._firePlayButtonClickEvent();
|
|
221
|
+
}
|
|
222
|
+
_firePlayButtonClickEvent() {
|
|
223
|
+
this.fireDecoratorEvent("play-button-click", {
|
|
224
|
+
isPaused: this._isPaused,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
_getPropertyValues(variable) {
|
|
228
|
+
const itemStyles = window.getComputedStyle(this.items[0]);
|
|
229
|
+
return parseInt(itemStyles.getPropertyValue(variable));
|
|
230
|
+
}
|
|
231
|
+
get itemDimensions() {
|
|
232
|
+
const width = this._getPropertyValues(UDExImageGridTickerVariable.itemWidth);
|
|
233
|
+
const gaps = this._getPropertyValues(UDExImageGridTickerVariable.itemGaps) * 2;
|
|
234
|
+
return { width, gaps };
|
|
235
|
+
}
|
|
236
|
+
get trackItems() {
|
|
237
|
+
return Array.from(this.track.children);
|
|
238
|
+
}
|
|
239
|
+
get focusedIndex() {
|
|
240
|
+
return this.trackItems.findIndex(item => item.matches(":focus"));
|
|
241
|
+
}
|
|
242
|
+
get isAtLeastBreakpointM() {
|
|
243
|
+
return BreakpointUtils.isAtLeast("M");
|
|
244
|
+
}
|
|
245
|
+
get track() {
|
|
246
|
+
return this.shadowRoot?.querySelector(".udex-image-grid-ticker__track");
|
|
247
|
+
}
|
|
248
|
+
get grid() {
|
|
249
|
+
return this.shadowRoot?.querySelector(".udex-image-grid-ticker");
|
|
250
|
+
}
|
|
251
|
+
get isRtl() {
|
|
252
|
+
return this._direction === "rtl";
|
|
253
|
+
}
|
|
254
|
+
get playBtnTooltipText() {
|
|
255
|
+
return this._isPaused
|
|
256
|
+
? UDExImageGridTicker_1.i18nBundle.getText(PLAY_BUTTON_ACCESSIBLE_NAME)
|
|
257
|
+
: UDExImageGridTicker_1.i18nBundle.getText(PAUSE_BUTTON_ACCESSIBLE_NAME);
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
__decorate([
|
|
261
|
+
slot({ type: HTMLElement, "default": true, individualSlots: true })
|
|
262
|
+
], UDExImageGridTicker.prototype, "items", void 0);
|
|
263
|
+
__decorate([
|
|
264
|
+
property({ type: Boolean })
|
|
265
|
+
], UDExImageGridTicker.prototype, "grayscale", void 0);
|
|
266
|
+
__decorate([
|
|
267
|
+
property({ type: Boolean })
|
|
268
|
+
], UDExImageGridTicker.prototype, "_isScrollable", void 0);
|
|
269
|
+
__decorate([
|
|
270
|
+
property({ type: Boolean })
|
|
271
|
+
], UDExImageGridTicker.prototype, "_isSmallScreen", void 0);
|
|
272
|
+
__decorate([
|
|
273
|
+
property({ type: Boolean })
|
|
274
|
+
], UDExImageGridTicker.prototype, "_isPaused", void 0);
|
|
275
|
+
__decorate([
|
|
276
|
+
property({ type: Boolean })
|
|
277
|
+
], UDExImageGridTicker.prototype, "_isFocusIn", void 0);
|
|
278
|
+
__decorate([
|
|
279
|
+
property({ type: Boolean })
|
|
280
|
+
], UDExImageGridTicker.prototype, "_isMobileView", void 0);
|
|
281
|
+
__decorate([
|
|
282
|
+
property({ type: String })
|
|
283
|
+
], UDExImageGridTicker.prototype, "_direction", void 0);
|
|
284
|
+
__decorate([
|
|
285
|
+
i18n("@sapudex/web-components")
|
|
286
|
+
], UDExImageGridTicker, "i18nBundle", void 0);
|
|
287
|
+
UDExImageGridTicker = UDExImageGridTicker_1 = __decorate([
|
|
288
|
+
customElement({
|
|
289
|
+
tag: "udex-image-grid-ticker",
|
|
290
|
+
renderer: jsxRenderer,
|
|
291
|
+
styles: ImageGridTickerCss,
|
|
292
|
+
template: ImageGridTickerTemplate,
|
|
293
|
+
dependencies: [ImageGridTickerItem],
|
|
294
|
+
})
|
|
295
|
+
/**
|
|
296
|
+
* Fired event when the user click on a play/paused button.
|
|
297
|
+
*
|
|
298
|
+
* @public
|
|
299
|
+
*/
|
|
300
|
+
,
|
|
301
|
+
event("play-button-click", { bubbles: true })
|
|
302
|
+
], UDExImageGridTicker);
|
|
303
|
+
UDExImageGridTicker.define();
|
|
304
|
+
export default UDExImageGridTicker;
|
|
305
|
+
//# sourceMappingURL=ImageGridTicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageGridTicker.js","sourceRoot":"","sources":["../src/ImageGridTicker.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/Device.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { PAUSE_BUTTON_ACCESSIBLE_NAME, PLAY_BUTTON_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport type UDExImageGridTickerItem from \"./ImageGridTickerItem.js\";\nimport ImageGridTickerItem from \"./ImageGridTickerItem.js\";\nimport ImageGridTickerTemplate from \"./ImageGridTickerTemplate.js\";\n\n// Styles\nimport ImageGridTickerCss from \"./generated/themes/ImageGridTicker.css.js\";\n\nexport enum UDExImageGridTickerVariable {\n itemGaps = \"--udex-image-grid-ticker-item-gaps\",\n itemWidth = \"--udex-image-grid-ticker-item-width\",\n}\n\ntype UDExImageGridTickerPlayBtnClickEventDetail = {\n isPaused: boolean;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-image-grid-ticker</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ImageGridTicker.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-image-grid-ticker\",\n renderer: jsxRenderer,\n styles: ImageGridTickerCss,\n template: ImageGridTickerTemplate,\n dependencies: [ImageGridTickerItem],\n})\n\n/**\n * Fired event when the user click on a play/paused button.\n *\n * @public\n */\n@event(\"play-button-click\", { bubbles: true })\n\nclass UDExImageGridTicker extends UI5Element {\n eventDetails!: {\n \"play-button-click\": UDExImageGridTickerPlayBtnClickEventDetail;\n };\n\n /**\n * Slot for image grid ticker items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n items!: Array<UDExImageGridTickerItem>;\n\n /**\n * Grayscale mode enhances visual harmony and can be used for minimal,\n * professional layouts or to de-emphasize logos.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n grayscale = false;\n\n /**\n * Indicates whether the image grid ticker is scrollable.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isScrollable = false;\n\n /**\n * Indicates whether the screen size is small.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isSmallScreen = false;\n\n /**\n * Indicates whether the animation is paused.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isPaused = false;\n\n /**\n * Indicates focus in state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isFocusIn: boolean = false;\n\n /**\n * Indicates mobile view.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isMobileView: boolean = false;\n\n /**\n * Defines direction of the component.\n *\n * @default undefined\n * @private\n */\n @property({ type: String })\n _direction!: string;\n\n _isPlayBtnClicked: boolean = false;\n _isMouseDown: boolean = false;\n _handleResizeBound: ResizeObserverCallback;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._isMobileView = !this.isAtLeastBreakpointM;\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onAfterRendering(): void {\n if (this._isMobileView) {\n this._handleMobileView();\n return;\n }\n\n this._handleDesktopView();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n this._isMobileView = !this.isAtLeastBreakpointM;\n this._checkScrollable();\n }\n\n _checkScrollable(): void {\n if (!this.grid || !this.track || this._isMobileView) {\n this._isScrollable = false;\n return;\n }\n\n const { width: itemWidth, gaps: itemGaps } = this.itemDimensions;\n const totalItemWidth = itemWidth + itemGaps;\n const totalWidth = this.items.length * totalItemWidth;\n\n this._isScrollable = totalWidth > this.grid.offsetWidth;\n }\n\n _startAnimation(): void {\n if (this._isScrollable && !this._isPlayBtnClicked && !this._isMobileView) {\n this._isPaused = false;\n }\n }\n\n _stopAnimation(): void {\n if (this._isScrollable && !this._isMobileView) {\n this._isPaused = true;\n }\n }\n\n _toggleAnimation(): void {\n this._isPlayBtnClicked = !this._isPlayBtnClicked;\n if (this._isPaused) {\n this._startAnimation();\n } else {\n this._stopAnimation();\n }\n }\n\n _onFocusIn(): void {\n if (this._isMouseDown || !this._isScrollable) {\n return;\n }\n\n this._isFocusIn = true;\n this._stopAnimation();\n\n const focusedItem = this.trackItems[this.focusedIndex];\n const isLastItem = this.focusedIndex === this.trackItems.length - 1;\n const { right, left } = focusedItem.getBoundingClientRect();\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n const isPartiallyVisible = right > 0 && left < windowWidth;\n\n if (isPartiallyVisible) {\n focusedItem.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"center\",\n });\n }\n\n if (isLastItem) {\n this._focusLastItem();\n }\n }\n\n _onFocusOut(): void {\n this._isFocusIn = false;\n this._startAnimation();\n }\n\n _onKeyDown(e: KeyboardEvent): void {\n if (isLeft(e) || isRight(e)) {\n e.preventDefault();\n const direction = (isLeft(e) && !this.isRtl) || (isRight(e) && this.isRtl) ? -1 : 1;\n const index = this.focusedIndex + direction;\n\n if (index >= 0 && index < this.trackItems.length) {\n this._focusItem(this.trackItems[index]);\n }\n }\n }\n\n _onMouseDown(): void {\n this._isMouseDown = true;\n }\n\n _onMouseUp(): void {\n this._isMouseDown = false;\n }\n\n _focusLastItem(): void {\n const lastItem = this.trackItems[this.items.length - 1];\n this._focusItem(lastItem);\n lastItem.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n });\n }\n\n _handleMobileView(): void {\n this._isScrollable = false;\n this._stopAnimation();\n }\n\n _handleDesktopView(): void {\n this._handleDirection();\n this._checkScrollable();\n if (this._isScrollable && !this._isPaused && !this._isMobileView) {\n this._startAnimation();\n } else {\n this._stopAnimation();\n }\n }\n\n _focusItem(item: HTMLElement): void {\n const link = item.shadowRoot?.querySelector(\".udex-image-grid-ticker-item__link\") as HTMLElement;\n link.focus();\n }\n\n _handleDirection(): void {\n const directionStyles = window.getComputedStyle(this).getPropertyValue(\"direction\");\n this._direction = directionStyles || \"ltr\";\n }\n\n _onPlayButtonClick(): void {\n this._toggleAnimation();\n this._firePlayButtonClickEvent();\n }\n\n _firePlayButtonClickEvent(): void {\n this.fireDecoratorEvent(\"play-button-click\", {\n isPaused: this._isPaused,\n });\n }\n\n _getPropertyValues(variable: string): number {\n const itemStyles = window.getComputedStyle(this.items[0]);\n return parseInt(itemStyles.getPropertyValue(variable));\n }\n\n get itemDimensions(): { width: number; gaps: number } {\n const width = this._getPropertyValues(UDExImageGridTickerVariable.itemWidth);\n const gaps = this._getPropertyValues(UDExImageGridTickerVariable.itemGaps) * 2;\n return { width, gaps };\n }\n\n get trackItems(): HTMLElement[] {\n return Array.from(this.track.children) as HTMLElement[];\n }\n\n get focusedIndex(): number {\n return this.trackItems.findIndex(item => item.matches(\":focus\"));\n }\n\n get isAtLeastBreakpointM(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get track(): HTMLElement {\n return this.shadowRoot?.querySelector(\".udex-image-grid-ticker__track\") as HTMLElement;\n }\n\n get grid(): HTMLElement {\n return this.shadowRoot?.querySelector(\".udex-image-grid-ticker\") as HTMLElement;\n }\n\n get isRtl(): boolean {\n return this._direction === \"rtl\";\n }\n\n get playBtnTooltipText(): string {\n return this._isPaused\n ? UDExImageGridTicker.i18nBundle.getText(PLAY_BUTTON_ACCESSIBLE_NAME)\n : UDExImageGridTicker.i18nBundle.getText(PAUSE_BUTTON_ACCESSIBLE_NAME);\n }\n}\n\nUDExImageGridTicker.define();\n\nexport default UDExImageGridTicker;\nexport type { UDExImageGridTickerPlayBtnClickEventDetail };\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
/**
|
|
3
|
+
* @class
|
|
4
|
+
*
|
|
5
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* <h3>Usage</h3>
|
|
9
|
+
*
|
|
10
|
+
* For the <code>udex-image-grid-ticker-item</code>
|
|
11
|
+
* <h3>ES6 Module Import</h3>
|
|
12
|
+
*
|
|
13
|
+
* <code>import "@sapudex/web-components/dist/ImageGridTickerItem.js";</code>
|
|
14
|
+
*
|
|
15
|
+
* @constructor
|
|
16
|
+
* @extends UI5Element
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
declare class UDExImageGridTickerItem extends UI5Element {
|
|
20
|
+
/**
|
|
21
|
+
* Defines the source URL
|
|
22
|
+
*
|
|
23
|
+
* @default ""
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
src: string;
|
|
27
|
+
/**
|
|
28
|
+
* Defines image alt text
|
|
29
|
+
*
|
|
30
|
+
* @default undefined
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
alt?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Defines tooltip on hover
|
|
36
|
+
*
|
|
37
|
+
* @default undefined
|
|
38
|
+
* @public
|
|
39
|
+
*/
|
|
40
|
+
tooltip?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Defines link URL
|
|
43
|
+
*
|
|
44
|
+
* @default undefined
|
|
45
|
+
* @public
|
|
46
|
+
*/
|
|
47
|
+
href?: string;
|
|
48
|
+
onEnterDOM(): void;
|
|
49
|
+
}
|
|
50
|
+
export default UDExImageGridTickerItem;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
|
+
import { isDesktop } from "@ui5/webcomponents-base/Device.js";
|
|
9
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
12
|
+
import ImageGridTickerItemTemplate from "./ImageGridTickerItemTemplate.js";
|
|
13
|
+
// Styles
|
|
14
|
+
import ImageGridTickerItemCss from "./generated/themes/ImageGridTickerItem.css.js";
|
|
15
|
+
/**
|
|
16
|
+
* @class
|
|
17
|
+
*
|
|
18
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
* <h3>Usage</h3>
|
|
22
|
+
*
|
|
23
|
+
* For the <code>udex-image-grid-ticker-item</code>
|
|
24
|
+
* <h3>ES6 Module Import</h3>
|
|
25
|
+
*
|
|
26
|
+
* <code>import "@sapudex/web-components/dist/ImageGridTickerItem.js";</code>
|
|
27
|
+
*
|
|
28
|
+
* @constructor
|
|
29
|
+
* @extends UI5Element
|
|
30
|
+
* @public
|
|
31
|
+
*/
|
|
32
|
+
let UDExImageGridTickerItem = class UDExImageGridTickerItem extends UI5Element {
|
|
33
|
+
onEnterDOM() {
|
|
34
|
+
if (isDesktop()) {
|
|
35
|
+
this.setAttribute("desktop", "");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
__decorate([
|
|
40
|
+
property({ type: String })
|
|
41
|
+
], UDExImageGridTickerItem.prototype, "src", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
property({ type: String })
|
|
44
|
+
], UDExImageGridTickerItem.prototype, "alt", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
property({ type: String })
|
|
47
|
+
], UDExImageGridTickerItem.prototype, "tooltip", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
property({ type: String })
|
|
50
|
+
], UDExImageGridTickerItem.prototype, "href", void 0);
|
|
51
|
+
UDExImageGridTickerItem = __decorate([
|
|
52
|
+
customElement({
|
|
53
|
+
tag: "udex-image-grid-ticker-item",
|
|
54
|
+
renderer: jsxRenderer,
|
|
55
|
+
styles: ImageGridTickerItemCss,
|
|
56
|
+
template: ImageGridTickerItemTemplate,
|
|
57
|
+
})
|
|
58
|
+
], UDExImageGridTickerItem);
|
|
59
|
+
UDExImageGridTickerItem.define();
|
|
60
|
+
export default UDExImageGridTickerItem;
|
|
61
|
+
//# sourceMappingURL=ImageGridTickerItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageGridTickerItem.js","sourceRoot":"","sources":["../src/ImageGridTickerItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,2BAA2B,MAAM,kCAAkC,CAAC;AAE3E,SAAS;AACT,OAAO,sBAAsB,MAAM,+CAA+C,CAAC;AAEnF;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,UAAU;IAqC9C,UAAU;QACR,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF,CAAA;AAlCG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACZ;AASb;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACZ;AASb;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACR;AASjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACX;AAnCZ,uBAAuB;IAP5B,aAAa,CAAC;QACb,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,2BAA2B;KACtC,CAAC;GAEI,uBAAuB,CA0C5B;AAED,uBAAuB,CAAC,MAAM,EAAE,CAAC;AAEjC,eAAe,uBAAuB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/Device.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport ImageGridTickerItemTemplate from \"./ImageGridTickerItemTemplate.js\";\n\n// Styles\nimport ImageGridTickerItemCss from \"./generated/themes/ImageGridTickerItem.css.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-image-grid-ticker-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ImageGridTickerItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-image-grid-ticker-item\",\n renderer: jsxRenderer,\n styles: ImageGridTickerItemCss,\n template: ImageGridTickerItemTemplate,\n})\n\nclass UDExImageGridTickerItem extends UI5Element {\n /**\n * Defines the source URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n src!: string;\n\n /**\n * Defines image alt text\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n alt?: string;\n\n /**\n * Defines tooltip on hover\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n tooltip?: string;\n\n /**\n * Defines link URL\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n href?: string;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n}\n\nUDExImageGridTickerItem.define();\n\nexport default UDExImageGridTickerItem;\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
export default function ImageGridTickerItemTemplate() {
|
|
3
|
+
const rootClass = "udex-image-grid-ticker-item";
|
|
4
|
+
const img = (_jsx("img", { class: `${rootClass}__img`, part: "grid-image", src: this.src, alt: this.alt, title: this.tooltip }));
|
|
5
|
+
return (_jsx("div", { class: rootClass, children: this.href && this.href.length > 0
|
|
6
|
+
? _jsx("a", { class: `${rootClass}__link`, href: this.href, title: this.tooltip, children: img })
|
|
7
|
+
: img }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ImageGridTickerItemTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageGridTickerItemTemplate.js","sourceRoot":"","sources":["../src/ImageGridTickerItemTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,2BAA2B;IACjD,MAAM,SAAS,GAAG,6BAA6B,CAAC;IAChD,MAAM,GAAG,GAAG,CACV,cACE,KAAK,EAAE,GAAG,SAAS,OAAO,EAC1B,IAAI,EAAC,YAAY,EACjB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,KAAK,EAAE,IAAI,CAAC,OAAO,GACnB,CACH,CAAC;IAEF,OAAO,CACL,cAAK,KAAK,EAAE,SAAS,YAClB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAChC,CAAC,CAAC,YACA,KAAK,EAAE,GAAG,SAAS,QAAQ,EAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,OAAO,YAClB,GAAG,GACF;YACJ,CAAC,CAAC,GAAG,GAEH,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type ImageGridTickerItem from \"./ImageGridTickerItem.js\";\n\nexport default function ImageGridTickerItemTemplate(this: ImageGridTickerItem) {\n const rootClass = \"udex-image-grid-ticker-item\";\n const img = (\n <img\n class={`${rootClass}__img`}\n part=\"grid-image\"\n src={this.src}\n alt={this.alt}\n title={this.tooltip}\n />\n );\n\n return (\n <div class={rootClass}>\n {this.href && this.href.length > 0\n ? <a\n class={`${rootClass}__link`}\n href={this.href}\n title={this.tooltip}>\n {img}\n </a>\n : img\n }\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
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
|
+
export default function ImageGridTickerTemplate() {
|
|
8
|
+
const rootClass = "udex-image-grid-ticker";
|
|
9
|
+
const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;
|
|
10
|
+
const btnIcon = this._isPaused ? playIcon : pauseIcon;
|
|
11
|
+
return (_jsxs("div", { class: rootClass, children: [this._isScrollable &&
|
|
12
|
+
_jsx("div", { className: `${rootClass}__play-button-holder`, children: _jsx(UDExButton, { class: `${rootClass}__play-button`, icon: btnIcon, design: UDExButtonDesign.Invisible, onClick: this._onPlayButtonClick, tooltip: this.playBtnTooltipText }) }), _jsx("div", { className: `${rootClass}__track-holder`, children: _jsx("div", { className: `${rootClass}__track-wrapper`, children: _jsx("div", { className: `${rootClass}__track`, onMouseEnter: this._stopAnimation, onMouseLeave: this._startAnimation, onFocusIn: this._onFocusIn, onFocusOut: this._onFocusOut, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onMouseUp: this._onMouseUp, children: items.map(item => _jsx(ImageGridTickerItem, { src: item.src, alt: item.alt, tooltip: item.tooltip, href: item.href })) }) }) })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ImageGridTickerTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageGridTickerTemplate.js","sourceRoot":"","sources":["../src/ImageGridTickerTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,QAAQ,MAAM,uCAAuC,CAAC;AAC7D,OAAO,SAAS,MAAM,wCAAwC,CAAC;AAE/D,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC7C,MAAM,SAAS,GAAG,wBAAwB,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1H,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtD,OAAO,CACL,eAAK,KAAK,EAAE,SAAS,aAClB,IAAI,CAAC,aAAa;gBACjB,cAAK,SAAS,EAAE,GAAG,SAAS,sBAAsB,YAChD,KAAC,UAAU,IACT,KAAK,EAAE,GAAG,SAAS,eAAe,EAClC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAClC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,OAAO,EAAE,IAAI,CAAC,kBAAkB,GACrB,GACT,EAER,cAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,YAC1C,cAAK,SAAS,EAAE,GAAG,SAAS,iBAAiB,YAC3C,cACE,SAAS,EAAE,GAAG,SAAS,SAAS,EAChC,YAAY,EAAE,IAAI,CAAC,cAAc,EACjC,YAAY,EAAE,IAAI,CAAC,eAAe,EAClC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,YACzB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAChB,KAAC,mBAAmB,IAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,GACK,CACvB,GACG,GACF,GACF,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type ImageGridTicker from \"./ImageGridTicker.js\";\nimport ImageGridTickerItem from \"./ImageGridTickerItem.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport playIcon from \"@ui5/webcomponents-icons/dist/play.js\";\nimport pauseIcon from \"@ui5/webcomponents-icons/dist/pause.js\";\n\nexport default function ImageGridTickerTemplate(this: ImageGridTicker) {\n const rootClass = \"udex-image-grid-ticker\";\n const items = this._isScrollable && !this._isMobileView && !this._isFocusIn ? [...this.items, ...this.items] : this.items;\n const btnIcon = this._isPaused ? playIcon : pauseIcon;\n\n return (\n <div class={rootClass}>\n {this._isScrollable &&\n <div className={`${rootClass}__play-button-holder`}>\n <UDExButton\n class={`${rootClass}__play-button`}\n icon={btnIcon}\n design={UDExButtonDesign.Invisible}\n onClick={this._onPlayButtonClick}\n tooltip={this.playBtnTooltipText}>\n </UDExButton>\n </div>\n }\n <div className={`${rootClass}__track-holder`}>\n <div className={`${rootClass}__track-wrapper`}>\n <div\n className={`${rootClass}__track`}\n onMouseEnter={this._stopAnimation}\n onMouseLeave={this._startAnimation}\n onFocusIn={this._onFocusIn}\n onFocusOut={this._onFocusOut}\n onKeyDown={this._onKeyDown}\n onMouseDown={this._onMouseDown}\n onMouseUp={this._onMouseUp}>\n {items.map(item =>\n <ImageGridTickerItem\n src={item.src}\n alt={item.alt}\n tooltip={item.tooltip}\n href={item.href}>\n </ImageGridTickerItem>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n"]}
|
package/dist/SelectBox.js
CHANGED
|
@@ -30,6 +30,7 @@ import UDExButton from "./Button.js";
|
|
|
30
30
|
import UDExValueState from "./types/common.js";
|
|
31
31
|
import UDExStatusMessage from "./StatusMessage.js";
|
|
32
32
|
import UDExControlButton from "./ControlButton.js";
|
|
33
|
+
import UDExBusyIndicator from "./BusyIndicator.js";
|
|
33
34
|
import { Placement } from "./types/Dropdown.js";
|
|
34
35
|
import { UDExPopoverPart } from "./types/SearchableListBase.js";
|
|
35
36
|
import UDExTagGroup from "./TagGroup.js";
|
|
@@ -549,6 +550,7 @@ UDExSelectBox = UDExSelectBox_1 = __decorate([
|
|
|
549
550
|
UDExStatusMessage,
|
|
550
551
|
UDExControlButton,
|
|
551
552
|
UDExTagGroup,
|
|
553
|
+
UDExBusyIndicator,
|
|
552
554
|
UDExListItem,
|
|
553
555
|
UDExList,
|
|
554
556
|
UDExSearch,
|