@ui5/webcomponents-fiori 2.12.0-rc.0 → 2.12.0-rc.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/CHANGELOG.md +31 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/DynamicPage.d.ts +2 -0
- package/dist/DynamicPage.js +6 -0
- package/dist/DynamicPage.js.map +1 -1
- package/dist/DynamicPageTemplate.js +1 -1
- package/dist/DynamicPageTemplate.js.map +1 -1
- package/dist/DynamicPageTitle.d.ts +1 -0
- package/dist/DynamicPageTitle.js +3 -0
- package/dist/DynamicPageTitle.js.map +1 -1
- package/dist/DynamicPageTitleTemplate.js +1 -1
- package/dist/DynamicPageTitleTemplate.js.map +1 -1
- package/dist/NavigationMenuItem.d.ts +2 -3
- package/dist/NavigationMenuItem.js +1 -14
- package/dist/NavigationMenuItem.js.map +1 -1
- package/dist/NavigationMenuTemplate.js +1 -1
- package/dist/NavigationMenuTemplate.js.map +1 -1
- package/dist/ShellBar.d.ts +11 -6
- package/dist/ShellBar.js +86 -52
- package/dist/ShellBar.js.map +1 -1
- package/dist/SideNavigation.d.ts +3 -1
- package/dist/SideNavigation.js +19 -4
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationPopoverTemplate.js +1 -1
- package/dist/SideNavigationPopoverTemplate.js.map +1 -1
- package/dist/UserMenuItem.js +2 -2
- package/dist/UserMenuItem.js.map +1 -1
- package/dist/css/themes/DynamicPage.css +1 -1
- package/dist/css/themes/DynamicPageHeader.css +1 -1
- package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
- package/dist/css/themes/DynamicPageTitle.css +1 -1
- package/dist/css/themes/FlexibleColumnLayout.css +1 -1
- package/dist/css/themes/MediaGallery.css +1 -1
- package/dist/css/themes/MediaGalleryItem.css +1 -1
- package/dist/css/themes/NavigationMenu.css +1 -1
- package/dist/css/themes/NavigationMenuItem.css +1 -1
- package/dist/css/themes/NotificationListGroupItem.css +1 -1
- package/dist/css/themes/NotificationListItem.css +1 -1
- package/dist/css/themes/NotificationListItemBase.css +1 -1
- package/dist/css/themes/NotificationStateIcon.css +1 -1
- package/dist/css/themes/Page.css +1 -1
- package/dist/css/themes/ProductSwitchItem.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SearchField.css +1 -1
- package/dist/css/themes/SearchItem.css +1 -1
- package/dist/css/themes/ShellBar.css +1 -1
- package/dist/css/themes/ShellBarPopover.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationItemBase.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/Timeline.css +1 -1
- package/dist/css/themes/TimelineGroupItem.css +1 -1
- package/dist/css/themes/TimelineItem.css +1 -1
- package/dist/css/themes/UploadCollection.css +1 -1
- package/dist/css/themes/UploadCollectionItem.css +1 -1
- package/dist/css/themes/UserMenu.css +1 -1
- package/dist/css/themes/UserSettingsItem.css +1 -1
- package/dist/css/themes/ViewSettingsDialog.css +1 -1
- package/dist/css/themes/Wizard.css +1 -1
- package/dist/css/themes/WizardTab.css +1 -1
- package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
- package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
- package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
- package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
- package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPage.css.js +1 -1
- package/dist/generated/themes/DynamicPage.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
- package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
- package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
- package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
- package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
- package/dist/generated/themes/MediaGallery.css.js +1 -1
- package/dist/generated/themes/MediaGallery.css.js.map +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
- package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenu.css.js +1 -1
- package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
- package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
- package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListItem.css.js +1 -1
- package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
- package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
- package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
- package/dist/generated/themes/Page.css.d.ts +1 -1
- package/dist/generated/themes/Page.css.js +1 -1
- package/dist/generated/themes/Page.css.js.map +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
- package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +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/SearchField.css.d.ts +1 -1
- package/dist/generated/themes/SearchField.css.js +1 -1
- package/dist/generated/themes/SearchField.css.js.map +1 -1
- package/dist/generated/themes/SearchItem.css.d.ts +1 -1
- package/dist/generated/themes/SearchItem.css.js +1 -1
- package/dist/generated/themes/SearchItem.css.js.map +1 -1
- package/dist/generated/themes/ShellBar.css.d.ts +1 -1
- package/dist/generated/themes/ShellBar.css.js +1 -1
- package/dist/generated/themes/ShellBar.css.js.map +1 -1
- package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
- package/dist/generated/themes/ShellBarPopover.css.js +1 -1
- package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
- package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Timeline.css.d.ts +1 -1
- package/dist/generated/themes/Timeline.css.js +1 -1
- package/dist/generated/themes/Timeline.css.js.map +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
- package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
- package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
- package/dist/generated/themes/TimelineItem.css.js +1 -1
- package/dist/generated/themes/TimelineItem.css.js.map +1 -1
- package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
- package/dist/generated/themes/UploadCollection.css.js +1 -1
- package/dist/generated/themes/UploadCollection.css.js.map +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
- package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
- package/dist/generated/themes/UserMenu.css.d.ts +1 -1
- package/dist/generated/themes/UserMenu.css.js +1 -1
- package/dist/generated/themes/UserMenu.css.js.map +1 -1
- package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js +1 -1
- package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
- package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
- package/dist/generated/themes/Wizard.css.d.ts +1 -1
- package/dist/generated/themes/Wizard.css.js +1 -1
- package/dist/generated/themes/Wizard.css.js.map +1 -1
- package/dist/generated/themes/WizardTab.css.d.ts +1 -1
- package/dist/generated/themes/WizardTab.css.js +1 -1
- package/dist/generated/themes/WizardTab.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
- package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
- package/dist/web-types.json +1 -1
- package/package.json +8 -8
- package/src/DynamicPageTemplate.tsx +2 -2
- package/src/DynamicPageTitleTemplate.tsx +1 -1
- package/src/NavigationMenuTemplate.tsx +0 -1
- package/src/SideNavigationPopoverTemplate.tsx +1 -0
- package/src/themes/ShellBar.css +0 -2
- package/src/themes/WizardTab.css +1 -0
package/dist/ShellBar.js
CHANGED
|
@@ -16,6 +16,7 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
|
|
|
16
16
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
17
17
|
import { isSpace, isEnter, isLeft, isRight, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
18
18
|
import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
|
|
19
|
+
import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
|
|
19
20
|
import ListItemStandard from "@ui5/webcomponents/dist/ListItemStandard.js";
|
|
20
21
|
import List from "@ui5/webcomponents/dist/List.js";
|
|
21
22
|
import Popover from "@ui5/webcomponents/dist/Popover.js";
|
|
@@ -182,6 +183,9 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
182
183
|
this._lastOffsetWidth = 0;
|
|
183
184
|
this._observableContent = [];
|
|
184
185
|
this._autoRestoreSearchField = false;
|
|
186
|
+
this._onSearchOpenBound = this._onSearchOpen.bind(this);
|
|
187
|
+
this._onSearchCloseBound = this._onSearchClose.bind(this);
|
|
188
|
+
this._onSearchBound = this._onSearch.bind(this);
|
|
185
189
|
this._hiddenIcons = [];
|
|
186
190
|
this._isInitialRendering = true;
|
|
187
191
|
this._overflowNotifications = null;
|
|
@@ -197,21 +201,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
197
201
|
menuPopover.open = true;
|
|
198
202
|
}
|
|
199
203
|
};
|
|
200
|
-
this.onSearchOpen = () => {
|
|
201
|
-
if (isPhone()) {
|
|
202
|
-
this.setSearchState(true);
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
this.onSearchClose = () => {
|
|
206
|
-
if (isPhone()) {
|
|
207
|
-
this.setSearchState(false);
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
this.onSearch = () => {
|
|
211
|
-
if (!isPhone() && !this.search?.value) {
|
|
212
|
-
this.setSearchState(!this.showSearchField);
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
204
|
this._handleResize = throttle(() => {
|
|
216
205
|
this.menuPopover = this._getMenuPopover();
|
|
217
206
|
this.overflowPopover = this._getOverflowPopover();
|
|
@@ -224,6 +213,33 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
224
213
|
}
|
|
225
214
|
}, RESIZE_THROTTLE_RATE);
|
|
226
215
|
}
|
|
216
|
+
_onSearchOpen(e) {
|
|
217
|
+
if (e.target !== this.search) {
|
|
218
|
+
this._detachSearchFieldListeners(e.target);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
if (isPhone()) {
|
|
222
|
+
this.setSearchState(true);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
_onSearchClose(e) {
|
|
226
|
+
if (e.target !== this.search) {
|
|
227
|
+
this._detachSearchFieldListeners(e.target);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (isPhone()) {
|
|
231
|
+
this.setSearchState(false);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
_onSearch(e) {
|
|
235
|
+
if (e.target !== this.search) {
|
|
236
|
+
this._detachSearchFieldListeners(e.target);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
if (!isPhone() && !this.search?.value) {
|
|
240
|
+
this.setSearchState(!this.showSearchField);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
227
243
|
_updateSearchFieldState() {
|
|
228
244
|
const spacerWidth = this.shadowRoot.querySelector(".ui5-shellbar-spacer") ? this.shadowRoot.querySelector(".ui5-shellbar-spacer").getBoundingClientRect().width : 0;
|
|
229
245
|
const searchFieldWidth = this.domCalculatedValues("--_ui5_shellbar_search_field_width");
|
|
@@ -241,11 +257,27 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
241
257
|
}
|
|
242
258
|
}
|
|
243
259
|
_onKeyDown(e) {
|
|
244
|
-
|
|
260
|
+
if (!isLeft(e) && !isRight(e)) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const domRef = this.getDomRef();
|
|
264
|
+
if (!domRef) {
|
|
265
|
+
// If the component is not rendered yet, we should not handle the keydown event
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
245
268
|
const activeElement = getActiveElement();
|
|
269
|
+
if (!activeElement) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
// Check if the active elements should "steal" the navigation
|
|
273
|
+
if (this._allowChildNavigation(activeElement, e)) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const items = getTabbableElements(domRef).filter(el => this._isVisible(el));
|
|
246
277
|
const currentIndex = items.findIndex(el => el === activeElement);
|
|
247
|
-
if
|
|
248
|
-
|
|
278
|
+
// Only handle arrow navigation if the focus is on a ShellBar item
|
|
279
|
+
if (currentIndex !== -1) {
|
|
280
|
+
e.preventDefault();
|
|
249
281
|
// Focus navigation based on the key pressed
|
|
250
282
|
if (isLeft(e)) {
|
|
251
283
|
this._focusPreviousItem(items, currentIndex);
|
|
@@ -255,6 +287,23 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
255
287
|
}
|
|
256
288
|
}
|
|
257
289
|
}
|
|
290
|
+
_allowChildNavigation(activeElement, e) {
|
|
291
|
+
if (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA") {
|
|
292
|
+
return this._allowInputNavigation(activeElement, e);
|
|
293
|
+
}
|
|
294
|
+
return false; // Default to false for other elements
|
|
295
|
+
}
|
|
296
|
+
_allowInputNavigation(inputElement, e) {
|
|
297
|
+
const cursorPosition = inputElement.selectionStart || 0;
|
|
298
|
+
const textLength = inputElement.value.length;
|
|
299
|
+
// Allow internal navigation if cursor is not at the boundaries
|
|
300
|
+
if ((isLeft(e) && cursorPosition > 0)
|
|
301
|
+
|| (isRight(e) && cursorPosition < textLength)) {
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
// Let ShellBar handle navigation if at boundaries
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
258
307
|
_focusNextItem(items, currentIndex) {
|
|
259
308
|
if (currentIndex < items.length - 1) {
|
|
260
309
|
(items[currentIndex + 1]).focus(); // Focus the next element
|
|
@@ -269,24 +318,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
269
318
|
const style = getComputedStyle(element);
|
|
270
319
|
return style.display !== "none" && style.visibility !== "hidden" && element.offsetWidth > 0 && element.offsetHeight > 0;
|
|
271
320
|
}
|
|
272
|
-
_getNavigableContent() {
|
|
273
|
-
const elements = [
|
|
274
|
-
...this.startButton,
|
|
275
|
-
...this.logo,
|
|
276
|
-
...this.shadowRoot.querySelectorAll(".ui5-shellbar-logo"),
|
|
277
|
-
...this.shadowRoot.querySelectorAll(".ui5-shellbar-logo-area"),
|
|
278
|
-
...this.shadowRoot.querySelectorAll(".ui5-shellbar-menu-button"),
|
|
279
|
-
...this.contentItems,
|
|
280
|
-
...this._getRightChildItems(),
|
|
281
|
-
];
|
|
282
|
-
return elements.map((element) => {
|
|
283
|
-
const component = element;
|
|
284
|
-
if (component.isUI5Element) {
|
|
285
|
-
return component.getFocusDomRef();
|
|
286
|
-
}
|
|
287
|
-
return element;
|
|
288
|
-
}).filter(el => !!el);
|
|
289
|
-
}
|
|
290
321
|
_getRightChildItems() {
|
|
291
322
|
return [
|
|
292
323
|
...this.searchField,
|
|
@@ -295,13 +326,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
295
326
|
...this.shadowRoot.querySelectorAll(".ui5-shellbar-items-for-arrow-nav"),
|
|
296
327
|
];
|
|
297
328
|
}
|
|
298
|
-
_getVisibleAndInteractiveItems() {
|
|
299
|
-
const items = this._getNavigableContent();
|
|
300
|
-
const visibleAndInteractiveItems = items.filter(item => {
|
|
301
|
-
return this._isVisible(item) && item.tabIndex === 0;
|
|
302
|
-
});
|
|
303
|
-
return visibleAndInteractiveItems;
|
|
304
|
-
}
|
|
305
329
|
_menuItemPress(e) {
|
|
306
330
|
const shouldContinue = this.fireDecoratorEvent("menu-item-click", {
|
|
307
331
|
item: e.detail.item,
|
|
@@ -377,6 +401,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
377
401
|
else {
|
|
378
402
|
this.search.collapsed = !this.showSearchField;
|
|
379
403
|
}
|
|
404
|
+
this._detachSearchFieldListeners(this.search);
|
|
405
|
+
this._attachSearchFieldListeners(this.search);
|
|
380
406
|
}
|
|
381
407
|
}
|
|
382
408
|
/**
|
|
@@ -481,24 +507,32 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
481
507
|
}
|
|
482
508
|
onEnterDOM() {
|
|
483
509
|
ResizeHandler.register(this, this._handleResize);
|
|
484
|
-
if (isSelfCollapsibleSearch(this.search)) {
|
|
485
|
-
this.search.addEventListener("ui5-open", this.onSearchOpen);
|
|
486
|
-
this.search.addEventListener("ui5-close", this.onSearchClose);
|
|
487
|
-
this.search.addEventListener("ui5-search", this.onSearch);
|
|
488
|
-
}
|
|
489
510
|
if (isDesktop()) {
|
|
490
511
|
this.setAttribute("desktop", "");
|
|
491
512
|
}
|
|
513
|
+
this._attachSearchFieldListeners(this.search);
|
|
492
514
|
}
|
|
493
515
|
onExitDOM() {
|
|
494
516
|
this.contentItemsObserver.disconnect();
|
|
495
517
|
this._observableContent = [];
|
|
496
518
|
ResizeHandler.deregister(this, this._handleResize);
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
519
|
+
this._detachSearchFieldListeners(this.search);
|
|
520
|
+
}
|
|
521
|
+
_attachSearchFieldListeners(searchField) {
|
|
522
|
+
if (!searchField) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
searchField.addEventListener("ui5-open", this._onSearchOpenBound);
|
|
526
|
+
searchField.addEventListener("ui5-close", this._onSearchCloseBound);
|
|
527
|
+
searchField.addEventListener("ui5-search", this._onSearchBound);
|
|
528
|
+
}
|
|
529
|
+
_detachSearchFieldListeners(searchField) {
|
|
530
|
+
if (!searchField) {
|
|
531
|
+
return;
|
|
501
532
|
}
|
|
533
|
+
searchField.removeEventListener("ui5-open", this._onSearchOpenBound);
|
|
534
|
+
searchField.removeEventListener("ui5-close", this._onSearchCloseBound);
|
|
535
|
+
searchField.removeEventListener("ui5-search", this._onSearchBound);
|
|
502
536
|
}
|
|
503
537
|
_handleSearchIconPress() {
|
|
504
538
|
const searchButtonRef = this.shadowRoot.querySelector(".ui5-shellbar-search-button");
|