@sapudex/web-components 2.19.0 → 2.20.1
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/cypress/specs/AccordionItem.cy.tsx +6 -2
- package/cypress/specs/Footer.cy.tsx +2 -1
- package/dist/Accordion.d.ts +1 -0
- package/dist/Accordion.js +7 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +8 -0
- package/dist/AccordionItem.js +11 -0
- package/dist/AccordionItem.js.map +1 -1
- package/dist/AccordionItemTemplate.js +2 -2
- package/dist/AccordionItemTemplate.js.map +1 -1
- package/dist/AccordionTemplate.js +2 -2
- package/dist/AccordionTemplate.js.map +1 -1
- package/dist/Carousel.d.ts +29 -2
- package/dist/Carousel.js +34 -6
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +2 -2
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/DatePicker.d.ts +4 -4
- package/dist/DatePicker.js +3 -10
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePickerPopoverTemplate.d.ts +2 -0
- package/dist/DatePickerPopoverTemplate.js +13 -0
- package/dist/DatePickerPopoverTemplate.js.map +1 -0
- package/dist/DatePickerTemplate.d.ts +2 -0
- package/dist/DatePickerTemplate.js +7 -0
- package/dist/DatePickerTemplate.js.map +1 -0
- package/dist/MediaPlayerTemplate.js +2 -2
- package/dist/MediaPlayerTemplate.js.map +1 -1
- package/dist/MessageStripTemplate.js +3 -1
- package/dist/MessageStripTemplate.js.map +1 -1
- package/dist/RatingBarTemplate.js +1 -1
- package/dist/RatingBarTemplate.js.map +1 -1
- package/dist/Review.js +3 -6
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.d.ts +1 -1
- package/dist/ReviewItem.js +15 -18
- package/dist/ReviewItem.js.map +1 -1
- package/dist/ReviewItemTemplate.d.ts +2 -0
- package/dist/ReviewItemTemplate.js +10 -0
- package/dist/ReviewItemTemplate.js.map +1 -0
- package/dist/ReviewTemplate.d.ts +2 -0
- package/dist/ReviewTemplate.js +9 -0
- package/dist/ReviewTemplate.js.map +1 -0
- package/dist/TileTemplate.js +1 -1
- package/dist/TileTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-EAcC3wZN.js → InputSuggestions-yR1p8cXL.js} +2 -2
- package/dist/assets/{ListItemStandardExpandableTextTemplate-Bb5Y2JOR.js → ListItemStandardExpandableTextTemplate-BovnAV24.js} +3 -3
- package/dist/assets/{bundle.esm-BXDoCHfu.js → bundle.esm-C7AybWk0.js} +207 -207
- package/dist/assets/parameters-bundle.css-195ykfle.js +2 -0
- package/dist/assets/parameters-bundle.css-2XlTf-8J.js +2 -0
- package/dist/assets/parameters-bundle.css-7-HTnP5E.js +2 -0
- package/dist/assets/parameters-bundle.css-B7OzyC0l.js +2 -0
- package/dist/assets/parameters-bundle.css-BJjePPyo.js +2 -0
- package/dist/assets/parameters-bundle.css-BVsx_KaG.js +2 -0
- package/dist/assets/parameters-bundle.css-BbOftqiJ.js +2 -0
- package/dist/assets/parameters-bundle.css-BpraBfJY.js +2 -0
- package/dist/assets/parameters-bundle.css-Btm09-js.js +2 -0
- package/dist/assets/parameters-bundle.css-BtvY__7H.js +2 -0
- package/dist/assets/parameters-bundle.css-CAs_WpVc.js +2 -0
- package/dist/assets/parameters-bundle.css-Cqg5HiU_.js +2 -0
- package/dist/assets/parameters-bundle.css-DIUy2Etb.js +2 -0
- package/dist/assets/parameters-bundle.css-Dn173v0e.js +2 -0
- package/dist/assets/parameters-bundle.css-QEiUG73s.js +2 -0
- package/dist/assets/parameters-bundle.css-VUmjvCcs.js +2 -0
- package/dist/css/themes/Quote.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +218 -146
- package/dist/custom-elements.json +202 -131
- package/dist/generated/themes/Quote.css.d.ts +1 -1
- package/dist/generated/themes/Quote.css.js +1 -1
- package/dist/generated/themes/Quote.css.js.map +1 -1
- 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/vscode.html-custom-data.json +24 -5
- package/dist/web-types.json +41 -5
- package/package.json +8 -8
- package/src/Accordion.ts +9 -1
- package/src/AccordionItem.ts +10 -0
- package/src/AccordionItemTemplate.tsx +2 -2
- package/src/AccordionTemplate.tsx +3 -2
- package/src/Carousel.ts +36 -6
- package/src/CarouselTemplate.tsx +4 -0
- package/src/DatePicker.ts +7 -11
- package/src/DatePickerPopoverTemplate.tsx +35 -0
- package/src/DatePickerTemplate.tsx +27 -0
- package/src/MediaPlayerTemplate.tsx +20 -19
- package/src/MessageStripTemplate.tsx +4 -2
- package/src/RatingBarTemplate.tsx +1 -0
- package/src/Review.ts +3 -6
- package/src/ReviewItem.ts +15 -19
- package/src/ReviewItemTemplate.tsx +49 -0
- package/src/ReviewTemplate.tsx +69 -0
- package/src/TileTemplate.tsx +1 -0
- package/src/generated/themes/Quote.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/themes/Quote.css +7 -2
- package/dist/assets/parameters-bundle.css-7tmaWxIc.js +0 -2
- package/dist/assets/parameters-bundle.css-BERBdAGd.js +0 -2
- package/dist/assets/parameters-bundle.css-B_2Jldx4.js +0 -2
- package/dist/assets/parameters-bundle.css-BbhFHnRW.js +0 -2
- package/dist/assets/parameters-bundle.css-Bg4Huwh4.js +0 -2
- package/dist/assets/parameters-bundle.css-BwKgmVCr.js +0 -2
- package/dist/assets/parameters-bundle.css-C759-AfS.js +0 -2
- package/dist/assets/parameters-bundle.css-CCDcKh9J.js +0 -2
- package/dist/assets/parameters-bundle.css-COmXsTqR.js +0 -2
- package/dist/assets/parameters-bundle.css-CPZYPVEO.js +0 -2
- package/dist/assets/parameters-bundle.css-C_z8R1zV.js +0 -2
- package/dist/assets/parameters-bundle.css-CuV0KqCS.js +0 -2
- package/dist/assets/parameters-bundle.css-DT8OC7CO.js +0 -2
- package/dist/assets/parameters-bundle.css-Df2zY3XY.js +0 -2
- package/dist/assets/parameters-bundle.css-H0NCnWYS.js +0 -2
- package/dist/assets/parameters-bundle.css-pC6uofhy.js +0 -2
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +0 -10
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +0 -1
- package/dist/generated/templates/DatePickerTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/DatePickerTemplate.lit.js +0 -10
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ReviewItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ReviewItemTemplate.lit.js +0 -10
- package/dist/generated/templates/ReviewItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ReviewTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ReviewTemplate.lit.js +0 -12
- package/dist/generated/templates/ReviewTemplate.lit.js.map +0 -1
- package/src/DatePicker.hbs +0 -19
- package/src/DatePickerPopover.hbs +0 -24
- package/src/Review.hbs +0 -44
- package/src/ReviewItem.hbs +0 -20
- package/src/generated/templates/DatePickerPopoverTemplate.lit.ts +0 -14
- package/src/generated/templates/DatePickerTemplate.lit.ts +0 -14
- package/src/generated/templates/ReviewItemTemplate.lit.ts +0 -14
- package/src/generated/templates/ReviewTemplate.lit.ts +0 -16
package/src/Carousel.ts
CHANGED
|
@@ -11,11 +11,15 @@ import {
|
|
|
11
11
|
import { CAROUSEL_NEXT_ARROW_TEXT, CAROUSEL_PREVIOUS_ARROW_TEXT } from "./generated/i18n/i18n-defaults.js";
|
|
12
12
|
import redirectAttributes from "./utils/redirectAttributes.js";
|
|
13
13
|
import type UI5Carousel from "@ui5/webcomponents/dist/Carousel.js";
|
|
14
|
+
import type { UI5CustomEvent } from "@ui5/webcomponents-base";
|
|
15
|
+
import type Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
14
16
|
|
|
15
17
|
import CarouselTemplate from "./CarouselTemplate.js";
|
|
16
18
|
|
|
17
19
|
// Styles
|
|
18
20
|
import CarouselCss from "./generated/themes/Carousel.css.js";
|
|
21
|
+
import type CarouselPageIndicatorType from "@ui5/webcomponents/dist/types/CarouselPageIndicatorType.js";
|
|
22
|
+
import type UDExButton from "./Button.js";
|
|
19
23
|
|
|
20
24
|
export enum UDExCarouselNavigationPosition {
|
|
21
25
|
top = "top",
|
|
@@ -76,6 +80,34 @@ class UDExCarousel extends UI5Element {
|
|
|
76
80
|
@slot({ "default": true, type: HTMLElement, individualSlots: true })
|
|
77
81
|
items!: Array<HTMLElement>;
|
|
78
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Defines the number of items per page depending on the carousel width.
|
|
85
|
+
*
|
|
86
|
+
* - 'S' for screens smaller than 600 pixels.
|
|
87
|
+
* - 'M' for screens greater than or equal to 600 pixels and smaller than 1024 pixels.
|
|
88
|
+
* - 'L' for screens greater than or equal to 1024 pixels and smaller than 1440 pixels.
|
|
89
|
+
* - 'XL' for screens greater than or equal to 1440 pixels.
|
|
90
|
+
*
|
|
91
|
+
* One item per page is shown by default.
|
|
92
|
+
* @default "S1 M1 L1 XL1"
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
@property()
|
|
96
|
+
itemsPerPage = "S1 M1 L1 XL1";
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Defines the style of the page indicator.
|
|
100
|
+
* Available options are:
|
|
101
|
+
*
|
|
102
|
+
* - `Default` - The page indicator will be visualized as dots if there are fewer than 9 pages. If there are more pages, the page indicator will switch to displaying the current page and the total number of pages. (e.g. X of Y)
|
|
103
|
+
* - `Numeric` - The page indicator will display the current page and the total number of pages. (e.g. X of Y)
|
|
104
|
+
* @since 1.10
|
|
105
|
+
* @default "Default"
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
@property()
|
|
109
|
+
pageIndicatorType: `${CarouselPageIndicatorType}` = "Default";
|
|
110
|
+
|
|
79
111
|
/**
|
|
80
112
|
* Defines the prev button is disabled
|
|
81
113
|
*
|
|
@@ -150,23 +182,21 @@ class UDExCarousel extends UI5Element {
|
|
|
150
182
|
this.isNextButtonDisabled = !this._carousel?.hasNext;
|
|
151
183
|
}
|
|
152
184
|
|
|
153
|
-
_prevButtonClick() {
|
|
185
|
+
_prevButtonClick(e: UI5CustomEvent<UDExButton, "click">) {
|
|
154
186
|
if (this.isPrevButtonDisabled) {
|
|
155
187
|
return;
|
|
156
188
|
}
|
|
157
189
|
|
|
158
|
-
this._carousel?.
|
|
159
|
-
this._ui5CarouselRoot?.focus();
|
|
190
|
+
this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, "click">);
|
|
160
191
|
this._calculateDisabledButtonsState();
|
|
161
192
|
}
|
|
162
193
|
|
|
163
|
-
_nextButtonClick() {
|
|
194
|
+
_nextButtonClick(e: UI5CustomEvent<UDExButton, "click">) {
|
|
164
195
|
if (this.isNextButtonDisabled) {
|
|
165
196
|
return;
|
|
166
197
|
}
|
|
167
198
|
|
|
168
|
-
this._carousel?.
|
|
169
|
-
this._ui5CarouselRoot?.focus();
|
|
199
|
+
this._carousel?._navButtonClick(e as unknown as UI5CustomEvent<Icon, "click">);
|
|
170
200
|
this._calculateDisabledButtonsState();
|
|
171
201
|
}
|
|
172
202
|
|
package/src/CarouselTemplate.tsx
CHANGED
|
@@ -12,6 +12,8 @@ export default function CarouselTemplate(this: Carousel) {
|
|
|
12
12
|
<div className={this.carouselClass} onKeyDown={this._onkeydown}>
|
|
13
13
|
{this.showNavigationButtons.top && navigation.call(this)}
|
|
14
14
|
<UI5Carousel
|
|
15
|
+
itemsPerPage={this.itemsPerPage}
|
|
16
|
+
pageIndicatorType={this.pageIndicatorType}
|
|
15
17
|
id="carousel"
|
|
16
18
|
hideNavigationArrows
|
|
17
19
|
arrowsPlacement={CarouselArrowsPlacement.Navigation}
|
|
@@ -32,6 +34,7 @@ function navigation(this: Carousel) {
|
|
|
32
34
|
return (
|
|
33
35
|
<div class="udex-carousel__navigation-wrapper" part="navigation">
|
|
34
36
|
<UDExButton
|
|
37
|
+
data-ui5-arrow-back
|
|
35
38
|
size={UDExButtonSize.Large}
|
|
36
39
|
disabled={this.isPrevButtonDisabled}
|
|
37
40
|
class={btnClassName}
|
|
@@ -42,6 +45,7 @@ function navigation(this: Carousel) {
|
|
|
42
45
|
part="prev-button">
|
|
43
46
|
</UDExButton>
|
|
44
47
|
<UDExButton
|
|
48
|
+
data-ui5-arrow-forward
|
|
45
49
|
size={UDExButtonSize.Large}
|
|
46
50
|
disabled={this.isNextButtonDisabled}
|
|
47
51
|
class={btnClassName}
|
package/src/DatePicker.ts
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import DateComponentBase from "@ui5/webcomponents/dist/DateComponentBase.js";
|
|
2
|
-
import
|
|
2
|
+
import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
3
3
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
4
4
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
6
|
-
|
|
7
|
-
import Calendar, { CalendarSelectionChangeEventDetail } from "@ui5/webcomponents/dist/Calendar.js";
|
|
8
|
-
import CalendarDate from "@ui5/webcomponents/dist/CalendarDate.js";
|
|
6
|
+
import type { CalendarSelectionChangeEventDetail } from "@ui5/webcomponents/dist/Calendar.js";
|
|
9
7
|
import "@ui5/webcomponents/dist/Icon.js";
|
|
10
8
|
import "@ui5/webcomponents-icons/dist/appointment-2.js";
|
|
11
9
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
12
10
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
13
11
|
import { CALENDAR_ICON, DATEPICKER_DATE_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
|
|
14
|
-
import UDExTextField from "./TextField.js";
|
|
15
|
-
import UDExDropdown from "./Dropdown.js";
|
|
16
|
-
import UDExStatusMessage from "./StatusMessage.js";
|
|
12
|
+
import type UDExTextField from "./TextField.js";
|
|
13
|
+
import type UDExDropdown from "./Dropdown.js";
|
|
17
14
|
import UDExValueState from "./types/common.js";
|
|
18
15
|
|
|
19
16
|
// Template
|
|
20
|
-
import DatePickerTemplate from "./
|
|
17
|
+
import DatePickerTemplate from "./DatePickerTemplate.js";
|
|
21
18
|
|
|
22
19
|
// Styles
|
|
23
20
|
import DatePickerCss from "./generated/themes/DatePicker.css.js";
|
|
@@ -60,10 +57,9 @@ type UDExDatePickerValueStateChangeEventDetail = {
|
|
|
60
57
|
*/
|
|
61
58
|
@customElement({
|
|
62
59
|
tag: "udex-date-picker",
|
|
63
|
-
renderer:
|
|
60
|
+
renderer: jsxRenderer,
|
|
64
61
|
styles: [DatePickerCss, DatePickerPopoverCss],
|
|
65
62
|
template: DatePickerTemplate,
|
|
66
|
-
dependencies: [CalendarDate, Calendar, UDExTextField, UDExDropdown, UDExStatusMessage],
|
|
67
63
|
})
|
|
68
64
|
/**
|
|
69
65
|
* Fired when the selected dates change.
|
|
@@ -506,7 +502,7 @@ class UDExDatePicker extends DateComponentBase {
|
|
|
506
502
|
this._updateValueAndFireDecoratorEvents((e.target as UDExDatePicker).value, true);
|
|
507
503
|
}
|
|
508
504
|
|
|
509
|
-
handleInputClick(e:
|
|
505
|
+
handleInputClick(e: CustomEvent<void>): void {
|
|
510
506
|
e.preventDefault();
|
|
511
507
|
|
|
512
508
|
if (this.disabled || this.readonly) {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import Calendar from "@ui5/webcomponents/dist/Calendar.js";
|
|
2
|
+
import type DatePicker from "./DatePicker.js";
|
|
3
|
+
import UDExDropdown from "./Dropdown.js";
|
|
4
|
+
import { Placement } from "./types/Dropdown.js";
|
|
5
|
+
import CalendarDate from "@ui5/webcomponents/dist/CalendarDate.js";
|
|
6
|
+
import CalendarDateRange from "@ui5/webcomponents/dist/CalendarDateRange.js";
|
|
7
|
+
|
|
8
|
+
export default function DatePickerPopoverTemplate(this: DatePicker) {
|
|
9
|
+
return (
|
|
10
|
+
<UDExDropdown
|
|
11
|
+
id={`udex-${this._id}-calendar__popover`}
|
|
12
|
+
opener={`udex-${this._id}-calendar__opener`}
|
|
13
|
+
class="udex-date-picker__popover"
|
|
14
|
+
placement={Placement.Bottom}
|
|
15
|
+
horizontal-align="Start"
|
|
16
|
+
onClose={this._afterDropdownClose}
|
|
17
|
+
onOpen={this._afterDropdownOpen}>
|
|
18
|
+
<Calendar
|
|
19
|
+
class="udex-date-picker__calendar"
|
|
20
|
+
onSelectionChange={this.handleCalendarChange}
|
|
21
|
+
selection-mode={this.selectionMode}
|
|
22
|
+
min-date={this.minDate}
|
|
23
|
+
max-date={this.maxDate}
|
|
24
|
+
format-pattern={this.formatPattern}>
|
|
25
|
+
{ this.isRangeMode ?
|
|
26
|
+
<CalendarDateRange start-value={this.startValue} end-value={this.endValue}></CalendarDateRange>
|
|
27
|
+
:
|
|
28
|
+
this._calendarSelectedDates.map(date =>
|
|
29
|
+
<CalendarDate value={date}></CalendarDate>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
</Calendar>
|
|
33
|
+
</UDExDropdown>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type DatePicker from "./DatePicker.js";
|
|
2
|
+
import DatePickerPopoverTemplate from "./DatePickerPopoverTemplate.js";
|
|
3
|
+
import UDExTextField from "./TextField.js";
|
|
4
|
+
|
|
5
|
+
export default function DatePickerTemplate(this: DatePicker) {
|
|
6
|
+
return (
|
|
7
|
+
<>
|
|
8
|
+
<UDExTextField
|
|
9
|
+
class="udex-date-picker__input"
|
|
10
|
+
_aria-has-popup="grid"
|
|
11
|
+
icon="appointment-2"
|
|
12
|
+
value={this.value}
|
|
13
|
+
label={this.label}
|
|
14
|
+
accessible-name={this.dateAccessibleName}
|
|
15
|
+
accessible-name-ref={this.accessibleNameRef}
|
|
16
|
+
accessible-icon-name={this.accessibleIconName}
|
|
17
|
+
{...(this.disabled ? { "disabled": true } : {})}
|
|
18
|
+
{...(this.required ? { "required": true } : {})}
|
|
19
|
+
{...(this.readonly ? { "readonly": true } : {})}
|
|
20
|
+
onClickIcon={this.handleInputClick}
|
|
21
|
+
onChange={this._onInputChange}
|
|
22
|
+
value-state={this.valueState}
|
|
23
|
+
supporting-text={this.supportingText} />
|
|
24
|
+
{DatePickerPopoverTemplate.call(this)}
|
|
25
|
+
</>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
// No ts check required for video-js tag usage. Please remove during development.
|
|
1
3
|
import type UDExMediaPlayer from "./MediaPlayer.js";
|
|
2
4
|
import UDExMediaPlayerYoutube from "./MediaPlayerYoutube.js";
|
|
3
5
|
import UDExMediaPlayerVimeo from "./MediaPlayerVimeo.js";
|
|
@@ -30,27 +32,26 @@ function renderAudioOnlyTemplate(this: UDExMediaPlayer, rootClass: string) {
|
|
|
30
32
|
|
|
31
33
|
function renderStandardTemplate(this: UDExMediaPlayer, rootClass: string) {
|
|
32
34
|
return (
|
|
33
|
-
<video
|
|
35
|
+
<video-js
|
|
34
36
|
id={this.playerElementId}
|
|
35
37
|
class={`${rootClass} ${this.aspectRatioClass}`}>
|
|
36
|
-
<source src={this.source} type={this.type}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
</video>
|
|
38
|
+
<source src={this.source} type={this.type} />
|
|
39
|
+
{this._tracks.map((element: HTMLTrackElement, index: number) => {
|
|
40
|
+
const {
|
|
41
|
+
"default": isDefault, kind, src, srclang, label
|
|
42
|
+
} = element;
|
|
43
|
+
return (
|
|
44
|
+
<track
|
|
45
|
+
key={index}
|
|
46
|
+
kind={kind}
|
|
47
|
+
src={src}
|
|
48
|
+
srclang={srclang}
|
|
49
|
+
label={label}
|
|
50
|
+
{...(isDefault ? { "default": true } : {})}
|
|
51
|
+
/>
|
|
52
|
+
);
|
|
53
|
+
})}
|
|
54
|
+
</video-js>
|
|
54
55
|
);
|
|
55
56
|
}
|
|
56
57
|
|
|
@@ -7,6 +7,8 @@ import sysEnter2 from "@ui5/webcomponents-icons/dist/sys-enter-2.js";
|
|
|
7
7
|
import error from "@ui5/webcomponents-icons/dist/error.js";
|
|
8
8
|
import alert from "@ui5/webcomponents-icons/dist/alert.js";
|
|
9
9
|
import { UDExMessageStripDesign } from "./types/MessageStrip.js";
|
|
10
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
11
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
10
12
|
|
|
11
13
|
export default function MessageStripTemplate(this: UDExMessageStrip) {
|
|
12
14
|
return (
|
|
@@ -47,9 +49,9 @@ export default function MessageStripTemplate(this: UDExMessageStrip) {
|
|
|
47
49
|
</span>
|
|
48
50
|
{!this.hideCloseButton && (
|
|
49
51
|
<UDExButton
|
|
50
|
-
size=
|
|
52
|
+
size={UDExButtonSize.Small}
|
|
51
53
|
icon={decline}
|
|
52
|
-
design=
|
|
54
|
+
design={UDExButtonDesign.Tertiary}
|
|
53
55
|
onClick={this._closeClick}
|
|
54
56
|
tooltip={this._closeButtonText}
|
|
55
57
|
part="close-button"
|
package/src/Review.ts
CHANGED
|
@@ -2,16 +2,14 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
3
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
4
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
5
|
-
import
|
|
6
|
-
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
5
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
7
6
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
8
7
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
8
|
import { REVIEWS, STARS } from "./generated/i18n/i18n-defaults.js";
|
|
10
9
|
import "@ui5/webcomponents-icons/dist/favorite.js";
|
|
11
10
|
import UDExRatingBar from "./RatingBar.js";
|
|
12
|
-
import UDExRatingIndicator from "./RatingIndicator.js";
|
|
13
11
|
import type UDExButton from "./Button.js";
|
|
14
|
-
import ReviewTemplate from "./
|
|
12
|
+
import ReviewTemplate from "./ReviewTemplate.js";
|
|
15
13
|
|
|
16
14
|
// Styles
|
|
17
15
|
import ReviewCss from "./generated/themes/Review.css.js";
|
|
@@ -35,10 +33,9 @@ import ReviewCss from "./generated/themes/Review.css.js";
|
|
|
35
33
|
*/
|
|
36
34
|
@customElement({
|
|
37
35
|
tag: "udex-review",
|
|
38
|
-
renderer:
|
|
36
|
+
renderer: jsxRenderer,
|
|
39
37
|
styles: ReviewCss,
|
|
40
38
|
template: ReviewTemplate,
|
|
41
|
-
dependencies: [UDExRatingBar, UDExRatingIndicator, Icon],
|
|
42
39
|
})
|
|
43
40
|
|
|
44
41
|
class UDExReview extends UI5Element {
|
package/src/ReviewItem.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
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 property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
|
-
import
|
|
5
|
-
|
|
4
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
6
5
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
7
6
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
8
7
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
8
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
10
9
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import ReviewItemTemplate from "./generated/templates/ReviewItemTemplate.lit.js";
|
|
10
|
+
import ReviewItemTemplate from "./ReviewItemTemplate.js";
|
|
11
|
+
import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
14
12
|
|
|
15
13
|
// Styles
|
|
16
14
|
import ReviewItemCss from "./generated/themes/ReviewItem.css.js";
|
|
17
|
-
import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
18
15
|
|
|
19
16
|
/**
|
|
20
17
|
* @class
|
|
@@ -35,10 +32,9 @@ import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
|
35
32
|
*/
|
|
36
33
|
@customElement({
|
|
37
34
|
tag: "udex-review-item",
|
|
38
|
-
renderer:
|
|
35
|
+
renderer: jsxRenderer,
|
|
39
36
|
styles: ReviewItemCss,
|
|
40
37
|
template: ReviewItemTemplate,
|
|
41
|
-
dependencies: [UDExRatingIndicator, UDExButton],
|
|
42
38
|
})
|
|
43
39
|
|
|
44
40
|
class UDExReviewItem extends UI5Element {
|
|
@@ -129,17 +125,6 @@ class UDExReviewItem extends UI5Element {
|
|
|
129
125
|
@i18n("@sapudex/web-components")
|
|
130
126
|
static i18nBundle: I18nBundle;
|
|
131
127
|
|
|
132
|
-
_toggleText() {
|
|
133
|
-
this._textExpanded = !this._textExpanded;
|
|
134
|
-
if (this._textExpanded) {
|
|
135
|
-
this._completeText = this.text;
|
|
136
|
-
this._textElement.classList.add("udex-review-item__text-expanded");
|
|
137
|
-
} else {
|
|
138
|
-
this._textElement.classList.remove("udex-review-item__text-expanded");
|
|
139
|
-
this._completeText = this._visibleText;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
128
|
_handleResizeBound: ResizeObserverCallback;
|
|
144
129
|
_textElement!: HTMLElement;
|
|
145
130
|
_visibleText!: string;
|
|
@@ -167,6 +152,17 @@ class UDExReviewItem extends UI5Element {
|
|
|
167
152
|
this._checkTextOverflow();
|
|
168
153
|
}
|
|
169
154
|
|
|
155
|
+
_toggleText() {
|
|
156
|
+
this._textExpanded = !this._textExpanded;
|
|
157
|
+
if (this._textExpanded) {
|
|
158
|
+
this._completeText = this.text;
|
|
159
|
+
this._textElement.classList.add("udex-review-item__text-expanded");
|
|
160
|
+
} else {
|
|
161
|
+
this._textElement.classList.remove("udex-review-item__text-expanded");
|
|
162
|
+
this._completeText = this._visibleText;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
170
166
|
_checkTextOverflow() {
|
|
171
167
|
const words = this.text.split(" ");
|
|
172
168
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type ReviewItem from "./ReviewItem.js";
|
|
2
|
+
import UDExRatingIndicator from "./RatingIndicator.js";
|
|
3
|
+
import UDExButton from "./Button.js";
|
|
4
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
5
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
6
|
+
|
|
7
|
+
export default function ReviewItemTemplate(this: ReviewItem) {
|
|
8
|
+
const rootClass = "udex-review-item";
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<div className={this.reviewItemClasses}>
|
|
12
|
+
<div className={`${rootClass}__rating-container`}>
|
|
13
|
+
<UDExRatingIndicator
|
|
14
|
+
value={this.validatedRating}
|
|
15
|
+
max={this._maxRating}
|
|
16
|
+
readonly>
|
|
17
|
+
</UDExRatingIndicator>
|
|
18
|
+
{this.date && (
|
|
19
|
+
<slot
|
|
20
|
+
className={`${rootClass}__date`}
|
|
21
|
+
slot="date"
|
|
22
|
+
name="date">
|
|
23
|
+
</slot>
|
|
24
|
+
)}
|
|
25
|
+
</div>
|
|
26
|
+
<div className={`${rootClass}__text-container`}>
|
|
27
|
+
<div className={`${rootClass}__title`}>{this.reviewTitle}</div>
|
|
28
|
+
<div className={`${rootClass}__text-wrapper`}>
|
|
29
|
+
<p className={`${rootClass}__text`} id={`${rootClass}__text`}>
|
|
30
|
+
{this._completeText}
|
|
31
|
+
</p>
|
|
32
|
+
{this._showTextExpander && (
|
|
33
|
+
<UDExButton
|
|
34
|
+
id="reviewExpander"
|
|
35
|
+
class={`${rootClass}__text-expander`}
|
|
36
|
+
design={UDExButtonDesign.Invisible}
|
|
37
|
+
size={UDExButtonSize.Large}
|
|
38
|
+
onClick={this._toggleText.bind(this)}>
|
|
39
|
+
{this.buttonText}
|
|
40
|
+
</UDExButton>
|
|
41
|
+
)}
|
|
42
|
+
</div>
|
|
43
|
+
{this.author && (
|
|
44
|
+
<slot slot="author" name="author" className={`${rootClass}__author`}></slot>
|
|
45
|
+
)}
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type Review from "./Review.js";
|
|
2
|
+
import UDExRatingIndicator from "./RatingIndicator.js";
|
|
3
|
+
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
4
|
+
import favorite from "@ui5/webcomponents-icons/dist/favorite.js";
|
|
5
|
+
|
|
6
|
+
export default function ReviewTemplate(this: Review) {
|
|
7
|
+
const rootClass = "udex-review";
|
|
8
|
+
|
|
9
|
+
return (
|
|
10
|
+
this.isEmpty ? (
|
|
11
|
+
<div className={`${rootClass}__empty-container`}>
|
|
12
|
+
<slot className={`${rootClass}__default-text`} name="defaultText"></slot>
|
|
13
|
+
<slot name="reviewButton"></slot>
|
|
14
|
+
</div>
|
|
15
|
+
) : this.withoutBreakdown ? (
|
|
16
|
+
<div className={`${rootClass}__container-without-breakdown`}>
|
|
17
|
+
<div className={`${rootClass}__content-without-breakdown`}>
|
|
18
|
+
<div
|
|
19
|
+
className={`${rootClass}__rating`}
|
|
20
|
+
aria-level={2}
|
|
21
|
+
role="heading"
|
|
22
|
+
aria-hidden="true">
|
|
23
|
+
{this.validatedRating}
|
|
24
|
+
</div>
|
|
25
|
+
<div className={`${rootClass}__rating-info-without-breakdown`}>
|
|
26
|
+
<UDExRatingIndicator
|
|
27
|
+
value={this.validatedRating}
|
|
28
|
+
max={this._maxRating}
|
|
29
|
+
readonly>
|
|
30
|
+
</UDExRatingIndicator>
|
|
31
|
+
<div className={`${rootClass}__reviews-text`}>{this.reviewsText}</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
<div className={`${rootClass}__additional-content-without-breakdown`}>
|
|
35
|
+
<slot className={`${rootClass}__default-text`} name="defaultText"></slot>
|
|
36
|
+
<slot name="reviewButton"></slot>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
) : (
|
|
40
|
+
<div className={`${rootClass}__container`}>
|
|
41
|
+
<div className={`${rootClass}__content`}>
|
|
42
|
+
<div className={`${rootClass}__rating-info`}>
|
|
43
|
+
<div
|
|
44
|
+
className={`${rootClass}__rating`}
|
|
45
|
+
aria-level={2}
|
|
46
|
+
role="heading"
|
|
47
|
+
aria-hidden="true">
|
|
48
|
+
{this.validatedRating}
|
|
49
|
+
</div>
|
|
50
|
+
<UI5Icon
|
|
51
|
+
aria-labelledby="ratingDescription"
|
|
52
|
+
role="img"
|
|
53
|
+
name={favorite}
|
|
54
|
+
class={`${rootClass}__icon`}>
|
|
55
|
+
</UI5Icon>
|
|
56
|
+
</div>
|
|
57
|
+
<div className={`${rootClass}__reviews-text`}>{this.reviewsText}</div>
|
|
58
|
+
<slot name="reviewButton"></slot>
|
|
59
|
+
</div>
|
|
60
|
+
<div className={`${rootClass}__additional-content`}>
|
|
61
|
+
{this.validatedRatingBars.map(bar => (
|
|
62
|
+
<slot name={bar._individualSlot}></slot>
|
|
63
|
+
))}
|
|
64
|
+
</div>
|
|
65
|
+
<span id="ratingDescription" class="hidden-text">{this._ratingDescription}</span>
|
|
66
|
+
</div>
|
|
67
|
+
)
|
|
68
|
+
);
|
|
69
|
+
}
|
package/src/TileTemplate.tsx
CHANGED
|
@@ -5,5 +5,5 @@ import defaultTheme from "./sap_horizon/parameters-bundle.css.js";
|
|
|
5
5
|
|
|
6
6
|
registerThemePropertiesLoader("@" + "ui5" + "/" + "webcomponents-theming", "sap_horizon", async () => defaultThemeBase);
|
|
7
7
|
registerThemePropertiesLoader("@" + "s" + "a" + "p" + "u" + "d" + "e" + "x" + "/" + "w" + "e" + "b" + "-" + "c" + "o" + "m" + "p" + "o" + "n" + "e" + "n" + "t" + "s", "sap_horizon", async () => defaultTheme);
|
|
8
|
-
export default `:host{display:block;width:100%;container-type:inline-size}.udex-quote__container{display:flex;flex-direction:row;width:100%;text-align:left;gap:var(--udexSpacer24)}.udex-quote__container:dir(rtl){text-align:right}:host([image-size="small"]) .udex-quote__container,:host([text-size="small"]) .udex-quote__container{gap:var(--udexSpacer16)}.udex-quote__text,::slotted([slot="author"]),::slotted([slot="link"]){padding:0 50px}::slotted([slot="image"]){display:block;width:120px;height:120px}:host([mask="rectangle"]) ::slotted([slot="image"]){display:block;width:200px;height:100px;background-color:transparent;object-fit:contain}:host([image-size="small"]) ::slotted([slot="image"]){width:var(--udexSpacer64);height:var(--udexSpacer64)}:host([image-size="small"][mask="rectangle"]) ::slotted([slot="image"]){width:160px;height:80px}.udex-quote__text-container{position:relative;margin:0}.udex-quote__text{margin:0 0 var(--udexSpacer24);font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyBodyXLFontSize, 24px);line-height:var(--udexTypographyBodyLineHeight, 1.5);color:var(--udexColorGrey8, #354A5F)}.udex-quote__text ::slotted(*){margin:0}.udex-quote__text-container:before,.udex-quote__text-container:after{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightMedium, 500);text-align:center;position:absolute;display:inline-block;font-size:84px;line-height:84px;height:58px;width:34px;color:var(--udexColorGrey8, #354A5F);margin-top:-9px}.udex-quote__text-container:before{content:open-quote;top:0;left:0}.udex-quote__text-container:after{content:close-quote;top:0;right:0}:host([text-size="small"]) .udex-quote__text-container:after,:host([text-size="small"]) .udex-quote__text-container:before{font-size:72px;line-height:72px;font-weight:var(--udexTypographyFontWeightRegular, 400);height:50px;width:26px;margin-top:-12px}::slotted([slot="author"]){display:block;margin-bottom:var(--udexSpacer24);font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyHeadingRegularXXSFontSize, 20px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);color:var(--udexColorGrey8, #354A5F)}:host([text-size="small"]) .udex-quote__text{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyBodySFontSize, 16px);line-height:var(--udexTypographyBodyLineHeight, 1.5);padding-inline:34px}:host([text-size="small"]) ::slotted([slot="author"]){font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);padding-inline:34px}:host([text-size="small"]) ::slotted([slot="link"]){padding-inline:34px}@media screen and (max-width: 1279px){.udex-quote__container{gap:var(--udexSpacer16)}::slotted([slot="author"]){font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);padding:0 34px}::slotted([slot="link"]){padding:0 34px}::slotted([slot="image"]){width:var(--udexSpacer64);height:var(--udexSpacer64)}:host([mask="rectangle"]) ::slotted([slot="image"]){width:160px;height:80px}.udex-quote__text-container:after,.udex-quote__text-container:before{font-size:72px;font-weight:var(--udexTypographyFontWeightRegular, 400);line-height:72px;height:50px;width:26px}.udex-quote__text{font-size:var(--udexTypographyBodySFontSize, 16px);line-height:var(--udexTypographyBodyLineHeight, 1.5);padding:0 34px}}@media (max-width: 639px){.udex-quote__container
|
|
8
|
+
export default `:host{display:block;width:100%;container-type:inline-size}.udex-quote__container{display:flex;flex-direction:row;width:100%;text-align:left;gap:var(--udexSpacer24)}.udex-quote__container:dir(rtl){text-align:right}:host([image-size="small"]) .udex-quote__container,:host([text-size="small"]) .udex-quote__container{gap:var(--udexSpacer16)}.udex-quote__text,::slotted([slot="author"]),::slotted([slot="link"]){padding:0 50px}::slotted([slot="image"]){display:block;width:120px;height:120px}:host([mask="rectangle"]) ::slotted([slot="image"]){display:block;width:200px;height:100px;background-color:transparent;object-fit:contain}:host([image-size="small"]) ::slotted([slot="image"]){width:var(--udexSpacer64);height:var(--udexSpacer64)}:host([image-size="small"][mask="rectangle"]) ::slotted([slot="image"]){width:160px;height:80px}.udex-quote__text-container{quotes:"\\201c""\\201d";position:relative;margin:0}.udex-quote__text{margin:0 0 var(--udexSpacer24);font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyBodyXLFontSize, 24px);line-height:var(--udexTypographyBodyLineHeight, 1.5);color:var(--udexColorGrey8, #354A5F)}.udex-quote__text ::slotted(*){margin:0}.udex-quote__text-container:before,.udex-quote__text-container:after{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightMedium, 500);text-align:center;position:absolute;display:inline-block;font-size:84px;line-height:84px;height:58px;width:34px;color:var(--udexColorGrey8, #354A5F);margin-top:-9px}.udex-quote__text-container:before{content:open-quote;top:0;left:0}.udex-quote__text-container:after{content:close-quote;top:0;right:0}:host([text-size="small"]) .udex-quote__text-container:after,:host([text-size="small"]) .udex-quote__text-container:before{font-size:72px;line-height:72px;font-weight:var(--udexTypographyFontWeightRegular, 400);height:50px;width:26px;margin-top:-12px}::slotted([slot="author"]){display:block;margin-bottom:var(--udexSpacer24);font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyHeadingRegularXXSFontSize, 20px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);color:var(--udexColorGrey8, #354A5F)}:host([text-size="small"]) .udex-quote__text{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyBodySFontSize, 16px);line-height:var(--udexTypographyBodyLineHeight, 1.5);padding-inline:34px}:host([text-size="small"]) ::slotted([slot="author"]){font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);padding-inline:34px}:host([text-size="small"]) ::slotted([slot="link"]){padding-inline:34px}@media screen and (max-width: 1279px){.udex-quote__container{gap:var(--udexSpacer16)}::slotted([slot="author"]){font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);padding:0 34px}::slotted([slot="link"]){padding:0 34px}::slotted([slot="image"]){width:var(--udexSpacer64);height:var(--udexSpacer64)}:host([mask="rectangle"]) ::slotted([slot="image"]){width:160px;height:80px}.udex-quote__text-container:after,.udex-quote__text-container:before{font-size:72px;font-weight:var(--udexTypographyFontWeightRegular, 400);line-height:72px;height:50px;width:26px}.udex-quote__text{font-size:var(--udexTypographyBodySFontSize, 16px);line-height:var(--udexTypographyBodyLineHeight, 1.5);padding:0 34px}}@media (max-width: 639px){.udex-quote__container{flex-direction:column;gap:var(--udexSpacer16)}:host([image-placement="right"]) .udex-quote__container{flex-direction:column-reverse;gap:var(--udexSpacer16)}::slotted([slot="image"]){margin:0 auto}}
|
|
9
9
|
`
|
|
@@ -5,5 +5,5 @@ import defaultTheme from "./sap_horizon/parameters-bundle.css.js";
|
|
|
5
5
|
|
|
6
6
|
registerThemePropertiesLoader("@" + "ui5" + "/" + "webcomponents-theming", "sap_horizon", async () => defaultThemeBase);
|
|
7
7
|
registerThemePropertiesLoader("@" + "s" + "a" + "p" + "u" + "d" + "e" + "x" + "/" + "w" + "e" + "b" + "-" + "c" + "o" + "m" + "p" + "o" + "n" + "e" + "n" + "t" + "s", "sap_horizon", async () => defaultTheme);
|
|
8
|
-
export default `:host{--udex_rating_indicator_readonly_item_width: 1.5rem;--udex_rating_indicator_readonly_item_height: 1.5rem;--udex_rating_indicator_item_width: 1.5rem;--udex_rating_indicator_item_height: 1.5rem;--udex_rating_indicator_mobile_item_padding: 10px;--udex_rating_indicator_disabled_opacity: .4;--udex-rating_indicator_items_gap: 8px;--udex-rating_indicator_mobile_items_gap: 8px;--udex-rating_indicator_rated_color: var(--sapContent_RatedColor, #E76500);--udex-rating_indicator_unrated_color: var(--sapContent_RatedColor, #E76500);--udex-rating_indicator_read-only-unrated_color: var(--udexColorGrey6 ,#5B738B);--udex-rating_indicator_disabled-unrated_color: var(--udexColorMango6, #E76500);--udex-rating_indicator_rated_hover_color: var(--udexColorMango7, #C35500);--udex-rating_indicator_unrated_hover_color: var(--udexColorMango7, #C35500)}:host(:not([hidden])){display:inline-flex;margin:var(--_ui5-v2-
|
|
8
|
+
export default `:host{--udex_rating_indicator_readonly_item_width: 1.5rem;--udex_rating_indicator_readonly_item_height: 1.5rem;--udex_rating_indicator_item_width: 1.5rem;--udex_rating_indicator_item_height: 1.5rem;--udex_rating_indicator_mobile_item_padding: 10px;--udex_rating_indicator_disabled_opacity: .4;--udex-rating_indicator_items_gap: 8px;--udex-rating_indicator_mobile_items_gap: 8px;--udex-rating_indicator_rated_color: var(--sapContent_RatedColor, #E76500);--udex-rating_indicator_unrated_color: var(--sapContent_RatedColor, #E76500);--udex-rating_indicator_read-only-unrated_color: var(--udexColorGrey6 ,#5B738B);--udex-rating_indicator_disabled-unrated_color: var(--udexColorMango6, #E76500);--udex-rating_indicator_rated_hover_color: var(--udexColorMango7, #C35500);--udex-rating_indicator_unrated_hover_color: var(--udexColorMango7, #C35500)}:host(:not([hidden])){display:inline-flex;margin:var(--_ui5-v2-20-1_rating_indicator_component_spacing);cursor:pointer}:host([disabled]){opacity:var(--udex_rating_indicator_disabled_opacity);cursor:initial;outline:none}:host([readonly]){cursor:initial}:host([disabled]) .udex-rating-indicator__item-unsel,:host([readonly]) .udex-rating-indicator__item-unsel{width:var(--udex_rating_indicator_readonly_item_width);height:var(--udex_rating_indicator_readonly_item_height);padding-inline:0}:host([disabled]) .udex-rating-indicator__item-unsel{color:var(--udex-rating_indicator_disabled-unrated_color)}:host([readonly]) .udex-rating-indicator__item-unsel{color:var(--udex-rating_indicator_read-only-unrated_color)}:host([_focused]){outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:.125rem;border-radius:.25rem}[ui5-icon]{display:flex;text-shadow:var(--sapContent_TextShadow)}.udex-rating-indicator{font-family:var(--sapFontFamily);font-size:var(--sapFontSize, 16px);padding:0;outline:none;position:relative;display:inline-flex;gap:12px;align-items:center}.udex-rating-indicator__total{color:var(--udexColorGrey6);line-height:24px}.udex-rating-indicator__list{list-style-type:none;display:flex;align-items:center;margin:0;padding:0}.udex-rating-indicator__item{position:relative;width:var(--udex_rating_indicator_item_width);height:var(--udex_rating_indicator_item_height)}.udex-rating-indicator__item:not(:last-child){margin-inline-end:var(--udex-rating_indicator_items_gap)}.udex-rating-indicator__item [ui5-icon]{width:100%;height:100%;color:inherit;user-select:none}.udex-rating-indicator__item.udex-rating-indicator__item-unsel{color:var(--udex-rating_indicator_unrated_color)}.udex-rating-indicator__item.udex-rating-indicator__item-sel,.udex-rating-indicator__item.udex-rating-indicator__item-half{color:var(--udex-rating_indicator_rated_color)}.udex-rating-indicator__item [ui5-icon].udex-rating-indicator__half-icon{position:absolute;inset-inline-start:50%;color:var(--udex-rating_indicator_rated_color)}:host(:not([readonly]):not([disabled])) .udex-rating-indicator:hover .udex-rating-indicator__item-sel,:host(:not([readonly]):not([disabled])) .udex-rating-indicator:hover .udex-rating-indicator__half-icon,:host(:not([readonly]):not([disabled])) .udex-rating-indicator:hover .udex-rating-indicator__item-half{color:var(--udex-rating_indicator_rated_hover_color)}:host(:not([readonly]):not([disabled])) .ui5-rating-indicator-root:hover{opacity:1}:host(:not([readonly]):not([disabled])) .udex-rating-indicator:hover .udex-rating-indicator__item-unsel{color:var(--udex-rating_indicator_unrated_hover_color)}.udex-rating-indicator__half-icon-wrapper{width:100%;height:100%;position:absolute;inset-inline-start:-50%;top:0;z-index:32;overflow:hidden}.udex-rating-indicator--mobile .udex-rating-indicator__half-icon-wrapper{top:var(--udex_rating_indicator_mobile_item_padding)}.udex-rating-indicator--mobile .udex-rating-indicator__item [ui5-icon].udex-rating-indicator__half-icon{height:var(--udex_rating_indicator_item_height)}.udex-rating-indicator--mobile .udex-rating-indicator__item{padding:var(--udex_rating_indicator_mobile_item_padding)}:host([readonly]) .udex-rating-indicator--mobile .udex-rating-indicator__item-unsel,:host([disabled]) .udex-rating-indicator--mobile .udex-rating-indicator__item-unsel{padding-left:var(--udex_rating_indicator_mobile_item_padding);padding-right:var(--udex_rating_indicator_mobile_item_padding)}.udex-rating-indicator--mobile .udex-rating-indicator__item:not(:last-child){margin-inline-end:var(--udex-rating_indicator_mobile_items_gap)}
|
|
9
9
|
`
|
|
@@ -5,5 +5,5 @@ import defaultTheme from "./sap_horizon/parameters-bundle.css.js";
|
|
|
5
5
|
|
|
6
6
|
registerThemePropertiesLoader("@" + "ui5" + "/" + "webcomponents-theming", "sap_horizon", async () => defaultThemeBase);
|
|
7
7
|
registerThemePropertiesLoader("@" + "s" + "a" + "p" + "u" + "d" + "e" + "x" + "/" + "w" + "e" + "b" + "-" + "c" + "o" + "m" + "p" + "o" + "n" + "e" + "n" + "t" + "s", "sap_horizon", async () => defaultTheme);
|
|
8
|
-
export default `:host{--udex-slider-color-track-start-point: var(--sapSlider_Selected_Background, #0070f2);--udex-slider-color-track-active: var(--sapSlider_Selected_Background, #0070f2);--udex-slider-color-handle-focus-range: var(--sapSlider_Selected_BorderColor, #0070f2);--udex-slider-color-handle-active-background: var(--sapSlider_Active_HandleBackground, #ffffff);--udex-slider-color-handle-default-icon: var(--sapContent_Selected_ForegroundColor, #0040b0);--udex-slider-radius-range-size: var(--udexRadiusM, 8px);--udex-slider-handle-width: 2.75rem;--udex-slider-handle-top: -.875rem;--udex-slider-handle-height: var(--udexSpacer32, 2rem);--udex-slider-start-end-point-left: -.875rem;--udex-slider-start-end-point-right: -.875rem;--udex-slider-progress-after-background: var(--sapContent_MeasureIndicatorColor,#5b738b);--udex-slider-handle-icon-size: var(--udexSpacer20, 1.25rem);--udex-slider-tooltip-bottom: 2.5rem;--udex-slider-tooltip-border: 1px solid var(--sapField_BorderColor, #5B738B);--udex-slider-tooltip-border-radius: var(--udexSpacer4, .25rem);--udex-slider-tooltip-font-size: var(--udexTypographyNavigationRegularMFontSize,14px);--udex-slider-tooltip-color: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-tooltip-height: var(--udexSpacer32, 2rem);--udex-slider-tooltip-min-width: 2.75rem;--udex-slider-tickmark-in-range-bg: var(--sapSlider_Selected_BorderColor,#0070f2);--udex-slider-tickmark-bg: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-label-color: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-handle-focus-border: 2px solid var(--sapSlider_Active_HandleBorderColor);--udex-slider-progress-focus-top: -1.18rem;--udex-slider-progress-focus-left:calc(-1.375rem - 5px);--udex-slider-progress-focus-height: 42px;--udex-slider-progress-focus-width:calc(100% + 2.75rem + 10px)}:host{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);color:var(--sapContent_MeasureIndicatorColor, #5b738b);height:74px}.ui5-slider-progress-container:before{background-color:var(--udex-slider-color-track-start-point)}.ui5-slider-progress{background-color:var(--udex-slider-color-track-active)}.ui5-slider-progress:focus:after{border:2px solid var(--udex-slider-color-handle-focus-range);border-radius:var(--udex-slider-radius-range-size);top:var(--udex-slider-progress-focus-top);height:var(--udex-slider-progress-focus-height);width:var(--udex-slider-progress-focus-width);left:var(--udex-slider-progress-focus-left)}:host([desktop]) .ui5-slider-handle:focus,.ui5-slider-handle:focus-visible{background-color:var(--_ui5-v2-
|
|
8
|
+
export default `:host{--udex-slider-color-track-start-point: var(--sapSlider_Selected_Background, #0070f2);--udex-slider-color-track-active: var(--sapSlider_Selected_Background, #0070f2);--udex-slider-color-handle-focus-range: var(--sapSlider_Selected_BorderColor, #0070f2);--udex-slider-color-handle-active-background: var(--sapSlider_Active_HandleBackground, #ffffff);--udex-slider-color-handle-default-icon: var(--sapContent_Selected_ForegroundColor, #0040b0);--udex-slider-radius-range-size: var(--udexRadiusM, 8px);--udex-slider-handle-width: 2.75rem;--udex-slider-handle-top: -.875rem;--udex-slider-handle-height: var(--udexSpacer32, 2rem);--udex-slider-start-end-point-left: -.875rem;--udex-slider-start-end-point-right: -.875rem;--udex-slider-progress-after-background: var(--sapContent_MeasureIndicatorColor,#5b738b);--udex-slider-handle-icon-size: var(--udexSpacer20, 1.25rem);--udex-slider-tooltip-bottom: 2.5rem;--udex-slider-tooltip-border: 1px solid var(--sapField_BorderColor, #5B738B);--udex-slider-tooltip-border-radius: var(--udexSpacer4, .25rem);--udex-slider-tooltip-font-size: var(--udexTypographyNavigationRegularMFontSize,14px);--udex-slider-tooltip-color: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-tooltip-height: var(--udexSpacer32, 2rem);--udex-slider-tooltip-min-width: 2.75rem;--udex-slider-tickmark-in-range-bg: var(--sapSlider_Selected_BorderColor,#0070f2);--udex-slider-tickmark-bg: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-label-color: var(--sapContent_MeasureIndicatorColor, #5b738b);--udex-slider-handle-focus-border: 2px solid var(--sapSlider_Active_HandleBorderColor);--udex-slider-progress-focus-top: -1.18rem;--udex-slider-progress-focus-left:calc(-1.375rem - 5px);--udex-slider-progress-focus-height: 42px;--udex-slider-progress-focus-width:calc(100% + 2.75rem + 10px)}:host{font-family:var(--sapFontFamily);font-weight:var(--udexTypographyFontWeightRegular, 400);font-size:var(--udexTypographyNavigationRegularMFontSize, 14px);line-height:var(--udexTypographyHeadingLineHeight, 1.1);color:var(--sapContent_MeasureIndicatorColor, #5b738b);height:74px}.ui5-slider-progress-container:before{background-color:var(--udex-slider-color-track-start-point)}.ui5-slider-progress{background-color:var(--udex-slider-color-track-active)}.ui5-slider-progress:focus:after{border:2px solid var(--udex-slider-color-handle-focus-range);border-radius:var(--udex-slider-radius-range-size);top:var(--udex-slider-progress-focus-top);height:var(--udex-slider-progress-focus-height);width:var(--udex-slider-progress-focus-width);left:var(--udex-slider-progress-focus-left)}:host([desktop]) .ui5-slider-handle:focus,.ui5-slider-handle:focus-visible{background-color:var(--_ui5-v2-20-1_range_slider_handle_background_focus)}:host .ui5-slider-inner .ui5-slider-labels{top:34px}:host .ui5-slider-inner .ui5-slider-labels li{height:1.375rem;font-family:var(--sapFontFamily);font-size:var(--udexTypographyNavigationRegularMFontSize, 14px)}[slider-icon]{color:var(--udex-slider-color-handle-default-icon)}.ui5-slider-root:focus .ui5-slider-inner .ui5-slider-handle,.ui5-slider-handle:focus{border:var(--udex-slider-handle-focus-border)}.ui5-slider-labels li{color:var(--udex-slider-label-color)}.ui5-slider-tickmarks li{border-inline-start:1px solid var(--udex-slider-tickmark-bg)}.ui5-slider-tickmarks li.ui5-slider-tickmark-in-range{border-inline-start:1px solid var(--udex-slider-tickmark-in-range-bg)}:host(:not([hidden])) .ui5-slider-handle-container .ui5-slider-tooltip{bottom:var(--udex-slider-tooltip-bottom);border:var(--udex-slider-tooltip-border);border-radius:var(--udex-slider-tooltip-border-radius);font-size:var(--udex-slider-tooltip-font-size);color:var(--udex-slider-tooltip-color);height:var(--udex-slider-tooltip-height);min-width:var(--udex-slider-tooltip-min-width)}[slider-icon]{width:var(--udex-slider-handle-icon-size);height:var(--udex-slider-handle-icon-size)}.ui5-slider-progress-container:after{background-color:var(--udex-slider-progress-after-background)}.ui5-slider-progress-container:before{inset-inline-start:var(--udex-slider-start-end-point-left)}.ui5-slider-progress-container:after{inset-inline-end:var(--udex-slider-start-end-point-right)}.ui5-slider-handle-container{margin-inline-start:calc(-1 * var(--udex-slider-handle-width) / 2);top:var(--udex-slider-handle-top)}.ui5-slider-handle{height:var(--udex-slider-handle-height);width:var(--udex-slider-handle-width)}
|
|
9
9
|
`
|
package/src/themes/Quote.css
CHANGED
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
|
|
55
55
|
/* Text, author and link styles */
|
|
56
56
|
.udex-quote__text-container {
|
|
57
|
+
quotes: "\201C""\201D";
|
|
57
58
|
position: relative;
|
|
58
59
|
margin: 0;
|
|
59
60
|
}
|
|
@@ -180,12 +181,16 @@
|
|
|
180
181
|
}
|
|
181
182
|
|
|
182
183
|
@media (max-width: 639px) {
|
|
183
|
-
.udex-quote__container
|
|
184
|
-
:host([image-placement='right']) .udex-quote__container {
|
|
184
|
+
.udex-quote__container {
|
|
185
185
|
flex-direction: column;
|
|
186
186
|
gap: var(--udexSpacer16);
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
+
:host([image-placement='right']) .udex-quote__container {
|
|
190
|
+
flex-direction: column-reverse;
|
|
191
|
+
gap: var(--udexSpacer16);
|
|
192
|
+
}
|
|
193
|
+
|
|
189
194
|
::slotted([slot='image']) {
|
|
190
195
|
margin: 0 auto;
|
|
191
196
|
}
|