@sapudex/web-components 2.12.1 → 2.14.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/EventRibbon.cy.tsx +10 -2
- package/cypress/specs/FilterMenu.cy.tsx +17 -1
- package/cypress/specs/HeroBanner.cy.tsx +174 -0
- package/cypress/specs/SelectBox.cy.tsx +17 -0
- package/cypress/specs/SocialMediaButton.cy.tsx +6 -0
- package/cypress/support/component-imports.instrumented.ts +2 -0
- package/cypress/support/component-imports.src.ts +2 -0
- package/dist/Accordion.d.ts +4 -3
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Breadcrumbs.d.ts +2 -1
- package/dist/Breadcrumbs.js +2 -2
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/ContactItem.d.ts +1 -0
- package/dist/ContactItem.js.map +1 -1
- package/dist/ControlButton.js +3 -3
- package/dist/ControlButton.js.map +1 -1
- package/dist/CountrySelector.d.ts +1 -0
- package/dist/CountrySelector.js +1 -1
- package/dist/CountrySelector.js.map +1 -1
- package/dist/DatePicker.d.ts +3 -2
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.js.map +1 -1
- package/dist/EventRibbon.js +1 -1
- package/dist/EventRibbon.js.map +1 -1
- package/dist/EventRibbonTemplate.js +3 -2
- package/dist/EventRibbonTemplate.js.map +1 -1
- package/dist/FilterMenu.d.ts +11 -5
- package/dist/FilterMenu.js +7 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuGroupHeader.js.map +1 -1
- package/dist/FilterMenuItem.js.map +1 -1
- package/dist/Footer.d.ts +1 -0
- package/dist/Footer.js.map +1 -1
- package/dist/HeroBanner.d.ts +8 -0
- package/dist/HeroBanner.js +6 -0
- package/dist/HeroBanner.js.map +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/LinkList.js.map +1 -1
- package/dist/LinkListItem.d.ts +1 -0
- package/dist/LinkListItem.js.map +1 -1
- package/dist/List.d.ts +1 -0
- package/dist/List.js +1 -1
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.d.ts +1 -0
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.d.ts +1 -0
- package/dist/ListItem.js +1 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/ListItemBase.d.ts +5 -4
- package/dist/ListItemBase.js.map +1 -1
- package/dist/ListSelectAll.d.ts +1 -0
- package/dist/ListSelectAll.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +10 -9
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +2 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +1 -0
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +4 -3
- package/dist/MastheadProfileMenu.js +2 -2
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +12 -11
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +2 -1
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +1 -0
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +1 -0
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/Pagination.d.ts +3 -2
- package/dist/Pagination.js.map +1 -1
- package/dist/PromoTile.d.ts +12 -22
- package/dist/PromoTile.js +6 -7
- package/dist/PromoTile.js.map +1 -1
- package/dist/RatingIndicator.js.map +1 -1
- package/dist/Search.d.ts +11 -5
- package/dist/Search.js +6 -6
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +5 -4
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +1 -0
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +3 -2
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationItemBase.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +3 -2
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/SelectBox.d.ts +6 -0
- package/dist/SelectBox.js +7 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxGroupHeader.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SocialMediaButton.d.ts +8 -0
- package/dist/SocialMediaButton.js +10 -1
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/SocialMediaButtonTemplate.js +1 -1
- package/dist/SocialMediaButtonTemplate.js.map +1 -1
- package/dist/StepInput.d.ts +3 -2
- package/dist/StepInput.js.map +1 -1
- package/dist/StepInputTemplate.js +1 -1
- package/dist/StepInputTemplate.js.map +1 -1
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.d.ts +1 -2
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +1 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.d.ts +2 -2
- package/dist/Table.js.map +1 -1
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableRowBase.js.map +1 -1
- package/dist/Tag.d.ts +1 -0
- package/dist/Tag.js.map +1 -1
- package/dist/TagGroup.d.ts +1 -0
- package/dist/TagGroup.js.map +1 -1
- package/dist/TextField.d.ts +2 -1
- package/dist/TextField.js.map +1 -1
- package/dist/Tile.d.ts +2 -0
- package/dist/Tile.js.map +1 -1
- package/dist/Tooltip.d.ts +11 -0
- package/dist/Tooltip.js +42 -0
- package/dist/Tooltip.js.map +1 -1
- package/dist/Upload.d.ts +1 -0
- package/dist/Upload.js.map +1 -1
- package/dist/UploadItem.js +1 -1
- package/dist/UploadItem.js.map +1 -1
- package/dist/Wizard.d.ts +2 -2
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardTab.js +1 -1
- package/dist/WizardTab.js.map +1 -1
- package/dist/assets/{InputSuggestions-CgAp8PwR.js → InputSuggestions-AxcsfuTc.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-D5HEHY33.js → ListItemStandardExpandableTextTemplate-CaS49yZt.js} +1 -1
- package/dist/assets/{bundle.esm-CjcqU0ib.js → bundle.esm-DzkSPQ0p.js} +157 -157
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/Link.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/SocialMediaButton.css +1 -1
- package/dist/custom-elements-internal.json +136 -12
- package/dist/custom-elements.json +101 -12
- package/dist/generated/templates/HeroBannerTemplate.lit.js +2 -1
- package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js +1 -1
- package/dist/generated/templates/TooltipTemplate.lit.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
- package/dist/generated/themes/EventRibbon.css.js +1 -1
- package/dist/generated/themes/EventRibbon.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/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/SocialMediaButton.css.d.ts +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js.map +1 -1
- package/dist/types/PromoTile.d.ts +1 -1
- package/dist/types/PromoTile.js +57 -57
- package/dist/types/PromoTile.js.map +1 -1
- package/dist/vscode.html-custom-data.json +6 -6
- package/dist/web-types.json +72 -19
- package/package.json +1 -1
- package/src/Accordion.ts +5 -4
- package/src/AccordionItem.ts +1 -0
- package/src/Breadcrumbs.ts +4 -10
- package/src/Checkbox.ts +3 -2
- package/src/ContactItem.ts +1 -0
- package/src/ControlButton.ts +3 -3
- package/src/CountrySelector.ts +2 -5
- package/src/DatePicker.ts +3 -2
- package/src/Dropdown.ts +0 -1
- package/src/EventRibbon.ts +1 -1
- package/src/EventRibbonTemplate.tsx +6 -7
- package/src/FilterMenu.ts +16 -7
- package/src/FilterMenuGroupHeader.ts +0 -1
- package/src/FilterMenuItem.ts +1 -0
- package/src/Footer.ts +1 -0
- package/src/HeroBanner.hbs +3 -0
- package/src/HeroBanner.ts +14 -1
- package/src/InputGroup.ts +0 -1
- package/src/LinkList.ts +1 -0
- package/src/LinkListItem.ts +1 -0
- package/src/List.ts +3 -8
- package/src/ListGroupHeader.ts +1 -0
- package/src/ListGroupHeaderBase.ts +0 -1
- package/src/ListItem.ts +2 -3
- package/src/ListItemBase.ts +6 -6
- package/src/ListSelectAll.ts +1 -0
- package/src/MastheadCountrySelector.ts +12 -11
- package/src/MastheadItem.ts +2 -1
- package/src/MastheadMenu.ts +1 -0
- package/src/MastheadMenuItem.ts +1 -0
- package/src/MastheadMobileMenu.ts +1 -0
- package/src/MastheadProfileMenu.ts +7 -5
- package/src/MastheadShell.ts +14 -12
- package/src/MediaPlayer.ts +2 -2
- package/src/MediaPlayerVimeo.ts +1 -0
- package/src/MediaPlayerYoutube.ts +1 -0
- package/src/Pagination.ts +3 -2
- package/src/PromoTile.ts +16 -26
- package/src/RatingIndicator.ts +0 -1
- package/src/Search.ts +14 -17
- package/src/SearchableListBase.ts +8 -5
- package/src/SecondaryNavigation.ts +1 -0
- package/src/SecondaryNavigationItem.ts +4 -11
- package/src/SecondaryNavigationItemBase.ts +0 -1
- package/src/SecondaryNavigationSubItem.ts +3 -2
- package/src/SelectBox.ts +10 -12
- package/src/SelectBoxGroupHeader.ts +0 -1
- package/src/SideNavigationMobile.ts +1 -1
- package/src/SocialMediaButton.ts +17 -1
- package/src/SocialMediaButtonTemplate.tsx +3 -1
- package/src/StepInput.ts +4 -14
- package/src/StepInputTemplate.tsx +1 -1
- package/src/Switch.ts +0 -1
- package/src/Tab.ts +1 -2
- package/src/TabNavigation.ts +5 -14
- package/src/Table.ts +2 -2
- package/src/TableCellBase.ts +0 -1
- package/src/TableRowBase.ts +0 -1
- package/src/Tag.ts +1 -0
- package/src/TagGroup.ts +1 -0
- package/src/TextField.ts +2 -1
- package/src/Tile.ts +3 -1
- package/src/Tooltip.hbs +5 -1
- package/src/Tooltip.ts +52 -0
- package/src/Upload.ts +1 -0
- package/src/UploadItem.ts +1 -4
- package/src/Wizard.ts +2 -2
- package/src/WizardTab.ts +1 -1
- package/src/generated/templates/HeroBannerTemplate.lit.ts +2 -1
- package/src/generated/templates/TooltipTemplate.lit.ts +1 -1
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/Link.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/SocialMediaButton.css.ts +1 -1
- package/src/themes/EventRibbon.css +20 -9
- package/src/themes/Link.css +4 -2
- package/src/themes/SocialMediaButton.css +4 -1
- package/src/types/PromoTile.ts +1 -1
package/dist/MastheadItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport {\n OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport type UDExAvatar from \"./Avatar.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nexport enum UDExMastheadDropdownItemAction {\n Open = \"Open\",\n Close = \"Close\",\n ClickOutside = \"Click Outside\",\n}\n\nexport interface IMastheadItem {\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n index: number;\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadItemItemClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExMastheadItem,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\nexport type UDExMastheadDropdownEventDetail = {\n title: string,\n action: UDExMastheadDropdownItemAction,\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-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n languageAware: true,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"item-click\", { bubbles: true })\n\n/**\n * Fires when dropdown is closed\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"dropdown-closed\", { bubbles: true })\n\n/**\n * Fires when dropdown is opened\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"dropdown-opened\", { bubbles: true })\n\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n eventDetails!: {\n \"item-click\": UDExMastheadItemItemClickEventDetail,\n \"dropdown-closed\": UDExMastheadDropdownEventDetail,\n \"dropdown-opened\": UDExMastheadDropdownEventDetail,\n };\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"\";\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines if the arrow icon is hidden.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hideArrowIcon!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the image in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n image!: string;\n\n /**\n * Defines an alt text for item image\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageAlt!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property()\n target: UDExTarget = UDExTarget._self;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleRole?: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n iconAlt: string = \"\";\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction!: 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 label for analytics\n *\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n /**\n * Defines the prevents the item from losing focus.\n *\n * @private\n */\n\n @property({ type: Boolean })\n _preventFocusOut!: boolean;\n\n /**\n * Defines the item is a menu close button\n *\n * @private\n */\n @property({ type: Boolean })\n _isMenuCloseBtn?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _profileAvatar!: UDExAvatar;\n _mastheadShell!: UDExMastheadShell;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.label = this.eventItemTitle;\n }\n\n onAfterRendering(): void {\n this._profileAvatar = this.profileAvatar;\n this._mastheadShell = this.mastheadShell;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n\n if (this.shouldFocusFirstElement) {\n this.applyFocusToFirstElement();\n }\n\n this.handleOutsideClick();\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const item = target.closest(\"[udex-masthead-item]\");\n if (item !== this && !this.isMobile && this.selected) {\n if (this.isDropdownOpened) {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n\n this.selected = false;\n }\n });\n }\n\n handleMouseDown(): void {\n this._preventFocusOut = true;\n }\n\n handleMouseUp(): void {\n this._preventFocusOut = false;\n }\n\n handleFocusout(e: FocusEvent): void {\n if (this.isFocusOutPrevented(e)) {\n return;\n }\n\n this.handleFocusOutForDropdowns(e);\n }\n\n handleFocusOutForDropdowns(e: FocusEvent): void {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const target = e.target as HTMLElement;\n\n if (this.shouldCloseDropdown(relatedTarget, target)) {\n this.closeDropdown();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape(): void {\n this.closeDropdown();\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile(): void {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n handleItemClick(e: PointerEvent): void {\n if (this.isProfileBtn) {\n this.profileSlot?.closeIdentitiesPanel();\n }\n this.handleSelectedChange();\n this.fireItemClickEvent(e);\n this.fireDropdownEvents();\n }\n\n handleSelectedChange(): void {\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n fireDropdownEvents(): void {\n if (this.hasDropdownSlot) {\n const { Open, Close } = UDExMastheadDropdownItemAction;\n const action = this.selected ? Open : Close;\n if (this.selected) {\n this.fireDropdownOpenEvent(this.eventItemTitle, action);\n } else {\n this.fireDropdownCloseEvent(this.eventItemTitle, action);\n }\n }\n }\n\n fireDropdownCloseEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-closed\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireDropdownOpenEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-opened\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireItemClickEvent(e: PointerEvent): void {\n this.fireDecoratorEvent(\"item-click\", {\n item: this,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: e.currentTarget as HTMLElement,\n });\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null) {\n dropdown.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n closeDropdown(): void {\n this.selected = false;\n this.fireDropdownCloseEvent(this.accessibleName || this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n }\n\n async applyFocusToFirstElement(): Promise<void> {\n const focusedElement = await getFirstFocusableElement(this.dropdownHolder);\n if (focusedElement) {\n focusedElement.focus();\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getSubItems(): Array<MenuItem> {\n return parseArrayFromString(this.subItems);\n }\n\n private isFocusOutPrevented(e: FocusEvent): boolean {\n return this.isMobile || e.relatedTarget === null || this._preventFocusOut;\n }\n\n private isProfileButtonTarget(relatedTarget: HTMLElement | null): boolean {\n return (relatedTarget?.tagName === \"UDEX-AVATAR\" || relatedTarget?.tagName === \"UDEX-MASTHEAD-ITEM\") && this.isProfileBtn;\n }\n\n private isNavItemTarget(target: HTMLElement): boolean {\n return target.getAttribute(\"slot\") === \"dropdown\" && !this.isProfileBtn;\n }\n\n private isRelatedTargetOutside(relatedTarget: HTMLElement | null): boolean {\n return relatedTarget?.closest(\"[udex-masthead-item]\") === null;\n }\n\n private shouldCloseDropdown(relatedTarget: HTMLElement, target:HTMLElement): boolean {\n return this.isRelatedTargetOutside(relatedTarget)\n || this.isProfileButtonTarget(relatedTarget)\n || this.isNavItemTarget(target);\n }\n\n get dropdownHolder(): HTMLElement {\n return this.getDomElement(\".udex-masthead-item__dropdown\")!;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get additionalClass(): string {\n const iconClass = (this.icon || this.image) ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n const supportClass = this.isSupportBtn ? \"udex-masthead-item__button--support\" : \"\";\n const countrySelectorClass = this.isCountrySelectorBtn ? \"udex-masthead-item__button--country-selector\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass} ${countrySelectorClass} ${supportClass}`.trim();\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"[udex-avatar]\")!;\n }\n\n get iconAltText(): string {\n return this._isMenuCloseBtn ? this.accessibleName || this.icon : this.iconAlt;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href?.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaDescribedBy(): string | undefined {\n const labels = [];\n\n if (this.isTargetBlank) {\n labels.push(`new-win-desc`);\n }\n\n if (this.imageAlt) {\n labels.push(`image-desc`);\n }\n\n return labels.length ? labels.join(\" \").trim() : undefined;\n }\n\n get shouldFocusFirstElement(): boolean {\n return this.isDropdownOpened && !this._preventFocusOut;\n }\n\n get isDropdownOpened(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length && !this.hideArrowIcon;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get isCountrySelectorBtn(): boolean {\n return this.getAttribute(\"slot\") === \"countrySelector\";\n }\n\n get isCartBtn(): boolean {\n return this.getAttribute(\"slot\") === \"cart\";\n }\n\n get isSearchBtn(): boolean {\n return this.icon === \"search\";\n }\n\n get isSupportBtn(): boolean {\n return this.getAttribute(\"slot\") === \"support\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText || (this.isProfileBtn ? UDExMastheadItem.i18nBundle.getText(PROFILE) : \"\");\n }\n\n get profileSlot(): UDExMastheadProfileMenu {\n return this.getSlottedNodes<UDExMastheadProfileMenu>(\"dropdown\")[0];\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"M\") || this.mastheadShell?._isMobileMode;\n }\n\n get isTargetBlank(): boolean {\n return this.target === UDExTarget._blank;\n }\n\n get openInNewWindowText(): string {\n return UDExMastheadItem.i18nBundle.getText(OPENS_IN_A_NEW_WINDOW);\n }\n\n get eventItemTitle(): string {\n if (this.isSearchBtn) {\n return UDExMastheadItem.i18nBundle.getText(SEARCH);\n }\n if (this.isCartBtn) {\n return UDExMastheadItem.i18nBundle.getText(CART);\n }\n if (this.isProfileBtn) {\n return UDExMastheadItem.i18nBundle.getText(PROFILE);\n }\n if (this.isCountrySelectorBtn) {\n return UDExMastheadItem.i18nBundle.getText(COUNTRY_SELECTOR);\n }\n if (this.isSupportBtn) {\n return UDExMastheadItem.i18nBundle.getText(SUPPORT);\n }\n\n return this.firstChild?.nodeValue?.trim() || \"\";\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\n"]}
|
|
1
|
+
{"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport {\n OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport type UDExAvatar from \"./Avatar.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nexport enum UDExMastheadDropdownItemAction {\n Open = \"Open\",\n Close = \"Close\",\n ClickOutside = \"Click Outside\",\n}\n\nexport interface IMastheadItem {\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n index: number;\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadItemItemClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExMastheadItem,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadDropdownEventDetail = {\n title: string,\n action: UDExMastheadDropdownItemAction,\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-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n languageAware: true,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"item-click\", { bubbles: true })\n\n/**\n * Fires when dropdown is closed\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"dropdown-closed\", { bubbles: true })\n\n/**\n * Fires when dropdown is opened\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"dropdown-opened\", { bubbles: true })\n\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n eventDetails!: {\n \"item-click\": UDExMastheadItemItemClickEventDetail,\n \"dropdown-closed\": UDExMastheadDropdownEventDetail,\n \"dropdown-opened\": UDExMastheadDropdownEventDetail,\n };\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"\";\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines if the arrow icon is hidden.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hideArrowIcon!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the image in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n image!: string;\n\n /**\n * Defines an alt text for item image\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageAlt!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property()\n target: UDExTarget = UDExTarget._self;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleRole?: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n iconAlt: string = \"\";\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction!: 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 label for analytics\n *\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n /**\n * Defines the prevents the item from losing focus.\n *\n * @private\n */\n\n @property({ type: Boolean })\n _preventFocusOut!: boolean;\n\n /**\n * Defines the item is a menu close button\n *\n * @private\n */\n @property({ type: Boolean })\n _isMenuCloseBtn?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _profileAvatar!: UDExAvatar;\n _mastheadShell!: UDExMastheadShell;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.label = this.eventItemTitle;\n }\n\n onAfterRendering(): void {\n this._profileAvatar = this.profileAvatar;\n this._mastheadShell = this.mastheadShell;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n\n if (this.shouldFocusFirstElement) {\n this.applyFocusToFirstElement();\n }\n\n this.handleOutsideClick();\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const item = target.closest(\"[udex-masthead-item]\");\n if (item !== this && !this.isMobile && this.selected) {\n if (this.isDropdownOpened) {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n\n this.selected = false;\n }\n });\n }\n\n handleMouseDown(): void {\n this._preventFocusOut = true;\n }\n\n handleMouseUp(): void {\n this._preventFocusOut = false;\n }\n\n handleFocusout(e: FocusEvent): void {\n if (this.isFocusOutPrevented(e)) {\n return;\n }\n\n this.handleFocusOutForDropdowns(e);\n }\n\n handleFocusOutForDropdowns(e: FocusEvent): void {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const target = e.target as HTMLElement;\n\n if (this.shouldCloseDropdown(relatedTarget, target)) {\n this.closeDropdown();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape(): void {\n this.closeDropdown();\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile(): void {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n handleItemClick(e: PointerEvent): void {\n if (this.isProfileBtn) {\n this.profileSlot?.closeIdentitiesPanel();\n }\n this.handleSelectedChange();\n this.fireItemClickEvent(e);\n this.fireDropdownEvents();\n }\n\n handleSelectedChange(): void {\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n fireDropdownEvents(): void {\n if (this.hasDropdownSlot) {\n const { Open, Close } = UDExMastheadDropdownItemAction;\n const action = this.selected ? Open : Close;\n if (this.selected) {\n this.fireDropdownOpenEvent(this.eventItemTitle, action);\n } else {\n this.fireDropdownCloseEvent(this.eventItemTitle, action);\n }\n }\n }\n\n fireDropdownCloseEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-closed\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireDropdownOpenEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-opened\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireItemClickEvent(e: PointerEvent): void {\n this.fireDecoratorEvent(\"item-click\", {\n item: this,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: e.currentTarget as HTMLElement,\n });\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null) {\n dropdown.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n closeDropdown(): void {\n this.selected = false;\n this.fireDropdownCloseEvent(this.accessibleName || this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n }\n\n async applyFocusToFirstElement(): Promise<void> {\n const focusedElement = await getFirstFocusableElement(this.dropdownHolder);\n if (focusedElement) {\n focusedElement.focus();\n }\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getSubItems(): Array<MenuItem> {\n return parseArrayFromString(this.subItems);\n }\n\n private isFocusOutPrevented(e: FocusEvent): boolean {\n return this.isMobile || e.relatedTarget === null || this._preventFocusOut;\n }\n\n private isProfileButtonTarget(relatedTarget: HTMLElement | null): boolean {\n return (relatedTarget?.tagName === \"UDEX-AVATAR\" || relatedTarget?.tagName === \"UDEX-MASTHEAD-ITEM\") && this.isProfileBtn;\n }\n\n private isNavItemTarget(target: HTMLElement): boolean {\n return target.getAttribute(\"slot\") === \"dropdown\" && !this.isProfileBtn;\n }\n\n private isRelatedTargetOutside(relatedTarget: HTMLElement | null): boolean {\n return relatedTarget?.closest(\"[udex-masthead-item]\") === null;\n }\n\n private shouldCloseDropdown(relatedTarget: HTMLElement, target:HTMLElement): boolean {\n return this.isRelatedTargetOutside(relatedTarget)\n || this.isProfileButtonTarget(relatedTarget)\n || this.isNavItemTarget(target);\n }\n\n get dropdownHolder(): HTMLElement {\n return this.getDomElement(\".udex-masthead-item__dropdown\")!;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get additionalClass(): string {\n const iconClass = (this.icon || this.image) ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n const supportClass = this.isSupportBtn ? \"udex-masthead-item__button--support\" : \"\";\n const countrySelectorClass = this.isCountrySelectorBtn ? \"udex-masthead-item__button--country-selector\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass} ${countrySelectorClass} ${supportClass}`.trim();\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"[udex-avatar]\")!;\n }\n\n get iconAltText(): string {\n return this._isMenuCloseBtn ? this.accessibleName || this.icon : this.iconAlt;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href?.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaDescribedBy(): string | undefined {\n const labels = [];\n\n if (this.isTargetBlank) {\n labels.push(`new-win-desc`);\n }\n\n if (this.imageAlt) {\n labels.push(`image-desc`);\n }\n\n return labels.length ? labels.join(\" \").trim() : undefined;\n }\n\n get shouldFocusFirstElement(): boolean {\n return this.isDropdownOpened && !this._preventFocusOut;\n }\n\n get isDropdownOpened(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length && !this.hideArrowIcon;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get isCountrySelectorBtn(): boolean {\n return this.getAttribute(\"slot\") === \"countrySelector\";\n }\n\n get isCartBtn(): boolean {\n return this.getAttribute(\"slot\") === \"cart\";\n }\n\n get isSearchBtn(): boolean {\n return this.icon === \"search\";\n }\n\n get isSupportBtn(): boolean {\n return this.getAttribute(\"slot\") === \"support\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText || (this.isProfileBtn ? UDExMastheadItem.i18nBundle.getText(PROFILE) : \"\");\n }\n\n get profileSlot(): UDExMastheadProfileMenu {\n return this.getSlottedNodes<UDExMastheadProfileMenu>(\"dropdown\")[0];\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"M\") || this.mastheadShell?._isMobileMode;\n }\n\n get isTargetBlank(): boolean {\n return this.target === UDExTarget._blank;\n }\n\n get openInNewWindowText(): string {\n return UDExMastheadItem.i18nBundle.getText(OPENS_IN_A_NEW_WINDOW);\n }\n\n get eventItemTitle(): string {\n if (this.isSearchBtn) {\n return UDExMastheadItem.i18nBundle.getText(SEARCH);\n }\n if (this.isCartBtn) {\n return UDExMastheadItem.i18nBundle.getText(CART);\n }\n if (this.isProfileBtn) {\n return UDExMastheadItem.i18nBundle.getText(PROFILE);\n }\n if (this.isCountrySelectorBtn) {\n return UDExMastheadItem.i18nBundle.getText(COUNTRY_SELECTOR);\n }\n if (this.isSupportBtn) {\n return UDExMastheadItem.i18nBundle.getText(SUPPORT);\n }\n\n return this.firstChild?.nodeValue?.trim() || \"\";\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\nexport type { UDExMastheadDropdownEventDetail, UDExMastheadItemItemClickEventDetail };\n"]}
|
package/dist/MastheadMenu.d.ts
CHANGED
package/dist/MastheadMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadMenu.js","sourceRoot":"","sources":["../src/MastheadMenu.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 Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport { isUp, isDown } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExBadge from \"./Badge.js\";\nimport UDExMastheadMenuItem, { UDExItemType } from \"./MastheadMenuItem.js\";\nimport type UDExMastheadItem from \"./MastheadItem.js\";\nimport UDExDivider from \"./Divider.js\";\nimport MastheadMenuTemplate from \"./generated/templates/MastheadMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\n\n// Styles\nimport MastheadMenuCss from \"./generated/themes/MastheadMenu.css.js\";\n\nconst rowClass = \"udex-masthead-menu_with-one-column\";\n\nexport type Item = {\n title: string;\n url: string;\n externalLink: boolean;\n isDivider?: boolean;\n};\n\nexport type SubMenuLinkItem = {\n categoryId: string;\n category: string;\n url: string;\n items: Item[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadMenuMenuItemClickEventDetail = {\n category?: string,\n analyticsPath: Array<string>,\n analyticsName: AnalyticsName,\n originalEvent: PointerEvent,\n item: UDExMastheadMenuItem,\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-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-menu\",\n renderer: litRender,\n styles: MastheadMenuCss,\n template: MastheadMenuTemplate,\n dependencies: [Icon, UDExBadge, UDExMastheadMenuItem, UDExDivider],\n})\n\n/**\n * Fires when menu item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"menu-item-click\", { bubbles: true })\n\nclass UDExMastheadMenu extends UI5Element {\n eventDetails!: {\n \"menu-item-click\": UDExMastheadMenuMenuItemClickEventDetail\n };\n /**\n * Defines a menu heading\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * List of the menu items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"[]\";\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n handleKeyDown(e: KeyboardEvent): void {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n if (isUp(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusPreviousItem(currentItem);\n }\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n if (isDown(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusNextItem(currentItem);\n }\n }\n\n handleMenuItemClick(e: PointerEvent): void {\n const menuItem = e.target as UDExMastheadMenuItem;\n if (!menuItem.url?.length) {\n return;\n }\n\n const mainItem = this.closest(\"[udex-masthead-item]\") as UDExMastheadItem;\n const menuList = menuItem.closest(\".udex-masthead-menu__list\") as HTMLElement;\n const sourceNode = menuItem.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement;\n const category = menuList?.getAttribute(\"category\") || \"\";\n\n const eventDetail: UDExMastheadMenuMenuItemClickEventDetail = {\n analyticsPath: [mainItem?.label, category, menuItem.label].filter(Boolean),\n analyticsName: AnalyticsName.Header,\n originalEvent: e,\n item: menuItem,\n sourceNode,\n ...(menuItem.type !== UDExItemType.Heading && { category }),\n };\n\n this.fireDecoratorEvent(\"menu-item-click\", eventDetail);\n }\n\n focusPreviousItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const lastItemIndex = this.links.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n this.links[previousSelectIndex].focus();\n }\n\n focusNextItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > this.links.length - 1 ? 0 : currentSelectedIndex + 1;\n this.links[nextSelectIndex].focus();\n }\n\n getCurrentIndex(item: UDExMastheadMenuItem): number {\n return this.links.indexOf(item);\n }\n\n get links(): Array<UDExMastheadMenuItem> {\n const menuItems: Array<UDExMastheadMenuItem> = Array.from(this.shadowRoot!.querySelectorAll(\"[udex-masthead-menu-item]\"));\n return menuItems.filter(({ url }) => url && url.length > 0);\n }\n\n get itemsList(): Array<MenuItem> {\n let id = 1;\n const parsedItems: Array<MenuItem> = parseArrayFromString(this.subItems);\n\n return parsedItems.map((mainItem: MenuItem) => {\n mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((subMenu: SubMenuLinkItem) => {\n subMenu.categoryId = `${id++}`;\n subMenu.items = subMenu.items.map((item: Item) => ({\n ...item,\n ...(item.title === \"-\" && { isDivider: true }),\n }));\n\n return subMenu;\n });\n\n return mainItem;\n });\n }\n\n get oneRowClass(): string {\n const hasOneColumn = this.itemsList.length === 1 && this.itemsList[0].subMenuLinkItems.length === 1;\n return hasOneColumn ? rowClass : \"\";\n }\n}\n\nUDExMastheadMenu.define();\n\nexport default UDExMastheadMenu;\n"]}
|
|
1
|
+
{"version":3,"file":"MastheadMenu.js","sourceRoot":"","sources":["../src/MastheadMenu.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 Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport { isUp, isDown } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExBadge from \"./Badge.js\";\nimport UDExMastheadMenuItem, { UDExItemType } from \"./MastheadMenuItem.js\";\nimport type UDExMastheadItem from \"./MastheadItem.js\";\nimport UDExDivider from \"./Divider.js\";\nimport MastheadMenuTemplate from \"./generated/templates/MastheadMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\n\n// Styles\nimport MastheadMenuCss from \"./generated/themes/MastheadMenu.css.js\";\n\nconst rowClass = \"udex-masthead-menu_with-one-column\";\n\nexport type Item = {\n title: string;\n url: string;\n externalLink: boolean;\n isDivider?: boolean;\n};\n\nexport type SubMenuLinkItem = {\n categoryId: string;\n category: string;\n url: string;\n items: Item[];\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadMenuMenuItemClickEventDetail = {\n category?: string,\n analyticsPath: Array<string>,\n analyticsName: AnalyticsName,\n originalEvent: PointerEvent,\n item: UDExMastheadMenuItem,\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-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-menu\",\n renderer: litRender,\n styles: MastheadMenuCss,\n template: MastheadMenuTemplate,\n dependencies: [Icon, UDExBadge, UDExMastheadMenuItem, UDExDivider],\n})\n\n/**\n * Fires when menu item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"menu-item-click\", { bubbles: true })\n\nclass UDExMastheadMenu extends UI5Element {\n eventDetails!: {\n \"menu-item-click\": UDExMastheadMenuMenuItemClickEventDetail\n };\n /**\n * Defines a menu heading\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * List of the menu items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"[]\";\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n handleKeyDown(e: KeyboardEvent): void {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n if (isUp(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusPreviousItem(currentItem);\n }\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n if (isDown(e)) {\n e.preventDefault();\n const currentItem = e.target as UDExMastheadMenuItem;\n this.focusNextItem(currentItem);\n }\n }\n\n handleMenuItemClick(e: PointerEvent): void {\n const menuItem = e.target as UDExMastheadMenuItem;\n if (!menuItem.url?.length) {\n return;\n }\n\n const mainItem = this.closest(\"[udex-masthead-item]\") as UDExMastheadItem;\n const menuList = menuItem.closest(\".udex-masthead-menu__list\") as HTMLElement;\n const sourceNode = menuItem.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement;\n const category = menuList?.getAttribute(\"category\") || \"\";\n\n const eventDetail: UDExMastheadMenuMenuItemClickEventDetail = {\n analyticsPath: [mainItem?.label, category, menuItem.label].filter(Boolean),\n analyticsName: AnalyticsName.Header,\n originalEvent: e,\n item: menuItem,\n sourceNode,\n ...(menuItem.type !== UDExItemType.Heading && { category }),\n };\n\n this.fireDecoratorEvent(\"menu-item-click\", eventDetail);\n }\n\n focusPreviousItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const lastItemIndex = this.links.length - 1;\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n this.links[previousSelectIndex].focus();\n }\n\n focusNextItem(item: UDExMastheadMenuItem): void {\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > this.links.length - 1 ? 0 : currentSelectedIndex + 1;\n this.links[nextSelectIndex].focus();\n }\n\n getCurrentIndex(item: UDExMastheadMenuItem): number {\n return this.links.indexOf(item);\n }\n\n get links(): Array<UDExMastheadMenuItem> {\n const menuItems: Array<UDExMastheadMenuItem> = Array.from(this.shadowRoot!.querySelectorAll(\"[udex-masthead-menu-item]\"));\n return menuItems.filter(({ url }) => url && url.length > 0);\n }\n\n get itemsList(): Array<MenuItem> {\n let id = 1;\n const parsedItems: Array<MenuItem> = parseArrayFromString(this.subItems);\n\n return parsedItems.map((mainItem: MenuItem) => {\n mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((subMenu: SubMenuLinkItem) => {\n subMenu.categoryId = `${id++}`;\n subMenu.items = subMenu.items.map((item: Item) => ({\n ...item,\n ...(item.title === \"-\" && { isDivider: true }),\n }));\n\n return subMenu;\n });\n\n return mainItem;\n });\n }\n\n get oneRowClass(): string {\n const hasOneColumn = this.itemsList.length === 1 && this.itemsList[0].subMenuLinkItems.length === 1;\n return hasOneColumn ? rowClass : \"\";\n }\n}\n\nUDExMastheadMenu.define();\n\nexport default UDExMastheadMenu;\nexport type { UDExMastheadMenuMenuItemClickEventDetail };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MastheadMenuItem.js","sourceRoot":"","sources":["../src/MastheadMenuItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,IAAI,MAAM,iCAAiC,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,yCAAyC,CAAC;AAEjD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,wBAAwB,MAAM,uDAAuD,CAAC;AAE7F,SAAS;AACT,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAE7E,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;AACf,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;
|
|
1
|
+
{"version":3,"file":"MastheadMenuItem.js","sourceRoot":"","sources":["../src/MastheadMenuItem.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 Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\n\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport { OPENS_IN_A_NEW_WINDOW } from \"./generated/i18n/i18n-defaults.js\";\nimport { UDExTarget } from \"./types/common.js\";\n\nimport MastheadMenuItemTemplate from \"./generated/templates/MastheadMenuItemTemplate.lit.js\";\n\n// Styles\nimport MastheadMenuItemCss from \"./generated/themes/MastheadMenuItem.css.js\";\n\nexport enum UDExItemType {\n Heading = \"Heading\",\n Button = \"Button\",\n Link = \"Link\"\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-menu-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadMenuItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @private\n */\n@customElement({\n tag: \"udex-masthead-menu-item\",\n languageAware: true,\n renderer: litRender,\n styles: MastheadMenuItemCss,\n template: MastheadMenuItemTemplate,\n dependencies: [Icon],\n})\n\nclass UDExMastheadMenuItem extends UI5Element {\n /**\n * Defines the type of the item.\n *\n * @default \"Link\"\n * @public\n */\n @property()\n type: `${UDExItemType}` = UDExItemType.Link;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n accessibleRole!: string;\n\n /**\n * Defines the label of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n label!: string;\n\n /**\n * Defines the url of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n url?: string;\n\n /**\n * Defines the badge of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n badge?: string;\n\n /**\n * Defines the externalLink of the component.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n externalLink?: boolean;\n\n /**\n * Defines the border for component.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hasBorder?: boolean;\n\n /**\n * Defines the start position of icon arrow.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconStart?: boolean;\n\n /**\n * Defines the end position of icon arrow.\n *\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconEnd?: boolean;\n\n /**\n * Defines the index for the item.\n *\n * @public\n */\n @property({ type: Number })\n index!: number;\n\n /**\n * Defines the aria-haspopup attribute for the item.\n *\n * @public\n */\n @property({ type: String })\n ariaHasPopup!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n * @default \"_self\"\n */\n @property()\n target: `${UDExTarget}` = UDExTarget._self;\n\n /**\n * Defines the tabindex attribute for the item.\n *\n * @private\n */\n @property({ type: String })\n _tabIndex!: string;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n get rootClass(): string {\n const prefixClass = \"udex-masthead-menu-item\";\n const badgeClass = this.badge ? `${prefixClass}_badge` : \"\";\n const rootClass = this.isHeadingType ? `${prefixClass}_is-header` : `${prefixClass}_is-list`;\n return `${rootClass} ${badgeClass}`;\n }\n\n get labelClass(): string {\n const root = \"udex-masthead-menu-item__label\";\n return this.externalLink ? `${root} ${root}__label_with-icon` : `${root}`;\n }\n\n get isHeadingType(): boolean {\n return this.type === UDExItemType.Heading;\n }\n\n get isButtonType(): boolean {\n return this.type === UDExItemType.Button;\n }\n\n get isActive(): boolean {\n return !!this.url && !this.isButtonType;\n }\n\n get targetLink(): string {\n if (this.externalLink) {\n return this.externalLink ? UDExTarget._blank : UDExTarget._self;\n }\n return this.target;\n }\n\n get lastWordOfLabel(): string | undefined {\n return this.label.split(\" \").pop();\n }\n\n get leadingWordsOfLabel(): string {\n const leadingWords = this.label.split(\" \").slice(0, -1).join(\" \");\n return `${leadingWords} `;\n }\n\n get openInNewWindowText(): string {\n return UDExMastheadMenuItem.i18nBundle.getText(OPENS_IN_A_NEW_WINDOW);\n }\n\n get ariaDescribedby(): string | null {\n return this.externalLink ? \"new-win-desc\" : null;\n }\n\n get accessibleRoleText(): string {\n return this.accessibleRole ? this.accessibleRole : \"menuitem\";\n }\n\n get partAttr(): string {\n return this.badge ? \"menu-item-link-badge\" : \"menu-item-link\";\n }\n}\n\nUDExMastheadMenuItem.define();\n\nexport default UDExMastheadMenuItem;\n"]}
|
|
@@ -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 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\";\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 */\n@event(\"item-click\", { cancelable: true, bubbles: false })\n\n/**\n * Fires when explorer menu button is clicked\n *\n * @allowPreventDefault\n * @public\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) {\n analyticsPath.unshift(this.exploreItem.label);\n }\n\n return analyticsPath;\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 UDExMastheadMobileMenu.i18nBundle.getText(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;\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 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 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\";\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 */\n@event(\"item-click\", { cancelable: true, bubbles: false })\n\n/**\n * Fires when explorer menu button is clicked\n *\n * @allowPreventDefault\n * @public\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) {\n analyticsPath.unshift(this.exploreItem.label);\n }\n\n return analyticsPath;\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 UDExMastheadMobileMenu.i18nBundle.getText(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"]}
|
|
@@ -8,21 +8,21 @@ import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
|
8
8
|
import "@ui5/webcomponents-icons/dist/action.js";
|
|
9
9
|
import type { LinkClickEventDetail } from "@ui5/webcomponents/dist/Link.js";
|
|
10
10
|
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/delegate/ResizeHandler.js";
|
|
11
|
-
interface UserData {
|
|
11
|
+
export interface UserData {
|
|
12
12
|
name?: string;
|
|
13
13
|
username?: string;
|
|
14
14
|
email?: string;
|
|
15
15
|
avatarUrl?: string;
|
|
16
16
|
avatarInitials?: string;
|
|
17
17
|
}
|
|
18
|
-
interface UserIdentity {
|
|
18
|
+
export interface UserIdentity {
|
|
19
19
|
avatarUrl: string;
|
|
20
20
|
email: string;
|
|
21
21
|
name: string;
|
|
22
22
|
idsUser: string;
|
|
23
23
|
isLogged: boolean;
|
|
24
24
|
}
|
|
25
|
-
interface ExtendedUserIdentity extends UserIdentity {
|
|
25
|
+
export interface ExtendedUserIdentity extends UserIdentity {
|
|
26
26
|
supportingText: string;
|
|
27
27
|
statusBadge: string;
|
|
28
28
|
}
|
|
@@ -152,3 +152,4 @@ declare class UDExMastheadProfileMenu extends UI5Element {
|
|
|
152
152
|
get isMobile(): boolean;
|
|
153
153
|
}
|
|
154
154
|
export default UDExMastheadProfileMenu;
|
|
155
|
+
export type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };
|
|
@@ -24,11 +24,11 @@ import parseArrayFromString from "./utils/parseArrayFromString.js";
|
|
|
24
24
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
25
25
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
26
26
|
import "@ui5/webcomponents-icons/dist/action.js";
|
|
27
|
-
// Styles
|
|
28
|
-
import MastheadProfileMenuCss from "./generated/themes/MastheadProfileMenu.css.js";
|
|
29
27
|
import UDExStatusBadgeValueState from "./types/StatusBadgeValueState.js";
|
|
30
28
|
import ResizeHandler from "@ui5/webcomponents-base/delegate/ResizeHandler.js";
|
|
31
29
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
30
|
+
// Styles
|
|
31
|
+
import MastheadProfileMenuCss from "./generated/themes/MastheadProfileMenu.css.js";
|
|
32
32
|
/**
|
|
33
33
|
* @class
|
|
34
34
|
*
|
|
@@ -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 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 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\";\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.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\";\n\ninterface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n}\n\ninterface UserIdentity {\n avatarUrl: string,\n email: string,\n name: string,\n idsUser: string,\n isLogged: boolean,\n}\n\ninterface 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 ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\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 */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\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 * Placeholder for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: 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\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 }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\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\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutItemClick(e: PointerEvent): void {\n this.fireLogoutItemClick(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 fireLogoutItemClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n\n this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\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 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 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 : UDExMastheadProfileMenu.i18nBundle.getText(BACK);\n }\n\n get listTitleText(): string {\n return `${UDExMastheadProfileMenu.i18nBundle.getText(OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(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\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\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 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 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\";\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}\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 ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\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 */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\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 * Placeholder for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: 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\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 }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\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\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutItemClick(e: PointerEvent): void {\n this.fireLogoutItemClick(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 fireLogoutItemClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n\n this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\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 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 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 : UDExMastheadProfileMenu.i18nBundle.getText(BACK);\n }\n\n get listTitleText(): string {\n return `${UDExMastheadProfileMenu.i18nBundle.getText(OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(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\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\nexport type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };\n"]}
|