@sapudex/web-components 2.54.0 → 2.55.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/cypress/specs/Breadcrumbs.cy.tsx +3 -1
- package/cypress/specs/FilterMenu.cy.tsx +34 -2
- package/cypress/specs/Footer.cy.tsx +59 -0
- package/cypress/specs/MediaPlayer.cy.tsx +58 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +2 -2
- package/cypress/specs/SelectBox.cy.tsx +74 -0
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/FilterMenu.d.ts +1 -1
- package/dist/FilterMenu.js +6 -6
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.d.ts +20 -1
- package/dist/Footer.js +40 -3
- package/dist/Footer.js.map +1 -1
- package/dist/FooterTemplate.js +7 -2
- package/dist/FooterTemplate.js.map +1 -1
- package/dist/List.js +6 -6
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +12 -5
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +1 -1
- package/dist/ListGroupHeaderBase.js +2 -2
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.d.ts +2 -0
- package/dist/ListGroupHeaderTemplate.js +33 -0
- package/dist/ListGroupHeaderTemplate.js.map +1 -0
- package/dist/ListItem.d.ts +1 -1
- package/dist/ListItem.js +4 -3
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +1 -0
- package/dist/ListItemBase.js +8 -4
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListItemTemplate.d.ts +2 -0
- package/dist/ListItemTemplate.js +18 -0
- package/dist/ListItemTemplate.js.map +1 -0
- package/dist/ListSelectAll.js +4 -5
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/ListSelectAllTemplate.d.ts +2 -0
- package/dist/ListSelectAllTemplate.js +6 -0
- package/dist/ListSelectAllTemplate.js.map +1 -0
- package/dist/ListTemplate.d.ts +2 -0
- package/dist/ListTemplate.js +11 -0
- package/dist/ListTemplate.js.map +1 -0
- package/dist/MediaPlayer.js +6 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/SelectBox.js +31 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxTemplate.js +2 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-CqOrRXxa.js → InputSuggestions-DPiJnNLn.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DKUm4L2B.js → ListItemStandardExpandableTextTemplate-B-v72jL6.js} +1 -1
- package/dist/assets/{bundle.esm-CI60uvdr.js → bundle.esm-DPppjwN7.js} +259 -259
- package/dist/assets/messagebundle_en-B0P3kkb6.js +1 -0
- package/dist/assets/messagebundle_it-BML2SC0W.js +1 -0
- package/dist/assets/messagebundle_ja-zyFfZHcj.js +1 -0
- package/dist/assets/messagebundle_ko-BCPaSqNp.js +1 -0
- package/dist/assets/messagebundle_lt-DB4b6FVx.js +1 -0
- package/dist/assets/messagebundle_lv-tAOia5tU.js +1 -0
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/custom-elements-internal.json +90 -2
- package/dist/custom-elements.json +76 -2
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.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/Breadcrumbs.css.d.ts +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- 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/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/messagebundle.properties +1 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/messagebundle_it.properties +123 -0
- package/dist/messagebundle_ja.properties +127 -1
- package/dist/messagebundle_ko.properties +126 -0
- package/dist/messagebundle_lt.properties +126 -0
- package/dist/messagebundle_lv.properties +9 -0
- package/dist/types/FooterAskJoulePosition.d.ts +5 -0
- package/dist/types/FooterAskJoulePosition.js +7 -0
- package/dist/types/FooterAskJoulePosition.js.map +1 -0
- package/dist/vscode.html-custom-data.json +11 -1
- package/dist/web-types.json +34 -3
- package/package.json +1 -1
- package/src/BreadcrumbsTemplate.tsx +12 -10
- package/src/FilterMenu.ts +6 -6
- package/src/Footer.ts +41 -3
- package/src/FooterTemplate.tsx +28 -4
- package/src/List.ts +8 -8
- package/src/ListGroupHeader.ts +12 -5
- package/src/ListGroupHeaderBase.ts +3 -3
- package/src/ListGroupHeaderTemplate.tsx +228 -0
- package/src/ListItem.ts +5 -4
- package/src/ListItemBase.ts +9 -4
- package/src/ListItemTemplate.tsx +193 -0
- package/src/ListSelectAll.ts +4 -5
- package/src/ListSelectAllTemplate.tsx +38 -0
- package/src/ListTemplate.tsx +60 -0
- package/src/MediaPlayer.ts +6 -0
- package/src/SelectBox.ts +34 -0
- package/src/SelectBoxTemplate.tsx +2 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/i18n/messagebundle.properties +1 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/i18n/messagebundle_it.properties +123 -0
- package/src/i18n/messagebundle_ja.properties +127 -1
- package/src/i18n/messagebundle_ko.properties +126 -0
- package/src/i18n/messagebundle_lt.properties +126 -0
- package/src/i18n/messagebundle_lv.properties +9 -0
- package/src/themes/Breadcrumbs.css +46 -5
- package/src/themes/BreadcrumbsPopover.css +65 -0
- package/src/themes/Footer.css +98 -1
- package/src/themes/Link.css +127 -8
- package/src/themes/ListGroupHeader.css +6 -3
- package/src/types/FooterAskJoulePosition.ts +6 -0
- package/dist/assets/messagebundle_en-DoNTK1BE.js +0 -1
- package/dist/assets/messagebundle_it-BhrBdOd4.js +0 -1
- package/dist/assets/messagebundle_ja-5P5L7sQ1.js +0 -1
- package/dist/assets/messagebundle_ko-B9H5YQlC.js +0 -1
- package/dist/assets/messagebundle_lt-BJ5gr_LF.js +0 -1
- package/dist/assets/messagebundle_lv-D06tlATH.js +0 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +0 -30
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListItemTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListItemTemplate.lit.js +0 -49
- package/dist/generated/templates/ListItemTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListSelectAllTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListSelectAllTemplate.lit.js +0 -7
- package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +0 -1
- package/dist/generated/templates/ListTemplate.lit.d.ts +0 -3
- package/dist/generated/templates/ListTemplate.lit.js +0 -11
- package/dist/generated/templates/ListTemplate.lit.js.map +0 -1
- package/src/List.hbs +0 -38
- package/src/ListGroupHeader.hbs +0 -188
- package/src/ListItem.hbs +0 -166
- package/src/ListSelectAll.hbs +0 -31
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +0 -34
- package/src/generated/templates/ListItemTemplate.lit.ts +0 -53
- package/src/generated/templates/ListSelectAllTemplate.lit.ts +0 -11
- package/src/generated/templates/ListTemplate.lit.ts +0 -15
package/dist/ListItemBase.js
CHANGED
|
@@ -9,7 +9,7 @@ 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 event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
12
|
-
import
|
|
12
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
13
13
|
import { UDExListItemSize, UDExListMode, UDExListStyleType } from "./types/List.js";
|
|
14
14
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
15
15
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
@@ -90,16 +90,20 @@ let UDExListItemBase = UDExListItemBase_1 = class UDExListItemBase extends UI5El
|
|
|
90
90
|
this._resizeHandler = this._onResize.bind(this);
|
|
91
91
|
this.contentElement = null;
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
onAfterRendering() {
|
|
94
94
|
if (!this.collapsible) {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
97
97
|
this.contentElement = this.shadowRoot?.querySelector(".udex-list__group-list__content");
|
|
98
98
|
if (this.contentElement) {
|
|
99
|
-
ResizeHandler.register(this.contentElement, this._resizeHandler);
|
|
100
99
|
this.setContentHeight();
|
|
101
100
|
}
|
|
102
101
|
}
|
|
102
|
+
onEnterDOM() {
|
|
103
|
+
if (this.contentElement && this.collapsible) {
|
|
104
|
+
ResizeHandler.register(this.contentElement, this._resizeHandler);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
103
107
|
onExitDOM() {
|
|
104
108
|
if (this.contentElement && this.collapsible) {
|
|
105
109
|
ResizeHandler.deregister(this.contentElement, this._resizeHandler);
|
|
@@ -248,7 +252,7 @@ __decorate([
|
|
|
248
252
|
], UDExListItemBase, "i18nBundle", void 0);
|
|
249
253
|
UDExListItemBase = UDExListItemBase_1 = __decorate([
|
|
250
254
|
customElement({
|
|
251
|
-
renderer:
|
|
255
|
+
renderer: jsxRenderer,
|
|
252
256
|
})
|
|
253
257
|
/**
|
|
254
258
|
* Fired event when the user click on a first icon.
|
package/dist/ListItemBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { UDExListItemSize, UDExListMode, UDExListStyleType } from \"./types/List.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport translate from \"./utils/translate.js\";\nimport { COLLAPSE, EXPAND } from \"./generated/i18n/i18n-defaults.js\";\n\nexport type UDExListItemBaseEvents = {\n \"first-icon-click\": UDExListItemBaseEventDetail,\n \"second-icon-click\": UDExListItemBaseEventDetail,\n \"accordion-icon-click\": UDExListItemBaseAccordionClickEventDetail,\n}\n\ntype UDExListItemBaseEventDetail = {\n originalEvent: PointerEvent,\n item: HTMLElement,\n}\n\ntype UDExListItemBaseAccordionClickEventDetail = {\n collapsed: boolean;\n}\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListItem</code>,<code>UDExFilterMenuItem</code> and <code>UDExGroupHeaderBase</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n@customElement({\n renderer: litRender,\n})\n\n/**\n * Fired event when the user click on a first icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n */\n@event(\"first-icon-click\", { bubbles: true })\n/**\n * Fired event when the user click on a second icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n */\n@event(\"second-icon-click\", { bubbles: true })\n\n/**\n * Triggered when the user clicks on an accordion item.\n * @public\n * @param { string } name\n * @param { boolean } expanded\n */\n@event(\"accordion-icon-click\", { bubbles: true })\n\nclass UDExListItemBase extends UI5Element {\n eventDetails!: UDExListItemBaseEvents;\n\n /**\n * Defines the number of displayed rating symbols.\n *\n * @default 5\n * @public\n */\n @property({ type: Number })\n ratingMax: number = 5;\n\n /**\n * Defines the value of the rating.\n * Use for rating indicator to represent aggregated review scores within list items\n *\n * @public\n */\n @property({ type: String })\n rating?: string;\n\n /**\n * Defines the number of the rating.\n * Use for the rating indicator\n *\n * @public\n */\n @property({ type: String })\n ratingCount?: string;\n\n /**\n * The number of total votes.\n * Use for the rating indicator\n *\n * @public\n */\n @property({ type: String })\n totalCount?: string;\n\n /**\n * Defines the <code>label</code> for the item.\n *\n * @public\n */\n @property()\n label!: string;\n\n /**\n * Defines whether a visual separator should be rendered after the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n divider!: boolean;\n\n /**\n * Defines whether <code> list item</code> is in disabled state.\n *\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the supportingText, displayed in the end of the item.\n *\n * @public\n */\n @property()\n supportingText!: string;\n\n /**\n * Defines the selected state of the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected: boolean = false;\n\n /**\n * Defines whether the selection of a list is displayed as partially selected.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n indeterminate?: boolean;\n\n /**\n * Defines the controlled state of the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the mode of the item.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the size of the item.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n size: `${UDExListItemSize}` = UDExListItemSize.Standard;\n\n /**\n * Defines the type of the item.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Defines the icon of the component.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _icon: string = \"\";\n\n /**\n * Defines if grouping header can collapse/expand child elements.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n collapsible!: boolean;\n\n /**\n * Defines if collapsible grouping header is collapsed or expanded\n *\n * @default undefined\n * @public\n */\n @property({ type: Boolean })\n collapsed!: boolean;\n\n /**\n * Defines if item is part of filtered list\n *\n * @default undefined\n * @private\n */\n @property({ type: Boolean })\n _filtered!: boolean;\n\n /**\n * When true, the host element carries role + ARIA state attributes directly\n * (set by the outer template) so that aria-activedescendant works across shadow DOM.\n * The inner [part=item] div is then rendered as role=\"presentation\".\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _useHostAriaRole: boolean = false;\n\n /**\n * Defines the tab index of the component.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _tabIndex: string = \"\";\n\n _resizeHandler: () => void;\n contentElement: HTMLElement | null | undefined;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n this.contentElement = null;\n }\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onEnterDOM() {\n if (!this.collapsible) {\n return;\n }\n this.contentElement = this.shadowRoot?.querySelector<HTMLElement>(\".udex-list__group-list__content\");\n if (this.contentElement) {\n ResizeHandler.register(this.contentElement, this._resizeHandler);\n this.setContentHeight();\n }\n }\n\n onExitDOM(): void {\n if (this.contentElement && this.collapsible) {\n ResizeHandler.deregister(this.contentElement, this._resizeHandler);\n }\n }\n\n setContentHeight() {\n this.style.setProperty(\"--udex-list-content-max-height\", `${this.contentElement?.scrollHeight || 0}px`);\n }\n\n _onResize(): void {\n if (this.contentElement && this.collapsible && this.contentElement.scrollHeight > 0) {\n this.setContentHeight();\n }\n }\n\n _fireIconClickEvent(e: PointerEvent): void {\n const target = e.target as HTMLElement;\n const slot = target.getAttribute(\"slot\");\n if (slot === \"firstIcon\") {\n this.fireDecoratorEvent(\"first-icon-click\", {\n originalEvent: e,\n item: this,\n });\n } else if (slot === \"secondIcon\") {\n this.fireDecoratorEvent(\"second-icon-click\", {\n originalEvent: e,\n item: this,\n });\n }\n }\n\n handleCollapseIconMouseDown(e: MouseEvent) {\n e.stopPropagation();\n }\n\n handleCollapseIconClick(e: MouseEvent | KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this.fireDecoratorEvent(\"accordion-icon-click\", { collapsed: this.collapsed });\n }\n\n get _effectiveTabIndex(): string {\n if (this.disabled) {\n return \"-1\";\n }\n return this._tabIndex;\n }\n\n get numberOfItem(): number {\n return [...this.parentNode!.children].indexOf(this) + 1;\n }\n\n get isGroup(): boolean {\n return false;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeMultiSelectOrRadioGroup(): boolean {\n return this.modeMultiSelect || this.modeRadioGroup;\n }\n\n get typeNumber(): boolean {\n return this.type === UDExListStyleType.Number;\n }\n\n get typeCircle(): boolean {\n return this.type === UDExListStyleType.Circle;\n }\n\n get typeIcon(): boolean {\n return this.type === UDExListStyleType.Icon;\n }\n\n get ariaControlsId(): string {\n return `udex-list-${this._id}__group-content`;\n }\n\n get expandButtonAccessibleName(): string {\n return this.collapsed ? translate(UDExListItemBase, EXPAND) : translate(UDExListItemBase, COLLAPSE);\n }\n\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n get hasRating(): boolean {\n return !!this.rating;\n }\n}\n\nexport default UDExListItemBase;\nexport type { UDExListItemBaseEventDetail, UDExListItemBaseAccordionClickEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"ListItemBase.js","sourceRoot":"","sources":["../src/ListItemBase.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,aAAa,MAAM,wDAAwD,CAAC;AACnF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAiBrE;;;;;;;;;;GAUG;AAgCH,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAyLvC;QACE,KAAK,EAAE,CAAC;QAvLV;;;;;WAKG;QAED,cAAS,GAAW,CAAC,CAAC;QA8DxB;;;;;WAKG;QAED,aAAQ,GAAY,KAAK,CAAC;QAoB5B;;;;;WAKG;QAED,SAAI,GAAsB,YAAY,CAAC,YAAY,CAAC;QAEtD;;;;;WAKG;QAED,SAAI,GAA0B,gBAAgB,CAAC,QAAQ,CAAC;QAE1D;;;;;WAKG;QAED,SAAI,GAA2B,iBAAiB,CAAC,IAAI,CAAC;QAExD;;;;;WAKG;QAED,UAAK,GAAW,EAAE,CAAC;QA6BrB;;;;;;;WAOG;QAED,qBAAgB,GAAY,KAAK,CAAC;QAEpC;;;;;WAKG;QAED,cAAS,GAAW,EAAE,CAAC;QAOvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAKD,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAc,iCAAiC,CAAC,CAAC;QACrG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gCAAgC,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1G,CAAC;IAED,SAAS;QACP,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACpF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAe;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE;gBAC1C,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;gBAC3C,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,2BAA2B,CAAC,CAAa;QACvC,CAAC,CAAC,eAAe,EAAE,CAAC;IACtB,CAAC;IAED,uBAAuB,CAAC,CAA6B;QACnD,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,YAAY,CAAC;IACjD,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC;IACrD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,aAAa,IAAI,CAAC,GAAG,iBAAiB,CAAC;IAChD,CAAC;IAED,IAAI,0BAA0B;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAgB,EAAE,QAAQ,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACF,CAAA;AA5SG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACH;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACJ;AASrB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDACL;AAQpB;IADD,QAAQ,EAAE;+CACM;AASf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACR;AAQlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACP;AAQnB;IADD,QAAQ,EAAE;wDACe;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACA;AAS1B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACF;AASxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACL;AASrB;IADD,QAAQ,EAAE;8CAC2C;AASpD;IADD,QAAQ,EAAE;8CAC+C;AASxD;IADD,QAAQ,EAAE;8CAC6C;AAStD;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACN;AASnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;qDACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACN;AASpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACN;AAWpB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACQ;AASlC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDACF;AAYlB;IADN,IAAI,CAAC,yBAAyB,CAAC;0CACF;AAhM1B,gBAAgB;IA/BrB,aAAa,CAAC;QACb,QAAQ,EAAE,WAAW;KACtB,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7C;;;;;;;OAOG;;IACF,KAAK,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAE9C;;;;;OAKG;;IACF,KAAK,CAAC,sBAAsB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAE3C,gBAAgB,CAsTrB;AAED,eAAe,gBAAgB,CAAC","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 event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { UDExListItemSize, UDExListMode, UDExListStyleType } from \"./types/List.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport translate from \"./utils/translate.js\";\nimport { COLLAPSE, EXPAND } from \"./generated/i18n/i18n-defaults.js\";\n\nexport type UDExListItemBaseEvents = {\n \"first-icon-click\": UDExListItemBaseEventDetail,\n \"second-icon-click\": UDExListItemBaseEventDetail,\n \"accordion-icon-click\": UDExListItemBaseAccordionClickEventDetail,\n}\n\ntype UDExListItemBaseEventDetail = {\n originalEvent: PointerEvent,\n item: HTMLElement,\n}\n\ntype UDExListItemBaseAccordionClickEventDetail = {\n collapsed: boolean;\n}\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExListItem</code>,<code>UDExFilterMenuItem</code> and <code>UDExGroupHeaderBase</code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n@customElement({\n renderer: jsxRenderer,\n})\n\n/**\n * Fired event when the user click on a first icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n */\n@event(\"first-icon-click\", { bubbles: true })\n/**\n * Fired event when the user click on a second icon.\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n * @public\n * @param { PointerEvent } originalEvent The original event object\n * @param { HTMLElement } item The list item\n */\n@event(\"second-icon-click\", { bubbles: true })\n\n/**\n * Triggered when the user clicks on an accordion item.\n * @public\n * @param { string } name\n * @param { boolean } expanded\n */\n@event(\"accordion-icon-click\", { bubbles: true })\n\nclass UDExListItemBase extends UI5Element {\n eventDetails!: UDExListItemBaseEvents;\n\n /**\n * Defines the number of displayed rating symbols.\n *\n * @default 5\n * @public\n */\n @property({ type: Number })\n ratingMax: number = 5;\n\n /**\n * Defines the value of the rating.\n * Use for rating indicator to represent aggregated review scores within list items\n *\n * @public\n */\n @property({ type: String })\n rating?: string;\n\n /**\n * Defines the number of the rating.\n * Use for the rating indicator\n *\n * @public\n */\n @property({ type: String })\n ratingCount?: string;\n\n /**\n * The number of total votes.\n * Use for the rating indicator\n *\n * @public\n */\n @property({ type: String })\n totalCount?: string;\n\n /**\n * Defines the <code>label</code> for the item.\n *\n * @public\n */\n @property()\n label!: string;\n\n /**\n * Defines whether a visual separator should be rendered after the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n divider!: boolean;\n\n /**\n * Defines whether <code> list item</code> is in disabled state.\n *\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the supportingText, displayed in the end of the item.\n *\n * @public\n */\n @property()\n supportingText!: string;\n\n /**\n * Defines the selected state of the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selected: boolean = false;\n\n /**\n * Defines whether the selection of a list is displayed as partially selected.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n indeterminate?: boolean;\n\n /**\n * Defines the controlled state of the item.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n controlled?: boolean;\n\n /**\n * Defines the mode of the item.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property()\n mode: `${UDExListMode}` = UDExListMode.SingleSelect;\n\n /**\n * Defines the size of the item.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n size: `${UDExListItemSize}` = UDExListItemSize.Standard;\n\n /**\n * Defines the type of the item.\n *\n * @default \"None\"\n * @public\n */\n @property()\n type: `${UDExListStyleType}` = UDExListStyleType.None;\n\n /**\n * Defines the icon of the component.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _icon: string = \"\";\n\n /**\n * Defines if grouping header can collapse/expand child elements.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n collapsible!: boolean;\n\n /**\n * Defines if collapsible grouping header is collapsed or expanded\n *\n * @default undefined\n * @public\n */\n @property({ type: Boolean })\n collapsed!: boolean;\n\n /**\n * Defines if item is part of filtered list\n *\n * @default undefined\n * @private\n */\n @property({ type: Boolean })\n _filtered!: boolean;\n\n /**\n * When true, the host element carries role + ARIA state attributes directly\n * (set by the outer template) so that aria-activedescendant works across shadow DOM.\n * The inner [part=item] div is then rendered as role=\"presentation\".\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _useHostAriaRole: boolean = false;\n\n /**\n * Defines the tab index of the component.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String })\n _tabIndex: string = \"\";\n\n _resizeHandler: () => void;\n contentElement: HTMLElement | null | undefined;\n\n constructor() {\n super();\n this._resizeHandler = this._onResize.bind(this);\n this.contentElement = null;\n }\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering() {\n if (!this.collapsible) {\n return;\n }\n this.contentElement = this.shadowRoot?.querySelector<HTMLElement>(\".udex-list__group-list__content\");\n if (this.contentElement) {\n this.setContentHeight();\n }\n }\n\n onEnterDOM() {\n if (this.contentElement && this.collapsible) {\n ResizeHandler.register(this.contentElement, this._resizeHandler);\n }\n }\n\n onExitDOM(): void {\n if (this.contentElement && this.collapsible) {\n ResizeHandler.deregister(this.contentElement, this._resizeHandler);\n }\n }\n\n setContentHeight() {\n this.style.setProperty(\"--udex-list-content-max-height\", `${this.contentElement?.scrollHeight || 0}px`);\n }\n\n _onResize(): void {\n if (this.contentElement && this.collapsible && this.contentElement.scrollHeight > 0) {\n this.setContentHeight();\n }\n }\n\n _fireIconClickEvent(e: PointerEvent): void {\n const target = e.target as HTMLElement;\n const slot = target.getAttribute(\"slot\");\n if (slot === \"firstIcon\") {\n this.fireDecoratorEvent(\"first-icon-click\", {\n originalEvent: e,\n item: this,\n });\n } else if (slot === \"secondIcon\") {\n this.fireDecoratorEvent(\"second-icon-click\", {\n originalEvent: e,\n item: this,\n });\n }\n }\n\n handleCollapseIconMouseDown(e: MouseEvent) {\n e.stopPropagation();\n }\n\n handleCollapseIconClick(e: MouseEvent | KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this.fireDecoratorEvent(\"accordion-icon-click\", { collapsed: this.collapsed });\n }\n\n get _effectiveTabIndex(): string {\n if (this.disabled) {\n return \"-1\";\n }\n return this._tabIndex;\n }\n\n get numberOfItem(): number {\n return [...this.parentNode!.children].indexOf(this) + 1;\n }\n\n get isGroup(): boolean {\n return false;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === UDExListMode.RadioGroup;\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === UDExListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === UDExListMode.SingleSelect;\n }\n\n get modeMultiSelectOrRadioGroup(): boolean {\n return this.modeMultiSelect || this.modeRadioGroup;\n }\n\n get typeNumber(): boolean {\n return this.type === UDExListStyleType.Number;\n }\n\n get typeCircle(): boolean {\n return this.type === UDExListStyleType.Circle;\n }\n\n get typeIcon(): boolean {\n return this.type === UDExListStyleType.Icon;\n }\n\n get ariaControlsId(): string {\n return `udex-list-${this._id}__group-content`;\n }\n\n get expandButtonAccessibleName(): string {\n return this.collapsed ? translate(UDExListItemBase, EXPAND) : translate(UDExListItemBase, COLLAPSE);\n }\n\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n get hasRating(): boolean {\n return !!this.rating;\n }\n}\n\nexport default UDExListItemBase;\nexport type { UDExListItemBaseEventDetail, UDExListItemBaseAccordionClickEventDetail };\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import UDExCheckbox from "./Checkbox.js";
|
|
3
|
+
import UDExRadioButton from "./RadioButton.js";
|
|
4
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
5
|
+
import UDExAvatar from "./Avatar.js";
|
|
6
|
+
import UDExStatusBadge from "./StatusBadge.js";
|
|
7
|
+
import UDExRatingIndicator from "./RatingIndicator.js";
|
|
8
|
+
import UDExButton from "./Button.js";
|
|
9
|
+
import UDExButtonSize from "./types/ButtonSize.js";
|
|
10
|
+
import UDExButtonDesign from "./types/ButtonDesign.js";
|
|
11
|
+
import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
12
|
+
function ContentList() {
|
|
13
|
+
return (_jsxs("div", { class: "udex-list__content-wrap", ...{ "_id": this._id }, "aria-labelledby": `${this._id}-invisibleText`, "aria-label": this.accessibleListItemName, children: [this.flag && (_jsx("div", { class: "udex-list__flag-wrap", children: _jsx("span", { class: "udex-list__flag", style: { backgroundPosition: this.flagPosition } }) })), this.typeNumber && _jsxs("span", { class: "udex-list__number", children: [this.numberOfItem, "."] }), this.typeCircle && _jsx("span", { class: "udex-list__circle", children: "\u2022" }), this.typeIcon && (_jsx(Icon, { name: this._icon, class: "udex-list__icon", "accessible-role": "presentation", "aria-hidden": "true", part: "icon" })), this.image && (_jsxs(UDExAvatar, { class: "udex-list__avatar", part: "avatar", shape: this.imageShape, size: this.imageSize, children: [this.imageBadgeState && (_jsx(UDExStatusBadge, { slot: "badge", "value-state": this.imageBadgeState, size: this.imageSize })), _jsx("img", { src: this.image, alt: this.imageAlt })] })), _jsxs("div", { class: "udex-list__content", part: "content", children: [this.label ? (_jsxs(_Fragment, { children: [_jsxs("div", { class: "udex-list__text-holder", children: [_jsx("span", { part: "title", ...{ innerHTML: this.label } }), this.supportingText && (_jsx("span", { class: "udex-list__supporting-text", part: "supporting", children: this.supportingText })), _jsx("slot", { part: "content" }), this.hasRating && (_jsx(UDExRatingIndicator, { "aria-label": this.ratingAriaLabel, value: this.rating !== undefined ? Number(this.rating) : undefined, "rating-count": this.ratingCount, "total-count": this.totalCount, max: this.ratingMax, display: this._displayRating, disabled: true, readonly: true }))] }), this.additionalText && (_jsx("div", { class: "udex-list__add-text", part: "additional-text", children: this.additionalText })), _jsxs("div", { class: "udex-list__btn-wrap", children: [this.hasFirstIcon && _jsx("slot", { name: "firstIcon", onClick: this._fireIconClickEvent }), this.hasSecondIcon && _jsx("slot", { name: "secondIcon", onClick: this._fireIconClickEvent })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { class: "udex-list__text-holder", children: [_jsx("slot", { part: "content" }), this.supportingText && (_jsx("span", { class: "udex-list__supporting-text", part: "supporting", children: this.supportingText })), this.hasRating && (_jsx(UDExRatingIndicator, { "aria-label": this.ratingAriaLabel, value: this.rating !== undefined ? Number(this.rating) : undefined, "rating-count": this.ratingCount, "total-count": this.totalCount, max: this.ratingMax, display: this._displayRating, disabled: true, readonly: true }))] }), this.additionalText && (_jsx("div", { class: "udex-list__add-text", part: "additional-text", children: this.additionalText })), _jsxs("div", { class: "udex-list__btn-wrap", children: [this.hasFirstIcon && _jsx("slot", { name: "firstIcon", onClick: this._fireIconClickEvent }), this.hasSecondIcon && _jsx("slot", { name: "secondIcon", onClick: this._fireIconClickEvent })] })] })), this.collapsible && (_jsx("div", { class: "udex-list__group-heading__icon-wrapper", children: _jsx(UDExButton, { class: "udex-list__group-heading__icon", size: UDExButtonSize.Small, design: UDExButtonDesign.Tertiary, onMouseDown: this.handleCollapseIconMouseDown, onClick: this.handleCollapseIconClick, tabindex: -1, "accessible-name": this.expandButtonAccessibleName, ...{ "mode": "Interactive" }, icon: slimArrowRight }) }))] }), _jsx("div", { class: "hidden", id: `${this._id}-invisibleText`, children: this.accessibleListItemName }), _jsx("div", { class: "hidden", id: `${this._id}-invisibleText-describedby`, children: this.itemState })] }));
|
|
14
|
+
}
|
|
15
|
+
export default function ListItemTemplate() {
|
|
16
|
+
return (_jsxs(_Fragment, { children: [this.modeSelected && (_jsxs("div", { part: "item", tabIndex: Number(this._effectiveTabIndex), "aria-disabled": this._ariaDisabled, class: this.className, role: this.roleItem, "aria-checked": this.ariaCheckedValue, "aria-selected": this.ariaSelectedValue, "aria-expanded": this.ariaExpandedValue, onFocusIn: this.handleFocusIn, onFocusOut: this.handleFocusOut, onClick: this.handleItemClick, onMouseDown: this.handleMouseDown, onMouseUp: this.handleMouseUp, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown, ...{ divider: this.divider, "_id": this._id }, "data-selected": this.selected, "aria-describedby": this.itemDescribedBy, children: [this.modeMultiSelect && (_jsx(UDExCheckbox, { class: "udex-list__checkbox", part: "checkbox", tabindex: -1, indeterminate: this.indeterminate, "accessible-name": `checkbox ${this.stateAccessibleName}`, checked: this.selected, disabled: this.disabled, "aria-hidden": this.checkboxAriaHidden ? "true" : undefined })), this.modeRadioGroup && (_jsx(UDExRadioButton, { class: "udex-list__radio", part: "radio", tabindex: -1, "accessible-name": `radio ${this.stateAccessibleName}`, checked: this.selected, disabled: this.disabled })), ContentList.call(this)] })), this.modeSingleContent && (_jsx("div", { part: "item", role: this.roleItem, "aria-selected": this.selected, class: this.className, children: ContentList.call(this) }))] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ListItemTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListItemTemplate.js","sourceRoot":"","sources":["../src/ListItemTemplate.tsx"],"names":[],"mappings":";AAEA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,sBAAsB,CAAC;AACvD,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,cAAc,MAAM,mDAAmD,CAAC;AAE/E,SAAS,WAAW;IAClB,OAAO,CACL,eACE,KAAK,EAAC,yBAAyB,KAC1B,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAa,qBAClB,GAAG,IAAI,CAAC,GAAG,gBAAgB,gBAChC,IAAI,CAAC,sBAAsB,aACtC,IAAI,CAAC,IAAI,IAAI,CACZ,cAAK,KAAK,EAAC,sBAAsB,YAC/B,eAAM,KAAK,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,IAAI,CAAC,YAAY,EAAE,GAAS,GACnF,CACP,EACA,IAAI,CAAC,UAAU,IAAI,gBAAM,KAAK,EAAC,mBAAmB,aAAE,IAAI,CAAC,YAAY,SAAS,EAC9E,IAAI,CAAC,UAAU,IAAI,eAAM,KAAK,EAAC,mBAAmB,uBAAgB,EAClE,IAAI,CAAC,QAAQ,IAAI,CAChB,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,KAAK,EAChB,KAAK,EAAC,iBAAiB,qBACP,cAAc,iBAClB,MAAM,EAClB,IAAI,EAAC,MAAM,GACX,CACH,EACA,IAAI,CAAC,KAAK,IAAI,CACb,MAAC,UAAU,IACT,KAAK,EAAC,mBAAmB,EACzB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,IAAI,EAAE,IAAI,CAAC,SAAS,aACnB,IAAI,CAAC,eAAe,IAAI,CACvB,KAAC,eAAe,IACd,IAAI,EAAC,OAAO,iBACC,IAAI,CAAC,eAAe,EACjC,IAAI,EAAE,IAAI,CAAC,SAAS,GACpB,CACH,EACD,cAAK,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAI,IACjC,CACd,EACD,eAAK,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAC,SAAS,aAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,8BACE,eAAK,KAAK,EAAC,wBAAwB,aACjC,eAAM,IAAI,EAAC,OAAO,KAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAa,GAAS,EACpE,IAAI,CAAC,cAAc,IAAI,CACtB,eAAM,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,YAAY,YAAE,IAAI,CAAC,cAAc,GAAQ,CACxF,EACD,eAAM,IAAI,EAAC,SAAS,GAAQ,EAC3B,IAAI,CAAC,SAAS,IAAI,CACjB,KAAC,mBAAmB,kBACN,IAAI,CAAC,eAAe,EAChC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,kBACpD,IAAI,CAAC,WAAW,iBACjB,IAAI,CAAC,UAAU,EAC5B,GAAG,EAAE,IAAI,CAAC,SAAS,EACnB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,QAAQ,QACR,QAAQ,SACR,CACH,IACG,EACL,IAAI,CAAC,cAAc,IAAI,CACtB,cAAK,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAO,CACpF,EACD,eAAK,KAAK,EAAC,qBAAqB,aAC7B,IAAI,CAAC,YAAY,IAAI,eAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,IAAI,CAAC,mBAAoC,GAAS,EACvG,IAAI,CAAC,aAAa,IAAI,eAAM,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,IAAI,CAAC,mBAAoC,GAAS,IACtG,IACL,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,eAAK,KAAK,EAAC,wBAAwB,aACjC,eAAM,IAAI,EAAC,SAAS,GAAQ,EAC3B,IAAI,CAAC,cAAc,IAAI,CACtB,eAAM,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,YAAY,YAAE,IAAI,CAAC,cAAc,GAAQ,CACxF,EACA,IAAI,CAAC,SAAS,IAAI,CACjB,KAAC,mBAAmB,kBACN,IAAI,CAAC,eAAe,EAChC,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,kBACpD,IAAI,CAAC,WAAW,iBACjB,IAAI,CAAC,UAAU,EAC5B,GAAG,EAAE,IAAI,CAAC,SAAS,EACnB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,QAAQ,QACR,QAAQ,SACR,CACH,IACG,EACL,IAAI,CAAC,cAAc,IAAI,CACtB,cAAK,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,iBAAiB,YAAE,IAAI,CAAC,cAAc,GAAO,CACpF,EACD,eAAK,KAAK,EAAC,qBAAqB,aAC7B,IAAI,CAAC,YAAY,IAAI,eAAM,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,IAAI,CAAC,mBAAoC,GAAS,EACvG,IAAI,CAAC,aAAa,IAAI,eAAM,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,IAAI,CAAC,mBAAoC,GAAS,IACtG,IACL,CACJ,EACA,IAAI,CAAC,WAAW,IAAI,CACnB,cAAK,KAAK,EAAC,wCAAwC,YACjD,KAAC,UAAU,IACT,KAAK,EAAC,gCAAgC,EACtC,IAAI,EAAE,cAAc,CAAC,KAAK,EAC1B,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EACjC,WAAW,EAAE,IAAI,CAAC,2BAA2B,EAC7C,OAAO,EAAE,IAAI,CAAC,uBAAwC,EACtD,QAAQ,EAAE,CAAC,CAAC,qBACK,IAAI,CAAC,0BAA0B,KAC3C,EAAE,MAAM,EAAE,aAAa,EAAa,EACzC,IAAI,EAAE,cAAc,GACpB,GACE,CACP,IACG,EACN,cAAK,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,YAAG,IAAI,CAAC,sBAAsB,GAAO,EACxF,cAAK,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,4BAA4B,YAAG,IAAI,CAAC,SAAS,GAAO,IACnF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACtC,OAAO,CACL,8BACG,IAAI,CAAC,YAAY,IAAI,CACpB,eACE,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAC1B,IAAI,CAAC,aAAa,EACjC,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,IAAI,EAAE,IAAI,CAAC,QAAoB,kBACjB,IAAI,CAAC,gBAAgB,mBACpB,IAAI,CAAC,iBAAiB,mBACtB,IAAI,CAAC,iBAAiB,EACrC,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,UAAU,EAAE,IAAI,CAAC,cAAc,EAC/B,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,WAAW,EAAE,IAAI,CAAC,eAAe,EACjC,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,KACxB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAa,mBAC3C,IAAI,CAAC,QAAQ,sBACV,IAAI,CAAC,eAAe,aACrC,IAAI,CAAC,eAAe,IAAI,CACvB,KAAC,YAAY,IACX,KAAK,EAAC,qBAAqB,EAC3B,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,CAAC,CAAC,EACZ,aAAa,EAAE,IAAI,CAAC,aAAa,qBAChB,YAAY,IAAI,CAAC,mBAAmB,EAAE,EACvD,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,iBACV,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACzD,CACH,EACA,IAAI,CAAC,cAAc,IAAI,CACtB,KAAC,eAAe,IACd,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,CAAC,CAAC,qBACK,SAAS,IAAI,CAAC,mBAAmB,EAAE,EACpD,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACvB,CACH,EACA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IACnB,CACP,EACA,IAAI,CAAC,iBAAiB,IAAI,CACzB,cACE,IAAI,EAAC,MAAM,EACX,IAAI,EAAE,IAAI,CAAC,QAAoB,mBAChB,IAAI,CAAC,QAAQ,EAC5B,KAAK,EAAE,IAAI,CAAC,SAAS,YACpB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GACnB,CACP,IACA,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UDExListItem from \"./ListItem.js\";\nimport UDExCheckbox from \"./Checkbox.js\";\nimport UDExRadioButton from \"./RadioButton.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExAvatar from \"./Avatar.js\";\nimport UDExStatusBadge from \"./StatusBadge.js\";\nimport UDExRatingIndicator from \"./RatingIndicator.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nfunction ContentList(this: UDExListItem) {\n return (\n <div\n class=\"udex-list__content-wrap\"\n {...({ \"_id\": this._id } as object)}\n aria-labelledby={`${this._id}-invisibleText`}\n aria-label={this.accessibleListItemName}>\n {this.flag && (\n <div class=\"udex-list__flag-wrap\">\n <span class=\"udex-list__flag\" style={{ backgroundPosition: this.flagPosition }}></span>\n </div>\n )}\n {this.typeNumber && <span class=\"udex-list__number\">{this.numberOfItem}.</span>}\n {this.typeCircle && <span class=\"udex-list__circle\">•</span>}\n {this.typeIcon && (\n <Icon\n name={this._icon}\n class=\"udex-list__icon\"\n accessible-role=\"presentation\"\n aria-hidden=\"true\"\n part=\"icon\"\n />\n )}\n {this.image && (\n <UDExAvatar\n class=\"udex-list__avatar\"\n part=\"avatar\"\n shape={this.imageShape}\n size={this.imageSize}>\n {this.imageBadgeState && (\n <UDExStatusBadge\n slot=\"badge\"\n value-state={this.imageBadgeState}\n size={this.imageSize}\n />\n )}\n <img src={this.image} alt={this.imageAlt} />\n </UDExAvatar>\n )}\n <div class=\"udex-list__content\" part=\"content\">\n {this.label ? (\n <>\n <div class=\"udex-list__text-holder\">\n <span part=\"title\" {...({ innerHTML: this.label } as object)}></span>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n <slot part=\"content\"></slot>\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n ) : (\n <>\n <div class=\"udex-list__text-holder\">\n <slot part=\"content\"></slot>\n {this.supportingText && (\n <span class=\"udex-list__supporting-text\" part=\"supporting\">{this.supportingText}</span>\n )}\n {this.hasRating && (\n <UDExRatingIndicator\n aria-label={this.ratingAriaLabel}\n value={this.rating !== undefined ? Number(this.rating) : undefined}\n rating-count={this.ratingCount}\n total-count={this.totalCount}\n max={this.ratingMax}\n display={this._displayRating}\n disabled\n readonly\n />\n )}\n </div>\n {this.additionalText && (\n <div class=\"udex-list__add-text\" part=\"additional-text\">{this.additionalText}</div>\n )}\n <div class=\"udex-list__btn-wrap\">\n {this.hasFirstIcon && <slot name=\"firstIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n {this.hasSecondIcon && <slot name=\"secondIcon\" onClick={this._fireIconClickEvent as EventListener}></slot>}\n </div>\n </>\n )}\n {this.collapsible && (\n <div class=\"udex-list__group-heading__icon-wrapper\">\n <UDExButton\n class=\"udex-list__group-heading__icon\"\n size={UDExButtonSize.Small}\n design={UDExButtonDesign.Tertiary}\n onMouseDown={this.handleCollapseIconMouseDown}\n onClick={this.handleCollapseIconClick as EventListener}\n tabindex={-1}\n accessible-name={this.expandButtonAccessibleName}\n {...({ \"mode\": \"Interactive\" } as object)}\n icon={slimArrowRight}\n />\n </div>\n )}\n </div>\n <div class=\"hidden\" id={`${this._id}-invisibleText`}>{this.accessibleListItemName}</div>\n <div class=\"hidden\" id={`${this._id}-invisibleText-describedby`}>{this.itemState}</div>\n </div>\n );\n}\n\nexport default function ListItemTemplate(this: UDExListItem) {\n return (\n <>\n {this.modeSelected && (\n <div\n part=\"item\"\n tabIndex={Number(this._effectiveTabIndex)}\n aria-disabled={this._ariaDisabled}\n class={this.className}\n role={this.roleItem as AriaRole}\n aria-checked={this.ariaCheckedValue}\n aria-selected={this.ariaSelectedValue}\n aria-expanded={this.ariaExpandedValue}\n onFocusIn={this.handleFocusIn}\n onFocusOut={this.handleFocusOut}\n onClick={this.handleItemClick}\n onMouseDown={this.handleMouseDown}\n onMouseUp={this.handleMouseUp}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n {...({ divider: this.divider, \"_id\": this._id } as object)}\n data-selected={this.selected}\n aria-describedby={this.itemDescribedBy}>\n {this.modeMultiSelect && (\n <UDExCheckbox\n class=\"udex-list__checkbox\"\n part=\"checkbox\"\n tabindex={-1}\n indeterminate={this.indeterminate}\n accessible-name={`checkbox ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n aria-hidden={this.checkboxAriaHidden ? \"true\" : undefined}\n />\n )}\n {this.modeRadioGroup && (\n <UDExRadioButton\n class=\"udex-list__radio\"\n part=\"radio\"\n tabindex={-1}\n accessible-name={`radio ${this.stateAccessibleName}`}\n checked={this.selected}\n disabled={this.disabled}\n />\n )}\n {ContentList.call(this)}\n </div>\n )}\n {this.modeSingleContent && (\n <div\n part=\"item\"\n role={this.roleItem as AriaRole}\n aria-selected={this.selected}\n class={this.className}>\n {ContentList.call(this)}\n </div>\n )}\n </>\n );\n}\n"]}
|
package/dist/ListSelectAll.js
CHANGED
|
@@ -7,14 +7,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var UDExListSelectAll_1;
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
9
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
10
|
-
import
|
|
10
|
+
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
11
11
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
12
12
|
import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
13
|
import UDExListGroupHeaderBase from "./ListGroupHeaderBase.js";
|
|
14
14
|
import { UDExListMode } from "./types/List.js";
|
|
15
15
|
import { SELECT_ALL } from "./generated/i18n/i18n-defaults.js";
|
|
16
|
-
import ListSelectAllTemplate from "./
|
|
17
|
-
import UDExListItem from "./ListItem.js";
|
|
16
|
+
import ListSelectAllTemplate from "./ListSelectAllTemplate.js";
|
|
18
17
|
import translate from "./utils/translate.js";
|
|
19
18
|
// Styles
|
|
20
19
|
import ListGroupHeaderCss from "./generated/themes/ListGroupHeader.css.js";
|
|
@@ -82,10 +81,10 @@ __decorate([
|
|
|
82
81
|
UDExListSelectAll = UDExListSelectAll_1 = __decorate([
|
|
83
82
|
customElement({
|
|
84
83
|
tag: "udex-list-select-all",
|
|
85
|
-
renderer:
|
|
84
|
+
renderer: jsxRenderer,
|
|
85
|
+
languageAware: true,
|
|
86
86
|
styles: ListGroupHeaderCss,
|
|
87
87
|
template: ListSelectAllTemplate,
|
|
88
|
-
dependencies: [UDExListItem],
|
|
89
88
|
})
|
|
90
89
|
/**
|
|
91
90
|
* Fired when the user clicks on the Select All header.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListSelectAll.js","sourceRoot":"","sources":["../src/ListSelectAll.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,
|
|
1
|
+
{"version":3,"file":"ListSelectAll.js","sourceRoot":"","sources":["../src/ListSelectAll.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,uBAAuB,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,MAAM,cAAc,GAAW,8BAA8B,CAAC;AAC9D,MAAM,cAAc,GAAW,uBAAuB,CAAC;AAMvD;;;;;;;;;;;;;;;;GAgBG;AAgBH,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,uBAAuB;IAQrD,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACpC,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;IACL,CAAC;IAED,8BAA8B;QAC5B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,CAAgB;QACjC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,YAAY,CAAC,WAAW,CAAC;IAClC,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAiB,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,GAAG,cAAc,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,cAAc,CAAC;IACxB,CAAC;CACF,CAAA;AA9CQ;IADN,IAAI,CAAC,yBAAyB,CAAC;2CACF;AAN1B,iBAAiB;IAftB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,qBAAqB;KAChC,CAAC;IACF;;;;;SAKK;;IACJ,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAEjC,iBAAiB,CAoDtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.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 { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { UDExListMode } from \"./types/List.js\";\nimport { SELECT_ALL } from \"./generated/i18n/i18n-defaults.js\";\nimport ListSelectAllTemplate from \"./ListSelectAllTemplate.js\";\nimport type { UDExListItemBaseEvents } from \"./ListItemBase.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport ListGroupHeaderCss from \"./generated/themes/ListGroupHeader.css.js\";\n\nconst selectAllClass: string = \"udex-list__header-select-all\";\nconst groupListClass: string = \"udex-list__group-list\";\n\ntype UDExListSelectAllSelectAllEventDetail = {\n item: HTMLElement\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-list-select-all</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/ListSelectAll.js\";</code>\n *\n * @constructor\n * @extends UDExListGroupHeaderBase\n * @public\n */\n@customElement({\n tag: \"udex-list-select-all\",\n renderer: jsxRenderer,\n languageAware: true,\n styles: ListGroupHeaderCss,\n template: ListSelectAllTemplate,\n})\n/**\n * Fired when the user clicks on the Select All header.\n *\n * @public\n * @param {HTMLElement} item The select all item\n */\n@event(\"select-all\", { bubbles: true })\n\nclass UDExListSelectAll extends UDExListGroupHeaderBase {\n eventDetails!: {\n \"select-all\": UDExListSelectAllSelectAllEventDetail,\n } & UDExListItemBaseEvents;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n handleSelectAllPress() {\n if (!this.controlled) {\n this.handleSelectionGroupState();\n }\n this.fireDecoratorEvent(\"select-all\", {\n item: this,\n });\n }\n\n handleSelectAllGroupItemsPress() {\n if (!this.controlled) {\n this.handleHeaderState();\n }\n }\n\n handleKeyDownPress(e: KeyboardEvent) {\n if (isSpace(e)) {\n e.preventDefault();\n }\n if (isSpace(e) || isEnter(e)) {\n this.handleSelectAllPress();\n }\n }\n\n get isSelectAllHeader() {\n return true;\n }\n\n get multiselectMode(): UDExListMode {\n return UDExListMode.MultiSelect;\n }\n\n get selectAllLabel(): string {\n const hasLabel = this.label !== \"undefined\" && this.label?.length > 0;\n return hasLabel ? this.label : translate(UDExListSelectAll, SELECT_ALL);\n }\n\n get additionalClassName(): string {\n return `${selectAllClass} ${this._additionalClassName}`;\n }\n\n get groupListClassName(): string {\n return groupListClass;\n }\n}\n\nUDExListSelectAll.define();\n\nexport default UDExListSelectAll;\nexport type { UDExListSelectAllSelectAllEventDetail };\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
import UDExListItem from "./ListItem.js";
|
|
3
|
+
export default function ListSelectAllTemplate() {
|
|
4
|
+
return (_jsx("div", { part: "item", class: "udex-list__group", role: "group", "aria-labelledby": "group-select-all", children: _jsxs("div", { role: "listbox", "aria-label": "select-all-group", class: this.groupListClassName, "onui5-item-press": this.handleSelectAllGroupItemsPress, children: [_jsx(UDExListItem, { role: "group", part: "group-item", "accessible-role": "option", mode: this.multiselectMode, onClick: this.handleSelectAllPress, class: this.className, selected: this.selected, "aria-current": this.selected, indeterminate: this.indeterminate, controlled: this.controlled, onKeyDown: this.handleKeyDownPress, "_tab-index": Number(this._effectiveTabIndex), "_additional-class-name": this.additionalClassName, supportingText: this.supportingText, divider: true, children: this.selectAllLabel }), _jsx("slot", {})] }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=ListSelectAllTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListSelectAllTemplate.js","sourceRoot":"","sources":["../src/ListSelectAllTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,qBAAqB;IAC3C,OAAO,CACL,cACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,OAAO,qBACI,kBAAkB,YAClC,eACE,IAAI,EAAC,SAAS,gBACH,kBAAkB,EAC7B,KAAK,EAAE,IAAI,CAAC,kBAAkB,sBACZ,IAAI,CAAC,8BAA8B,aACrD,KAAC,YAAY,IACX,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,YAAY,qBACD,QAAQ,EACxB,IAAI,EAAE,IAAI,CAAC,eAAe,EAC1B,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAClC,KAAK,EAAE,IAAI,CAAC,SAAS,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,kBACT,IAAI,CAAC,QAAQ,EAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,IAAI,CAAC,kBAAkB,gBACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,4BACnB,IAAI,CAAC,mBAAmB,EAChD,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,OAAO,kBACN,IAAI,CAAC,cAAc,GACP,EACf,gBAAa,IACT,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import type UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExListItem from \"./ListItem.js\";\n\nexport default function ListSelectAllTemplate(this: UDExListSelectAll) {\n return (\n <div\n part=\"item\"\n class=\"udex-list__group\"\n role=\"group\"\n aria-labelledby=\"group-select-all\">\n <div\n role=\"listbox\"\n aria-label=\"select-all-group\"\n class={this.groupListClassName}\n onui5-item-press={this.handleSelectAllGroupItemsPress}>\n <UDExListItem\n role=\"group\"\n part=\"group-item\"\n accessible-role=\"option\"\n mode={this.multiselectMode}\n onClick={this.handleSelectAllPress}\n class={this.className}\n selected={this.selected}\n aria-current={this.selected}\n indeterminate={this.indeterminate}\n controlled={this.controlled}\n onKeyDown={this.handleKeyDownPress}\n _tab-index={Number(this._effectiveTabIndex)}\n _additional-class-name={this.additionalClassName}\n supportingText={this.supportingText}\n divider>\n {this.selectAllLabel}\n </UDExListItem>\n <slot></slot>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
|
+
export default function ListTemplate() {
|
|
3
|
+
return (_jsxs(_Fragment, { children: [this.modeSelected && (_jsx("div", { class: "udex-list-root", onKeyDown: this.handleKeyDown, style: { height: this.holderHeight }, "onui5-item-press": this.handleItemPress, "onui5-header-press": this.handleItemPress, children: _jsxs("div", { class: "udex-list__scroll-container", children: [HeaderText.call(this), _jsx("span", { id: `${this._id}-mode-label`, class: "udex-list__hidden-text", children: this.ariaLabelModeText }), _jsx("div", { id: "udex-list", class: "udex-list", role: this.effectiveAccessibleRole, "aria-labelledby": this.ariaLabelledBy, "aria-multiselectable": this._listAriaMultiSelectable, "aria-busy": (this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }) })), this.modeSingleContent && (_jsxs(_Fragment, { children: [HeaderText.call(this), _jsx("div", { id: "udex-list", class: "udex-list", role: this.accessibleRole, "aria-label": this.singleContentAriaLabel, "aria-busy": (this.ariaBusy ?? undefined), children: _jsx("slot", {}) })] }))] }));
|
|
4
|
+
}
|
|
5
|
+
function HeaderText() {
|
|
6
|
+
if (!this.headerText) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return (_jsx("header", { id: `${this._id}-mode-label`, class: "udex-list__header-text", part: "header", children: this.headerText }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ListTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListTemplate.js","sourceRoot":"","sources":["../src/ListTemplate.tsx"],"names":[],"mappings":";AAGA,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO,CACL,8BACG,IAAI,CAAC,YAAY,IAAI,CACpB,cACE,KAAK,EAAC,gBAAgB,EACtB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAClB,IAAI,CAAC,eAAe,wBAClB,IAAI,CAAC,eAAe,YACxC,eAAK,KAAK,EAAC,6BAA6B,aACrC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,eAAM,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,KAAK,EAAC,wBAAwB,YAC/D,IAAI,CAAC,iBAAiB,GAClB,EACP,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,IAAI,CAAC,uBAAmC,qBAC7B,IAAI,CAAC,cAAc,0BACd,IAAI,CAAC,wBAA8C,eAC9D,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACvE,gBAAa,GACT,IACF,GACF,CACP,EACA,IAAI,CAAC,iBAAiB,IAAI,CACzB,8BACG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,cACE,EAAE,EAAC,WAAW,EACd,KAAK,EAAC,WAAW,EACjB,IAAI,EAAE,IAAI,CAAC,cAA0B,gBACzB,IAAI,CAAC,sBAAsB,eAC5B,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAiC,YACvE,gBAAa,GACT,IACL,CACJ,IACA,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,iBACE,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,EAC5B,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAC,QAAQ,YACZ,IAAI,CAAC,UAAU,GACT,CACV,CAAC;AACJ,CAAC","sourcesContent":["import type UDExList from \"./List.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/types.js\";\n\nexport default function ListTemplate(this: UDExList) {\n return (\n <>\n {this.modeSelected && (\n <div\n class=\"udex-list-root\"\n onKeyDown={this.handleKeyDown}\n style={{ height: this.holderHeight }}\n onui5-item-press={this.handleItemPress}\n onui5-header-press={this.handleItemPress}>\n <div class=\"udex-list__scroll-container\">\n {HeaderText.call(this)}\n <span id={`${this._id}-mode-label`} class=\"udex-list__hidden-text\">\n {this.ariaLabelModeText}\n </span>\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={this.effectiveAccessibleRole as AriaRole}\n aria-labelledby={this.ariaLabelledBy}\n aria-multiselectable={this._listAriaMultiSelectable as \"true\" | undefined}\n aria-busy={(this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </div>\n </div>\n )}\n {this.modeSingleContent && (\n <>\n {HeaderText.call(this)}\n <div\n id=\"udex-list\"\n class=\"udex-list\"\n role={this.accessibleRole as AriaRole}\n aria-label={this.singleContentAriaLabel}\n aria-busy={(this.ariaBusy ?? undefined) as \"true\" | \"false\" | undefined}>\n <slot></slot>\n </div>\n </>\n )}\n </>\n );\n}\n\nfunction HeaderText(this: UDExList) {\n if (!this.headerText) {\n return null;\n }\n return (\n <header\n id={`${this._id}-mode-label`}\n class=\"udex-list__header-text\"\n part=\"header\">\n {this.headerText}\n </header>\n );\n}\n"]}
|
package/dist/MediaPlayer.js
CHANGED
|
@@ -209,6 +209,9 @@ let UDExMediaPlayer = class UDExMediaPlayer extends UI5Element {
|
|
|
209
209
|
this.fireDecoratorEvent("videoStart");
|
|
210
210
|
});
|
|
211
211
|
player.on("ended", () => {
|
|
212
|
+
this.video25 = false;
|
|
213
|
+
this.video50 = false;
|
|
214
|
+
this.video75 = false;
|
|
212
215
|
this.fireDecoratorEvent("videoComplete");
|
|
213
216
|
});
|
|
214
217
|
player.on("pause", () => {
|
|
@@ -427,6 +430,9 @@ let UDExMediaPlayer = class UDExMediaPlayer extends UI5Element {
|
|
|
427
430
|
}
|
|
428
431
|
handleEmbedVideoEnded() {
|
|
429
432
|
this._embedVideoStartFired = false;
|
|
433
|
+
this.video25 = false;
|
|
434
|
+
this.video50 = false;
|
|
435
|
+
this.video75 = false;
|
|
430
436
|
this.fireDecoratorEvent("videoComplete");
|
|
431
437
|
}
|
|
432
438
|
handleEmbedVideoPause() {
|
package/dist/MediaPlayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\nimport mapLangFile from \"./mediaPlayerLanguageMapping.js\";\nimport type UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport type UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\nimport \"./BusyIndicator.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./MediaPlayerTemplate.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css.js\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport type YoutubePlayer = YT.Player;\nexport enum UDExAspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\ntype UDExMediaPlayerVideoProgressEventDetail = {\n progress: number,\n}\n\ntype UDExMediaPlayerVideojsReadyEventDetail = {\n videojs: any,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: jsxRenderer,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\", { bubbles: true })\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\", { bubbles: true })\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\", { bubbles: true })\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n * @param {number} progress percentage of video watched\n */\n@event(\"videoProgress\", { bubbles: true })\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\", { bubbles: true })\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\", { bubbles: true })\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\", { bubbles: true })\n/**\n * Fires when the VideoJS library is loaded but before the player is created.\n * Use this event to register custom VideoJS plugins via\n * <code>event.detail.videojs.registerPlugin()</code>.\n *\n * @public\n * @param {object} videojs the VideoJS constructor object\n */\n@event(\"videojsReady\", { bubbles: true })\nclass UDExMediaPlayer extends UI5Element {\n eventDetails!: {\n \"videoStart\": void,\n \"videoPause\": void,\n \"videoComplete\": void,\n \"videoReady\": void,\n \"videoProgress\": UDExMediaPlayerVideoProgressEventDetail,\n \"video25\": void,\n \"video50\": void,\n \"video75\": void,\n \"videojsReady\": UDExMediaPlayerVideojsReadyEventDetail,\n };\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n source: string = \"\";\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String })\n type: string = \"video/mp4\";\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n title: string = \"\";\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n poster: string = \"\";\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: DefaultSlot<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n width: string = \"\";\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n height: string = \"\";\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String })\n playerid: string = \"udex-media-player\";\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property()\n aspectRatio: `${UDExAspectRatio}` = \"16:9\";\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: any;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n _embedVideoStartFired = false;\n videoReady!: boolean;\n videoProgress!: number;\n private _pendingPlugins: Array<{ name: string; plugin: (...args: any[]) => any }> = [];\n\n /**\n * Registers a custom VideoJS plugin to be applied before player initialization.\n * Must be called before the component renders.\n * For plugins registered after rendering, use the videojsReady event instead.\n *\n * @param name - The plugin name\n * @param plugin - The plugin function or class\n * @public\n */\n registerPlugin(name: string, plugin: (...args: any[]) => any): void {\n this._pendingPlugins.push({ name, plugin });\n }\n\n _injectBusyIndicator(): void {\n const spinner = this.shadowRoot?.querySelector(\".vjs-loading-spinner\");\n if (!spinner || spinner.querySelector(\"[udex-busy-indicator]\")) { return; }\n const busyIndicator = document.createElement(\"udex-busy-indicator\");\n busyIndicator.setAttribute(\"active\", \"\");\n busyIndicator.setAttribute(\"surface-container\", \"\");\n spinner.appendChild(busyIndicator);\n }\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl = (target as any)?.player.controlBar?.progressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireDecoratorEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireDecoratorEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireDecoratorEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireDecoratorEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: any) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n let mouseActivated = false;\n bigPlayButton.addEventListener(\"mousedown\", () => {\n mouseActivated = true;\n });\n bigPlayButton.addEventListener(\"focus\", () => {\n if (mouseActivated) {\n mouseActivated = false;\n return;\n }\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: any) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireDecoratorEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.fireDecoratorEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireDecoratorEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.player.src({\n src: this.source,\n type: this.type,\n });\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.fireDecoratorEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-youtube]\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-vimeo]\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n setupHotkeys(e: KeyboardEvent, player: any) {\n // Back to start\n if (e.key === \"0\") {\n e.preventDefault();\n e.stopPropagation();\n player.currentTime(0);\n player.play();\n return;\n }\n\n // Full screen toggle\n if (e.key.toLowerCase() === \"f\") {\n e.preventDefault();\n e.stopPropagation();\n if (!player.isFullscreen()) {\n player.requestFullscreen();\n } else {\n player.exitFullscreen();\n }\n return;\n }\n\n // Mute / Unmute\n if (e.key.toLowerCase() === \"m\") {\n e.preventDefault();\n e.stopPropagation();\n player.muted(!player.muted());\n return;\n }\n\n // Play / Pause\n if (e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n if (player.paused()) {\n player.play();\n } else {\n player.pause();\n }\n return;\n }\n\n // Speed up the video - set higher playback rate\n if (e.key === \"ArrowRight\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex < playbackRatesOptions.length - 1) {\n const newPlaybackRate = currentRateIndex + 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Slow down the video - set lower playback rate\n if (e.key === \"ArrowLeft\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex > 0) {\n const newPlaybackRate = currentRateIndex - 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Skip forward / Skip backward\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n e.stopPropagation();\n const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;\n const duration: number = player.duration() ?? 0;\n const currentTime: number = player.currentTime() ?? 0;\n const delta: number = (e.key === \"ArrowRight\" ? stepSeconds : -stepSeconds);\n const newTime = Math.min(Math.max(currentTime + delta, 0), duration);\n player.currentTime(newTime);\n return;\n }\n\n // Volume change\n if (((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.ctrlKey)\n || ((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.metaKey)) {\n e.preventDefault();\n e.stopPropagation();\n const volumeStep: number = 0.1;\n const volume: number = player.volume() ?? 0;\n let newVolume = volume + (e.key === \"ArrowUp\" ? volumeStep : -volumeStep);\n newVolume = Math.min(Math.max(newVolume, 0), 1);\n player.volume(newVolume);\n }\n }\n\n getOptionsValue() {\n const baseOptions = {\n playbackRates: [1, 1.5, 2],\n controls: true,\n poster: this.poster,\n audioOnly: this.audioOnly,\n bigPlayButton: true,\n controlBar: {\n playToggle: true,\n volumePanel: true,\n progressControl: {\n seekBar: {\n stepSeconds: 10,\n },\n },\n remainingTimeDisplay: true,\n subsCapsButton: true,\n playbackRateMenuButton: true,\n fullscreenToggle: true,\n pictureInPictureToggle: false,\n },\n userActions: {\n hotkeys: (e: KeyboardEvent) => {\n this.setupHotkeys(e, this.player);\n },\n },\n };\n\n if (!this.options) {\n return baseOptions;\n }\n\n return {\n ...baseOptions,\n ...JSON.parse(this.options),\n };\n }\n\n async setupLanguage(language: string) {\n try {\n return await mapLangFile(language);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async (videojsModule: any) => {\n const videojs = videojsModule.default;\n\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n\n this._pendingPlugins.forEach(({ name, plugin }) => {\n videojs.registerPlugin(name, plugin);\n });\n this._pendingPlugins = [];\n\n this.fireDecoratorEvent(\"videojsReady\", { videojs });\n\n const options = this.getOptionsValue();\n const language: string = options?.language;\n if (language) {\n const languageData = await this.setupLanguage(language);\n videojs.addLanguage(language, {\n ...languageData,\n ...languageData?.default,\n });\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\", options);\n this.attachListeners(this.player);\n this._injectBusyIndicator();\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireDecoratorEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this._embedVideoStartFired) {\n this.fireDecoratorEvent(\"videoStart\");\n this._embedVideoStartFired = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this._embedVideoStartFired = false;\n this.fireDecoratorEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireDecoratorEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks(): Array<HTMLTrackElement> {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case UDExAspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === UDExAspectRatio[\"16:9\"] || this.aspectRatio === UDExAspectRatio[\"9:16\"] || this.aspectRatio === UDExAspectRatio[\"4:3\"] || this.aspectRatio === UDExAspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\nexport type { UDExMediaPlayerVideoProgressEventDetail, UDExMediaPlayerVideojsReadyEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"MediaPlayer.js","sourceRoot":"","sources":["../src/MediaPlayer.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-return */\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type { VimeoPlayer } from \"./MediaPlayerVimeo.js\";\nimport mapLangFile from \"./mediaPlayerLanguageMapping.js\";\nimport type UDExMediaPlayerYoutube from \"./MediaPlayerYoutube.js\";\nimport type UDExMediaPlayerVimeo from \"./MediaPlayerVimeo.js\";\nimport \"./BusyIndicator.js\";\n\n// Template\nimport MediaPlayerTemplate from \"./MediaPlayerTemplate.js\";\n\n// Styles\nimport MediaPlayerCss from \"./generated/themes/MediaPlayer.css.js\";\n\ndeclare global {\n interface Window {\n videojs: any;\n }\n}\n\nexport type YoutubePlayer = YT.Player;\nexport enum UDExAspectRatio {\n \"16:9\" = \"16:9\",\n \"9:16\" = \"9:16\",\n \"4:3\" = \"4:3\",\n \"1:1\" = \"1:1\",\n \"none\" = \"none\",\n}\n\ntype UDExMediaPlayerVideoProgressEventDetail = {\n progress: number,\n}\n\ntype UDExMediaPlayerVideojsReadyEventDetail = {\n videojs: any,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-media-player</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MediaPlayer.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-media-player\n * @public\n */\n@customElement({\n tag: \"udex-media-player\",\n renderer: jsxRenderer,\n styles: MediaPlayerCss,\n template: MediaPlayerTemplate,\n})\n/**\n * Fires when video is played\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoStart\")\n/**\n * Fires when video is paused\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoPause\", { bubbles: true })\n/**\n * Fires when video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoComplete\", { bubbles: true })\n/**\n * Fires when video is ready\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"videoReady\", { bubbles: true })\n/**\n * Fires when video watching progress changed\n *\n * @allowPreventDefault\n * @public\n * @param {number} progress percentage of video watched\n */\n@event(\"videoProgress\", { bubbles: true })\n/**\n * Fires when 25% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video25\", { bubbles: true })\n/**\n * Fires when 50% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video50\", { bubbles: true })\n/**\n * Fires when 75% of video is watched\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"video75\", { bubbles: true })\n/**\n * Fires when the VideoJS library is loaded but before the player is created.\n * Use this event to register custom VideoJS plugins via\n * <code>event.detail.videojs.registerPlugin()</code>.\n *\n * @public\n * @param {object} videojs the VideoJS constructor object\n */\n@event(\"videojsReady\", { bubbles: true })\nclass UDExMediaPlayer extends UI5Element {\n eventDetails!: {\n \"videoStart\": void,\n \"videoPause\": void,\n \"videoComplete\": void,\n \"videoReady\": void,\n \"videoProgress\": UDExMediaPlayerVideoProgressEventDetail,\n \"video25\": void,\n \"video50\": void,\n \"video75\": void,\n \"videojsReady\": UDExMediaPlayerVideojsReadyEventDetail,\n };\n /**\n * Defines the options object of video.js element\n * accepts following properties: https://videojs.com/guides/options\n *\n * @public\n */\n @property({ type: String })\n options!: string;\n /**\n * Defines the source of the video or audio\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n source: string = \"\";\n /**\n * Defines the video/audio type (examples: \"video/mp4\" for mp4, \"application/x-mpegURL\" for m3u8, \"audio/mp3\" for mp3) more information https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source\n *\n * @default \"video/mp4\"\n * @public\n */\n @property({ type: String })\n type: string = \"video/mp4\";\n /**\n * Defines a title for youtube video\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n title: string = \"\";\n /**\n * Defines if only audio should be played\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n audioOnly!: boolean;\n /**\n * Defines the poster url\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n poster: string = \"\";\n /**\n * Placeholder for all html `track` elements to provide video subtitles.\n * Example: `<track kind='captions' src='./videoSubtitles.vtt' srclang='en' label='English' default />`\n * More information: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n caption!: DefaultSlot<HTMLElement>;\n /**\n * Defines video width. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n width: string = \"\";\n /**\n * Defines video height. Used for YouTube and Vimeo videos only.\n * Regular video and audio sizes are control by CSS variables.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n height: string = \"\";\n /**\n * Defines id of html element that videojs will be initialized with\n *\n * @default \"udex-media-player\"\n * @public\n */\n @property({ type: String })\n playerid: string = \"udex-media-player\";\n /**\n * Defines aspect ratio of video. If set, video will be display in fluid mode.\n * Possible values: \"16:9\" , \"9:16\", \"4:3\", \"1:1\", \"none\"\n *\n * @default \"16:9\"\n * @public\n */\n @property()\n aspectRatio: `${UDExAspectRatio}` = \"16:9\";\n /**\n * If this property is set, whenever user will focus on udex-media-player element, focus will be redirected into Big Play Button element.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n playButtonInitialFocus!: boolean;\n /**\n * Enable videojs instance to be added to global window object\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n enableGlobalDependency!: boolean;\n /**\n * @private\n */\n @property({ type: Boolean })\n _allowIframeLoad!: boolean;\n\n player!: any;\n video25!: boolean;\n video50!: boolean;\n video75!: boolean;\n videoCompleted!: boolean;\n _embedVideoStartFired = false;\n videoReady!: boolean;\n videoProgress!: number;\n private _pendingPlugins: Array<{ name: string; plugin: (...args: any[]) => any }> = [];\n\n /**\n * Registers a custom VideoJS plugin to be applied before player initialization.\n * Must be called before the component renders.\n * For plugins registered after rendering, use the videojsReady event instead.\n *\n * @param name - The plugin name\n * @param plugin - The plugin function or class\n * @public\n */\n registerPlugin(name: string, plugin: (...args: any[]) => any): void {\n this._pendingPlugins.push({ name, plugin });\n }\n\n _injectBusyIndicator(): void {\n const spinner = this.shadowRoot?.querySelector(\".vjs-loading-spinner\");\n if (!spinner || spinner.querySelector(\"[udex-busy-indicator]\")) { return; }\n const busyIndicator = document.createElement(\"udex-busy-indicator\");\n busyIndicator.setAttribute(\"active\", \"\");\n busyIndicator.setAttribute(\"surface-container\", \"\");\n spinner.appendChild(busyIndicator);\n }\n\n getPlayedTime = (target: EventTarget): number => {\n const progressControl = (target as any)?.player.controlBar?.progressControl?.childNameIndex_.seekBar;\n if (!progressControl) {\n return 0;\n }\n return Math.round(progressControl.getPercent() * 100);\n };\n\n calculateVideoProgress(timeWatched: number) {\n if (timeWatched >= 25 && !this.video25) {\n this.fireDecoratorEvent(\"video25\");\n this.video25 = true;\n }\n\n if (timeWatched >= 50 && !this.video50) {\n this.fireDecoratorEvent(\"video50\");\n this.video50 = true;\n }\n\n if (timeWatched >= 75 && !this.video75) {\n this.fireDecoratorEvent(\"video75\");\n this.video75 = true;\n }\n\n this.fireDecoratorEvent(\"videoProgress\", { progress: timeWatched });\n }\n\n checkCaptionsAvailability(player: any) {\n player.on(\"loadedmetadata\", () => {\n if (!player?.textTracks) { return; }\n\n const tracks = player?.textTracks();\n let captionsAvailable = false;\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].kind === \"captions\" || tracks[i].kind === \"subtitles\") {\n captionsAvailable = true;\n }\n }\n\n if (!captionsAvailable && !this._tracks.length) {\n player.controlBar?.removeChild(\"SubsCapsButton\");\n }\n });\n }\n\n applyScrollIntoTheView() {\n const bigPlayButton = this.player.bigPlayButton?.el();\n let mouseActivated = false;\n bigPlayButton.addEventListener(\"mousedown\", () => {\n mouseActivated = true;\n });\n bigPlayButton.addEventListener(\"focus\", () => {\n if (mouseActivated) {\n mouseActivated = false;\n return;\n }\n this.player.el().scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n });\n }\n\n attachListeners(player: any) {\n player.on(\"timeupdate\", (e: Event) => {\n if (!e.target) {\n return;\n }\n\n const timeWatched = this.getPlayedTime(e.target);\n if (timeWatched >= 0) {\n this.calculateVideoProgress(timeWatched);\n }\n });\n\n player.on(\"play\", () => {\n this.fireDecoratorEvent(\"videoStart\");\n });\n\n player.on(\"ended\", () => {\n this.video25 = false;\n this.video50 = false;\n this.video75 = false;\n this.fireDecoratorEvent(\"videoComplete\");\n });\n\n player.on(\"pause\", () => {\n this.fireDecoratorEvent(\"videoPause\");\n });\n\n player.on(\"ready\", () => {\n this.player.src({\n src: this.source,\n type: this.type,\n });\n this.checkCaptionsAvailability(player);\n this.applyScrollIntoTheView();\n this.fireDecoratorEvent(\"videoReady\");\n });\n\n if (this.playButtonInitialFocus) {\n this.addEventListener(\"focus\", () => {\n (async () => {\n await player.getChild(\"BigPlayButton\")?.el_.focus();\n })();\n });\n }\n }\n\n /**\n * Returns video element\n * @public\n */\n getPlayer(): HTMLVideoElement | HTMLAudioElement | YoutubePlayer | VimeoPlayer | null {\n if (this._youtubeSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-youtube]\") as UDExMediaPlayerYoutube;\n return player?.getPlayer() || null;\n }\n if (this._vimeoSrc) {\n const player = this.shadowRoot?.querySelector(\"[udex-media-player-vimeo]\") as UDExMediaPlayerVimeo;\n return player?.getPlayer() || null;\n }\n return this.shadowRoot?.querySelector(\".video-js video\") as HTMLVideoElement || this.shadowRoot?.querySelector(\".video-js audio\") || null;\n }\n\n setupHotkeys(e: KeyboardEvent, player: any) {\n // Back to start\n if (e.key === \"0\") {\n e.preventDefault();\n e.stopPropagation();\n player.currentTime(0);\n player.play();\n return;\n }\n\n // Full screen toggle\n if (e.key.toLowerCase() === \"f\") {\n e.preventDefault();\n e.stopPropagation();\n if (!player.isFullscreen()) {\n player.requestFullscreen();\n } else {\n player.exitFullscreen();\n }\n return;\n }\n\n // Mute / Unmute\n if (e.key.toLowerCase() === \"m\") {\n e.preventDefault();\n e.stopPropagation();\n player.muted(!player.muted());\n return;\n }\n\n // Play / Pause\n if (e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n if (player.paused()) {\n player.play();\n } else {\n player.pause();\n }\n return;\n }\n\n // Speed up the video - set higher playback rate\n if (e.key === \"ArrowRight\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex < playbackRatesOptions.length - 1) {\n const newPlaybackRate = currentRateIndex + 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Slow down the video - set lower playback rate\n if (e.key === \"ArrowLeft\" && e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n const playbackRatesOptions: Array<number> = player.options_.playbackRates;\n const currentRateIndex = playbackRatesOptions.indexOf(player.playbackRate() as number ?? 1);\n if (currentRateIndex > 0) {\n const newPlaybackRate = currentRateIndex - 1;\n player.playbackRate(playbackRatesOptions[newPlaybackRate]);\n }\n return;\n }\n\n // Skip forward / Skip backward\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n e.stopPropagation();\n const stepSeconds = player.controlBar.progressControl.seekBar.options_.stepSeconds;\n const duration: number = player.duration() ?? 0;\n const currentTime: number = player.currentTime() ?? 0;\n const delta: number = (e.key === \"ArrowRight\" ? stepSeconds : -stepSeconds);\n const newTime = Math.min(Math.max(currentTime + delta, 0), duration);\n player.currentTime(newTime);\n return;\n }\n\n // Volume change\n if (((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.ctrlKey)\n || ((e.key === \"ArrowUp\" || e.key === \"ArrowDown\") && e.metaKey)) {\n e.preventDefault();\n e.stopPropagation();\n const volumeStep: number = 0.1;\n const volume: number = player.volume() ?? 0;\n let newVolume = volume + (e.key === \"ArrowUp\" ? volumeStep : -volumeStep);\n newVolume = Math.min(Math.max(newVolume, 0), 1);\n player.volume(newVolume);\n }\n }\n\n getOptionsValue() {\n const baseOptions = {\n playbackRates: [1, 1.5, 2],\n controls: true,\n poster: this.poster,\n audioOnly: this.audioOnly,\n bigPlayButton: true,\n controlBar: {\n playToggle: true,\n volumePanel: true,\n progressControl: {\n seekBar: {\n stepSeconds: 10,\n },\n },\n remainingTimeDisplay: true,\n subsCapsButton: true,\n playbackRateMenuButton: true,\n fullscreenToggle: true,\n pictureInPictureToggle: false,\n },\n userActions: {\n hotkeys: (e: KeyboardEvent) => {\n this.setupHotkeys(e, this.player);\n },\n },\n };\n\n if (!this.options) {\n return baseOptions;\n }\n\n return {\n ...baseOptions,\n ...JSON.parse(this.options),\n };\n }\n\n async setupLanguage(language: string) {\n try {\n return await mapLangFile(language);\n } catch (err) {\n console.warn(\"Cannot load language file\", err);\n }\n }\n\n onAfterRendering(): void {\n if (this._youtubeSrc || this._vimeoSrc) {\n return;\n }\n\n import(\"video.js\").then(async (videojsModule: any) => {\n const videojs = videojsModule.default;\n\n if (this.enableGlobalDependency) {\n window.videojs = videojs;\n }\n\n this._pendingPlugins.forEach(({ name, plugin }) => {\n videojs.registerPlugin(name, plugin);\n });\n this._pendingPlugins = [];\n\n this.fireDecoratorEvent(\"videojsReady\", { videojs });\n\n const options = this.getOptionsValue();\n const language: string = options?.language;\n if (language) {\n const languageData = await this.setupLanguage(language);\n videojs.addLanguage(language, {\n ...languageData,\n ...languageData?.default,\n });\n }\n\n this.player = videojs(this.shadowRoot?.querySelector(\".video-js\") || \"\", options);\n this.attachListeners(this.player);\n this._injectBusyIndicator();\n\n if (this.audioOnly) { return; }\n\n const backgroundOpacityElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-bg-opacity > select > option[value=\\\"0.5\\\"]\");\n if (backgroundOpacityElement) {\n backgroundOpacityElement.value = \"0.7\";\n backgroundOpacityElement.selected = true;\n }\n\n const fontSizeElement = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-font-percent > select > option[value=\\\"1.00\\\"]\");\n if (fontSizeElement) { fontSizeElement.value = \"1.2245\"; }\n\n const playbackSpeed = this.shadowRoot?.querySelector<HTMLOptionElement>(\".vjs-playback-rate .vjs-playback-rate-value\");\n playbackSpeed?.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n handleEmbedPlay() {\n this._allowIframeLoad = true;\n }\n\n handleEmbedVideoReady() {\n this.fireDecoratorEvent(\"videoReady\");\n }\n\n handleEmbedVideoPlaying = (embedEvent: CustomEvent) => {\n if (!this._embedVideoStartFired) {\n this.fireDecoratorEvent(\"videoStart\");\n this._embedVideoStartFired = true;\n }\n const playedTime = Math.round(embedEvent.detail.percentPlayed as number);\n this.calculateVideoProgress(playedTime);\n };\n\n handleEmbedVideoEnded() {\n this._embedVideoStartFired = false;\n this.video25 = false;\n this.video50 = false;\n this.video75 = false;\n this.fireDecoratorEvent(\"videoComplete\");\n }\n\n handleEmbedVideoPause() {\n this.fireDecoratorEvent(\"videoPause\");\n }\n\n get _iframePosterPreload() {\n const shouldBlockIframe = this._iframeLoad && this.poster;\n if (this._allowIframeLoad) {\n return false;\n }\n if (!shouldBlockIframe) {\n this._allowIframeLoad = true;\n }\n return shouldBlockIframe;\n }\n\n get _iframeLoad() {\n return this._youtubeSrc || this._vimeoSrc;\n }\n\n get _tracks(): Array<HTMLTrackElement> {\n return this.getSlottedNodes(\"caption\");\n }\n\n get _vimeoSrc() {\n return this.source.includes(\"vimeo\");\n }\n\n get _youtubeSrc() {\n return this.source.includes(\"youtube\");\n }\n\n get aspectRatioClass() {\n switch (this.aspectRatio) {\n case UDExAspectRatio[\"16:9\"]:\n return \"vjs-16-9 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"9:16\"]:\n return \"vjs-9-16 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"4:3\"]:\n return \"vjs-4-3 udex-media-player__fluid vjs-fluid\";\n case UDExAspectRatio[\"1:1\"]:\n return \"vjs-1-1 udex-media-player__fluid vjs-fluid\";\n default:\n return \"\";\n }\n }\n\n get embedVideoFluidClass() {\n if (this.aspectRatio === UDExAspectRatio[\"16:9\"] || this.aspectRatio === UDExAspectRatio[\"9:16\"] || this.aspectRatio === UDExAspectRatio[\"4:3\"] || this.aspectRatio === UDExAspectRatio[\"1:1\"]) {\n return true;\n }\n return false;\n }\n\n get playerElementId(): string {\n return this.playerid || \"udex-media-player\";\n }\n\n onExitDOM(): void {\n if (this.player) {\n this.player.dispose();\n }\n }\n}\n\nUDExMediaPlayer.define();\n\nexport default UDExMediaPlayer;\nexport type { UDExMediaPlayerVideoProgressEventDetail, UDExMediaPlayerVideojsReadyEventDetail };\n"]}
|
package/dist/SelectBox.js
CHANGED
|
@@ -132,6 +132,37 @@ let UDExSelectBox = class UDExSelectBox extends UDExSelectBase {
|
|
|
132
132
|
const isIconButton = !!relatedTarget?.closest("[slot='firstIcon'],[slot='secondIcon']");
|
|
133
133
|
const isSearchInput = relatedTarget === this._search;
|
|
134
134
|
const hasTags = this.tokenizer?.tokens.length > 0;
|
|
135
|
+
// When focus moves to the body div of a collapsible single-select group header
|
|
136
|
+
// (which is focusable via tabindex="0" but has no click→header-press wiring),
|
|
137
|
+
// set it as the active descendant and redirect DOM focus back to the input so
|
|
138
|
+
// the combobox pattern is preserved and subsequent arrow navigation works.
|
|
139
|
+
//
|
|
140
|
+
// The focusout handler sits on div.udex-text-field__input (SelectBox's shadow DOM).
|
|
141
|
+
// Shadow DOM retargeting means relatedTarget is either:
|
|
142
|
+
// (a) the body div itself (.udex-list__group-content) — if caught at a lower boundary
|
|
143
|
+
// (b) the UDExListGroupHeader HOST — the common case when the event bubbles to this div
|
|
144
|
+
const rtAsItem = relatedTarget;
|
|
145
|
+
const isGroupHeaderBodyDiv = this._popover?.open
|
|
146
|
+
&& !!relatedTarget?.classList.contains("udex-list__group-content");
|
|
147
|
+
const isGroupHeaderHost = this._popover?.open
|
|
148
|
+
&& !!rtAsItem?.isGroup
|
|
149
|
+
&& !!rtAsItem?.collapsible
|
|
150
|
+
&& !rtAsItem?.modeMultiSelect;
|
|
151
|
+
if (isGroupHeaderBodyDiv || isGroupHeaderHost) {
|
|
152
|
+
const groupHeaderHost = isGroupHeaderBodyDiv
|
|
153
|
+
? relatedTarget.getRootNode()?.host
|
|
154
|
+
: rtAsItem;
|
|
155
|
+
if (groupHeaderHost?.isGroup) {
|
|
156
|
+
const navItems = this._list?.getKeyboardNavigationItems();
|
|
157
|
+
const tokenId = this.getDataTokenId(groupHeaderHost);
|
|
158
|
+
const renderedItem = navItems?.find(i => (i.getAttribute("data-token-id") ?? i._id) === tokenId);
|
|
159
|
+
if (renderedItem) {
|
|
160
|
+
this._setActiveDescendant(renderedItem);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
this._search.focus();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
135
166
|
if (!isInsideComponent && !isFooterElement && !isIconButton && !isSearchInput) {
|
|
136
167
|
this.closeDropdown();
|
|
137
168
|
this.resetSearchState();
|