@sapudex/web-components 2.52.0 → 2.54.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/Avatar.cy.tsx +103 -0
- package/cypress/specs/FilterMenu.cy.tsx +34 -0
- package/cypress/specs/SelectBox.cy.tsx +55 -0
- package/dist/Accordion.js +1 -1
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +1 -1
- package/dist/AccordionItem.js.map +1 -1
- package/dist/Avatar.d.ts +12 -3
- package/dist/Avatar.js +44 -4
- package/dist/Avatar.js.map +1 -1
- package/dist/AvatarTemplate.js +1 -1
- package/dist/AvatarTemplate.js.map +1 -1
- package/dist/Badge.js +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Breadcrumbs.js.map +1 -1
- package/dist/Carousel.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/Contact.js +1 -1
- package/dist/Contact.js.map +1 -1
- package/dist/ContactItem.js +1 -1
- package/dist/ContactItem.js.map +1 -1
- package/dist/Feed.d.ts +2 -1
- package/dist/Feed.js +1 -1
- package/dist/Feed.js.map +1 -1
- package/dist/FeedItem.d.ts +2 -1
- package/dist/FeedItem.js +1 -1
- package/dist/FeedItem.js.map +1 -1
- package/dist/FilterMenuGroupHeader.js +1 -1
- package/dist/FilterMenuGroupHeader.js.map +1 -1
- package/dist/Footer.d.ts +2 -1
- package/dist/Footer.js +1 -1
- package/dist/Footer.js.map +1 -1
- package/dist/ImageGridCloud.js +1 -1
- package/dist/ImageGridCloud.js.map +1 -1
- package/dist/ImageGridTable.js +1 -1
- package/dist/ImageGridTable.js.map +1 -1
- package/dist/ImageGridTableItem.js +1 -1
- package/dist/ImageGridTableItem.js.map +1 -1
- package/dist/ImageGridTicker.js +1 -1
- package/dist/ImageGridTicker.js.map +1 -1
- package/dist/InputGroup.js +1 -1
- package/dist/InputGroup.js.map +1 -1
- package/dist/LinkList.js +1 -1
- package/dist/LinkList.js.map +1 -1
- package/dist/List.js +1 -1
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeaderBase.js +1 -1
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.d.ts +3 -3
- package/dist/ListItem.js +1 -1
- package/dist/ListItem.js.map +1 -1
- package/dist/MastheadItem.d.ts +3 -3
- package/dist/MastheadItem.js +1 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +3 -3
- package/dist/MastheadMobileMenu.js +1 -1
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +3 -2
- package/dist/MastheadProfileMenu.js +1 -1
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +9 -9
- package/dist/MastheadShell.js +1 -1
- package/dist/MastheadShell.js.map +1 -1
- package/dist/MediaPlayer.d.ts +1 -1
- package/dist/MediaPlayer.js +13 -3
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/MediaPlayerVimeo.d.ts +6 -0
- package/dist/MediaPlayerVimeo.js +27 -6
- package/dist/MediaPlayerVimeo.js.map +1 -1
- package/dist/MediaPlayerYoutube.d.ts +3 -0
- package/dist/MediaPlayerYoutube.js +24 -5
- package/dist/MediaPlayerYoutube.js.map +1 -1
- package/dist/MessageStrip.d.ts +2 -1
- package/dist/MessageStrip.js +1 -1
- package/dist/MessageStrip.js.map +1 -1
- package/dist/Modal.d.ts +2 -0
- package/dist/Modal.js +10 -3
- package/dist/Modal.js.map +1 -1
- package/dist/PromoTile.d.ts +2 -2
- package/dist/PromoTile.js +1 -1
- package/dist/PromoTile.js.map +1 -1
- package/dist/Quote.d.ts +4 -4
- package/dist/Quote.js +1 -1
- package/dist/Quote.js.map +1 -1
- package/dist/Review.d.ts +3 -3
- package/dist/Review.js +1 -1
- package/dist/Review.js.map +1 -1
- package/dist/ReviewItem.d.ts +4 -3
- package/dist/ReviewItem.js +1 -1
- package/dist/ReviewItem.js.map +1 -1
- package/dist/Search.js +1 -1
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.js +5 -1
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +3 -3
- package/dist/SecondaryNavigation.js +1 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +2 -1
- package/dist/SecondaryNavigationItem.js +1 -1
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SelectBase.js +1 -1
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBox.d.ts +5 -0
- package/dist/SelectBox.js +9 -0
- package/dist/SelectBox.js.map +1 -1
- package/dist/SelectBoxGroupHeader.js +1 -1
- package/dist/SelectBoxGroupHeader.js.map +1 -1
- package/dist/SelectBoxItem.d.ts +3 -3
- package/dist/SelectBoxItem.js +1 -1
- package/dist/SelectBoxItem.js.map +1 -1
- package/dist/SideNavigationMobile.d.ts +2 -2
- package/dist/SideNavigationMobile.js +1 -1
- package/dist/SideNavigationMobile.js.map +1 -1
- package/dist/SocialMediaButton.js +1 -1
- package/dist/SocialMediaButton.js.map +1 -1
- package/dist/Tab.d.ts +2 -2
- package/dist/Tab.js +1 -1
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.d.ts +2 -2
- package/dist/TabNavigation.js +1 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Table.d.ts +5 -5
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TableCellBase.js +1 -1
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableGroupRow.js +1 -1
- package/dist/TableGroupRow.js.map +1 -1
- package/dist/TableRowBase.js +1 -1
- package/dist/TableRowBase.js.map +1 -1
- package/dist/TagGroup.js +1 -1
- package/dist/TagGroup.js.map +1 -1
- package/dist/Tile.d.ts +2 -1
- package/dist/Tile.js +1 -1
- package/dist/Tile.js.map +1 -1
- package/dist/Tooltip.d.ts +2 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/Wizard.js +1 -1
- package/dist/Wizard.js.map +1 -1
- package/dist/assets/{InputSuggestions-0wafO-g3.js → InputSuggestions-CqOrRXxa.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DoOYtqI8.js → ListItemStandardExpandableTextTemplate-DKUm4L2B.js} +1 -1
- package/dist/assets/{bundle-CkxyEA8c.css → bundle-C7Yft7IG.css} +1 -1
- package/dist/assets/{bundle.esm-DwHZ3nCW.js → bundle.esm-CI60uvdr.js} +227 -227
- package/dist/assets/messagebundle_lv-D06tlATH.js +1 -0
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/BreadcrumbsPopover.css +1 -1
- package/dist/css/themes/Contact.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Tile.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/css/themes/Tooltip.css +1 -1
- package/dist/custom-elements-internal.json +44 -11
- package/dist/custom-elements.json +27 -2
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
- package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
- package/dist/generated/themes/Contact.css.d.ts +1 -1
- package/dist/generated/themes/Contact.css.js +1 -1
- package/dist/generated/themes/Contact.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/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/Tile.css.d.ts +1 -1
- package/dist/generated/themes/Tile.css.js +1 -1
- package/dist/generated/themes/Tile.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/generated/themes/Tooltip.css.d.ts +1 -1
- package/dist/generated/themes/Tooltip.css.js +1 -1
- package/dist/generated/themes/Tooltip.css.js.map +1 -1
- package/dist/messagebundle_lv.properties +126 -0
- package/dist/vscode.html-custom-data.json +3 -3
- package/dist/web-types.json +25 -9
- package/package.json +1 -1
- package/src/Accordion.ts +1 -1
- package/src/AccordionItem.ts +1 -1
- package/src/Avatar.ts +55 -6
- package/src/AvatarTemplate.tsx +2 -2
- package/src/Badge.ts +1 -1
- package/src/Breadcrumbs.ts +1 -1
- package/src/Carousel.ts +1 -1
- package/src/Contact.ts +1 -1
- package/src/ContactItem.ts +1 -1
- package/src/Feed.ts +3 -2
- package/src/FeedItem.ts +3 -2
- package/src/FilterMenuGroupHeader.ts +1 -1
- package/src/Footer.ts +3 -2
- package/src/ImageGridCloud.ts +1 -1
- package/src/ImageGridTable.ts +1 -1
- package/src/ImageGridTableItem.ts +1 -1
- package/src/ImageGridTicker.ts +1 -1
- package/src/InputGroup.ts +1 -1
- package/src/LinkList.ts +1 -1
- package/src/List.ts +1 -1
- package/src/ListGroupHeaderBase.ts +1 -1
- package/src/ListItem.ts +4 -4
- package/src/MastheadItem.ts +4 -4
- package/src/MastheadMobileMenu.ts +4 -4
- package/src/MastheadProfileMenu.ts +4 -3
- package/src/MastheadShell.ts +10 -10
- package/src/MediaPlayer.ts +13 -4
- package/src/MediaPlayerVimeo.ts +31 -6
- package/src/MediaPlayerYoutube.ts +24 -5
- package/src/MessageStrip.ts +3 -2
- package/src/Modal.ts +18 -3
- package/src/PromoTile.ts +3 -3
- package/src/Quote.ts +5 -5
- package/src/Review.ts +4 -4
- package/src/ReviewItem.ts +5 -4
- package/src/Search.ts +1 -1
- package/src/SearchableListBase.ts +6 -1
- package/src/SecondaryNavigation.ts +4 -4
- package/src/SecondaryNavigationItem.ts +3 -2
- package/src/SelectBase.ts +1 -1
- package/src/SelectBox.ts +10 -0
- package/src/SelectBoxGroupHeader.ts +1 -1
- package/src/SelectBoxItem.ts +4 -4
- package/src/SideNavigationMobile.ts +3 -3
- package/src/SocialMediaButton.ts +1 -1
- package/src/Tab.ts +3 -3
- package/src/TabNavigation.ts +3 -3
- package/src/Table.ts +6 -6
- package/src/TableCellBase.ts +1 -1
- package/src/TableGroupRow.ts +1 -1
- package/src/TableRowBase.ts +1 -1
- package/src/TagGroup.ts +1 -1
- package/src/Tile.ts +3 -2
- package/src/Tooltip.ts +3 -2
- package/src/Wizard.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
- package/src/generated/themes/Contact.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/MessageStrip.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Tile.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/generated/themes/Tooltip.css.ts +1 -1
- package/src/i18n/messagebundle_lv.properties +126 -0
- package/src/themes/AccordionItem.css +2 -2
- package/src/themes/BreadcrumbsPopover.css +1 -1
- package/src/themes/Contact.css +3 -3
- package/src/themes/FilterMenu.css +1 -1
- package/src/themes/Footer.css +1 -1
- package/src/themes/MessageStrip.css +8 -5
- package/src/themes/Search.css +3 -3
- package/src/themes/Slider.css +1 -1
- package/src/themes/Tile.css +2 -2
- package/src/themes/Toast.css +1 -1
- package/src/themes/Tooltip.css +1 -1
- package/dist/assets/messagebundle_lv-BHId5zho.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.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 ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITab } from \"./Tab.js\";\nimport type Tab from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE, PLAY_BUTTON_ACCESSIBLE_NAME, PAUSE_BUTTON_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/pause.js\";\nimport UDExButton from \"./Button.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum UDExSizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\nexport enum UDExTabNavigationOrientation {\n Horizontal = \"Horizontal\",\n Vertical = \"Vertical\",\n}\n\nexport enum UDExTabNavigationPlacement {\n Start = \"Start\",\n End = \"End\",\n}\n\nexport enum UDExTabNavigationVerticalAlignment {\n Top = \"Top\",\n Center = \"Center\",\n}\n\ntype UDExTabNavigationClickDetail = {\n currentPage: number\n}\n\ntype UDExTabContainerTabSelectEventDetail = {\n tab: Tab,\n tabIndex: number\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon, UDExButton],\n})\n\n/**\n * Fires when the tab was clicked.\n *\n * @public\n * @param {number} currentPage The current selected tab index.\n */\n@event(\"click\", { bubbles: true })\n/**\n * Fired when a tab is selected.\n *\n * @public\n * @param {Tab} tab The selected tab.\n * @param {number} tabIndex The index of the selected tab.\n */\n@event(\"tab-select\", { bubbles: true })\n\nclass UDExTabNavigation extends UI5Element {\n eventDetails!: {\n \"click\": UDExTabNavigationClickDetail,\n \"tab-select\": UDExTabContainerTabSelectEventDetail,\n };\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property()\n sizeMoreButton: `${UDExSizeMoreButton}` = \"Small\";\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property()\n mode: `${Mode}` = Mode.Light;\n\n /**\n * Defines the orientation of the tab navigation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. Only `Horizontal` orientation should be used.\n * @public\n * @default \"Horizontal\"\n */\n @property()\n orientation: `${UDExTabNavigationOrientation}` = UDExTabNavigationOrientation.Horizontal;\n\n /**\n * Defines the placement of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Start\"\n */\n @property()\n placement: `${UDExTabNavigationPlacement}` = UDExTabNavigationPlacement.Start;\n\n /**\n * Defines the vertical alignment of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Top\"\n */\n @property()\n verticalAlignment: `${UDExTabNavigationVerticalAlignment}` = UDExTabNavigationVerticalAlignment.Top;\n\n /**\n * Enables automatic tab switching for Vertical orientation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default false\n */\n @property({ type: Boolean })\n autoPlay: boolean = false;\n\n /**\n * Defines the interval in milliseconds between automatic tab switches.\n * Applies only when autoPlay is enabled.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation with autoPlay.\n * @public\n * @default 5000\n */\n @property({ type: Number })\n autoPlayInterval: number = 5000;\n\n /**\n * Indicates whether the auto-play is paused.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _isPaused: boolean = false;\n\n /**\n * !DEPRECATED! Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n /**\n * Enables the Process Tab variant, where each tab displays an icon\n * alongside an optional item count text above the label.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n processTab: boolean = false;\n\n @property({ type: String })\n tabWidth: string = \"auto\";\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ type: Number, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: DefaultSlot<ITab>;\n\n /**\n * Defines optional content rendered below the tab list in Vertical orientation.\n * Use to place a button or any action element beneath the tabs.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This slot only applies to Vertical orientation.\n * @slot footer\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Array<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: () => void;\n _handleWindowResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n _autoPlayTimer?: number;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleWindowResizeBound = this._handleWindowResize.bind(this);\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n this.applyTabWidthToVerticalTabs();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n window.addEventListener(\"resize\", this._handleWindowResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.showPlayButton) {\n const prefersReducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n if (prefersReducedMotion) {\n this._isPaused = true;\n } else {\n this._startAutoPlay();\n }\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n window.removeEventListener(\"resize\", this._handleWindowResizeBound);\n this._stopAutoPlay();\n }\n\n _handleWindowResize() {\n this.updateMobileState();\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n this.updateMobileState();\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireDecoratorEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n this.updateMobileState();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected && !tab.disabled);\n const firstEnabledTab = this.items.find(tab => !tab.disabled) as Tab;\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : (firstEnabledTab || this.items[0] as Tab);\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : (firstEnabledTab || this.items[0]));\n }\n\n setRealTabToItems() {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._isProcessTab = this.processTab;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._isMobile = isMobile;\n tab._isVertical = this.isVertical;\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string): Element[] {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n initOutsideClick() {\n if (this._popover?.open) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n (this.getMoreButton() as UDExButton).toggled = false;\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as unknown as Array<Tab>).findIndex(item => item.__id === tab.id);\n\n if (this.items[selectedTabIndex]?.disabled) {\n return;\n }\n\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n\n if (this.showPlayButton && !this._isPaused) {\n this._startAutoPlay();\n }\n }\n\n getTab(el: HTMLElement | null): Tab | false {\n const tab = el?.closest<Tab>(\"button[role=\\\"tab\\\"]\");\n return tab || false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n setItemsInHeader() {\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n // Skip overflow logic for vertical tabs - show all tabs\n if (this.isVertical) {\n return;\n }\n\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>): number {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement): number {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number): number {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement): number {\n const isProcessTab = itemDomRef.classList.contains(\"udex-tab-navigation__button-tab--process\");\n const tabTitle = isProcessTab\n ? (itemDomRef.querySelector<HTMLElement>(\".udex-tab-navigation__button-text\")?.innerText?.trim() ?? itemDomRef.innerText)\n : itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n // For process tabs the icon container (32px) + gap (8px) is rendered inline before the text block\n const processTabIconOffset = isProcessTab ? 40 : 0;\n const effectiveIndentation = indentation + processTabIconOffset;\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + effectiveIndentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement): { indentation: number, marginInlineEnd: number } {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number): number {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab): Tab {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab): number {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0): number {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items\n .filter(tab => !tab.disabled)\n .map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex && !tab.disabled ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n e.preventDefault();\n this.onItemSelect(targetId);\n }\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n getMoreButton(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.open) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.open) {\n this._popover.open = false;\n (this.getMoreButton() as UDExButton).toggled = false;\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.open) {\n this._popover!.opener = this.getMoreButton();\n this._popover!.open = true;\n (this.getMoreButton() as UDExButton).toggled = true;\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (this.isHorizontal) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n } else {\n this.handleDownArrow(e);\n this.handleUpArrow(e);\n }\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n getTabIndexById(id: string): number {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n // For horizontal tabs, right arrow always moves focus to the next tab\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n onFocusPreviousItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n onFocusNextItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.open) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string): number {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n this.onItemSelect(targetId);\n this.handleClosePopover();\n }\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get isHorizontal(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Horizontal;\n }\n\n get isVertical(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Vertical;\n }\n\n get ariaOrientationValue(): string {\n return this.isVertical ? \"vertical\" : \"horizontal\";\n }\n\n get isDesktop(): boolean {\n return isDesktop();\n }\n\n get moreButtonText(): string {\n return translate(UDExTabNavigation, MORE);\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n\n applyTabWidthToVerticalTabs(): void {\n if (this.isVertical && this.tabWidth && this.tabWidth !== \"auto\") {\n this.style.setProperty(\"--udex-tab-header-width\", this.tabWidth);\n }\n }\n\n updateMobileState(): void {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach(tab => {\n tab._isMobile = isMobile;\n });\n }\n\n _startAutoPlay(): void {\n this._stopAutoPlay();\n this._isPaused = false;\n this._autoPlayTimer = window.setInterval(() => {\n this._advanceTab();\n }, this.autoPlayInterval);\n }\n\n _stopAutoPlay(): void {\n if (this._autoPlayTimer !== undefined) {\n window.clearInterval(this._autoPlayTimer);\n this._autoPlayTimer = undefined;\n }\n }\n\n _advanceTab(): void {\n const enabledItems = (this.items as unknown as Array<Tab>).filter(item => !item.disabled);\n if (enabledItems.length === 0) {\n return;\n }\n const currentEnabledIndex = enabledItems.findIndex(item => item === this._selectedTab);\n const nextEnabledIndex = (currentEnabledIndex + 1) % enabledItems.length;\n const nextTab = enabledItems[nextEnabledIndex];\n const nextIndex = (this.items as unknown as Array<Tab>).indexOf(nextTab);\n this._selectedTab = nextTab;\n this.updateSelectedTab(nextIndex);\n this.emitClickEvent(nextIndex + 1);\n }\n\n onPlayButtonClick(): void {\n if (this._isPaused) {\n this._startAutoPlay();\n } else {\n this._stopAutoPlay();\n this._isPaused = true;\n }\n }\n\n get showPlayButton(): boolean {\n return this.isVertical && this.autoPlay;\n }\n\n get showFooterSlot(): boolean {\n return this.isVertical && this.footer?.length > 0;\n }\n\n get playBtnIcon(): string {\n return this._isPaused ? \"play\" : \"pause\";\n }\n\n get playBtnTooltipText(): string {\n return this._isPaused\n ? translate(UDExTabNavigation, PLAY_BUTTON_ACCESSIBLE_NAME)\n : translate(UDExTabNavigation, PAUSE_BUTTON_ACCESSIBLE_NAME);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\nexport type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };\n"]}
|
|
1
|
+
{"version":3,"file":"TabNavigation.js","sourceRoot":"","sources":["../src/TabNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport type { StyleData } from \"@ui5/webcomponents-base/dist/types.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n isUp, isDown, isRight, isLeft, isEnter, isSpace, isEscape, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITab } from \"./Tab.js\";\nimport type Tab from \"./Tab.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MORE, PLAY_BUTTON_ACCESSIBLE_NAME, PAUSE_BUTTON_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/pause.js\";\nimport UDExButton from \"./Button.js\";\n\n// Templates\nimport TabNavigationTemplate from \"./generated/templates/TabNavigationTemplate.lit.js\";\nimport TabNavigationPopoverTemplate from \"./generated/templates/TabNavigationPopoverTemplate.lit.js\";\n\n// Styles\nimport TabNavigationCss from \"./generated/themes/TabNavigation.css.js\";\nimport TabInOverflowCss from \"./generated/themes/TabInOverflow.css.js\";\nimport translate from \"./utils/translate.js\";\n\nconst staticAreaTabStyles: Array<StyleData> = [];\n\nexport enum UDExSizeMoreButton {\n Small = \"Small\",\n Medium = \"Medium\",\n}\n\nexport enum Mode {\n Light = \"Light\",\n Dark = \"Dark\",\n}\n\nexport enum UDExTabNavigationOrientation {\n Horizontal = \"Horizontal\",\n Vertical = \"Vertical\",\n}\n\nexport enum UDExTabNavigationPlacement {\n Start = \"Start\",\n End = \"End\",\n}\n\nexport enum UDExTabNavigationVerticalAlignment {\n Top = \"Top\",\n Center = \"Center\",\n}\n\ntype UDExTabNavigationClickDetail = {\n currentPage: number\n}\n\ntype UDExTabContainerTabSelectEventDetail = {\n tab: Tab,\n tabIndex: number\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-tab-navigation</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TabNavigation.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-tab-navigation\n * @public\n */\n@customElement({\n tag: \"udex-tab-navigation\",\n renderer: litRender,\n styles: [TabNavigationCss, TabInOverflowCss],\n template: TabNavigationTemplate,\n dependencies: [Popover, Icon, UDExButton],\n})\n\n/**\n * Fires when the tab was clicked.\n *\n * @public\n * @param {number} currentPage The current selected tab index.\n */\n@event(\"click\", { bubbles: true })\n/**\n * Fired when a tab is selected.\n *\n * @public\n * @param {Tab} tab The selected tab.\n * @param {number} tabIndex The index of the selected tab.\n */\n@event(\"tab-select\", { bubbles: true })\n\nclass UDExTabNavigation extends UI5Element {\n eventDetails!: {\n \"click\": UDExTabNavigationClickDetail,\n \"tab-select\": UDExTabContainerTabSelectEventDetail,\n };\n /**\n * Defines the size of the \"More\" button.\n *\n * @public\n * @default \"Small\"\n */\n @property()\n sizeMoreButton: `${UDExSizeMoreButton}` = \"Small\";\n\n /**\n * Defines the mode of the component.\n *\n * @public\n * @default \"Light\"\n */\n @property()\n mode: `${Mode}` = Mode.Light;\n\n /**\n * Defines the orientation of the tab navigation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. Only `Horizontal` orientation should be used.\n * @public\n * @default \"Horizontal\"\n */\n @property()\n orientation: `${UDExTabNavigationOrientation}` = UDExTabNavigationOrientation.Horizontal;\n\n /**\n * Defines the placement of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Start\"\n */\n @property()\n placement: `${UDExTabNavigationPlacement}` = UDExTabNavigationPlacement.Start;\n\n /**\n * Defines the vertical alignment of the tab strip relative to the content area.\n * Applies to Vertical orientation only.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default \"Top\"\n */\n @property()\n verticalAlignment: `${UDExTabNavigationVerticalAlignment}` = UDExTabNavigationVerticalAlignment.Top;\n\n /**\n * Enables automatic tab switching for Vertical orientation.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation.\n * @public\n * @default false\n */\n @property({ type: Boolean })\n autoPlay: boolean = false;\n\n /**\n * Defines the interval in milliseconds between automatic tab switches.\n * Applies only when autoPlay is enabled.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This property only applies to Vertical orientation with autoPlay.\n * @public\n * @default 5000\n */\n @property({ type: Number })\n autoPlayInterval: number = 5000;\n\n /**\n * Indicates whether the auto-play is paused.\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _isPaused: boolean = false;\n\n /**\n * !DEPRECATED! Defines the background color of the component.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n iconWithoutBackground!: boolean;\n\n /**\n * Enables the Process Tab variant, where each tab displays an icon\n * alongside an optional item count text above the label.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n processTab: boolean = false;\n\n @property({ type: String })\n tabWidth: string = \"auto\";\n\n /**\n * Defines selected tab.\n *\n * @private\n */\n @property({ type: Object })\n _selectedTab!: Tab;\n\n /**\n * Defines the width of component.\n *\n * @private\n */\n @property({ type: Number, noAttribute: true })\n _width?: number;\n\n /**\n * Defines the overflow items.\n *\n * @private\n */\n @property({ type: Object })\n _overflowItems!: Array<ITab>;\n\n /**\n * Defines the tabs and content.\n *\n * @slot items\n * @public\n */\n @slot({\n type: HTMLElement,\n \"default\": true,\n individualSlots: true,\n invalidateOnChildChange: true,\n })\n items!: DefaultSlot<ITab>;\n\n /**\n * Defines optional content rendered below the tab list in Vertical orientation.\n * Use to place a button or any action element beneath the tabs.\n *\n * @deprecated Vertical Tabs feature has been moved to Accordion Spotlight. This slot only applies to Vertical orientation.\n * @slot footer\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: () => void;\n _handleWindowResizeBound: () => void;\n _popover?: Popover;\n _visibleTabs?: Array<ITab | HTMLElement>;\n _isExpanded: boolean = false;\n _maxTitleLength: number = 25;\n _maxTitleLengthInSecondLines: number = this._maxTitleLength * 2;\n _autoPlayTimer?: number;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleWindowResizeBound = this._handleWindowResize.bind(this);\n }\n\n onAfterRendering(): void {\n if (this.items.length) {\n this.setItemsInHeader();\n this.setVisibleTabs();\n this.applyTabIndex();\n } else {\n console.warn(\"You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.\");\n }\n this.initOutsideClick();\n this.applyTabWidthToVerticalTabs();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this.getHeader(), this._handleResizeBound);\n window.addEventListener(\"resize\", this._handleWindowResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n if (this.showPlayButton) {\n const prefersReducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n if (prefersReducedMotion) {\n this._isPaused = true;\n } else {\n this._startAutoPlay();\n }\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this.getHeader(), this._handleResizeBound);\n window.removeEventListener(\"resize\", this._handleWindowResizeBound);\n this._stopAutoPlay();\n }\n\n _handleWindowResize() {\n this.updateMobileState();\n }\n\n _handleResize() {\n this.handleClosePopover();\n this._width = this.offsetWidth;\n this.updateMobileState();\n }\n\n emitClickEvent(pageIndex: number) {\n this.fireDecoratorEvent(\"click\", { currentPage: pageIndex });\n }\n\n onBeforeRendering(): void {\n this.updateOverflowItems();\n this.setSelectedTab();\n this.updateMobileState();\n }\n\n setSelectedTab() {\n if (!this.items.length) {\n return;\n }\n\n this.resetSelectedTabs();\n this.setCurrentSelectedTab();\n this.setRealTabToItems();\n this.setElementInHeader();\n }\n\n resetSelectedTabs() {\n this.items.forEach(tab => {\n tab._selected = false;\n });\n }\n\n setCurrentSelectedTab() {\n const selectedTabs = this.items.filter(tab => tab.selected && !tab.disabled);\n const firstEnabledTab = this.items.find(tab => !tab.disabled) as Tab;\n this._selectedTab = selectedTabs.length ? selectedTabs[0] as Tab : (firstEnabledTab || this.items[0] as Tab);\n this._selectedTab._selected = Boolean(selectedTabs.length ? selectedTabs.length : (firstEnabledTab || this.items[0]));\n }\n\n setRealTabToItems() {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach((tab, index, arr) => {\n tab._iconWithoutBackground = this.iconWithoutBackground;\n tab._isProcessTab = this.processTab;\n tab._posinset = index + 1;\n tab._setsize = arr.length;\n tab._contentId = this.getContentId(index);\n tab._realTab = this._selectedTab;\n tab._width = this.tabWidth;\n tab._isMobile = isMobile;\n tab._isVertical = this.isVertical;\n });\n }\n\n getContentId(index: number): string {\n return `udex-${index + 1}-content`;\n }\n\n getContentTabIndex(tab: ITab): string {\n if (tab.selected) {\n const focusableSelectors = [\"a[href]\", \"button\", \"textarea\", \"input\", \"select\", \"details\", \"[tabindex]:not([tabindex='-1']\"];\n const focusableElementsUDExTag = this.getAllCustomTags(tab, \"udex\");\n const focusableElementsCustomTag = this.getAllCustomTags(tab, \"ui5\").concat(focusableElementsUDExTag);\n const focusableElements = Array.from(tab.querySelectorAll(focusableSelectors.join(\",\"))).concat(focusableElementsCustomTag);\n return focusableElements.length ? \"-1\" : \"0\";\n }\n return \"-1\";\n }\n\n getAllCustomTags(tab: ITab, prefix: string): Element[] {\n const allElements = tab.querySelectorAll(\"*\");\n return Array.from(allElements).filter(element => element.tagName.toLowerCase().startsWith(prefix.toLowerCase()));\n }\n\n setElementInHeader() {\n this.items.forEach(item => {\n item.getElementInHeader = () => this.getDomRef()!.querySelector(`[id=\"${item.__id!}\"]`);\n });\n }\n\n initOutsideClick() {\n if (this._popover?.open) {\n this.handleOutsideClick();\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", () => {\n if (this.getMoreButton()) {\n (this.getMoreButton() as UDExButton).toggled = false;\n }\n });\n }\n\n onTabClick(e: Event) {\n const tab = this.getTab(e.target as HTMLElement);\n if (!tab) {\n return;\n }\n\n e.stopPropagation();\n e.preventDefault();\n\n const selectedTabIndex = (this.items as unknown as Array<Tab>).findIndex(item => item.__id === tab.id);\n\n if (this.items[selectedTabIndex]?.disabled) {\n return;\n }\n\n this._selectedTab = this.items[selectedTabIndex] as Tab;\n this.updateSelectedTab(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n\n if (this.showPlayButton && !this._isPaused) {\n this._startAutoPlay();\n }\n }\n\n getTab(el: HTMLElement | null): Tab | false {\n const tab = el?.closest<Tab>(\"button[role=\\\"tab\\\"]\");\n return tab || false;\n }\n\n updateSelectedTab(selectedTabIndex: number) {\n this.items.forEach((item, index) => {\n item.selected = selectedTabIndex === index;\n\n if (item._selected) {\n item._selected = false;\n }\n });\n this.setTabsIndex(selectedTabIndex);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n setItemsInHeader() {\n const itemsDomRefs = this.items.map(item => item.getTabInHeaderDomRef()!);\n\n // Skip overflow logic for vertical tabs - show all tabs\n if (this.isVertical) {\n return;\n }\n\n const tabHeader = this.getTabHeader();\n let allItemsWidth = 0;\n\n if (!this._selectedTab) {\n return;\n }\n\n this.getMoreButton()?.setAttribute(\"hidden\", \"\");\n this.removeHiddenAttributeInAllTabs(itemsDomRefs);\n allItemsWidth += this.getTotalItemsWidth(itemsDomRefs);\n\n const hasOverflow = tabHeader.offsetWidth < allItemsWidth;\n\n if (!hasOverflow) {\n return;\n }\n\n this.getMoreButton()?.removeAttribute(\"hidden\");\n this.hideLastVisibleTab(itemsDomRefs);\n }\n\n getTabHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header-tabs`)!;\n }\n\n removeHiddenAttributeInAllTabs(itemsDomRefs: Array<ITab>) {\n for (let i = 0; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i]?.removeAttribute(\"hidden\");\n }\n }\n\n getTotalItemsWidth(itemsDomRefs: Array<ITab>): number {\n let totalItemsWidth = 0;\n itemsDomRefs.forEach(item => {\n totalItemsWidth += this.getTabWidth(item);\n });\n return totalItemsWidth;\n }\n\n getTabWidth(itemDomRef: HTMLElement): number {\n const percentWidth = this.tabWidth.match(/[^a-zA-Z\\d]+/g)?.join(\"\");\n\n if (this.tabWidth === \"auto\" || percentWidth || !this.tabWidth) {\n return this.getItemWidth(itemDomRef);\n }\n\n const { marginInlineEnd } = this.getItemIndentation(itemDomRef);\n itemDomRef.style.width = this.tabWidth;\n return this.convertToPx(this.tabWidth, this.getButtonFontSize(itemDomRef)) + marginInlineEnd;\n }\n\n getButtonFontSize(itemDomRef: HTMLElement): number {\n const style = window.getComputedStyle(itemDomRef);\n return parseFloat(style.fontSize);\n }\n\n convertToPx(value: string, baseFontSize: number): number {\n const unit = value.match(/[a-zA-Z]+/)?.[0];\n const numericValue = parseFloat(value);\n\n if (unit === \"px\") {\n return numericValue;\n }\n\n return numericValue * baseFontSize;\n }\n\n getItemWidth(itemDomRef: HTMLElement): number {\n const isProcessTab = itemDomRef.classList.contains(\"udex-tab-navigation__button-tab--process\");\n const tabTitle = isProcessTab\n ? (itemDomRef.querySelector<HTMLElement>(\".udex-tab-navigation__button-text\")?.innerText?.trim() ?? itemDomRef.innerText)\n : itemDomRef.innerText;\n const context = this.getItemContext();\n const { indentation, marginInlineEnd } = this.getItemIndentation(itemDomRef);\n // For process tabs the icon container (32px) + gap (8px) is rendered inline before the text block\n const processTabIconOffset = isProcessTab ? 40 : 0;\n const effectiveIndentation = indentation + processTabIconOffset;\n\n if (tabTitle.length > this._maxTitleLength && tabTitle.length <= this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n if (tabTitle.length > this._maxTitleLengthInSecondLines) {\n const maxWidth = this.getOverloadMaxWidthItemTitle(tabTitle, context, effectiveIndentation);\n\n this.setItemWidth(itemDomRef, maxWidth, marginInlineEnd);\n\n return maxWidth;\n }\n\n const textWidth = context.measureText(tabTitle).width;\n return Math.ceil(textWidth) + effectiveIndentation;\n }\n\n private setItemWidth(itemDomRef: HTMLElement, maxWidth: number, marginInlineEnd: number) {\n itemDomRef.style.maxWidth = `${maxWidth - marginInlineEnd}px`;\n }\n\n private getItemContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\")!;\n context.font = \"700 16px '72 Brand Variable'\";\n return context;\n }\n\n private getItemIndentation(itemDomRef: HTMLElement): { indentation: number, marginInlineEnd: number } {\n const styles = window.getComputedStyle(itemDomRef);\n const paddingInlineStart = Number.parseInt(styles.paddingInlineStart);\n const paddingInlineEnd = Number.parseInt(styles.paddingInlineEnd);\n const marginInlineEnd = Number.parseInt(styles.marginInlineEnd);\n const indentation = paddingInlineStart + paddingInlineEnd + marginInlineEnd;\n return { indentation, marginInlineEnd };\n }\n\n private getMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, this._maxTitleLength);\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getOverloadMaxWidthItemTitle(tabTitle: string, context: CanvasRenderingContext2D, indentation: number): number {\n const slicedFirstLineText = tabTitle.slice(0, Math.ceil(tabTitle.length / 2));\n return this.getItemTitleWidth(slicedFirstLineText, context, tabTitle, indentation);\n }\n\n private getItemTitleWidth(slicedFirstLineText: string, context: CanvasRenderingContext2D, tabTitle: string, indentation: number): number {\n const findLastSpaceIndex = slicedFirstLineText.lastIndexOf(\" \");\n const firstLineText = slicedFirstLineText.slice(0, findLastSpaceIndex);\n const firstLineWidth = Math.ceil(context.measureText(firstLineText).width);\n\n const secondLineText = tabTitle.slice(findLastSpaceIndex, tabTitle.length);\n const secondLineWidth = Math.ceil(context.measureText(secondLineText).width);\n\n return firstLineWidth > secondLineWidth ? firstLineWidth + indentation : secondLineWidth + indentation;\n }\n\n hideLastVisibleTab(itemsDomRefs: Array<ITab>) {\n const selectedTab = this.getRootTab(this._selectedTab);\n const selectedTabDomRef = selectedTab.getTabInHeaderDomRef()!;\n const containerWidth = this.getTabHeader().offsetWidth;\n const selectedItemWidth = this.getSelectedItemWidth(itemsDomRefs, selectedTabDomRef);\n const lastVisibleTabIndex = this.findLastVisibleItem(itemsDomRefs, containerWidth, selectedItemWidth);\n this.hideInappropriateTabs(lastVisibleTabIndex, itemsDomRefs);\n }\n\n getRootTab(tab: Tab): Tab {\n while (tab.hasAttribute(\"udex-tab\")) {\n if (tab.parentElement!.hasAttribute(\"udex-tab-navigation\")) {\n break;\n }\n\n tab = tab.parentElement as Tab;\n }\n\n return tab;\n }\n\n getSelectedItemWidth(itemsDomRefs: Array<ITab>, selectedTabDomRef: ITab): number {\n const index = itemsDomRefs.indexOf(selectedTabDomRef);\n const width = this.getTabWidth(selectedTabDomRef);\n\n itemsDomRefs.splice(index, 1);\n\n return width;\n }\n\n findLastVisibleItem(itemsDomRefs: Array<ITab>, containerWidth: number, selectedItemWidth: number, startIndex = 0): number {\n let lastVisibleIndex = startIndex - 1;\n let index = startIndex;\n\n for (; index < itemsDomRefs.length; index++) {\n const itemWidth = this.getTabWidth(itemsDomRefs[index]);\n\n if (containerWidth < selectedItemWidth + itemWidth) {\n break;\n }\n\n selectedItemWidth += itemWidth;\n lastVisibleIndex = index;\n }\n\n return lastVisibleIndex;\n }\n\n hideInappropriateTabs(lastVisibleTabIndex: number, itemsDomRefs: Array<ITab>) {\n for (let i = lastVisibleTabIndex + 1; i < itemsDomRefs.length; i++) {\n itemsDomRefs[i].setAttribute(\"hidden\", \"\");\n }\n }\n\n setVisibleTabs() {\n this._visibleTabs = this.items\n .filter(tab => !tab.disabled)\n .map(tab => tab.getTabInHeaderDomRef()!)\n .filter(tab => !tab.hasAttribute(\"hidden\"));\n\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this._visibleTabs.push(this.getMoreButton());\n }\n }\n\n applyTabIndex() {\n if (!this.shadowRoot!.contains(document.activeElement)) {\n const itemsDomRefs = this.getRootTab(this._selectedTab);\n const currentIndex = this.items.indexOf(itemsDomRefs);\n\n this.setTabsIndex(currentIndex);\n }\n }\n\n setTabsIndex(currentIndex: number) {\n this.items.forEach((tab, index) => {\n tab._tabIndex = index === currentIndex && !tab.disabled ? \"0\" : \"-1\";\n });\n }\n\n handleOverflowItemClick(e: Event) {\n if ((e.target as HTMLElement).localName === \"button\") {\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n e.preventDefault();\n this.onItemSelect(targetId);\n }\n }\n this.handleClosePopover();\n }\n\n onItemSelect(selectedId: string) {\n const [selectedTab] = this.items.filter(item => item.__id === selectedId);\n let selectedTabIndex = 0;\n\n this._selectedTab = selectedTab as Tab;\n\n this.items.forEach((item, index) => {\n item.selected = item.__id === selectedId;\n if (item.__id === selectedId) {\n selectedTabIndex = index;\n }\n });\n\n this.setVisibleTabs();\n this.setTabsIndex(selectedTabIndex);\n this.emitClickEvent(selectedTabIndex + 1);\n this.fireDecoratorEvent(\"tab-select\", { tab: this._selectedTab, tabIndex: selectedTabIndex });\n }\n\n getMoreButton(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-tab-navigation__button-more\")!;\n }\n\n getHeader(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(`#${this.__id!}-header`)!;\n }\n\n handleMoreButton(e: Event) {\n e.stopPropagation();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleTogglePopover();\n }\n\n updateOverflowItems() {\n this._overflowItems = this.items.filter(item => {\n const headerRef = item.getTabInHeaderDomRef();\n return headerRef && headerRef.hasAttribute(\"hidden\");\n });\n }\n\n handleTogglePopover() {\n if (this._popover?.open) {\n this.handleClosePopover();\n } else {\n this.handleOpenPopover();\n }\n }\n\n handleClosePopover() {\n if (this._popover?.open) {\n this._popover.open = false;\n (this.getMoreButton() as UDExButton).toggled = false;\n this._isExpanded = false;\n }\n }\n\n handleOpenPopover() {\n if (!this._popover?.open) {\n this._popover!.opener = this.getMoreButton();\n this._popover!.open = true;\n (this.getMoreButton() as UDExButton).toggled = true;\n this._isExpanded = true;\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (this.isHorizontal) {\n this.handleRightArrow(e);\n this.handleLeftArrow(e);\n } else {\n this.handleDownArrow(e);\n this.handleUpArrow(e);\n }\n this.handleHomeKey(e);\n this.handleEndKey(e);\n }\n\n getTabIndexById(id: string): number {\n return this._visibleTabs!.findIndex(tab => tab.id === id);\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n // For horizontal tabs, right arrow always moves focus to the next tab\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.onFocusPreviousItem(e.target as HTMLElement);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n e.stopPropagation();\n\n this.onFocusNextItem(e.target as HTMLElement);\n }\n }\n\n onFocusPreviousItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length - 1;\n const previousSelectIndex = previousSelectedIndex - 1 < 0 ? lastIndex : previousSelectedIndex - 1;\n\n this._visibleTabs![previousSelectIndex].focus();\n }\n\n onFocusNextItem(target: HTMLElement) {\n const previousSelectedIndex = this.getTabIndexById(target.id);\n const lastIndex = this._visibleTabs!.length;\n const nextSelectIndex = previousSelectedIndex + 1 < lastIndex ? previousSelectedIndex + 1 : 0;\n\n this._visibleTabs![nextSelectIndex].focus();\n }\n\n handleHomeKey(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEndKey(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n this.onEndKey();\n }\n }\n\n onEndKey() {\n if (!this.getMoreButton().hasAttribute(\"hidden\")) {\n this.getMoreButton().focus();\n } else {\n const lastVisibleTab = this._visibleTabs!.length - 1;\n this._visibleTabs![lastVisibleTab].focus();\n }\n }\n\n handleFocusMoreButton(e: KeyboardEvent) {\n this.handleDownMoreButton(e);\n this.handleHomeKeyMoreButton(e);\n this.handleEnterKeyMoreButton(e);\n }\n\n handleHomeKeyMoreButton(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n e.stopPropagation();\n this._visibleTabs![0].focus();\n }\n }\n\n handleEnterKeyMoreButton(e: KeyboardEvent) {\n if (isEnter(e)) {\n e.preventDefault();\n this._popover = this.getResponsePopover();\n this.updateOverflowItems();\n this.handleOpenPopover();\n }\n }\n\n handleDownMoreButton(e: KeyboardEvent) {\n if (isDown(e) || isEnter(e)) {\n this._popover = this.getResponsePopover();\n this.handleOpenPopover();\n this.updateOverflowItems();\n }\n }\n\n onFocusFirstItemPopover() {\n if (this._popover?.open) {\n const popoverItems = this.getItemsFromPopover();\n const firstPopoverItem = popoverItems[0];\n firstPopoverItem.setAttribute(\"tabindex\", \"0\");\n firstPopoverItem.focus();\n }\n }\n\n handleFocusPopover(e: KeyboardEvent) {\n e.stopPropagation();\n this.handleUp(e);\n this.handleDown(e);\n this.handleEnterOrSpace(e);\n this.handleEscape(e);\n this.handleHome(e);\n this.handleEnd(e);\n this.handleTab(e);\n }\n\n handleTab(e: KeyboardEvent): void {\n if (isTabNext(e) || isTabPrevious(e)) {\n this.handleClosePopover();\n }\n }\n\n handleUp(e: KeyboardEvent) {\n if (isUp(e)) {\n this.onPreviousItemInPopover(e.target as HTMLElement);\n }\n }\n\n onPreviousItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const previousSelectIndex = currentSelectedTabIndex - 1 < 0 ? popoverItems.length - 1 : currentSelectedTabIndex - 1;\n const prevItem = popoverItems[previousSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n prevItem.setAttribute(\"tabIndex\", \"0\");\n prevItem.focus();\n }\n\n onNextItemInPopover(target: HTMLElement) {\n const popoverItems = this.getItemsFromPopover();\n const currentSelectedTabIndex = this.getPopoverTabIndexById(popoverItems, target.id);\n const nextSelectIndex = currentSelectedTabIndex + 1 > popoverItems.length - 1 ? 0 : currentSelectedTabIndex + 1;\n const nextItem = popoverItems[nextSelectIndex];\n\n this.resetTabIndexItem(popoverItems[currentSelectedTabIndex]);\n nextItem.setAttribute(\"tabIndex\", \"0\");\n nextItem.focus();\n }\n\n resetTabIndexItem(item: HTMLElement): void {\n item.setAttribute(\"tabIndex\", \"-1\");\n }\n\n getItemsFromPopover(): Array<HTMLElement> {\n const responsivePopover = this.getResponsePopover();\n const [contentFromPopover] = responsivePopover.content;\n return Array.from(contentFromPopover.children) as Array<HTMLElement>;\n }\n\n getPopoverTabIndexById(popoverItems: Array<HTMLElement>, id: string): number {\n return popoverItems.findIndex(tab => tab.id === id);\n }\n\n handleDown(e: KeyboardEvent) {\n if (isDown(e)) {\n this.onNextItemInPopover(e.target as HTMLElement);\n }\n }\n\n handleEnterOrSpace(e: KeyboardEvent) {\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n const targetId = (e.target as HTMLElement).id;\n const [targetTab] = this.items.filter(item => item.__id === targetId);\n if (!targetTab?.disabled) {\n this.onItemSelect(targetId);\n this.handleClosePopover();\n }\n }\n }\n\n handleEscape(e: KeyboardEvent) {\n if (isEscape(e)) {\n e.preventDefault();\n this.handleClosePopover();\n this._visibleTabs![this._visibleTabs!.length - 1].focus();\n }\n }\n\n handleHome(e: KeyboardEvent) {\n if (isHome(e)) {\n e.preventDefault();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[0].focus();\n }\n }\n\n handleEnd(e: KeyboardEvent) {\n if (isEnd(e)) {\n e.preventDefault();\n e.stopPropagation();\n const popoverItems = this.getItemsFromPopover();\n popoverItems[popoverItems.length - 1].focus();\n }\n }\n\n getResponsePopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n get isHorizontal(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Horizontal;\n }\n\n get isVertical(): boolean {\n return this.orientation === UDExTabNavigationOrientation.Vertical;\n }\n\n get ariaOrientationValue(): string {\n return this.isVertical ? \"vertical\" : \"horizontal\";\n }\n\n get isDesktop(): boolean {\n return isDesktop();\n }\n\n get moreButtonText(): string {\n return translate(UDExTabNavigation, MORE);\n }\n\n static registerStaticAreaTabStyles(styles: StyleData) {\n staticAreaTabStyles.push(styles);\n }\n\n static get tabNavigationPopoverTemplate() {\n return TabNavigationPopoverTemplate;\n }\n\n get tabNavigationPopover() {\n return executeTemplate(UDExTabNavigation.tabNavigationPopoverTemplate, this);\n }\n\n applyTabWidthToVerticalTabs(): void {\n if (this.isVertical && this.tabWidth && this.tabWidth !== \"auto\") {\n this.style.setProperty(\"--udex-tab-header-width\", this.tabWidth);\n }\n }\n\n updateMobileState(): void {\n const isMobile = BreakpointUtils.isAtMost(\"S\");\n this.items.forEach(tab => {\n tab._isMobile = isMobile;\n });\n }\n\n _startAutoPlay(): void {\n this._stopAutoPlay();\n this._isPaused = false;\n this._autoPlayTimer = window.setInterval(() => {\n this._advanceTab();\n }, this.autoPlayInterval);\n }\n\n _stopAutoPlay(): void {\n if (this._autoPlayTimer !== undefined) {\n window.clearInterval(this._autoPlayTimer);\n this._autoPlayTimer = undefined;\n }\n }\n\n _advanceTab(): void {\n const enabledItems = (this.items as unknown as Array<Tab>).filter(item => !item.disabled);\n if (enabledItems.length === 0) {\n return;\n }\n const currentEnabledIndex = enabledItems.findIndex(item => item === this._selectedTab);\n const nextEnabledIndex = (currentEnabledIndex + 1) % enabledItems.length;\n const nextTab = enabledItems[nextEnabledIndex];\n const nextIndex = (this.items as unknown as Array<Tab>).indexOf(nextTab);\n this._selectedTab = nextTab;\n this.updateSelectedTab(nextIndex);\n this.emitClickEvent(nextIndex + 1);\n }\n\n onPlayButtonClick(): void {\n if (this._isPaused) {\n this._startAutoPlay();\n } else {\n this._stopAutoPlay();\n this._isPaused = true;\n }\n }\n\n get showPlayButton(): boolean {\n return this.isVertical && this.autoPlay;\n }\n\n get showFooterSlot(): boolean {\n return this.isVertical && this.footer?.length > 0;\n }\n\n get playBtnIcon(): string {\n return this._isPaused ? \"play\" : \"pause\";\n }\n\n get playBtnTooltipText(): string {\n return this._isPaused\n ? translate(UDExTabNavigation, PLAY_BUTTON_ACCESSIBLE_NAME)\n : translate(UDExTabNavigation, PAUSE_BUTTON_ACCESSIBLE_NAME);\n }\n}\n\nUDExTabNavigation.define();\n\nexport default UDExTabNavigation;\nexport type { UDExTabNavigationClickDetail, UDExTabContainerTabSelectEventDetail };\n"]}
|
package/dist/Table.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
-
import type { DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
3
|
import type UDExTableHeaderRow from "./TableHeaderRow.js";
|
|
4
4
|
import type UDExTableRow from "./TableRow.js";
|
|
5
5
|
import UDExTableGroupRow from "./TableGroupRow.js";
|
|
@@ -87,22 +87,22 @@ declare class UDExTable extends UI5Element {
|
|
|
87
87
|
* Defines the header row of the table.
|
|
88
88
|
* @public
|
|
89
89
|
*/
|
|
90
|
-
headerRow:
|
|
90
|
+
headerRow: Slot<UDExTableHeaderRow>;
|
|
91
91
|
/**
|
|
92
92
|
* Defines the actions of the table.
|
|
93
93
|
* @public
|
|
94
94
|
*/
|
|
95
|
-
actions:
|
|
95
|
+
actions: Slot<HTMLElement>;
|
|
96
96
|
/**
|
|
97
97
|
* Defines the custom visualization if there is no data available.
|
|
98
98
|
* @public
|
|
99
99
|
*/
|
|
100
|
-
noData:
|
|
100
|
+
noData: Slot<HTMLElement>;
|
|
101
101
|
/**
|
|
102
102
|
* Defines the footnotes of the table.
|
|
103
103
|
* @public
|
|
104
104
|
*/
|
|
105
|
-
footnotes:
|
|
105
|
+
footnotes: Slot<HTMLElement>;
|
|
106
106
|
/**
|
|
107
107
|
* Defines the rows of the table.
|
|
108
108
|
* @public
|
package/dist/Table.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var UDExTable_1;
|
|
8
8
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
9
9
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
10
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
11
11
|
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
12
12
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
13
13
|
import { isUp, isDown, isLeft, isRight, } from "@ui5/webcomponents-base/dist/Keys.js";
|
package/dist/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport type UDExTableRow from \"./TableRow.js\";\nimport UDExTableGroupRow from \"./TableGroupRow.js\";\nimport type UDExTableHeaderCell from \"./TableHeaderCell.js\";\nimport { TABLE_NO_DATA_FOUND } from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TableTemplate from \"./TableTemplate.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\nimport translate from \"./utils/translate.js\";\n\nexport type TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\nexport type KeyBoardItem = {\n id: string;\n group?: boolean;\n elements: Array<HTMLElement>;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-table</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Table.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-table\",\n renderer: jsxRenderer,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n})\n\nclass UDExTable extends UI5Element {\n /**\n * Defines the height of the table.\n * Allows control over the maximum height.\n *\n * @default \"\"\n * @public\n */\n @property()\n maxHeight!: string;\n\n /**\n * Defines the accessible ARIA name of the table.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the heading of the table.\n * @public\n */\n @property({ type: String })\n heading!: string;\n\n /**\n * Defines the text to be displayed when there are no rows in the component.\n * @public\n */\n @property()\n noDataText?: string;\n\n /**\n * Defines if the loading indicator should be shown.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n loading!: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n * @default 1000\n * @public\n */\n @property({ type: Number })\n loadingDelay: number = 1000;\n\n /**\n * Sticks the toolbar and header row to the top of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyHeader!: boolean;\n\n /**\n * Sticks the first column to the left of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyColumn!: boolean;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n rows!: DefaultSlot<UDExTableRow | UDExTableGroupRow>;\n\n /**\n * Defines the header row of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n headerRow!: Array<UDExTableHeaderRow>;\n\n /**\n * Defines the actions of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n actions!: Array<HTMLElement>;\n\n /**\n * Defines the custom visualization if there is no data available.\n * @public\n */\n @slot()\n noData!: Array<HTMLElement>;\n\n /**\n * Defines the footnotes of the table.\n * @public\n */\n @slot()\n footnotes!: Array<HTMLElement>;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @property({ type: String })\n customColumns!: string;\n\n /**\n * Defines the table has vertical scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _verticalOffset?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering() {\n if (this.stickyColumn) {\n this._setStickyAttrToCells();\n }\n\n this._setIndexToCells();\n\n if (this.headerRow) {\n this._setCellsHighlighter();\n }\n }\n\n _handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n this.navigateRows(-1);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n this.navigateRows(1);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n this.navigateCells(1);\n }\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n this.navigateCells(-1);\n }\n }\n\n navigateRows(offset: number) {\n const items = this.getKeyboardNavigationItems();\n const activeItem = items.find(item => item.id === this.getParentRow()._id) as KeyBoardItem;\n const activeIndex = items.indexOf(activeItem);\n const nextItem = items[activeIndex + offset];\n\n nextItem?.elements[0]?.focus();\n }\n\n navigateCells(offset: number) {\n const parentRow = this.getParentRow();\n\n if (!(parentRow as UDExTableGroupRow).isGroup) {\n const interactiveElements = this.getInteractiveElements(parentRow as TableBaseRow);\n const currentIndex = interactiveElements.indexOf(<HTMLElement>document.activeElement);\n const targetIndex = currentIndex + offset;\n if (targetIndex >= 0 && targetIndex < interactiveElements.length) {\n interactiveElements[targetIndex]?.focus();\n }\n }\n }\n\n _onScroll() {\n const { scrollLeft, scrollTop } = this._tableHolder;\n\n if (this.stickyHeader) {\n this._verticalOffset = scrollTop > 0;\n }\n\n if (this.stickyColumn) {\n this._setHorizontalOffsetToCells(scrollLeft);\n }\n }\n\n _setCellsHighlighter(): void {\n const highlightedHeaderCells = this.headerRow.flatMap(header => {\n return header.cells\n .filter(cell => (cell as UDExTableHeaderCell).highlighted === true)\n .map(cell => cell._individualSlot);\n });\n\n this.rows.forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells.forEach(cell => {\n if (highlightedHeaderCells.includes(cell._individualSlot)) {\n cell.setAttribute(\"_highlighted\", \"\");\n }\n });\n }\n });\n }\n\n _setStickyAttrToCells():void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._sticky = true;\n }\n });\n }\n\n _setIndexToCells(): void {\n [...this.headerRow, ...this.rows].forEach((row, index) => {\n row._index = index;\n });\n }\n\n _setHorizontalOffsetToCells(scrollLeft: number):void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._horizontalOffset = scrollLeft > 0;\n }\n });\n }\n\n getParentRow(): UDExTableRow | UDExTableHeaderRow | UDExTableGroupRow {\n const focusedElement = document.activeElement as HTMLElement;\n return focusedElement.closest(\"[udex-table-row], [udex-table-header-row], [udex-table-group-row]\")!;\n }\n\n getKeyboardNavigationItems(): Array<KeyBoardItem> {\n const items: Array<KeyBoardItem> = [];\n\n const pushItemGroupToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow, collapsible: boolean | undefined) => {\n if (collapsible) {\n items.push(<KeyBoardItem>{\n id: row._id,\n elements: [row.shadowRoot?.querySelector(\"button\")],\n });\n }\n (row as UDExTableGroupRow).rows.forEach(rowGroup => {\n items.push({\n id: rowGroup._id,\n group: true,\n elements: this.getInteractiveElements(rowGroup),\n });\n });\n };\n\n const pushItemBaseToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow) => {\n items.push(<KeyBoardItem>{\n id: row._id,\n group: false,\n elements: row.isGroup\n ? [row.shadowRoot?.querySelector(\"button\")]\n : this.getInteractiveElements(row as TableBaseRow),\n });\n };\n\n [...this.headerRow, ...this.rows].forEach(row => {\n const { isGroup, _isOpen, collapsible } = row as UDExTableGroupRow;\n if (isGroup && _isOpen) {\n pushItemGroupToItems(row, collapsible);\n } else {\n pushItemBaseToItems(row);\n }\n });\n\n return items.filter(({ elements }) => elements.length);\n }\n\n getInteractiveElements(el: TableBaseRow): Array<HTMLElement> {\n return el.cells.flatMap(cell => Array.from(\n cell.querySelectorAll(\"button, a, [udex-button], [udex-link], [udex-rating-indicator]\"),\n ));\n }\n\n get _effectiveNoDataText() {\n return this.noDataText || translate(UDExTable, TABLE_NO_DATA_FOUND);\n }\n\n get _hasToolbar(): boolean {\n return this.heading?.length > 0 || this.actions?.length > 0;\n }\n\n get _tableMaxHeight(): string {\n return this.maxHeight ? this.maxHeight : \"auto\";\n }\n\n get _tableHolder(): HTMLElement {\n return this.shadowRoot?.getElementById(\"table\") as HTMLElement;\n }\n\n get _gridTemplateColumns(): string {\n const cellsLength = this.headerRow?.[0]?.cells.length || (this.rows?.[0] as TableBaseRow).cells.length;\n return `repeat(${cellsLength}, auto)`;\n }\n\n get _styles() {\n const headerStyleMap = this.headerRow?.[0]?.cells?.reduce((headerStyles, headerCell) => {\n if (headerCell.horizontalAlign !== undefined) {\n headerStyles[`--horizontal-align-${headerCell._individualSlot}`] = headerCell.horizontalAlign;\n }\n return headerStyles;\n }, {} as { [key: string]: string });\n\n return {\n table: {\n \"grid-template-columns\": this.customColumns || this._gridTemplateColumns,\n \"max-height\": this._tableMaxHeight,\n ...headerStyleMap,\n },\n };\n }\n}\n\nUDExTable.define();\n\nexport default UDExTable;\n"]}
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport type UDExTableRow from \"./TableRow.js\";\nimport UDExTableGroupRow from \"./TableGroupRow.js\";\nimport type UDExTableHeaderCell from \"./TableHeaderCell.js\";\nimport { TABLE_NO_DATA_FOUND } from \"./generated/i18n/i18n-defaults.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport TableTemplate from \"./TableTemplate.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\nimport translate from \"./utils/translate.js\";\n\nexport type TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\nexport type KeyBoardItem = {\n id: string;\n group?: boolean;\n elements: Array<HTMLElement>;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-table</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Table.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-table\",\n renderer: jsxRenderer,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n})\n\nclass UDExTable extends UI5Element {\n /**\n * Defines the height of the table.\n * Allows control over the maximum height.\n *\n * @default \"\"\n * @public\n */\n @property()\n maxHeight!: string;\n\n /**\n * Defines the accessible ARIA name of the table.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Defines the heading of the table.\n * @public\n */\n @property({ type: String })\n heading!: string;\n\n /**\n * Defines the text to be displayed when there are no rows in the component.\n * @public\n */\n @property()\n noDataText?: string;\n\n /**\n * Defines if the loading indicator should be shown.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n loading!: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n * @default 1000\n * @public\n */\n @property({ type: Number })\n loadingDelay: number = 1000;\n\n /**\n * Sticks the toolbar and header row to the top of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyHeader!: boolean;\n\n /**\n * Sticks the first column to the left of the table.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n stickyColumn!: boolean;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n rows!: DefaultSlot<UDExTableRow | UDExTableGroupRow>;\n\n /**\n * Defines the header row of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n headerRow!: Slot<UDExTableHeaderRow>;\n\n /**\n * Defines the actions of the table.\n * @public\n */\n @slot({ type: HTMLElement })\n actions!: Slot<HTMLElement>;\n\n /**\n * Defines the custom visualization if there is no data available.\n * @public\n */\n @slot()\n noData!: Slot<HTMLElement>;\n\n /**\n * Defines the footnotes of the table.\n * @public\n */\n @slot()\n footnotes!: Slot<HTMLElement>;\n\n /**\n * Defines the rows of the table.\n * @public\n */\n @property({ type: String })\n customColumns!: string;\n\n /**\n * Defines the table has vertical scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _verticalOffset?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onAfterRendering() {\n if (this.stickyColumn) {\n this._setStickyAttrToCells();\n }\n\n this._setIndexToCells();\n\n if (this.headerRow) {\n this._setCellsHighlighter();\n }\n }\n\n _handleKeyDown(e: KeyboardEvent) {\n this.handleUpArrow(e);\n this.handleDownArrow(e);\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleUpArrow(e: KeyboardEvent) {\n if (isUp(e)) {\n e.preventDefault();\n this.navigateRows(-1);\n }\n }\n\n handleDownArrow(e: KeyboardEvent) {\n if (isDown(e)) {\n e.preventDefault();\n this.navigateRows(1);\n }\n }\n\n handleRightArrow(e: KeyboardEvent) {\n if (isRight(e)) {\n e.preventDefault();\n this.navigateCells(1);\n }\n }\n\n handleLeftArrow(e: KeyboardEvent) {\n if (isLeft(e)) {\n e.preventDefault();\n this.navigateCells(-1);\n }\n }\n\n navigateRows(offset: number) {\n const items = this.getKeyboardNavigationItems();\n const activeItem = items.find(item => item.id === this.getParentRow()._id) as KeyBoardItem;\n const activeIndex = items.indexOf(activeItem);\n const nextItem = items[activeIndex + offset];\n\n nextItem?.elements[0]?.focus();\n }\n\n navigateCells(offset: number) {\n const parentRow = this.getParentRow();\n\n if (!(parentRow as UDExTableGroupRow).isGroup) {\n const interactiveElements = this.getInteractiveElements(parentRow as TableBaseRow);\n const currentIndex = interactiveElements.indexOf(<HTMLElement>document.activeElement);\n const targetIndex = currentIndex + offset;\n if (targetIndex >= 0 && targetIndex < interactiveElements.length) {\n interactiveElements[targetIndex]?.focus();\n }\n }\n }\n\n _onScroll() {\n const { scrollLeft, scrollTop } = this._tableHolder;\n\n if (this.stickyHeader) {\n this._verticalOffset = scrollTop > 0;\n }\n\n if (this.stickyColumn) {\n this._setHorizontalOffsetToCells(scrollLeft);\n }\n }\n\n _setCellsHighlighter(): void {\n const highlightedHeaderCells = this.headerRow.flatMap(header => {\n return header.cells\n .filter(cell => (cell as UDExTableHeaderCell).highlighted === true)\n .map(cell => cell._individualSlot);\n });\n\n this.rows.forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells.forEach(cell => {\n if (highlightedHeaderCells.includes(cell._individualSlot)) {\n cell.setAttribute(\"_highlighted\", \"\");\n }\n });\n }\n });\n }\n\n _setStickyAttrToCells():void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._sticky = true;\n }\n });\n }\n\n _setIndexToCells(): void {\n [...this.headerRow, ...this.rows].forEach((row, index) => {\n row._index = index;\n });\n }\n\n _setHorizontalOffsetToCells(scrollLeft: number):void {\n [...this.headerRow, ...this.rows].forEach(row => {\n if (!(row instanceof UDExTableGroupRow)) {\n row.cells[0]._horizontalOffset = scrollLeft > 0;\n }\n });\n }\n\n getParentRow(): UDExTableRow | UDExTableHeaderRow | UDExTableGroupRow {\n const focusedElement = document.activeElement as HTMLElement;\n return focusedElement.closest(\"[udex-table-row], [udex-table-header-row], [udex-table-group-row]\")!;\n }\n\n getKeyboardNavigationItems(): Array<KeyBoardItem> {\n const items: Array<KeyBoardItem> = [];\n\n const pushItemGroupToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow, collapsible: boolean | undefined) => {\n if (collapsible) {\n items.push(<KeyBoardItem>{\n id: row._id,\n elements: [row.shadowRoot?.querySelector(\"button\")],\n });\n }\n (row as UDExTableGroupRow).rows.forEach(rowGroup => {\n items.push({\n id: rowGroup._id,\n group: true,\n elements: this.getInteractiveElements(rowGroup),\n });\n });\n };\n\n const pushItemBaseToItems = (row: UDExTableHeaderRow | UDExTableRow | UDExTableGroupRow) => {\n items.push(<KeyBoardItem>{\n id: row._id,\n group: false,\n elements: row.isGroup\n ? [row.shadowRoot?.querySelector(\"button\")]\n : this.getInteractiveElements(row as TableBaseRow),\n });\n };\n\n [...this.headerRow, ...this.rows].forEach(row => {\n const { isGroup, _isOpen, collapsible } = row as UDExTableGroupRow;\n if (isGroup && _isOpen) {\n pushItemGroupToItems(row, collapsible);\n } else {\n pushItemBaseToItems(row);\n }\n });\n\n return items.filter(({ elements }) => elements.length);\n }\n\n getInteractiveElements(el: TableBaseRow): Array<HTMLElement> {\n return el.cells.flatMap(cell => Array.from(\n cell.querySelectorAll(\"button, a, [udex-button], [udex-link], [udex-rating-indicator]\"),\n ));\n }\n\n get _effectiveNoDataText() {\n return this.noDataText || translate(UDExTable, TABLE_NO_DATA_FOUND);\n }\n\n get _hasToolbar(): boolean {\n return this.heading?.length > 0 || this.actions?.length > 0;\n }\n\n get _tableMaxHeight(): string {\n return this.maxHeight ? this.maxHeight : \"auto\";\n }\n\n get _tableHolder(): HTMLElement {\n return this.shadowRoot?.getElementById(\"table\") as HTMLElement;\n }\n\n get _gridTemplateColumns(): string {\n const cellsLength = this.headerRow?.[0]?.cells.length || (this.rows?.[0] as TableBaseRow).cells.length;\n return `repeat(${cellsLength}, auto)`;\n }\n\n get _styles() {\n const headerStyleMap = this.headerRow?.[0]?.cells?.reduce((headerStyles, headerCell) => {\n if (headerCell.horizontalAlign !== undefined) {\n headerStyles[`--horizontal-align-${headerCell._individualSlot}`] = headerCell.horizontalAlign;\n }\n return headerStyles;\n }, {} as { [key: string]: string });\n\n return {\n table: {\n \"grid-template-columns\": this.customColumns || this._gridTemplateColumns,\n \"max-height\": this._tableMaxHeight,\n ...headerStyleMap,\n },\n };\n }\n}\n\nUDExTable.define();\n\nexport default UDExTable;\n"]}
|
package/dist/TableCellBase.js
CHANGED
|
@@ -6,7 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
9
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
10
10
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
11
11
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
12
|
// Styles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableCellBase.js","sourceRoot":"","sources":["../src/TableCellBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"TableCellBase.js","sourceRoot":"","sources":["../src/TableCellBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAG7E,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE;;;;;;;GAOG;AAMH,IAAe,iBAAiB,GAAhC,MAAe,iBAAkB,SAAQ,UAAU;IAAnD;;QAoCY,aAAQ,GAAW,MAAM,CAAC;IAKtC,CAAC;IAHC,iBAAiB;QACf,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAjCG;IADD,QAAQ,EAAE;0DAC2C;AAOpD;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;kDACR;AAQ5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACR;AASlB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4DACE;AAhCjB,iBAAiB;IAL/B,aAAa,CAAC;QACb,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,gBAAgB;KACzB,CAAC;GAEa,iBAAiB,CAyC/B;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type UDExTableCellHorizontalAlign from \"./types/Table.js\";\n\n// Styles\nimport TableCellBaseCss from \"./generated/themes/TableCellBase.css.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `UDExTableCell` and `UDExTableHeaderCell` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n renderer: litRender,\n styles: TableCellBaseCss,\n})\n\nabstract class UDExTableCellBase extends UI5Element {\n /**\n * Determines the horizontal alignment of table cells.\n * Note: All values valid for justify-content can be used not just the ones inside the enum.\n * @default undefined\n * @public\n */\n @property()\n horizontalAlign?: `${UDExTableCellHorizontalAlign}`;\n\n /**\n * Defines the content of the component.\n * @public\n */\n @slot({ type: Node, \"default\": true })\n content!: DefaultSlot<Node>;\n\n /**\n * Defines position sticky of the table cell.\n *\n * @private\n */\n @property({ type: Boolean })\n _sticky?: boolean;\n\n /**\n * Defines the table has horizontal scrolling.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _horizontalOffset?: boolean;\n\n _individualSlot?: string;\n\n protected ariaRole: string = \"cell\";\n\n onBeforeRendering() {\n this.setAttribute(\"role\", this.ariaRole);\n }\n}\n\nexport default UDExTableCellBase;\n"]}
|
package/dist/TableGroupRow.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
9
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
11
11
|
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
12
12
|
import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
13
|
import TableGroupRowTemplate from "./TableGroupRowTemplate.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableGroupRow.js","sourceRoot":"","sources":["../src/TableGroupRow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"TableGroupRow.js","sourceRoot":"","sources":["../src/TableGroupRow.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,mDAAmD,CAAC;AAE3D,SAAS;AACT,OAAO,gBAAgB,MAAM,yCAAyC,CAAC;AAEvE;;;;;;;;;;;;;;;;GAgBG;AAQH,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QA4CE;;;;WAIG;QAED,YAAO,GAAa,IAAI,CAAC;IAsC7B,CAAC;IApCC,gBAAgB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,sBAAsB,CAAgB,CAAC;YAClF,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/B,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAhFG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDACL;AAQpB;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;+CACV;AASjC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDACP;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iDACT;AAQhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;kDACD;AAlDvB,iBAAiB;IAPtB,aAAa,CAAC;QACb,GAAG,EAAE,sBAAsB;QAC3B,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,gBAAgB;QACxB,QAAQ,EAAE,qBAAqB;KAChC,CAAC;GAEI,iBAAiB,CAwFtB;AAED,iBAAiB,CAAC,MAAM,EAAE,CAAC;AAE3B,eAAe,iBAAiB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } 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-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type UDExTableRow from \"./TableRow.js\";\n\nimport TableGroupRowTemplate from \"./TableGroupRowTemplate.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\n\n// Styles\nimport TableGroupRowCss from \"./generated/themes/TableGroupRow.css.js\";\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-table-group-row</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/TableGroupRow.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-table-group-row\",\n renderer: jsxRenderer,\n styles: TableGroupRowCss,\n template: TableGroupRowTemplate,\n})\n\nclass UDExTableGroupRow extends UI5Element {\n /**\n * Defines collapsible type the group row.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n collapsible?: boolean;\n\n /**\n * Defines the title of the group row.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n groupTitle!: string;\n\n /**\n * Defines the rows of the group row.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n rows!: DefaultSlot<UDExTableRow>;\n\n /**\n * Defines if the row is expanded\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n expanded?: boolean;\n\n /**\n * Defines the index of the component.\n *\n * @private\n */\n @property({ type: Number })\n _index!: number;\n\n /**\n * Defines if the collapsible row is open.\n *\n * @private\n */\n @property({ type: Boolean })\n _isOpen?: boolean = true;\n\n onAfterRendering() {\n this.setIndexToRows();\n\n if (this.collapsible && !this.expanded) {\n this._isOpen = false;\n }\n }\n\n onEnterDOM() {\n this.setAttribute(\"role\", \"rowgroup\");\n }\n\n toggleExpanded(): void {\n if (this.collapsible) {\n this.expanded = !this.expanded;\n this._isOpen = !this._isOpen;\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (isEscape(e)) {\n const btn = this.shadowRoot?.querySelector(\".udex-table-grow-btn\") as HTMLElement;\n this.toggleExpanded();\n btn.focus();\n }\n }\n\n setIndexToRows(): void {\n this.rows.forEach((row, index) => {\n row._index = index;\n });\n }\n\n get isGroup() {\n return true;\n }\n}\n\nUDExTableGroupRow.define();\n\nexport default UDExTableGroupRow;\n"]}
|
package/dist/TableRowBase.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
8
8
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
9
9
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
10
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
10
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
11
11
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
12
12
|
// Styles
|
|
13
13
|
import TableRowBase from "./generated/themes/TableRowBase.css.js";
|
package/dist/TableRowBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAI7E,SAAS;AACT,OAAO,YAAY,MAAM,wCAAwC,CAAC;AAElE;;;;;;;GAOG;AAMH,IAAe,gBAAgB,GAA/B,MAAe,gBAAiB,SAAQ,UAAU;IAiBhD,UAAU;QACR,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAbG;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;+CACT;AAQzD;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACT;AAfL,gBAAgB;IAL9B,aAAa,CAAC;QACb,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,YAAY;KACrB,CAAC;GAEa,gBAAgB,CAoB9B;AAED,eAAe,gBAAgB,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } 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-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type UDExTableCell from \"./TableCell.js\";\nimport type UDExTableHeaderCell from \"./TableHeaderCell.js\";\n\n// Styles\nimport TableRowBase from \"./generated/themes/TableRowBase.css.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `UDExTableRow` and `UDExTableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @public\n */\n@customElement({\n renderer: litRender,\n styles: TableRowBase,\n})\n\nabstract class UDExTableRowBase extends UI5Element {\n /**\n * Defines the cells of the component.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, individualSlots: true })\n cells!: DefaultSlot<UDExTableCell | UDExTableHeaderCell>;\n\n /**\n * Defines the index of the component.\n *\n * @private\n */\n @property({ type: Number })\n _index!: number;\n\n onEnterDOM() {\n this.setAttribute(\"role\", \"row\");\n }\n}\n\nexport default UDExTableRowBase;\n"]}
|
package/dist/TagGroup.js
CHANGED
|
@@ -11,7 +11,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
11
11
|
import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
|
|
12
12
|
import { isEnter, isSpace, isEscape, isTabNext, isTabPrevious, } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
13
13
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
14
|
-
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
14
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
|
|
15
15
|
import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
|
|
16
16
|
import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
|
|
17
17
|
import Token from "@ui5/webcomponents/dist/Token.js";
|