@sapudex/web-components 0.173.0 → 0.184.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.esm.js +1 -1
- package/dist/Accordion.js +2 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.d.ts +0 -1
- package/dist/AccordionItem.js +2 -2
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Badge.js +2 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +7 -7
- package/dist/Breadcrumbs.js +3 -3
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/CountrySelector.js +5 -5
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +53 -26
- package/dist/DatePicker.js +205 -39
- package/dist/DatePicker.js.map +1 -1
- package/dist/FilterMenu.d.ts +4 -6
- package/dist/FilterMenu.js +10 -10
- package/dist/FilterMenu.js.map +1 -1
- package/dist/Footer.js +6 -2
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.d.ts +0 -1
- package/dist/HeroBanner.js +2 -1
- package/dist/HeroBanner.js.map +1 -1
- package/dist/Link.js +2 -0
- package/dist/Link.js.map +1 -1
- package/dist/ListSelectAll.js +2 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadItem.js +2 -2
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.js +1 -1
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.js +1 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +1 -0
- package/dist/MastheadShell.js +20 -1
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.js +2 -2
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MessageStrip.js +2 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/RadioButton.js +0 -1
- package/dist/RadioButton.js.map +1 -1
- package/dist/Search.d.ts +15 -1
- package/dist/Search.js +62 -16
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.js +3 -3
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +1 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBox.d.ts +3 -3
- package/dist/SelectBox.js +6 -6
- package/dist/SelectBox.js.map +1 -1
- package/dist/SideNavigationMobile.js +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/StepInput.js +1 -1
- package/dist/StepInput.js.map +1 -1
- package/dist/TabNavigation.d.ts +4 -5
- package/dist/TabNavigation.js +16 -14
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.js +2 -2
- package/dist/Table.js.map +1 -1
- package/dist/assets/{css_variables-a92ef9ad.css → bundle-c5e3cbf2.css} +1 -1
- package/dist/assets/{bundle.esm-c4ffd46a.js → bundle.esm-d98e72b5.js} +184 -184
- package/dist/assets/parameters-bundle.css-beef06a9.js +2 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Review.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SearchSuggestions.css +1 -1
- package/dist/css/themes/SegmentedButton.css +1 -1
- package/dist/css/themes/SideNavigationMobileDropdown.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css +1 -1
- package/dist/custom-elements-internal.json +67 -49
- package/dist/custom-elements.json +62 -46
- package/dist/features/SearchSuggestionsPopover.d.ts +1 -1
- package/dist/generated/assets/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.json +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js +1 -1
- package/dist/generated/templates/DatePickerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +2 -2
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +2 -2
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Review.css.js +1 -1
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SearchSuggestions.css.js +1 -1
- package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
- package/dist/generated/themes/SegmentedButton.css.js +1 -1
- package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +2 -12
- package/dist/web-types.json +19 -23
- package/package.json +8 -8
- package/src/Accordion.ts +2 -1
- package/src/AccordionItem.ts +2 -2
- package/src/Badge.ts +2 -1
- package/src/Breadcrumbs.hbs +3 -3
- package/src/Breadcrumbs.ts +14 -14
- package/src/BreadcrumbsPopover.hbs +1 -1
- package/src/CountrySelector.ts +5 -5
- package/src/DatePicker.hbs +4 -5
- package/src/DatePicker.ts +257 -64
- package/src/DatePickerPopover.hbs +2 -2
- package/src/FilterMenu.hbs +2 -1
- package/src/FilterMenu.ts +13 -14
- package/src/Footer.ts +6 -2
- package/src/HeroBanner.ts +2 -1
- package/src/Link.ts +2 -0
- package/src/ListSelectAll.ts +2 -0
- package/src/MastheadItem.ts +2 -2
- package/src/MastheadMenu.ts +1 -1
- package/src/MastheadMobileMenu.ts +1 -1
- package/src/MastheadShell.ts +24 -1
- package/src/MediaPlayer.ts +2 -2
- package/src/MessageStrip.ts +2 -1
- package/src/RadioButton.ts +0 -1
- package/src/Search.hbs +3 -3
- package/src/Search.ts +82 -21
- package/src/SearchableListBase.ts +3 -3
- package/src/SecondaryNavigation.ts +1 -1
- package/src/SecondaryNavigationItem.ts +1 -1
- package/src/SelectBox.ts +9 -9
- package/src/SideNavigationMobile.ts +1 -1
- package/src/StepInput.ts +1 -1
- package/src/TabHeader.hbs +2 -2
- package/src/TabNavigation.ts +19 -18
- package/src/Table.ts +2 -2
- package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/DatePickerPopoverTemplate.lit.ts +1 -1
- package/src/generated/templates/DatePickerTemplate.lit.ts +1 -1
- package/src/generated/templates/FilterMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/SearchTemplate.lit.ts +2 -2
- package/src/generated/templates/TabHeaderTemplate.lit.ts +2 -2
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MessageStrip.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SearchSuggestions.css.ts +1 -1
- package/src/generated/themes/SegmentedButton.css.ts +1 -1
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/overrides/@ui5/webcomponents/sap_glow/parameters-bundle.css.ts +1 -1
- package/src/themes/AccordionItem.css +2 -2
- package/src/themes/Button.css +5 -5
- package/src/themes/CountrySelector.css +14 -14
- package/src/themes/ListItem.css +1 -1
- package/src/themes/MastheadMenu.css +2 -2
- package/src/themes/MastheadMobileMenu.css +2 -2
- package/src/themes/MastheadProfileMenu.css +2 -2
- package/src/themes/MessageStrip.css +6 -6
- package/src/themes/Pagination.css +2 -1
- package/src/themes/PhoneNumberField.css +2 -2
- package/src/themes/Review.css +1 -1
- package/src/themes/ReviewItem.css +1 -1
- package/src/themes/Search.css +34 -4
- package/src/themes/SearchSuggestions.css +16 -0
- package/src/themes/SegmentedButton.css +1 -1
- package/src/themes/SelectBox.css +1 -1
- package/src/themes/SideNavigationMobileDropdown.css +1 -1
- package/src/themes/StepInput.css +5 -5
- package/src/themes/TabNavigation.css +17 -12
- package/src/themes/Table.css +5 -5
- package/dist/assets/parameters-bundle.css-07457fce.js +0 -2
|
@@ -49,7 +49,7 @@ let UDExSideNavigationMobile = class UDExSideNavigationMobile extends UI5Element
|
|
|
49
49
|
}
|
|
50
50
|
async _getResponsePopover() {
|
|
51
51
|
const staticAreaItem = await this.getStaticAreaItemDomRef();
|
|
52
|
-
return staticAreaItem.querySelector(`udex-dropdown`);
|
|
52
|
+
return staticAreaItem.querySelector(`[udex-dropdown]`);
|
|
53
53
|
}
|
|
54
54
|
_afterDropdownOpen() {
|
|
55
55
|
this._dropdownOpened = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,kDAAkD,CAAC;AAE1D,OAAO,4BAA4B,MAAM,2DAA2D,CAAC;AACrG,OAAO,oCAAoC,MAAM,mEAAmE,CAAC;AAKrH,SAAS;AACT,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AACrF,OAAO,+BAA+B,MAAM,wDAAwD,CAAC;AAIrG;;;;;;;;;;;;;;;;GAgBG;AAWH,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QAyCE,iBAAY,GAAG,KAAK,CAAC;IAiEvB,CAAC;IA9DC;;;OAGG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,uCAAuC,CAAE,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC5D,OAAO,cAAe,CAAC,aAAa,CAAe,
|
|
1
|
+
{"version":3,"file":"SideNavigationMobile.js","sourceRoot":"","sources":["../src/SideNavigationMobile.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UDExSideNavigation from \"./SideNavigation.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SideNavigationMobileTemplate from \"./generated/templates/SideNavigationMobileTemplate.lit.js\";\nimport SideNavigationMobileDropdownTemplate from \"./generated/templates/SideNavigationMobileDropdownTemplate.lit.js\";\nimport UDExSideNavigationItem from \"./SideNavigationItem.js\";\nimport UDExSideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport UDExSideNavigationGroup from \"./SideNavigationGroup.js\";\n\n// Styles\nimport SideNavigationMobileCss from \"./generated/themes/SideNavigationMobile.css.js\";\nimport SideNavigationMobileDropdownCss from \"./generated/themes/SideNavigationMobileDropdown.css.js\";\n\ntype SelectedItem = UDExSideNavigationItem | UDExSideNavigationSubItem | null;\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-side-navigation-mobile</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/SideNavigation.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-side-navigation-mobile\",\n renderer: litRender,\n template: SideNavigationMobileTemplate,\n styles: SideNavigationMobileCss,\n staticAreaTemplate: SideNavigationMobileDropdownTemplate,\n staticAreaStyles: [SideNavigationMobileCss, SideNavigationMobileDropdownCss],\n dependencies: [UDExSideNavigation, UDExDropdown, Icon],\n})\n\nclass UDExSideNavigationMobile extends UI5Element {\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the main items of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the top-level items, and the `ui5-side-navigation-sub-item` component for second-level items, nested\n * inside the items.\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Defines the fixed items at the bottom of the `ui5-side-navigation`. Use the `ui5-side-navigation-item` component\n * for the fixed items, and optionally the `ui5-side-navigation-sub-item` component to provide second-level items inside them.\n *\n * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n *\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true })\n fixedItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n\n /**\n * Indicates selected item element\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Object })\n _selectedItem!: SelectedItem;\n\n _navItems!: Array<UDExSideNavigationItem | UDExSideNavigationGroup>;\n _initialized = false;\n _dropdown!: UDExDropdown;\n\n /**\n * Getter for the interactive element that opens the dropdown\n * @private\n */\n get _dropdownTrigger() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-side-navigation-mobile__trigger\")!;\n }\n\n async _getResponsePopover() {\n const staticAreaItem = await this.getStaticAreaItemDomRef();\n return staticAreaItem!.querySelector<UDExDropdown>(`[udex-dropdown]`)!;\n }\n\n _afterDropdownOpen() {\n this._dropdownOpened = true;\n }\n\n _afterDropdownClose() {\n this._dropdownOpened = false;\n }\n\n async handleTriggerClick() {\n this._dropdown = await this._getResponsePopover();\n if (this._dropdown?.open) {\n this._dropdown.onClose();\n } else {\n this._dropdown.onOpen(this._dropdownTrigger);\n }\n }\n\n async handleKeydown(event: KeyboardEvent) {\n if ((event.key === \"Enter\" || event.key === \" \")) {\n await this.handleTriggerClick();\n }\n }\n\n async _handleSelectionChanged(event: {detail: { item: UDExSideNavigationItem | UDExSideNavigationSubItem }}) {\n this._dropdown = await this._getResponsePopover();\n this._dropdown.onClose();\n this._selectedItem = event.detail.item;\n }\n\n getSelectedItem() {\n const items = this._navItems.reduce((result, item) => {\n return (result).concat(item.allItems as UDExSideNavigationSubItem[]);\n }, new Array<UDExSideNavigationItem | UDExSideNavigationSubItem>());\n return items.find(item => item._selected);\n }\n\n onBeforeRendering() {\n if (!this._initialized) {\n const items = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"navItems\");\n const fixedItems = this.getSlottedNodes<UDExSideNavigationItem | UDExSideNavigationGroup>(\"fixedItems\");\n this._navItems = items.concat(fixedItems);\n this._selectedItem = this.getSelectedItem() || null;\n }\n this._initialized = true;\n }\n\n async onAfterRendering() {\n this._dropdown = await this._getResponsePopover();\n }\n}\n\nUDExSideNavigationMobile.define();\n\nexport default UDExSideNavigationMobile;\n"]}
|
package/dist/StepInput.js
CHANGED
|
@@ -82,7 +82,7 @@ let UDExStepInput = UDExStepInput_1 = class UDExStepInput extends UI5Element {
|
|
|
82
82
|
return this.inputOuter.shadowRoot.querySelector("input");
|
|
83
83
|
}
|
|
84
84
|
get inputOuter() {
|
|
85
|
-
return this.shadowRoot.querySelector("udex-text-field");
|
|
85
|
+
return this.shadowRoot.querySelector("[udex-text-field]");
|
|
86
86
|
}
|
|
87
87
|
_onInputFocusIn() {
|
|
88
88
|
if (this.value !== this._previousValue) {
|
package/dist/StepInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport ValueState from \"./types/common.js\";\n\nimport StepInputTemplate from \"./generated/templates/StepInputTemplate.lit.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport UDExControlButton from \"./ControlButton.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\nexport type StepInputValueStateChangeEventDetail = {\n valueState: `${ValueState}`,\n valid: boolean,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: litRender,\n styles: StepInputCss,\n template: StepInputTemplate,\n dependencies: [Icon, UDExTextField, UDExControlButton],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\")\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event<StepInputValueStateChangeEventDetail>(\"value-state-change\", {\n detail: {\n /**\n * @public\n */\n valueState: {\n type: String,\n },\n /**\n * @public\n */\n valid: {\n type: Boolean,\n },\n },\n})\nclass UDExStepInput extends UI5Element {\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ validator: Float, defaultValue: 0 })\n value!: number;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ validator: Float, defaultValue: 1 })\n step!: number;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n valuePrecision!: number;\n\n /**\n * Defines label text for the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines supporting text under the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n @property({ type: String, noAttribute: true, defaultValue: \"Number\" })\n type!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ validator: Float, noAttribute: true })\n _initialValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _previousValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _waitTimeout!: number;\n\n @property({ validator: Float, noAttribute: true })\n _speed!: number;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ validator: Integer, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ type: ValueState, noAttribute: true })\n _initialValueState?: `${ValueState}`;\n\n static i18nBundle: I18nBundle;\n\n _keyDownHandlerBound: (e: KeyboardEvent) => void;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n constructor() {\n super();\n this._keyDownHandlerBound = this._onkeydown.bind(this);\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"udex-text-field\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? ValueState.Standard : ValueState.Error;\n\n const eventPrevented = !this.fireEvent<StepInputValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue(e: CustomEvent) {\n if (!this._incIconInactive && e.isTrusted) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue(e: CustomEvent) {\n if (!this._decIconInactive && e.isTrusted) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: KeyboardEvent) {\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(e)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(e)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(e)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(e)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(e) || isUpShiftCtrl(e))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(e) || isDownShiftCtrl(e))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(e) && !isDownCtrl(e) && !isUpShift(e) && !isDownShift(e)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ?? 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ?? 0),\n this._getNumberPrecision(this.max ?? 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ?? 0), this.max ?? Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n\n this.input.addEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n\n onExitDOM(): void {\n this.input.removeEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
|
|
1
|
+
{"version":3,"file":"StepInput.js","sourceRoot":"","sources":["../src/StepInput.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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Float from \"@ui5/webcomponents-base/dist/types/Float.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/less.js\";\nimport \"@ui5/webcomponents-icons/dist/add.js\";\nimport {\n isDown,\n isDownCtrl,\n isDownShift,\n isDownShiftCtrl,\n isEnter,\n isEscape,\n isPageDownShift,\n isPageUpShift,\n isUp,\n isUpCtrl,\n isUpShift,\n isUpShiftCtrl,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { STEPINPUT_DEC_ICON_TITLE, STEPINPUT_INC_ICON_TITLE } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExTextField from \"./TextField.js\";\nimport ValueState from \"./types/common.js\";\n\nimport StepInputTemplate from \"./generated/templates/StepInputTemplate.lit.js\";\n\n// Styles\nimport StepInputCss from \"./generated/themes/StepInput.css.js\";\nimport UDExControlButton from \"./ControlButton.js\";\n\n// Spin variables\nconst INITIAL_WAIT_TIMEOUT = 500; // milliseconds\nconst ACCELERATION = 0.8;\nconst MIN_WAIT_TIMEOUT = 50; // milliseconds\nconst INITIAL_SPEED = 120; // milliseconds\n\nexport type StepInputValueStateChangeEventDetail = {\n valueState: `${ValueState}`,\n valid: boolean,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-step-input</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/StepInput.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-step-input\",\n renderer: litRender,\n styles: StepInputCss,\n template: StepInputTemplate,\n dependencies: [Icon, UDExTextField, UDExControlButton],\n})\n\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n * @public\n */\n@event(\"change\")\n/**\n * Fired before the value state of the component is updated internally.\n * The event is preventable, meaning that if it's default action is\n * prevented, the component will not update the value state.\n * @allowPreventDefault\n * @public\n * @param {string} valueState The new `valueState` that will be set.\n * @param {boolean} valid Indicator if the value is in between the min and max value.\n */\n@event<StepInputValueStateChangeEventDetail>(\"value-state-change\", {\n detail: {\n /**\n * @public\n */\n valueState: {\n type: String,\n },\n /**\n * @public\n */\n valid: {\n type: Boolean,\n },\n },\n})\nclass UDExStepInput extends UI5Element {\n /**\n * Defines a value of the component.\n * @default 0\n * @public\n */\n @property({ validator: Float, defaultValue: 0 })\n value!: number;\n\n /**\n * Defines a minimum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n min?: number;\n\n /**\n * Defines a maximum value of the component.\n * @default undefined\n * @public\n */\n @property({ validator: Float })\n max?: number;\n\n /**\n * Defines a step of increasing/decreasing the value of the component.\n * @default 1\n * @public\n */\n @property({ validator: Float, defaultValue: 1 })\n step!: number;\n\n /**\n * Defines the value state of the component.\n * @default \"None\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines whether the component is required.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Determines whether the component is displayed as disabled.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Determines whether the component is displayed as read-only.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Determines the number of digits after the decimal point of the component.\n * @default 0\n * @public\n */\n @property({ validator: Integer, defaultValue: 0 })\n valuePrecision!: number;\n\n /**\n * Defines label text for the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n label!: string;\n\n /**\n * Defines supporting text under the input field.\n *\n * @defaultvalue \"\"\n * @public\n */\n @property({ type: String, defaultValue: \"\" })\n supportingText!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n @property({ type: String, noAttribute: true, defaultValue: \"Number\" })\n type!: string;\n\n @property({ type: Boolean, noAttribute: true })\n _decIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n _incIconDisabled!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n incIconActive!: boolean;\n\n @property({ type: Boolean, noAttribute: true })\n decIconActive!: boolean;\n\n @property({ validator: Float, noAttribute: true })\n _initialValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _previousValue!: number;\n\n @property({ validator: Float, noAttribute: true })\n _waitTimeout!: number;\n\n @property({ validator: Float, noAttribute: true })\n _speed!: number;\n\n @property({ type: Boolean, noAttribute: true })\n _btnDown!: boolean;\n\n @property({ validator: Integer, noAttribute: true })\n _spinTimeoutId!: Timeout;\n\n @property({ type: Boolean, noAttribute: true })\n _spinStarted!: boolean;\n\n @property({ type: ValueState, noAttribute: true })\n _initialValueState?: `${ValueState}`;\n\n static i18nBundle: I18nBundle;\n\n _keyDownHandlerBound: (e: KeyboardEvent) => void;\n\n static async onDefine() {\n UDExStepInput.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n constructor() {\n super();\n this._keyDownHandlerBound = this._onkeydown.bind(this);\n }\n\n get decIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_DEC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get incIconTitle() {\n return [\n UDExStepInput.i18nBundle.getText(STEPINPUT_INC_ICON_TITLE),\n this.step.toFixed(this._getNumberPrecision(this.step)),\n ].join(\" \");\n }\n\n get _decIconInactive() {\n return this._decIconDisabled || this.readonly || this.disabled;\n }\n\n get _incIconInactive() {\n return this._incIconDisabled || this.readonly || this.disabled;\n }\n\n get _valuePrecisioned() {\n return this.value.toFixed(this.valuePrecision);\n }\n\n onBeforeRendering() {\n this._setButtonState();\n }\n\n get input() {\n return this.inputOuter.shadowRoot!.querySelector(\"input\")!;\n }\n\n get inputOuter() {\n return this.shadowRoot!.querySelector(\"[udex-text-field]\")!;\n }\n\n _onInputFocusIn() {\n if (this.value !== this._previousValue) {\n this._previousValue = this.value;\n }\n }\n\n _onInputFocusOut() {\n this._onInputChange();\n }\n\n _setButtonState() {\n this._decIconDisabled = this.min !== undefined && this.value <= this.min;\n this._incIconDisabled = this.max !== undefined && this.value >= this.max;\n }\n\n setIncButtonActiveState() {\n this.incIconActive = true;\n }\n\n setDecButtonActiveState() {\n this.decIconActive = true;\n }\n\n unsetButtonsActiveState() {\n this.decIconActive = false;\n this.incIconActive = false;\n }\n\n _validate() {\n if (this._initialValueState === undefined) {\n this._initialValueState = this.valueState;\n }\n\n this._updateValueState();\n }\n\n _updateValueState() {\n const valid = !((this.min !== undefined && this.value < this.min) || (this.max !== undefined && this.value > this.max));\n const previousValueState = this.valueState;\n\n this.valueState = valid ? ValueState.Standard : ValueState.Error;\n\n const eventPrevented = !this.fireEvent<StepInputValueStateChangeEventDetail>(\"value-state-change\", { valueState: this.valueState, valid }, true);\n\n if (eventPrevented) {\n this.valueState = previousValueState;\n }\n }\n\n _getNumberPrecision(value: number) {\n if (!Number.isFinite(value)) {\n return 0;\n }\n let exponent = 1;\n let precision = 0;\n while (Math.round(value * exponent) / exponent !== value) { exponent *= 10; precision++; }\n return precision;\n }\n\n _preciseValue(value: number) {\n const pow = 10 ** this.valuePrecision;\n return Math.round(value * pow) / pow;\n }\n\n _fireChangeEvent() {\n if (this._previousValue !== this.value) {\n this._previousValue = this.value;\n this.fireEvent(\"change\", { value: this.value });\n }\n }\n\n /**\n * Value modifier - modifies the value of the component, validates the new value and enables/disables increment and\n * decrement buttons according to the value and min/max values (if set). Fires `change` event when requested\n * @private\n * @param modifier modifies the value of the component with the given modifier (positive or negative)\n * @param fireChangeEvent if `true`, fires `change` event when the value is changed\n */\n _modifyValue(modifier: number, fireChangeEvent = false) {\n let value;\n this.value = this._preciseValue(parseFloat(this.input.value));\n value = this.value + modifier;\n if (this.min !== undefined && value < this.min) {\n value = this.min;\n }\n if (this.max !== undefined && value > this.max) {\n value = this.max;\n }\n value = this._preciseValue(value);\n if (value !== this.value) {\n this.value = value;\n this._validate();\n this._setButtonState();\n if (fireChangeEvent) {\n this._fireChangeEvent();\n }\n }\n }\n\n _incValue(e: CustomEvent) {\n if (!this._incIconInactive && e.isTrusted) {\n this._modifyValue(this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _decValue(e: CustomEvent) {\n if (!this._decIconInactive && e.isTrusted) {\n this._modifyValue(-this.step, true);\n this._previousValue = this.value;\n }\n }\n\n _onInputChange() {\n if (Number.isNaN(Number(this.input.value)) || this.input.value.trim() === \"\") {\n const fallbackValuePrecisioned = this._initialValue.toFixed(this.valuePrecision);\n this.inputOuter.setAttribute(\"value\", fallbackValuePrecisioned); // necessary for correct label rendering\n this.input.value = fallbackValuePrecisioned; // necessary for correct value rendering\n }\n const inputValue = this._preciseValue(parseFloat(this.input.value));\n if (this.value !== this._previousValue || this.value !== inputValue) {\n this.value = inputValue;\n this._validate();\n this._setButtonState();\n this._fireChangeEvent();\n }\n }\n\n _onkeydown(e: KeyboardEvent) {\n let preventDefault = true;\n if (this.disabled || this.readonly) {\n return;\n }\n\n if (isEnter(e)) {\n this._onInputChange();\n return;\n }\n\n if (isUp(e)) {\n // step up\n this._modifyValue(this.step);\n } else if (isDown(e)) {\n // step down\n this._modifyValue(-this.step);\n } else if (isEscape(e)) {\n // return previous value\n this.value = this._previousValue;\n this.input.value = this.value.toFixed(this.valuePrecision);\n } else if (this.max !== undefined && (isPageUpShift(e) || isUpShiftCtrl(e))) {\n // step to max\n this._modifyValue(this.max - this.value, true);\n } else if (this.min !== undefined && (isPageDownShift(e) || isDownShiftCtrl(e))) {\n // step to min\n this._modifyValue(this.min - this.value, true);\n } else if (!isUpCtrl(e) && !isDownCtrl(e) && !isUpShift(e) && !isDownShift(e)) {\n preventDefault = false;\n }\n if (preventDefault) {\n e.preventDefault();\n }\n }\n\n _decSpin() {\n if (!this._decIconDisabled) {\n this._spinValue(false, true);\n this.setDecButtonActiveState();\n }\n }\n\n _incSpin() {\n if (!this._incIconDisabled) {\n this._spinValue(true, true);\n this.setIncButtonActiveState();\n }\n }\n\n /**\n * Calculates the time which should be waited until _spinValue function is called.\n */\n _calcWaitTimeout() {\n this._speed *= ACCELERATION;\n this._waitTimeout = ((this._waitTimeout - this._speed) < MIN_WAIT_TIMEOUT ? MIN_WAIT_TIMEOUT : (this._waitTimeout - this._speed));\n return this._waitTimeout;\n }\n\n /**\n * Called when the increment or decrement button is pressed and held to set new value.\n * @private\n * @param increment - is this the increment button or not so the values should be spin accordingly up or down\n * @param resetVariables - whether to reset the spin-related variables or not\n */\n _spinValue(increment: boolean, resetVariables = false) {\n if (resetVariables) {\n this._waitTimeout = INITIAL_WAIT_TIMEOUT;\n this._speed = INITIAL_SPEED;\n this._btnDown = true;\n }\n this._spinTimeoutId = setTimeout(() => {\n if (this._btnDown) {\n this._spinStarted = true;\n this._modifyValue(increment ? this.step : -this.step);\n this._setButtonState();\n if ((!this._incIconDisabled && increment) || (!this._decIconDisabled && !increment)) {\n this._spinValue(increment);\n } else {\n this._resetSpin();\n this._fireChangeEvent();\n }\n }\n }, this._calcWaitTimeout());\n }\n\n /**\n * Resets spin process\n */\n _resetSpin() {\n clearTimeout(this._spinTimeoutId);\n this._btnDown = false;\n this._spinStarted = false;\n this.unsetButtonsActiveState();\n }\n\n /**\n * Resets spin process when mouse outs + or - buttons\n */\n _resetSpinOut() {\n if (this._btnDown) {\n this._resetSpin();\n this._fireChangeEvent();\n this.unsetButtonsActiveState();\n }\n }\n\n onEnterDOM(): void {\n // swap values if the min value is larger than the max value\n if (this.min !== undefined && this.max !== undefined && this.min > this.max) {\n const temp = this.min;\n this.min = this.max;\n this.max = temp;\n }\n\n // detect necessarry value precision as the highest presicion of the step, min, max and initial value\n // the valuePrecision attribute can be used to increase precision, but not to lower it\n this.valuePrecision = Math.max(\n this.valuePrecision ?? 0,\n this._getNumberPrecision(this.step),\n this._getNumberPrecision(this.min ?? 0),\n this._getNumberPrecision(this.max ?? 0),\n this._getNumberPrecision(this.value),\n );\n\n this._initialValue = Math.min(Math.max(this.value, this.min ?? 0), this.max ?? Infinity);\n\n this.value = this._initialValue;\n\n this._previousValue = this.value;\n\n this.input.addEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n\n onExitDOM(): void {\n this.input.removeEventListener(\"keydown\", this._keyDownHandlerBound);\n }\n}\n\nUDExStepInput.define();\n\nexport default UDExStepInput;\n"]}
|
package/dist/TabNavigation.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
2
|
import type { StyleData } from "@ui5/webcomponents-base/dist/types.js";
|
|
3
|
-
import
|
|
3
|
+
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
4
4
|
import Tab, { ITab } from "./Tab.js";
|
|
5
|
-
import "@ui5/webcomponents/dist/Icon.js";
|
|
6
5
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
7
6
|
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
8
7
|
export declare enum SizeMoreButton {
|
|
@@ -81,7 +80,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
81
80
|
items: Array<ITab>;
|
|
82
81
|
static i18nBundle: any;
|
|
83
82
|
_handleResizeBound: () => void;
|
|
84
|
-
|
|
83
|
+
_popover?: Popover;
|
|
85
84
|
_visibleTabs?: Array<ITab | HTMLElement>;
|
|
86
85
|
_isExpanded: boolean;
|
|
87
86
|
_maxTitleLength: number;
|
|
@@ -133,7 +132,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
133
132
|
onItemSelect(selectedId: string): void;
|
|
134
133
|
getMoreButton(): HTMLElement;
|
|
135
134
|
getHeader(): HTMLElement;
|
|
136
|
-
handleMoreButton(): void;
|
|
135
|
+
handleMoreButton(e: Event): void;
|
|
137
136
|
updateOverflowItems(): void;
|
|
138
137
|
handleTogglePopover(): void;
|
|
139
138
|
handleClosePopover(): void;
|
|
@@ -165,7 +164,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
165
164
|
handleEscape(e: KeyboardEvent): void;
|
|
166
165
|
handleHome(e: KeyboardEvent): void;
|
|
167
166
|
handleEnd(e: KeyboardEvent): void;
|
|
168
|
-
getResponsePopover():
|
|
167
|
+
getResponsePopover(): Popover;
|
|
169
168
|
get moreButtonText(): string;
|
|
170
169
|
static registerStaticAreaTabStyles(styles: StyleData): void;
|
|
171
170
|
static get tabNavigationPopoverTemplate(): typeof TabNavigationPopoverTemplate;
|
package/dist/TabNavigation.js
CHANGED
|
@@ -13,12 +13,12 @@ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
|
13
13
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
14
14
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
15
15
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
16
|
-
import
|
|
16
|
+
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
17
17
|
import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
|
|
18
18
|
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
19
19
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
20
20
|
import { isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
21
|
-
import "@ui5/webcomponents/dist/Icon.js";
|
|
21
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
22
22
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
23
23
|
import { MORE } from "./generated/i18n/i18n-defaults.js";
|
|
24
24
|
// Templates
|
|
@@ -59,6 +59,7 @@ export var Mode;
|
|
|
59
59
|
let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI5Element {
|
|
60
60
|
constructor() {
|
|
61
61
|
super();
|
|
62
|
+
this._isExpanded = false;
|
|
62
63
|
this._maxTitleLength = 25;
|
|
63
64
|
this._maxTitleLengthInSecondLines = this._maxTitleLength * 2;
|
|
64
65
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
@@ -150,7 +151,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
150
151
|
this.initOutsideClick();
|
|
151
152
|
}
|
|
152
153
|
initOutsideClick() {
|
|
153
|
-
if (this.
|
|
154
|
+
if (this._popover?.opened) {
|
|
154
155
|
this.handleOutsideClick();
|
|
155
156
|
}
|
|
156
157
|
}
|
|
@@ -381,8 +382,9 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
381
382
|
getHeader() {
|
|
382
383
|
return this.shadowRoot.querySelector(`#${this.__id}-header`);
|
|
383
384
|
}
|
|
384
|
-
handleMoreButton() {
|
|
385
|
-
|
|
385
|
+
handleMoreButton(e) {
|
|
386
|
+
e.stopPropagation();
|
|
387
|
+
this._popover = this.getResponsePopover();
|
|
386
388
|
this.updateOverflowItems();
|
|
387
389
|
this.handleTogglePopover();
|
|
388
390
|
}
|
|
@@ -393,7 +395,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
393
395
|
});
|
|
394
396
|
}
|
|
395
397
|
handleTogglePopover() {
|
|
396
|
-
if (this.
|
|
398
|
+
if (this._popover?.opened) {
|
|
397
399
|
this.handleClosePopover();
|
|
398
400
|
}
|
|
399
401
|
else {
|
|
@@ -401,15 +403,15 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
401
403
|
}
|
|
402
404
|
}
|
|
403
405
|
handleClosePopover() {
|
|
404
|
-
if (this.
|
|
405
|
-
this.
|
|
406
|
+
if (this._popover?.opened) {
|
|
407
|
+
this._popover.close();
|
|
406
408
|
this.getMoreButton().classList.remove("udex-tab-navigation__button-more--toggled");
|
|
407
409
|
this._isExpanded = false;
|
|
408
410
|
}
|
|
409
411
|
}
|
|
410
412
|
handleOpenPopover() {
|
|
411
|
-
if (!this.
|
|
412
|
-
this.
|
|
413
|
+
if (!this._popover?.opened) {
|
|
414
|
+
this._popover.showAt(this.getMoreButton());
|
|
413
415
|
this.getMoreButton().classList.add("udex-tab-navigation__button-more--toggled");
|
|
414
416
|
this._isExpanded = true;
|
|
415
417
|
}
|
|
@@ -485,20 +487,20 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
485
487
|
handleEnterKeyMoreButton(e) {
|
|
486
488
|
if (isEnter(e)) {
|
|
487
489
|
e.preventDefault();
|
|
488
|
-
this.
|
|
490
|
+
this._popover = this.getResponsePopover();
|
|
489
491
|
this.updateOverflowItems();
|
|
490
492
|
this.handleOpenPopover();
|
|
491
493
|
}
|
|
492
494
|
}
|
|
493
495
|
handleDownMoreButton(e) {
|
|
494
496
|
if (isDown(e) || isEnter(e)) {
|
|
495
|
-
this.
|
|
497
|
+
this._popover = this.getResponsePopover();
|
|
496
498
|
this.handleOpenPopover();
|
|
497
499
|
this.updateOverflowItems();
|
|
498
500
|
}
|
|
499
501
|
}
|
|
500
502
|
onFocusFirstItemPopover() {
|
|
501
|
-
if (this.
|
|
503
|
+
if (this._popover?.opened) {
|
|
502
504
|
const popoverItems = this.getItemsFromPopover();
|
|
503
505
|
const firstPopoverItem = popoverItems[0];
|
|
504
506
|
firstPopoverItem.setAttribute("tabindex", "0");
|
|
@@ -639,7 +641,7 @@ UDExTabNavigation = UDExTabNavigation_1 = __decorate([
|
|
|
639
641
|
renderer: litRender,
|
|
640
642
|
styles: [TabNavigationCss, TabInOverflowCss],
|
|
641
643
|
template: TabNavigationTemplate,
|
|
642
|
-
dependencies: [
|
|
644
|
+
dependencies: [Popover, Icon],
|
|
643
645
|
})
|
|
644
646
|
/**
|
|
645
647
|
* Fires when the tab was clicked.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.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 type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp,\n isDown,\n isRight,\n isLeft,\n isEnter,\n isSpace,\n isEscape,\n isHome,\n isEnd,\n isTabNext,\n isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Tab, { ITab } from \"./Tab.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum SizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [ResponsivePopover],\n})\n/**\n * Fires when the tab was clicked.\n *\n * @allowPreventDefault\n * @param { Number }\n * @public\n */\n@event(\"click\", {\n detail: {\n currentPage: { type: Number },\n },\n})\nclass UDExTabNavigation extends UI5Element {\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property({ type: SizeMoreButton, defaultValue: \"Small\" })\n sizeMoreButton!: `${SizeMoreButton}`;\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property({ type: Mode, defaultValue: \"Light\" })\n mode!: Mode;\n\n /**\n * Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n @property({ type: String, defaultValue: \"auto\" })\n tabWidth!: string;\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ validator: Integer, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object, multiple: true })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: Array<ITab>;\n\n static i18nBundle: any;\n _handleResizeBound: () => void;\n _responsivePopover?: ResponsivePopover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded!: boolean;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExTabNavigation.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected);\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : this.items[0] as Tab;\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : this.items[0]);\n }\n\n setRealTabToItems() {\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._contentTabIndex = this.getContentTabIndex(tab);\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string) {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n }\n\n initOutsideClick() {\n if (this._responsivePopover?.opened) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as Array<Tab>).findIndex(item => item.__id === tab.id);\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getTab(el: HTMLElement | null) {\n while (el) {\n if (el.localName === \"button\" && el.getAttribute(\"role\") === \"tab\") {\n return el as Tab;\n }\n\n el = el.parentElement;\n }\n\n return false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n }\n\n setItemsInHeader() {\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>) {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement) {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number) {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement) {\n const tabTitle = itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + indentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext() {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement) {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number) {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab) {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab) {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items.map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getMoreButton() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton() {\n this._responsivePopover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._responsivePopover?.opened) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._responsivePopover?.opened) {\n this._responsivePopover.close();\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._responsivePopover?.opened) {\n this._responsivePopover!.showAt(this.getMoreButton());\n this.getMoreButton().classList.add(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusRightItem(e.target as HTMLElement);\n }\n }\n\n onFocusRightItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n getTabIndexById(id: string) {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusLeftItem(e.target as HTMLElement);\n }\n }\n\n onFocusLeftItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._responsivePopover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._responsivePopover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._responsivePopover?.opened) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string) {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n this.handleClosePopover();\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): ResponsivePopover {\n return this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-popover]\")!;\n }\n\n get moreButtonText(): string {\n return UDExTabNavigation.i18nBundle.getText(MORE) as string;\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\n"]}
|
|
1
|
+
{"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.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 type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp,\n isDown,\n isRight,\n isLeft,\n isEnter,\n isSpace,\n isEscape,\n isHome,\n isEnd,\n isTabNext,\n isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Tab, { ITab } from \"./Tab.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { MORE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum SizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon],\n})\n/**\n * Fires when the tab was clicked.\n *\n * @allowPreventDefault\n * @param { Number }\n * @public\n */\n@event(\"click\", {\n detail: {\n currentPage: { type: Number },\n },\n})\nclass UDExTabNavigation extends UI5Element {\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property({ type: SizeMoreButton, defaultValue: \"Small\" })\n sizeMoreButton!: `${SizeMoreButton}`;\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property({ type: Mode, defaultValue: \"Light\" })\n mode!: Mode;\n\n /**\n * Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n @property({ type: String, defaultValue: \"auto\" })\n tabWidth!: string;\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ validator: Integer, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object, multiple: true })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: Array<ITab>;\n\n static i18nBundle: any;\n _handleResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExTabNavigation.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected);\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : this.items[0] as Tab;\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : this.items[0]);\n }\n\n setRealTabToItems() {\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._contentTabIndex = this.getContentTabIndex(tab);\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string) {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n }\n\n initOutsideClick() {\n if (this._popover?.opened) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as Array<Tab>).findIndex(item => item.__id === tab.id);\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getTab(el: HTMLElement | null) {\n while (el) {\n if (el.localName === \"button\" && el.getAttribute(\"role\") === \"tab\") {\n return el as Tab;\n }\n\n el = el.parentElement;\n }\n\n return false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n }\n\n setItemsInHeader() {\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>) {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement) {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number) {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement) {\n const tabTitle = itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, indentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + indentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext() {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement) {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number) {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number) {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab) {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab) {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0) {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items.map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n }\n\n getMoreButton() {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader() {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.opened) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.opened) {\n this._popover.close();\n this.getMoreButton().classList.remove(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.opened) {\n this._popover!.showAt(this.getMoreButton());\n this.getMoreButton().classList.add(\"udex-tab-navigation__button-more--toggled\");\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusRightItem(e.target as HTMLElement);\n }\n }\n\n onFocusRightItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n getTabIndexById(id: string) {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusLeftItem(e.target as HTMLElement);\n }\n }\n\n onFocusLeftItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.opened) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string) {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.onItemSelect((e.target as HTMLElement).id);\n this.handleClosePopover();\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get moreButtonText(): string {\n return UDExTabNavigation.i18nBundle.getText(MORE) as string;\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\n"]}
|
package/dist/Table.js
CHANGED
|
@@ -146,7 +146,7 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
|
|
|
146
146
|
}
|
|
147
147
|
getParentRow() {
|
|
148
148
|
const focusedElement = document.activeElement;
|
|
149
|
-
return focusedElement.closest("udex-table-row, udex-table-header-row, udex-table-group-row");
|
|
149
|
+
return focusedElement.closest("[udex-table-row], [udex-table-header-row], [udex-table-group-row]");
|
|
150
150
|
}
|
|
151
151
|
getKeyboardNavigationItems() {
|
|
152
152
|
const items = [];
|
|
@@ -186,7 +186,7 @@ let UDExTable = UDExTable_1 = class UDExTable extends UI5Element {
|
|
|
186
186
|
return items.filter(({ elements }) => elements.length);
|
|
187
187
|
}
|
|
188
188
|
getInteractiveElements(el) {
|
|
189
|
-
return el.cells.flatMap(cell => Array.from(cell.querySelectorAll("button, a, udex-button, udex-link, udex-rating-indicator")));
|
|
189
|
+
return el.cells.flatMap(cell => Array.from(cell.querySelectorAll("button, a, [udex-button], [udex-link], [udex-rating-indicator]")));
|
|
190
190
|
}
|
|
191
191
|
get _effectiveNoDataText() {
|
|
192
192
|
return this.noDataText || UDExTable_1.i18nBundle.getText(TABLE_NO_DATA_FOUND);
|