@ui5/webcomponents-fiori 2.26.0 → 2.27.0-rc.1
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 +25 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/FlexibleColumnLayout.d.ts +1 -0
- package/dist/FlexibleColumnLayout.js +3 -0
- package/dist/FlexibleColumnLayout.js.map +1 -1
- package/dist/FlexibleColumnLayoutTemplate.js +3 -3
- package/dist/FlexibleColumnLayoutTemplate.js.map +1 -1
- package/dist/SearchItemGroup.d.ts +2 -0
- package/dist/SearchItemGroup.js +2 -0
- package/dist/SearchItemGroup.js.map +1 -1
- package/dist/SideNavigation.d.ts +4 -1
- package/dist/SideNavigation.js +72 -23
- package/dist/SideNavigation.js.map +1 -1
- package/dist/UserMenu.js +1 -0
- package/dist/UserMenu.js.map +1 -1
- package/dist/UserMenuItemTemplate.d.ts +1 -1
- package/dist/UserMenuItemTemplate.js +51 -1
- package/dist/UserMenuItemTemplate.js.map +1 -1
- package/dist/UserMenuTemplate.js +2 -2
- package/dist/UserMenuTemplate.js.map +1 -1
- package/dist/UserSettingsAppearanceViewGroup.d.ts +2 -0
- package/dist/UserSettingsAppearanceViewGroup.js +2 -0
- package/dist/UserSettingsAppearanceViewGroup.js.map +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/UserMenu.css +1 -1
- package/dist/css/themes/UserMenuItem.css +1 -1
- package/dist/custom-elements-internal.json +33 -33
- package/dist/custom-elements.json +30 -30
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/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/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/UserMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/UserMenuItem.css.js +1 -1
- package/dist/generated/themes/UserMenuItem.css.js.map +1 -1
- package/dist/vscode.html-custom-data.json +2 -2
- package/dist/web-types.json +19 -3
- package/package.json +7 -7
- package/src/FlexibleColumnLayoutTemplate.tsx +3 -2
- package/src/UserMenuItemTemplate.tsx +148 -2
- package/src/UserMenuTemplate.tsx +2 -2
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +8 -0
- package/src/i18n/messagebundle_bg.properties +8 -0
- package/src/i18n/messagebundle_ca.properties +8 -0
- package/src/i18n/messagebundle_cnr.properties +8 -0
- package/src/i18n/messagebundle_cs.properties +8 -0
- package/src/i18n/messagebundle_cy.properties +8 -0
- package/src/i18n/messagebundle_da.properties +8 -0
- package/src/i18n/messagebundle_de.properties +8 -0
- package/src/i18n/messagebundle_el.properties +8 -0
- package/src/i18n/messagebundle_en.properties +0 -210
- package/src/i18n/messagebundle_en_GB.properties +8 -0
- package/src/i18n/messagebundle_en_US_sappsd.properties +8 -0
- package/src/i18n/messagebundle_en_US_saptrc.properties +8 -0
- package/src/i18n/messagebundle_es.properties +8 -0
- package/src/i18n/messagebundle_es_MX.properties +8 -0
- package/src/i18n/messagebundle_et.properties +8 -0
- package/src/i18n/messagebundle_fi.properties +8 -0
- package/src/i18n/messagebundle_fr.properties +8 -0
- package/src/i18n/messagebundle_fr_CA.properties +8 -0
- package/src/i18n/messagebundle_hi.properties +8 -0
- package/src/i18n/messagebundle_hr.properties +8 -0
- package/src/i18n/messagebundle_hu.properties +8 -0
- package/src/i18n/messagebundle_id.properties +8 -0
- package/src/i18n/messagebundle_it.properties +8 -0
- package/src/i18n/messagebundle_iw.properties +8 -0
- package/src/i18n/messagebundle_ja.properties +8 -0
- package/src/i18n/messagebundle_kk.properties +8 -0
- package/src/i18n/messagebundle_ko.properties +8 -0
- package/src/i18n/messagebundle_lt.properties +8 -0
- package/src/i18n/messagebundle_lv.properties +8 -0
- package/src/i18n/messagebundle_mk.properties +8 -0
- package/src/i18n/messagebundle_ms.properties +8 -0
- package/src/i18n/messagebundle_nl.properties +8 -0
- package/src/i18n/messagebundle_no.properties +8 -0
- package/src/i18n/messagebundle_pl.properties +8 -0
- package/src/i18n/messagebundle_pt.properties +8 -0
- package/src/i18n/messagebundle_pt_PT.properties +8 -0
- package/src/i18n/messagebundle_ro.properties +8 -0
- package/src/i18n/messagebundle_ru.properties +8 -0
- package/src/i18n/messagebundle_sh.properties +8 -0
- package/src/i18n/messagebundle_sk.properties +8 -0
- package/src/i18n/messagebundle_sl.properties +8 -0
- package/src/i18n/messagebundle_sr.properties +8 -0
- package/src/i18n/messagebundle_sv.properties +8 -0
- package/src/i18n/messagebundle_th.properties +8 -0
- package/src/i18n/messagebundle_tr.properties +8 -0
- package/src/i18n/messagebundle_uk.properties +8 -0
- package/src/i18n/messagebundle_vi.properties +8 -0
- package/src/i18n/messagebundle_zh_CN.properties +8 -0
- package/src/i18n/messagebundle_zh_TW.properties +8 -0
- package/src/themes/SideNavigation.css +8 -0
- package/src/themes/SideNavigationGroup.css +1 -9
- package/src/themes/UserMenu.css +21 -2
- package/src/themes/UserMenuItem.css +6 -3
package/dist/SideNavigation.js
CHANGED
|
@@ -347,19 +347,13 @@ let SideNavigation = SideNavigation_1 = class SideNavigation extends UI5Element
|
|
|
347
347
|
return null;
|
|
348
348
|
}
|
|
349
349
|
const overflowItem = this._overflowItem;
|
|
350
|
-
const flexibleContentDomRef = domRef.querySelector(".ui5-sn-flexible");
|
|
351
350
|
if (!overflowItem) {
|
|
352
351
|
return null;
|
|
353
352
|
}
|
|
354
353
|
overflowItem.classList.add("ui5-sn-item-hidden");
|
|
355
354
|
const overflowItems = this.overflowItems;
|
|
356
|
-
let itemsHeight =
|
|
357
|
-
|
|
358
|
-
return sum;
|
|
359
|
-
}
|
|
360
|
-
itemRef.classList.remove("ui5-sn-item-hidden");
|
|
361
|
-
return sum + itemRef.offsetHeight;
|
|
362
|
-
}, 0);
|
|
355
|
+
let itemsHeight = this._calculateItemsHeight(overflowItems);
|
|
356
|
+
const flexibleContentDomRef = domRef.querySelector(".ui5-sn-flexible");
|
|
363
357
|
const { paddingTop, paddingBottom } = window.getComputedStyle(flexibleContentDomRef);
|
|
364
358
|
const listHeight = flexibleContentDomRef?.offsetHeight - parseInt(paddingTop) - parseInt(paddingBottom);
|
|
365
359
|
if (itemsHeight <= listHeight) {
|
|
@@ -367,34 +361,89 @@ let SideNavigation = SideNavigation_1 = class SideNavigation extends UI5Element
|
|
|
367
361
|
}
|
|
368
362
|
overflowItem.classList.remove("ui5-sn-item-hidden");
|
|
369
363
|
itemsHeight = overflowItem.offsetHeight;
|
|
370
|
-
const
|
|
364
|
+
const navItems = overflowItems.filter(isInstanceOfSideNavigationSelectableItemBase);
|
|
365
|
+
const selectedItem = navItems.find(item => item._selected);
|
|
366
|
+
itemsHeight += this._getSelectedItemHeight(overflowItems, selectedItem) + 1; // +1 for sub-pixel rounding
|
|
367
|
+
itemsHeight += this._getLastSeparatorHeight(navItems, overflowItems);
|
|
368
|
+
this._updateItemsVisibility(overflowItems, selectedItem, itemsHeight, listHeight);
|
|
369
|
+
this._flexibleItemNavigation._init();
|
|
370
|
+
}
|
|
371
|
+
_calculateItemsHeight(overflowItems) {
|
|
372
|
+
return overflowItems.reduce((sum, itemRef) => {
|
|
373
|
+
if (!itemRef) {
|
|
374
|
+
return sum;
|
|
375
|
+
}
|
|
376
|
+
itemRef.classList.remove("ui5-sn-item-hidden");
|
|
377
|
+
let itemDomRef = itemRef;
|
|
378
|
+
if (isInstanceOfSideNavigationItemBase(itemRef) && itemRef.getDomRef()) {
|
|
379
|
+
itemDomRef = itemRef.getDomRef();
|
|
380
|
+
}
|
|
381
|
+
const { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);
|
|
382
|
+
return sum + itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);
|
|
383
|
+
}, 0);
|
|
384
|
+
}
|
|
385
|
+
_getSelectedItemHeight(overflowItems, selectedItem) {
|
|
386
|
+
if (!selectedItem) {
|
|
387
|
+
return 0;
|
|
388
|
+
}
|
|
389
|
+
let height = 0;
|
|
371
390
|
if (selectedItem) {
|
|
372
391
|
const selectedItemDomRef = selectedItem.getDomRef();
|
|
373
392
|
if (selectedItemDomRef) {
|
|
374
393
|
const { marginTop, marginBottom } = window.getComputedStyle(selectedItemDomRef);
|
|
375
|
-
|
|
394
|
+
height += selectedItemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);
|
|
395
|
+
}
|
|
396
|
+
const indexOf = overflowItems.indexOf(selectedItem);
|
|
397
|
+
const itemAfterSelected = overflowItems[indexOf + 1];
|
|
398
|
+
if (itemAfterSelected && !isInstanceOfSideNavigationItemBase(itemAfterSelected)) {
|
|
399
|
+
height += itemAfterSelected.offsetHeight;
|
|
376
400
|
}
|
|
377
401
|
}
|
|
378
|
-
|
|
402
|
+
return height;
|
|
403
|
+
}
|
|
404
|
+
_getLastSeparatorHeight(navItems, overflowItems) {
|
|
405
|
+
const lastNonSelectedItem = navItems.findLast(item => !item._selected);
|
|
406
|
+
if (!lastNonSelectedItem) {
|
|
407
|
+
return 0;
|
|
408
|
+
}
|
|
409
|
+
const indexOf = overflowItems.indexOf(lastNonSelectedItem);
|
|
410
|
+
const nextSeparator = overflowItems[indexOf + 1];
|
|
411
|
+
if (nextSeparator && !isInstanceOfSideNavigationItemBase(nextSeparator)) {
|
|
412
|
+
return nextSeparator.offsetHeight;
|
|
413
|
+
}
|
|
414
|
+
return 0;
|
|
415
|
+
}
|
|
416
|
+
_updateItemsVisibility(overflowItems, selectedItem, itemsHeight, listHeight) {
|
|
417
|
+
for (let i = 0; i < overflowItems.length; i++) {
|
|
418
|
+
const item = overflowItems[i];
|
|
379
419
|
if (!item || item === selectedItem) {
|
|
380
|
-
|
|
420
|
+
// eslint-disable-next-line no-continue
|
|
421
|
+
continue;
|
|
381
422
|
}
|
|
382
423
|
let itemDomRef;
|
|
383
|
-
if (isInstanceOfSideNavigationItemBase(item)
|
|
424
|
+
if (isInstanceOfSideNavigationItemBase(item)) {
|
|
384
425
|
itemDomRef = item.getDomRef();
|
|
385
426
|
}
|
|
386
|
-
|
|
387
|
-
|
|
427
|
+
if (!itemDomRef) {
|
|
428
|
+
// eslint-disable-next-line no-continue
|
|
429
|
+
continue;
|
|
388
430
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
431
|
+
const { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);
|
|
432
|
+
itemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);
|
|
433
|
+
// if the next item is a separator, the item and the separator
|
|
434
|
+
// should be hidden together, so we need to add the separator height to the itemsHeight
|
|
435
|
+
const nextItem = overflowItems[i + 1];
|
|
436
|
+
let nextItemDomRef;
|
|
437
|
+
if (nextItem && !isInstanceOfSideNavigationItemBase(nextItem)) {
|
|
438
|
+
nextItemDomRef = nextItem;
|
|
439
|
+
itemsHeight += nextItemDomRef.offsetHeight;
|
|
440
|
+
i++;
|
|
395
441
|
}
|
|
396
|
-
|
|
397
|
-
|
|
442
|
+
if (itemsHeight > listHeight) {
|
|
443
|
+
item.classList.add("ui5-sn-item-hidden");
|
|
444
|
+
nextItemDomRef?.classList.add("ui5-sn-item-hidden");
|
|
445
|
+
}
|
|
446
|
+
}
|
|
398
447
|
}
|
|
399
448
|
_findFocusedItem(items) {
|
|
400
449
|
return this._getFocusableItems(items).find(item => item.forcedTabIndex === "0");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot, ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { createMultiInstanceChecker } from \"@ui5/webcomponents-base/dist/util/createMultiInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport { isInstanceOfSideNavigationSelectableItemBase } from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItemBase } from \"./SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItem } from \"./SideNavigationItem.js\";\nimport { isInstanceOfSideNavigationGroup } from \"./SideNavigationGroup.js\";\nimport type SideNavigationItem from \"./SideNavigationItem.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type SideNavigationGroup from \"./SideNavigationGroup.js\";\nimport SideNavigationTemplate from \"./SideNavigationTemplate.js\";\n\nimport {\n\tSIDE_NAVIGATION_POPOVER_HIDDEN_TEXT,\n\tSIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME,\n\tSIDE_NAVIGATION_FLEXIBLE_LIST_LABEL,\n\tSIDE_NAVIGATION_FIXED_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\nimport SideNavigationPopoverCss from \"./generated/themes/SideNavigationPopover.css.js\";\n\nconst PAGE_UP_DOWN_SIZE = 10;\nconst SCREEN_WIDTH_BREAKPOINT = 600;\n\ntype SideNavigationPopoverContents = {\n\titem: SideNavigationItem,\n\tsubItems: Array<SideNavigationSubItem>,\n};\n\ntype SideNavigationSelectionChangeEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype SideNavigationItemClickEventDetail = {\n\titem: SideNavigationSelectableItemBase,\n};\n\ntype SideNavigationItemToggleEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype PopupSideNavigationItem = SideNavigationItem & { associatedItem: SideNavigationSelectableItemBase };\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `SideNavigation` is used as a standard menu in applications.\n * It consists of three containers: header (top-aligned), main navigation section (top-aligned) and the secondary section (bottom-aligned).\n *\n * - The header is meant for displaying user related information - profile data, avatar, etc.\n * - The main navigation section is related to the user's current work context.\n * - The secondary section is mostly used to link additional information that may be of interest (legal information, developer communities, external help, contact information and so on).\n *\n * ### Usage\n *\n * Use the available `ui5-side-navigation-group`, `ui5-side-navigation-item`\n * and `ui5-side-navigation-sub-item` components to build your menu.\n * The items can consist of text only or an icon with text. The use or non-use of icons must be consistent for all items on one level.\n * You must not combine entries with and without icons on the same level. We strongly recommend that you do not use icons on the second level.\n *\n * The `ui5-side-navigation` component is designed to be used within a `ui5-navigation-layout` component to ensure an optimal user experience.\n *\n * Using it standalone may not match the intended design and functionality.\n * For example, the side navigation may not exhibit the correct behavior on smaller screens.\n * Additionally, the padding of the `ui5-shellbar` will not match the padding of the side navigation.\n *\n * ### Keyboard Handling\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigation.js\"`\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationGroup.js\";` (for `ui5-side-navigation-group`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";` (for `ui5-side-navigation-item`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js\";` (for `ui5-side-navigation-sub-item`)\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.8\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-side-navigation\",\n\tfastNavigation: true,\n\trenderer: jsxRender,\n\ttemplate: SideNavigationTemplate,\n\tstyles: [SideNavigationCss, SideNavigationPopoverCss],\n})\n\n/**\n * Fired when the selection has changed via user interaction.\n *\n * @param {SideNavigationSelectableItemBase} item The selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when an item is clicked.\n *\n * @param {SideNavigationSelectableItemBase} item The clicked item.\n * @since 2.20.0\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when a `ui5-side-navigation-item` or `ui5-side-navigation-group` is expanded or collapsed.\n *\n * **Note:** You can call `preventDefault()` on the event to suppress the expand/collapse.\n * The `expanded` state stays unchanged. This is handy, for example, if you want to\n * dynamically load child items before allowing a parent item to expand.\n *\n * @param {SideNavigationItemBase} item The toggled item.\n * @since 2.26.0\n * @public\n */\n@event(\"item-toggle\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SideNavigation extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SideNavigationSelectionChangeEventDetail,\n\t\t\"item-click\": SideNavigationItemClickEventDetail,\n\t\t\"item-toggle\": SideNavigationItemToggleEventDetail\n\t}\n\n\t/**\n\t * Defines whether the `ui5-side-navigation` is expanded or collapsed.\n\t *\n\t * **Note:** On small screens (screen width of 599px or less) the collapsed mode is not supported, and in\n\t * expanded mode the side navigation will take the whole width of the screen.\n\t * The `ui5-side-navigation` component is intended to be used within a `ui5-navigation-layout`\n\t * component to ensure proper responsive behavior. If you choose not to use the\n\t * `ui5-navigation-layout`, you will need to implement the appropriate responsive patterns yourself,\n\t * particularly for smaller screens where the collapsed mode should not be used.\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the main items of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the fixed items at the bottom of the component.\n\t *\n\t * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tfixedItems!: Slot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the header of the `ui5-side-navigation`.\n\t *\n\t * **Note:** The header is displayed when the component is expanded - the property `collapsed` is false;\n\t *\n\t * @public\n\t * @since 1.0.0-rc.11\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_popoverContents!: SideNavigationPopoverContents;\n\n\t@property({ type: Boolean })\n\tinPopover = false;\n\n\t@property({ type: Object })\n\t_menuPopoverItems: Array<SideNavigationItem> = [];\n\n\t_isOverflow = false;\n\t_flexibleItemNavigation: ItemNavigation;\n\t_fixedItemNavigation: ItemNavigation;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._flexibleItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFlexibleItems(),\n\t\t});\n\n\t\tthis._fixedItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFixedItems(),\n\t\t});\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._isOverflow = false;\n\t}\n\n\t_handleResizeBound: () => void;\n\t_fnTransitionEnd?: (event: TransitionEvent) => void;\n\t_animationTimeoutId?: ReturnType<typeof setTimeout>;\n\t_bAnimating = false;\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.type === \"property\" && changeInfo.name === \"collapsed\") {\n\t\t\tif (this.getDomRef()) {\n\t\t\t\tthis._bAnimating = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._getAllItems(this.items)\n\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t.forEach(item => {\n\t\t\t\titem.sideNavCollapsed = this.collapsed;\n\t\t\t\titem.inPopover = this.inPopover;\n\t\t\t\titem.sideNavigation = this;\n\t\t\t\titem.sideNavAnimating = this._bAnimating;\n\t\t\t});\n\n\t\tthis.initGroupsSettings(this.items);\n\t\tthis.initGroupsSettings(this.fixedItems);\n\t}\n\n\tinitGroupsSettings(items: Array<SideNavigationItemBase>) {\n\t\tlet isPreviousItemGroup = false;\n\n\t\titems.forEach(item => {\n\t\t\tconst isGroup = isInstanceOfSideNavigationGroup(item);\n\n\t\t\tif (isGroup) {\n\t\t\t\titem.belowGroup = isPreviousItemGroup;\n\t\t\t}\n\n\t\t\tisPreviousItemGroup = isGroup;\n\t\t});\n\t}\n\n\t_onAfterPopoverOpen() {\n\t\t// as the tree/list inside the popover is never destroyed,\n\t\t// item navigation index should be managed, because items are\n\t\t// dynamically recreated and tabIndexes are not updated\n\t\tconst tree = this.getPickerTree();\n\t\tconst selectedItem = tree._findSelectedItem(tree.items);\n\t\tif (selectedItem) {\n\t\t\tselectedItem.focus();\n\t\t} else {\n\t\t\ttree.items[0]?.applyInitialFocusInPopover();\n\t\t}\n\t}\n\n\t_onBeforePopoverOpen() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforePopoverClose() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuOpen() {\n\t\tconst popover = this.getOverflowPopover();\n\t\tpopover._popover.preventFocusRestore = false;\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuClose() {\n\t\tconst popover = this.getOverflowPopover();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_bn?: SideNavigationSelectableItemBase;\n\n\t_onMenuClose() {\n\t\tconst menu = this.getOverflowPopover();\n\t\tif (!menu._popover.preventFocusRestore) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedItem = this._findSelectedItem(this.items);\n\n\t\tif (selectedItem) {\n\t\t\tthis.focusItem(selectedItem);\n\t\t\tselectedItem.focus();\n\t\t}\n\t}\n\n\tget accSideNavigationPopoverHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_POPOVER_HIDDEN_TEXT);\n\t}\n\n\tget ariaRoleDescNavigationList() {\n\t\tlet key = SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC;\n\t\tif (this.collapsed) {\n\t\t\tkey = SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC;\n\t\t}\n\n\t\treturn SideNavigation.i18nBundle.getText(key);\n\t}\n\n\tget navigationMenuPrimaryHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FLEXIBLE_LIST_LABEL);\n\t}\n\n\tget navigationMenuFooterHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FIXED_LIST_LABEL);\n\t}\n\n\tget overflowAccessibleName() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME);\n\t}\n\n\tget _effectiveCollapsed() {\n\t\treturn this.collapsed && !this._isSmallScreen();\n\t}\n\n\thandlePopupItemClick(e: KeyboardEvent | PointerEvent) {\n\t\tconst associatedItem = (e.target as PopupSideNavigationItem).associatedItem;\n\n\t\tif (associatedItem.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInstanceOfSideNavigationItem(associatedItem) && associatedItem.unselectable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\n\t\tconst altKey = (e.detail as any)?.altKey,\n\t\t\tctrlKey = (e.detail as any)?.ctrlKey,\n\t\t\tmetaKey = (e.detail as any)?.metaKey,\n\t\t\tshiftKey = (e.detail as any)?.shiftKey;\n\n\t\tconst executeEvent = associatedItem.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (associatedItem.selected) {\n\t\t\tthis.closePicker();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectItem(associatedItem);\n\n\t\tthis.closePicker();\n\t\tthis._popoverContents.item?.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tgetOverflowPopover() {\n\t\treturn this.shadowRoot!.querySelector<NavigationMenu>(\".ui5-side-navigation-overflow-menu\")!;\n\t}\n\n\tgetPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\topenPicker(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.opener = opener;\n\t\tresponsivePopover.open = true;\n\t}\n\n\topenOverflowMenu(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu.opener = opener;\n\t\tmenu.open = true;\n\t}\n\n\tclosePicker() {\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.open = false;\n\t}\n\n\tcloseMenu(preventFocusRestore: boolean = false) {\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu._popover.preventFocusRestore = preventFocusRestore;\n\t\tmenu.open = false;\n\t}\n\n\tgetPickerTree() {\n\t\tconst picker = this.getPicker();\n\t\treturn picker.querySelector<SideNavigation>(\"[ui5-side-navigation]\")!;\n\t}\n\n\tget hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\tget showHeader() {\n\t\treturn this.hasHeader && !this.collapsed;\n\t}\n\n\tget hasFixedItems() {\n\t\treturn !!this.fixedItems.length;\n\t}\n\n\tget _rootRole() {\n\t\treturn this.inPopover ? \"none\" : undefined;\n\t}\n\n\tgetEnabledFixedItems(): Array<ITabbable> {\n\t\treturn this.getEnabledItems(this.fixedItems);\n\t}\n\n\tgetEnabledFlexibleItems(): Array<ITabbable> {\n\t\tconst items = this.getEnabledItems(this.items);\n\n\t\tif (this._overflowItem) {\n\t\t\titems.push(this._overflowItem);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetEnabledItems(items: Array<SideNavigationItemBase>): Array<ITabbable> {\n\t\tconst result = new Array<ITabbable>();\n\n\t\tthis._getFocusableItems(items).forEach(item => {\n\t\t\tif (this.collapsed && item.classList.contains(\"ui5-sn-item-hidden\")) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult.push(item);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfocusItem(item: SideNavigationItemBase) {\n\t\tif (item.isFixedItem) {\n\t\t\tthis._fixedItemNavigation.setCurrentItem(item);\n\t\t} else {\n\t\t\tthis._flexibleItemNavigation.setCurrentItem(item);\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.getDomRef()?.matches(\":focus-within\")) {\n\t\t\tlet selectedItem = this._findSelectedItem(this.items);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._flexibleItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\n\t\t\tselectedItem = this._findSelectedItem(this.fixedItems);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._fixedItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\t\t}\n\n\t\tif (this.collapsed) {\n\t\t\tthis.handleResize();\n\t\t}\n\n\t\tthis._handleExpandCollapseAnimation();\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\tthis._fnTransitionEnd = undefined;\n\t\t}\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\tthis._animationTimeoutId = undefined;\n\t\t}\n\t\tthis._bAnimating = false;\n\t}\n\n\thandleResize() {\n\t\t// In smaller screen the side navigation hidden when collapsed and there is no overflow items\n\t\tif (window.innerWidth > SCREEN_WIDTH_BREAKPOINT) {\n\t\t\tthis._updateOverflowItems();\n\t\t}\n\t}\n\n\t_updateOverflowItems() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (!this.collapsed || !domRef) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst overflowItem = this._overflowItem!;\n\t\tconst flexibleContentDomRef: HTMLElement = domRef.querySelector(\".ui5-sn-flexible\")!;\n\t\tif (!overflowItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\toverflowItem.classList.add(\"ui5-sn-item-hidden\");\n\n\t\tconst overflowItems = this.overflowItems;\n\n\t\tlet itemsHeight = overflowItems.reduce<number>((sum, itemRef) => {\n\t\t\tif (!itemRef) {\n\t\t\t\treturn sum;\n\t\t\t}\n\t\t\titemRef.classList.remove(\"ui5-sn-item-hidden\");\n\t\t\treturn sum + itemRef.offsetHeight;\n\t\t}, 0);\n\n\t\tconst { paddingTop, paddingBottom } = window.getComputedStyle(flexibleContentDomRef);\n\t\tconst listHeight = flexibleContentDomRef?.offsetHeight - parseInt(paddingTop) - parseInt(paddingBottom);\n\n\t\tif (itemsHeight <= listHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\toverflowItem.classList.remove(\"ui5-sn-item-hidden\");\n\n\t\titemsHeight = overflowItem.offsetHeight;\n\n\t\tconst selectedItem = overflowItems.filter(isInstanceOfSideNavigationSelectableItemBase).find(item => item._selected);\n\n\t\tif (selectedItem) {\n\t\t\tconst selectedItemDomRef = selectedItem.getDomRef();\n\n\t\t\tif (selectedItemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(selectedItemDomRef);\n\t\t\t\titemsHeight += selectedItemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\t\t\t}\n\t\t}\n\n\t\toverflowItems.forEach(item => {\n\t\t\tif (!item || item === selectedItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet itemDomRef;\n\n\t\t\tif (isInstanceOfSideNavigationItemBase(item) && item.getDomRef()) {\n\t\t\t\titemDomRef = item.getDomRef();\n\t\t\t} else {\n\t\t\t\titemDomRef = item;\n\t\t\t}\n\n\t\t\tif (itemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);\n\t\t\t\titemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\n\t\t\t\tif (itemsHeight > listHeight) {\n\t\t\t\t\titem.classList.add(\"ui5-sn-item-hidden\");\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._flexibleItemNavigation._init();\n\t}\n\n\t_findFocusedItem(items: Array<SideNavigationItemBase>): SideNavigationItemBase | undefined {\n\t\treturn this._getFocusableItems(items).find(item => item.forcedTabIndex === \"0\");\n\t}\n\n\t_getSelectableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationSelectableItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.selectableItems);\n\t\t}, new Array<SideNavigationSelectableItemBase>());\n\t}\n\n\t_getFocusableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.focusableItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_getAllItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.allItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_findSelectedItem(items: Array<SideNavigationItemBase>): SideNavigationSelectableItemBase | undefined {\n\t\treturn this._getSelectableItems(items).find(item => item._selected);\n\t}\n\n\tget overflowItems(): Array<HTMLElement> {\n\t\treturn this.items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.overflowItems);\n\t\t}, new Array<HTMLElement>());\n\t}\n\n\tprivate _isSmallScreen(): boolean {\n\t\treturn isPhone() || window.innerWidth < SCREEN_WIDTH_BREAKPOINT;\n\t}\n\n\t_handleExpandCollapseAnimation() {\n\t\tif (!this._bAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oDomRef = this.getDomRef();\n\t\tif (!oDomRef) {\n\t\t\treturn;\n\t\t}\n\n\t\toDomRef.classList.add(\"ui5-sn-animating\");\n\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t}\n\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t}\n\n\t\tconst cleanupAnimation = () => {\n\t\t\toDomRef.classList.remove(\"ui5-sn-animating\");\n\t\t\tif (this._fnTransitionEnd) {\n\t\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\t\tthis._fnTransitionEnd = undefined;\n\t\t\t}\n\t\t\tif (this._animationTimeoutId) {\n\t\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\t\tthis._animationTimeoutId = undefined;\n\t\t\t}\n\t\t\tthis._bAnimating = false;\n\n\t\t\tthis._getAllItems(this.items)\n\t\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t\t.forEach(item => {\n\t\t\t\t\titem.sideNavAnimating = false;\n\t\t\t\t});\n\t\t};\n\n\t\tthis._fnTransitionEnd = (oEvent: TransitionEvent) => {\n\t\t\tif (oEvent.propertyName !== \"width\" && oEvent.propertyName !== \"min-width\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcleanupAnimation();\n\t\t};\n\n\t\tthis.addEventListener(\"transitionend\", this._fnTransitionEnd);\n\n\t\t// Fallback timeout in case transitionend doesn't fire\n\t\tthis._animationTimeoutId = setTimeout(() => {\n\t\t\tcleanupAnimation();\n\t\t}, 500);\n\t}\n\n\t_handleItemClick(e: KeyboardEvent | MouseEvent, item: SideNavigationSelectableItemBase) {\n\t\tthis.fireDecoratorEvent(\"item-click\", { item });\n\n\t\tif (item.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (item.selected && !this.collapsed) {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._effectiveCollapsed && isInstanceOfSideNavigationItem(item) && item.items.length) {\n\t\t\te.preventDefault();\n\t\t\tthis._isOverflow = false;\n\n\t\t\tthis._popoverContents = {\n\t\t\t\titem,\n\t\t\t\tsubItems: item.items,\n\t\t\t};\n\n\t\t\tthis.openPicker(item.getFocusDomRef() as HTMLElement);\n\t\t} else {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!item.selected) {\n\t\t\t\tthis._selectItem(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleOverflowClick() {\n\t\tthis._isOverflow = true;\n\t\tthis._menuPopoverItems = this._getOverflowItems();\n\n\t\tthis.openOverflowMenu(this._overflowItem!);\n\t}\n\n\t_getOverflowItems(): Array<SideNavigationItem> {\n\t\tconst overflowClass = \"ui5-sn-item-hidden\";\n\t\tconst result: Array<SideNavigationItem> = [];\n\n\t\tthis.overflowItems.forEach(item => {\n\t\t\tif (item && isInstanceOfSideNavigationItem(item) && item.classList.contains(overflowClass)) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_selectItem(item: SideNavigationSelectableItemBase) {\n\t\tif (!item.isSelectable) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"selection-change\", { item })) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet items = this._getSelectableItems(this.items);\n\t\titems = items.concat(this._getSelectableItems(this.fixedItems));\n\n\t\titems.forEach(current => {\n\t\t\tcurrent.selected = false;\n\t\t});\n\n\t\titem.selected = true;\n\t}\n\n\tget _overflowItem() {\n\t\tconst overflowItem = this.shadowRoot!.querySelector<SideNavigationItem>(\".ui5-sn-item-overflow\");\n\t\tif (overflowItem) {\n\t\t\toverflowItem.sideNavigation = this;\n\t\t}\n\n\t\treturn overflowItem;\n\t}\n\n\tget isOverflow() {\n\t\treturn this._isOverflow;\n\t}\n\n\tget isSideNavigation() {\n\t\treturn true;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedItem?: UI5Element } | null) {\n\t\tif (!ref) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.associatedItem = this;\n\n\t\tconst item = this as unknown as SideNavigationItem | SideNavigationSubItem;\n\t\tif (item.tag?.length > 0) {\n\t\t\tconst existingTags = Array.from(ref.children).filter(child => child.getAttribute(\"slot\") === \"tag\");\n\t\t\texistingTags.forEach(tag => tag.remove());\n\n\t\t\titem.tag.forEach((tagEl: HTMLElement) => {\n\t\t\t\tconst clonedTag = tagEl.cloneNode(true) as HTMLElement;\n\t\t\t\tclonedTag.setAttribute(\"slot\", \"tag\");\n\t\t\t\tref.appendChild(clonedTag);\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst instanceOfItemOrGroup = createMultiInstanceChecker<SideNavigationItem | SideNavigationGroup>([\"isSideNavigationItem\", \"isSideNavigationGroup\"]);\n\nSideNavigation.define();\n\nexport const isInstanceOfSideNavigation = createInstanceChecker<SideNavigation>(\"isSideNavigation\");\nexport default SideNavigation;\n\nexport type {\n\tSideNavigationSelectionChangeEventDetail,\n\tSideNavigationItemClickEventDetail,\n\tSideNavigationItemToggleEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SideNavigation.js","sourceRoot":"","sources":["../src/SideNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot, ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { createMultiInstanceChecker } from \"@ui5/webcomponents-base/dist/util/createMultiInstanceChecker.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRender from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type NavigationMenu from \"./NavigationMenu.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport createInstanceChecker from \"@ui5/webcomponents-base/dist/util/createInstanceChecker.js\";\n\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport type SideNavigationItemBase from \"./SideNavigationItemBase.js\";\nimport { isInstanceOfSideNavigationSelectableItemBase } from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItemBase } from \"./SideNavigationItemBase.js\";\nimport type SideNavigationSelectableItemBase from \"./SideNavigationSelectableItemBase.js\";\nimport { isInstanceOfSideNavigationItem } from \"./SideNavigationItem.js\";\nimport { isInstanceOfSideNavigationGroup } from \"./SideNavigationGroup.js\";\nimport type SideNavigationItem from \"./SideNavigationItem.js\";\nimport type SideNavigationSubItem from \"./SideNavigationSubItem.js\";\nimport type SideNavigationGroup from \"./SideNavigationGroup.js\";\nimport SideNavigationTemplate from \"./SideNavigationTemplate.js\";\n\nimport {\n\tSIDE_NAVIGATION_POPOVER_HIDDEN_TEXT,\n\tSIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_LIST_ARIA_ROLE_DESC,\n\tSIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME,\n\tSIDE_NAVIGATION_FLEXIBLE_LIST_LABEL,\n\tSIDE_NAVIGATION_FIXED_LIST_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport SideNavigationCss from \"./generated/themes/SideNavigation.css.js\";\nimport SideNavigationPopoverCss from \"./generated/themes/SideNavigationPopover.css.js\";\n\nconst PAGE_UP_DOWN_SIZE = 10;\nconst SCREEN_WIDTH_BREAKPOINT = 600;\n\ntype SideNavigationPopoverContents = {\n\titem: SideNavigationItem,\n\tsubItems: Array<SideNavigationSubItem>,\n};\n\ntype SideNavigationSelectionChangeEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype SideNavigationItemClickEventDetail = {\n\titem: SideNavigationSelectableItemBase,\n};\n\ntype SideNavigationItemToggleEventDetail = {\n\titem: SideNavigationItemBase,\n};\n\ntype PopupSideNavigationItem = SideNavigationItem & { associatedItem: SideNavigationSelectableItemBase };\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `SideNavigation` is used as a standard menu in applications.\n * It consists of three containers: header (top-aligned), main navigation section (top-aligned) and the secondary section (bottom-aligned).\n *\n * - The header is meant for displaying user related information - profile data, avatar, etc.\n * - The main navigation section is related to the user's current work context.\n * - The secondary section is mostly used to link additional information that may be of interest (legal information, developer communities, external help, contact information and so on).\n *\n * ### Usage\n *\n * Use the available `ui5-side-navigation-group`, `ui5-side-navigation-item`\n * and `ui5-side-navigation-sub-item` components to build your menu.\n * The items can consist of text only or an icon with text. The use or non-use of icons must be consistent for all items on one level.\n * You must not combine entries with and without icons on the same level. We strongly recommend that you do not use icons on the second level.\n *\n * The `ui5-side-navigation` component is designed to be used within a `ui5-navigation-layout` component to ensure an optimal user experience.\n *\n * Using it standalone may not match the intended design and functionality.\n * For example, the side navigation may not exhibit the correct behavior on smaller screens.\n * Additionally, the padding of the `ui5-shellbar` will not match the padding of the side navigation.\n *\n * ### Keyboard Handling\n *\n * ### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigation.js\"`\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationGroup.js\";` (for `ui5-side-navigation-group`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationItem.js\";` (for `ui5-side-navigation-item`)\n *\n * `import \"@ui5/webcomponents-fiori/dist/SideNavigationSubItem.js\";` (for `ui5-side-navigation-sub-item`)\n * @constructor\n * @extends UI5Element\n * @since 1.0.0-rc.8\n * @public\n */\n\n@customElement({\n\ttag: \"ui5-side-navigation\",\n\tfastNavigation: true,\n\trenderer: jsxRender,\n\ttemplate: SideNavigationTemplate,\n\tstyles: [SideNavigationCss, SideNavigationPopoverCss],\n})\n\n/**\n * Fired when the selection has changed via user interaction.\n *\n * @param {SideNavigationSelectableItemBase} item The selected item.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when an item is clicked.\n *\n * @param {SideNavigationSelectableItemBase} item The clicked item.\n * @since 2.20.0\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when a `ui5-side-navigation-item` or `ui5-side-navigation-group` is expanded or collapsed.\n *\n * **Note:** You can call `preventDefault()` on the event to suppress the expand/collapse.\n * The `expanded` state stays unchanged. This is handy, for example, if you want to\n * dynamically load child items before allowing a parent item to expand.\n *\n * @param {SideNavigationItemBase} item The toggled item.\n * @since 2.26.0\n * @public\n */\n@event(\"item-toggle\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SideNavigation extends UI5Element {\n\teventDetails!: {\n\t\t\"selection-change\": SideNavigationSelectionChangeEventDetail,\n\t\t\"item-click\": SideNavigationItemClickEventDetail,\n\t\t\"item-toggle\": SideNavigationItemToggleEventDetail\n\t}\n\n\t/**\n\t * Defines whether the `ui5-side-navigation` is expanded or collapsed.\n\t *\n\t * **Note:** On small screens (screen width of 599px or less) the collapsed mode is not supported, and in\n\t * expanded mode the side navigation will take the whole width of the screen.\n\t * The `ui5-side-navigation` component is intended to be used within a `ui5-navigation-layout`\n\t * component to ensure proper responsive behavior. If you choose not to use the\n\t * `ui5-navigation-layout`, you will need to implement the appropriate responsive patterns yourself,\n\t * particularly for smaller screens where the collapsed mode should not be used.\n\t *\n\t * @public\n\t * @default false\n\t */\n\t@property({ type: Boolean })\n\tcollapsed = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.9.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the main items of the component.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: DefaultSlot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the fixed items at the bottom of the component.\n\t *\n\t * **Note:** In order to achieve the best user experience, it is recommended that you keep the fixed items \"flat\" (do not pass sub-items)\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true })\n\tfixedItems!: Slot<SideNavigationItemBase>;\n\n\t/**\n\t * Defines the header of the `ui5-side-navigation`.\n\t *\n\t * **Note:** The header is displayed when the component is expanded - the property `collapsed` is false;\n\t *\n\t * @public\n\t * @since 1.0.0-rc.11\n\t */\n\t@slot()\n\theader!: Slot<HTMLElement>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_popoverContents!: SideNavigationPopoverContents;\n\n\t@property({ type: Boolean })\n\tinPopover = false;\n\n\t@property({ type: Object })\n\t_menuPopoverItems: Array<SideNavigationItem> = [];\n\n\t_isOverflow = false;\n\t_flexibleItemNavigation: ItemNavigation;\n\t_fixedItemNavigation: ItemNavigation;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._flexibleItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFlexibleItems(),\n\t\t});\n\n\t\tthis._fixedItemNavigation = new ItemNavigation(this, {\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\tgetItemsCallback: () => this.getEnabledFixedItems(),\n\t\t});\n\n\t\tthis._handleResizeBound = this.handleResize.bind(this);\n\t\tthis._isOverflow = false;\n\t}\n\n\t_handleResizeBound: () => void;\n\t_fnTransitionEnd?: (event: TransitionEvent) => void;\n\t_animationTimeoutId?: ReturnType<typeof setTimeout>;\n\t_bAnimating = false;\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.type === \"property\" && changeInfo.name === \"collapsed\") {\n\t\t\tif (this.getDomRef()) {\n\t\t\t\tthis._bAnimating = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tthis._getAllItems(this.items)\n\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t.forEach(item => {\n\t\t\t\titem.sideNavCollapsed = this.collapsed;\n\t\t\t\titem.inPopover = this.inPopover;\n\t\t\t\titem.sideNavigation = this;\n\t\t\t\titem.sideNavAnimating = this._bAnimating;\n\t\t\t});\n\n\t\tthis.initGroupsSettings(this.items);\n\t\tthis.initGroupsSettings(this.fixedItems);\n\t}\n\n\tinitGroupsSettings(items: Array<SideNavigationItemBase>) {\n\t\tlet isPreviousItemGroup = false;\n\n\t\titems.forEach(item => {\n\t\t\tconst isGroup = isInstanceOfSideNavigationGroup(item);\n\n\t\t\tif (isGroup) {\n\t\t\t\titem.belowGroup = isPreviousItemGroup;\n\t\t\t}\n\n\t\t\tisPreviousItemGroup = isGroup;\n\t\t});\n\t}\n\n\t_onAfterPopoverOpen() {\n\t\t// as the tree/list inside the popover is never destroyed,\n\t\t// item navigation index should be managed, because items are\n\t\t// dynamically recreated and tabIndexes are not updated\n\t\tconst tree = this.getPickerTree();\n\t\tconst selectedItem = tree._findSelectedItem(tree.items);\n\t\tif (selectedItem) {\n\t\t\tselectedItem.focus();\n\t\t} else {\n\t\t\ttree.items[0]?.applyInitialFocusInPopover();\n\t\t}\n\t}\n\n\t_onBeforePopoverOpen() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforePopoverClose() {\n\t\tconst popover = this.getPicker();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuOpen() {\n\t\tconst popover = this.getOverflowPopover();\n\t\tpopover._popover.preventFocusRestore = false;\n\t\t(popover?.opener as HTMLElement)?.classList.add(\"ui5-sn-item-active\");\n\t}\n\n\t_onBeforeMenuClose() {\n\t\tconst popover = this.getOverflowPopover();\n\t\t(popover?.opener as HTMLElement)?.classList.remove(\"ui5-sn-item-active\");\n\t}\n\n\t_onMenuClose() {\n\t\tconst menu = this.getOverflowPopover();\n\t\tif (!menu._popover.preventFocusRestore) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedItem = this._findSelectedItem(this.items);\n\n\t\tif (selectedItem) {\n\t\t\tthis.focusItem(selectedItem);\n\t\t\tselectedItem.focus();\n\t\t}\n\t}\n\n\tget accSideNavigationPopoverHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_POPOVER_HIDDEN_TEXT);\n\t}\n\n\tget ariaRoleDescNavigationList() {\n\t\tlet key = SIDE_NAVIGATION_LIST_ARIA_ROLE_DESC;\n\t\tif (this.collapsed) {\n\t\t\tkey = SIDE_NAVIGATION_COLLAPSED_LIST_ARIA_ROLE_DESC;\n\t\t}\n\n\t\treturn SideNavigation.i18nBundle.getText(key);\n\t}\n\n\tget navigationMenuPrimaryHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FLEXIBLE_LIST_LABEL);\n\t}\n\n\tget navigationMenuFooterHiddenText() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_FIXED_LIST_LABEL);\n\t}\n\n\tget overflowAccessibleName() {\n\t\treturn SideNavigation.i18nBundle.getText(SIDE_NAVIGATION_OVERFLOW_ACCESSIBLE_NAME);\n\t}\n\n\tget _effectiveCollapsed() {\n\t\treturn this.collapsed && !this._isSmallScreen();\n\t}\n\n\thandlePopupItemClick(e: KeyboardEvent | PointerEvent) {\n\t\tconst associatedItem = (e.target as PopupSideNavigationItem).associatedItem;\n\n\t\tif (associatedItem.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isInstanceOfSideNavigationItem(associatedItem) && associatedItem.unselectable) {\n\t\t\treturn;\n\t\t}\n\n\t\te.stopPropagation();\n\n\t\tconst altKey = (e.detail as any)?.altKey,\n\t\t\tctrlKey = (e.detail as any)?.ctrlKey,\n\t\t\tmetaKey = (e.detail as any)?.metaKey,\n\t\t\tshiftKey = (e.detail as any)?.shiftKey;\n\n\t\tconst executeEvent = associatedItem.fireDecoratorEvent(\"click\", {\n\t\t\taltKey,\n\t\t\tctrlKey,\n\t\t\tmetaKey,\n\t\t\tshiftKey,\n\t\t});\n\n\t\tif (!executeEvent) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (associatedItem.selected) {\n\t\t\tthis.closePicker();\n\t\t\treturn;\n\t\t}\n\n\t\tthis._selectItem(associatedItem);\n\n\t\tthis.closePicker();\n\t\tthis._popoverContents.item?.getDomRef()!.classList.add(\"ui5-sn-item-no-hover-effect\");\n\t}\n\n\tgetOverflowPopover() {\n\t\treturn this.shadowRoot!.querySelector<NavigationMenu>(\".ui5-side-navigation-overflow-menu\")!;\n\t}\n\n\tgetPicker() {\n\t\treturn this.shadowRoot!.querySelector<ResponsivePopover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\topenPicker(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.opener = opener;\n\t\tresponsivePopover.open = true;\n\t}\n\n\topenOverflowMenu(opener: HTMLElement) {\n\t\topener.classList.add(\"ui5-sn-item-active\");\n\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu.opener = opener;\n\t\tmenu.open = true;\n\t}\n\n\tclosePicker() {\n\t\tconst responsivePopover = this.getPicker();\n\t\tresponsivePopover.open = false;\n\t}\n\n\tcloseMenu(preventFocusRestore: boolean = false) {\n\t\tconst menu = this.getOverflowPopover();\n\t\tmenu._popover.preventFocusRestore = preventFocusRestore;\n\t\tmenu.open = false;\n\t}\n\n\tgetPickerTree() {\n\t\tconst picker = this.getPicker();\n\t\treturn picker.querySelector<SideNavigation>(\"[ui5-side-navigation]\")!;\n\t}\n\n\tget hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\tget showHeader() {\n\t\treturn this.hasHeader && !this.collapsed;\n\t}\n\n\tget hasFixedItems() {\n\t\treturn !!this.fixedItems.length;\n\t}\n\n\tget _rootRole() {\n\t\treturn this.inPopover ? \"none\" : undefined;\n\t}\n\n\tgetEnabledFixedItems(): Array<ITabbable> {\n\t\treturn this.getEnabledItems(this.fixedItems);\n\t}\n\n\tgetEnabledFlexibleItems(): Array<ITabbable> {\n\t\tconst items = this.getEnabledItems(this.items);\n\n\t\tif (this._overflowItem) {\n\t\t\titems.push(this._overflowItem);\n\t\t}\n\n\t\treturn items;\n\t}\n\n\tgetEnabledItems(items: Array<SideNavigationItemBase>): Array<ITabbable> {\n\t\tconst result = new Array<ITabbable>();\n\n\t\tthis._getFocusableItems(items).forEach(item => {\n\t\t\tif (this.collapsed && item.classList.contains(\"ui5-sn-item-hidden\")) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresult.push(item);\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tfocusItem(item: SideNavigationItemBase) {\n\t\tif (item.isFixedItem) {\n\t\t\tthis._fixedItemNavigation.setCurrentItem(item);\n\t\t} else {\n\t\t\tthis._flexibleItemNavigation.setCurrentItem(item);\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.getDomRef()?.matches(\":focus-within\")) {\n\t\t\tlet selectedItem = this._findSelectedItem(this.items);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._flexibleItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\n\t\t\tselectedItem = this._findSelectedItem(this.fixedItems);\n\t\t\tif (selectedItem) {\n\t\t\t\tthis._fixedItemNavigation.setCurrentItem(selectedItem);\n\t\t\t}\n\t\t}\n\n\t\tif (this.collapsed) {\n\t\t\tthis.handleResize();\n\t\t}\n\n\t\tthis._handleExpandCollapseAnimation();\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._handleResizeBound);\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\tthis._fnTransitionEnd = undefined;\n\t\t}\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\tthis._animationTimeoutId = undefined;\n\t\t}\n\t\tthis._bAnimating = false;\n\t}\n\n\thandleResize() {\n\t\t// In smaller screen the side navigation hidden when collapsed and there is no overflow items\n\t\tif (window.innerWidth > SCREEN_WIDTH_BREAKPOINT) {\n\t\t\tthis._updateOverflowItems();\n\t\t}\n\t}\n\n\t_updateOverflowItems() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (!this.collapsed || !domRef) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst overflowItem = this._overflowItem;\n\t\tif (!overflowItem) {\n\t\t\treturn null;\n\t\t}\n\n\t\toverflowItem.classList.add(\"ui5-sn-item-hidden\");\n\n\t\tconst overflowItems = this.overflowItems;\n\n\t\tlet itemsHeight = this._calculateItemsHeight(overflowItems);\n\n\t\tconst flexibleContentDomRef: HTMLElement = domRef.querySelector(\".ui5-sn-flexible\")!;\n\t\tconst { paddingTop, paddingBottom } = window.getComputedStyle(flexibleContentDomRef);\n\t\tconst listHeight = flexibleContentDomRef?.offsetHeight - parseInt(paddingTop) - parseInt(paddingBottom);\n\n\t\tif (itemsHeight <= listHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\toverflowItem.classList.remove(\"ui5-sn-item-hidden\");\n\n\t\titemsHeight = overflowItem.offsetHeight;\n\n\t\tconst navItems = overflowItems.filter(isInstanceOfSideNavigationSelectableItemBase);\n\t\tconst selectedItem = navItems.find(item => item._selected);\n\n\t\titemsHeight += this._getSelectedItemHeight(overflowItems, selectedItem) + 1; // +1 for sub-pixel rounding\n\t\titemsHeight += this._getLastSeparatorHeight(navItems, overflowItems);\n\n\t\tthis._updateItemsVisibility(overflowItems, selectedItem, itemsHeight, listHeight);\n\n\t\tthis._flexibleItemNavigation._init();\n\t}\n\n\t_calculateItemsHeight(overflowItems: Array<HTMLElement>) {\n\t\treturn overflowItems.reduce<number>((sum, itemRef) => {\n\t\t\tif (!itemRef) {\n\t\t\t\treturn sum;\n\t\t\t}\n\t\t\titemRef.classList.remove(\"ui5-sn-item-hidden\");\n\n\t\t\tlet itemDomRef = itemRef;\n\n\t\t\tif (isInstanceOfSideNavigationItemBase(itemRef) && itemRef.getDomRef()) {\n\t\t\t\titemDomRef = itemRef.getDomRef()!;\n\t\t\t}\n\n\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);\n\n\t\t\treturn sum + itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\t\t}, 0);\n\t}\n\n\t_getSelectedItemHeight(overflowItems: Array<HTMLElement>, selectedItem: SideNavigationSelectableItemBase | undefined) {\n\t\tif (!selectedItem) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet height = 0;\n\n\t\tif (selectedItem) {\n\t\t\tconst selectedItemDomRef = selectedItem.getDomRef();\n\n\t\t\tif (selectedItemDomRef) {\n\t\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(selectedItemDomRef);\n\t\t\t\theight += selectedItemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\t\t\t}\n\n\t\t\tconst indexOf = overflowItems.indexOf(selectedItem);\n\t\t\tconst itemAfterSelected = overflowItems[indexOf + 1];\n\t\t\tif (itemAfterSelected && !isInstanceOfSideNavigationItemBase(itemAfterSelected)) {\n\t\t\t\theight += itemAfterSelected.offsetHeight;\n\t\t\t}\n\t\t}\n\n\t\treturn height;\n\t}\n\n\t_getLastSeparatorHeight(navItems: Array<SideNavigationSelectableItemBase>, overflowItems: Array<HTMLElement>) {\n\t\tconst lastNonSelectedItem = navItems.findLast(item => !item._selected);\n\t\tif (!lastNonSelectedItem) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst indexOf = overflowItems.indexOf(lastNonSelectedItem);\n\t\tconst nextSeparator = overflowItems[indexOf + 1];\n\n\t\tif (nextSeparator && !isInstanceOfSideNavigationItemBase(nextSeparator)) {\n\t\t\treturn nextSeparator.offsetHeight;\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t_updateItemsVisibility(overflowItems: Array<HTMLElement>, selectedItem: SideNavigationSelectableItemBase | undefined, itemsHeight: number, listHeight: number) {\n\t\tfor (let i = 0; i < overflowItems.length; i++) {\n\t\t\tconst item = overflowItems[i];\n\n\t\t\tif (!item || item === selectedItem) {\n\t\t\t\t// eslint-disable-next-line no-continue\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet itemDomRef;\n\n\t\t\tif (isInstanceOfSideNavigationItemBase(item)) {\n\t\t\t\titemDomRef = item.getDomRef();\n\t\t\t}\n\n\t\t\tif (!itemDomRef) {\n\t\t\t\t// eslint-disable-next-line no-continue\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst { marginTop, marginBottom } = window.getComputedStyle(itemDomRef);\n\t\t\titemsHeight += itemDomRef.offsetHeight + parseFloat(marginTop) + parseFloat(marginBottom);\n\n\t\t\t// if the next item is a separator, the item and the separator\n\t\t\t// should be hidden together, so we need to add the separator height to the itemsHeight\n\t\t\tconst nextItem = overflowItems[i + 1];\n\t\t\tlet nextItemDomRef;\n\t\t\tif (nextItem && !isInstanceOfSideNavigationItemBase(nextItem)) {\n\t\t\t\tnextItemDomRef = nextItem;\n\t\t\t\titemsHeight += nextItemDomRef.offsetHeight;\n\t\t\t\ti++;\n\t\t\t}\n\n\t\t\tif (itemsHeight > listHeight) {\n\t\t\t\titem.classList.add(\"ui5-sn-item-hidden\");\n\t\t\t\tnextItemDomRef?.classList.add(\"ui5-sn-item-hidden\");\n\t\t\t}\n\t\t}\n\t}\n\n\t_findFocusedItem(items: Array<SideNavigationItemBase>): SideNavigationItemBase | undefined {\n\t\treturn this._getFocusableItems(items).find(item => item.forcedTabIndex === \"0\");\n\t}\n\n\t_getSelectableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationSelectableItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.selectableItems);\n\t\t}, new Array<SideNavigationSelectableItemBase>());\n\t}\n\n\t_getFocusableItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.focusableItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_getAllItems(items: Array<SideNavigationItemBase>): Array<SideNavigationItemBase> {\n\t\treturn items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.allItems);\n\t\t}, new Array<SideNavigationItemBase>());\n\t}\n\n\t_findSelectedItem(items: Array<SideNavigationItemBase>): SideNavigationSelectableItemBase | undefined {\n\t\treturn this._getSelectableItems(items).find(item => item._selected);\n\t}\n\n\tget overflowItems(): Array<HTMLElement> {\n\t\treturn this.items.filter(instanceOfItemOrGroup).reduce((result, item) => {\n\t\t\treturn result.concat(item.overflowItems);\n\t\t}, new Array<HTMLElement>());\n\t}\n\n\tprivate _isSmallScreen(): boolean {\n\t\treturn isPhone() || window.innerWidth < SCREEN_WIDTH_BREAKPOINT;\n\t}\n\n\t_handleExpandCollapseAnimation() {\n\t\tif (!this._bAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst oDomRef = this.getDomRef();\n\t\tif (!oDomRef) {\n\t\t\treturn;\n\t\t}\n\n\t\toDomRef.classList.add(\"ui5-sn-animating\");\n\n\t\tif (this._fnTransitionEnd) {\n\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t}\n\n\t\tif (this._animationTimeoutId) {\n\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t}\n\n\t\tconst cleanupAnimation = () => {\n\t\t\toDomRef.classList.remove(\"ui5-sn-animating\");\n\t\t\tif (this._fnTransitionEnd) {\n\t\t\t\tthis.removeEventListener(\"transitionend\", this._fnTransitionEnd);\n\t\t\t\tthis._fnTransitionEnd = undefined;\n\t\t\t}\n\t\t\tif (this._animationTimeoutId) {\n\t\t\t\tclearTimeout(this._animationTimeoutId);\n\t\t\t\tthis._animationTimeoutId = undefined;\n\t\t\t}\n\t\t\tthis._bAnimating = false;\n\n\t\t\tthis._getAllItems(this.items)\n\t\t\t\t.concat(this._getAllItems(this.fixedItems))\n\t\t\t\t.forEach(item => {\n\t\t\t\t\titem.sideNavAnimating = false;\n\t\t\t\t});\n\t\t};\n\n\t\tthis._fnTransitionEnd = (oEvent: TransitionEvent) => {\n\t\t\tif (oEvent.propertyName !== \"width\" && oEvent.propertyName !== \"min-width\") {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcleanupAnimation();\n\t\t};\n\n\t\tthis.addEventListener(\"transitionend\", this._fnTransitionEnd);\n\n\t\t// Fallback timeout in case transitionend doesn't fire\n\t\tthis._animationTimeoutId = setTimeout(() => {\n\t\t\tcleanupAnimation();\n\t\t}, 500);\n\t}\n\n\t_handleItemClick(e: KeyboardEvent | MouseEvent, item: SideNavigationSelectableItemBase) {\n\t\tthis.fireDecoratorEvent(\"item-click\", { item });\n\n\t\tif (item.effectiveDisabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (item.selected && !this.collapsed) {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._effectiveCollapsed && isInstanceOfSideNavigationItem(item) && item.items.length) {\n\t\t\te.preventDefault();\n\t\t\tthis._isOverflow = false;\n\n\t\t\tthis._popoverContents = {\n\t\t\t\titem,\n\t\t\t\tsubItems: item.items,\n\t\t\t};\n\n\t\t\tthis.openPicker(item.getFocusDomRef() as HTMLElement);\n\t\t} else {\n\t\t\tconst {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t} = e;\n\n\t\t\tconst executeEvent = item.fireDecoratorEvent(\"click\", {\n\t\t\t\taltKey,\n\t\t\t\tctrlKey,\n\t\t\t\tmetaKey,\n\t\t\t\tshiftKey,\n\t\t\t});\n\n\t\t\tif (!executeEvent) {\n\t\t\t\te.preventDefault();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!item.selected) {\n\t\t\t\tthis._selectItem(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleOverflowClick() {\n\t\tthis._isOverflow = true;\n\t\tthis._menuPopoverItems = this._getOverflowItems();\n\n\t\tthis.openOverflowMenu(this._overflowItem!);\n\t}\n\n\t_getOverflowItems(): Array<SideNavigationItem> {\n\t\tconst overflowClass = \"ui5-sn-item-hidden\";\n\t\tconst result: Array<SideNavigationItem> = [];\n\n\t\tthis.overflowItems.forEach(item => {\n\t\t\tif (item && isInstanceOfSideNavigationItem(item) && item.classList.contains(overflowClass)) {\n\t\t\t\tresult.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\t_selectItem(item: SideNavigationSelectableItemBase) {\n\t\tif (!item.isSelectable) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.fireDecoratorEvent(\"selection-change\", { item })) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet items = this._getSelectableItems(this.items);\n\t\titems = items.concat(this._getSelectableItems(this.fixedItems));\n\n\t\titems.forEach(current => {\n\t\t\tcurrent.selected = false;\n\t\t});\n\n\t\titem.selected = true;\n\t}\n\n\tget _overflowItem() {\n\t\tconst overflowItem = this.shadowRoot!.querySelector<SideNavigationItem>(\".ui5-sn-item-overflow\");\n\t\tif (overflowItem) {\n\t\t\toverflowItem.sideNavigation = this;\n\t\t}\n\n\t\treturn overflowItem;\n\t}\n\n\tget isOverflow() {\n\t\treturn this._isOverflow;\n\t}\n\n\tget isSideNavigation() {\n\t\treturn true;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedItem?: UI5Element } | null) {\n\t\tif (!ref) {\n\t\t\treturn;\n\t\t}\n\n\t\tref.associatedItem = this;\n\n\t\tconst item = this as unknown as SideNavigationItem | SideNavigationSubItem;\n\t\tif (item.tag?.length > 0) {\n\t\t\tconst existingTags = Array.from(ref.children).filter(child => child.getAttribute(\"slot\") === \"tag\");\n\t\t\texistingTags.forEach(tag => tag.remove());\n\n\t\t\titem.tag.forEach((tagEl: HTMLElement) => {\n\t\t\t\tconst clonedTag = tagEl.cloneNode(true) as HTMLElement;\n\t\t\t\tclonedTag.setAttribute(\"slot\", \"tag\");\n\t\t\t\tref.appendChild(clonedTag);\n\t\t\t});\n\t\t}\n\t}\n}\n\nconst instanceOfItemOrGroup = createMultiInstanceChecker<SideNavigationItem | SideNavigationGroup>([\"isSideNavigationItem\", \"isSideNavigationGroup\"]);\n\nSideNavigation.define();\n\nexport const isInstanceOfSideNavigation = createInstanceChecker<SideNavigation>(\"isSideNavigation\");\nexport default SideNavigation;\n\nexport type {\n\tSideNavigationSelectionChangeEventDetail,\n\tSideNavigationItemClickEventDetail,\n\tSideNavigationItemToggleEventDetail,\n};\n"]}
|
package/dist/UserMenu.js
CHANGED
|
@@ -197,6 +197,7 @@ let UserMenu = UserMenu_1 = class UserMenu extends UI5Element {
|
|
|
197
197
|
this._titleMovedToHeader = false;
|
|
198
198
|
this._isScrolled = false;
|
|
199
199
|
this._setupObserver();
|
|
200
|
+
this._menuItems[0]?.getFocusDomRef()?.focus();
|
|
200
201
|
this.fireDecoratorEvent("open");
|
|
201
202
|
}
|
|
202
203
|
_handlePopoverAfterClose() {
|
package/dist/UserMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../src/UserMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tcustomElement, slotStrict as slot, eventStrict as event, property,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type Title from \"@ui5/webcomponents/dist/Title.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ListItemClickEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { PopupScrollEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isInstanceOfMenuItem } from \"@ui5/webcomponents/dist/MenuItem.js\";\nimport { isPhone, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UserMenuAccount from \"./UserMenuAccount.js\";\nimport type UserMenuItem from \"./UserMenuItem.js\";\nimport UserMenuTemplate from \"./UserMenuTemplate.js\";\nimport UserMenuCss from \"./generated/themes/UserMenu.css.js\";\n\n// Texts\nimport {\n\tUSER_MENU_OTHER_ACCOUNT_BUTTON_TXT,\n\tUSER_MENU_MANAGE_ACCOUNT_BUTTON_TXT,\n\tUSER_MENU_SIGN_OUT_BUTTON_TXT,\n\tUSER_MENU_POPOVER_ACCESSIBLE_NAME,\n\tUSER_MENU_EDIT_AVATAR_TXT,\n\tUSER_MENU_EDIT_ACCOUNTS_TXT,\n\tUSER_MENU_CLOSE_DIALOG_BUTTON,\n\tUSER_MENU_POPOVER_ACCESSIBLE_ACCOUNT_SELECTED_TXT,\n\tUSER_MENU_CURRENT_INFORMATION_TXT,\n\tUSER_MENU_ACTIONS_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\ntype UserMenuItemClickEventDetail = {\n\titem: UserMenuItem;\n}\n\ntype UserMenuOtherAccountClickEventDetail = {\n\tprevSelectedAccount: UserMenuAccount;\n\tselectedAccount: UserMenuAccount;\n}\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-menu` is an SAP Fiori specific web component that is used in `ui5-shellbar`\n * and allows the user to easily see information and settings for the current user and all other logged in accounts.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/UserMenu.js\";`\n *\n * `import \"@ui5/webcomponents-fiori/dist/UserMenuItem.js\";` (for `ui5-user-menu-item`)\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.5.0\n */\n\n@customElement({\n\ttag: \"ui5-user-menu\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: UserMenuTemplate,\n\tstyles: [UserMenuCss],\n})\n\n/**\n * Fired when the account avatar is selected.\n * @public\n */\n@event(\"avatar-click\")\n\n/**\n * Fired when the \"Manage Account\" button is selected.\n * @public\n */\n@event(\"manage-account-click\")\n\n/**\n * Fired when the \"Edit Accounts\" button is selected.\n * @public\n */\n@event(\"edit-accounts-click\")\n\n/**\n * Fired when the account is switched to a different one.\n * @param {UserMenuAccount} prevSelectedAccount The previously selected account.\n * @param {UserMenuAccount} selectedAccount The selected account.\n * @public\n */\n@event(\"change-account\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a menu item is selected.\n * @param {UserMenuItem} item The selected `user menu item`.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a user menu is open.\n * @public\n * @since 2.6.0\n */\n@event(\"open\")\n\n/**\n * Fired when a user menu is close.\n * @public\n * @since 2.6.0\n */\n@event(\"close\")\n\n/**\n * Fired when the \"Sign Out\" button is selected.\n * @public\n * @since 2.6.0\n */\n@event(\"sign-out-click\", {\n\tcancelable: true,\n})\nclass UserMenu extends UI5Element {\n\teventDetails!: {\n\t\t\"avatar-click\": void;\n\t\t\"manage-account-click\": void;\n\t\t\"edit-accounts-click\": void;\n\t\t\"change-account\": UserMenuOtherAccountClickEventDetail;\n\t\t\"item-click\": UserMenuItemClickEventDetail;\n\t\t\"sign-out-click\": void;\n\t\t\"open\": void;\n\t\t\"close\": void;\n\n\t}\n\t/**\n\t * Defines if the User Menu is opened.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the user menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string | null;\n\n\t/**\n\t * Defines if the User Menu shows the Manage Account option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowManageAccount = false;\n\n\t/**\n\t * Defines if the User Menu shows the Other Accounts option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowOtherAccounts = false;\n\n\t/**\n\t * Defines if the User Menu shows the Edit Accounts option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowEditAccounts = false;\n\n\t/**\n\t * Defines if the User menu shows edit button.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@property({ type: Boolean })\n\tshowEditButton = false;\n\n\t/**\n\t * Defines whether the avatar of the selected account is interactive (focusable and pressable).\n\t *\n\t * When `false` (default), the avatar is rendered as a non-interactive image\n\t * and is not announced as a button by screen readers.\n\t *\n\t * **Note:** When `showEditButton` is set to `true`, the avatar is treated as interactive\n\t * regardless of this property's value, to preserve the edit affordance.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.24.0\n\t */\n\t@property({ type: Boolean })\n\tavatarInteractive = false;\n\n\t/**\n\t * Defines the menu items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\tmenuItems!: DefaultSlot<UserMenuItem>;\n\n\t/**\n\t * Defines the user accounts.\n\t *\n\t * **Note:** If one item is used, it will be shown as the selected one. If more than one item is used, the first one will be shown as selected unless\n\t * there is an item with `selected` property set to `true`.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\taccounts!: Slot<UserMenuAccount>;\n\n\t/**\n\t * Defines custom footer content.\n\t *\n\t * **Note:** When provided, replaces the default \"Sign Out\" button. Use an empty element to hide the footer completely.\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@slot()\n\tfooter!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the content of the info area inside the User Menu's account block.\n\t *\n\t * **Note:** When empty, the User Menu renders unchanged.\n\t *\n\t * @public\n\t * @since 2.24.0\n\t */\n\t@slot()\n\tinfoArea!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_titleMovedToHeader = false;\n\n\t/**\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isScrolled = false;\n\n\t/**\n\t * @private\n\t */\n\t_selectedAccount!: UserMenuAccount;\n\n\t/**\n\t * @private\n\t */\n\t_observer?: IntersectionObserver;\n\n\t/**\n\t * @private\n\t */\n\t_timeout?: Timeout;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#user-menu-rp\")\n\t_responsivePopover?: ResponsivePopover;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#selected-account-title\")\n\t_selectedAccountTitleEl?: Title;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#selected-account-manage-btn\")\n\t_selectedAccountManageBtn?: Button;\n\n\tonBeforeRendering() {\n\t\tthis._selectedAccount = this.accounts.find(account => account.selected) || this.accounts[0];\n\t\tconst siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._menuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tif (this._responsivePopover && this.open && !this._observer) {\n\t\t\tthis._setupObserver();\n\t\t}\n\t}\n\n\t_setupObserver() {\n\t\tconst observerOptions = {\n\t\t\tthreshold: [0.15],\n\t\t};\n\n\t\tthis._observer?.disconnect();\n\t\tthis._observer = new IntersectionObserver(entries => this._handleIntersection(entries), observerOptions);\n\n\t\tif (this._selectedAccountTitleEl) {\n\t\t\tthis._observer.observe(this._selectedAccountTitleEl);\n\t\t}\n\n\t\tif (this._selectedAccountManageBtn) {\n\t\t\tthis._observer.observe(this._selectedAccountManageBtn);\n\t\t}\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_handleScroll(e: CustomEvent<PopupScrollEventDetail>) {\n\t\tthis._isScrolled = e.detail.scrollTop > 0;\n\t}\n\n\t_handleIntersection(entries: IntersectionObserverEntry[]) {\n\t\tentries.forEach(entry => {\n\t\t\tif (entry.isIntersecting) {\n\t\t\t\tif (entry.target.id === \"selected-account-title\") {\n\t\t\t\t\tthis._titleMovedToHeader = false;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (entry.target.id === \"selected-account-title\") {\n\t\t\t\tthis._titleMovedToHeader = true;\n\t\t\t}\n\t\t}, this);\n\t}\n\n\t_handleAvatarClick(e: CustomEvent) {\n\t\tif (e.type === \"click\") {\n\t\t\t// TOFIX: Discuss this check: Fire the custom UserMenu#avatar-click only for Avatar#click (not for Avatar#ui5-click as well).\n\t\t\tthis.fireDecoratorEvent(\"avatar-click\");\n\t\t}\n\t}\n\n\t_handleManageAccountClick() {\n\t\tthis.fireDecoratorEvent(\"manage-account-click\");\n\t}\n\n\t_handleEditAccountsClick() {\n\t\tthis.fireDecoratorEvent(\"edit-accounts-click\");\n\t}\n\n\t_handleAccountSwitch(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ListItemBase & { associatedAccount: UserMenuAccount };\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"change-account\", {\n\t\t\tprevSelectedAccount: this._selectedAccount,\n\t\t\tselectedAccount: item.associatedAccount,\n\t\t});\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\t\tthis._selectedAccount.selected = false;\n\t\titem.associatedAccount.selected = true;\n\t}\n\n\t_handleSignOutClick() {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"sign-out-click\");\n\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._closeUserMenu();\n\t}\n\n\t_handleMenuItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as UserMenuItem;\n\n\t\titem._updateCheckedState();\n\n\t\tif (!item._popover) {\n\t\t\tconst eventPrevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t});\n\n\t\t\tif (!eventPrevented) {\n\t\t\t\titem.fireEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._closeOtherSubMenus(item);\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_handleMenuItemClose() {\n\t\tthis._closeUserMenu();\n\t}\n\n\t_handlePopoverAfterOpen() {\n\t\tthis._titleMovedToHeader = false;\n\t\tthis._isScrolled = false;\n\t\tthis._setupObserver();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handlePopoverAfterClose() {\n\t\tthis._observer?.disconnect();\n\t\tthis._observer = undefined;\n\t\tthis._titleMovedToHeader = false;\n\t\tthis._isScrolled = false;\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as UserMenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\t_startOpenTimeout(item: UserMenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\t\t\tthis._openItemSubMenu(item, true);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_closeOtherSubMenus(item: UserMenuItem) {\n\t\tif (!this._menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._menuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_openItemSubMenu(item: UserMenuItem, openedByMouse = false) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t\titem._openedByMouse = openedByMouse;\n\t}\n\n\t_closeUserMenu() {\n\t\tthis.open = false;\n\t}\n\n\tget _otherAccounts() {\n\t\treturn this.accounts;\n\t}\n\n\tget _manageAccountButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_MANAGE_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _otherAccountsButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_OTHER_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _signOutButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_SIGN_OUT_BUTTON_TXT);\n\t}\n\n\tget _editAvatarTooltip() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_EDIT_AVATAR_TXT);\n\t}\n\n\tget _editAccountsTooltip() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_EDIT_ACCOUNTS_TXT);\n\t}\n\n\tget _closeDialogAriaLabel() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_CLOSE_DIALOG_BUTTON);\n\t}\n\n\tget accessibleNameText() {\n\t\tif (!this._selectedAccount) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn `${UserMenu.i18nBundle.getText(USER_MENU_POPOVER_ACCESSIBLE_NAME)} ${this._selectedAccount.titleText}`;\n\t}\n\n\tget _ariaLabelledByAccountInformationText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_CURRENT_INFORMATION_TXT);\n\t}\n\n\tget _ariaLabelledByActions() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_ACTIONS_TXT);\n\t}\n\n\tget _hasCustomFooter(): boolean {\n\t\treturn this.footer.length > 0 && this.footer[0]?.innerHTML.trim() !== \"\";\n\t}\n\n\tget _showDefaultFooter(): boolean {\n\t\treturn this.footer.length === 0;\n\t}\n\n\tget _hasInfoArea(): boolean {\n\t\treturn this.infoArea.length > 0;\n\t}\n\n\tget _isAvatarInteractive(): boolean {\n\t\treturn this.avatarInteractive || this.showEditButton;\n\t}\n\n\tgetAccountDescriptionText(account: UserMenuAccount) {\n\t\treturn `${account.titleText} ${account.subtitleText} ${account.description} ${account.selected ? UserMenu.i18nBundle.getText(USER_MENU_POPOVER_ACCESSIBLE_ACCOUNT_SELECTED_TXT) : \"\"}`;\n\t}\n\n\tgetAccountByRefId(refId: string) {\n\t\treturn this.accounts.find(account => account._id === refId)!;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedAccount?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.associatedAccount = this;\n\t\t}\n\t}\n\n\tget _menuItems() {\n\t\treturn this.menuItems.filter(isInstanceOfMenuItem);\n\t}\n}\n\nUserMenu.define();\n\nexport default UserMenu;\nexport type {\n\tUserMenuItemClickEventDetail,\n\tUserMenuOtherAccountClickEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../src/UserMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n\tcustomElement, slotStrict as slot, eventStrict as event, property,\n} from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport DOMReferenceConverter from \"@ui5/webcomponents-base/dist/converters/DOMReference.js\";\nimport type Title from \"@ui5/webcomponents/dist/Title.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type { ListItemClickEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { PopupScrollEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isInstanceOfMenuItem } from \"@ui5/webcomponents/dist/MenuItem.js\";\nimport { isPhone, isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type { Timeout } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type UserMenuAccount from \"./UserMenuAccount.js\";\nimport type UserMenuItem from \"./UserMenuItem.js\";\nimport UserMenuTemplate from \"./UserMenuTemplate.js\";\nimport UserMenuCss from \"./generated/themes/UserMenu.css.js\";\n\n// Texts\nimport {\n\tUSER_MENU_OTHER_ACCOUNT_BUTTON_TXT,\n\tUSER_MENU_MANAGE_ACCOUNT_BUTTON_TXT,\n\tUSER_MENU_SIGN_OUT_BUTTON_TXT,\n\tUSER_MENU_POPOVER_ACCESSIBLE_NAME,\n\tUSER_MENU_EDIT_AVATAR_TXT,\n\tUSER_MENU_EDIT_ACCOUNTS_TXT,\n\tUSER_MENU_CLOSE_DIALOG_BUTTON,\n\tUSER_MENU_POPOVER_ACCESSIBLE_ACCOUNT_SELECTED_TXT,\n\tUSER_MENU_CURRENT_INFORMATION_TXT,\n\tUSER_MENU_ACTIONS_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nconst MENU_OPEN_DELAY = 300;\n\ntype UserMenuItemClickEventDetail = {\n\titem: UserMenuItem;\n}\n\ntype UserMenuOtherAccountClickEventDetail = {\n\tprevSelectedAccount: UserMenuAccount;\n\tselectedAccount: UserMenuAccount;\n}\n\n/**\n * @class\n * ### Overview\n *\n * The `ui5-user-menu` is an SAP Fiori specific web component that is used in `ui5-shellbar`\n * and allows the user to easily see information and settings for the current user and all other logged in accounts.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents-fiori/dist/UserMenu.js\";`\n *\n * `import \"@ui5/webcomponents-fiori/dist/UserMenuItem.js\";` (for `ui5-user-menu-item`)\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.5.0\n */\n\n@customElement({\n\ttag: \"ui5-user-menu\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: UserMenuTemplate,\n\tstyles: [UserMenuCss],\n})\n\n/**\n * Fired when the account avatar is selected.\n * @public\n */\n@event(\"avatar-click\")\n\n/**\n * Fired when the \"Manage Account\" button is selected.\n * @public\n */\n@event(\"manage-account-click\")\n\n/**\n * Fired when the \"Edit Accounts\" button is selected.\n * @public\n */\n@event(\"edit-accounts-click\")\n\n/**\n * Fired when the account is switched to a different one.\n * @param {UserMenuAccount} prevSelectedAccount The previously selected account.\n * @param {UserMenuAccount} selectedAccount The selected account.\n * @public\n */\n@event(\"change-account\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a menu item is selected.\n * @param {UserMenuItem} item The selected `user menu item`.\n * @public\n */\n@event(\"item-click\", {\n\tcancelable: true,\n})\n\n/**\n * Fired when a user menu is open.\n * @public\n * @since 2.6.0\n */\n@event(\"open\")\n\n/**\n * Fired when a user menu is close.\n * @public\n * @since 2.6.0\n */\n@event(\"close\")\n\n/**\n * Fired when the \"Sign Out\" button is selected.\n * @public\n * @since 2.6.0\n */\n@event(\"sign-out-click\", {\n\tcancelable: true,\n})\nclass UserMenu extends UI5Element {\n\teventDetails!: {\n\t\t\"avatar-click\": void;\n\t\t\"manage-account-click\": void;\n\t\t\"edit-accounts-click\": void;\n\t\t\"change-account\": UserMenuOtherAccountClickEventDetail;\n\t\t\"item-click\": UserMenuItemClickEventDetail;\n\t\t\"sign-out-click\": void;\n\t\t\"open\": void;\n\t\t\"close\": void;\n\n\t}\n\t/**\n\t * Defines if the User Menu is opened.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the ID or DOM Reference of the element at which the user menu is shown.\n\t * When using this attribute in a declarative way, you must only use the `id` (as a string) of the element at which you want to show the popover.\n\t * You can only set the `opener` attribute to a DOM Reference when using JavaScript.\n\t * @public\n\t * @default undefined\n\t */\n\t@property({ converter: DOMReferenceConverter })\n\topener?: HTMLElement | string | null;\n\n\t/**\n\t * Defines if the User Menu shows the Manage Account option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowManageAccount = false;\n\n\t/**\n\t * Defines if the User Menu shows the Other Accounts option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowOtherAccounts = false;\n\n\t/**\n\t * Defines if the User Menu shows the Edit Accounts option.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowEditAccounts = false;\n\n\t/**\n\t * Defines if the User menu shows edit button.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@property({ type: Boolean })\n\tshowEditButton = false;\n\n\t/**\n\t * Defines whether the avatar of the selected account is interactive (focusable and pressable).\n\t *\n\t * When `false` (default), the avatar is rendered as a non-interactive image\n\t * and is not announced as a button by screen readers.\n\t *\n\t * **Note:** When `showEditButton` is set to `true`, the avatar is treated as interactive\n\t * regardless of this property's value, to preserve the edit affordance.\n\t *\n\t * @default false\n\t * @public\n\t * @since 2.24.0\n\t */\n\t@property({ type: Boolean })\n\tavatarInteractive = false;\n\n\t/**\n\t * Defines the menu items.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\tmenuItems!: DefaultSlot<UserMenuItem>;\n\n\t/**\n\t * Defines the user accounts.\n\t *\n\t * **Note:** If one item is used, it will be shown as the selected one. If more than one item is used, the first one will be shown as selected unless\n\t * there is an item with `selected` property set to `true`.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\taccounts!: Slot<UserMenuAccount>;\n\n\t/**\n\t * Defines custom footer content.\n\t *\n\t * **Note:** When provided, replaces the default \"Sign Out\" button. Use an empty element to hide the footer completely.\n\t * @public\n\t * @since 2.20.0\n\t */\n\t@slot()\n\tfooter!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the content of the info area inside the User Menu's account block.\n\t *\n\t * **Note:** When empty, the User Menu renders unchanged.\n\t *\n\t * @public\n\t * @since 2.24.0\n\t */\n\t@slot()\n\tinfoArea!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_titleMovedToHeader = false;\n\n\t/**\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_isScrolled = false;\n\n\t/**\n\t * @private\n\t */\n\t_selectedAccount!: UserMenuAccount;\n\n\t/**\n\t * @private\n\t */\n\t_observer?: IntersectionObserver;\n\n\t/**\n\t * @private\n\t */\n\t_timeout?: Timeout;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#user-menu-rp\")\n\t_responsivePopover?: ResponsivePopover;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#selected-account-title\")\n\t_selectedAccountTitleEl?: Title;\n\n\t/**\n\t * @private\n\t */\n\t@query(\"#selected-account-manage-btn\")\n\t_selectedAccountManageBtn?: Button;\n\n\tonBeforeRendering() {\n\t\tthis._selectedAccount = this.accounts.find(account => account.selected) || this.accounts[0];\n\t\tconst siblingsWithIcon = this._menuItems.some(menuItem => !!menuItem.icon);\n\n\t\tthis._menuItems.forEach(item => {\n\t\t\titem._siblingsWithIcon = siblingsWithIcon;\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tif (this._responsivePopover && this.open && !this._observer) {\n\t\t\tthis._setupObserver();\n\t\t}\n\t}\n\n\t_setupObserver() {\n\t\tconst observerOptions = {\n\t\t\tthreshold: [0.15],\n\t\t};\n\n\t\tthis._observer?.disconnect();\n\t\tthis._observer = new IntersectionObserver(entries => this._handleIntersection(entries), observerOptions);\n\n\t\tif (this._selectedAccountTitleEl) {\n\t\t\tthis._observer.observe(this._selectedAccountTitleEl);\n\t\t}\n\n\t\tif (this._selectedAccountManageBtn) {\n\t\t\tthis._observer.observe(this._selectedAccountManageBtn);\n\t\t}\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\t_handleScroll(e: CustomEvent<PopupScrollEventDetail>) {\n\t\tthis._isScrolled = e.detail.scrollTop > 0;\n\t}\n\n\t_handleIntersection(entries: IntersectionObserverEntry[]) {\n\t\tentries.forEach(entry => {\n\t\t\tif (entry.isIntersecting) {\n\t\t\t\tif (entry.target.id === \"selected-account-title\") {\n\t\t\t\t\tthis._titleMovedToHeader = false;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (entry.target.id === \"selected-account-title\") {\n\t\t\t\tthis._titleMovedToHeader = true;\n\t\t\t}\n\t\t}, this);\n\t}\n\n\t_handleAvatarClick(e: CustomEvent) {\n\t\tif (e.type === \"click\") {\n\t\t\t// TOFIX: Discuss this check: Fire the custom UserMenu#avatar-click only for Avatar#click (not for Avatar#ui5-click as well).\n\t\t\tthis.fireDecoratorEvent(\"avatar-click\");\n\t\t}\n\t}\n\n\t_handleManageAccountClick() {\n\t\tthis.fireDecoratorEvent(\"manage-account-click\");\n\t}\n\n\t_handleEditAccountsClick() {\n\t\tthis.fireDecoratorEvent(\"edit-accounts-click\");\n\t}\n\n\t_handleAccountSwitch(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as ListItemBase & { associatedAccount: UserMenuAccount };\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"change-account\", {\n\t\t\tprevSelectedAccount: this._selectedAccount,\n\t\t\tselectedAccount: item.associatedAccount,\n\t\t});\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\t\tthis._selectedAccount.selected = false;\n\t\titem.associatedAccount.selected = true;\n\t}\n\n\t_handleSignOutClick() {\n\t\tconst eventPrevented = !this.fireDecoratorEvent(\"sign-out-click\");\n\n\t\tif (eventPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._closeUserMenu();\n\t}\n\n\t_handleMenuItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst item = e.detail.item as UserMenuItem;\n\n\t\titem._updateCheckedState();\n\n\t\tif (!item._popover) {\n\t\t\tconst eventPrevented = !this.fireDecoratorEvent(\"item-click\", {\n\t\t\t\t\"item\": item,\n\t\t\t});\n\n\t\t\tif (!eventPrevented) {\n\t\t\t\titem.fireEvent(\"close-menu\");\n\t\t\t}\n\t\t} else {\n\t\t\tthis._closeOtherSubMenus(item);\n\t\t\tthis._openItemSubMenu(item);\n\t\t}\n\t}\n\n\t_handleMenuItemClose() {\n\t\tthis._closeUserMenu();\n\t}\n\n\t_handlePopoverAfterOpen() {\n\t\tthis._titleMovedToHeader = false;\n\t\tthis._isScrolled = false;\n\t\tthis._setupObserver();\n\t\tthis._menuItems[0]?.getFocusDomRef()?.focus();\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handlePopoverAfterClose() {\n\t\tthis._observer?.disconnect();\n\t\tthis._observer = undefined;\n\t\tthis._titleMovedToHeader = false;\n\t\tthis._isScrolled = false;\n\t\tthis.open = false;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_itemMouseOver(e: MouseEvent) {\n\t\tif (!isDesktop()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst item = e.target as UserMenuItem;\n\t\tif (!isInstanceOfMenuItem(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\titem.getFocusDomRef()?.focus();\n\t\tthis._startOpenTimeout(item);\n\t}\n\n\t_startOpenTimeout(item: UserMenuItem) {\n\t\tclearTimeout(this._timeout);\n\n\t\tthis._timeout = setTimeout(() => {\n\t\t\tthis._closeOtherSubMenus(item);\n\t\t\tthis._openItemSubMenu(item, true);\n\t\t}, MENU_OPEN_DELAY);\n\t}\n\n\t_closeOtherSubMenus(item: UserMenuItem) {\n\t\tif (!this._menuItems.includes(item)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._menuItems.forEach(menuItem => {\n\t\t\tif (menuItem !== item) {\n\t\t\t\tmenuItem._close();\n\t\t\t}\n\t\t});\n\t}\n\n\t_openItemSubMenu(item: UserMenuItem, openedByMouse = false) {\n\t\tclearTimeout(this._timeout);\n\n\t\tif (!item._popover || item._popover.open) {\n\t\t\treturn;\n\t\t}\n\n\t\titem._popover.opener = item;\n\t\titem._popover.open = true;\n\t\titem.selected = true;\n\t\titem._openedByMouse = openedByMouse;\n\t}\n\n\t_closeUserMenu() {\n\t\tthis.open = false;\n\t}\n\n\tget _otherAccounts() {\n\t\treturn this.accounts;\n\t}\n\n\tget _manageAccountButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_MANAGE_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _otherAccountsButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_OTHER_ACCOUNT_BUTTON_TXT);\n\t}\n\n\tget _signOutButtonText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_SIGN_OUT_BUTTON_TXT);\n\t}\n\n\tget _editAvatarTooltip() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_EDIT_AVATAR_TXT);\n\t}\n\n\tget _editAccountsTooltip() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_EDIT_ACCOUNTS_TXT);\n\t}\n\n\tget _closeDialogAriaLabel() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_CLOSE_DIALOG_BUTTON);\n\t}\n\n\tget accessibleNameText() {\n\t\tif (!this._selectedAccount) {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn `${UserMenu.i18nBundle.getText(USER_MENU_POPOVER_ACCESSIBLE_NAME)} ${this._selectedAccount.titleText}`;\n\t}\n\n\tget _ariaLabelledByAccountInformationText() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_CURRENT_INFORMATION_TXT);\n\t}\n\n\tget _ariaLabelledByActions() {\n\t\treturn UserMenu.i18nBundle.getText(USER_MENU_ACTIONS_TXT);\n\t}\n\n\tget _hasCustomFooter(): boolean {\n\t\treturn this.footer.length > 0 && this.footer[0]?.innerHTML.trim() !== \"\";\n\t}\n\n\tget _showDefaultFooter(): boolean {\n\t\treturn this.footer.length === 0;\n\t}\n\n\tget _hasInfoArea(): boolean {\n\t\treturn this.infoArea.length > 0;\n\t}\n\n\tget _isAvatarInteractive(): boolean {\n\t\treturn this.avatarInteractive || this.showEditButton;\n\t}\n\n\tgetAccountDescriptionText(account: UserMenuAccount) {\n\t\treturn `${account.titleText} ${account.subtitleText} ${account.description} ${account.selected ? UserMenu.i18nBundle.getText(USER_MENU_POPOVER_ACCESSIBLE_ACCOUNT_SELECTED_TXT) : \"\"}`;\n\t}\n\n\tgetAccountByRefId(refId: string) {\n\t\treturn this.accounts.find(account => account._id === refId)!;\n\t}\n\n\tcaptureRef(ref: HTMLElement & { associatedAccount?: UI5Element} | null) {\n\t\tif (ref) {\n\t\t\tref.associatedAccount = this;\n\t\t}\n\t}\n\n\tget _menuItems() {\n\t\treturn this.menuItems.filter(isInstanceOfMenuItem);\n\t}\n}\n\nUserMenu.define();\n\nexport default UserMenu;\nexport type {\n\tUserMenuItemClickEventDetail,\n\tUserMenuOtherAccountClickEventDetail,\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type UserMenuItem from "./UserMenuItem.js";
|
|
2
|
-
export default function UserMenuItemTemplate(this: UserMenuItem): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element[];
|
|
2
|
+
export default function UserMenuItemTemplate(this: UserMenuItem): (false | import("@ui5/webcomponents-base/jsx-runtime").JSX.Element)[];
|
|
@@ -1,12 +1,62 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
|
|
2
2
|
import MenuItemTemplate from "@ui5/webcomponents/dist/MenuItemTemplate.js";
|
|
3
|
+
import ListItemTemplate from "@ui5/webcomponents/dist/ListItemTemplate.js";
|
|
4
|
+
import ResponsivePopover from "@ui5/webcomponents/dist/ResponsivePopover.js";
|
|
5
|
+
import Button from "@ui5/webcomponents/dist/Button.js";
|
|
6
|
+
import List from "@ui5/webcomponents/dist/List.js";
|
|
7
|
+
import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
|
|
8
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
9
|
+
import PopoverPlacement from "@ui5/webcomponents/dist/types/PopoverPlacement.js";
|
|
10
|
+
import navBackIcon from "@ui5/webcomponents-icons/dist/nav-back.js";
|
|
11
|
+
import declineIcon from "@ui5/webcomponents-icons/dist/decline.js";
|
|
12
|
+
import checkIcon from "@ui5/webcomponents-icons/dist/accept.js";
|
|
13
|
+
import slimArrowRight from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
3
14
|
export default function UserMenuItemTemplate() {
|
|
15
|
+
if (this.isPhone) {
|
|
16
|
+
return phoneTemplate.call(this);
|
|
17
|
+
}
|
|
4
18
|
const hooks = {};
|
|
5
19
|
if (this.showSelection) {
|
|
6
20
|
hooks.menuItemTextContent = userMenuItemTextContent;
|
|
7
21
|
}
|
|
8
22
|
return [MenuItemTemplate.call(this, hooks)];
|
|
9
23
|
}
|
|
24
|
+
function phoneTemplate() {
|
|
25
|
+
const hooks = {
|
|
26
|
+
iconBegin() {
|
|
27
|
+
if (this.hasIcon) {
|
|
28
|
+
return _jsx(Icon, { class: "ui5-li-icon", name: this.icon });
|
|
29
|
+
}
|
|
30
|
+
if (this._siblingsWithIcon) {
|
|
31
|
+
return _jsx("div", { class: "ui5-menu-item-dummy-icon" });
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
listItemContent() {
|
|
35
|
+
return (_jsxs(_Fragment, { children: [this.showSelection ? (_jsxs("div", { class: "ui5-user-menu-item-text-wrapper", children: [this.text && _jsx("div", { class: "ui5-menu-item-text", children: this.text }), this._selectedSubItemText &&
|
|
36
|
+
_jsx("div", { class: "ui5-user-menu-item-selection-text", children: this._selectedSubItemText })] })) : (_jsx(_Fragment, { children: this.text && _jsx("div", { class: "ui5-menu-item-text", children: this.text }) })), rightContent.call(this), checkmarkContent.call(this)] }));
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
return [
|
|
40
|
+
ListItemTemplate.call(this, hooks),
|
|
41
|
+
phoneSubmenuPopover.call(this),
|
|
42
|
+
];
|
|
43
|
+
}
|
|
44
|
+
function checkmarkContent() {
|
|
45
|
+
return !this._markChecked ? "" : (_jsx("div", { class: "ui5-menu-item-checked", children: _jsx(Icon, { name: checkIcon, class: "ui5-menu-item-icon-checked" }) }));
|
|
46
|
+
}
|
|
47
|
+
function rightContent() {
|
|
48
|
+
switch (true) {
|
|
49
|
+
case this.hasSubmenu:
|
|
50
|
+
return (_jsx("div", { class: "ui5-menu-item-submenu-icon", children: _jsx(Icon, { part: "subicon", name: slimArrowRight, class: "ui5-menu-item-icon-end" }) }));
|
|
51
|
+
case this.hasEndContent:
|
|
52
|
+
return (_jsx("div", { class: "ui5-menu-item-end-content", role: "group", "aria-label": this.endContentAccessibleName, children: _jsx("slot", { name: "endContent", onKeyDown: this._endContentKeyDown }) }));
|
|
53
|
+
case !!this.additionalText:
|
|
54
|
+
return (_jsx("span", { part: "additional-text", class: "ui5-li-additional-text", "aria-hidden": this._accInfo.ariaHidden, children: this.additionalText }));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function phoneSubmenuPopover() {
|
|
58
|
+
return this.hasSubmenu && _jsxs(ResponsivePopover, { id: `${this._id}-menu-rp`, class: "ui5-menu-rp ui5-menu-rp-sub-menu", preventInitialFocus: true, preventFocusRestore: true, hideArrow: true, allowTargetOverlap: true, placement: PopoverPlacement.End, verticalAlign: "Top", accessibleName: this.accessibleNameText, onBeforeOpen: this._beforePopoverOpen, onOpen: this._afterPopoverOpen, onBeforeClose: this._beforePopoverClose, onClose: this._afterPopoverClose, children: [_jsxs("div", { slot: "header", class: "ui5-menu-dialog-header", children: [_jsx(Button, { icon: navBackIcon, class: "ui5-menu-back-button", design: "Transparent", "aria-label": this.labelBack, onClick: this._close }), _jsx("div", { class: "ui5-menu-dialog-title", children: _jsx("div", { children: this.text }) }), _jsx(Button, { icon: declineIcon, class: "ui5-menu-close-button", design: "Transparent", "aria-label": this.labelCancel, onClick: this._closeAll })] }), _jsx("div", { id: `${this._id}-menu-main`, class: this.loading ? "menu-busy-indicator-main" : "", "aria-busy": this.loading, children: this.items.length ? (_jsx(List, { id: `${this._id}-menu-list`, selectionMode: "None", separators: "None", accessibleRole: "Menu", loading: this.loading, loadingDelay: this.loadingDelay, onMouseOver: this._itemMouseOver, onKeyDown: this._itemKeyDown, onKeyUp: this._itemKeyUp, "onui5-close-menu": this._close, "onui5-exit-end-content": this._navigateOutOfEndContent, children: _jsx("slot", {}) })) : this.loading && _jsx(BusyIndicator, { id: `${this._id}-menu-busy-indicator`, delay: this.loadingDelay, class: "ui5-menu-busy-indicator", active: true }) })] });
|
|
59
|
+
}
|
|
10
60
|
function userMenuItemTextContent() {
|
|
11
61
|
return (_jsxs("div", { class: "ui5-user-menu-item-text-wrapper", children: [this.text && _jsx("div", { class: "ui5-menu-item-text", children: this.text }), this._selectedSubItemText &&
|
|
12
62
|
_jsx("div", { class: "ui5-user-menu-item-selection-text", children: this._selectedSubItemText })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserMenuItemTemplate.js","sourceRoot":"","sources":["../src/UserMenuItemTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,gBAAgB,MAAM,6CAA6C,CAAC;AAG3E,MAAM,CAAC,OAAO,UAAU,oBAAoB;IAC3C,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,KAAK,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;IACrD,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB;IAC/B,OAAO,CACN,eAAK,KAAK,EAAC,iCAAiC,aAC1C,IAAI,CAAC,IAAI,IAAI,cAAK,KAAK,EAAC,oBAAoB,YAAE,IAAI,CAAC,IAAI,GAAO,EAC9D,IAAI,CAAC,oBAAoB;gBACzB,cAAK,KAAK,EAAC,mCAAmC,YAAE,IAAI,CAAC,oBAAoB,GAAO,IAE5E,CACN,CAAC;AACH,CAAC","sourcesContent":["import type UserMenuItem from \"./UserMenuItem.js\";\nimport MenuItemTemplate from \"@ui5/webcomponents/dist/MenuItemTemplate.js\";\nimport type { MenuItemHooks } from \"@ui5/webcomponents/dist/MenuItemTemplate.js\";\n\nexport default function UserMenuItemTemplate(this: UserMenuItem) {\n\tconst hooks: Partial<MenuItemHooks> = {};\n\n\tif (this.showSelection) {\n\t\thooks.menuItemTextContent = userMenuItemTextContent;\n\t}\n\n\treturn [MenuItemTemplate.call(this, hooks)];\n}\n\nfunction userMenuItemTextContent(this: UserMenuItem) {\n\treturn (\n\t\t<div class=\"ui5-user-menu-item-text-wrapper\">\n\t\t\t{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}\n\t\t\t{this._selectedSubItemText &&\n\t\t\t\t<div class=\"ui5-user-menu-item-selection-text\">{this._selectedSubItemText}</div>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UserMenuItemTemplate.js","sourceRoot":"","sources":["../src/UserMenuItemTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UserMenuItem from \"./UserMenuItem.js\";\nimport MenuItemTemplate from \"@ui5/webcomponents/dist/MenuItemTemplate.js\";\nimport type { MenuItemHooks } from \"@ui5/webcomponents/dist/MenuItemTemplate.js\";\nimport ListItemTemplate from \"@ui5/webcomponents/dist/ListItemTemplate.js\";\nimport type { ListItemHooks } from \"@ui5/webcomponents/dist/ListItemTemplate.js\";\nimport ResponsivePopover from \"@ui5/webcomponents/dist/ResponsivePopover.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport navBackIcon from \"@ui5/webcomponents-icons/dist/nav-back.js\";\nimport declineIcon from \"@ui5/webcomponents-icons/dist/decline.js\";\nimport checkIcon from \"@ui5/webcomponents-icons/dist/accept.js\";\nimport slimArrowRight from \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\nexport default function UserMenuItemTemplate(this: UserMenuItem) {\n\tif (this.isPhone) {\n\t\treturn phoneTemplate.call(this);\n\t}\n\n\tconst hooks: Partial<MenuItemHooks> = {};\n\tif (this.showSelection) {\n\t\thooks.menuItemTextContent = userMenuItemTextContent;\n\t}\n\treturn [MenuItemTemplate.call(this, hooks)];\n}\n\nfunction phoneTemplate(this: UserMenuItem) {\n\tconst hooks: Partial<ListItemHooks> = {\n\t\ticonBegin(this: UserMenuItem) {\n\t\t\tif (this.hasIcon) {\n\t\t\t\treturn <Icon class=\"ui5-li-icon\" name={this.icon} />;\n\t\t\t}\n\t\t\tif (this._siblingsWithIcon) {\n\t\t\t\treturn <div class=\"ui5-menu-item-dummy-icon\"></div>;\n\t\t\t}\n\t\t},\n\t\tlistItemContent(this: UserMenuItem) {\n\t\t\treturn (<>\n\t\t\t\t{this.showSelection ? (\n\t\t\t\t\t<div class=\"ui5-user-menu-item-text-wrapper\">\n\t\t\t\t\t\t{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}\n\t\t\t\t\t\t{this._selectedSubItemText &&\n\t\t\t\t\t\t\t<div class=\"ui5-user-menu-item-selection-text\">{this._selectedSubItemText}</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<>{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}</>\n\t\t\t\t)}\n\t\t\t\t{rightContent.call(this)}\n\t\t\t\t{checkmarkContent.call(this)}\n\t\t\t</>);\n\t\t},\n\t};\n\n\treturn [\n\t\tListItemTemplate.call(this, hooks),\n\t\tphoneSubmenuPopover.call(this),\n\t];\n}\n\nfunction checkmarkContent(this: UserMenuItem) {\n\treturn !this._markChecked ? \"\" : (\n\t\t<div class=\"ui5-menu-item-checked\">\n\t\t\t<Icon name={checkIcon} class=\"ui5-menu-item-icon-checked\" />\n\t\t</div>\n\t);\n}\n\nfunction rightContent(this: UserMenuItem) {\n\tswitch (true) {\n\tcase this.hasSubmenu:\n\t\treturn (\n\t\t\t<div class=\"ui5-menu-item-submenu-icon\">\n\t\t\t\t<Icon part=\"subicon\" name={slimArrowRight} class=\"ui5-menu-item-icon-end\" />\n\t\t\t</div>\n\t\t);\n\tcase this.hasEndContent:\n\t\treturn (\n\t\t\t<div class=\"ui5-menu-item-end-content\" role=\"group\" aria-label={this.endContentAccessibleName}>\n\t\t\t\t<slot name=\"endContent\" onKeyDown={this._endContentKeyDown}></slot>\n\t\t\t</div>\n\t\t);\n\tcase !!this.additionalText:\n\t\treturn (\n\t\t\t<span part=\"additional-text\" class=\"ui5-li-additional-text\" aria-hidden={this._accInfo.ariaHidden}>\n\t\t\t\t{this.additionalText}\n\t\t\t</span>\n\t\t);\n\t}\n}\n\nfunction phoneSubmenuPopover(this: UserMenuItem) {\n\treturn this.hasSubmenu && <ResponsivePopover\n\t\tid={`${this._id}-menu-rp`}\n\t\tclass=\"ui5-menu-rp ui5-menu-rp-sub-menu\"\n\t\tpreventInitialFocus={true}\n\t\tpreventFocusRestore={true}\n\t\thideArrow={true}\n\t\tallowTargetOverlap={true}\n\t\tplacement={PopoverPlacement.End}\n\t\tverticalAlign=\"Top\"\n\t\taccessibleName={this.accessibleNameText}\n\t\tonBeforeOpen={this._beforePopoverOpen}\n\t\tonOpen={this._afterPopoverOpen}\n\t\tonBeforeClose={this._beforePopoverClose}\n\t\tonClose={this._afterPopoverClose}\n\t>\n\t\t<div slot=\"header\" class=\"ui5-menu-dialog-header\">\n\t\t\t<Button\n\t\t\t\ticon={navBackIcon}\n\t\t\t\tclass=\"ui5-menu-back-button\"\n\t\t\t\tdesign=\"Transparent\"\n\t\t\t\taria-label={this.labelBack}\n\t\t\t\tonClick={this._close}\n\t\t\t/>\n\t\t\t<div class=\"ui5-menu-dialog-title\">\n\t\t\t\t<div>{this.text}</div>\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\ticon={declineIcon}\n\t\t\t\tclass=\"ui5-menu-close-button\"\n\t\t\t\tdesign=\"Transparent\"\n\t\t\t\taria-label={this.labelCancel}\n\t\t\t\tonClick={this._closeAll}\n\t\t\t/>\n\t\t</div>\n\n\t\t<div\n\t\t\tid={`${this._id}-menu-main`}\n\t\t\tclass={this.loading ? \"menu-busy-indicator-main\" : \"\"}\n\t\t\taria-busy={this.loading}\n\t\t>\n\t\t\t{this.items.length ? (\n\t\t\t\t<List\n\t\t\t\t\tid={`${this._id}-menu-list`}\n\t\t\t\t\tselectionMode=\"None\"\n\t\t\t\t\tseparators=\"None\"\n\t\t\t\t\taccessibleRole=\"Menu\"\n\t\t\t\t\tloading={this.loading}\n\t\t\t\t\tloadingDelay={this.loadingDelay}\n\t\t\t\t\tonMouseOver={this._itemMouseOver}\n\t\t\t\t\tonKeyDown={this._itemKeyDown}\n\t\t\t\t\tonKeyUp={this._itemKeyUp}\n\t\t\t\t\tonui5-close-menu={this._close}\n\t\t\t\t\tonui5-exit-end-content={this._navigateOutOfEndContent}\n\t\t\t\t>\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</List>\n\t\t\t) : this.loading && <BusyIndicator\n\t\t\t\tid={`${this._id}-menu-busy-indicator`}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tclass=\"ui5-menu-busy-indicator\"\n\t\t\t\tactive={true}\n\t\t\t/>}\n\t\t</div>\n\t</ResponsivePopover>;\n}\n\nfunction userMenuItemTextContent(this: UserMenuItem) {\n\treturn (\n\t\t<div class=\"ui5-user-menu-item-text-wrapper\">\n\t\t\t{this.text && <div class=\"ui5-menu-item-text\">{this.text}</div>}\n\t\t\t{this._selectedSubItemText &&\n\t\t\t\t<div class=\"ui5-user-menu-item-selection-text\">{this._selectedSubItemText}</div>\n\t\t\t}\n\t\t</div>\n\t);\n}\n"]}
|