@sapudex/web-components 0.226.1 → 0.226.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/Breadcrumbs.js +3 -2
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Button.d.ts +7 -0
- package/dist/Button.js +5 -0
- package/dist/Button.js.map +1 -1
- package/dist/ListItem.d.ts +3 -2
- package/dist/ListItem.js +2 -2
- package/dist/ListItem.js.map +1 -1
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/Pagination.d.ts +2 -2
- package/dist/Pagination.js +10 -8
- package/dist/Pagination.js.map +1 -1
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/Search.js +1 -2
- package/dist/Search.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +4 -1
- package/dist/SecondaryNavigation.js +37 -10
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +10 -0
- package/dist/SecondaryNavigationItem.js +19 -0
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.d.ts +1 -0
- package/dist/SecondaryNavigationItemBase.js +3 -0
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +0 -1
- package/dist/SecondaryNavigationSubItem.js +0 -3
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/assets/{bundle.esm-a49b6527.js → bundle.esm-8390abc2.js} +189 -189
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/ListItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/Pagination.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/custom-elements-internal.json +36 -2
- package/dist/custom-elements.json +19 -0
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
- package/dist/generated/templates/BreadcrumbsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ButtonTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/ButtonTemplate.lit.js +7 -0
- package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -0
- package/dist/generated/templates/PaginationTemplate.lit.js +3 -3
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +3 -3
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +2 -2
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/ListItem.css.js +1 -1
- package/dist/generated/themes/ListItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/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/vscode.html-custom-data.json +5 -0
- package/dist/web-types.json +11 -1
- package/package.json +1 -1
- package/src/Breadcrumbs.hbs +10 -12
- package/src/Breadcrumbs.ts +3 -2
- package/src/Button.hbs +50 -0
- package/src/Button.ts +11 -0
- package/src/ListItem.ts +4 -4
- package/src/MastheadItem.ts +1 -1
- package/src/Pagination.hbs +4 -4
- package/src/Pagination.ts +14 -8
- package/src/PhoneNumberField.ts +1 -1
- package/src/Search.hbs +3 -2
- package/src/Search.ts +1 -2
- package/src/SecondaryNavigation.hbs +1 -0
- package/src/SecondaryNavigation.ts +41 -12
- package/src/SecondaryNavigationItem.hbs +2 -1
- package/src/SecondaryNavigationItem.ts +31 -0
- package/src/SecondaryNavigationItemBase.ts +3 -0
- package/src/SecondaryNavigationSubItem.ts +0 -3
- package/src/generated/templates/BreadcrumbsTemplate.lit.ts +1 -1
- package/src/generated/templates/ButtonTemplate.lit.ts +12 -0
- package/src/generated/templates/PaginationTemplate.lit.ts +3 -3
- package/src/generated/templates/SearchTemplate.lit.ts +3 -3
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +2 -2
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/ListItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/Pagination.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/themes/Breadcrumbs.css +3 -0
- package/src/themes/Button.css +188 -61
- package/src/themes/ListItem.css +5 -1
- package/src/themes/MastheadShell.css +2 -1
- package/src/themes/Modal.css +2 -1
- package/src/themes/Pagination.css +5 -0
- package/src/themes/Search.css +8 -1
package/src/Pagination.hbs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
{{#if absoluteNavigation}}
|
|
5
5
|
<li class="udex-pagination__item--first udex-pagination__item">
|
|
6
6
|
<udex-button
|
|
7
|
-
?disabled="{{
|
|
7
|
+
?_aria-disabled="{{prevButtonDisabled}}"
|
|
8
8
|
accessible-name="{{firstPageAccessibleName}}"
|
|
9
9
|
size="Large"
|
|
10
10
|
icon="close-command-field"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
{{/if}}
|
|
16
16
|
<li class="udex-pagination__item--prev udex-pagination__item">
|
|
17
17
|
<udex-button
|
|
18
|
-
?disabled="{{
|
|
18
|
+
?_aria-disabled="{{prevButtonDisabled}}"
|
|
19
19
|
accessible-name="{{previousPageAccessibleName}}"
|
|
20
20
|
tooltip="{{previousBtnTooltip}}"
|
|
21
21
|
size="Large"
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
{{/if}}
|
|
48
48
|
<li class="udex-pagination__item--next udex-pagination__item">
|
|
49
49
|
<udex-button
|
|
50
|
-
?disabled="{{
|
|
50
|
+
?_aria-disabled="{{nextButtonDisabled}}"
|
|
51
51
|
tooltip="{{nextBtnTooltip}}"
|
|
52
52
|
accessible-name="{{nextPageAccessibleName}}"
|
|
53
53
|
size="Large"
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
{{#if absoluteNavigation}}
|
|
60
60
|
<li class="udex-pagination__item--last udex-pagination__item">
|
|
61
61
|
<udex-button
|
|
62
|
-
?disabled="{{
|
|
62
|
+
?_aria-disabled="{{nextButtonDisabled}}"
|
|
63
63
|
accessible-name="{{lastPageAccessibleName}}"
|
|
64
64
|
size="Large"
|
|
65
65
|
icon="open-command-field"
|
package/src/Pagination.ts
CHANGED
|
@@ -163,11 +163,11 @@ class UDExPagination extends UI5Element {
|
|
|
163
163
|
this.setupPages(this.pages);
|
|
164
164
|
}
|
|
165
165
|
|
|
166
|
-
get
|
|
166
|
+
get nextButtonDisabled(): boolean {
|
|
167
167
|
return this.currentPageIndex + 1 === this.pages;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
get
|
|
170
|
+
get prevButtonDisabled(): boolean {
|
|
171
171
|
return this.currentPageIndex === 0;
|
|
172
172
|
}
|
|
173
173
|
|
|
@@ -234,21 +234,27 @@ class UDExPagination extends UI5Element {
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
get previousPageAccessibleName(): string {
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
const currentPageText = `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}.`;
|
|
238
|
+
if (this.currentPageIndex === 0) {
|
|
239
|
+
return `${currentPageText} ${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}`;
|
|
240
|
+
}
|
|
241
|
+
return `${currentPageText}. ${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
|
|
239
242
|
}
|
|
240
243
|
|
|
241
244
|
get previousBtnTooltip(): string {
|
|
242
|
-
return !this.
|
|
245
|
+
return !this.prevButtonDisabled ? `${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}` : "";
|
|
243
246
|
}
|
|
244
247
|
|
|
245
248
|
get nextPageAccessibleName(): string {
|
|
246
|
-
|
|
247
|
-
|
|
249
|
+
const currentPageText = `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}.`;
|
|
250
|
+
if (this.pages && this.currentPageIndex === (this.pages - 1)) {
|
|
251
|
+
return `${currentPageText} ${UDExPagination.i18nBundle.getText(NEXT_PAGE)}`;
|
|
252
|
+
}
|
|
253
|
+
return `${currentPageText} ${UDExPagination.i18nBundle.getText(NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
|
|
248
254
|
}
|
|
249
255
|
|
|
250
256
|
get nextBtnTooltip(): string {
|
|
251
|
-
return !this.
|
|
257
|
+
return !this.nextButtonDisabled ? `${UDExPagination.i18nBundle.getText(NEXT_PAGE)}` : "";
|
|
252
258
|
}
|
|
253
259
|
|
|
254
260
|
get pagination(): Page[] {
|
package/src/PhoneNumberField.ts
CHANGED
package/src/Search.hbs
CHANGED
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
@click="{{handleInputClick}}"
|
|
74
74
|
/>
|
|
75
75
|
{{/if}}
|
|
76
|
-
{{#if
|
|
77
|
-
<span
|
|
76
|
+
{{#if open}}
|
|
77
|
+
<span aria-live="polite" aria-atomic="true" id="search-description" class="hidden" aria-hidden="true">{{suggestionsDescription}}</span>
|
|
78
78
|
{{/if}}
|
|
79
79
|
<div class="udex-search__icons">
|
|
80
80
|
{{#if isShowHomeResetButton}}
|
|
@@ -121,6 +121,7 @@
|
|
|
121
121
|
class="udex-search__icon"
|
|
122
122
|
aria-hidden="true"
|
|
123
123
|
accessible-name="{{accInfo.accessibleNameSearchIcon}}"
|
|
124
|
+
show-tooltip
|
|
124
125
|
name="search">
|
|
125
126
|
</ui5-icon>
|
|
126
127
|
{{/if}}
|
package/src/Search.ts
CHANGED
|
@@ -697,7 +697,6 @@ class UDExSearch extends UI5Element {
|
|
|
697
697
|
|
|
698
698
|
getTextWithSuggestion(text: string): string {
|
|
699
699
|
const escapedValue = this.escapeRegExp(this.value);
|
|
700
|
-
console.warn(escapedValue);
|
|
701
700
|
const search = new RegExp(escapedValue, "i");
|
|
702
701
|
return text.replace(search, "<b>$&</b>");
|
|
703
702
|
}
|
|
@@ -1278,7 +1277,7 @@ class UDExSearch extends UI5Element {
|
|
|
1278
1277
|
}
|
|
1279
1278
|
|
|
1280
1279
|
get suggestionsDescription(): string {
|
|
1281
|
-
return this.
|
|
1280
|
+
return !this.showNoResultMessage ? `${this.suggestedList.length} ${this._suggestionLabel}, ${this.recommendedList.length} ${this._recommendLabel}` : `${this.noResultMessage}`;
|
|
1282
1281
|
}
|
|
1283
1282
|
|
|
1284
1283
|
get tooltipInfo() {
|
|
@@ -151,7 +151,8 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
151
151
|
_mobileBtnExpanded = false;
|
|
152
152
|
|
|
153
153
|
_navItems!: Array<NavItem>;
|
|
154
|
-
_showMoreButton
|
|
154
|
+
_showMoreButton!: boolean;
|
|
155
|
+
_shouldFocusFirstItem: boolean = true;
|
|
155
156
|
_rootHolder!: HTMLElement | null | undefined;
|
|
156
157
|
_clickedNavItem!: UDExSecondaryNavigationItem;
|
|
157
158
|
_boundReflowItems: () => void;
|
|
@@ -164,7 +165,6 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
164
165
|
|
|
165
166
|
constructor() {
|
|
166
167
|
super();
|
|
167
|
-
this._showMoreButton = true;
|
|
168
168
|
this._boundReflowItems = this._handleResize.bind(this);
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -180,13 +180,6 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
180
180
|
ResizeHandler.deregister(this, this._boundReflowItems);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
_handleResize() {
|
|
184
|
-
this.reflowItems();
|
|
185
|
-
if (this._clickedNavItem && this.isDesktopScreen) {
|
|
186
|
-
this._clickedNavItem.closeDropdown();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
183
|
onInvalidation(changeInfo: ChangeInfo): void {
|
|
191
184
|
if (changeInfo.name === "navItems") {
|
|
192
185
|
this.reflowItems();
|
|
@@ -195,6 +188,12 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
195
188
|
|
|
196
189
|
onAfterRendering(): void {
|
|
197
190
|
this._rootHolder = this.rootHolder;
|
|
191
|
+
if (!this._overflowItems.length) {
|
|
192
|
+
this._showMoreButton = true;
|
|
193
|
+
}
|
|
194
|
+
if (this._shouldFocusFirstItem && this.isDesktopScreen) {
|
|
195
|
+
this.domNavItems[0]._tabIndex = "0";
|
|
196
|
+
}
|
|
198
197
|
this.handleOutsideClick();
|
|
199
198
|
}
|
|
200
199
|
|
|
@@ -202,6 +201,16 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
202
201
|
this._requestRender = !this._requestRender;
|
|
203
202
|
}
|
|
204
203
|
|
|
204
|
+
_handleResize() {
|
|
205
|
+
this.reflowItems();
|
|
206
|
+
if (this.isDesktopScreen) {
|
|
207
|
+
this.resetTabIndex();
|
|
208
|
+
}
|
|
209
|
+
if (this._clickedNavItem && this.isDesktopScreen) {
|
|
210
|
+
this._clickedNavItem.closeDropdown();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
205
214
|
reflowItems(): void {
|
|
206
215
|
const availableWidth = this.rootHolder.offsetWidth - (this.heading?.offsetWidth || 0) - (this.optionalButtons?.offsetWidth || 0);
|
|
207
216
|
const moreButtonWidth = this.getMoreButtonWidth();
|
|
@@ -252,9 +261,12 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
252
261
|
const item = e.target as UDExSecondaryNavigationItem;
|
|
253
262
|
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
254
263
|
const previousSelectIndex = currentSelectedIndex - 1;
|
|
264
|
+
const previousItem = this.domNavItems[previousSelectIndex];
|
|
255
265
|
if (currentSelectedIndex > 0) {
|
|
256
266
|
e.preventDefault();
|
|
257
|
-
this.domNavItems[
|
|
267
|
+
this.domNavItems[currentSelectedIndex]._tabIndex = "-1";
|
|
268
|
+
previousItem._tabIndex = "0";
|
|
269
|
+
previousItem?.focus();
|
|
258
270
|
}
|
|
259
271
|
}
|
|
260
272
|
|
|
@@ -263,9 +275,12 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
263
275
|
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
264
276
|
const lastItemIndex = this.domNavItems.length - 1;
|
|
265
277
|
const nextSelectIndex = currentSelectedIndex + 1;
|
|
278
|
+
const nextItem = this.domNavItems[nextSelectIndex];
|
|
266
279
|
if (nextSelectIndex < lastItemIndex) {
|
|
267
280
|
e.preventDefault();
|
|
268
|
-
this.domNavItems[
|
|
281
|
+
this.domNavItems[currentSelectedIndex]._tabIndex = "-1";
|
|
282
|
+
nextItem._tabIndex = "0";
|
|
283
|
+
nextItem.focus();
|
|
269
284
|
}
|
|
270
285
|
}
|
|
271
286
|
|
|
@@ -314,6 +329,8 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
314
329
|
}
|
|
315
330
|
|
|
316
331
|
this._clickedNavItem = clickedItem;
|
|
332
|
+
this._shouldFocusFirstItem = false;
|
|
333
|
+
this.setTabIndexById(_id);
|
|
317
334
|
this.closePrevDropdown(_id);
|
|
318
335
|
|
|
319
336
|
if (!subItems.length) {
|
|
@@ -410,7 +427,7 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
410
427
|
|
|
411
428
|
closePrevDropdown(clickedItemId: string): void {
|
|
412
429
|
this.domNavItems.forEach(item => {
|
|
413
|
-
if (
|
|
430
|
+
if (item.isOpen && item._id !== clickedItemId) {
|
|
414
431
|
item.closeDropdown();
|
|
415
432
|
}
|
|
416
433
|
});
|
|
@@ -420,6 +437,18 @@ class UDExSecondaryNavigation extends UI5Element {
|
|
|
420
437
|
return string ? JSON.parse(string) as T[] : [];
|
|
421
438
|
}
|
|
422
439
|
|
|
440
|
+
resetTabIndex(): void {
|
|
441
|
+
this.domNavItems.forEach((item, index) => {
|
|
442
|
+
item._tabIndex = index === 0 ? "0" : "-1";
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
setTabIndexById(id: string): void {
|
|
447
|
+
this.domNavItems.forEach(item => {
|
|
448
|
+
item._tabIndex = id === item._id ? "0" : "-1";
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
|
|
423
452
|
get domNavItems(): Array<UDExSecondaryNavigationItem> {
|
|
424
453
|
const items = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationItem>("[udex-secondary-navigation-item]");
|
|
425
454
|
return items ? Array.from(items) : [];
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
?active="{{isActive}}"
|
|
6
6
|
href="{{path}}"
|
|
7
7
|
target="{{target}}"
|
|
8
|
+
tabindex="{{_tabIndex}}"
|
|
8
9
|
aria-current="{{ariaCurrent}}"
|
|
9
10
|
@keydown="{{handleItemLinkKeyDown}}"
|
|
10
11
|
@click="{{fireNavItemClickEvent}}">
|
|
@@ -14,8 +15,8 @@
|
|
|
14
15
|
<button
|
|
15
16
|
class="udex-secondary-navigation__item"
|
|
16
17
|
role="{{itemRole}}"
|
|
17
|
-
tabindex="0"
|
|
18
18
|
?active="{{isActive}}"
|
|
19
|
+
tabindex="{{menuOpenerTabIndex}}"
|
|
19
20
|
aria-haspopup="{{hasNestedItems}}"
|
|
20
21
|
aria-expanded="{{isOpen}}"
|
|
21
22
|
aria-label="{{ariaLabel}}"
|
|
@@ -150,9 +150,20 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
150
150
|
@property({ type: Object })
|
|
151
151
|
_processedItems: Array<NavItem> = [];
|
|
152
152
|
|
|
153
|
+
/**
|
|
154
|
+
* Defines if item is mobile menu opener.
|
|
155
|
+
*
|
|
156
|
+
* @private
|
|
157
|
+
* @default false
|
|
158
|
+
*/
|
|
159
|
+
@property({ type: Boolean })
|
|
160
|
+
_isMobileMenuOpener!: boolean;
|
|
161
|
+
|
|
153
162
|
_dropdownHistory: Array<Array<NavItem>> = [];
|
|
154
163
|
_shouldFocusFirstSubItem!: boolean;
|
|
155
164
|
_subTitle!: string | undefined;
|
|
165
|
+
_shouldResetTabIndex!: boolean;
|
|
166
|
+
_shouldSetTabIndex!: boolean;
|
|
156
167
|
|
|
157
168
|
onAfterRendering(): void {
|
|
158
169
|
if (this.isLastItem && this.isOpen && !this._isMobileView) {
|
|
@@ -167,6 +178,16 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
167
178
|
if (this._isMobileView && this.isOpen) {
|
|
168
179
|
this.setDropdownHeight();
|
|
169
180
|
}
|
|
181
|
+
|
|
182
|
+
if (this._shouldSetTabIndex) {
|
|
183
|
+
this._tabIndex = "0";
|
|
184
|
+
this._shouldSetTabIndex = false;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (this._shouldResetTabIndex) {
|
|
188
|
+
this._tabIndex = "-1";
|
|
189
|
+
this._shouldResetTabIndex = false;
|
|
190
|
+
}
|
|
170
191
|
}
|
|
171
192
|
|
|
172
193
|
onBeforeRendering() : void {
|
|
@@ -195,6 +216,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
195
216
|
if (this.hasNestedItems) {
|
|
196
217
|
this.setDropdownItems();
|
|
197
218
|
this.isOpen = !this.isOpen;
|
|
219
|
+
this._shouldResetTabIndex = true;
|
|
198
220
|
this.onShouldFocusFirstSubItem();
|
|
199
221
|
}
|
|
200
222
|
|
|
@@ -203,6 +225,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
203
225
|
|
|
204
226
|
closeDropdown(): void {
|
|
205
227
|
this.isOpen = false;
|
|
228
|
+
this._shouldSetTabIndex = true;
|
|
206
229
|
}
|
|
207
230
|
|
|
208
231
|
handleItemLinkKeyDown(e: KeyboardEvent): void {
|
|
@@ -418,6 +441,14 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
|
|
|
418
441
|
return this.shadowRoot!.querySelector<HTMLElement>(".udex-secondary-navigation__dropdown")!;
|
|
419
442
|
}
|
|
420
443
|
|
|
444
|
+
get menuOpenerTabIndex(): string {
|
|
445
|
+
if (this._isMobileMenuOpener) {
|
|
446
|
+
return "0";
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
return this._tabIndex;
|
|
450
|
+
}
|
|
451
|
+
|
|
421
452
|
get isLastItem(): boolean {
|
|
422
453
|
return this._navItemsLength === this.index;
|
|
423
454
|
}
|
|
@@ -94,6 +94,9 @@ class UDExSecondaryNavigationItemBase extends UI5Element {
|
|
|
94
94
|
@property({ type: Boolean })
|
|
95
95
|
_isMobileView!: boolean;
|
|
96
96
|
|
|
97
|
+
@property({ type: String, defaultValue: "-1" })
|
|
98
|
+
_tabIndex!: string;
|
|
99
|
+
|
|
97
100
|
_handleResizeBound: ResizeObserverCallback;
|
|
98
101
|
|
|
99
102
|
constructor() {
|
|
@@ -79,9 +79,6 @@ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
|
|
|
79
79
|
@property({ type: Object, multiple: true })
|
|
80
80
|
nestedItems!: Array<NavItem>;
|
|
81
81
|
|
|
82
|
-
@property({ type: String, defaultValue: "-1" })
|
|
83
|
-
_tabIndex!: string;
|
|
84
|
-
|
|
85
82
|
static i18nBundle: any;
|
|
86
83
|
|
|
87
84
|
static async onDefine(): Promise<void> {
|
|
@@ -4,7 +4,7 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
4
4
|
import type Breadcrumbs from "../../Breadcrumbs.js";
|
|
5
5
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
6
|
|
|
7
|
-
function block0 (this: Breadcrumbs, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<nav class="udex-breadcrumbs ui5-breadcrumbs-root" aria-label="${ifDefined(this._accessibleNameText)}"><ol @focusin="${this._onfocusin}"><li class="
|
|
7
|
+
function block0 (this: Breadcrumbs, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<nav class="udex-breadcrumbs ui5-breadcrumbs-root" aria-label="${ifDefined(this._accessibleNameText)}"><ol @focusin="${this._onfocusin}"><li class="ui5-breadcrumbs-dropdown-arrow-link-wrapper"><${scopeTag("udex-link", tags, suffix)} @ui5-click="${ifDefined(this._toggleDropdown)}" class="udex-breadcrumbs__trigger ${ifDefined(this._triggerClass)}" accessible-role="button" aria-label="${ifDefined(this._dropdownArrowAccessibleNameText)}" icon="slim-arrow-down" icon-placement="Start" aria-haspopup="true"></${scopeTag("udex-link", tags, suffix)}></li>${ repeat(this._linksData, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block1.call(this, context, tags, suffix, item, index)) }</ol></nav>` : html`<nav class="udex-breadcrumbs ui5-breadcrumbs-root" aria-label="${ifDefined(this._accessibleNameText)}"><ol @focusin="${this._onfocusin}"><li class="ui5-breadcrumbs-dropdown-arrow-link-wrapper"><udex-link @ui5-click="${ifDefined(this._toggleDropdown)}" class="udex-breadcrumbs__trigger ${ifDefined(this._triggerClass)}" accessible-role="button" aria-label="${ifDefined(this._dropdownArrowAccessibleNameText)}" icon="slim-arrow-down" icon-placement="Start" aria-haspopup="true"></udex-link></li>${ repeat(this._linksData, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block1.call(this, context, tags, suffix, item, index)) }</ol></nav>`;}
|
|
8
8
|
function block1 (this: Breadcrumbs, context: UI5Element, tags: string[], suffix: string | undefined, item: any, index: number) { return html`<li class="udex-breadcrumbs__link-wrapper ui5-breadcrumbs-link-wrapper" id="${ifDefined(item._id)}-link-wrapper">${ !item._isCurrentPageItem ? block2.call(this, context, tags, suffix, item, index) : undefined }</li>`;}
|
|
9
9
|
function block2 (this: Breadcrumbs, context: UI5Element, tags: string[], suffix: string | undefined, item: any, index: number) { return suffix ? html`<span class="udex-breadcrumbs__separator" aria-hidden="true"></span><${scopeTag("udex-link", tags, suffix)} @ui5-click="${ifDefined(this._onLinkPress)}" class="udex-breadcrumbs__item" href="${ifDefined(item.href)}" target="${ifDefined(item.target)}" id="${ifDefined(item._id)}-link" accessible-name="${ifDefined(item._accessibleNameText)}" data-ui5-stable="${ifDefined(item.stableDomRef)}">${ifDefined(item.innerText)}</${scopeTag("udex-link", tags, suffix)}>` : html`<span class="udex-breadcrumbs__separator" aria-hidden="true"></span><udex-link @ui5-click="${ifDefined(this._onLinkPress)}" class="udex-breadcrumbs__item" href="${ifDefined(item.href)}" target="${ifDefined(item.target)}" id="${ifDefined(item._id)}-link" accessible-name="${ifDefined(item._accessibleNameText)}" data-ui5-stable="${ifDefined(item.stableDomRef)}">${ifDefined(item.innerText)}</udex-link>`;}
|
|
10
10
|
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/* eslint no-unused-vars: 0 */
|
|
2
|
+
import { html, svg, repeat, classMap, styleMap, ifDefined, unsafeHTML, scopeTag } from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
3
|
+
import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
4
|
+
import type Button from "../../Button.js";
|
|
5
|
+
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
|
+
|
|
7
|
+
function block0 (this: Button, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<button type="button" class="ui5-button-root" ?disabled="${this.disabled}" aria-disabled="${ifDefined(this._ariaDisabled)}" data-sap-focus-ref @focusout=${this._onfocusout} @focusin=${this._onfocusin} @click=${this._onclick} @mousedown=${this._onmousedown} @mouseup=${this._onmouseup} @keydown=${this._onkeydown} @keyup=${this._onkeyup} @touchstart="${this._ontouchstart}" @touchend="${this._ontouchend}" tabindex=${ifDefined(this.tabIndexValue)} aria-expanded="${ifDefined(this.accessibilityAttributes.expanded)}" aria-controls="${ifDefined(this.accessibilityAttributes.controls)}" aria-haspopup="${ifDefined(this._hasPopup)}" aria-label="${ifDefined(this.ariaLabelText)}" aria-describedby="${ifDefined(this.ariaDescribedbyText)}" title="${ifDefined(this.buttonTitle)}" part="button" role="${ifDefined(this.buttonAccessibleRole)}"><div class="udex-button-content">${ this.icon ? block1.call(this, context, tags, suffix) : undefined }<span id="${ifDefined(this._id)}-content" class="ui5-button-text"><bdi><slot></slot></bdi></span>${ this.hasButtonType ? block2.call(this, context, tags, suffix) : undefined }</div></button>`;}
|
|
8
|
+
function block1 (this: Button, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-icon", tags, suffix)} class="ui5-button-icon" name="${ifDefined(this.icon)}" accessible-role="${ifDefined(this.iconRole)}" part="icon" ?show-tooltip=${this.showIconTooltip}></${scopeTag("ui5-icon", tags, suffix)}>` : html`<ui5-icon class="ui5-button-icon" name="${ifDefined(this.icon)}" accessible-role="${ifDefined(this.iconRole)}" part="icon" ?show-tooltip=${this.showIconTooltip}></ui5-icon>`;}
|
|
9
|
+
function block2 (this: Button, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<span id="ui5-button-hiddenText-type" aria-hidden="true" class="ui5-hidden-text">${ifDefined(this.buttonTypeText)}</span>`;}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export default block0;
|
|
@@ -5,12 +5,12 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
5
5
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
6
|
|
|
7
7
|
function block0 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return html`${ this.pages ? block1.call(this, context, tags, suffix) : undefined } `;}
|
|
8
|
-
function block1 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<nav class="${ifDefined(this.paginationClass)}" role="navigation" aria-label="${ifDefined(this.paginationAccessibleName)}"><ul class="udex-pagination__list">${ this.absoluteNavigation ? block2.call(this, context, tags, suffix) : undefined }<li class="udex-pagination__item--prev udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?disabled="${this.
|
|
9
|
-
function block2 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<li class="udex-pagination__item--first udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?disabled="${this.
|
|
8
|
+
function block1 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<nav class="${ifDefined(this.paginationClass)}" role="navigation" aria-label="${ifDefined(this.paginationAccessibleName)}"><ul class="udex-pagination__list">${ this.absoluteNavigation ? block2.call(this, context, tags, suffix) : undefined }<li class="udex-pagination__item--prev udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?_aria-disabled="${ifDefined(this.prevButtonDisabled)}" accessible-name="${ifDefined(this.previousPageAccessibleName)}" tooltip="${ifDefined(this.previousBtnTooltip)}" size="Large" icon="navigation-left-arrow" design="Tertiary" @click="${this.setPrevPage}"></${scopeTag("udex-button", tags, suffix)}></li>${ this.typeFull ? block3.call(this, context, tags, suffix) : undefined }${ this.typeShort ? block5.call(this, context, tags, suffix) : undefined }<li class="udex-pagination__item--next udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?_aria-disabled="${ifDefined(this.nextButtonDisabled)}" tooltip="${ifDefined(this.nextBtnTooltip)}" accessible-name="${ifDefined(this.nextPageAccessibleName)}" size="Large" icon="navigation-right-arrow" design="Tertiary" @click="${this.setNextPage}"></${scopeTag("udex-button", tags, suffix)}></li>${ this.absoluteNavigation ? block6.call(this, context, tags, suffix) : undefined }</ul></nav>` : html`<nav class="${ifDefined(this.paginationClass)}" role="navigation" aria-label="${ifDefined(this.paginationAccessibleName)}"><ul class="udex-pagination__list">${ this.absoluteNavigation ? block2.call(this, context, tags, suffix) : undefined }<li class="udex-pagination__item--prev udex-pagination__item"><udex-button ?_aria-disabled="${ifDefined(this.prevButtonDisabled)}" accessible-name="${ifDefined(this.previousPageAccessibleName)}" tooltip="${ifDefined(this.previousBtnTooltip)}" size="Large" icon="navigation-left-arrow" design="Tertiary" @click="${this.setPrevPage}"></udex-button></li>${ this.typeFull ? block3.call(this, context, tags, suffix) : undefined }${ this.typeShort ? block5.call(this, context, tags, suffix) : undefined }<li class="udex-pagination__item--next udex-pagination__item"><udex-button ?_aria-disabled="${ifDefined(this.nextButtonDisabled)}" tooltip="${ifDefined(this.nextBtnTooltip)}" accessible-name="${ifDefined(this.nextPageAccessibleName)}" size="Large" icon="navigation-right-arrow" design="Tertiary" @click="${this.setNextPage}"></udex-button></li>${ this.absoluteNavigation ? block6.call(this, context, tags, suffix) : undefined }</ul></nav>`;}
|
|
9
|
+
function block2 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<li class="udex-pagination__item--first udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?_aria-disabled="${ifDefined(this.prevButtonDisabled)}" accessible-name="${ifDefined(this.firstPageAccessibleName)}" size="Large" icon="close-command-field" design="Tertiary" @click="${this.setFirstPage}"></${scopeTag("udex-button", tags, suffix)}></li>` : html`<li class="udex-pagination__item--first udex-pagination__item"><udex-button ?_aria-disabled="${ifDefined(this.prevButtonDisabled)}" accessible-name="${ifDefined(this.firstPageAccessibleName)}" size="Large" icon="close-command-field" design="Tertiary" @click="${this.setFirstPage}"></udex-button></li>`;}
|
|
10
10
|
function block3 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return html`${ repeat(this.pagination, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block4.call(this, context, tags, suffix, item, index)) }`;}
|
|
11
11
|
function block4 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined, item: any, index: number) { return html`<li class="udex-pagination__item"><a class="udex-pagination__page" href="#" aria-label="${ifDefined(item.accessibleName)}" @click="${this.onPageClick}" ?active="${item.active}" aria-current="${ifDefined(item.ariaCurrent)}" index="${ifDefined(item.index)}"><span class="udex-pagination__page--value">${ifDefined(item.value)}</span></a></li>`;}
|
|
12
12
|
function block5 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<li class="udex-pagination__item udex-pagination__item--short" tabindex="-1" aria-label="${ifDefined(this.paginationShortAccessibleName)}"><span class="udex-pagination__item--short-value">${ifDefined(this.shortTextStart)}</span><span class="udex-pagination__item--short-separator">${ifDefined(this.shortTextSeparator)}</span><span class="udex-pagination__item--short-value">${ifDefined(this.shortTextEnd)}</span></li>`;}
|
|
13
|
-
function block6 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<li class="udex-pagination__item--last udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?disabled="${this.
|
|
13
|
+
function block6 (this: Pagination, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<li class="udex-pagination__item--last udex-pagination__item"><${scopeTag("udex-button", tags, suffix)} ?_aria-disabled="${ifDefined(this.nextButtonDisabled)}" accessible-name="${ifDefined(this.lastPageAccessibleName)}" size="Large" icon="open-command-field" design="Tertiary" @click="${this.setLastPage}"></${scopeTag("udex-button", tags, suffix)}></li>` : html`<li class="udex-pagination__item--last udex-pagination__item"><udex-button ?_aria-disabled="${ifDefined(this.nextButtonDisabled)}" accessible-name="${ifDefined(this.lastPageAccessibleName)}" size="Large" icon="open-command-field" design="Tertiary" @click="${this.setLastPage}"></udex-button></li>`;}
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
export default block0;
|
|
@@ -4,16 +4,16 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
4
4
|
import type Search from "../../Search.js";
|
|
5
5
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
6
|
|
|
7
|
-
function block0 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<div class="udex-search__root ${ifDefined(this.searchClasses)}">${ this.isShowSearchHomePrefix ? block1.call(this, context, tags, suffix) : undefined }<form role="search" class="udex-search__container ${ifDefined(this.focusClasses)}${ifDefined(this.isNotEmptyClass)}">${ this.labelAnimationDisabled ? block2.call(this, context, tags, suffix) : block3.call(this, context, tags, suffix) }${ this.
|
|
7
|
+
function block0 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<div class="udex-search__root ${ifDefined(this.searchClasses)}">${ this.isShowSearchHomePrefix ? block1.call(this, context, tags, suffix) : undefined }<form role="search" class="udex-search__container ${ifDefined(this.focusClasses)}${ifDefined(this.isNotEmptyClass)}">${ this.labelAnimationDisabled ? block2.call(this, context, tags, suffix) : block3.call(this, context, tags, suffix) }${ this.open ? block5.call(this, context, tags, suffix) : undefined }<div class="udex-search__icons">${ this.isShowHomeResetButton ? block6.call(this, context, tags, suffix) : undefined }${ this.isShowResetButton ? block7.call(this, context, tags, suffix) : undefined }${ this.isVoiceButton ? block8.call(this, context, tags, suffix) : undefined }${ this.showNonInteractiveButton ? block9.call(this, context, tags, suffix) : undefined }${ this.showSubmitHomeButton ? block10.call(this, context, tags, suffix) : undefined }${ this.showSubmitStandardButton ? block11.call(this, context, tags, suffix) : undefined }</div></form></div>`;}
|
|
8
8
|
function block1 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<div class="udex-search__prefix ${ifDefined(this.prefixWrapperClasses)}"><button type="button" role="combobox" aria-expanded="${ifDefined(this._prefixDropdownExpanded)}" aria-label="${ifDefined(this.labelPrefix)}" aria-haspopup="true" aria-controls="udex-search-prefix" class="udex-search__prefix-button" @click="${this.handleDropdownClick}"><span class="udex-search__prefix-label">${ifDefined(this.labelPrefix)}</span><${scopeTag("ui5-icon", tags, suffix)} class="udex-search__prefix-icon" name="slim-arrow-down"></${scopeTag("ui5-icon", tags, suffix)}></button><${scopeTag("ui5-popover", tags, suffix)} id="udex-search-prefix" class="${ifDefined(this.prefixPopoverClasses)}" hide-arrow placement-type="Bottom" horizontal-align="Left" style="${styleMap(this.prefixPopoverStyles)}" @after-close="${this.handleAfterClosePrefixPopover}"><slot></slot></${scopeTag("ui5-popover", tags, suffix)}></div>` : html`<div class="udex-search__prefix ${ifDefined(this.prefixWrapperClasses)}"><button type="button" role="combobox" aria-expanded="${ifDefined(this._prefixDropdownExpanded)}" aria-label="${ifDefined(this.labelPrefix)}" aria-haspopup="true" aria-controls="udex-search-prefix" class="udex-search__prefix-button" @click="${this.handleDropdownClick}"><span class="udex-search__prefix-label">${ifDefined(this.labelPrefix)}</span><ui5-icon class="udex-search__prefix-icon" name="slim-arrow-down"></ui5-icon></button><ui5-popover id="udex-search-prefix" class="${ifDefined(this.prefixPopoverClasses)}" hide-arrow placement-type="Bottom" horizontal-align="Left" style="${styleMap(this.prefixPopoverStyles)}" @after-close="${this.handleAfterClosePrefixPopover}"><slot></slot></ui5-popover></div>`;}
|
|
9
9
|
function block2 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<input role="searchbox" id="search-input" type="search" name="search" class="udex-search__field" autocomplete="off" aria-autocomplete="list" aria-haspopup="${ifDefined(this.getAriaHasPopup)}" aria-label="${ifDefined(this.accInfo.ariaLabel)}" aria-describedby="search-description" placeholder="${ifDefined(this.effectivePlaceholder)}" .value="${ifDefined(this.value)}" @input="${this.handleSearchChange}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @focusout="${this.handleFocusout}" @blur="${this.handleBlur}" @click="${this.handleInputClick}" />`;}
|
|
10
10
|
function block3 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`${ this.label ? block4.call(this, context, tags, suffix) : undefined }<input role="searchbox" id="search-input" type="search" name="search" class="udex-search__field" autocomplete="off" aria-autocomplete="list" aria-label="${ifDefined(this.accInfo.ariaLabel)}" aria-describedby="search-description" aria-haspopup="${ifDefined(this.getAriaHasPopup)}" .value="${ifDefined(this.value)}" @input="${this.handleSearchChange}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @focusout="${this.handleFocusout}" @blur="${this.handleBlur}" @click="${this.handleInputClick}" />`;}
|
|
11
11
|
function block4 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<label for="search-input" class="${ifDefined(this.labelClasses)}">${ifDefined(this.label)}</label>`;}
|
|
12
|
-
function block5 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<span
|
|
12
|
+
function block5 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<span aria-live="polite" aria-atomic="true" id="search-description" class="hidden" aria-hidden="true">${ifDefined(this.suggestionsDescription)}</span>`;}
|
|
13
13
|
function block6 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-button", tags, suffix)} id="reset-button" class="udex-search__button udex-search__reset-button" design="Default" tooltip="${ifDefined(this.tooltipInfo.tooltipResetButton)}" @click="${this.onReset}" @keydown="${this.handleKeyDownReset}"><${scopeTag("ui5-icon", tags, suffix)} class="udex-search__button-icon" accessible-name="${ifDefined(this.accInfo.accessibleNameResetIcon)}" accessible-role="presentation" name="decline"></${scopeTag("ui5-icon", tags, suffix)}></${scopeTag("ui5-button", tags, suffix)}>` : html`<ui5-button id="reset-button" class="udex-search__button udex-search__reset-button" design="Default" tooltip="${ifDefined(this.tooltipInfo.tooltipResetButton)}" @click="${this.onReset}" @keydown="${this.handleKeyDownReset}"><ui5-icon class="udex-search__button-icon" accessible-name="${ifDefined(this.accInfo.accessibleNameResetIcon)}" accessible-role="presentation" name="decline"></ui5-icon></ui5-button>`;}
|
|
14
14
|
function block7 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("udex-control-button", tags, suffix)} id="reset-button" class="udex-search__reset-button" design="Default" tooltip="${ifDefined(this.tooltipInfo.tooltipResetButton)}" icon="decline" size="Large" accessible-name="${ifDefined(this.accInfo.accessibleNameResetIcon)}" @click="${this.onReset}" @keydown="${this.handleKeyDownReset}"></${scopeTag("udex-control-button", tags, suffix)}>` : html`<udex-control-button id="reset-button" class="udex-search__reset-button" design="Default" tooltip="${ifDefined(this.tooltipInfo.tooltipResetButton)}" icon="decline" size="Large" accessible-name="${ifDefined(this.accInfo.accessibleNameResetIcon)}" @click="${this.onReset}" @keydown="${this.handleKeyDownReset}"></udex-control-button>`;}
|
|
15
15
|
function block8 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-button", tags, suffix)} id="voice-button" class="udex-search__button udex-search__voice-button ${ifDefined(this.voiceActiveClass)}" design="Default" icon="microphone" tooltip="${ifDefined(this.tooltipInfo.tooltipVoiceButton)}" @click="${this.onVoice}"></${scopeTag("ui5-button", tags, suffix)}>` : html`<ui5-button id="voice-button" class="udex-search__button udex-search__voice-button ${ifDefined(this.voiceActiveClass)}" design="Default" icon="microphone" tooltip="${ifDefined(this.tooltipInfo.tooltipVoiceButton)}" @click="${this.onVoice}"></ui5-button>`;}
|
|
16
|
-
function block9 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-icon", tags, suffix)} class="udex-search__icon" aria-hidden="true" accessible-name="${ifDefined(this.accInfo.accessibleNameSearchIcon)}" name="search"></${scopeTag("ui5-icon", tags, suffix)}>` : html`<ui5-icon class="udex-search__icon" aria-hidden="true" accessible-name="${ifDefined(this.accInfo.accessibleNameSearchIcon)}" name="search"></ui5-icon>`;}
|
|
16
|
+
function block9 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-icon", tags, suffix)} class="udex-search__icon" aria-hidden="true" accessible-name="${ifDefined(this.accInfo.accessibleNameSearchIcon)}" show-tooltip name="search"></${scopeTag("ui5-icon", tags, suffix)}>` : html`<ui5-icon class="udex-search__icon" aria-hidden="true" accessible-name="${ifDefined(this.accInfo.accessibleNameSearchIcon)}" show-tooltip name="search"></ui5-icon>`;}
|
|
17
17
|
function block10 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-button", tags, suffix)} id="submit-button" class="udex-search__button udex-search__submit-button ${ifDefined(this.searchButtonActiveClass)}" design="Default" icon="search" tooltip="${ifDefined(this.tooltipInfo.tooltipSubmitButton)}" @click="${this.onSubmit}"></${scopeTag("ui5-button", tags, suffix)}>` : html`<ui5-button id="submit-button" class="udex-search__button udex-search__submit-button ${ifDefined(this.searchButtonActiveClass)}" design="Default" icon="search" tooltip="${ifDefined(this.tooltipInfo.tooltipSubmitButton)}" @click="${this.onSubmit}"></ui5-button>`;}
|
|
18
18
|
function block11 (this: Search, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("udex-control-button", tags, suffix)} id="submit-button" class="udex-search__submit-button" size="Large" design="Default" icon="search" tooltip="${ifDefined(this.tooltipInfo.tooltipSubmitButton)}" @click="${this.onSubmit}"></${scopeTag("udex-control-button", tags, suffix)}>` : html`<udex-control-button id="submit-button" class="udex-search__submit-button" size="Large" design="Default" icon="search" tooltip="${ifDefined(this.tooltipInfo.tooltipSubmitButton)}" @click="${this.onSubmit}"></udex-control-button>`;}
|
|
19
19
|
|
|
@@ -5,8 +5,8 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
5
5
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
6
|
|
|
7
7
|
function block0 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`${ this.isLink ? block1.call(this, context, tags, suffix) : block2.call(this, context, tags, suffix) } `;}
|
|
8
|
-
function block1 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<a class="udex-secondary-navigation__item" role="${ifDefined(this.menuItemRole)}" ?active="${this.isActive}" href="${ifDefined(this.path)}" target="${ifDefined(this.target)}" aria-current="${ifDefined(this.ariaCurrent)}" @keydown="${this.handleItemLinkKeyDown}" @click="${this.fireNavItemClickEvent}">${ifDefined(this.itemLabel)}</a>`;}
|
|
9
|
-
function block2 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<button class="udex-secondary-navigation__item" role="${ifDefined(this.itemRole)}"
|
|
8
|
+
function block1 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<a class="udex-secondary-navigation__item" role="${ifDefined(this.menuItemRole)}" ?active="${this.isActive}" href="${ifDefined(this.path)}" target="${ifDefined(this.target)}" tabindex="${ifDefined(this._tabIndex)}" aria-current="${ifDefined(this.ariaCurrent)}" @keydown="${this.handleItemLinkKeyDown}" @click="${this.fireNavItemClickEvent}">${ifDefined(this.itemLabel)}</a>`;}
|
|
9
|
+
function block2 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<button class="udex-secondary-navigation__item" role="${ifDefined(this.itemRole)}" ?active="${this.isActive}" tabindex="${ifDefined(this.menuOpenerTabIndex)}" aria-haspopup="${ifDefined(this.hasNestedItems)}" aria-expanded="${ifDefined(this.isOpen)}" aria-label="${ifDefined(this.ariaLabel)}" @keydown="${this.handleItemEnterOrSpaceKeys}" @click="${this.openDropdown}"><span class="udex-secondary-navigation__item-text-wrap">${ifDefined(this.itemLabel)}${ this._subTitle ? block3.call(this, context, tags, suffix) : undefined }${ this.hasNestedItems ? block4.call(this, context, tags, suffix) : undefined }</span></button>${ this.isOpen ? block5.call(this, context, tags, suffix) : undefined }`;}
|
|
10
10
|
function block3 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<span class="udex-secondary-navigation__item-sub-title">${ifDefined(this._subTitle)}</span>`;}
|
|
11
11
|
function block4 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<${scopeTag("ui5-icon", tags, suffix)} class="udex-secondary-navigation__item-icon" name="slim-arrow-down"></${scopeTag("ui5-icon", tags, suffix)}>` : html`<ui5-icon class="udex-secondary-navigation__item-icon" name="slim-arrow-down"></ui5-icon>`;}
|
|
12
12
|
function block5 (this: SecondaryNavigationItem, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<div class="udex-secondary-navigation__dropdown"><ul role="menu" class="udex-secondary-navigation__dropdown-list" @keydown="${this.handleSubItemKeyDown}">${ repeat(this._processedItems, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block6.call(this, context, tags, suffix, item, index)) }</ul><div @keydown="${this.handleButtonsEscKey}"><slot></slot></div></div>`;}
|
|
@@ -4,7 +4,7 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
4
4
|
import type SecondaryNavigation from "../../SecondaryNavigation.js";
|
|
5
5
|
import type { ClassMapValue } from "@ui5/webcomponents-base/dist/types.js";
|
|
6
6
|
|
|
7
|
-
function block0 (this: SecondaryNavigation, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<div class="${ifDefined(this.rootClass)}">${ this.hasBreadcrumbsSlot ? block1.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__holder">${ this.title.length ? block2.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__wrap"><ul role="menubar" class="udex-secondary-navigation__list" @keydown="${this.handleKeyDown}">${ repeat(this.visibleItems, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block5.call(this, context, tags, suffix, item, index)) }${ this._showMoreButton ? block6.call(this, context, tags, suffix) : undefined }</ul>${ this.hasDesktopButtonsSlot ? block7.call(this, context, tags, suffix) : undefined }</div></div><${scopeTag("udex-secondary-navigation-item", tags, suffix)} @keydown="${this.handleKeyDown}" _max-height="${ifDefined(this.maxDropdownHeight)}" class="udex-secondary-navigation__mobile-nav" role="button" aria-label="${ifDefined(this.mobileMenuOpenerAriaLabel)}" label="${ifDefined(this.title)}" mobile-link-title="${ifDefined(this.title)}" @ui5-sub-item-click="${ifDefined(this.handleSubItemClick)}" .subItems="${ifDefined(this.parsedItems)}">${ this.hasMobileButtonsSlot ? block8.call(this, context, tags, suffix) : undefined }</${scopeTag("udex-secondary-navigation-item", tags, suffix)}></div> ` : html`<div class="${ifDefined(this.rootClass)}">${ this.hasBreadcrumbsSlot ? block1.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__holder">${ this.title.length ? block2.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__wrap"><ul role="menubar" class="udex-secondary-navigation__list" @keydown="${this.handleKeyDown}">${ repeat(this.visibleItems, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block5.call(this, context, tags, suffix, item, index)) }${ this._showMoreButton ? block6.call(this, context, tags, suffix) : undefined }</ul>${ this.hasDesktopButtonsSlot ? block7.call(this, context, tags, suffix) : undefined }</div></div><udex-secondary-navigation-item @keydown="${this.handleKeyDown}" _max-height="${ifDefined(this.maxDropdownHeight)}" class="udex-secondary-navigation__mobile-nav" role="button" aria-label="${ifDefined(this.mobileMenuOpenerAriaLabel)}" label="${ifDefined(this.title)}" mobile-link-title="${ifDefined(this.title)}" @ui5-sub-item-click="${ifDefined(this.handleSubItemClick)}" .subItems="${ifDefined(this.parsedItems)}">${ this.hasMobileButtonsSlot ? block8.call(this, context, tags, suffix) : undefined }</udex-secondary-navigation-item></div> `;}
|
|
7
|
+
function block0 (this: SecondaryNavigation, context: UI5Element, tags: string[], suffix: string | undefined) { return suffix ? html`<div class="${ifDefined(this.rootClass)}">${ this.hasBreadcrumbsSlot ? block1.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__holder">${ this.title.length ? block2.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__wrap"><ul role="menubar" class="udex-secondary-navigation__list" @keydown="${this.handleKeyDown}">${ repeat(this.visibleItems, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block5.call(this, context, tags, suffix, item, index)) }${ this._showMoreButton ? block6.call(this, context, tags, suffix) : undefined }</ul>${ this.hasDesktopButtonsSlot ? block7.call(this, context, tags, suffix) : undefined }</div></div><${scopeTag("udex-secondary-navigation-item", tags, suffix)} @keydown="${this.handleKeyDown}" _max-height="${ifDefined(this.maxDropdownHeight)}" class="udex-secondary-navigation__mobile-nav" role="button" aria-label="${ifDefined(this.mobileMenuOpenerAriaLabel)}" label="${ifDefined(this.title)}" mobile-link-title="${ifDefined(this.title)}" @ui5-sub-item-click="${ifDefined(this.handleSubItemClick)}" _is-mobile-menu-opener .subItems="${ifDefined(this.parsedItems)}">${ this.hasMobileButtonsSlot ? block8.call(this, context, tags, suffix) : undefined }</${scopeTag("udex-secondary-navigation-item", tags, suffix)}></div> ` : html`<div class="${ifDefined(this.rootClass)}">${ this.hasBreadcrumbsSlot ? block1.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__holder">${ this.title.length ? block2.call(this, context, tags, suffix) : undefined }<div class="udex-secondary-navigation__wrap"><ul role="menubar" class="udex-secondary-navigation__list" @keydown="${this.handleKeyDown}">${ repeat(this.visibleItems, (item, index) => (item as typeof item & {_id?: any})._id || index, (item, index: number) => block5.call(this, context, tags, suffix, item, index)) }${ this._showMoreButton ? block6.call(this, context, tags, suffix) : undefined }</ul>${ this.hasDesktopButtonsSlot ? block7.call(this, context, tags, suffix) : undefined }</div></div><udex-secondary-navigation-item @keydown="${this.handleKeyDown}" _max-height="${ifDefined(this.maxDropdownHeight)}" class="udex-secondary-navigation__mobile-nav" role="button" aria-label="${ifDefined(this.mobileMenuOpenerAriaLabel)}" label="${ifDefined(this.title)}" mobile-link-title="${ifDefined(this.title)}" @ui5-sub-item-click="${ifDefined(this.handleSubItemClick)}" _is-mobile-menu-opener .subItems="${ifDefined(this.parsedItems)}">${ this.hasMobileButtonsSlot ? block8.call(this, context, tags, suffix) : undefined }</udex-secondary-navigation-item></div> `;}
|
|
8
8
|
function block1 (this: SecondaryNavigation, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<div class="udex-secondary-navigation__breadcrumbs"><slot name="breadcrumbs"></slot></div>`;}
|
|
9
9
|
function block2 (this: SecondaryNavigation, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<div class="udex-secondary-navigation__heading">${ this.titleHref.length ? block3.call(this, context, tags, suffix) : block4.call(this, context, tags, suffix) }</div>`;}
|
|
10
10
|
function block3 (this: SecondaryNavigation, context: UI5Element, tags: string[], suffix: string | undefined) { return html`<a class="udex-secondary-navigation__title" href="${ifDefined(this.titleHref)}">${ifDefined(this.title)}</a>`;}
|
|
@@ -7,7 +7,7 @@ import defaultTheme from "./sap_horizon/parameters-bundle.css.js";
|
|
|
7
7
|
registerThemePropertiesLoader("@ui5/webcomponents-theming", "sap_horizon", async () => defaultThemeBase);
|
|
8
8
|
registerThemePropertiesLoader("@sapudex/web-components", "sap_horizon", async () => defaultTheme);
|
|
9
9
|
|
|
10
|
-
const styleData: StyleData = {packageName:"@sapudex/web-components",fileName:"themes/Breadcrumbs.css.ts",content:`:host{--udex-breadcrumbs-item-color: var(--sapNeutralElementColor, var(--udexColorGrey6, #5B738B ));--udex-breadcrumbs-item-font-size: var(--udexTypographyBodyXXSFontSize, 12px);--udex-breadcrumbs-margin: 0}.udex-breadcrumbs{font-family:var(--sapFontFamily);white-space:nowrap;outline:none;margin:var(--udex-breadcrumbs-margin)}.udex-breadcrumbs>ol{margin:0;padding:var(--udexSpacer2, 2px) 0;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:flex}.udex-breadcrumbs>ol>li{display:inline-flex;align-items:baseline}.udex-breadcrumbs__separator:after{content:"/";padding:0 .125rem;color:var(--udex-breadcrumbs-item-color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--udex-breadcrumbs-item-font-size);line-height:18px}:host([separators="DoubleSlash"]) .udex-breadcrumbs__separator:after{content:"//"}:host([separators="BackSlash"]) .udex-breadcrumbs__separator:after{content:"\\\\"}:host([separators="DoubleBackSlash"]) .udex-breadcrumbs__separator:after{content:"\\\\\\\\"}:host([separators="GreaterThan"]) .udex-breadcrumbs__separator:after{content:">"}:host([separators="DoubleGreaterThan"]) .udex-breadcrumbs__separator:after{content:">>"}.udex-breadcrumbs__trigger,.udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon],.udex-breadcrumbs__item[focused],.udex-breadcrumbs__item{color:var(--udex-breadcrumbs-item-color);--sapLink_Hover_Color: var(--udex-breadcrumbs-item-color);--sapFontSize: var(--udex-breadcrumbs-item-font-size);--sapLinkColor: var(--udex-breadcrumbs-item-color);--sapLink_Active_Color: var(--udex-breadcrumbs-item-color);--udex-link-text-decoration: none;position:relative}.udex-breadcrumbs__item{line-height:18px}.ui5-breadcrumbs-dropdown-arrow-link-wrapper{display:flex}.udex-breadcrumbs__trigger{border:none;background:none;padding:0;cursor:pointer;height:12px;width:12px;margin:auto}.udex-breadcrumbs__trigger:focus{outline:solid var(--udexSpacer2, 2px) var(--sapContent_FocusColor, #0040B0);border-radius:var(--udexRadiusXXS, 2px)}.udex-breadcrumbs__trigger--opened [ui5-icon]{transform:rotate(180deg)}.udex-breadcrumbs__trigger,[ui5-link].udex-breadcrumbs__item{text-decoration:none;display:inline-flex}[ui5-link]:not([icon]).udex-breadcrumbs__item:hover:after{content:"";position:absolute;height:.0625rem;left:.125rem;right:.125rem;bottom:.125rem;background-color:var(--udex-breadcrumbs-item-color)}.udex-breadcrumbs .udex-breadcrumbs__arrow-wrapper [ui5-icon]:before{content:""}.udex-breadcrumbs .udex-breadcrumbs__arrow-wrapper [ui5-icon]{padding-left:0}.udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon]:after,.udex-breadcrumbs__arrow-wrapper:hover [ui5-icon]:after{border-bottom:0}
|
|
10
|
+
const styleData: StyleData = {packageName:"@sapudex/web-components",fileName:"themes/Breadcrumbs.css.ts",content:`:host{--udex-breadcrumbs-item-color: var(--sapNeutralElementColor, var(--udexColorGrey6, #5B738B ));--udex-breadcrumbs-item-font-size: var(--udexTypographyBodyXXSFontSize, 12px);--udex-breadcrumbs-margin: 0}.udex-breadcrumbs{font-family:var(--sapFontFamily);white-space:nowrap;outline:none;margin:var(--udex-breadcrumbs-margin)}.udex-breadcrumbs>ol{margin:0;padding:var(--udexSpacer2, 2px) 0;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:flex}.udex-breadcrumbs>ol>li{display:inline-flex;align-items:baseline}.udex-breadcrumbs__separator:after{content:"/";padding:0 .125rem;color:var(--udex-breadcrumbs-item-color);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--udex-breadcrumbs-item-font-size);line-height:18px}:host([separators="DoubleSlash"]) .udex-breadcrumbs__separator:after{content:"//"}:host([separators="BackSlash"]) .udex-breadcrumbs__separator:after{content:"\\\\"}:host([separators="DoubleBackSlash"]) .udex-breadcrumbs__separator:after{content:"\\\\\\\\"}:host([separators="GreaterThan"]) .udex-breadcrumbs__separator:after{content:">"}:host([separators="DoubleGreaterThan"]) .udex-breadcrumbs__separator:after{content:">>"}.udex-breadcrumbs__trigger,.udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon],.udex-breadcrumbs__item[focused],.udex-breadcrumbs__item{color:var(--udex-breadcrumbs-item-color);--sapLink_Hover_Color: var(--udex-breadcrumbs-item-color);--sapFontSize: var(--udex-breadcrumbs-item-font-size);--sapLinkColor: var(--udex-breadcrumbs-item-color);--sapLink_Active_Color: var(--udex-breadcrumbs-item-color);--udex-link-text-decoration: none;position:relative}.udex-breadcrumbs__item{line-height:18px}.ui5-breadcrumbs-dropdown-arrow-link-wrapper{display:flex}.udex-breadcrumbs__trigger{border:none;background:none;padding:0;cursor:pointer;height:12px;width:12px;margin:auto;--udex-link-icon-width: 12px;--udex-link-icon-height: 12px;--udex-link-line-height: 12px}.udex-breadcrumbs__trigger:focus{outline:solid var(--udexSpacer2, 2px) var(--sapContent_FocusColor, #0040B0);border-radius:var(--udexRadiusXXS, 2px)}.udex-breadcrumbs__trigger--opened [ui5-icon]{transform:rotate(180deg)}.udex-breadcrumbs__trigger,[ui5-link].udex-breadcrumbs__item{text-decoration:none;display:inline-flex}[ui5-link]:not([icon]).udex-breadcrumbs__item:hover:after{content:"";position:absolute;height:.0625rem;left:.125rem;right:.125rem;bottom:.125rem;background-color:var(--udex-breadcrumbs-item-color)}.udex-breadcrumbs .udex-breadcrumbs__arrow-wrapper [ui5-icon]:before{content:""}.udex-breadcrumbs .udex-breadcrumbs__arrow-wrapper [ui5-icon]{padding-left:0}.udex-breadcrumbs__arrow-wrapper [ui5-link][focused] [ui5-icon]:after,.udex-breadcrumbs__arrow-wrapper:hover [ui5-icon]:after{border-bottom:0}
|
|
11
11
|
`};
|
|
12
12
|
export default styleData;
|
|
13
13
|
|