@sapudex/web-components 0.184.0 → 0.192.2
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/dist/CountrySelector.d.ts +2 -0
- package/dist/CountrySelector.js +5 -1
- package/dist/CountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +10 -1
- package/dist/MastheadItem.js +11 -5
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +6 -0
- package/dist/MastheadMenu.js +3 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +1 -0
- package/dist/MastheadMenuItem.js +3 -0
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +6 -0
- package/dist/MastheadProfileMenu.js +3 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +34 -4
- package/dist/MastheadShell.js +122 -11
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Pagination.d.ts +3 -2
- package/dist/Pagination.js +4 -2
- package/dist/Pagination.js.map +1 -1
- package/dist/SelectBox.d.ts +2 -0
- package/dist/SelectBox.js +5 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/Tab.d.ts +4 -13
- package/dist/Tab.js +11 -14
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.js +0 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/TextArea.d.ts +13 -22
- package/dist/TextArea.js +30 -33
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/{bundle.esm-d98e72b5.js → bundle.esm-809b9769.js} +177 -177
- package/dist/assets/messagebundle_en-06c0dadc.js +1 -0
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/custom-elements-internal.json +14 -12
- package/dist/custom-elements.json +14 -12
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -9
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +5 -4
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.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/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.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/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.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/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.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/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +3 -0
- package/dist/i18n/messagebundle_en.properties +1 -0
- package/dist/web-types.json +3 -3
- package/package.json +1 -1
- package/src/CountrySelector.hbs +30 -30
- package/src/CountrySelector.ts +18 -13
- package/src/MastheadItem.hbs +3 -3
- package/src/MastheadItem.ts +22 -10
- package/src/MastheadMenu.ts +8 -0
- package/src/MastheadMenuItem.hbs +2 -1
- package/src/MastheadMenuItem.ts +4 -0
- package/src/MastheadProfileMenu.ts +8 -0
- package/src/MastheadShell.hbs +69 -67
- package/src/MastheadShell.ts +154 -16
- package/src/Pagination.hbs +2 -2
- package/src/Pagination.ts +8 -5
- package/src/SelectBox.ts +7 -1
- package/src/Tab.ts +18 -29
- package/src/TabHeader.hbs +1 -1
- package/src/TabNavigation.hbs +1 -2
- package/src/TabNavigation.ts +2 -1
- package/src/TextArea.hbs +21 -21
- package/src/TextArea.ts +82 -78
- package/src/TextField.hbs +4 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -9
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/TabHeaderTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/TextAreaTemplate.lit.ts +5 -4
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/CountrySelector.css +23 -16
- package/src/themes/MastheadItem.css +40 -2
- package/src/themes/MastheadMenu.css +72 -0
- package/src/themes/MastheadMenuItem.css +1 -0
- package/src/themes/MastheadProfileMenu.css +8 -0
- package/src/themes/MastheadShell.css +59 -27
- package/src/themes/MediaPlayer.css +18 -9
- package/src/themes/Search.css +4 -4
- package/src/themes/TextArea.css +12 -1
- package/dist/assets/messagebundle_en-4997b226.js +0 -1
package/dist/SelectBox.d.ts
CHANGED
|
@@ -130,6 +130,7 @@ declare class UDExSelectBox extends UDExSearchableListBase {
|
|
|
130
130
|
*/
|
|
131
131
|
_showTagsDropdownContent: boolean;
|
|
132
132
|
_trigger: HTMLElement;
|
|
133
|
+
_triggerWrapper: HTMLElement;
|
|
133
134
|
_popover: Popover;
|
|
134
135
|
_tokenizer: Tokenizer;
|
|
135
136
|
_search: UDExSearch;
|
|
@@ -181,6 +182,7 @@ declare class UDExSelectBox extends UDExSearchableListBase {
|
|
|
181
182
|
getPopover(): Popover;
|
|
182
183
|
getSearch(): UDExSearch;
|
|
183
184
|
getTrigger(): HTMLElement;
|
|
185
|
+
getTriggerWrapper(): HTMLElement;
|
|
184
186
|
getTagGroup(): UDExTagGroup;
|
|
185
187
|
getTags(): Array<UDExTag>;
|
|
186
188
|
getTagContent(tag: UDExTag): HTMLElement;
|
package/dist/SelectBox.js
CHANGED
|
@@ -77,6 +77,7 @@ let UDExSelectBox = UDExSelectBox_1 = class UDExSelectBox extends UDExSearchable
|
|
|
77
77
|
this._popover = this.getPopover();
|
|
78
78
|
this._search = this.getSearch();
|
|
79
79
|
this._trigger = this.getTrigger();
|
|
80
|
+
this._triggerWrapper = this.getTriggerWrapper();
|
|
80
81
|
this._tags = this.getTags();
|
|
81
82
|
this.handleDirection();
|
|
82
83
|
if (this._tokenizer?.tokens.length > 0) {
|
|
@@ -94,7 +95,7 @@ let UDExSelectBox = UDExSelectBox_1 = class UDExSelectBox extends UDExSearchable
|
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
_handleResize() {
|
|
97
|
-
this._popover.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
|
|
98
|
+
this._popover.style.setProperty("--udex-dropdown-pane-width", `${this._triggerWrapper.offsetWidth}px`);
|
|
98
99
|
}
|
|
99
100
|
handleItemPress(e) {
|
|
100
101
|
this.onItemPress(e);
|
|
@@ -343,6 +344,9 @@ let UDExSelectBox = UDExSelectBox_1 = class UDExSelectBox extends UDExSearchable
|
|
|
343
344
|
getTrigger() {
|
|
344
345
|
return this.shadowRoot.querySelector(".udex-text-field__input");
|
|
345
346
|
}
|
|
347
|
+
getTriggerWrapper() {
|
|
348
|
+
return this.shadowRoot.querySelector(".udex-text-field__wrap");
|
|
349
|
+
}
|
|
346
350
|
getTagGroup() {
|
|
347
351
|
return this.shadowRoot.querySelector("[udex-tag-group]");
|
|
348
352
|
}
|
package/dist/SelectBox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectBox.js","sourceRoot":"","sources":["../src/SelectBox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEnter,\n isSpace,\n isDelete,\n isTabPrevious,\n isTabNext,\n isLeft,\n isRight,\n isDown,\n isUp,\n isEscape,\n isBackSpace,\n isShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport UDExSelectBoxGroupHeader from \"./SelectBoxGroupHeader.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExTag from \"./Tag.js\";\nimport { PlacementType } from \"./Tooltip.js\";\nimport UDExButton from \"./Button.js\";\nimport ValueState from \"./types/common.js\";\n\nimport { SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport SelectBoxTemplate from \"./generated/templates/SelectBoxTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit\";\n\n// Styles\nimport SelectBoxCss from \"./generated/themes/SelectBox.css.js\";\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-select-box</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/UDExSelectBox.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-select-box\n * @public\n */\n@customElement({\n tag: \"udex-select-box\",\n renderer: litRender,\n styles: [TextFieldCss, SelectBoxCss, SearchableListCss],\n template: SelectBoxTemplate,\n dependencies: [\n UDExSelectBoxGroupHeader,\n UDExListItem,\n UDExListGroupHeader,\n UDExListSelectAll,\n UDExSelectBoxItem,\n UDExList,\n UDExSearch,\n UDExButton,\n Tokenizer,\n UDExTag,\n Token,\n Icon,\n UDExStatusMessage,\n UDExControlButton,\n Popover,\n UDExTagGroup,\n ],\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSelectBox#resetSearch\n * @public\n */\n@event(\"remove\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the More button.\n *\n * @event sap.ui.webc.web-components.UDExSelectBox#showMore\n * @public\n */\n@event(\"show-more\")\n\nclass UDExSelectBox extends UDExSearchableListBase {\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\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 /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n tooltipPlacement!: `${PlacementType}`;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTagsDropdownContent!: boolean;\n\n _trigger!: HTMLElement;\n _popover!: Popover;\n _tokenizer!: Tokenizer;\n _search!: UDExSearch;\n _singleSelectedOption!: string;\n _truncatableTag!: UDExTag;\n _tags!: Array<UDExTag>;\n _inactiveTabIndex: number = -1;\n _activeTabIndex: number = 0;\n _openedByTrigger: boolean = true;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering() {\n this._tokenizer = this.getTagGroup()?._tokenizer;\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n this._tags = this.getTags();\n this.handleDirection();\n if (this._tokenizer?.tokens.length > 0) {\n if (!this.displayonly) {\n this._tokenizer.shadowRoot!.querySelector(\".ui5-tokenizer-more-text\")?.setAttribute(\"tabindex\", \"-1\");\n }\n this.handleOutsideClick();\n this.resetTagsTabIndexes();\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.handleSingleSelectMode();\n }\n }\n\n _handleResize() {\n this._popover.style.setProperty(\"--udex-dropdown-pane-width\", `${this.offsetWidth}px`);\n }\n\n handleItemPress(e:CustomEvent) {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.handleSingleSelectMode();\n this.closeDropdown();\n }\n }\n\n handleSingleSelectMode() {\n this._singleSelectedOption = this.selectedItems[0]?.label;\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onHeaderPress(e);\n this.fireEvent(\"select-all\");\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onSearch(e);\n }\n\n handleSubmitSearch() {\n this.closeDropdown();\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n handleFocusIn() {\n if (this.isDisabled) {\n return;\n }\n this._focused = true;\n }\n\n handleFocusOut() {\n this._focused = false;\n }\n\n handleDropdownBeforeOpen() {\n if (this.height) {\n const content = this._popover.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = this.height;\n }\n this.fireEvent(\"before-open\");\n }\n\n handleDropdownAfterClose() {\n if (this._tokenizer?._tokensCount > 0) {\n this._tokenizer.expanded = false;\n }\n this.handleUnselectTruncatableTag();\n this._open = false;\n }\n\n showMoreItems() {\n this._tokenizer.expanded = true;\n this._showTagsDropdownContent = false;\n this.openDropdown();\n this.handleUnselectTruncatableTag();\n }\n\n handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {\n tag = tag ?? (e?.detail.tag as UI5Element);\n const tagId: string = tag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.fireEventRemove(tagId);\n }\n\n handleRemoveTruncatableTag() {\n const tagId: string = this._truncatableTag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.closeDropdown();\n this.fireEventRemove(tagId);\n }\n\n handleTagPress(e: CustomEvent) {\n const tag = e.detail.tag as UDExTag;\n tag.selected = false;\n this.toggleTruncatedPopover(tag);\n }\n\n handleUnselectTruncatableTag() {\n if (this._truncatableTag?.selected) {\n this._truncatableTag.selected = false;\n }\n }\n\n handleKeyDownTrigger(e: KeyboardEvent) {\n if (!this.isDisabled && (isSpace(e) || isEnter(e))) {\n e.preventDefault();\n e.stopPropagation();\n this._showTagsDropdownContent = false;\n this._openedByTrigger = true;\n this.openDropdown();\n }\n }\n\n handleKeyDownTag(e: CustomEvent) {\n if (this.isDisabled) { return; }\n const originalEvent: KeyboardEvent = e.detail.originalEvent;\n const tag = originalEvent.target as UDExTag;\n this.getTagContent(this._tags[0]).tabIndex = this._inactiveTabIndex;\n\n const activeIndex = this._tokenizer.tokens?.indexOf(originalEvent.target as Token);\n const tagsCount = this._tokenizer._tokensCount;\n this._tokenizer.expanded = (isLeft(originalEvent) || isRight(originalEvent) || isBackSpace(originalEvent) || isDelete(originalEvent)) && tagsCount > 0;\n\n if (isLeft(originalEvent) && activeIndex !== 0) {\n this.focusTag(activeIndex - 1);\n this.scrollToTag(activeIndex - 1);\n }\n\n if (isRight(originalEvent) && tagsCount !== activeIndex + 1) {\n this.focusTag(activeIndex + 1);\n this.scrollToTag(activeIndex + 1);\n }\n\n if ((isDown(originalEvent) || isUp(originalEvent))) {\n this._openedByTrigger = false;\n this.openDropdown();\n }\n\n if (isSpace(originalEvent) || isShift(originalEvent) || isEnter(originalEvent)) {\n originalEvent.preventDefault();\n originalEvent.stopPropagation();\n }\n\n if (tag.isTruncatable && this.validTruncatableKey(originalEvent)) {\n this.toggleTruncatedPopover(tag);\n } else {\n this._showTagsDropdownContent = false;\n }\n\n if (isDelete(originalEvent) || isBackSpace(originalEvent)) {\n this.handleRemoveTag(null, tag);\n\n const tags = this._tokenizer.tokens;\n const deletedTagIndex = tags.indexOf(originalEvent.target as Token);\n let nextTokenIndex = deletedTagIndex + 1;\n if (this._tokenizer.tokens.length !== 1) {\n if (deletedTagIndex === tags.length - 1) {\n nextTokenIndex = deletedTagIndex - 1;\n this.focusTag(nextTokenIndex);\n } else {\n this.focusTag(nextTokenIndex);\n }\n this.scrollToTag(nextTokenIndex);\n } else {\n this._trigger.focus();\n }\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const isTabNextPress = isTabNext(e);\n const isEscapePress = isEscape(e);\n const isSearchResetTrigger = e.target === this._search;\n\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress || isEscapePress) {\n this.closeDropdown(e);\n }\n }\n\n handleKeyDownSearch(e: CustomEvent) {\n const keyEvent = e.detail as KeyboardEvent;\n\n if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {\n this.closeDropdown(keyEvent);\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n if (this._tokenizer?.tokens.length > 0 && e.target !== this) {\n this._tokenizer.expanded = false;\n }\n });\n }\n\n openDropdown() {\n this._popover.showAt(this._trigger);\n this._open = true;\n if (this.showMultiSelectedOptions) {\n this._tokenizer.expanded = true;\n }\n }\n\n closeDropdown(e?: KeyboardEvent) {\n if (this._popover.open) {\n if (this._tokenizer) {\n this._tokenizer.expanded = false;\n }\n\n if (e && (isEscape(e) || isTabPrevious(e))) {\n e.preventDefault();\n if (this._openedByTrigger) {\n this._trigger.focus();\n } else {\n this.focusTag(0);\n }\n }\n this._popover.close();\n }\n }\n\n toggleTruncatedPopover(tag: UDExTag) {\n if (!tag.isTruncatable) {\n this._showTagsDropdownContent = false;\n }\n\n if (tag.isTruncatable && !this._open) {\n this._truncatableTag = tag;\n this._truncatableTag.selected = true;\n this._showTagsDropdownContent = true;\n this.openDropdown();\n }\n }\n\n scrollToTag(index: number) {\n this._tokenizer._scrollToToken(this._tokenizer.tokens[index]);\n }\n\n focusTag(index: number) {\n this._tokenizer.tokens[index].focus();\n this._tokenizer.tokens[index].forcedTabIndex = \"0\";\n }\n\n fireEventRemove(id: string) {\n this.fireEvent(\"remove\", {\n item: this.getItemFromList(id),\n });\n }\n\n handleOpenMultiSelect() {\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this._showTagsDropdownContent = false;\n this.openDropdown();\n }\n }\n\n handleOpenSingleSelect() {\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n\n getHandleMultiSelectOpen() {\n return !this.isDisabled && this.modeMultiSelect ? this.handleOpenMultiSelect() : undefined;\n }\n\n getHandleSingleSelectOpen() {\n return !this.isDisabled && this.modeSingleSelect ? this.handleOpenSingleSelect() : undefined;\n }\n\n getHandlerShowMoreItems(e: CustomEvent) {\n if (!this.displayonly) {\n e.preventDefault();\n this.showMoreItems();\n }\n this.fireEvent(\"show-more\");\n }\n\n getPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getSearch(): UDExSearch {\n return this.shadowRoot!.querySelector<UDExSearch>(\"[udex-search]\")!;\n }\n\n getTrigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__input\")!;\n }\n\n getTagGroup(): UDExTagGroup {\n return this.shadowRoot!.querySelector<UDExTagGroup>(\"[udex-tag-group]\")!;\n }\n\n getTags(): Array<UDExTag> {\n if (this.getTagGroup()) {\n return Array.from(this.getTagGroup().shadowRoot!.querySelectorAll<UDExTag>(\"[udex-tag]\"));\n }\n return [];\n }\n\n getTagContent(tag: UDExTag): HTMLElement {\n return tag.shadowRoot!.querySelector(\".udex-tag\")!;\n }\n\n handleDirection() {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n validTruncatableKey(e: KeyboardEvent): boolean {\n return isSpace(e) || isEnter(e);\n }\n\n resetTagsTabIndexes() {\n this._tags.forEach((tag, i) => { this.getTagContent(tag).tabIndex = (i === 0 && !this.isDisabled) ? this._activeTabIndex : this._inactiveTabIndex; });\n }\n\n get allowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get truncatableTagLabel(): string {\n return this._truncatableTag.text.replace(/<\\/?b>/gi, \"\");\n }\n\n get showSingleSelectedOption(): boolean {\n return this._singleSelectedOption?.length > 0 && this.modeSingleSelect;\n }\n\n get showMultiSelectedOptions(): boolean {\n return this.hasSelectedItems && this.modeMultiSelect;\n }\n\n get labelClass(): string {\n const baseClass = \"udex-text-field__label\";\n const isActive = this._open || this._singleSelectedOption || this.hasSelectedItems;\n return isActive ? `${baseClass} ${baseClass}_active` : `${baseClass}`;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tokenizerExpanded() {\n if (this._showTagsDropdownContent && this._truncatableTag) {\n return false;\n }\n\n if (this._tokenizer) {\n return this._tokenizer.expanded;\n }\n\n return this._open;\n }\n\n get showTrigger(): boolean {\n return !this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get effectiveTabIndex(): string {\n const tabindex = this.getAttribute(\"tabindex\");\n return this.disabled ? `${this._inactiveTabIndex}` : tabindex || `${this._inactiveTabIndex}`;\n }\n\n get triggerTabIndex(): string {\n return this.disabled || this.readonly ? `${this._inactiveTabIndex}` : \"\";\n }\n\n get iconAccessibleNameText(): string {\n return UDExSelectBox.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get additionalClassName(): string {\n return `udex-list__sticky`;\n }\n\n get searchableList() {\n return executeTemplate(UDExSelectBox.searchableListBaseTemplate, this);\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || this.label || undefined,\n \"ariaLabelledBy\": this.accessibleNameRef || undefined,\n \"ariaControls\": this.shadowRoot?.querySelector(\"[udex-list]\")?.getAttribute(\"id\"),\n };\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExSelectBox.define();\n\nexport default UDExSelectBox;\n"]}
|
|
1
|
+
{"version":3,"file":"SelectBox.js","sourceRoot":"","sources":["../src/SelectBox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport {\n isEnter,\n isSpace,\n isDelete,\n isTabPrevious,\n isTabNext,\n isLeft,\n isRight,\n isDown,\n isUp,\n isEscape,\n isBackSpace,\n isShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport UDExSelectBoxGroupHeader from \"./SelectBoxGroupHeader.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExTag from \"./Tag.js\";\nimport { PlacementType } from \"./Tooltip.js\";\nimport UDExButton from \"./Button.js\";\nimport ValueState from \"./types/common.js\";\n\nimport { SELECT_OPTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport SelectBoxTemplate from \"./generated/templates/SelectBoxTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit\";\n\n// Styles\nimport SelectBoxCss from \"./generated/themes/SelectBox.css.js\";\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-select-box</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/UDExSelectBox.js\";</code>\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @tagname udex-select-box\n * @public\n */\n@customElement({\n tag: \"udex-select-box\",\n renderer: litRender,\n styles: [TextFieldCss, SelectBoxCss, SearchableListCss],\n template: SelectBoxTemplate,\n dependencies: [\n UDExSelectBoxGroupHeader,\n UDExListItem,\n UDExListGroupHeader,\n UDExListSelectAll,\n UDExSelectBoxItem,\n UDExList,\n UDExSearch,\n UDExButton,\n Tokenizer,\n UDExTag,\n Token,\n Icon,\n UDExStatusMessage,\n UDExControlButton,\n Popover,\n UDExTagGroup,\n ],\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSelectBox#resetSearch\n * @public\n */\n@event(\"remove\", {\n detail: {\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the More button.\n *\n * @event sap.ui.webc.web-components.UDExSelectBox#showMore\n * @public\n */\n@event(\"show-more\")\n\nclass UDExSelectBox extends UDExSearchableListBase {\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Allows control over the height.\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\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 /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: ValueState, defaultValue: ValueState.Standard })\n valueState!: `${ValueState}`;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n tooltipPlacement!: `${PlacementType}`;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTagsDropdownContent!: boolean;\n\n _trigger!: HTMLElement;\n _triggerWrapper!: HTMLElement;\n _popover!: Popover;\n _tokenizer!: Tokenizer;\n _search!: UDExSearch;\n _singleSelectedOption!: string;\n _truncatableTag!: UDExTag;\n _tags!: Array<UDExTag>;\n _inactiveTabIndex: number = -1;\n _activeTabIndex: number = 0;\n _openedByTrigger: boolean = true;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering() {\n this._tokenizer = this.getTagGroup()?._tokenizer;\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._trigger = this.getTrigger();\n this._triggerWrapper = this.getTriggerWrapper();\n this._tags = this.getTags();\n this.handleDirection();\n if (this._tokenizer?.tokens.length > 0) {\n if (!this.displayonly) {\n this._tokenizer.shadowRoot!.querySelector(\".ui5-tokenizer-more-text\")?.setAttribute(\"tabindex\", \"-1\");\n }\n this.handleOutsideClick();\n this.resetTagsTabIndexes();\n }\n }\n\n onBeforeRendering() {\n super.onBeforeRendering();\n\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.handleSingleSelectMode();\n }\n }\n\n _handleResize() {\n this._popover.style.setProperty(\"--udex-dropdown-pane-width\", `${this._triggerWrapper.offsetWidth}px`);\n }\n\n handleItemPress(e:CustomEvent) {\n this.onItemPress(e);\n\n if (this.modeSingleSelect) {\n this.handleSingleSelectMode();\n this.closeDropdown();\n }\n }\n\n handleSingleSelectMode() {\n this._singleSelectedOption = this.selectedItems[0]?.label;\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onHeaderPress(e);\n this.fireEvent(\"select-all\");\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onSearch(e);\n }\n\n handleSubmitSearch() {\n this.closeDropdown();\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n handleFocusIn() {\n if (this.isDisabled) {\n return;\n }\n this._focused = true;\n }\n\n handleFocusOut() {\n this._focused = false;\n }\n\n handleDropdownBeforeOpen() {\n if (this.height) {\n const content = this._popover.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = this.height;\n }\n this.fireEvent(\"before-open\");\n }\n\n handleDropdownAfterClose() {\n if (this._tokenizer?._tokensCount > 0) {\n this._tokenizer.expanded = false;\n }\n this.handleUnselectTruncatableTag();\n this._open = false;\n }\n\n showMoreItems() {\n this._tokenizer.expanded = true;\n this._showTagsDropdownContent = false;\n this.openDropdown();\n this.handleUnselectTruncatableTag();\n }\n\n handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {\n tag = tag ?? (e?.detail.tag as UI5Element);\n const tagId: string = tag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.fireEventRemove(tagId);\n }\n\n handleRemoveTruncatableTag() {\n const tagId: string = this._truncatableTag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.closeDropdown();\n this.fireEventRemove(tagId);\n }\n\n handleTagPress(e: CustomEvent) {\n const tag = e.detail.tag as UDExTag;\n tag.selected = false;\n this.toggleTruncatedPopover(tag);\n }\n\n handleUnselectTruncatableTag() {\n if (this._truncatableTag?.selected) {\n this._truncatableTag.selected = false;\n }\n }\n\n handleKeyDownTrigger(e: KeyboardEvent) {\n if (!this.isDisabled && (isSpace(e) || isEnter(e))) {\n e.preventDefault();\n e.stopPropagation();\n this._showTagsDropdownContent = false;\n this._openedByTrigger = true;\n this.openDropdown();\n }\n }\n\n handleKeyDownTag(e: CustomEvent) {\n if (this.isDisabled) { return; }\n const originalEvent: KeyboardEvent = e.detail.originalEvent;\n const tag = originalEvent.target as UDExTag;\n this.getTagContent(this._tags[0]).tabIndex = this._inactiveTabIndex;\n\n const activeIndex = this._tokenizer.tokens?.indexOf(originalEvent.target as Token);\n const tagsCount = this._tokenizer._tokensCount;\n this._tokenizer.expanded = (isLeft(originalEvent) || isRight(originalEvent) || isBackSpace(originalEvent) || isDelete(originalEvent)) && tagsCount > 0;\n\n if (isLeft(originalEvent) && activeIndex !== 0) {\n this.focusTag(activeIndex - 1);\n this.scrollToTag(activeIndex - 1);\n }\n\n if (isRight(originalEvent) && tagsCount !== activeIndex + 1) {\n this.focusTag(activeIndex + 1);\n this.scrollToTag(activeIndex + 1);\n }\n\n if ((isDown(originalEvent) || isUp(originalEvent))) {\n this._openedByTrigger = false;\n this.openDropdown();\n }\n\n if (isSpace(originalEvent) || isShift(originalEvent) || isEnter(originalEvent)) {\n originalEvent.preventDefault();\n originalEvent.stopPropagation();\n }\n\n if (tag.isTruncatable && this.validTruncatableKey(originalEvent)) {\n this.toggleTruncatedPopover(tag);\n } else {\n this._showTagsDropdownContent = false;\n }\n\n if (isDelete(originalEvent) || isBackSpace(originalEvent)) {\n this.handleRemoveTag(null, tag);\n\n const tags = this._tokenizer.tokens;\n const deletedTagIndex = tags.indexOf(originalEvent.target as Token);\n let nextTokenIndex = deletedTagIndex + 1;\n if (this._tokenizer.tokens.length !== 1) {\n if (deletedTagIndex === tags.length - 1) {\n nextTokenIndex = deletedTagIndex - 1;\n this.focusTag(nextTokenIndex);\n } else {\n this.focusTag(nextTokenIndex);\n }\n this.scrollToTag(nextTokenIndex);\n } else {\n this._trigger.focus();\n }\n }\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const isTabPrevPress = isTabPrevious(e) && !this._search;\n const isTabNextPress = isTabNext(e);\n const isEscapePress = isEscape(e);\n const isSearchResetTrigger = e.target === this._search;\n\n if ((isTabNextPress && (!isSearchResetTrigger || this.isListEmpty)) || isTabPrevPress || isEscapePress) {\n this.closeDropdown(e);\n }\n }\n\n handleKeyDownSearch(e: CustomEvent) {\n const keyEvent = e.detail as KeyboardEvent;\n\n if (isTabPrevious(keyEvent) || isEscape(keyEvent)) {\n this.closeDropdown(keyEvent);\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n if (this._tokenizer?.tokens.length > 0 && e.target !== this) {\n this._tokenizer.expanded = false;\n }\n });\n }\n\n openDropdown() {\n this._popover.showAt(this._trigger);\n this._open = true;\n if (this.showMultiSelectedOptions) {\n this._tokenizer.expanded = true;\n }\n }\n\n closeDropdown(e?: KeyboardEvent) {\n if (this._popover.open) {\n if (this._tokenizer) {\n this._tokenizer.expanded = false;\n }\n\n if (e && (isEscape(e) || isTabPrevious(e))) {\n e.preventDefault();\n if (this._openedByTrigger) {\n this._trigger.focus();\n } else {\n this.focusTag(0);\n }\n }\n this._popover.close();\n }\n }\n\n toggleTruncatedPopover(tag: UDExTag) {\n if (!tag.isTruncatable) {\n this._showTagsDropdownContent = false;\n }\n\n if (tag.isTruncatable && !this._open) {\n this._truncatableTag = tag;\n this._truncatableTag.selected = true;\n this._showTagsDropdownContent = true;\n this.openDropdown();\n }\n }\n\n scrollToTag(index: number) {\n this._tokenizer._scrollToToken(this._tokenizer.tokens[index]);\n }\n\n focusTag(index: number) {\n this._tokenizer.tokens[index].focus();\n this._tokenizer.tokens[index].forcedTabIndex = \"0\";\n }\n\n fireEventRemove(id: string) {\n this.fireEvent(\"remove\", {\n item: this.getItemFromList(id),\n });\n }\n\n handleOpenMultiSelect() {\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this._showTagsDropdownContent = false;\n this.openDropdown();\n }\n }\n\n handleOpenSingleSelect() {\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n\n getHandleMultiSelectOpen() {\n return !this.isDisabled && this.modeMultiSelect ? this.handleOpenMultiSelect() : undefined;\n }\n\n getHandleSingleSelectOpen() {\n return !this.isDisabled && this.modeSingleSelect ? this.handleOpenSingleSelect() : undefined;\n }\n\n getHandlerShowMoreItems(e: CustomEvent) {\n if (!this.displayonly) {\n e.preventDefault();\n this.showMoreItems();\n }\n this.fireEvent(\"show-more\");\n }\n\n getPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getSearch(): UDExSearch {\n return this.shadowRoot!.querySelector<UDExSearch>(\"[udex-search]\")!;\n }\n\n getTrigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__input\")!;\n }\n\n getTriggerWrapper(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__wrap\")!;\n }\n\n getTagGroup(): UDExTagGroup {\n return this.shadowRoot!.querySelector<UDExTagGroup>(\"[udex-tag-group]\")!;\n }\n\n getTags(): Array<UDExTag> {\n if (this.getTagGroup()) {\n return Array.from(this.getTagGroup().shadowRoot!.querySelectorAll<UDExTag>(\"[udex-tag]\"));\n }\n return [];\n }\n\n getTagContent(tag: UDExTag): HTMLElement {\n return tag.shadowRoot!.querySelector(\".udex-tag\")!;\n }\n\n handleDirection() {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n validTruncatableKey(e: KeyboardEvent): boolean {\n return isSpace(e) || isEnter(e);\n }\n\n resetTagsTabIndexes() {\n this._tags.forEach((tag, i) => { this.getTagContent(tag).tabIndex = (i === 0 && !this.isDisabled) ? this._activeTabIndex : this._inactiveTabIndex; });\n }\n\n get allowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get truncatableTagLabel(): string {\n return this._truncatableTag.text.replace(/<\\/?b>/gi, \"\");\n }\n\n get showSingleSelectedOption(): boolean {\n return this._singleSelectedOption?.length > 0 && this.modeSingleSelect;\n }\n\n get showMultiSelectedOptions(): boolean {\n return this.hasSelectedItems && this.modeMultiSelect;\n }\n\n get labelClass(): string {\n const baseClass = \"udex-text-field__label\";\n const isActive = this._open || this._singleSelectedOption || this.hasSelectedItems;\n return isActive ? `${baseClass} ${baseClass}_active` : `${baseClass}`;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get tokenizerExpanded() {\n if (this._showTagsDropdownContent && this._truncatableTag) {\n return false;\n }\n\n if (this._tokenizer) {\n return this._tokenizer.expanded;\n }\n\n return this._open;\n }\n\n get showTrigger(): boolean {\n return !this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get effectiveTabIndex(): string {\n const tabindex = this.getAttribute(\"tabindex\");\n return this.disabled ? `${this._inactiveTabIndex}` : tabindex || `${this._inactiveTabIndex}`;\n }\n\n get triggerTabIndex(): string {\n return this.disabled || this.readonly ? `${this._inactiveTabIndex}` : \"\";\n }\n\n get iconAccessibleNameText(): string {\n return UDExSelectBox.i18nBundle.getText(SELECT_OPTIONS);\n }\n\n get additionalClassName(): string {\n return `udex-list__sticky`;\n }\n\n get searchableList() {\n return executeTemplate(UDExSelectBox.searchableListBaseTemplate, this);\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || this.label || undefined,\n \"ariaLabelledBy\": this.accessibleNameRef || undefined,\n \"ariaControls\": this.shadowRoot?.querySelector(\"[udex-list]\")?.getAttribute(\"id\"),\n };\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExSelectBox.define();\n\nexport default UDExSelectBox;\n"]}
|
package/dist/Tab.d.ts
CHANGED
|
@@ -23,7 +23,6 @@ interface ITab extends UI5Element {
|
|
|
23
23
|
isOnSelectedTab: boolean;
|
|
24
24
|
hasNotIcon: boolean;
|
|
25
25
|
hasNotHref: boolean;
|
|
26
|
-
isSelected: boolean;
|
|
27
26
|
selectedClass: string;
|
|
28
27
|
tabNavigation: any;
|
|
29
28
|
_individualSlot: string;
|
|
@@ -31,7 +30,6 @@ interface ITab extends UI5Element {
|
|
|
31
30
|
_slotName: string;
|
|
32
31
|
_selected?: boolean;
|
|
33
32
|
_tabIndex: string;
|
|
34
|
-
_contentTabIndex: string;
|
|
35
33
|
_iconWithoutBackground: boolean;
|
|
36
34
|
_posinset?: number;
|
|
37
35
|
_setsize?: number;
|
|
@@ -130,13 +128,6 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
130
128
|
* @default false
|
|
131
129
|
*/
|
|
132
130
|
_tabIndex: string;
|
|
133
|
-
/**
|
|
134
|
-
* Defines the tabindex of the tab content.
|
|
135
|
-
*
|
|
136
|
-
* @private
|
|
137
|
-
* @default -1
|
|
138
|
-
*/
|
|
139
|
-
_contentTabIndex: string;
|
|
140
131
|
/**
|
|
141
132
|
* Defines the background color of the component.
|
|
142
133
|
*
|
|
@@ -163,15 +154,15 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
163
154
|
get buttonClassWithIcon(): string;
|
|
164
155
|
get hasNotIcon(): boolean;
|
|
165
156
|
get hasNotHref(): boolean;
|
|
166
|
-
get
|
|
157
|
+
get effectiveSelected(): boolean;
|
|
167
158
|
get selectedClass(): string;
|
|
168
159
|
get classWithIconWithoutBackground(): string;
|
|
169
|
-
get tabNavigation(): object;
|
|
170
|
-
get tabInOverflow(): object;
|
|
171
160
|
get _slotName(): string;
|
|
172
|
-
get effectiveSelected(): boolean;
|
|
173
161
|
get ariaLabelledBy(): string;
|
|
174
162
|
get accessibleNameText(): string;
|
|
163
|
+
get linkTabIndex(): string;
|
|
164
|
+
get tabNavigation(): object;
|
|
165
|
+
get tabInOverflow(): object;
|
|
175
166
|
static get headerTemplate(): typeof TabHeaderTemplate;
|
|
176
167
|
static get overflowTemplate(): typeof TabInOverflowTemplate;
|
|
177
168
|
}
|
package/dist/Tab.js
CHANGED
|
@@ -77,27 +77,18 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
77
77
|
get hasNotHref() {
|
|
78
78
|
return !this.href;
|
|
79
79
|
}
|
|
80
|
-
get
|
|
80
|
+
get effectiveSelected() {
|
|
81
81
|
return this.selected || this._selected;
|
|
82
82
|
}
|
|
83
83
|
get selectedClass() {
|
|
84
|
-
return this.
|
|
84
|
+
return this.effectiveSelected ? "udex-tab-navigation__button-tab--active" : "";
|
|
85
85
|
}
|
|
86
86
|
get classWithIconWithoutBackground() {
|
|
87
87
|
return this.hasIcon && !this._iconWithoutBackground ? " udex-tab-navigation__button-tab--icon-tab" : "";
|
|
88
88
|
}
|
|
89
|
-
get tabNavigation() {
|
|
90
|
-
return executeTemplate(UDExTab_1.headerTemplate, this);
|
|
91
|
-
}
|
|
92
|
-
get tabInOverflow() {
|
|
93
|
-
return executeTemplate(UDExTab_1.overflowTemplate, this);
|
|
94
|
-
}
|
|
95
89
|
get _slotName() {
|
|
96
90
|
return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;
|
|
97
91
|
}
|
|
98
|
-
get effectiveSelected() {
|
|
99
|
-
return this.selected || this._selected;
|
|
100
|
-
}
|
|
101
92
|
get ariaLabelledBy() {
|
|
102
93
|
const labels = [];
|
|
103
94
|
if (this.text) {
|
|
@@ -111,6 +102,15 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
111
102
|
get accessibleNameText() {
|
|
112
103
|
return this.accessibleName || (this.showAttentionBadge ? `, ${UDExTab_1.i18nBundle.getText(ATTENTION_BADGE)}` : "");
|
|
113
104
|
}
|
|
105
|
+
get linkTabIndex() {
|
|
106
|
+
return this.href && this.effectiveSelected ? "1" : "-1";
|
|
107
|
+
}
|
|
108
|
+
get tabNavigation() {
|
|
109
|
+
return executeTemplate(UDExTab_1.headerTemplate, this);
|
|
110
|
+
}
|
|
111
|
+
get tabInOverflow() {
|
|
112
|
+
return executeTemplate(UDExTab_1.overflowTemplate, this);
|
|
113
|
+
}
|
|
114
114
|
static get headerTemplate() {
|
|
115
115
|
return TabHeaderTemplate;
|
|
116
116
|
}
|
|
@@ -151,9 +151,6 @@ __decorate([
|
|
|
151
151
|
__decorate([
|
|
152
152
|
property({ type: String })
|
|
153
153
|
], UDExTab.prototype, "_tabIndex", void 0);
|
|
154
|
-
__decorate([
|
|
155
|
-
property({ type: String })
|
|
156
|
-
], UDExTab.prototype, "_contentTabIndex", void 0);
|
|
157
154
|
__decorate([
|
|
158
155
|
property({ type: Boolean })
|
|
159
156
|
], UDExTab.prototype, "_iconWithoutBackground", void 0);
|
package/dist/Tab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.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 executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport TabTemplate from \"./generated/templates/TabTemplate.lit.js\";\nimport TabHeaderTemplate from \"./generated/templates/TabHeaderTemplate.lit.js\";\nimport TabInOverflowTemplate from \"./generated/templates/TabInOverflowTemplate.lit.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\ninterface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n hasIcon: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n isSelected: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _contentTabIndex: string;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\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-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: litRender,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property({ type: Target, defaultValue: Target._self })\n target!: `${Target}`;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines the tabindex of the tab content.\n *\n * @private\n * @default -1\n */\n @property({ type: String })\n _contentTabIndex!: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExTab.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get isSelected() {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.isSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get tabNavigation() {\n return executeTemplate(UDExTab.headerTemplate, this);\n }\n\n get tabInOverflow() {\n return executeTemplate(UDExTab.overflowTemplate, this);\n }\n\n get _slotName() {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get effectiveSelected() {\n return this.selected || this._selected;\n }\n\n get ariaLabelledBy() {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText() {\n return this.accessibleName || (this.showAttentionBadge ? `, ${UDExTab.i18nBundle.getText(ATTENTION_BADGE)}` : \"\");\n }\n\n static get headerTemplate() {\n return TabHeaderTemplate;\n }\n\n static get overflowTemplate() {\n return TabInOverflowTemplate;\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\nexport { ITab };\n"]}
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../src/Tab.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 executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport I18nBundle, { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport TabTemplate from \"./generated/templates/TabTemplate.lit.js\";\nimport TabHeaderTemplate from \"./generated/templates/TabHeaderTemplate.lit.js\";\nimport TabInOverflowTemplate from \"./generated/templates/TabInOverflowTemplate.lit.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\n\nexport enum Target {\n _blank = \"_blank\",\n _parent = \"_parent\",\n _self = \"_self\",\n _top = \"_top\",\n}\n\ninterface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n hasIcon: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _iconWithoutBackground: boolean;\n _posinset?: number;\n _setsize?: number;\n _contentId?: string;\n getElementInHeader?: () => ITab | null;\n _realTab?: UDExTab;\n _width?: string;\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-tab</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@udex/web-components/dist/Tab.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab\n * @public\n */\n@customElement({\n tag: \"udex-tab\",\n renderer: litRender,\n template: TabTemplate,\n dependencies: [UDExBadge],\n})\n\nclass UDExTab extends UI5Element implements ITab {\n /**\n * Defines the Badge at the end of the Tab item.\n *\n * @public\n */\n @property({ type: String })\n numberBadge?: string;\n\n /**\n * Defines the text of tab.\n *\n * @public\n */\n @property({ type: String })\n text!: string;\n /**\n * Accessible name for tab.\n *\n * @public\n */\n @property({ type: String })\n accessibleName!: string;\n\n /**\n * Defines the selected tab.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines the displaying attention badge.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n showAttentionBadge!: boolean;\n\n /**\n * Defines the icon in the tab.\n *\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines the href of the tab.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the tab\n *\n * @public\n */\n @property({ type: Target, defaultValue: Target._self })\n target!: `${Target}`;\n\n /**\n * Defines the tab.\n *\n * @private\n */\n @property({ type: Object })\n _realTab!: UDExTab;\n\n /**\n * Defines the selected tab for private use.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _selected!: boolean;\n\n /**\n * Defines the tabindex of the tab.\n *\n * @private\n * @default false\n */\n @property({ type: String })\n _tabIndex!: string;\n\n /**\n * Defines the background color of the component.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean })\n _iconWithoutBackground!: boolean;\n\n /**\n * Defines the content of the tab.\n *\n * @slot content\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: Array<Node>;\n\n getElementInHeader?: () => ITab | null;\n _individualSlot!: string;\n\n getTabInHeaderDomRef(): ITab | null {\n if (this.getElementInHeader) {\n return this.getElementInHeader();\n }\n\n return null;\n }\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExTab.i18nBundle = await getI18nBundle(\"@udex/web-components\");\n }\n\n get isOnSelectedTab(): boolean {\n return this._realTab === this;\n }\n\n get _effectiveSlotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get hasIcon(): boolean {\n return !!this.icon;\n }\n\n get classWithIcon(): string {\n return this.hasIcon ? \"udex-tab-navigation__button-text--icon\" : \"\";\n }\n\n get buttonClassWithIcon(): string {\n return this.hasIcon ? \" udex-tab-navigation__button-tab--icon\" : \"\";\n }\n\n get hasNotIcon(): boolean {\n return !this.icon && this.showAttentionBadge;\n }\n\n get hasNotHref(): boolean {\n return !this.href;\n }\n\n get effectiveSelected(): boolean {\n return this.selected || this._selected;\n }\n\n get selectedClass(): string {\n return this.effectiveSelected ? \"udex-tab-navigation__button-tab--active\" : \"\";\n }\n\n get classWithIconWithoutBackground(): string {\n return this.hasIcon && !this._iconWithoutBackground ? \" udex-tab-navigation__button-tab--icon-tab\" : \"\";\n }\n\n get _slotName(): string {\n return this.isOnSelectedTab ? this._individualSlot : `disabled-${this._individualSlot}`;\n }\n\n get ariaLabelledBy(): string {\n const labels = [];\n\n if (this.text) {\n labels.push(`${this.__id!}-text`);\n }\n\n if (this.icon) {\n labels.push(`${this.__id!}-icon`);\n }\n\n return labels.join(\" \");\n }\n\n get accessibleNameText(): string {\n return this.accessibleName || (this.showAttentionBadge ? `, ${UDExTab.i18nBundle.getText(ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get tabNavigation() {\n return executeTemplate(UDExTab.headerTemplate, this);\n }\n\n get tabInOverflow() {\n return executeTemplate(UDExTab.overflowTemplate, this);\n }\n\n static get headerTemplate() {\n return TabHeaderTemplate;\n }\n\n static get overflowTemplate() {\n return TabInOverflowTemplate;\n }\n}\n\nUDExTab.define();\n\nTabNavigation.registerStaticAreaTabStyles(TabInOverflowCss);\n\nexport default UDExTab;\nexport { ITab };\n"]}
|
package/dist/TabNavigation.js
CHANGED
|
@@ -114,7 +114,6 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
114
114
|
tab._contentId = this.getContentId(index);
|
|
115
115
|
tab._realTab = this._selectedTab;
|
|
116
116
|
tab._width = this.tabWidth;
|
|
117
|
-
tab._contentTabIndex = this.getContentTabIndex(tab);
|
|
118
117
|
});
|
|
119
118
|
}
|
|
120
119
|
getContentId(index) {
|
|
@@ -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 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"]}
|
|
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/**\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})\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 });\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"]}
|