@sapudex/web-components 2.20.0 → 2.21.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 +2 -0
- package/cypress/specs/Feed.cy.tsx +72 -0
- package/cypress/specs/FeedItem.cy.tsx +82 -0
- package/cypress/specs/Footer.cy.tsx +45 -1
- package/cypress/support/component-imports.instrumented.ts +4 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/AssetsVariables.js +4 -0
- package/dist/AssetsVariables.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/Feed.d.ts +88 -0
- package/dist/Feed.js +103 -0
- package/dist/Feed.js.map +1 -0
- package/dist/FeedItem.d.ts +114 -0
- package/dist/FeedItem.js +131 -0
- package/dist/FeedItem.js.map +1 -0
- package/dist/FeedItemTemplate.d.ts +2 -0
- package/dist/FeedItemTemplate.js +16 -0
- package/dist/FeedItemTemplate.js.map +1 -0
- package/dist/FeedTemplate.d.ts +2 -0
- package/dist/FeedTemplate.js +19 -0
- package/dist/FeedTemplate.js.map +1 -0
- package/dist/Footer.d.ts +14 -2
- package/dist/Footer.js +10 -4
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +3 -3
- package/dist/FooterTemplate.js.map +1 -1
- 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-DOj9B3SE.js → InputSuggestions-B0P5JAFd.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-C6q5EhEr.js → ListItemStandardExpandableTextTemplate-CFj3_UAT.js} +1 -1
- package/dist/assets/{bundle.esm-CmHUshBw.js → bundle.esm-BaPBMfCT.js} +211 -205
- package/dist/assets/messagebundle_en-D_yCmNrd.js +1 -0
- package/dist/css/themes/Feed.css +1 -0
- package/dist/css/themes/FeedItem.css +1 -0
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/MediaPlayer.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 +533 -0
- package/dist/custom-elements.json +507 -0
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/themes/Feed.css.d.ts +2 -0
- package/dist/generated/themes/Feed.css.js +8 -0
- package/dist/generated/themes/Feed.css.js.map +1 -0
- package/dist/generated/themes/FeedItem.css.d.ts +2 -0
- package/dist/generated/themes/FeedItem.css.js +8 -0
- package/dist/generated/themes/FeedItem.css.js.map +1 -0
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.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/messagebundle.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/vscode.html-custom-data.json +114 -0
- package/dist/web-types.json +255 -1
- package/package.json +1 -1
- package/src/AssetsVariables.ts +4 -0
- 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/Feed.ts +144 -0
- package/src/FeedItem.ts +198 -0
- package/src/FeedItemTemplate.tsx +60 -0
- package/src/FeedTemplate.tsx +66 -0
- package/src/Footer.ts +20 -4
- package/src/FooterTemplate.tsx +29 -39
- 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/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/Feed.css.ts +9 -0
- package/src/generated/themes/FeedItem.css.ts +9 -0
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/Feed.css +51 -0
- package/src/themes/FeedItem.css +60 -0
- package/src/themes/Footer.css +9 -5
- package/src/themes/MediaPlayer.css +1 -1
- package/dist/assets/messagebundle_en-BhTYnZbC.js +0 -1
- 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
|
@@ -3,6 +3,6 @@ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
3
3
|
import favorite from "@ui5/webcomponents-icons/dist/favorite.js";
|
|
4
4
|
export default function RatingBarTemplate() {
|
|
5
5
|
const rootClass = "udex-rating-bar";
|
|
6
|
-
return (_jsxs("div", { className: `${rootClass}__container`, children: [_jsx("div", { "aria-hidden": "true", className: `${rootClass}__rating`, children: this.validatedRating }), _jsx(UI5Icon, { "aria-labelledby": "ratingDescription", name: favorite, class: `${rootClass}__icon` }), _jsx("div", { className: `${rootClass}__track`, children: _jsx("div", { className: `${rootClass}__progress` }) }), this.showPercentage && (_jsx("div", { role: "note", className: `${rootClass}__percentage`, "aria-label": this.validatedPercentage, children: this.validatedPercentage })), _jsx("span", { id: "ratingDescription", className: "hidden-text", children: this._ratingDescription })] }));
|
|
6
|
+
return (_jsxs("div", { className: `${rootClass}__container`, children: [_jsx("div", { "aria-hidden": "true", className: `${rootClass}__rating`, children: this.validatedRating }), _jsx(UI5Icon, { "aria-labelledby": "ratingDescription", role: "img", name: favorite, class: `${rootClass}__icon` }), _jsx("div", { className: `${rootClass}__track`, children: _jsx("div", { className: `${rootClass}__progress` }) }), this.showPercentage && (_jsx("div", { role: "note", className: `${rootClass}__percentage`, "aria-label": this.validatedPercentage, children: this.validatedPercentage })), _jsx("span", { id: "ratingDescription", className: "hidden-text", children: this._ratingDescription })] }));
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=RatingBarTemplate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RatingBarTemplate.js","sourceRoot":"","sources":["../src/RatingBarTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IAEpC,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,SAAS,aAAa,aACvC,6BACc,MAAM,EAClB,SAAS,EAAE,GAAG,SAAS,UAAU,YAChC,IAAI,CAAC,eAAe,GACjB,EACN,KAAC,OAAO,uBACU,mBAAmB,EACnC,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,GAAG,SAAS,QAAQ,GACnB,EACV,cAAK,SAAS,EAAE,GAAG,SAAS,SAAS,YACnC,cAAK,SAAS,EAAE,GAAG,SAAS,YAAY,GAAQ,GAC5C,EACL,IAAI,CAAC,cAAc,IAAI,CACtB,cACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,GAAG,SAAS,cAAc,gBACzB,IAAI,CAAC,mBAAmB,YACnC,IAAI,CAAC,mBAAmB,GACrB,CACP,EACD,eACE,EAAE,EAAC,mBAAmB,EACtB,SAAS,EAAC,aAAa,YACtB,IAAI,CAAC,kBAAkB,GACnB,IACH,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type RatingBar from \"./RatingBar.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport favorite from \"@ui5/webcomponents-icons/dist/favorite.js\";\n\nexport default function RatingBarTemplate(this: RatingBar) {\n const rootClass = \"udex-rating-bar\";\n\n return (\n <div className={`${rootClass}__container`}>\n <div\n aria-hidden=\"true\"\n className={`${rootClass}__rating`}>\n {this.validatedRating}\n </div>\n <UI5Icon\n aria-labelledby=\"ratingDescription\"\n name={favorite}\n class={`${rootClass}__icon`}>\n </UI5Icon>\n <div className={`${rootClass}__track`}>\n <div className={`${rootClass}__progress`}></div>\n </div>\n {this.showPercentage && (\n <div\n role=\"note\"\n className={`${rootClass}__percentage`}\n aria-label={this.validatedPercentage}>\n {this.validatedPercentage}\n </div>\n )}\n <span\n id=\"ratingDescription\"\n className=\"hidden-text\">\n {this._ratingDescription}\n </span>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RatingBarTemplate.js","sourceRoot":"","sources":["../src/RatingBarTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;IAEpC,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,SAAS,aAAa,aACvC,6BACc,MAAM,EAClB,SAAS,EAAE,GAAG,SAAS,UAAU,YAChC,IAAI,CAAC,eAAe,GACjB,EACN,KAAC,OAAO,uBACU,mBAAmB,EACnC,IAAI,EAAC,KAAK,EACV,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,GAAG,SAAS,QAAQ,GACnB,EACV,cAAK,SAAS,EAAE,GAAG,SAAS,SAAS,YACnC,cAAK,SAAS,EAAE,GAAG,SAAS,YAAY,GAAQ,GAC5C,EACL,IAAI,CAAC,cAAc,IAAI,CACtB,cACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,GAAG,SAAS,cAAc,gBACzB,IAAI,CAAC,mBAAmB,YACnC,IAAI,CAAC,mBAAmB,GACrB,CACP,EACD,eACE,EAAE,EAAC,mBAAmB,EACtB,SAAS,EAAC,aAAa,YACtB,IAAI,CAAC,kBAAkB,GACnB,IACH,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type RatingBar from \"./RatingBar.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport favorite from \"@ui5/webcomponents-icons/dist/favorite.js\";\n\nexport default function RatingBarTemplate(this: RatingBar) {\n const rootClass = \"udex-rating-bar\";\n\n return (\n <div className={`${rootClass}__container`}>\n <div\n aria-hidden=\"true\"\n className={`${rootClass}__rating`}>\n {this.validatedRating}\n </div>\n <UI5Icon\n aria-labelledby=\"ratingDescription\"\n role=\"img\"\n name={favorite}\n class={`${rootClass}__icon`}>\n </UI5Icon>\n <div className={`${rootClass}__track`}>\n <div className={`${rootClass}__progress`}></div>\n </div>\n {this.showPercentage && (\n <div\n role=\"note\"\n className={`${rootClass}__percentage`}\n aria-label={this.validatedPercentage}>\n {this.validatedPercentage}\n </div>\n )}\n <span\n id=\"ratingDescription\"\n className=\"hidden-text\">\n {this._ratingDescription}\n </span>\n </div>\n );\n}\n"]}
|
package/dist/Review.js
CHANGED
|
@@ -9,14 +9,12 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
12
|
-
import
|
|
13
|
-
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
12
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
14
13
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
15
14
|
import { REVIEWS, STARS } from "./generated/i18n/i18n-defaults.js";
|
|
16
15
|
import "@ui5/webcomponents-icons/dist/favorite.js";
|
|
17
16
|
import UDExRatingBar from "./RatingBar.js";
|
|
18
|
-
import
|
|
19
|
-
import ReviewTemplate from "./generated/templates/ReviewTemplate.lit.js";
|
|
17
|
+
import ReviewTemplate from "./ReviewTemplate.js";
|
|
20
18
|
// Styles
|
|
21
19
|
import ReviewCss from "./generated/themes/Review.css.js";
|
|
22
20
|
/**
|
|
@@ -109,10 +107,9 @@ __decorate([
|
|
|
109
107
|
UDExReview = UDExReview_1 = __decorate([
|
|
110
108
|
customElement({
|
|
111
109
|
tag: "udex-review",
|
|
112
|
-
renderer:
|
|
110
|
+
renderer: jsxRenderer,
|
|
113
111
|
styles: ReviewCss,
|
|
114
112
|
template: ReviewTemplate,
|
|
115
|
-
dependencies: [UDExRatingBar, UDExRatingIndicator, Icon],
|
|
116
113
|
})
|
|
117
114
|
], UDExReview);
|
|
118
115
|
UDExReview.define();
|
package/dist/Review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Review.js","sourceRoot":"","sources":["../src/Review.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,
|
|
1
|
+
{"version":3,"file":"Review.js","sourceRoot":"","sources":["../src/Review.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 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/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { REVIEWS, STARS } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/favorite.js\";\nimport UDExRatingBar from \"./RatingBar.js\";\nimport type UDExButton from \"./Button.js\";\nimport ReviewTemplate from \"./ReviewTemplate.js\";\n\n// Styles\nimport ReviewCss from \"./generated/themes/Review.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-review</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Review.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-review\",\n renderer: jsxRenderer,\n styles: ReviewCss,\n template: ReviewTemplate,\n})\n\nclass UDExReview extends UI5Element {\n /**\n * Defines the rating.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n rating: number = 0;\n\n /**\n * Defines the total number of reviews.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n reviews: number = 0;\n\n /**\n * Slot for a button for writing a review.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n reviewButton!: UDExButton;\n\n /**\n * Slot for the default text when there are no reviews or rating.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n defaultText!: HTMLElement;\n\n /**\n * Slot for rating bars.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n bars!: Array<UDExRatingBar>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _minRating: number = 0;\n _maxRating: number = 5;\n _maxRatingBars: number = 5;\n\n get reviewsText(): string {\n return `${this.reviews} ${UDExReview.i18nBundle.getText(REVIEWS)}`;\n }\n\n get withoutBreakdown(): boolean {\n return this.bars.length === 0;\n }\n\n get isEmpty(): boolean {\n return this.reviews === 0 && this.rating === 0;\n }\n\n get validatedRating(): number {\n if (this.rating > this._maxRating) {\n console.warn(\"UDEx Review: The rating shouldn't be more than 5.\");\n return this._maxRating;\n }\n if (this.rating < this._minRating) {\n console.warn(\"UDEx Review: The rating shouldn't be less than 0.\");\n return this._minRating;\n }\n return this.rating;\n }\n\n get validatedRatingBars(): Array<UDExRatingBar> {\n if (this.bars.length > this._maxRatingBars) {\n console.warn(\"UDEx Review: There shouldn't be more than 5 RatingBars.\");\n return this.bars.slice(-this._maxRatingBars);\n }\n\n return this.bars;\n }\n\n get _ratingDescription(): string {\n return `${this.validatedRating} ${UDExRatingBar.i18nBundle.getText(STARS)}`;\n }\n}\n\nUDExReview.define();\n\nexport default UDExReview;\n"]}
|
package/dist/ReviewItem.d.ts
CHANGED
|
@@ -84,7 +84,6 @@ declare class UDExReviewItem extends UI5Element {
|
|
|
84
84
|
*/
|
|
85
85
|
date: Array<HTMLElement>;
|
|
86
86
|
static i18nBundle: I18nBundle;
|
|
87
|
-
_toggleText(): void;
|
|
88
87
|
_handleResizeBound: ResizeObserverCallback;
|
|
89
88
|
_textElement: HTMLElement;
|
|
90
89
|
_visibleText: string;
|
|
@@ -95,6 +94,7 @@ declare class UDExReviewItem extends UI5Element {
|
|
|
95
94
|
onEnterDOM(): void;
|
|
96
95
|
onExitDOM(): void;
|
|
97
96
|
onAfterRendering(): void;
|
|
97
|
+
_toggleText(): void;
|
|
98
98
|
_checkTextOverflow(): void;
|
|
99
99
|
get buttonText(): string;
|
|
100
100
|
get reviewItemClasses(): string;
|
package/dist/ReviewItem.js
CHANGED
|
@@ -8,16 +8,14 @@ var UDExReviewItem_1;
|
|
|
8
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
|
-
import
|
|
11
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
12
12
|
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
13
13
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
14
14
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import ReviewItemTemplate from "./generated/templates/ReviewItemTemplate.lit.js";
|
|
15
|
+
import ReviewItemTemplate from "./ReviewItemTemplate.js";
|
|
16
|
+
import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
18
17
|
// Styles
|
|
19
18
|
import ReviewItemCss from "./generated/themes/ReviewItem.css.js";
|
|
20
|
-
import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
21
19
|
/**
|
|
22
20
|
* @class
|
|
23
21
|
*
|
|
@@ -36,17 +34,6 @@ import { READ_LESS, READ_MORE } from "./generated/i18n/i18n-defaults.js";
|
|
|
36
34
|
* @public
|
|
37
35
|
*/
|
|
38
36
|
let UDExReviewItem = UDExReviewItem_1 = class UDExReviewItem extends UI5Element {
|
|
39
|
-
_toggleText() {
|
|
40
|
-
this._textExpanded = !this._textExpanded;
|
|
41
|
-
if (this._textExpanded) {
|
|
42
|
-
this._completeText = this.text;
|
|
43
|
-
this._textElement.classList.add("udex-review-item__text-expanded");
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
this._textElement.classList.remove("udex-review-item__text-expanded");
|
|
47
|
-
this._completeText = this._visibleText;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
37
|
constructor() {
|
|
51
38
|
super();
|
|
52
39
|
/**
|
|
@@ -79,6 +66,17 @@ let UDExReviewItem = UDExReviewItem_1 = class UDExReviewItem extends UI5Element
|
|
|
79
66
|
this._textElement = this.getTextElement();
|
|
80
67
|
this._checkTextOverflow();
|
|
81
68
|
}
|
|
69
|
+
_toggleText() {
|
|
70
|
+
this._textExpanded = !this._textExpanded;
|
|
71
|
+
if (this._textExpanded) {
|
|
72
|
+
this._completeText = this.text;
|
|
73
|
+
this._textElement.classList.add("udex-review-item__text-expanded");
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this._textElement.classList.remove("udex-review-item__text-expanded");
|
|
77
|
+
this._completeText = this._visibleText;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
82
80
|
_checkTextOverflow() {
|
|
83
81
|
const words = this.text.split(" ");
|
|
84
82
|
const canvas = document.createElement("canvas");
|
|
@@ -158,10 +156,9 @@ __decorate([
|
|
|
158
156
|
UDExReviewItem = UDExReviewItem_1 = __decorate([
|
|
159
157
|
customElement({
|
|
160
158
|
tag: "udex-review-item",
|
|
161
|
-
renderer:
|
|
159
|
+
renderer: jsxRenderer,
|
|
162
160
|
styles: ReviewItemCss,
|
|
163
161
|
template: ReviewItemTemplate,
|
|
164
|
-
dependencies: [UDExRatingIndicator, UDExButton],
|
|
165
162
|
})
|
|
166
163
|
], UDExReviewItem);
|
|
167
164
|
UDExReviewItem.define();
|
package/dist/ReviewItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewItem.js","sourceRoot":"","sources":["../src/ReviewItem.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 property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.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 UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UDExButton from \"./Button.js\";\nimport ReviewItemTemplate from \"./generated/templates/ReviewItemTemplate.lit.js\";\n\n// Styles\nimport ReviewItemCss from \"./generated/themes/ReviewItem.css.js\";\nimport { READ_LESS, READ_MORE } from \"./generated/i18n/i18n-defaults.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-review-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ReviewItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-review-item\",\n renderer: litRender,\n styles: ReviewItemCss,\n template: ReviewItemTemplate,\n dependencies: [UDExRatingIndicator, UDExButton],\n})\n\nclass UDExReviewItem extends UI5Element {\n /**\n * Defines the position of the rating in review.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showRatingTop!: boolean;\n\n /**\n * Defines the rating in the review.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n rating: number = 0;\n\n /**\n * Defines the title of the review.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n reviewTitle!: string;\n\n /**\n * Defines the text of the review.\n * @default \"\"\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Defines whether button for showing truncated text is shown.\n * @default 2\n * @private\n */\n @property({ type: Number })\n _textLineLimit: number = 2;\n\n /**\n * Defines whether the text is expanded.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _textExpanded!: boolean;\n\n /**\n * Defines whether button for showing truncated text is shown.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTextExpander!: boolean;\n\n /**\n * Defines the text, consisting of visible and invisible parts of the original text.\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _completeText!: string;\n\n /**\n * Defines the author's name and company.\n *\n * @default \"\"\n * @slot\n */\n @slot()\n author!: Array<HTMLElement>;\n\n /**\n * Defines the date of the review.\n *\n * @default \"\"\n * @slot\n */\n @slot()\n date!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _toggleText() {\n this._textExpanded = !this._textExpanded;\n if (this._textExpanded) {\n this._completeText = this.text;\n this._textElement.classList.add(\"udex-review-item__text-expanded\");\n } else {\n this._textElement.classList.remove(\"udex-review-item__text-expanded\");\n this._completeText = this._visibleText;\n }\n }\n\n _handleResizeBound: ResizeObserverCallback;\n _textElement!: HTMLElement;\n _visibleText!: string;\n _maxHeight: number = 48;\n _maxRating: number = 5;\n _minRating: number = 0;\n\n constructor() {\n super();\n this._handleResizeBound = this._checkTextOverflow.bind(this);\n }\n\n onEnterDOM(): void {\n this._maxHeight = 48;\n this._completeText = this.text;\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n this._textElement = this.getTextElement();\n this._checkTextOverflow();\n }\n\n _checkTextOverflow() {\n const words = this.text.split(\" \");\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = `16px sans-serif`;\n\n let currentLineWidth = 0;\n let visibleText = \"\";\n\n words.forEach(word => {\n const wordWidth = context.measureText(`${word} `).width;\n if (currentLineWidth + wordWidth <= 2 * this._textElement.offsetWidth) {\n visibleText += `${word} `;\n currentLineWidth += wordWidth;\n }\n });\n\n this._visibleText = visibleText;\n if (!this._textExpanded) {\n this._completeText = visibleText;\n }\n\n this._showTextExpander = (!this._textExpanded && this._completeText.length < this.text.length) || (this._textExpanded && visibleText.length < this.text.length);\n }\n\n get buttonText(): string {\n return this._textExpanded ? UDExReviewItem.i18nBundle.getText(READ_LESS) : UDExReviewItem.i18nBundle.getText(READ_MORE);\n }\n\n get reviewItemClasses(): string {\n const ratingTop = this.showRatingTop ? \" udex-review-item__rating-top\" : \"\";\n return `udex-review-item${ratingTop}`;\n }\n\n get validatedRating(): number {\n if (this.rating > this._maxRating) {\n console.warn(\"UDEx Review: The rating shouldn't be more than 5.\");\n return this._maxRating;\n }\n if (this.rating < this._minRating) {\n console.warn(\"UDEx Review: The rating shouldn't be less than 0.\");\n return this._minRating;\n }\n return this.rating;\n }\n\n getTextElement(): HTMLElement {\n const textElement = this.shadowRoot?.getElementById(\"udex-review-item__text\");\n return textElement!;\n }\n}\n\nUDExReviewItem.define();\n\nexport default UDExReviewItem;\n"]}
|
|
1
|
+
{"version":3,"file":"ReviewItem.js","sourceRoot":"","sources":["../src/ReviewItem.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 property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.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 ReviewItemTemplate from \"./ReviewItemTemplate.js\";\nimport { READ_LESS, READ_MORE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport ReviewItemCss from \"./generated/themes/ReviewItem.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-review-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ReviewItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-review-item\",\n renderer: jsxRenderer,\n styles: ReviewItemCss,\n template: ReviewItemTemplate,\n})\n\nclass UDExReviewItem extends UI5Element {\n /**\n * Defines the position of the rating in review.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showRatingTop!: boolean;\n\n /**\n * Defines the rating in the review.\n *\n * @default 0\n * @public\n */\n @property({ type: Number })\n rating: number = 0;\n\n /**\n * Defines the title of the review.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n reviewTitle!: string;\n\n /**\n * Defines the text of the review.\n * @default \"\"\n * @public\n */\n @property({ type: String })\n text!: string;\n\n /**\n * Defines whether button for showing truncated text is shown.\n * @default 2\n * @private\n */\n @property({ type: Number })\n _textLineLimit: number = 2;\n\n /**\n * Defines whether the text is expanded.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _textExpanded!: boolean;\n\n /**\n * Defines whether button for showing truncated text is shown.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTextExpander!: boolean;\n\n /**\n * Defines the text, consisting of visible and invisible parts of the original text.\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _completeText!: string;\n\n /**\n * Defines the author's name and company.\n *\n * @default \"\"\n * @slot\n */\n @slot()\n author!: Array<HTMLElement>;\n\n /**\n * Defines the date of the review.\n *\n * @default \"\"\n * @slot\n */\n @slot()\n date!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n _textElement!: HTMLElement;\n _visibleText!: string;\n _maxHeight: number = 48;\n _maxRating: number = 5;\n _minRating: number = 0;\n\n constructor() {\n super();\n this._handleResizeBound = this._checkTextOverflow.bind(this);\n }\n\n onEnterDOM(): void {\n this._maxHeight = 48;\n this._completeText = this.text;\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n this._textElement = this.getTextElement();\n this._checkTextOverflow();\n }\n\n _toggleText() {\n this._textExpanded = !this._textExpanded;\n if (this._textExpanded) {\n this._completeText = this.text;\n this._textElement.classList.add(\"udex-review-item__text-expanded\");\n } else {\n this._textElement.classList.remove(\"udex-review-item__text-expanded\");\n this._completeText = this._visibleText;\n }\n }\n\n _checkTextOverflow() {\n const words = this.text.split(\" \");\n\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = `16px sans-serif`;\n\n let currentLineWidth = 0;\n let visibleText = \"\";\n\n words.forEach(word => {\n const wordWidth = context.measureText(`${word} `).width;\n if (currentLineWidth + wordWidth <= 2 * this._textElement.offsetWidth) {\n visibleText += `${word} `;\n currentLineWidth += wordWidth;\n }\n });\n\n this._visibleText = visibleText;\n if (!this._textExpanded) {\n this._completeText = visibleText;\n }\n\n this._showTextExpander = (!this._textExpanded && this._completeText.length < this.text.length) || (this._textExpanded && visibleText.length < this.text.length);\n }\n\n get buttonText(): string {\n return this._textExpanded ? UDExReviewItem.i18nBundle.getText(READ_LESS) : UDExReviewItem.i18nBundle.getText(READ_MORE);\n }\n\n get reviewItemClasses(): string {\n const ratingTop = this.showRatingTop ? \" udex-review-item__rating-top\" : \"\";\n return `udex-review-item${ratingTop}`;\n }\n\n get validatedRating(): number {\n if (this.rating > this._maxRating) {\n console.warn(\"UDEx Review: The rating shouldn't be more than 5.\");\n return this._maxRating;\n }\n if (this.rating < this._minRating) {\n console.warn(\"UDEx Review: The rating shouldn't be less than 0.\");\n return this._minRating;\n }\n return this.rating;\n }\n\n getTextElement(): HTMLElement {\n const textElement = this.shadowRoot?.getElementById(\"udex-review-item__text\");\n return textElement!;\n }\n}\n\nUDExReviewItem.define();\n\nexport default UDExReviewItem;\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
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
|
+
export default function ReviewItemTemplate() {
|
|
7
|
+
const rootClass = "udex-review-item";
|
|
8
|
+
return (_jsxs("div", { className: this.reviewItemClasses, children: [_jsxs("div", { className: `${rootClass}__rating-container`, children: [_jsx(UDExRatingIndicator, { value: this.validatedRating, max: this._maxRating, readonly: true }), this.date && (_jsx("slot", { className: `${rootClass}__date`, slot: "date", name: "date" }))] }), _jsxs("div", { className: `${rootClass}__text-container`, children: [_jsx("div", { className: `${rootClass}__title`, children: this.reviewTitle }), _jsxs("div", { className: `${rootClass}__text-wrapper`, children: [_jsx("p", { className: `${rootClass}__text`, id: `${rootClass}__text`, children: this._completeText }), this._showTextExpander && (_jsx(UDExButton, { id: "reviewExpander", class: `${rootClass}__text-expander`, design: UDExButtonDesign.Invisible, size: UDExButtonSize.Large, onClick: this._toggleText.bind(this), children: this.buttonText }))] }), this.author && (_jsx("slot", { slot: "author", name: "author", className: `${rootClass}__author` }))] })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ReviewItemTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewItemTemplate.js","sourceRoot":"","sources":["../src/ReviewItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,sBAAsB,CAAC;AACvD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,kBAAkB;IACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC;IAErC,OAAO,CACL,eAAK,SAAS,EAAE,IAAI,CAAC,iBAAiB,aACpC,eAAK,SAAS,EAAE,GAAG,SAAS,oBAAoB,aAC9C,KAAC,mBAAmB,IAClB,KAAK,EAAE,IAAI,CAAC,eAAe,EAC3B,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,QAAQ,SACY,EACrB,IAAI,CAAC,IAAI,IAAI,CACZ,eACE,SAAS,EAAE,GAAG,SAAS,QAAQ,EAC/B,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,MAAM,GACN,CACR,IACG,EACN,eAAK,SAAS,EAAE,GAAG,SAAS,kBAAkB,aAC5C,cAAK,SAAS,EAAE,GAAG,SAAS,SAAS,YAAG,IAAI,CAAC,WAAW,GAAO,EAC/D,eAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,aAC1C,YAAG,SAAS,EAAE,GAAG,SAAS,QAAQ,EAAE,EAAE,EAAE,GAAG,SAAS,QAAQ,YACzD,IAAI,CAAC,aAAa,GACjB,EACH,IAAI,CAAC,iBAAiB,IAAI,CACzB,KAAC,UAAU,IACT,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,GAAG,SAAS,iBAAiB,EACpC,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAClC,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YACnC,IAAI,CAAC,UAAU,GACL,CACd,IACG,EACL,IAAI,CAAC,MAAM,IAAI,CACd,eAAM,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,SAAS,UAAU,GAAS,CAC7E,IACG,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type ReviewItem from \"./ReviewItem.js\";\nimport UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\n\nexport default function ReviewItemTemplate(this: ReviewItem) {\n const rootClass = \"udex-review-item\";\n\n return (\n <div className={this.reviewItemClasses}>\n <div className={`${rootClass}__rating-container`}>\n <UDExRatingIndicator\n value={this.validatedRating}\n max={this._maxRating}\n readonly>\n </UDExRatingIndicator>\n {this.date && (\n <slot\n className={`${rootClass}__date`}\n slot=\"date\"\n name=\"date\">\n </slot>\n )}\n </div>\n <div className={`${rootClass}__text-container`}>\n <div className={`${rootClass}__title`}>{this.reviewTitle}</div>\n <div className={`${rootClass}__text-wrapper`}>\n <p className={`${rootClass}__text`} id={`${rootClass}__text`}>\n {this._completeText}\n </p>\n {this._showTextExpander && (\n <UDExButton\n id=\"reviewExpander\"\n class={`${rootClass}__text-expander`}\n design={UDExButtonDesign.Invisible}\n size={UDExButtonSize.Large}\n onClick={this._toggleText.bind(this)}>\n {this.buttonText}\n </UDExButton>\n )}\n </div>\n {this.author && (\n <slot slot=\"author\" name=\"author\" className={`${rootClass}__author`}></slot>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
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
|
+
export default function ReviewTemplate() {
|
|
6
|
+
const rootClass = "udex-review";
|
|
7
|
+
return (this.isEmpty ? (_jsxs("div", { className: `${rootClass}__empty-container`, children: [_jsx("slot", { className: `${rootClass}__default-text`, name: "defaultText" }), _jsx("slot", { name: "reviewButton" })] })) : this.withoutBreakdown ? (_jsxs("div", { className: `${rootClass}__container-without-breakdown`, children: [_jsxs("div", { className: `${rootClass}__content-without-breakdown`, children: [_jsx("div", { className: `${rootClass}__rating`, "aria-level": 2, role: "heading", "aria-hidden": "true", children: this.validatedRating }), _jsxs("div", { className: `${rootClass}__rating-info-without-breakdown`, children: [_jsx(UDExRatingIndicator, { value: this.validatedRating, max: this._maxRating, readonly: true }), _jsx("div", { className: `${rootClass}__reviews-text`, children: this.reviewsText })] })] }), _jsxs("div", { className: `${rootClass}__additional-content-without-breakdown`, children: [_jsx("slot", { className: `${rootClass}__default-text`, name: "defaultText" }), _jsx("slot", { name: "reviewButton" })] })] })) : (_jsxs("div", { className: `${rootClass}__container`, children: [_jsxs("div", { className: `${rootClass}__content`, children: [_jsxs("div", { className: `${rootClass}__rating-info`, children: [_jsx("div", { className: `${rootClass}__rating`, "aria-level": 2, role: "heading", "aria-hidden": "true", children: this.validatedRating }), _jsx(UI5Icon, { "aria-labelledby": "ratingDescription", role: "img", name: favorite, class: `${rootClass}__icon` })] }), _jsx("div", { className: `${rootClass}__reviews-text`, children: this.reviewsText }), _jsx("slot", { name: "reviewButton" })] }), _jsx("div", { className: `${rootClass}__additional-content`, children: this.validatedRatingBars.map(bar => (_jsx("slot", { name: bar._individualSlot }))) }), _jsx("span", { id: "ratingDescription", class: "hidden-text", children: this._ratingDescription })] })));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ReviewTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewTemplate.js","sourceRoot":"","sources":["../src/ReviewTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,mBAAmB,MAAM,sBAAsB,CAAC;AACvD,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,QAAQ,MAAM,2CAA2C,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,cAAc;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC;IAEhC,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CACb,eAAK,SAAS,EAAE,GAAG,SAAS,mBAAmB,aAC7C,eAAM,SAAS,EAAE,GAAG,SAAS,gBAAgB,EAAE,IAAI,EAAC,aAAa,GAAQ,EACzE,eAAM,IAAI,EAAC,cAAc,GAAQ,IAC7B,CACP,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAC1B,eAAK,SAAS,EAAE,GAAG,SAAS,+BAA+B,aACzD,eAAK,SAAS,EAAE,GAAG,SAAS,6BAA6B,aACvD,cACE,SAAS,EAAE,GAAG,SAAS,UAAU,gBACrB,CAAC,EACb,IAAI,EAAC,SAAS,iBACF,MAAM,YACjB,IAAI,CAAC,eAAe,GACjB,EACN,eAAK,SAAS,EAAE,GAAG,SAAS,iCAAiC,aAC3D,KAAC,mBAAmB,IAClB,KAAK,EAAE,IAAI,CAAC,eAAe,EAC3B,GAAG,EAAE,IAAI,CAAC,UAAU,EACpB,QAAQ,SACY,EACtB,cAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,YAAG,IAAI,CAAC,WAAW,GAAO,IAClE,IACF,EACN,eAAK,SAAS,EAAE,GAAG,SAAS,wCAAwC,aAClE,eAAM,SAAS,EAAE,GAAG,SAAS,gBAAgB,EAAE,IAAI,EAAC,aAAa,GAAQ,EACzE,eAAM,IAAI,EAAC,cAAc,GAAQ,IAC7B,IACF,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAE,GAAG,SAAS,aAAa,aACvC,eAAK,SAAS,EAAE,GAAG,SAAS,WAAW,aACrC,eAAK,SAAS,EAAE,GAAG,SAAS,eAAe,aACzC,cACE,SAAS,EAAE,GAAG,SAAS,UAAU,gBACrB,CAAC,EACb,IAAI,EAAC,SAAS,iBACF,MAAM,YACjB,IAAI,CAAC,eAAe,GACjB,EACN,KAAC,OAAO,uBACU,mBAAmB,EACnC,IAAI,EAAC,KAAK,EACV,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,GAAG,SAAS,QAAQ,GACnB,IACN,EACN,cAAK,SAAS,EAAE,GAAG,SAAS,gBAAgB,YAAG,IAAI,CAAC,WAAW,GAAO,EACtE,eAAM,IAAI,EAAC,cAAc,GAAQ,IAC7B,EACN,cAAK,SAAS,EAAE,GAAG,SAAS,sBAAsB,YAC/C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACnC,eAAM,IAAI,EAAE,GAAG,CAAC,eAAe,GAAS,CACzC,CAAC,GACE,EACN,eAAM,EAAE,EAAC,mBAAmB,EAAC,KAAK,EAAC,aAAa,YAAE,IAAI,CAAC,kBAAkB,GAAQ,IAC7E,CACP,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type Review from \"./Review.js\";\nimport UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport favorite from \"@ui5/webcomponents-icons/dist/favorite.js\";\n\nexport default function ReviewTemplate(this: Review) {\n const rootClass = \"udex-review\";\n\n return (\n this.isEmpty ? (\n <div className={`${rootClass}__empty-container`}>\n <slot className={`${rootClass}__default-text`} name=\"defaultText\"></slot>\n <slot name=\"reviewButton\"></slot>\n </div>\n ) : this.withoutBreakdown ? (\n <div className={`${rootClass}__container-without-breakdown`}>\n <div className={`${rootClass}__content-without-breakdown`}>\n <div\n className={`${rootClass}__rating`}\n aria-level={2}\n role=\"heading\"\n aria-hidden=\"true\">\n {this.validatedRating}\n </div>\n <div className={`${rootClass}__rating-info-without-breakdown`}>\n <UDExRatingIndicator\n value={this.validatedRating}\n max={this._maxRating}\n readonly>\n </UDExRatingIndicator>\n <div className={`${rootClass}__reviews-text`}>{this.reviewsText}</div>\n </div>\n </div>\n <div className={`${rootClass}__additional-content-without-breakdown`}>\n <slot className={`${rootClass}__default-text`} name=\"defaultText\"></slot>\n <slot name=\"reviewButton\"></slot>\n </div>\n </div>\n ) : (\n <div className={`${rootClass}__container`}>\n <div className={`${rootClass}__content`}>\n <div className={`${rootClass}__rating-info`}>\n <div\n className={`${rootClass}__rating`}\n aria-level={2}\n role=\"heading\"\n aria-hidden=\"true\">\n {this.validatedRating}\n </div>\n <UI5Icon\n aria-labelledby=\"ratingDescription\"\n role=\"img\"\n name={favorite}\n class={`${rootClass}__icon`}>\n </UI5Icon>\n </div>\n <div className={`${rootClass}__reviews-text`}>{this.reviewsText}</div>\n <slot name=\"reviewButton\"></slot>\n </div>\n <div className={`${rootClass}__additional-content`}>\n {this.validatedRatingBars.map(bar => (\n <slot name={bar._individualSlot}></slot>\n ))}\n </div>\n <span id=\"ratingDescription\" class=\"hidden-text\">{this._ratingDescription}</span>\n </div>\n )\n );\n}\n"]}
|
package/dist/TileTemplate.js
CHANGED
|
@@ -2,6 +2,6 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@ui5/webcompo
|
|
|
2
2
|
export default function TileTemplate() {
|
|
3
3
|
const rootClass = "udex-tile";
|
|
4
4
|
const part = "tile";
|
|
5
|
-
return (this.interactive ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "hidden", id: "tileDescription", children: this.accessibleName }), _jsx("a", { className: rootClass, part: part, href: this.href, target: this.target, role: "link", "aria-describedby": "tileDescription", onKeyDown: this._onkeydown, onClick: this._onclick, children: _jsx("slot", {}) })] })) : (_jsx("div", { className: rootClass, part: part, onClick: this._onclick, children: _jsx("slot", {}) })));
|
|
5
|
+
return (this.interactive ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "hidden", id: "tileDescription", children: this.accessibleName }), _jsx("a", { className: rootClass, part: part, tabindex: 0, href: this.href, target: this.target, role: "link", "aria-describedby": "tileDescription", onKeyDown: this._onkeydown, onClick: this._onclick, children: _jsx("slot", {}) })] })) : (_jsx("div", { className: rootClass, part: part, onClick: this._onclick, children: _jsx("slot", {}) })));
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=TileTemplate.js.map
|
package/dist/TileTemplate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileTemplate.js","sourceRoot":"","sources":["../src/TileTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,MAAM,SAAS,GAAG,WAAW,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,OAAO,CACL,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,8BACE,eAAM,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAQ,EAC1E,YACE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAC,MAAM,sBACM,iBAAiB,EAClC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,YACtB,gBAAa,GACX,IACH,CACJ,CAAC,CAAC,CAAC,CACF,cACE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,QAAQ,YACtB,gBAAa,GACT,CACP,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type Tile from \"./Tile.js\";\n\nexport default function TileTemplate(this: Tile) {\n const rootClass = \"udex-tile\";\n const part = \"tile\";\n return (\n this.interactive ? (\n <>\n <span className=\"hidden\" id=\"tileDescription\">{this.accessibleName}</span>\n <a\n className={rootClass}\n part={part}\n href={this.href}\n target={this.target}\n role=\"link\"\n aria-describedby=\"tileDescription\"\n onKeyDown={this._onkeydown}\n onClick={this._onclick}>\n <slot></slot>\n </a>\n </>\n ) : (\n <div\n className={rootClass}\n part={part}\n onClick={this._onclick}>\n <slot></slot>\n </div>\n )\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TileTemplate.js","sourceRoot":"","sources":["../src/TileTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,MAAM,SAAS,GAAG,WAAW,CAAC;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,OAAO,CACL,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACjB,8BACE,eAAM,SAAS,EAAC,QAAQ,EAAC,EAAE,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAQ,EAC1E,YACE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAC,MAAM,sBACM,iBAAiB,EAClC,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,YACtB,gBAAa,GACX,IACH,CACJ,CAAC,CAAC,CAAC,CACF,cACE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,QAAQ,YACtB,gBAAa,GACT,CACP,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type Tile from \"./Tile.js\";\n\nexport default function TileTemplate(this: Tile) {\n const rootClass = \"udex-tile\";\n const part = \"tile\";\n return (\n this.interactive ? (\n <>\n <span className=\"hidden\" id=\"tileDescription\">{this.accessibleName}</span>\n <a\n className={rootClass}\n part={part}\n tabindex={0}\n href={this.href}\n target={this.target}\n role=\"link\"\n aria-describedby=\"tileDescription\"\n onKeyDown={this._onkeydown}\n onClick={this._onclick}>\n <slot></slot>\n </a>\n </>\n ) : (\n <div\n className={rootClass}\n part={part}\n onClick={this._onclick}>\n <slot></slot>\n </div>\n )\n );\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as w,j as l,a as c,p as x,d as P,b as R,s as p,m as v,u as S,v as y,w as O,x as L,D,c as A,z as G,I as b,A as I,F as H,B as f,R as E,C as V,G as $,H as B,J as N}from"./bundle.esm-
|
|
1
|
+
import{r as w,j as l,a as c,p as x,d as P,b as R,s as p,m as v,u as S,v as y,w as O,x as L,D,c as A,z as G,I as b,A as I,F as H,B as f,R as E,C as V,G as $,H as B,J as N}from"./bundle.esm-BaPBMfCT.js";const F=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function _(n,e,t,s){return n.replaceAll(new RegExp(F(e),`${s?"i":""}g`),t)}function M(n,e){if(!n||!e)return n;const t=r=>{const[a,d]=r.split("");for(;n.indexOf(r)>=0||e.indexOf(r)>=0;)r=`${a}${r}${d}`;return r},s=t("12"),i=t("34");let o=w(_(n,e,r=>`${s}${r}${i}`,!0));return[[s,"<b>"],[i,"</b>"]].forEach(([r,a])=>{o=_(o,r,a,!1)}),o}function z(n,e){const t=(n==null?void 0:n.listItemContent)||q;return l("li",{part:"native-li","data-sap-focus-ref":!0,tabindex:this._effectiveTabIndex,class:this.classes.main,draggable:this.movable,role:e==null?void 0:e.role,title:e==null?void 0:e.title,onFocusIn:this._onfocusin,onKeyUp:this._onkeyup,onKeyDown:this._onkeydown,onClick:this._onclick,children:t.call(this)})}function q(){return l("div",{part:"content",id:`${this._id}-content`,class:"ui5-li-content",children:l("div",{class:"ui5-li-text-wrapper",children:l("span",{part:"title",class:"ui5-li-title",children:l("slot",{})})})})}function U(){return[z.call(this,{listItemContent:K},{role:"option"})]}function K(){return l("div",{part:"content",id:"content",class:"ui5-li-content",children:c("div",{class:"ui5-li-text-wrapper",children:[l("span",{part:"title",className:"ui5-li-title",dangerouslySetInnerHTML:{__html:this.markupText}}),this.additionalText&&l("span",{part:"additional-text",class:"ui5-li-additional-text",children:this.additionalText})]})})}x("@ui5/webcomponents-theming","sap_horizon",async()=>P);x("@ui5/webcomponents","sap_horizon",async()=>R);const W=`:host([ui5-suggestion-item]){height:auto;min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-root{min-height:var(--_ui5-v2-17-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-content{padding-bottom:.5rem;padding-top:.5rem;box-sizing:border-box}
|
|
2
2
|
`;var g=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(i<3?r(o):i>3?r(e,t,o):r(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let h=class extends S{constructor(){super(...arguments),this.markupText=""}onEnterDOM(){y()&&this.setAttribute("desktop","")}get _effectiveTabIndex(){return-1}};g([p()],h.prototype,"text",void 0);g([p()],h.prototype,"additionalText",void 0);g([p()],h.prototype,"markupText",void 0);h=g([v({tag:"ui5-suggestion-item",template:U,styles:[S.styles,W]})],h);h.define();function J(n){const e=(n==null?void 0:n.items)||X;return c("ul",{role:"group",class:"ui5-group-li-root",onDragEnter:this._ondragenter,onDragOver:this._ondragover,onDrop:this._ondrop,onDragLeave:this._ondragleave,children:[this.hasHeader&&l(L,{focused:this.focused,part:"header",accessibleRole:O.Group,children:this.hasFormattedHeader?l("slot",{name:"header"}):this.headerText}),e.call(this),l(D,{orientation:"Horizontal",ownerReference:this})]})}function X(){return l("slot",{})}var T=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(r=n[a])&&(o=(i<3?r(o):i>3?r(e,t,o):r(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let m=class extends G{};T([A({default:!0,invalidateOnChildChange:!0,type:HTMLElement})],m.prototype,"items",void 0);m=T([v({tag:"ui5-suggestion-item-group",template:J})],m);m.define();function j(n){const e=(n==null?void 0:n.suggestionsList)||Q,t=n==null?void 0:n.mobileHeader,s=n==null?void 0:n.valueStateMessage,i=n==null?void 0:n.valueStateMessageInputIcon;return c(E,{class:this.classes.popover,hideArrow:!0,preventFocusRestore:!0,preventInitialFocus:!0,placement:"Bottom",horizontalAlign:"Start",tabindex:-1,style:this.styles.suggestionsPopover,onOpen:this._afterOpenPicker,onClose:this._afterClosePicker,onScroll:this._scroll,open:this.open,opener:this,accessibleName:this._popupLabel,children:[this._isPhone&&l(H,{children:c("div",{slot:"header",class:"ui5-responsive-popover-header",children:[l("div",{class:"row",children:l("span",{children:this._headerTitleText})}),l("div",{class:"row",children:c("div",{class:"input-root-phone native-input-wrapper",children:[l(b,{class:"ui5-input-inner-phone",type:this.inputType,value:this.value,showClearIcon:this.showClearIcon,placeholder:this.placeholder,onInput:this._handleInput}),t==null?void 0:t.call(this)]})}),this.hasValueStateMessage&&c("div",{class:this.classes.popoverValueState,style:this.styles.suggestionPopoverHeader,children:[l(I,{class:"ui5-input-value-state-message-icon",name:i==null?void 0:i.call(this)}),this.open&&(s==null?void 0:s.call(this))]})]})}),!this._isPhone&&this.hasValueStateMessage&&c("div",{slot:"header",class:{"ui5-responsive-popover-header":!0,...this.classes.popoverValueState},style:this.styles.suggestionPopoverHeader,children:[l(I,{class:"ui5-input-value-state-message-icon",name:i==null?void 0:i.call(this)}),this.open&&(s==null?void 0:s.call(this))]}),this.showSuggestions&&e.call(this),this._isPhone&&c("div",{slot:"footer",class:"ui5-responsive-popover-footer",children:[l(f,{design:"Emphasized",onClick:this._confirmMobileValue,children:this._suggestionsOkButtonText}),l(f,{class:"ui5-responsive-popover-close-btn",design:"Transparent",onClick:this._cancelMobileValue,children:this._suggestionsCancelButtonText})]})]})}function Q(){return l($,{accessibleRole:V.ListBox,separators:this.suggestionSeparators,selectionMode:"Single",onMouseDown:this.onItemMouseDown,onItemClick:this._handleSuggestionItemPress,onSelectionChange:this._handleSelectionChange,children:l("slot",{})})}class u{get template(){return j}constructor(e,t,s,i){this.component=e,this.slotName=t,this.handleFocus=i,this.highlight=s,this.selectedItemIndex=-1}onUp(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!1,s),!0}onDown(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!0,s),!0}onSpace(e){return this._isItemOnTarget()?(e.preventDefault(),this.onItemSelected(this._selectedItem,!0),!0):!1}onEnter(e){return this._isGroupItem?(e.preventDefault(),!1):this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}onPageUp(e){e.preventDefault();const t=this.selectedItemIndex-10>-1;return this._moveItemSelection(this.selectedItemIndex,t?this.selectedItemIndex-=10:this.selectedItemIndex=0),!0}onPageDown(e){e.preventDefault();const t=this._getItems();if(!t)return!0;const s=t.length-1,i=this.selectedItemIndex+10<=s;return this._moveItemSelection(this.selectedItemIndex,i?this.selectedItemIndex+=10:this.selectedItemIndex=s),!0}onHome(e){return e.preventDefault(),this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=0),!0}onEnd(e){e.preventDefault();const t=this._getItems().length-1;return t&&this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=t),!0}onTab(){return this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}toggle(e,t){(e!==void 0?e:!this.isOpened())?this._getComponent().open=!0:this.close(t.preventFocusRestore)}get _selectedItem(){return this._getNonGroupItems().find(e=>e.selected)}_isScrollable(){const e=this._getScrollContainer();return e.offsetHeight<e.scrollHeight}close(e=!1){const t=this._getItems()&&this._getItems()[this.selectedItemIndex];this._getComponent().open=!1;const s=this._getPicker();s.preventFocusRestore=e,s.open=!1,t&&t.focused&&(t.focused=!1)}updateSelectedItemPosition(e){this.selectedItemIndex=e}onItemSelected(e,t){const s=e,i=this._getNonGroupItems();s&&(this.accInfo={isGroup:s.hasAttribute("ui5-suggestion-item-group"),currentPos:i.indexOf(s)+1,listSize:i.length,itemText:s.text||"",additionalText:s.additionalText},this._getComponent().onItemSelected(s,t),this._getComponent().open=!1)}onItemSelect(e){this._getComponent().onItemSelect(e)}onItemPress(e){let t;const s=e.type==="ui5-item-click";s&&!e.detail.item.selected||this._handledPress&&!s||(s&&e.detail.item.selected?(t=e.detail.item,this._handledPress=!0):t=e.detail.selectedItems[0],this.onItemSelected(t,!1))}_onClose(){this._handledPress=!1}_isItemOnTarget(){return this.isOpened()&&this.selectedItemIndex!==null&&this.selectedItemIndex!==-1&&!this._isGroupItem}get _isGroupItem(){const e=this._getItems();return!e||!e[this.selectedItemIndex]?!1:e[this.selectedItemIndex].hasAttribute("ui5-suggestion-item-group")}isOpened(){var e;return!!((e=this._getPicker())!=null&&e.open)}_handleItemNavigation(e,t){this.selectedItemIndex=t,this._getItems().length&&(e?this._selectNextItem():this._selectPreviousItem())}_selectNextItem(){const e=this._getItems().length,t=this.selectedItemIndex;t!==-1&&t+1>e-1||this._moveItemSelection(t,++this.selectedItemIndex)}_selectPreviousItem(){const e=this._getItems(),t=this.selectedItemIndex;if(!(t===-1||t===null)){if(t-1<0){(e[t].hasAttribute("ui5-suggestion-item")||e[t].hasAttribute("ui5-suggestion-item-custom"))&&(e[t].selected=!1),e[t].focused=!1,this.component.focused=!0,this.component.hasSuggestionItemSelected=!1,this.selectedItemIndex-=1;return}this._moveItemSelection(t,--this.selectedItemIndex)}}_moveItemSelection(e,t){const s=this._getItems(),i=s[t],o=s[e],r=this._getNonGroupItems(),a=i.hasAttribute("ui5-suggestion-item-group");if(!i)return;this.component.focused=!1;const d=this._getItems()[this.selectedItemIndex];if(this.accInfo={isGroup:a,currentPos:s.indexOf(i)+1,itemText:(a?d.headerText:d.text)||""},(i.hasAttribute("ui5-suggestion-item")||i.hasAttribute("ui5-suggestion-item-custom"))&&(this.accInfo.additionalText=i.additionalText||"",this.accInfo.currentPos=r.indexOf(i)+1,this.accInfo.listSize=r.length),o&&(o.focused=!1),(o!=null&&o.hasAttribute("ui5-suggestion-item")||o!=null&&o.hasAttribute("ui5-suggestion-item-custom"))&&(o.selected=!1),i&&(i.focused=!0,a||(i.selected=!0),this.handleFocus&&i.focus()),this.component.hasSuggestionItemSelected=!0,this.onItemSelect(i),!this._isItemIntoView(i)){const C=this._isGroupItem?i.shadowRoot.querySelector("[ui5-li-group-header]"):i;this._scrollItemIntoView(C)}}_deselectItems(){this._getItems().forEach(t=>{t.hasAttribute("ui5-suggestion-item")&&(t.selected=!1),t.focused=!1})}_clearItemFocus(){const e=this._getItems().find(t=>t.focused);e&&(e.focused=!1)}_isItemIntoView(e){const t=e.getDomRef().getBoundingClientRect(),s=this._getComponent().getDomRef().getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight;let o=0;return this._hasValueState&&(o=this._getPicker().querySelector("[slot=header]").getBoundingClientRect().height),t.top+u.SCROLL_STEP<=i&&t.top>=s.top+o}_scrollItemIntoView(e){e.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"})}_getScrollContainer(){return this._scrollContainer||(this._scrollContainer=this._getPicker().shadowRoot.querySelector(".ui5-popup-content")),this._scrollContainer}_getItems(){return this._getComponent().getSlottedNodes("suggestionItems").flatMap(t=>t.hasAttribute("ui5-suggestion-item-group")?[t,...t.items]:[t])}_getNonGroupItems(){return this._getItems().filter(e=>!e.hasAttribute("ui5-suggestion-item-group"))}_getComponent(){return this.component}_getList(){return this._getPicker().querySelector("[ui5-list]")}_getListWidth(){var e;return(e=this._getList())==null?void 0:e.offsetWidth}_getPicker(){return this._getComponent().shadowRoot.querySelector("[ui5-responsive-popover]")}get itemSelectionAnnounce(){if(!this.accInfo)return"";if(this.accInfo.isGroup)return`${u.i18nBundle.getText(B)} ${this.accInfo.itemText}`;const e=u.i18nBundle.getText(N,this.accInfo.currentPos||0,this.accInfo.listSize||0);return`${this.accInfo.additionalText} ${e}`}hightlightInput(e,t){return M(e,t)}get _hasValueState(){return this.component.hasValueStateMessage}_clearSelectedSuggestionAndaccInfo(){this.accInfo=void 0,this.selectedItemIndex=0}}u.SCROLL_STEP=60;b.SuggestionsClass=u;export{u as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,c as C,i as P,m as O,y as B,e as w,f as I,t as A,E as L,g as R,L as S,R as M,B as N,h as F,k as D,l as X,n as j,o as z,q as k}from"./bundle.esm-
|
|
1
|
+
import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,c as C,i as P,m as O,y as B,e as w,f as I,t as A,E as L,g as R,L as S,R as M,B as N,h as F,k as D,l as X,n as j,o as z,q as k}from"./bundle.esm-BaPBMfCT.js";var T;(function(t){t.InPlace="InPlace",t.Popover="Popover"})(T||(T={}));const $=T;var g;(function(t){t.Off="Off",t.On="On"})(g||(g={}));const H=g;function W(){return o(y,{children:o("span",{children:this._renderEmptyIndicator?_(y,{children:[o("span",{className:"empty-indicator","aria-hidden":"true",children:this._emptyIndicatorSymbol}),o("span",{className:"empty-indicator-aria-label",children:this._emptyIndicatorAriaLabel})]}):o("slot",{})})})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const q=`:host{max-width:100%;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);color:var(--sapTextColor);line-height:normal;cursor:text;overflow:hidden}:host([max-lines="1"]){display:inline-block;text-overflow:ellipsis;white-space:nowrap}:host(:not([max-lines="1"])){display:-webkit-box;-webkit-line-clamp:var(--_ui5-v2-17-0_text_max_lines);line-clamp:var(--_ui5-v2-17-0_text_max_lines);-webkit-box-orient:vertical;white-space:normal;word-wrap:break-word}.empty-indicator-aria-label{position:absolute!important;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0;font-size:0}
|
|
2
2
|
`;var u=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},f;let p=f=class extends w{constructor(){super(...arguments),this.maxLines=1/0,this.emptyIndicatorMode="Off"}onBeforeRendering(){this.style.setProperty(I("--_ui5_text_max_lines"),`${this.maxLines}`)}get hasText(){return A(this.text)}get _renderEmptyIndicator(){return!this.hasText&&this.emptyIndicatorMode===H.On}get _emptyIndicatorAriaLabel(){return f.i18nBundle.getText(L)}get _emptyIndicatorSymbol(){return f.i18nBundle.getText(R)}};u([x({type:Number})],p.prototype,"maxLines",void 0);u([x()],p.prototype,"emptyIndicatorMode",void 0);u([C({type:Node,default:!0})],p.prototype,"text",void 0);u([P("@ui5/webcomponents")],p,"i18nBundle",void 0);p=f=u([O({tag:"ui5-text",renderer:B,template:W,styles:q})],p);p.define();const v=p;function Y(){return _("div",{children:[o(v,{class:"ui5-exp-text-text",emptyIndicatorMode:this.emptyIndicatorMode,children:this._displayedText}),this._maxCharactersExceeded&&_(y,{children:[o("span",{class:"ui5-exp-text-ellipsis",children:this._ellipsisText}),o(S,{id:"toggle",class:"ui5-exp-text-toggle",accessibleRole:"Button",accessibleName:this._accessibleNameForToggle,accessibilityAttributes:this._accessibilityAttributesForToggle,onClick:this._handleToggleClick,children:this._textForToggle}),this._usePopover&&_(M,{open:this._expanded,opener:"toggle",accessibleNameRef:"popover-text",contentOnlyOnDesktop:!0,_hideHeader:!0,class:"ui5-exp-text-popover",onClose:this._handlePopoverClose,children:[o(v,{id:"popover-text",children:this.text}),o("div",{slot:"footer",class:"ui5-exp-text-footer",children:o(N,{design:"Transparent",onClick:this._handleCloseButtonClick,children:this._closeButtonText})})]})]})]})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const V=`:host{display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);color:var(--sapTextColor)}:host([hidden]){display:none}.ui5-exp-text-text{display:inline}.ui5-exp-text-text,.ui5-exp-text-toggle{font-family:inherit;font-size:inherit}.ui5-exp-text-text,.ui5-exp-text-ellipsis{color:inherit}.ui5-exp-text-popover::part(content){padding-inline:1rem}.ui5-exp-text-footer{width:100%;display:flex;align-items:center;justify-content:flex-end}
|
|
3
3
|
`;var h=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},c;let r=c=class extends w{constructor(){super(...arguments),this.maxCharacters=100,this.overflowMode="InPlace",this.emptyIndicatorMode="Off",this._expanded=!1}getFocusDomRef(){var e,n;return this._usePopover?(e=this.shadowRoot)==null?void 0:e.querySelector("[ui5-responsive-popover]"):(n=this.shadowRoot)==null?void 0:n.querySelector("[ui5-link]")}get _displayedText(){var e;return this._expanded&&!this._usePopover?this.text:(e=this.text)==null?void 0:e.substring(0,this.maxCharacters)}get _maxCharactersExceeded(){var e;return(((e=this.text)==null?void 0:e.length)||0)>this.maxCharacters}get _usePopover(){return this.overflowMode===$.Popover}get _ellipsisText(){return this._expanded&&!this._usePopover?" ":"... "}get _textForToggle(){return this._expanded?c.i18nBundle.getText(F):c.i18nBundle.getText(D)}get _closeButtonText(){return c.i18nBundle.getText(X)}get _accessibilityAttributesForToggle(){return this._usePopover?{expanded:this._expanded,hasPopup:"dialog"}:{expanded:this._expanded}}get _accessibleNameForToggle(){if(this._usePopover)return this._expanded?c.i18nBundle.getText(j):c.i18nBundle.getText(z)}_handlePopoverClose(){k()||(this._expanded=!1)}_handleToggleClick(){this._expanded=!this._expanded}_handleCloseButtonClick(e){this._expanded=!1,e.stopPropagation()}};h([x()],r.prototype,"text",void 0);h([x({type:Number})],r.prototype,"maxCharacters",void 0);h([x()],r.prototype,"overflowMode",void 0);h([x()],r.prototype,"emptyIndicatorMode",void 0);h([x({type:Boolean})],r.prototype,"_expanded",void 0);h([P("@ui5/webcomponents")],r,"i18nBundle",void 0);r=c=h([O({tag:"ui5-expandable-text",renderer:B,styles:V,template:Y})],r);r.define();function Q(t){const{className:e,text:n,maxCharacters:s,part:a}=t;return o(r,{part:a,class:e,text:n,maxCharacters:s})}export{Q as default};
|