@sapudex/web-components 2.26.0 → 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/TabNavigation.cy.tsx +1024 -0
- package/cypress/support/component-imports.src.ts +4 -0
- package/dist/Tab.d.ts +57 -0
- package/dist/Tab.js +67 -0
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +25 -3
- package/dist/TabNavigation.js +96 -18
- package/dist/TabNavigation.js.map +1 -1
- package/dist/assets/{InputSuggestions-CG5owMFQ.js → InputSuggestions-Bm_0fOBQ.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DpVr7qdn.js → ListItemStandardExpandableTextTemplate-CHXlUP-E.js} +1 -1
- package/dist/assets/{bundle.esm-CTkLMr6f.js → bundle.esm-D_SXCGNu.js} +218 -218
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/custom-elements-internal.json +205 -154
- package/dist/custom-elements.json +186 -139
- package/dist/generated/templates/TabHeaderTemplate.lit.js +30 -11
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +8 -6
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +11 -1
- package/dist/web-types.json +29 -2
- package/package.json +1 -1
- package/src/Tab.ts +98 -0
- package/src/TabHeader.hbs +85 -33
- package/src/TabNavigation.hbs +16 -0
- package/src/TabNavigation.ts +109 -21
- package/src/generated/templates/TabHeaderTemplate.lit.ts +29 -10
- package/src/generated/templates/TabNavigationTemplate.lit.ts +8 -6
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/themes/TabNavigation.css +203 -1
|
@@ -52,6 +52,8 @@ import UDExSocialMediaButton from "../../src/SocialMediaButton.js";
|
|
|
52
52
|
import UDExStatusBadge from "../../src/StatusBadge.js";
|
|
53
53
|
import UDExStatusMessage from "../../src/StatusMessage.js";
|
|
54
54
|
import UDExSwitch from "../../src/Switch.js";
|
|
55
|
+
import UDExTab from "../../src/Tab.js";
|
|
56
|
+
import UDExTabNavigation from "../../src/TabNavigation.js";
|
|
55
57
|
import UDExTable from "../../src/Table.js";
|
|
56
58
|
import UDExTableCell from "../../src/TableCell.js";
|
|
57
59
|
import UDExTableGroupRow from "../../src/TableGroupRow.js";
|
|
@@ -125,6 +127,8 @@ export {
|
|
|
125
127
|
UDExStatusBadge,
|
|
126
128
|
UDExStatusMessage,
|
|
127
129
|
UDExSwitch,
|
|
130
|
+
UDExTab,
|
|
131
|
+
UDExTabNavigation,
|
|
128
132
|
UDExTable,
|
|
129
133
|
UDExTableCell,
|
|
130
134
|
UDExTableGroupRow,
|
package/dist/Tab.d.ts
CHANGED
|
@@ -10,14 +10,18 @@ export interface ITab extends UI5Element {
|
|
|
10
10
|
selected?: boolean;
|
|
11
11
|
numberBadge?: string;
|
|
12
12
|
text?: string;
|
|
13
|
+
bodyText?: string;
|
|
13
14
|
showAttentionBadge?: boolean;
|
|
14
15
|
accessibleName?: string;
|
|
15
16
|
href?: string;
|
|
16
17
|
content?: Array<Node>;
|
|
18
|
+
link?: Array<HTMLElement>;
|
|
17
19
|
hasIcon: boolean;
|
|
20
|
+
isMobile: boolean;
|
|
18
21
|
isOnSelectedTab: boolean;
|
|
19
22
|
hasNotIcon: boolean;
|
|
20
23
|
hasNotHref: boolean;
|
|
24
|
+
hasLinkSlot: boolean;
|
|
21
25
|
selectedClass: string;
|
|
22
26
|
tabNavigation: any;
|
|
23
27
|
_individualSlot: string;
|
|
@@ -25,6 +29,8 @@ export interface ITab extends UI5Element {
|
|
|
25
29
|
_slotName: string;
|
|
26
30
|
_selected?: boolean;
|
|
27
31
|
_tabIndex: string;
|
|
32
|
+
_isMobile: boolean;
|
|
33
|
+
_isVertical: boolean;
|
|
28
34
|
_iconWithoutBackground: boolean;
|
|
29
35
|
_posinset?: number;
|
|
30
36
|
_setsize?: number;
|
|
@@ -65,6 +71,13 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
65
71
|
* @public
|
|
66
72
|
*/
|
|
67
73
|
text: string;
|
|
74
|
+
/**
|
|
75
|
+
* Defines the body text (supplementary description) of the tab.
|
|
76
|
+
* Optional text to provide additional context or explanation.
|
|
77
|
+
*
|
|
78
|
+
* @public
|
|
79
|
+
*/
|
|
80
|
+
bodyText?: string;
|
|
68
81
|
/**
|
|
69
82
|
* Accessible name for tab.
|
|
70
83
|
*
|
|
@@ -123,6 +136,26 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
123
136
|
* @default false
|
|
124
137
|
*/
|
|
125
138
|
_tabIndex: string;
|
|
139
|
+
/**
|
|
140
|
+
* Defines if the viewport is mobile size.
|
|
141
|
+
*
|
|
142
|
+
* @private
|
|
143
|
+
* @default false
|
|
144
|
+
*/
|
|
145
|
+
_isMobile: boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Defines if the tab navigation is in vertical orientation.
|
|
148
|
+
*
|
|
149
|
+
* @private
|
|
150
|
+
* @default false
|
|
151
|
+
*/
|
|
152
|
+
_isVertical: boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Defines the width of the tab.
|
|
155
|
+
*
|
|
156
|
+
* @private
|
|
157
|
+
*/
|
|
158
|
+
_width?: string;
|
|
126
159
|
/**
|
|
127
160
|
* Defines the background color of the component.
|
|
128
161
|
*
|
|
@@ -137,6 +170,14 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
137
170
|
* @public
|
|
138
171
|
*/
|
|
139
172
|
content: Array<Node>;
|
|
173
|
+
/**
|
|
174
|
+
* Defines the link(s) to be displayed in the tab header (vertical orientation only).
|
|
175
|
+
* Use this slot to add one or more udex-link elements to the tab button.
|
|
176
|
+
*
|
|
177
|
+
* @slot link
|
|
178
|
+
* @public
|
|
179
|
+
*/
|
|
180
|
+
link: Array<HTMLElement>;
|
|
140
181
|
static i18nBundle: I18nBundle;
|
|
141
182
|
getElementInHeader?: () => ITab | null;
|
|
142
183
|
_individualSlot: string;
|
|
@@ -146,8 +187,23 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
146
187
|
get hasIcon(): boolean;
|
|
147
188
|
get classWithIcon(): string;
|
|
148
189
|
get buttonClassWithIcon(): string;
|
|
190
|
+
get isMobile(): boolean;
|
|
191
|
+
get isMobileVertical(): boolean;
|
|
149
192
|
get hasNotIcon(): boolean;
|
|
150
193
|
get hasNotHref(): boolean;
|
|
194
|
+
get hasBodyText(): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Returns true if aria-describedby should point to bodyText.
|
|
197
|
+
* Only applies to selected tabs with bodyText in vertical orientation.
|
|
198
|
+
*/
|
|
199
|
+
get ariaDescribedByBodyText(): boolean;
|
|
200
|
+
get hasLinkSlot(): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Returns the HTML content of the link slot elements.
|
|
203
|
+
* This is used to render the links in the TabHeader template.
|
|
204
|
+
*/
|
|
205
|
+
get linkSlotHtml(): string;
|
|
206
|
+
get hasBodyTextOrLink(): boolean;
|
|
151
207
|
get effectiveSelected(): boolean;
|
|
152
208
|
get selectedClass(): string;
|
|
153
209
|
get classWithIconWithoutBackground(): string;
|
|
@@ -155,6 +211,7 @@ declare class UDExTab extends UI5Element implements ITab {
|
|
|
155
211
|
get ariaLabelledBy(): string;
|
|
156
212
|
get accessibleNameText(): string;
|
|
157
213
|
get linkTabIndex(): string;
|
|
214
|
+
get widthStyle(): string;
|
|
158
215
|
get tabNavigation(): object;
|
|
159
216
|
get tabInOverflow(): object;
|
|
160
217
|
static get headerTemplate(): typeof TabHeaderTemplate;
|
package/dist/Tab.js
CHANGED
|
@@ -50,6 +50,20 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
50
50
|
* @public
|
|
51
51
|
*/
|
|
52
52
|
this.target = UDExTarget._self;
|
|
53
|
+
/**
|
|
54
|
+
* Defines if the viewport is mobile size.
|
|
55
|
+
*
|
|
56
|
+
* @private
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
this._isMobile = false;
|
|
60
|
+
/**
|
|
61
|
+
* Defines if the tab navigation is in vertical orientation.
|
|
62
|
+
*
|
|
63
|
+
* @private
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
this._isVertical = false;
|
|
53
67
|
}
|
|
54
68
|
getTabInHeaderDomRef() {
|
|
55
69
|
if (this.getElementInHeader) {
|
|
@@ -72,12 +86,44 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
72
86
|
get buttonClassWithIcon() {
|
|
73
87
|
return this.hasIcon ? " udex-tab-navigation__button-tab--icon" : "";
|
|
74
88
|
}
|
|
89
|
+
get isMobile() {
|
|
90
|
+
return this._isMobile;
|
|
91
|
+
}
|
|
92
|
+
get isMobileVertical() {
|
|
93
|
+
return this._isMobile && this._isVertical;
|
|
94
|
+
}
|
|
75
95
|
get hasNotIcon() {
|
|
76
96
|
return !this.icon && this.showAttentionBadge;
|
|
77
97
|
}
|
|
78
98
|
get hasNotHref() {
|
|
79
99
|
return !this.href;
|
|
80
100
|
}
|
|
101
|
+
get hasBodyText() {
|
|
102
|
+
return !!this.bodyText;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Returns true if aria-describedby should point to bodyText.
|
|
106
|
+
* Only applies to selected tabs with bodyText in vertical orientation.
|
|
107
|
+
*/
|
|
108
|
+
get ariaDescribedByBodyText() {
|
|
109
|
+
return this.effectiveSelected && this.hasBodyText && this._isVertical;
|
|
110
|
+
}
|
|
111
|
+
get hasLinkSlot() {
|
|
112
|
+
return this.link && this.link.length > 0;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns the HTML content of the link slot elements.
|
|
116
|
+
* This is used to render the links in the TabHeader template.
|
|
117
|
+
*/
|
|
118
|
+
get linkSlotHtml() {
|
|
119
|
+
if (!this.link || this.link.length === 0) {
|
|
120
|
+
return "";
|
|
121
|
+
}
|
|
122
|
+
return this.link.map(l => l.outerHTML).join("");
|
|
123
|
+
}
|
|
124
|
+
get hasBodyTextOrLink() {
|
|
125
|
+
return this._isVertical && (this.hasBodyText || this.hasLinkSlot);
|
|
126
|
+
}
|
|
81
127
|
get effectiveSelected() {
|
|
82
128
|
return this.selected || this._selected;
|
|
83
129
|
}
|
|
@@ -106,6 +152,12 @@ let UDExTab = UDExTab_1 = class UDExTab extends UI5Element {
|
|
|
106
152
|
get linkTabIndex() {
|
|
107
153
|
return this.href && this.effectiveSelected ? "1" : "-1";
|
|
108
154
|
}
|
|
155
|
+
get widthStyle() {
|
|
156
|
+
if (this._width && this._width !== "auto") {
|
|
157
|
+
return `width: ${this._width};`;
|
|
158
|
+
}
|
|
159
|
+
return "";
|
|
160
|
+
}
|
|
109
161
|
get tabNavigation() {
|
|
110
162
|
return executeTemplate(UDExTab_1.headerTemplate, this);
|
|
111
163
|
}
|
|
@@ -125,6 +177,9 @@ __decorate([
|
|
|
125
177
|
__decorate([
|
|
126
178
|
property({ type: String })
|
|
127
179
|
], UDExTab.prototype, "text", void 0);
|
|
180
|
+
__decorate([
|
|
181
|
+
property({ type: String })
|
|
182
|
+
], UDExTab.prototype, "bodyText", void 0);
|
|
128
183
|
__decorate([
|
|
129
184
|
property({ type: String })
|
|
130
185
|
], UDExTab.prototype, "accessibleName", void 0);
|
|
@@ -152,12 +207,24 @@ __decorate([
|
|
|
152
207
|
__decorate([
|
|
153
208
|
property({ type: String })
|
|
154
209
|
], UDExTab.prototype, "_tabIndex", void 0);
|
|
210
|
+
__decorate([
|
|
211
|
+
property({ type: Boolean, noAttribute: true })
|
|
212
|
+
], UDExTab.prototype, "_isMobile", void 0);
|
|
213
|
+
__decorate([
|
|
214
|
+
property({ type: Boolean, noAttribute: true })
|
|
215
|
+
], UDExTab.prototype, "_isVertical", void 0);
|
|
216
|
+
__decorate([
|
|
217
|
+
property({ type: String, noAttribute: true })
|
|
218
|
+
], UDExTab.prototype, "_width", void 0);
|
|
155
219
|
__decorate([
|
|
156
220
|
property({ type: Boolean })
|
|
157
221
|
], UDExTab.prototype, "_iconWithoutBackground", void 0);
|
|
158
222
|
__decorate([
|
|
159
223
|
slot({ type: Node, "default": true })
|
|
160
224
|
], UDExTab.prototype, "content", void 0);
|
|
225
|
+
__decorate([
|
|
226
|
+
slot({ type: HTMLElement })
|
|
227
|
+
], UDExTab.prototype, "link", void 0);
|
|
161
228
|
__decorate([
|
|
162
229
|
i18n("@sapudex/web-components")
|
|
163
230
|
], UDExTab, "i18nBundle", 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 TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nexport interface 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 \"@sapudex/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()\n target: `${UDExTarget}` = UDExTarget._self;\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 @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\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 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 ? `, ${translate(UDExTab, 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;\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 TabNavigation from \"./TabNavigation.js\";\nimport UDExBadge from \"./Badge.js\";\nimport { UDExTarget } from \"./types/common.js\";\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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { ATTENTION_BADGE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nexport interface ITab extends UI5Element {\n getTabInHeaderDomRef: () => ITab | null;\n disabled?: boolean;\n icon?: string;\n selected?: boolean;\n numberBadge?: string;\n text?: string;\n bodyText?: string;\n showAttentionBadge?: boolean;\n accessibleName?: string;\n href?: string;\n content?: Array<Node>;\n link?: Array<HTMLElement>;\n hasIcon: boolean;\n isMobile: boolean;\n isOnSelectedTab: boolean;\n hasNotIcon: boolean;\n hasNotHref: boolean;\n hasLinkSlot: boolean;\n selectedClass: string;\n tabNavigation: any;\n _individualSlot: string;\n _effectiveSlotName: string;\n _slotName: string;\n _selected?: boolean;\n _tabIndex: string;\n _isMobile: boolean;\n _isVertical: boolean;\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 \"@sapudex/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 /**\n * Defines the body text (supplementary description) of the tab.\n * Optional text to provide additional context or explanation.\n *\n * @public\n */\n @property({ type: String })\n bodyText?: string;\n\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()\n target: `${UDExTarget}` = UDExTarget._self;\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 if the viewport is mobile size.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isMobile: boolean = false;\n\n /**\n * Defines if the tab navigation is in vertical orientation.\n *\n * @private\n * @default false\n */\n @property({ type: Boolean, noAttribute: true })\n _isVertical: boolean = false;\n\n /**\n * Defines the width of the tab.\n *\n * @private\n */\n @property({ type: String, noAttribute: true })\n _width?: 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 /**\n * Defines the link(s) to be displayed in the tab header (vertical orientation only).\n * Use this slot to add one or more udex-link elements to the tab button.\n *\n * @slot link\n * @public\n */\n @slot({ type: HTMLElement })\n link!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\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 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 isMobile(): boolean {\n return this._isMobile;\n }\n\n get isMobileVertical(): boolean {\n return this._isMobile && this._isVertical;\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 hasBodyText(): boolean {\n return !!this.bodyText;\n }\n\n /**\n * Returns true if aria-describedby should point to bodyText.\n * Only applies to selected tabs with bodyText in vertical orientation.\n */\n get ariaDescribedByBodyText(): boolean {\n return this.effectiveSelected && this.hasBodyText && this._isVertical;\n }\n\n get hasLinkSlot(): boolean {\n return this.link && this.link.length > 0;\n }\n\n /**\n * Returns the HTML content of the link slot elements.\n * This is used to render the links in the TabHeader template.\n */\n get linkSlotHtml(): string {\n if (!this.link || this.link.length === 0) {\n return \"\";\n }\n return this.link.map(l => l.outerHTML).join(\"\");\n }\n\n get hasBodyTextOrLink(): boolean {\n return this._isVertical && (this.hasBodyText || this.hasLinkSlot);\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 ? `, ${translate(UDExTab, ATTENTION_BADGE)}` : \"\");\n }\n\n get linkTabIndex(): string {\n return this.href && this.effectiveSelected ? \"1\" : \"-1\";\n }\n\n get widthStyle(): string {\n if (this._width && this._width !== \"auto\") {\n return `width: ${this._width};`;\n }\n return \"\";\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;\n"]}
|
package/dist/TabNavigation.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { ITab } from "./Tab.js";
|
|
|
5
5
|
import type Tab from "./Tab.js";
|
|
6
6
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
7
7
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
8
9
|
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
9
10
|
export declare enum UDExSizeMoreButton {
|
|
10
11
|
Small = "Small",
|
|
@@ -14,6 +15,10 @@ export declare enum Mode {
|
|
|
14
15
|
Light = "Light",
|
|
15
16
|
Dark = "Dark"
|
|
16
17
|
}
|
|
18
|
+
export declare enum UDExTabNavigationOrientation {
|
|
19
|
+
Horizontal = "Horizontal",
|
|
20
|
+
Vertical = "Vertical"
|
|
21
|
+
}
|
|
17
22
|
type UDExTabNavigationClickDetail = {
|
|
18
23
|
currentPage: number;
|
|
19
24
|
};
|
|
@@ -58,6 +63,13 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
58
63
|
* @default "Light"
|
|
59
64
|
*/
|
|
60
65
|
mode: `${Mode}`;
|
|
66
|
+
/**
|
|
67
|
+
* Defines the orientation of the tab navigation.
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
* @default "Horizontal"
|
|
71
|
+
*/
|
|
72
|
+
orientation: `${UDExTabNavigationOrientation}`;
|
|
61
73
|
/**
|
|
62
74
|
* Defines the background color of the component.
|
|
63
75
|
*
|
|
@@ -93,6 +105,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
93
105
|
items: Array<ITab>;
|
|
94
106
|
static i18nBundle: I18nBundle;
|
|
95
107
|
_handleResizeBound: () => void;
|
|
108
|
+
_handleWindowResizeBound: () => void;
|
|
96
109
|
_popover?: Popover;
|
|
97
110
|
_visibleTabs?: Array<ITab | HTMLElement>;
|
|
98
111
|
_isExpanded: boolean;
|
|
@@ -102,6 +115,7 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
102
115
|
onAfterRendering(): void;
|
|
103
116
|
onEnterDOM(): void;
|
|
104
117
|
onExitDOM(): void;
|
|
118
|
+
_handleWindowResize(): void;
|
|
105
119
|
_handleResize(): void;
|
|
106
120
|
emitClickEvent(pageIndex: number): void;
|
|
107
121
|
onBeforeRendering(): void;
|
|
@@ -150,11 +164,13 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
150
164
|
handleClosePopover(): void;
|
|
151
165
|
handleOpenPopover(): void;
|
|
152
166
|
handleKeyDown(e: KeyboardEvent): void;
|
|
153
|
-
handleRightArrow(e: KeyboardEvent): void;
|
|
154
|
-
onFocusRightItem(target: HTMLElement): void;
|
|
155
167
|
getTabIndexById(id: string): number;
|
|
156
168
|
handleLeftArrow(e: KeyboardEvent): void;
|
|
157
|
-
|
|
169
|
+
handleRightArrow(e: KeyboardEvent): void;
|
|
170
|
+
handleUpArrow(e: KeyboardEvent): void;
|
|
171
|
+
handleDownArrow(e: KeyboardEvent): void;
|
|
172
|
+
onFocusPreviousItem(target: HTMLElement): void;
|
|
173
|
+
onFocusNextItem(target: HTMLElement): void;
|
|
158
174
|
handleHomeKey(e: KeyboardEvent): void;
|
|
159
175
|
handleEndKey(e: KeyboardEvent): void;
|
|
160
176
|
onEndKey(): void;
|
|
@@ -177,10 +193,16 @@ declare class UDExTabNavigation extends UI5Element {
|
|
|
177
193
|
handleHome(e: KeyboardEvent): void;
|
|
178
194
|
handleEnd(e: KeyboardEvent): void;
|
|
179
195
|
getResponsePopover(): Popover;
|
|
196
|
+
get isHorizontal(): boolean;
|
|
197
|
+
get isVertical(): boolean;
|
|
198
|
+
get ariaOrientationValue(): string;
|
|
199
|
+
get isDesktop(): boolean;
|
|
180
200
|
get moreButtonText(): string;
|
|
181
201
|
static registerStaticAreaTabStyles(styles: StyleData): void;
|
|
182
202
|
static get tabNavigationPopoverTemplate(): typeof TabNavigationPopoverTemplate;
|
|
183
203
|
get tabNavigationPopover(): object;
|
|
204
|
+
applyTabWidthToVerticalTabs(): void;
|
|
205
|
+
updateMobileState(): void;
|
|
184
206
|
}
|
|
185
207
|
export default UDExTabNavigation;
|
|
186
208
|
export type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };
|
package/dist/TabNavigation.js
CHANGED
|
@@ -20,6 +20,9 @@ import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
|
20
20
|
import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
|
|
21
21
|
import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
|
|
22
22
|
import { MORE } from "./generated/i18n/i18n-defaults.js";
|
|
23
|
+
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
24
|
+
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
25
|
+
import UDExButton from "./Button.js";
|
|
23
26
|
// Templates
|
|
24
27
|
import TabNavigationTemplate from "./generated/templates/TabNavigationTemplate.lit.js";
|
|
25
28
|
import TabNavigationPopoverTemplate from "./generated/templates/TabNavigationPopoverTemplate.lit.js";
|
|
@@ -38,6 +41,11 @@ export var Mode;
|
|
|
38
41
|
Mode["Light"] = "Light";
|
|
39
42
|
Mode["Dark"] = "Dark";
|
|
40
43
|
})(Mode || (Mode = {}));
|
|
44
|
+
export var UDExTabNavigationOrientation;
|
|
45
|
+
(function (UDExTabNavigationOrientation) {
|
|
46
|
+
UDExTabNavigationOrientation["Horizontal"] = "Horizontal";
|
|
47
|
+
UDExTabNavigationOrientation["Vertical"] = "Vertical";
|
|
48
|
+
})(UDExTabNavigationOrientation || (UDExTabNavigationOrientation = {}));
|
|
41
49
|
/**
|
|
42
50
|
* @class
|
|
43
51
|
*
|
|
@@ -73,11 +81,19 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
73
81
|
* @default "Light"
|
|
74
82
|
*/
|
|
75
83
|
this.mode = Mode.Light;
|
|
84
|
+
/**
|
|
85
|
+
* Defines the orientation of the tab navigation.
|
|
86
|
+
*
|
|
87
|
+
* @public
|
|
88
|
+
* @default "Horizontal"
|
|
89
|
+
*/
|
|
90
|
+
this.orientation = UDExTabNavigationOrientation.Horizontal;
|
|
76
91
|
this.tabWidth = "auto";
|
|
77
92
|
this._isExpanded = false;
|
|
78
93
|
this._maxTitleLength = 25;
|
|
79
94
|
this._maxTitleLengthInSecondLines = this._maxTitleLength * 2;
|
|
80
95
|
this._handleResizeBound = this._handleResize.bind(this);
|
|
96
|
+
this._handleWindowResizeBound = this._handleWindowResize.bind(this);
|
|
81
97
|
}
|
|
82
98
|
onAfterRendering() {
|
|
83
99
|
if (this.items.length) {
|
|
@@ -89,19 +105,26 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
89
105
|
console.warn("You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.");
|
|
90
106
|
}
|
|
91
107
|
this.initOutsideClick();
|
|
108
|
+
this.applyTabWidthToVerticalTabs();
|
|
92
109
|
}
|
|
93
110
|
onEnterDOM() {
|
|
94
111
|
ResizeHandler.register(this.getHeader(), this._handleResizeBound);
|
|
112
|
+
window.addEventListener("resize", this._handleWindowResizeBound);
|
|
95
113
|
if (isDesktop()) {
|
|
96
114
|
this.setAttribute("desktop", "");
|
|
97
115
|
}
|
|
98
116
|
}
|
|
99
117
|
onExitDOM() {
|
|
100
118
|
ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);
|
|
119
|
+
window.removeEventListener("resize", this._handleWindowResizeBound);
|
|
120
|
+
}
|
|
121
|
+
_handleWindowResize() {
|
|
122
|
+
this.updateMobileState();
|
|
101
123
|
}
|
|
102
124
|
_handleResize() {
|
|
103
125
|
this.handleClosePopover();
|
|
104
126
|
this._width = this.offsetWidth;
|
|
127
|
+
this.updateMobileState();
|
|
105
128
|
}
|
|
106
129
|
emitClickEvent(pageIndex) {
|
|
107
130
|
this.fireDecoratorEvent("click", { currentPage: pageIndex });
|
|
@@ -109,6 +132,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
109
132
|
onBeforeRendering() {
|
|
110
133
|
this.updateOverflowItems();
|
|
111
134
|
this.setSelectedTab();
|
|
135
|
+
this.updateMobileState();
|
|
112
136
|
}
|
|
113
137
|
setSelectedTab() {
|
|
114
138
|
if (!this.items.length) {
|
|
@@ -130,6 +154,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
130
154
|
this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : this.items[0]);
|
|
131
155
|
}
|
|
132
156
|
setRealTabToItems() {
|
|
157
|
+
const isMobile = BreakpointUtils.isAtMost("S");
|
|
133
158
|
this.items.forEach((tab, index, arr) => {
|
|
134
159
|
tab._iconWithoutBackground = this.iconWithoutBackground;
|
|
135
160
|
tab._posinset = index + 1;
|
|
@@ -137,6 +162,8 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
137
162
|
tab._contentId = this.getContentId(index);
|
|
138
163
|
tab._realTab = this._selectedTab;
|
|
139
164
|
tab._width = this.tabWidth;
|
|
165
|
+
tab._isMobile = isMobile;
|
|
166
|
+
tab._isVertical = this.isVertical;
|
|
140
167
|
});
|
|
141
168
|
}
|
|
142
169
|
getContentId(index) {
|
|
@@ -187,7 +214,7 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
187
214
|
}
|
|
188
215
|
getTab(el) {
|
|
189
216
|
while (el) {
|
|
190
|
-
if (el.
|
|
217
|
+
if (el.getAttribute("role") === "tab") {
|
|
191
218
|
return el;
|
|
192
219
|
}
|
|
193
220
|
el = el.parentElement;
|
|
@@ -205,12 +232,16 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
205
232
|
this.fireDecoratorEvent("tab-select", { tab: this._selectedTab, tabIndex: selectedTabIndex });
|
|
206
233
|
}
|
|
207
234
|
setItemsInHeader() {
|
|
235
|
+
const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef());
|
|
236
|
+
// Skip overflow logic for vertical tabs - show all tabs
|
|
237
|
+
if (this.isVertical) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
208
240
|
const tabHeader = this.getTabHeader();
|
|
209
241
|
let allItemsWidth = 0;
|
|
210
242
|
if (!this._selectedTab) {
|
|
211
243
|
return;
|
|
212
244
|
}
|
|
213
|
-
const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef());
|
|
214
245
|
this.getMoreButton()?.setAttribute("hidden", "");
|
|
215
246
|
this.removeHiddenAttributeInAllTabs(itemsDomRefs);
|
|
216
247
|
allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);
|
|
@@ -430,40 +461,61 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
430
461
|
}
|
|
431
462
|
}
|
|
432
463
|
handleKeyDown(e) {
|
|
433
|
-
this.
|
|
434
|
-
|
|
464
|
+
if (this.isHorizontal) {
|
|
465
|
+
this.handleRightArrow(e);
|
|
466
|
+
this.handleLeftArrow(e);
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
this.handleDownArrow(e);
|
|
470
|
+
this.handleUpArrow(e);
|
|
471
|
+
}
|
|
435
472
|
this.handleHomeKey(e);
|
|
436
473
|
this.handleEndKey(e);
|
|
437
474
|
}
|
|
475
|
+
getTabIndexById(id) {
|
|
476
|
+
return this._visibleTabs.findIndex(tab => tab.id === id);
|
|
477
|
+
}
|
|
478
|
+
handleLeftArrow(e) {
|
|
479
|
+
if (isLeft(e)) {
|
|
480
|
+
e.preventDefault();
|
|
481
|
+
e.stopPropagation();
|
|
482
|
+
this.onFocusPreviousItem(e.target);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
438
485
|
handleRightArrow(e) {
|
|
439
486
|
if (isRight(e)) {
|
|
440
487
|
e.preventDefault();
|
|
441
488
|
e.stopPropagation();
|
|
442
|
-
|
|
489
|
+
// For horizontal tabs, right arrow always moves focus to the next tab
|
|
490
|
+
this.onFocusNextItem(e.target);
|
|
443
491
|
}
|
|
444
492
|
}
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
getTabIndexById(id) {
|
|
452
|
-
return this._visibleTabs.findIndex(tab => tab.id === id);
|
|
493
|
+
handleUpArrow(e) {
|
|
494
|
+
if (isUp(e)) {
|
|
495
|
+
e.preventDefault();
|
|
496
|
+
e.stopPropagation();
|
|
497
|
+
this.onFocusPreviousItem(e.target);
|
|
498
|
+
}
|
|
453
499
|
}
|
|
454
|
-
|
|
455
|
-
if (
|
|
500
|
+
handleDownArrow(e) {
|
|
501
|
+
if (isDown(e)) {
|
|
456
502
|
e.preventDefault();
|
|
457
503
|
e.stopPropagation();
|
|
458
|
-
this.
|
|
504
|
+
this.onFocusNextItem(e.target);
|
|
459
505
|
}
|
|
460
506
|
}
|
|
461
|
-
|
|
507
|
+
onFocusPreviousItem(target) {
|
|
462
508
|
const previousSelectedIndex = this.getTabIndexById(target.id);
|
|
463
509
|
const lastIndex = this._visibleTabs.length - 1;
|
|
464
510
|
const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;
|
|
465
511
|
this._visibleTabs[previousSelectIndex].focus();
|
|
466
512
|
}
|
|
513
|
+
onFocusNextItem(target) {
|
|
514
|
+
const previousSelectedIndex = this.getTabIndexById(target.id);
|
|
515
|
+
const lastIndex = this._visibleTabs.length;
|
|
516
|
+
const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;
|
|
517
|
+
this._visibleTabs[nextSelectIndex].focus();
|
|
518
|
+
}
|
|
467
519
|
handleHomeKey(e) {
|
|
468
520
|
if (isHome(e)) {
|
|
469
521
|
e.preventDefault();
|
|
@@ -606,6 +658,18 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
606
658
|
getResponsePopover() {
|
|
607
659
|
return this.shadowRoot.querySelector("[ui5-popover]");
|
|
608
660
|
}
|
|
661
|
+
get isHorizontal() {
|
|
662
|
+
return this.orientation === UDExTabNavigationOrientation.Horizontal;
|
|
663
|
+
}
|
|
664
|
+
get isVertical() {
|
|
665
|
+
return this.orientation === UDExTabNavigationOrientation.Vertical;
|
|
666
|
+
}
|
|
667
|
+
get ariaOrientationValue() {
|
|
668
|
+
return this.isVertical ? "vertical" : "horizontal";
|
|
669
|
+
}
|
|
670
|
+
get isDesktop() {
|
|
671
|
+
return isDesktop();
|
|
672
|
+
}
|
|
609
673
|
get moreButtonText() {
|
|
610
674
|
return translate(UDExTabNavigation_1, MORE);
|
|
611
675
|
}
|
|
@@ -618,6 +682,17 @@ let UDExTabNavigation = UDExTabNavigation_1 = class UDExTabNavigation extends UI
|
|
|
618
682
|
get tabNavigationPopover() {
|
|
619
683
|
return executeTemplate(UDExTabNavigation_1.tabNavigationPopoverTemplate, this);
|
|
620
684
|
}
|
|
685
|
+
applyTabWidthToVerticalTabs() {
|
|
686
|
+
if (this.isVertical && this.tabWidth && this.tabWidth !== "auto") {
|
|
687
|
+
this.style.setProperty("--udex-tab-header-width", this.tabWidth);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
updateMobileState() {
|
|
691
|
+
const isMobile = BreakpointUtils.isAtMost("S");
|
|
692
|
+
this.items.forEach(tab => {
|
|
693
|
+
tab._isMobile = isMobile;
|
|
694
|
+
});
|
|
695
|
+
}
|
|
621
696
|
};
|
|
622
697
|
__decorate([
|
|
623
698
|
property()
|
|
@@ -625,6 +700,9 @@ __decorate([
|
|
|
625
700
|
__decorate([
|
|
626
701
|
property()
|
|
627
702
|
], UDExTabNavigation.prototype, "mode", void 0);
|
|
703
|
+
__decorate([
|
|
704
|
+
property()
|
|
705
|
+
], UDExTabNavigation.prototype, "orientation", void 0);
|
|
628
706
|
__decorate([
|
|
629
707
|
property({ type: Boolean })
|
|
630
708
|
], UDExTabNavigation.prototype, "iconWithoutBackground", void 0);
|
|
@@ -657,7 +735,7 @@ UDExTabNavigation = UDExTabNavigation_1 = __decorate([
|
|
|
657
735
|
renderer: litRender,
|
|
658
736
|
styles: [TabNavigationCss, TabInOverflowCss],
|
|
659
737
|
template: TabNavigationTemplate,
|
|
660
|
-
dependencies: [Popover, Icon],
|
|
738
|
+
dependencies: [Popover, Icon, UDExButton],
|
|
661
739
|
})
|
|
662
740
|
/**
|
|
663
741
|
* Fires when the tab was clicked.
|