@sapudex/web-components 2.30.0 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cypress/specs/ListItem.cy.tsx +22 -26
- package/cypress/specs/PromoTile.cy.tsx +10 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +12 -12
- package/cypress/specs/SelectBox.cy.tsx +76 -0
- package/dist/Breadcrumbs.d.ts +0 -4
- package/dist/Breadcrumbs.js +7 -16
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/BreadcrumbsTemplate.js +1 -1
- package/dist/BreadcrumbsTemplate.js.map +1 -1
- package/dist/List.js +3 -3
- package/dist/List.js.map +1 -1
- package/dist/ListItemBase.d.ts +0 -2
- package/dist/ListItemBase.js +0 -6
- package/dist/ListItemBase.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +3 -15
- package/dist/MastheadCountrySelector.js +28 -72
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +1 -0
- package/dist/MastheadItem.js +7 -0
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +7 -0
- package/dist/MastheadMenuItem.js +3 -0
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +2 -12
- package/dist/MastheadMobileMenu.js +31 -116
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.js +1 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +1 -6
- package/dist/MastheadShell.js +7 -44
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Pagination.d.ts +14 -1
- package/dist/Pagination.js +39 -6
- package/dist/Pagination.js.map +1 -1
- package/dist/PromoTile.d.ts +8 -0
- package/dist/PromoTile.js +4 -0
- package/dist/PromoTile.js.map +1 -1
- package/dist/PromoTileTemplate.js +3 -1
- package/dist/PromoTileTemplate.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +7 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBase.js +28 -7
- package/dist/SelectBase.js.map +1 -1
- package/dist/assets/{InputSuggestions-CaAXs3ok.js → InputSuggestions-i2kFpCfC.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-CPqUBd--.js → ListItemStandardExpandableTextTemplate-C1ceDaxu.js} +1 -1
- package/dist/assets/{bundle.esm-L-7H6J4f.js → bundle.esm-DQ3cxywT.js} +209 -209
- package/dist/assets/messagebundle_en-DWAgV5VH.js +1 -0
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +32 -13
- package/dist/custom-elements.json +32 -13
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +12 -16
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +32 -36
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +9 -10
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.d.ts +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/Link.css.d.ts +1 -1
- package/dist/generated/themes/Link.css.js +1 -1
- package/dist/generated/themes/Link.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_en.properties +1 -0
- package/dist/types/List.d.ts +0 -2
- package/dist/types/List.js +0 -2
- package/dist/types/List.js.map +1 -1
- package/dist/vscode.html-custom-data.json +22 -73
- package/dist/web-types.json +33 -73
- package/package.json +2 -1
- package/src/Breadcrumbs.ts +8 -20
- package/src/BreadcrumbsTemplate.tsx +1 -1
- package/src/List.ts +3 -3
- package/src/ListGroupHeader.hbs +7 -11
- package/src/ListItem.hbs +0 -2
- package/src/ListItemBase.ts +0 -8
- package/src/MastheadCountrySelector.hbs +5 -2
- package/src/MastheadCountrySelector.ts +31 -85
- package/src/MastheadItem.ts +8 -0
- package/src/MastheadMenuItem.hbs +1 -0
- package/src/MastheadMenuItem.ts +9 -0
- package/src/MastheadMobileMenu.hbs +0 -1
- package/src/MastheadMobileMenu.ts +34 -130
- package/src/MastheadProfileMenu.ts +1 -1
- package/src/MastheadShell.hbs +9 -11
- package/src/MastheadShell.ts +8 -50
- package/src/Pagination.ts +51 -7
- package/src/PromoTile.ts +10 -0
- package/src/PromoTileTemplate.tsx +4 -1
- package/src/SecondaryNavigationItem.ts +1 -2
- package/src/SelectBase.ts +33 -7
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +12 -16
- package/src/generated/templates/ListItemTemplate.lit.ts +32 -36
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadShellTemplate.lit.ts +9 -10
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/BreadcrumbsPopover.css +2 -0
- package/src/themes/Dropdown.css +5 -1
- package/src/themes/Link.css +2 -3
- package/src/themes/ListGroupHeader.css +3 -11
- package/src/themes/MastheadCountrySelector.css +2 -2
- package/src/themes/MastheadItem.css +57 -0
- package/src/themes/MastheadShell.css +0 -2
- package/src/themes/SecondaryNavigation.css +6 -3
- package/src/themes/SecondaryNavigationItem.css +11 -10
- package/src/themes/SecondaryNavigationSubItem.css +3 -2
- package/src/types/List.ts +0 -2
- package/dist/assets/messagebundle_en-J-MHTtdL.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadMobileMenu.js","sourceRoot":"","sources":["../src/MastheadMobileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n isUp, isDown, isRight, isLeft, isHome, isEnd,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { MenuItem, SubMenuLinkItem } from \"./MastheadItem.js\";\nimport type UDExMastheadItem from \"./MastheadItem.js\";\nimport type UDExSearch from \"./Search.js\";\nimport UDExMastheadMenuItem, { UDExItemType } from \"./MastheadMenuItem.js\";\nimport { OVERVIEW } from \"./generated/i18n/i18n-defaults.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport MastheadMobileMenuTemplate from \"./generated/templates/MastheadMobileMenuTemplate.lit.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadMobileMenuCss from \"./generated/themes/MastheadMobileMenu.css.js\";\n\nconst INDEX_OFFSET_WITH_OVERVIEW = 2;\nconst INDEX_OFFSET_WITHOUT_OVERVIEW = 1;\n\ntype UDExMastheadMobileMenuItemClickEventDetail = {\n originalEvent: PointerEvent | KeyboardEvent,\n item: UDExMastheadMenuItem,\n category?: string,\n isMobile: boolean,\n isBack: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadMobileMenuExploreClickEventDetail = {\n originalEvent: PointerEvent | KeyboardEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-mobile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadMobileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-mobile-menu\",\n renderer: litRender,\n styles: MastheadMobileMenuCss,\n template: MastheadMobileMenuTemplate,\n dependencies: [UDExMastheadMenuItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {PointerEvent | KeyboardEvent} originalEvent The original event object\n * @param {UDExMastheadMenuItem} item The clicked item\n * @param {string} [category] The category of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened in mobile menu\n * @param {boolean} isBack Indicates whether the clicked item is a back button\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {Array<string>} analyticsPath The analytics path for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n */\n@event(\"item-click\", { cancelable: true, bubbles: false })\n\n/**\n * Fires when explorer menu button is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {PointerEvent | KeyboardEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n */\n@event(\"explorer-menu-click\", { bubbles: true })\n\nclass UDExMastheadMobileMenu extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExMastheadMobileMenuItemClickEventDetail,\n \"explorer-menu-click\": UDExMastheadMobileMenuExploreClickEventDetail,\n };\n /**\n * Slot for search\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * List of the menu items\n *\n * @default \"[]\"\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExMastheadItem>;\n\n /**\n * Slot for explore Sap mobile button\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSapMobileButton?: UDExMastheadItem;\n\n @property({ type: Boolean })\n _showCategories!: boolean;\n\n @property({ type: Boolean })\n _hideExploreSapBtn!: boolean;\n\n @property({ type: Boolean })\n _showCategoryItems!: boolean;\n\n @property({ type: String })\n _direction?: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _clickedItem!: UDExMastheadItem;\n _categories!: Array<SubMenuLinkItem>;\n _category!: SubMenuLinkItem;\n _shouldFocusItemByIndex!: boolean;\n _shouldFocusExploreBtn!: boolean;\n _focusedItemIndex!: number;\n _navItem?: UDExMastheadMenuItem;\n _mastheadShell!: UDExMastheadShell;\n\n onAfterRendering() {\n this._mastheadShell = this.mastheadShell;\n this.handleMenuMode();\n this.setTabIndexForItems();\n this.handleFocusItem();\n }\n\n handleMenuItemClick(e: PointerEvent) {\n e.preventDefault();\n e.stopPropagation();\n const item = this.getClickedItem(e.target as UDExMastheadItem);\n this.openCategories(item);\n this.setFocusItemByIndex(0);\n this.fireMobileItemEvent(e);\n }\n\n handleMenuCategoryClick(e: PointerEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.openCategoryItems(e);\n this.setFocusItemByIndex(0);\n this.fireMobileItemEvent(e);\n }\n\n handleExploreSapClick(e: PointerEvent) {\n e.preventDefault();\n this.openExploreSapMenu(e);\n this.setFocusItemByIndex(0);\n this.fireExploreSapMobileButton(e);\n }\n\n handleBackToMenuItems(e: PointerEvent) {\n e.stopPropagation();\n this.showFirstLevelMenu();\n this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));\n this.fireMobileItemEvent(e);\n }\n\n handleBackToCategories(e: PointerEvent) {\n e.stopPropagation();\n this.showCategories();\n this.setFocusItemByIndex(this._category.index);\n this.fireMobileItemEvent(e);\n }\n\n handleExploreBackToMenuItems(e: PointerEvent) {\n e.stopPropagation();\n this.showFirstLevelMenu();\n this.setFocusExploreBtn();\n this.fireMobileItemEvent(e);\n }\n\n handlePressKey(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleLeftRightKeys(e);\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n handleLeftRightKeys(e: KeyboardEvent) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n this.handleDirection();\n if (this.isRtlDirection) {\n this.moveToBackWithKeyboard(e);\n } else {\n this.moveToNextLevelWithKeyboard(e);\n }\n }\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n this.handleDirection();\n if (this.isRtlDirection) {\n this.moveToNextLevelWithKeyboard(e);\n } else {\n this.moveToBackWithKeyboard(e);\n }\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n this.focusPreviousItem(e);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n this.focusNextItem(e);\n }\n }\n\n handleDirection() {\n const directionStyles: string = window.getComputedStyle(this).getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n handleMobileItemEvent(e: PointerEvent) {\n e.stopPropagation();\n this.fireMobileItemEvent(e);\n }\n\n handleMobileCategoryItemEvent(e: PointerEvent) {\n e.stopPropagation();\n this.fireMobileItemEvent(e, this._category.category);\n }\n\n handleMenuMode() {\n if (this.isNoMenuItemsMode && this.hasExploreBtnSlot) {\n this.openCategories(this.exploreItem);\n }\n\n if (this.isSingleMenuMode && !this._hideExploreSapBtn) {\n this.openCategories(this.items[0]);\n }\n }\n\n handleFocusItem() {\n if (this._shouldFocusItemByIndex) {\n this.focusItemByIndex(this._focusedItemIndex);\n }\n\n if (this._shouldFocusExploreBtn) {\n this.focusExploreBtn();\n }\n }\n\n moveToBackWithKeyboard(e: KeyboardEvent) {\n const target = e.target as UDExMastheadMenuItem;\n if (target.hasAttribute(\"is-back-to-nav\")) {\n this.showFirstLevelMenu();\n this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));\n this.fireMobileItemEvent(e);\n }\n\n if (target.hasAttribute(\"is-back-to-categories\")) {\n this.showCategories();\n this.setFocusItemByIndex(this._category.index);\n this.fireMobileItemEvent(e);\n }\n\n if (target.hasAttribute(\"is-explore-back\")) {\n this.showFirstLevelMenu();\n this.setFocusExploreBtn();\n this._focusedItemIndex = 0;\n this.fireMobileItemEvent(e);\n }\n }\n\n moveToNextLevelWithKeyboard(e: KeyboardEvent) {\n const target = e.target as UDExMastheadItem;\n const item = this.getClickedItem(e.target as UDExMastheadItem);\n\n if (target.hasAttribute(\"is-explore\")) {\n this._hideExploreSapBtn = true;\n this._showCategoryItems = false;\n this.fireMobileItemEvent(e);\n }\n\n if (target.hasAttribute(\"first-level-btn\")) {\n this.openCategories(item);\n this.fireMobileItemEvent(e);\n }\n\n if (target.hasAttribute(\"second-level-btn\")) {\n this.openCategoryItems(e);\n this.fireMobileItemEvent(e);\n }\n\n this.setFocusItemByIndex(0);\n }\n\n focusItemByIndex(index: number): void {\n this.getListItemByIndex(index)?.focus();\n this._shouldFocusItemByIndex = false;\n }\n\n focusExploreBtn(): void {\n this.exploreBtnMenu.focus();\n this._shouldFocusExploreBtn = false;\n }\n\n focusPreviousItem(e: KeyboardEvent): void {\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const lastIndex = this.navigationItems.length - 1;\n const previousIndex = currentIndex - 1 < 0 ? lastIndex : currentIndex - 1;\n const currentItem = this.getListItemByIndex(currentIndex);\n let prevItem = this.getListItemByIndex(previousIndex);\n\n if (prevItem.type === UDExItemType.Heading) {\n prevItem = this.getListItemByIndex(lastIndex);\n }\n\n currentItem._tabIndex = \"-1\";\n prevItem._tabIndex = \"0\";\n prevItem.focus();\n }\n\n focusNextItem(e: KeyboardEvent): void {\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const navLength = this.navigationItems.length;\n const nextIndex = currentIndex + 1 > navLength - 1 ? 0 : currentIndex + 1;\n const currentItem = this.getListItemByIndex(currentIndex);\n let nextItem = this.getListItemByIndex(nextIndex);\n\n if (nextItem.type === UDExItemType.Heading) {\n nextItem = this.getListItemByIndex(nextIndex + 1);\n }\n\n currentItem._tabIndex = \"-1\";\n nextItem._tabIndex = \"0\";\n nextItem.focus();\n }\n\n handleEndKey(e: KeyboardEvent): void {\n if (isEnd(e)) {\n e.preventDefault();\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const lastIndex = this.navigationItems.length - 1;\n const currentItem = this.getListItemByIndex(currentIndex);\n const lastItem = this.getListItemByIndex(lastIndex);\n\n currentItem._tabIndex = \"-1\";\n lastItem._tabIndex = \"0\";\n lastItem.focus();\n }\n }\n\n handleHomeKey(e: KeyboardEvent): void {\n if (isHome(e)) {\n e.preventDefault();\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const currentItem = this.getListItemByIndex(currentIndex);\n const firstItem = this.getListItemByIndex(0);\n const focusedIndex = firstItem.type === UDExItemType.Heading ? 1 : 0;\n\n currentItem._tabIndex = \"-1\";\n this.getListItemByIndex(focusedIndex)._tabIndex = \"0\";\n this.getListItemByIndex(focusedIndex).focus();\n }\n }\n\n openExploreSapMenu(e: Event) {\n const item = this.getClickedItem(e.target as UDExMastheadItem);\n this._hideExploreSapBtn = true;\n this._showCategoryItems = false;\n this.openCategories(item);\n }\n\n openCategories(item: UDExMastheadItem) {\n this._clickedItem = item;\n this._categories = this.getCategories(item.getSubItems());\n this._showCategories = true;\n }\n\n openCategoryItems(e: Event) {\n const item = e.target as UDExMastheadMenuItem;\n const indexOffset = this._clickedItem.href ? INDEX_OFFSET_WITH_OVERVIEW : INDEX_OFFSET_WITHOUT_OVERVIEW;\n const index = Number(item.getAttribute(\"id\"));\n this._category = { ...this._categories[index], index: index + indexOffset };\n this._showCategories = false;\n this._showCategoryItems = true;\n }\n\n showFirstLevelMenu() {\n this._showCategories = false;\n this._showCategoryItems = false;\n this._hideExploreSapBtn = false;\n }\n\n showCategories() {\n this._showCategories = true;\n this._showCategoryItems = false;\n }\n\n fireMobileItemEvent(e: PointerEvent | KeyboardEvent, category?: string) {\n const item = e.target as UDExMastheadMenuItem;\n const isBack = item.hasAttribute(\"is-back\");\n const eventDetail: UDExMastheadMobileMenuItemClickEventDetail = {\n ...(category && { category }),\n item,\n isMobile: true,\n isBack,\n analyticsPath: this.buildAnalyticsPath(item),\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n };\n\n this.fireDecoratorEvent(\"item-click\", eventDetail);\n\n if (item.url && this._mastheadShell) {\n this.closeMenu();\n }\n }\n\n fireExploreSapMobileButton(e: PointerEvent | KeyboardEvent) {\n this.fireDecoratorEvent(\"explorer-menu-click\", {\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: (e.target as HTMLElement).shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n setFocusItemByIndex(index: number) {\n this._shouldFocusItemByIndex = true;\n this._focusedItemIndex = index;\n }\n\n setFocusExploreBtn(): void {\n this._shouldFocusExploreBtn = true;\n }\n\n getClickedItem(el: UDExMastheadItem): UDExMastheadItem {\n const items = [\n ...this.items,\n ...[this.hasExploreBtnSlot ? this.exploreItem : []],\n ] as Array<UDExMastheadItem>;\n return items.find(item => item._id === el.getAttribute(\"id\"))!;\n }\n\n getCategories(items: Array<MenuItem>): Array<SubMenuLinkItem> {\n const categories: Array<SubMenuLinkItem> = [];\n items?.forEach(item => {\n item.subMenuLinkItems.forEach(category => {\n categories.push(category);\n });\n });\n\n return categories;\n }\n\n getCurrentIndex(item: UDExMastheadMenuItem): number {\n return this.navigationItems.indexOf(item);\n }\n\n getListItemByIndex(index: number): UDExMastheadMenuItem {\n return this.navigationItems[index];\n }\n\n setTabIndexForItems(): void {\n this.navigationItems.forEach((item, index) => {\n if (this._focusedItemIndex > 0) {\n item._tabIndex = index === this._focusedItemIndex ? \"0\" : \"-1\";\n return;\n }\n\n const isPrevItemHeading = this.navigationItems[index - 1]?.type === UDExItemType.Heading;\n item._tabIndex = isPrevItemHeading || index === 0 ? \"0\" : \"-1\";\n });\n }\n\n buildAnalyticsPath(item: UDExMastheadMenuItem): Array<string> {\n const category = this.getListItemByIndex(0).label.trim();\n const isFirstLevel = item.hasAttribute(\"first-level\");\n const isSecondLevel = item.hasAttribute(\"second-level\");\n const isThirdLevel = item.hasAttribute(\"third-level\");\n const isBackToCategories = item.hasAttribute(\"is-back-to-categories\");\n const shouldResetPath = item.hasAttribute(\"is-back-to-nav\") || this._hideExploreSapBtn;\n const isExploreMode = !this.showExploreBtn && !!this.items.length;\n const clickedLabel = item.label.trim();\n const analyticsPath: Array<string> = [];\n\n if (shouldResetPath) {\n this._navItem = undefined;\n analyticsPath.length = 0;\n }\n\n if (isFirstLevel) {\n this._navItem = item;\n analyticsPath.push(clickedLabel);\n } else if (isSecondLevel) {\n analyticsPath.push(...(this._navItem ? [category, clickedLabel] : [clickedLabel]));\n } else if (isThirdLevel) {\n analyticsPath.push(...(this._navItem ? [this._navItem.label.trim(), category, clickedLabel] : [category, clickedLabel]));\n } else if (isBackToCategories) {\n if (this._navItem) {\n analyticsPath.push(this._navItem.label.trim());\n }\n }\n\n if (isExploreMode && this.hasExploreBtnSlot) {\n analyticsPath.unshift(this.exploreItem.label);\n }\n\n return analyticsPath;\n }\n\n resetSearch(): void {\n const search = this.search[0] as UDExSearch;\n if (search && search.value) {\n search.value = \"\";\n }\n }\n\n closeMenu(): void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get exploreBtnMenu(): UDExMastheadMenuItem {\n return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(\".udex-masthead-mobile-menu__explore-btn\")!;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get navigationItems(): Array<UDExMastheadMenuItem> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExMastheadMenuItem>(\"ul [udex-masthead-menu-item]\"));\n }\n\n get showNavigation(): boolean {\n return !this._showCategories && !this._showCategoryItems;\n }\n\n get overviewLinkText(): string {\n return translate(UDExMastheadMobileMenu, OVERVIEW);\n }\n\n get exploreItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"exploreSapMobileButton\")[0];\n }\n\n get showExploreBtn(): boolean {\n return this.hasExploreBtnSlot && !this._hideExploreSapBtn && !!this.items.length;\n }\n\n get hasExploreBtnSlot(): boolean {\n return !!this.getSlottedNodes(\"exploreSapMobileButton\").length;\n }\n\n get hasSearchSlot(): boolean {\n return !!this.search.length;\n }\n\n get isCategoriesOpen(): boolean {\n return !this._showCategoryItems;\n }\n\n get isSingleMenuMode(): boolean {\n return this.items.length === 1 && this.isCategoriesOpen;\n }\n\n get isNoMenuItemsMode(): boolean {\n return this.items.length === 0 && this.isCategoriesOpen;\n }\n\n get isNotMultipleMode(): boolean {\n return this.isSingleMenuMode || this.isNoMenuItemsMode;\n }\n}\n\nUDExMastheadMobileMenu.define();\n\nexport default UDExMastheadMobileMenu;\nexport type { UDExMastheadMobileMenuItemClickEventDetail, UDExMastheadMobileMenuExploreClickEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"MastheadMobileMenu.js","sourceRoot":"","sources":["../src/MastheadMobileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { MenuItem, SubMenuLinkItem } from \"./MastheadItem.js\";\nimport type UDExMastheadItem from \"./MastheadItem.js\";\nimport type UDExSearch from \"./Search.js\";\nimport UDExMastheadMenuItem, { UDExItemType } from \"./MastheadMenuItem.js\";\nimport { OVERVIEW } from \"./generated/i18n/i18n-defaults.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport MastheadMobileMenuTemplate from \"./generated/templates/MastheadMobileMenuTemplate.lit.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadMobileMenuCss from \"./generated/themes/MastheadMobileMenu.css.js\";\n\nconst INDEX_OFFSET_WITH_OVERVIEW = 2;\nconst INDEX_OFFSET_WITHOUT_OVERVIEW = 1;\n\ntype UDExMastheadMobileMenuItemClickEventDetail = {\n originalEvent: PointerEvent | KeyboardEvent,\n item: UDExMastheadMenuItem,\n category?: string,\n isMobile: boolean,\n isBack: boolean,\n analyticsName: AnalyticsName,\n analyticsPath: Array<string>,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadMobileMenuExploreClickEventDetail = {\n originalEvent: PointerEvent | KeyboardEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-mobile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadMobileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-mobile-menu\",\n renderer: litRender,\n styles: MastheadMobileMenuCss,\n template: MastheadMobileMenuTemplate,\n dependencies: [UDExMastheadMenuItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {PointerEvent | KeyboardEvent} originalEvent The original event object\n * @param {UDExMastheadMenuItem} item The clicked item\n * @param {string} [category] The category of the clicked item\n * @param {boolean} isMobile Indicates whether the click happened in mobile menu\n * @param {boolean} isBack Indicates whether the clicked item is a back button\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {Array<string>} analyticsPath The analytics path for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n */\n@event(\"item-click\", { cancelable: true, bubbles: false })\n\n/**\n * Fires when explorer menu button is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {PointerEvent | KeyboardEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked item\n * @param {HTMLElement} sourceNode The source node of the clicked item\n */\n@event(\"explorer-menu-click\", { bubbles: true })\n\nclass UDExMastheadMobileMenu extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExMastheadMobileMenuItemClickEventDetail,\n \"explorer-menu-click\": UDExMastheadMobileMenuExploreClickEventDetail,\n };\n /**\n * Slot for search\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * List of the menu items\n *\n * @default \"[]\"\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExMastheadItem>;\n\n /**\n * Slot for explore Sap mobile button\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSapMobileButton?: UDExMastheadItem;\n\n @property({ type: Boolean })\n _showCategories!: boolean;\n\n @property({ type: Boolean })\n _hideExploreSapBtn!: boolean;\n\n @property({ type: Boolean })\n _showCategoryItems!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _clickedItem!: UDExMastheadItem;\n _categories!: Array<SubMenuLinkItem>;\n _category!: SubMenuLinkItem;\n _shouldFocusItemByIndex!: boolean;\n _shouldFocusExploreBtn!: boolean;\n _focusedItemIndex!: number;\n _navItem?: UDExMastheadMenuItem;\n _mastheadShell!: UDExMastheadShell;\n\n onAfterRendering() {\n this._mastheadShell = this.mastheadShell;\n this.handleMenuMode();\n this.setTabIndexForItems();\n this.handleFocusItem();\n }\n\n handleMenuItemClick(e: PointerEvent) {\n e.preventDefault();\n e.stopPropagation();\n const item = this.getClickedItem(e.target as UDExMastheadItem);\n this.openCategories(item);\n this.setFocusItemByIndex(0);\n this.fireMobileItemEvent(e);\n }\n\n handleMenuCategoryClick(e: PointerEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.openCategoryItems(e);\n this.setFocusItemByIndex(0);\n this.fireMobileItemEvent(e);\n }\n\n handleExploreSapClick(e: PointerEvent) {\n e.preventDefault();\n this.openExploreSapMenu(e);\n this.setFocusItemByIndex(0);\n this.fireExploreSapMobileButton(e);\n }\n\n handleBackToMenuItems(e: PointerEvent) {\n e.stopPropagation();\n this.showFirstLevelMenu();\n this.setFocusItemByIndex(this.items.indexOf(this._clickedItem));\n this.fireMobileItemEvent(e);\n }\n\n handleBackToCategories(e: PointerEvent) {\n e.stopPropagation();\n this.showCategories();\n this.setFocusItemByIndex(this._category.index);\n this.fireMobileItemEvent(e);\n }\n\n handleExploreBackToMenuItems(e: PointerEvent) {\n e.stopPropagation();\n this.showFirstLevelMenu();\n this.setFocusExploreBtn();\n this.fireMobileItemEvent(e);\n }\n\n handlePressKey(e: KeyboardEvent) {\n const currentItem = e.target as UDExMastheadMenuItem;\n const items = this.navigationItems;\n const isFirstItem = currentItem === items[0];\n const isLastItem = currentItem === items[items.length - 1];\n\n if (isTabNext(e) && !isLastItem) {\n e.preventDefault();\n this.focusNextItem(currentItem);\n }\n if (isTabPrevious(e) && !isFirstItem) {\n e.preventDefault();\n this.focusPreviousItem(currentItem);\n }\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n focusNextItem(currentItem: UDExMastheadMenuItem): void {\n const currentIndex = this.getCurrentIndex(currentItem);\n const nextIndex = currentIndex + 1;\n const currentListItem = this.getListItemByIndex(currentIndex);\n let nextItem = this.getListItemByIndex(nextIndex);\n\n if (nextItem.type === UDExItemType.Heading) {\n nextItem = this.getListItemByIndex(nextIndex + 1);\n }\n\n currentListItem._tabIndex = \"-1\";\n nextItem._tabIndex = \"0\";\n nextItem.focus();\n }\n\n focusPreviousItem(currentItem: UDExMastheadMenuItem): void {\n const currentIndex = this.getCurrentIndex(currentItem);\n const previousIndex = currentIndex - 1;\n const currentListItem = this.getListItemByIndex(currentIndex);\n let prevItem = this.getListItemByIndex(previousIndex);\n\n if (prevItem.type === UDExItemType.Heading) {\n prevItem = this.getListItemByIndex(this.navigationItems.length - 1);\n }\n\n currentListItem._tabIndex = \"-1\";\n prevItem._tabIndex = \"0\";\n prevItem.focus();\n }\n\n handleMobileItemEvent(e: PointerEvent) {\n e.stopPropagation();\n this.fireMobileItemEvent(e);\n }\n\n handleMobileCategoryItemEvent(e: PointerEvent) {\n e.stopPropagation();\n this.fireMobileItemEvent(e, this._category.category);\n }\n\n handleMenuMode() {\n if (this.isNoMenuItemsMode && this.hasExploreBtnSlot) {\n this.openCategories(this.exploreItem);\n }\n\n if (this.isSingleMenuMode && !this._hideExploreSapBtn) {\n this.openCategories(this.items[0]);\n }\n }\n\n handleFocusItem() {\n if (this._shouldFocusItemByIndex) {\n this.focusItemByIndex(this._focusedItemIndex);\n }\n\n if (this._shouldFocusExploreBtn) {\n this.focusExploreBtn();\n }\n }\n\n focusItemByIndex(index: number): void {\n this.getListItemByIndex(index)?.focus();\n this._shouldFocusItemByIndex = false;\n }\n\n focusExploreBtn(): void {\n this.exploreBtnMenu.focus();\n this._shouldFocusExploreBtn = false;\n }\n\n handleEndKey(e: KeyboardEvent): void {\n if (isEnd(e)) {\n e.preventDefault();\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const lastIndex = this.navigationItems.length - 1;\n const currentItem = this.getListItemByIndex(currentIndex);\n const lastItem = this.getListItemByIndex(lastIndex);\n\n currentItem._tabIndex = \"-1\";\n lastItem._tabIndex = \"0\";\n lastItem.focus();\n }\n }\n\n handleHomeKey(e: KeyboardEvent): void {\n if (isHome(e)) {\n e.preventDefault();\n const currentIndex = this.getCurrentIndex(e.target as UDExMastheadMenuItem);\n const currentItem = this.getListItemByIndex(currentIndex);\n const firstItem = this.getListItemByIndex(0);\n const focusedIndex = firstItem.type === UDExItemType.Heading ? 1 : 0;\n\n currentItem._tabIndex = \"-1\";\n this.getListItemByIndex(focusedIndex)._tabIndex = \"0\";\n this.getListItemByIndex(focusedIndex).focus();\n }\n }\n\n openExploreSapMenu(e: Event) {\n const item = this.getClickedItem(e.target as UDExMastheadItem);\n this._hideExploreSapBtn = true;\n this._showCategoryItems = false;\n this.openCategories(item);\n }\n\n openCategories(item: UDExMastheadItem) {\n this._clickedItem = item;\n this._categories = this.getCategories(item.getSubItems());\n this._showCategories = true;\n }\n\n openCategoryItems(e: Event) {\n const item = e.target as UDExMastheadMenuItem;\n const indexOffset = this._clickedItem.href ? INDEX_OFFSET_WITH_OVERVIEW : INDEX_OFFSET_WITHOUT_OVERVIEW;\n const index = Number(item.getAttribute(\"id\"));\n this._category = { ...this._categories[index], index: index + indexOffset };\n this._showCategories = false;\n this._showCategoryItems = true;\n }\n\n showFirstLevelMenu() {\n this._showCategories = false;\n this._showCategoryItems = false;\n this._hideExploreSapBtn = false;\n }\n\n showCategories() {\n this._showCategories = true;\n this._showCategoryItems = false;\n }\n\n fireMobileItemEvent(e: PointerEvent | KeyboardEvent, category?: string) {\n const item = e.target as UDExMastheadMenuItem;\n const isBack = item.hasAttribute(\"is-back\");\n const eventDetail: UDExMastheadMobileMenuItemClickEventDetail = {\n ...(category && { category }),\n item,\n isMobile: true,\n isBack,\n analyticsPath: this.buildAnalyticsPath(item),\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n };\n\n this.fireDecoratorEvent(\"item-click\", eventDetail);\n\n if (item.url && this._mastheadShell) {\n this.closeMenu();\n }\n }\n\n fireExploreSapMobileButton(e: PointerEvent | KeyboardEvent) {\n this.fireDecoratorEvent(\"explorer-menu-click\", {\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: (e.target as HTMLElement).shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n setFocusItemByIndex(index: number) {\n this._shouldFocusItemByIndex = true;\n this._focusedItemIndex = index;\n }\n\n setFocusExploreBtn(): void {\n this._shouldFocusExploreBtn = true;\n }\n\n getClickedItem(el: UDExMastheadItem): UDExMastheadItem {\n const items = [\n ...this.items,\n ...[this.hasExploreBtnSlot ? this.exploreItem : []],\n ] as Array<UDExMastheadItem>;\n return items.find(item => item._id === el.getAttribute(\"id\"))!;\n }\n\n getCategories(items: Array<MenuItem>): Array<SubMenuLinkItem> {\n const categories: Array<SubMenuLinkItem> = [];\n items?.forEach(item => {\n item.subMenuLinkItems.forEach(category => {\n categories.push(category);\n });\n });\n\n return categories;\n }\n\n getCurrentIndex(item: UDExMastheadMenuItem): number {\n return this.navigationItems.indexOf(item);\n }\n\n getListItemByIndex(index: number): UDExMastheadMenuItem {\n return this.navigationItems[index];\n }\n\n setTabIndexForItems(): void {\n this.navigationItems.forEach((item, index) => {\n if (this._focusedItemIndex > 0) {\n item._tabIndex = index === this._focusedItemIndex ? \"0\" : \"-1\";\n return;\n }\n\n const isPrevItemHeading = this.navigationItems[index - 1]?.type === UDExItemType.Heading;\n item._tabIndex = isPrevItemHeading || index === 0 ? \"0\" : \"-1\";\n });\n }\n\n buildAnalyticsPath(item: UDExMastheadMenuItem): Array<string> {\n const category = this.getListItemByIndex(0).label.trim();\n const isFirstLevel = item.hasAttribute(\"first-level\");\n const isSecondLevel = item.hasAttribute(\"second-level\");\n const isThirdLevel = item.hasAttribute(\"third-level\");\n const isBackToCategories = item.hasAttribute(\"is-back-to-categories\");\n const shouldResetPath = item.hasAttribute(\"is-back-to-nav\") || this._hideExploreSapBtn;\n const isExploreMode = !this.showExploreBtn && !!this.items.length;\n const clickedLabel = item.label.trim();\n const analyticsPath: Array<string> = [];\n\n if (shouldResetPath) {\n this._navItem = undefined;\n analyticsPath.length = 0;\n }\n\n if (isFirstLevel) {\n this._navItem = item;\n analyticsPath.push(clickedLabel);\n } else if (isSecondLevel) {\n analyticsPath.push(...(this._navItem ? [category, clickedLabel] : [clickedLabel]));\n } else if (isThirdLevel) {\n analyticsPath.push(...(this._navItem ? [this._navItem.label.trim(), category, clickedLabel] : [category, clickedLabel]));\n } else if (isBackToCategories) {\n if (this._navItem) {\n analyticsPath.push(this._navItem.label.trim());\n }\n }\n\n if (isExploreMode && this.hasExploreBtnSlot) {\n analyticsPath.unshift(this.exploreItem.label);\n }\n\n return analyticsPath;\n }\n\n resetSearch(): void {\n const search = this.search[0] as UDExSearch;\n if (search && search.value) {\n search.value = \"\";\n }\n }\n\n closeMenu(): void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get exploreBtnMenu(): UDExMastheadMenuItem {\n return this.shadowRoot!.querySelector<UDExMastheadMenuItem>(\".udex-masthead-mobile-menu__explore-btn\")!;\n }\n\n get navigationItems(): Array<UDExMastheadMenuItem> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExMastheadMenuItem>(\"ul [udex-masthead-menu-item]\"));\n }\n\n get showNavigation(): boolean {\n return !this._showCategories && !this._showCategoryItems;\n }\n\n get overviewLinkText(): string {\n return translate(UDExMastheadMobileMenu, OVERVIEW);\n }\n\n get exploreItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"exploreSapMobileButton\")[0];\n }\n\n get showExploreBtn(): boolean {\n return this.hasExploreBtnSlot && !this._hideExploreSapBtn && !!this.items.length;\n }\n\n get hasExploreBtnSlot(): boolean {\n return !!this.getSlottedNodes(\"exploreSapMobileButton\").length;\n }\n\n get hasSearchSlot(): boolean {\n return !!this.search.length;\n }\n\n get isCategoriesOpen(): boolean {\n return !this._showCategoryItems;\n }\n\n get isSingleMenuMode(): boolean {\n return this.items.length === 1 && this.isCategoriesOpen;\n }\n\n get isNoMenuItemsMode(): boolean {\n return this.items.length === 0 && this.isCategoriesOpen;\n }\n\n get isNotMultipleMode(): boolean {\n return this.isSingleMenuMode || this.isNoMenuItemsMode;\n }\n}\n\nUDExMastheadMobileMenu.define();\n\nexport default UDExMastheadMobileMenu;\nexport type { UDExMastheadMobileMenuItemClickEventDetail, UDExMastheadMobileMenuExploreClickEventDetail };\n"]}
|
|
@@ -209,7 +209,7 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
|
|
|
209
209
|
this.toggleScrollableClass(this.identitiesHTMLElement, this._identitiesListClassName, this.scrollBottomIdentitiesList);
|
|
210
210
|
}
|
|
211
211
|
toggleScrollableClass(el, className, scrollBottom) {
|
|
212
|
-
if (scrollBottom
|
|
212
|
+
if (scrollBottom <= 1) {
|
|
213
213
|
el.classList.remove(`${className}_scrollable`);
|
|
214
214
|
}
|
|
215
215
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/Keys.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\nexport interface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n fallbackIcon?: string,\n}\n\nexport interface UserIdentity {\n avatarUrl: string,\n email: string,\n name: string,\n idsUser: string,\n isLogged: boolean,\n}\n\nexport interface ExtendedUserIdentity extends UserIdentity {\n supportingText: string;\n statusBadge: string;\n}\n\ntype UDExMastheadProfileMenuIdentityClickEventDetail = {\n item: ExtendedUserIdentity;\n analyticsName: AnalyticsName,\n};\n\ntype UDExMastheadProfileMenuItemClickEventDetail = {\n item: UDExMastheadMenuItem,\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [\n UDExMastheadMenuItem,\n UDExMastheadMenu,\n UDExListItem,\n UDExButton,\n UDExList,\n UDExLink,\n ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n * @param {UDExMastheadMenuItem} item The clicked logout item\n * @param {HTMLElement} sourceNode The HTML element of the clicked logout item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked logout item\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n * @param {UDExMastheadMenuItem} item The clicked profile menu item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked profile menu item\n * @param {HTMLElement} sourceNode The HTML element of the clicked profile menu item\n */\n@event(\"profile-item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired when use click add or remove account button\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the clicked add or remove account button\n */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\n * @param {ExtendedUserIdentity} item The clicked identity item\n * @param {AnalyticsName} analyticsName The analytics name for the clicked identity item\n */\n@event(\"identity-item-click\", { cancelable: true, bubbles: true })\n\nclass UDExMastheadProfileMenu extends UI5Element {\n eventDetails!: {\n \"logout\": UDExMastheadProfileMenuItemClickEventDetail,\n \"profile-item-click\": UDExMastheadProfileMenuItemClickEventDetail,\n \"add-or-remove-account-click\": UDExMastheadProfileMenuAddOrRemoveClickEventDetail,\n \"identity-item-click\": UDExMastheadProfileMenuIdentityClickEventDetail,\n };\n\n /**\n * Defines the object of user identities\n *\n * @default \"\"\n * @public\n */\n @property()\n identities!: string;\n\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the open identities panel state\n *\n * @private\n */\n @property({ type: Boolean })\n _openIdentities: boolean = false;\n\n /**\n * Defines the request render state\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * Slot for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n /**\n * Slot for logout button.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n logoutButton!: Array<Node>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _mastheadShell!: UDExMastheadShell;\n _handleResizeBound: ResizeObserverCallback;\n _shouldFocusBackBtn!: boolean;\n _shouldFocusSwitchBtn!: boolean;\n _identitiesListClassName = \"udex-masthead-profile-menu__identities-list\";\n _profileMenuLinksClassName = \"udex-masthead-profile-menu__links\";\n\n constructor() {\n super();\n this._handleResizeBound = this.handleResize.bind(this);\n }\n\n onAfterRendering(): void {\n this._mastheadShell = this.mastheadShell;\n this.updateFocusState(this._shouldFocusBackBtn, this.focusBackBtn.bind(this));\n this.updateFocusState(this._shouldFocusSwitchBtn, this.focusSwitchBtn.bind(this));\n this.setMenuItemsMobileMode();\n this.checkScrollableElements();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n handleResize(): void {\n this._isMobileMode = this.isMobile;\n\n if (this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = this.isMobile;\n }\n\n this.checkScrollableElements();\n }\n\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutClick(e: PointerEvent): void {\n this.fireLogoutClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n this.fireMenuItemClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n updateFocusState(shouldFocus: boolean, focusMethod: () => void): void {\n if (shouldFocus) {\n focusMethod();\n if (focusMethod === this.focusBackBtn) {\n this._shouldFocusBackBtn = false;\n } else if (focusMethod === this.focusSwitchBtn) {\n this._shouldFocusSwitchBtn = false;\n }\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n if (isEscape(e) && this._openIdentities) {\n this.closeIdentitiesPanel();\n }\n }\n\n focusSwitchBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-switcher\");\n }\n\n focusBackBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-back\");\n }\n\n focusElement(selector: string): void {\n const element = this.shadowRoot?.querySelector<UDExButton>(selector);\n element?.focus();\n }\n\n fireEventIdentityItemClick(e: CustomEvent): void {\n const { item } = e.detail;\n const identity = this.identitiesList.find(({ idsUser }) => idsUser === item.id);\n const eventPrevented = !this.fireDecoratorEvent(\"identity-item-click\", {\n item: identity!,\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n fireEventAddOrRemoveAccountClick(e: CustomEvent<LinkClickEventDetail>): void {\n const eventPrevented = !this.fireDecoratorEvent(\"add-or-remove-account-click\", {\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n }\n\n fireLogoutClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n const executeEvent = this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\"a\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n });\n\n if (!executeEvent) {\n e.preventDefault();\n }\n }\n\n fireMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireDecoratorEvent(\"profile-item-click\", {\n item,\n originalEvent,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n checkScrollableElements(): void {\n if (this._openIdentities) {\n this.checkScrollableElement(this.identitiesHTMLElement, this._identitiesListClassName);\n }\n\n if (this.isMobile) {\n this.checkScrollableElement(this.profileMenuHTMLElement, this._profileMenuLinksClassName);\n }\n }\n\n checkScrollableElement(element: HTMLElement, className: string): void {\n if (element) {\n requestAnimationFrame(() => {\n if (this.isScrollableElement(element)) {\n element.classList.add(`${className}_scrollable`);\n }\n });\n }\n }\n\n scrollToTopProfileMenu(): void {\n setTimeout(() => {\n this.profileMenuHTMLElement.scrollTop = 0;\n }, 0);\n }\n\n isScrollableElement(element: HTMLElement): boolean {\n return element.scrollHeight > element.clientHeight;\n }\n\n handleProfileMenuShadowVisible(): void {\n this.toggleScrollableClass(\n this.profileMenuHTMLElement,\n this._profileMenuLinksClassName,\n this.scrollBottomProfileMenu,\n );\n }\n\n handleIdentitiesListShadowVisible(): void {\n this.toggleScrollableClass(\n this.identitiesHTMLElement,\n this._identitiesListClassName,\n this.scrollBottomIdentitiesList,\n );\n }\n\n toggleScrollableClass(el: HTMLElement, className: string, scrollBottom: number): void {\n if (scrollBottom === 0) {\n el.classList.remove(`${className}_scrollable`);\n } else {\n el.classList.add(`${className}_scrollable`);\n }\n }\n\n get scrollBottomIdentitiesList(): number {\n return this.calculateScrollBottom(this.identitiesHTMLElement);\n }\n\n get scrollBottomProfileMenu(): number {\n return this.calculateScrollBottom(this.profileMenuHTMLElement);\n }\n\n calculateScrollBottom(element: HTMLElement): number {\n return element.scrollHeight - element.scrollTop - element.clientHeight;\n }\n\n get profileMenuHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._profileMenuLinksClassName);\n }\n\n get identitiesHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._identitiesListClassName);\n }\n\n getElementByClassName(className: string): HTMLElement {\n return this.shadowRoot?.querySelector<HTMLElement>(`.${className}`) as HTMLElement;\n }\n\n closeMenu():void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n closeIdentitiesPanel(): void {\n this._openIdentities = false;\n }\n\n setMenuItemsMobileMode(): void {\n if (this._isMobileMode && this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = true;\n }\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get hasIdentities(): boolean {\n return !!this.identities?.length;\n }\n\n get userData(): UserData {\n return parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get identitiesList(): Array<ExtendedUserIdentity> {\n return parseArrayFromString<ExtendedUserIdentity>(this.identities).map((identity: UserIdentity) => ({\n ...identity,\n statusBadge: identity.isLogged ? \"\" : UDExStatusBadgeValueState.Warning,\n supportingText: [identity.name, identity.idsUser].filter(Boolean).join(\", \"),\n }));\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get hasLogoutButton(): boolean {\n return !!this.logoutButton.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl?.length;\n }\n\n get rootClass(): string {\n const root = \"udex-masthead-profile-menu\";\n return this._openIdentities ? `${root} ${root}_switcher` : root;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.shadowRoot?.querySelector<UDExMastheadMenu>(\"[udex-masthead-menu]\");\n }\n\n get btnBackText(): string {\n return this._isMobileMode ? this.switcherAccountText : translate(UDExMastheadProfileMenu, BACK);\n }\n\n get listTitleText(): string {\n return `${translate(UDExMastheadProfileMenu, OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return translate(UDExMastheadProfileMenu, ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return translate(UDExMastheadProfileMenu, SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return translate(UDExMastheadProfileMenu, LOGOUT);\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isMobile(): boolean {\n return this.isAtMostBreakpointSizeM || this.mastheadShell?.isMobileMenuMode;\n }\n\n get hasActionButton(): boolean {\n return this.logoutLink || this.hasLogoutButton;\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\nexport type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/Keys.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\nexport interface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n fallbackIcon?: string,\n}\n\nexport interface UserIdentity {\n avatarUrl: string,\n email: string,\n name: string,\n idsUser: string,\n isLogged: boolean,\n}\n\nexport interface ExtendedUserIdentity extends UserIdentity {\n supportingText: string;\n statusBadge: string;\n}\n\ntype UDExMastheadProfileMenuIdentityClickEventDetail = {\n item: ExtendedUserIdentity;\n analyticsName: AnalyticsName,\n};\n\ntype UDExMastheadProfileMenuItemClickEventDetail = {\n item: UDExMastheadMenuItem,\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [\n UDExMastheadMenuItem,\n UDExMastheadMenu,\n UDExListItem,\n UDExButton,\n UDExList,\n UDExLink,\n ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n * @param {UDExMastheadMenuItem} item The clicked logout item\n * @param {HTMLElement} sourceNode The HTML element of the clicked logout item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked logout item\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n * @param {UDExMastheadMenuItem} item The clicked profile menu item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked profile menu item\n * @param {HTMLElement} sourceNode The HTML element of the clicked profile menu item\n */\n@event(\"profile-item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired when use click add or remove account button\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the clicked add or remove account button\n */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\n * @param {ExtendedUserIdentity} item The clicked identity item\n * @param {AnalyticsName} analyticsName The analytics name for the clicked identity item\n */\n@event(\"identity-item-click\", { cancelable: true, bubbles: true })\n\nclass UDExMastheadProfileMenu extends UI5Element {\n eventDetails!: {\n \"logout\": UDExMastheadProfileMenuItemClickEventDetail,\n \"profile-item-click\": UDExMastheadProfileMenuItemClickEventDetail,\n \"add-or-remove-account-click\": UDExMastheadProfileMenuAddOrRemoveClickEventDetail,\n \"identity-item-click\": UDExMastheadProfileMenuIdentityClickEventDetail,\n };\n\n /**\n * Defines the object of user identities\n *\n * @default \"\"\n * @public\n */\n @property()\n identities!: string;\n\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the open identities panel state\n *\n * @private\n */\n @property({ type: Boolean })\n _openIdentities: boolean = false;\n\n /**\n * Defines the request render state\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * Slot for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n /**\n * Slot for logout button.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n logoutButton!: Array<Node>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _mastheadShell!: UDExMastheadShell;\n _handleResizeBound: ResizeObserverCallback;\n _shouldFocusBackBtn!: boolean;\n _shouldFocusSwitchBtn!: boolean;\n _identitiesListClassName = \"udex-masthead-profile-menu__identities-list\";\n _profileMenuLinksClassName = \"udex-masthead-profile-menu__links\";\n\n constructor() {\n super();\n this._handleResizeBound = this.handleResize.bind(this);\n }\n\n onAfterRendering(): void {\n this._mastheadShell = this.mastheadShell;\n this.updateFocusState(this._shouldFocusBackBtn, this.focusBackBtn.bind(this));\n this.updateFocusState(this._shouldFocusSwitchBtn, this.focusSwitchBtn.bind(this));\n this.setMenuItemsMobileMode();\n this.checkScrollableElements();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n handleResize(): void {\n this._isMobileMode = this.isMobile;\n\n if (this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = this.isMobile;\n }\n\n this.checkScrollableElements();\n }\n\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutClick(e: PointerEvent): void {\n this.fireLogoutClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n this.fireMenuItemClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n updateFocusState(shouldFocus: boolean, focusMethod: () => void): void {\n if (shouldFocus) {\n focusMethod();\n if (focusMethod === this.focusBackBtn) {\n this._shouldFocusBackBtn = false;\n } else if (focusMethod === this.focusSwitchBtn) {\n this._shouldFocusSwitchBtn = false;\n }\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n if (isEscape(e) && this._openIdentities) {\n this.closeIdentitiesPanel();\n }\n }\n\n focusSwitchBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-switcher\");\n }\n\n focusBackBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-back\");\n }\n\n focusElement(selector: string): void {\n const element = this.shadowRoot?.querySelector<UDExButton>(selector);\n element?.focus();\n }\n\n fireEventIdentityItemClick(e: CustomEvent): void {\n const { item } = e.detail;\n const identity = this.identitiesList.find(({ idsUser }) => idsUser === item.id);\n const eventPrevented = !this.fireDecoratorEvent(\"identity-item-click\", {\n item: identity!,\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n fireEventAddOrRemoveAccountClick(e: CustomEvent<LinkClickEventDetail>): void {\n const eventPrevented = !this.fireDecoratorEvent(\"add-or-remove-account-click\", {\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n }\n\n fireLogoutClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n const executeEvent = this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\"a\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n });\n\n if (!executeEvent) {\n e.preventDefault();\n }\n }\n\n fireMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireDecoratorEvent(\"profile-item-click\", {\n item,\n originalEvent,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n checkScrollableElements(): void {\n if (this._openIdentities) {\n this.checkScrollableElement(this.identitiesHTMLElement, this._identitiesListClassName);\n }\n\n if (this.isMobile) {\n this.checkScrollableElement(this.profileMenuHTMLElement, this._profileMenuLinksClassName);\n }\n }\n\n checkScrollableElement(element: HTMLElement, className: string): void {\n if (element) {\n requestAnimationFrame(() => {\n if (this.isScrollableElement(element)) {\n element.classList.add(`${className}_scrollable`);\n }\n });\n }\n }\n\n scrollToTopProfileMenu(): void {\n setTimeout(() => {\n this.profileMenuHTMLElement.scrollTop = 0;\n }, 0);\n }\n\n isScrollableElement(element: HTMLElement): boolean {\n return element.scrollHeight > element.clientHeight;\n }\n\n handleProfileMenuShadowVisible(): void {\n this.toggleScrollableClass(\n this.profileMenuHTMLElement,\n this._profileMenuLinksClassName,\n this.scrollBottomProfileMenu,\n );\n }\n\n handleIdentitiesListShadowVisible(): void {\n this.toggleScrollableClass(\n this.identitiesHTMLElement,\n this._identitiesListClassName,\n this.scrollBottomIdentitiesList,\n );\n }\n\n toggleScrollableClass(el: HTMLElement, className: string, scrollBottom: number): void {\n if (scrollBottom <= 1) {\n el.classList.remove(`${className}_scrollable`);\n } else {\n el.classList.add(`${className}_scrollable`);\n }\n }\n\n get scrollBottomIdentitiesList(): number {\n return this.calculateScrollBottom(this.identitiesHTMLElement);\n }\n\n get scrollBottomProfileMenu(): number {\n return this.calculateScrollBottom(this.profileMenuHTMLElement);\n }\n\n calculateScrollBottom(element: HTMLElement): number {\n return element.scrollHeight - element.scrollTop - element.clientHeight;\n }\n\n get profileMenuHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._profileMenuLinksClassName);\n }\n\n get identitiesHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._identitiesListClassName);\n }\n\n getElementByClassName(className: string): HTMLElement {\n return this.shadowRoot?.querySelector<HTMLElement>(`.${className}`) as HTMLElement;\n }\n\n closeMenu():void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n closeIdentitiesPanel(): void {\n this._openIdentities = false;\n }\n\n setMenuItemsMobileMode(): void {\n if (this._isMobileMode && this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = true;\n }\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get hasIdentities(): boolean {\n return !!this.identities?.length;\n }\n\n get userData(): UserData {\n return parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get identitiesList(): Array<ExtendedUserIdentity> {\n return parseArrayFromString<ExtendedUserIdentity>(this.identities).map((identity: UserIdentity) => ({\n ...identity,\n statusBadge: identity.isLogged ? \"\" : UDExStatusBadgeValueState.Warning,\n supportingText: [identity.name, identity.idsUser].filter(Boolean).join(\", \"),\n }));\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get hasLogoutButton(): boolean {\n return !!this.logoutButton.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl?.length;\n }\n\n get rootClass(): string {\n const root = \"udex-masthead-profile-menu\";\n return this._openIdentities ? `${root} ${root}_switcher` : root;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.shadowRoot?.querySelector<UDExMastheadMenu>(\"[udex-masthead-menu]\");\n }\n\n get btnBackText(): string {\n return this._isMobileMode ? this.switcherAccountText : translate(UDExMastheadProfileMenu, BACK);\n }\n\n get listTitleText(): string {\n return `${translate(UDExMastheadProfileMenu, OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return translate(UDExMastheadProfileMenu, ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return translate(UDExMastheadProfileMenu, SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return translate(UDExMastheadProfileMenu, LOGOUT);\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isMobile(): boolean {\n return this.isAtMostBreakpointSizeM || this.mastheadShell?.isMobileMenuMode;\n }\n\n get hasActionButton(): boolean {\n return this.logoutLink || this.hasLogoutButton;\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\nexport type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };\n"]}
|
package/dist/MastheadShell.d.ts
CHANGED
|
@@ -303,11 +303,10 @@ declare class UDExMastheadShell extends UI5Element {
|
|
|
303
303
|
onExitDOM(): void;
|
|
304
304
|
onInvalidation({ name }: ChangeInfo): void;
|
|
305
305
|
_handleResize(): void;
|
|
306
|
+
recalculateOpenDropdownPosition(): void;
|
|
306
307
|
handleMobileMode(): void;
|
|
307
308
|
handleKeyDown(e: KeyboardEvent): void;
|
|
308
309
|
handleSearchKeyDown(e: CustomEvent): void;
|
|
309
|
-
handleLeftArrow(e: KeyboardEvent): void;
|
|
310
|
-
handleRightArrow(e: KeyboardEvent): void;
|
|
311
310
|
handleLogoClick(e: PointerEvent): void;
|
|
312
311
|
handleSiteLabelClick(e: PointerEvent): void;
|
|
313
312
|
handleCoBrandClick(e: PointerEvent): void;
|
|
@@ -321,13 +320,10 @@ declare class UDExMastheadShell extends UI5Element {
|
|
|
321
320
|
handleCloseSearch(e: PointerEvent): void;
|
|
322
321
|
handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent): void;
|
|
323
322
|
focusSearchInput(): void;
|
|
324
|
-
focusPreviousMenuItem(item: UDExMastheadItem): void;
|
|
325
|
-
focusNextMenuItem(item: UDExMastheadItem): void;
|
|
326
323
|
resetSelectedItems(clickedId?: string): void;
|
|
327
324
|
resetSearch(): void;
|
|
328
325
|
setSelectedItem(e: CustomEvent): void;
|
|
329
326
|
focusSearchBtn(): void;
|
|
330
|
-
getCurrentIndex(item: UDExMastheadItem): number;
|
|
331
327
|
getSelectedItems(): Array<UDExMastheadItem>;
|
|
332
328
|
getRootHolderWidth(root: HTMLElement): number;
|
|
333
329
|
getLandingHolderWidth(): number;
|
|
@@ -343,7 +339,6 @@ declare class UDExMastheadShell extends UI5Element {
|
|
|
343
339
|
getExploreSapBtnGap(): number;
|
|
344
340
|
getRightMenuGap(): number;
|
|
345
341
|
getRootVar(variableName: string): string;
|
|
346
|
-
isNavigationItem(item: UDExMastheadItem): boolean;
|
|
347
342
|
setOverflowBody(): void;
|
|
348
343
|
removeOverflowBody(): void;
|
|
349
344
|
setMobileMode(): void;
|
package/dist/MastheadShell.js
CHANGED
|
@@ -13,7 +13,7 @@ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
|
13
13
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
14
14
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
15
15
|
import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
16
|
-
import {
|
|
16
|
+
import { isSpace, isEnter, isEscape, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
17
17
|
import "@ui5/webcomponents-icons/dist/decline.js";
|
|
18
18
|
import "@ui5/webcomponents-icons/dist/menu2.js";
|
|
19
19
|
import "@ui5/webcomponents-icons/dist/search.js";
|
|
@@ -115,8 +115,14 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
115
115
|
this.setMobileMenuHeight();
|
|
116
116
|
this.setProfileMobileMode();
|
|
117
117
|
}
|
|
118
|
+
this.recalculateOpenDropdownPosition();
|
|
118
119
|
this._shouldHandleResize = true;
|
|
119
120
|
}
|
|
121
|
+
recalculateOpenDropdownPosition() {
|
|
122
|
+
this.getSelectedItems()
|
|
123
|
+
.filter(item => item.hasDropdownSlot && !item.isMobile && !item.isExploreBtn)
|
|
124
|
+
.forEach(item => item.recalculateDropdownPosition());
|
|
125
|
+
}
|
|
120
126
|
handleMobileMode() {
|
|
121
127
|
const rootHolder = this.getDomRef();
|
|
122
128
|
if (rootHolder) {
|
|
@@ -136,8 +142,6 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
136
142
|
}
|
|
137
143
|
handleKeyDown(e) {
|
|
138
144
|
e.stopPropagation();
|
|
139
|
-
this.handleLeftArrow(e);
|
|
140
|
-
this.handleRightArrow(e);
|
|
141
145
|
}
|
|
142
146
|
handleSearchKeyDown(e) {
|
|
143
147
|
e.stopPropagation();
|
|
@@ -150,28 +154,6 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
150
154
|
this.focusSearchBtn();
|
|
151
155
|
}
|
|
152
156
|
}
|
|
153
|
-
handleLeftArrow(e) {
|
|
154
|
-
if (isLeft(e)) {
|
|
155
|
-
const currentItem = e.target;
|
|
156
|
-
if (this.isNavigationItem(currentItem)) {
|
|
157
|
-
if (currentItem.selected) {
|
|
158
|
-
currentItem.closeDropdown();
|
|
159
|
-
}
|
|
160
|
-
this.focusPreviousMenuItem(currentItem);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
handleRightArrow(e) {
|
|
165
|
-
if (isRight(e)) {
|
|
166
|
-
const currentItem = e.target;
|
|
167
|
-
if (this.isNavigationItem(currentItem)) {
|
|
168
|
-
if (currentItem.selected) {
|
|
169
|
-
currentItem.closeDropdown();
|
|
170
|
-
}
|
|
171
|
-
this.focusNextMenuItem(currentItem);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
157
|
handleLogoClick(e) {
|
|
176
158
|
this.fireMastheadEvent("logo-click", e);
|
|
177
159
|
}
|
|
@@ -239,19 +221,6 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
239
221
|
const input = this._desktopSearch?.shadowRoot.querySelector("input");
|
|
240
222
|
input?.focus();
|
|
241
223
|
}
|
|
242
|
-
focusPreviousMenuItem(item) {
|
|
243
|
-
const menuItems = this.menuItems;
|
|
244
|
-
const lastItemIndex = menuItems.length - 1;
|
|
245
|
-
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
246
|
-
const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;
|
|
247
|
-
menuItems[previousSelectIndex].focus();
|
|
248
|
-
}
|
|
249
|
-
focusNextMenuItem(item) {
|
|
250
|
-
const menuItems = this.menuItems;
|
|
251
|
-
const currentSelectedIndex = this.getCurrentIndex(item);
|
|
252
|
-
const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;
|
|
253
|
-
menuItems[nextSelectIndex].focus();
|
|
254
|
-
}
|
|
255
224
|
resetSelectedItems(clickedId) {
|
|
256
225
|
this.getSelectedItems().forEach(item => {
|
|
257
226
|
if (item._id !== clickedId && item.selected) {
|
|
@@ -279,9 +248,6 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
279
248
|
this._closeBtnClicked = false;
|
|
280
249
|
}
|
|
281
250
|
}
|
|
282
|
-
getCurrentIndex(item) {
|
|
283
|
-
return this.menuItems.indexOf(item);
|
|
284
|
-
}
|
|
285
251
|
getSelectedItems() {
|
|
286
252
|
const buttonsArray = [
|
|
287
253
|
...this.menuItems,
|
|
@@ -369,9 +335,6 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
|
|
|
369
335
|
getRootVar(variableName) {
|
|
370
336
|
return window.getComputedStyle(this.getDomRef()).getPropertyValue(`${variableName}`);
|
|
371
337
|
}
|
|
372
|
-
isNavigationItem(item) {
|
|
373
|
-
return this.menuItems.some(menuItem => menuItem === item);
|
|
374
|
-
}
|
|
375
338
|
setOverflowBody() {
|
|
376
339
|
const { body: { style } } = document;
|
|
377
340
|
this._shouldHandleResize = false;
|