@sapudex/web-components 2.0.0 → 2.1.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/CountrySelector.cy.tsx +215 -0
- package/cypress/specs/Table.cy.tsx +361 -0
- package/cypress/specs/Upload.cy.tsx +17 -0
- package/dist/AssetsVariables.js +1 -1
- package/dist/AssetsVariables.js.map +1 -1
- package/dist/FilterMenu.d.ts +7 -0
- package/dist/FilterMenu.js +3 -0
- package/dist/FilterMenu.js.map +1 -1
- package/dist/MastheadItem.d.ts +21 -2
- package/dist/MastheadItem.js +95 -13
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +1 -0
- package/dist/MastheadMenu.js +11 -5
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +8 -2
- package/dist/MastheadMobileMenu.js +8 -2
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +24 -12
- package/dist/MastheadShell.js +75 -26
- package/dist/MastheadShell.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +6 -5
- package/dist/SecondaryNavigation.js +8 -6
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.d.ts +9 -6
- package/dist/SecondaryNavigationItem.js +19 -13
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationSubItem.d.ts +8 -4
- package/dist/SecondaryNavigationSubItem.js +6 -5
- package/dist/SecondaryNavigationSubItem.js.map +1 -1
- package/dist/Table.d.ts +1 -1
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/Upload.d.ts +12 -2
- package/dist/Upload.js +25 -1
- package/dist/Upload.js.map +1 -1
- package/dist/assets/{InputSuggestions-pMcXiozG.js → InputSuggestions-DoWo0hwS.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-BoB9C9hl.js → ListItemStandardExpandableTextTemplate-BymOTLVD.js} +1 -1
- package/dist/assets/{bundle.esm-4ejJpC9l.js → bundle.esm-D10tX-qa.js} +196 -196
- package/dist/assets/messagebundle_en-CVKgy_9L.js +1 -0
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Upload.css +1 -1
- package/dist/custom-elements-internal.json +132 -11
- package/dist/custom-elements.json +93 -7
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +4 -1
- package/dist/generated/i18n/i18n-defaults.js +4 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +6 -5
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +1 -1
- package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/UploadTemplate.lit.js +2 -2
- package/dist/generated/templates/UploadTemplate.lit.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.d.ts +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/Upload.css.d.ts +1 -1
- package/dist/generated/themes/Upload.css.js +1 -1
- package/dist/generated/themes/Upload.css.js.map +1 -1
- package/dist/messagebundle.properties +9 -1
- package/dist/messagebundle_en.properties +4 -1
- package/dist/vscode.html-custom-data.json +14 -4
- package/dist/web-types.json +80 -11
- package/package.json +1 -1
- package/src/AssetsVariables.ts +1 -1
- package/src/FilterMenu.hbs +1 -0
- package/src/FilterMenu.ts +8 -0
- package/src/MastheadItem.hbs +2 -2
- package/src/MastheadItem.ts +119 -15
- package/src/MastheadMenu.hbs +4 -1
- package/src/MastheadMenu.ts +12 -5
- package/src/MastheadMobileMenu.hbs +2 -2
- package/src/MastheadMobileMenu.ts +16 -3
- package/src/MastheadShell.hbs +14 -3
- package/src/MastheadShell.ts +98 -36
- package/src/SecondaryNavigation.ts +14 -10
- package/src/SecondaryNavigationItem.hbs +1 -1
- package/src/SecondaryNavigationItem.ts +25 -16
- package/src/SecondaryNavigationSubItem.ts +13 -7
- package/src/Table.ts +2 -2
- package/src/Upload.hbs +4 -4
- package/src/Upload.ts +24 -3
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/FilterMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadItemTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +6 -5
- package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +1 -1
- package/src/generated/templates/UploadTemplate.lit.ts +2 -2
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Upload.css.ts +1 -1
- package/src/i18n/messagebundle.properties +9 -1
- package/src/i18n/messagebundle_en.properties +4 -1
- package/src/themes/MastheadItem.css +9 -3
- package/src/themes/Upload.css +10 -2
- package/dist/assets/messagebundle_en-BYIX4tmE.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecondaryNavigationItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport {\n isLeft,\n isRight,\n isUp,\n isDown,\n isEscape,\n isSpace,\n isEnter,\n isHome,\n isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport type { RelativeValue } from \"./utils/parseRelativeUnits.js\";\nimport parseRelativeUnits from \"./utils/parseRelativeUnits.js\";\nimport UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SecondaryNavigationItemTemplate from \"./generated/templates/SecondaryNavigationItemTemplate.lit.js\";\n\n// Styles\nimport SecondaryNavigationItemCss from \"./generated/themes/SecondaryNavigationItem.css.js\";\n\nexport const menuItemRole: string = \"menuitem\";\n\ntype UDExSecondaryNavigationItemClickEventDetail = {\n item: HTMLElement,\n index: number,\n};\n\ntype UDExSecondaryNavigationItemSubItemClickEventDetail = {\n item: object,\n index: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-secondary-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigationItem.js\";</code>\n *\n * @constructor\n * @extends UDExSecondaryNavigationItemBase\n * @tagname udex-secondary-navigation-item\n * @private\n */\n@customElement({\n tag: \"udex-secondary-navigation-item\",\n renderer: litRender,\n styles: [SecondaryNavigationItemCss, getEffectiveScrollbarStyle()],\n template: SecondaryNavigationItemTemplate,\n dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"nav-item-click\", { bubbles: true })\n\n/**\n * Fires when dropdown item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"sub-item-click\", { bubbles: true })\n\nclass UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {\n eventDetails!: {\n \"nav-item-click\": UDExSecondaryNavigationItemClickEventDetail,\n \"sub-item-click\": UDExSecondaryNavigationItemSubItemClickEventDetail,\n };\n /**\n * Defines an aria label for item\n *\n * @public\n */\n @property({ type: String })\n ariaLabel!: string;\n\n /**\n * Defines a role for item\n *\n * @public\n */\n @property({ type: String })\n role!: string;\n\n /**\n * Defines the content of the item.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Array<HTMLElement>;\n\n /**\n * List of the sub items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: Object })\n subItems: Array<NavItem> = [];\n\n /**\n * Defines if dropdown is opened.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n isOpen!: boolean;\n\n /**\n * Defines the length of items in the secondary navigation.\n *\n * @private\n */\n @property({ type: Number })\n _navItemsLength!: number;\n\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @private\n */\n @property({ type: String })\n _maxHeight!: RelativeValue;\n\n /**\n * Defines processed items.\n *\n * @private\n * @default []\n */\n @property({ type: Object })\n _processedItems: Array<NavItem> = [];\n\n _dropdownHistory: Array<Array<NavItem>> = [];\n _shouldFocusFirstSubItem!: boolean;\n _subTitle!: string | undefined;\n\n onAfterRendering(): void {\n if (this.isLastItem && this.isOpen && !this._isMobileView) {\n this.setDropdownHorizontalAlign();\n }\n\n if (this._shouldFocusFirstSubItem && this.isOpen) {\n this.onFirstSubItemFocus();\n this._shouldFocusFirstSubItem = false;\n }\n\n if (this._isMobileView && this.isOpen) {\n this.setDropdownHeight();\n }\n }\n\n onBeforeRendering() : void {\n this._subTitle = this.subActiveItemTitle || this._subTitle;\n }\n\n onSubItemClick(e: Event): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const clickedItem = this._processedItems[index];\n\n if (clickedItem.items) {\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireDecoratorEvent(\"sub-item-click\", {\n item: clickedItem,\n index,\n });\n }\n\n onBackClick(): void {\n this.setPrevNestedItems();\n }\n\n openDropdown(): void {\n if (this.hasNestedItems) {\n this.setDropdownItems();\n this.isOpen = !this.isOpen;\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireNavItemClickEvent();\n }\n\n closeDropdown(): void {\n this.isOpen = false;\n }\n\n handleItemLinkKeyDown(e: KeyboardEvent): void {\n if (isSpace(e)) {\n this.fireNavItemClickEvent();\n }\n }\n\n handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {\n if (isEnter(e) || isSpace(e)) {\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleSubItemKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isEscape(e)) {\n this.handleEscapeKey();\n }\n if (isLeft(e)) {\n this.handleLeftArrow(e);\n }\n if (isRight(e)) {\n this.handleRightArrow(e);\n }\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n e.preventDefault();\n this.onFirstSubItemFocus();\n }\n if (isEnd(e)) {\n e.preventDefault();\n this.onLastSubItemFocus();\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.handleEnterAndSpace(e);\n }\n if (isTabPrevious(e) && this._isMobileView) {\n this.closeDropdown();\n }\n if ((isTabPrevious(e) || isTabNext(e)) && !this._isMobileView) {\n this.closeDropdown();\n }\n }\n\n handleButtonsEscKey(e: KeyboardEvent): void {\n if (isEscape(e) && this._isMobileView) {\n this.handleEscapeKey();\n }\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const lastIndex = this.domNavItems.length - 1;\n const previousSelectIndex = index - 1 < 0 ? lastIndex : index - 1;\n const previousItem = this.domNavItems[previousSelectIndex];\n const currentItem = this.domNavItems[index];\n\n this.unsetTabIndex(currentItem);\n this.setTabIndex(previousItem);\n previousItem.focus();\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;\n const nextItem = this.domNavItems[nextIndex];\n const currentItem = this.domNavItems[index];\n\n this.unsetTabIndex(currentItem);\n this.setTabIndex(nextItem);\n nextItem.focus();\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n const { isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.setPrevNestedItems();\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;\n if (hasItems && !isBack) {\n this.onSubItemClick(e);\n this.unsetTabIndex(this.domNavItems[index]);\n }\n }\n\n handleEnterAndSpace(e: KeyboardEvent): void {\n const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.onBackClick();\n this.onShouldFocusFirstSubItem();\n return;\n }\n\n this.onSubItemClick(e);\n\n if (hasItems) {\n this.onShouldFocusFirstSubItem();\n } else {\n this.closeDropdown();\n this.focus();\n }\n }\n\n handleEscapeKey(): void {\n this.closeDropdown();\n this.focus();\n }\n\n fireNavItemClickEvent(): void {\n this.fireDecoratorEvent(\"nav-item-click\", {\n item: this,\n index: this.index,\n });\n }\n\n setDropdownHistory(): void {\n this._dropdownHistory.push(this._processedItems);\n }\n\n setPrevNestedItems(): void {\n this._processedItems = this._dropdownHistory.pop()!;\n }\n\n setNestedItems({ title, items, mobileLinkTitle } : NavItem): void {\n if (items) {\n this._processedItems = [{ title, mobileLinkTitle, isBack: true }, ...items];\n }\n }\n\n setDropdownItems(): void {\n this._processedItems = this.subItems;\n }\n\n setDropdownHeight(): void {\n if (!this._maxHeight || this._dropdownMaxHeightExceeds || !this.heightSatisfiesType) {\n const secondaryNavigationMobileTrigger = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!;\n const maxDropdownHeight = window.innerHeight - secondaryNavigationMobileTrigger.clientHeight;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-max-height\", `${maxDropdownHeight}px`);\n return;\n }\n\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-max-height\", `${this._maxHeight}`);\n }\n\n get _dropdownMaxHeightExceeds(): boolean {\n const normalizedHeight = parseRelativeUnits(this._maxHeight, this.dropdown);\n const secondaryNavigationMobileTriggerHeight = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!.clientHeight;\n return normalizedHeight >= window.innerHeight - secondaryNavigationMobileTriggerHeight;\n }\n\n get heightSatisfiesType(): boolean {\n return /vh|vw|%|em|rem|px/.test(this._maxHeight);\n }\n\n setDropdownHorizontalAlign(): void {\n const { right, left } = this.dropdown.getBoundingClientRect();\n\n if (right > window.innerWidth) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"right\");\n }\n\n if (left < 0) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"left\");\n }\n }\n\n setTabIndex(item: UDExSecondaryNavigationSubItem): void {\n item._tabIndex = \"0\";\n }\n\n unsetTabIndex(item: UDExSecondaryNavigationSubItem): void {\n item._tabIndex = \"-1\";\n }\n\n onFirstSubItemFocus(): void {\n const firstSubItem = this.domNavItems[0];\n\n firstSubItem.focus();\n this.setTabIndex(firstSubItem);\n }\n\n onLastSubItemFocus(): void {\n this.domNavItems[this.domNavItems.length - 1].focus();\n }\n\n onShouldFocusFirstSubItem(): void {\n this._shouldFocusFirstSubItem = true;\n }\n\n get dropdown(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-secondary-navigation__dropdown\")!;\n }\n\n get isLastItem(): boolean {\n return this._navItemsLength === this.index;\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationSubItem> {\n const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>(\"[udex-secondary-navigation-sub-item]\");\n return domNavItems ? Array.from(domNavItems) : [];\n }\n\n get hasNestedItems(): boolean {\n return this.subItems.length > 0;\n }\n\n get isSubItemActive(): boolean {\n return !!this.subActiveItem?.active;\n }\n\n get isActive(): boolean {\n return this.isSubItemActive || this.active;\n }\n\n get subActiveItemTitle(): string | undefined {\n if (this.subActiveItem) {\n const { title, mobileLinkTitle } = this.subActiveItem;\n return this._isMobileView ? (mobileLinkTitle || title) : title;\n }\n }\n\n get subActiveItem(): NavItem | undefined {\n return this.getActiveSubItem(this.subItems);\n }\n\n get isLink(): boolean {\n return !this.hasNestedItems && !!this.path;\n }\n\n get itemRole(): string {\n return this.role ? this.role : this.menuItemRole;\n }\n\n get menuItemRole(): string {\n return menuItemRole;\n }\n\n get title(): string {\n return this.label;\n }\n}\n\nUDExSecondaryNavigationItem.define();\n\nexport default UDExSecondaryNavigationItem;\n"]}
|
|
1
|
+
{"version":3,"file":"SecondaryNavigationItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AACtD,OAAO,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EAAE,SAAS,EAAE,aAAa,GAChC,MAAM,sCAAsC,CAAC;AAC9C,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AAEzG,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAC/D,OAAO,8BAA8B,MAAM,iCAAiC,CAAC;AAE7E,OAAO,+BAA+B,MAAM,kCAAkC,CAAC;AAC/E,OAAO,kDAAkD,CAAC;AAE1D,OAAO,+BAA+B,MAAM,8DAA8D,CAAC;AAE3G,SAAS;AACT,OAAO,0BAA0B,MAAM,mDAAmD,CAAC;AAE3F,MAAM,CAAC,MAAM,YAAY,GAAW,UAAU,CAAC;AAc/C;;;;;;;;;;;;;;;;;GAiBG;AAyBH,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,+BAA+B;IAAzE;;QA8BE;;;;;WAKG;QAED,aAAQ,GAAmB,EAAE,CAAC;QA2BhC;;;;;WAKG;QAED,oBAAe,GAAmB,EAAE,CAAC;QAEvC,qBAAgB,GAA0B,EAAE,CAAC;IA2T/C,CAAC;IAvTC,gBAAgB;QACd,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1D,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED,kBAAkB,CAAC,CAA8B;QAC/C,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,aAA6B,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAChF,CAAC;IAED,WAAW;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,CAA+B;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,CAAgB;QACpC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,0BAA0B,CAAC,CAAgB;QACzC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,oBAAoB,CAAC,CAAgB;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAgB;QAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,aAAa,CAAC,CAAgB;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,MAAM,mBAAmB,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/B,YAAY,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC7D,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,CAAgB;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAC/B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QAC/E,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,mBAAmB,CAAC,CAAgB;QAClC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAwC,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,qBAAqB,CAAC,CAA+B;QACnD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YACxC,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,CAAe,EAAE,WAAoB,EAAE,KAAa;QACxE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YACxC,IAAI,EAAE,WAAW;YACjB,KAAK;YACL,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAG,CAAC;IACtD,CAAC;IAED,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAY;QACxD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpF,MAAM,gCAAgC,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC;YAC7G,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,GAAG,gCAAgC,CAAC,YAAY,CAAC;YAC7F,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sDAAsD,EAAE,GAAG,iBAAiB,IAAI,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,sDAAsD,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,IAAI,yBAAyB;QAC3B,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,MAAM,sCAAsC,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,kCAAkC,CAAE,CAAC,YAAY,CAAC;QAChI,OAAO,gBAAgB,IAAI,MAAM,CAAC,WAAW,GAAG,sCAAsC,CAAC;IACzF,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,0BAA0B;QACxB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAE9D,IAAI,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAoC;QAC9C,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,IAAoC;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,mBAAmB;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEzC,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,yBAAyB;QACvB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;IACvC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAc,sCAAsC,CAAE,CAAC;IAC9F,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED,IAAI,WAAW;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAiC,sCAAsC,CAAC,CAAC;QAC9H,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACtD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACnD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF,CAAA;AAzXG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACN;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yDACX;AASd;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;4DACG;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DACK;AAS9B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;2DACT;AAQjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEACA;AAQzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+DACE;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEACY;AAvEnC,2BAA2B;IAxBhC,aAAa,CAAC;QACb,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,EAAE,CAAC;QAClE,QAAQ,EAAE,+BAA+B;QACzC,YAAY,EAAE,CAAC,OAAO,EAAE,8BAA8B,CAAC;KACxD,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE7D;;;;;OAKG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAEvD,2BAA2B,CAoYhC;AAED,2BAA2B,CAAC,MAAM,EAAE,CAAC;AAErC,eAAe,2BAA2B,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport {\n isLeft,\n isRight,\n isUp,\n isDown,\n isEscape,\n isSpace,\n isEnter,\n isHome,\n isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport type { RelativeValue } from \"./utils/parseRelativeUnits.js\";\nimport parseRelativeUnits from \"./utils/parseRelativeUnits.js\";\nimport UDExSecondaryNavigationSubItem from \"./SecondaryNavigationSubItem.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\n\nimport SecondaryNavigationItemTemplate from \"./generated/templates/SecondaryNavigationItemTemplate.lit.js\";\n\n// Styles\nimport SecondaryNavigationItemCss from \"./generated/themes/SecondaryNavigationItem.css.js\";\n\nexport const menuItemRole: string = \"menuitem\";\n\nexport type UDExSecondaryNavigationItemClickEventDetail = {\n item: HTMLElement,\n index: number,\n originalEvent: PointerEvent | KeyboardEvent\n};\n\nexport type UDExSecondaryNavigationItemSubItemClickEventDetail = {\n item: NavItem,\n index: number,\n originalEvent: PointerEvent\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-secondary-navigation-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigationItem.js\";</code>\n *\n * @constructor\n * @extends UDExSecondaryNavigationItemBase\n * @tagname udex-secondary-navigation-item\n * @private\n */\n@customElement({\n tag: \"udex-secondary-navigation-item\",\n renderer: litRender,\n styles: [SecondaryNavigationItemCss, getEffectiveScrollbarStyle()],\n template: SecondaryNavigationItemTemplate,\n dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"nav-item-click\", { bubbles: true, cancelable: true })\n\n/**\n * Fires when dropdown item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"sub-item-click\", { bubbles: true, cancelable: true })\n\nclass UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {\n eventDetails!: {\n \"nav-item-click\": UDExSecondaryNavigationItemClickEventDetail,\n \"sub-item-click\": UDExSecondaryNavigationItemSubItemClickEventDetail,\n };\n /**\n * Defines an aria label for item\n *\n * @public\n */\n @property({ type: String })\n ariaLabel!: string;\n\n /**\n * Defines a role for item\n *\n * @public\n */\n @property({ type: String })\n role!: string;\n\n /**\n * Defines the content of the item.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement })\n buttons!: Array<HTMLElement>;\n\n /**\n * List of the sub items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: Object })\n subItems: Array<NavItem> = [];\n\n /**\n * Defines if dropdown is opened.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n isOpen!: boolean;\n\n /**\n * Defines the length of items in the secondary navigation.\n *\n * @private\n */\n @property({ type: Number })\n _navItemsLength!: number;\n\n /**\n * Defines the height of the dropdown opened on mobile screen.\n *\n * @private\n */\n @property({ type: String })\n _maxHeight!: RelativeValue;\n\n /**\n * Defines processed items.\n *\n * @private\n * @default []\n */\n @property({ type: Object })\n _processedItems: Array<NavItem> = [];\n\n _dropdownHistory: Array<Array<NavItem>> = [];\n _shouldFocusFirstSubItem!: boolean;\n _subTitle!: string | undefined;\n\n onAfterRendering(): void {\n if (this.isLastItem && this.isOpen && !this._isMobileView) {\n this.setDropdownHorizontalAlign();\n }\n\n if (this._shouldFocusFirstSubItem && this.isOpen) {\n this.onFirstSubItemFocus();\n this._shouldFocusFirstSubItem = false;\n }\n\n if (this._isMobileView && this.isOpen) {\n this.setDropdownHeight();\n }\n }\n\n onBeforeRendering() : void {\n this._subTitle = this.subActiveItemTitle || this._subTitle;\n }\n\n handleSubItemClick(e: CustomEvent | KeyboardEvent): void {\n const { originalEvent } = e.detail;\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const clickedItem = this._processedItems[index];\n\n if (clickedItem.items) {\n this.setDropdownHistory();\n this.setNestedItems(clickedItem);\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireSubItemClickEvent(originalEvent as PointerEvent, clickedItem, index);\n }\n\n onBackClick(): void {\n this.setPrevNestedItems();\n }\n\n openDropdown(e: PointerEvent | KeyboardEvent): void {\n if (this.hasNestedItems) {\n this.setDropdownItems();\n this.isOpen = !this.isOpen;\n this.onShouldFocusFirstSubItem();\n }\n\n this.fireNavItemClickEvent(e);\n }\n\n closeDropdown(): void {\n this.isOpen = false;\n }\n\n handleItemLinkKeyDown(e: KeyboardEvent): void {\n if (isSpace(e)) {\n this.fireNavItemClickEvent(e);\n }\n }\n\n handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {\n if (isEnter(e) || isSpace(e)) {\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleSubItemKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (isEscape(e)) {\n this.handleEscapeKey();\n }\n if (isLeft(e)) {\n this.handleLeftArrow(e);\n }\n if (isRight(e)) {\n this.handleRightArrow(e);\n }\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpArrow(e);\n }\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownArrow(e);\n }\n if (isHome(e)) {\n e.preventDefault();\n this.onFirstSubItemFocus();\n }\n if (isEnd(e)) {\n e.preventDefault();\n this.onLastSubItemFocus();\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n this.handleEnterAndSpace(e);\n }\n if (isTabPrevious(e) && this._isMobileView) {\n this.closeDropdown();\n }\n if ((isTabPrevious(e) || isTabNext(e)) && !this._isMobileView) {\n this.closeDropdown();\n }\n }\n\n handleButtonsEscKey(e: KeyboardEvent): void {\n if (isEscape(e) && this._isMobileView) {\n this.handleEscapeKey();\n }\n }\n\n handleUpArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const lastIndex = this.domNavItems.length - 1;\n const previousSelectIndex = index - 1 < 0 ? lastIndex : index - 1;\n const previousItem = this.domNavItems[previousSelectIndex];\n const currentItem = this.domNavItems[index];\n\n this.unsetTabIndex(currentItem);\n this.setTabIndex(previousItem);\n previousItem.focus();\n }\n\n handleDownArrow(e: KeyboardEvent): void {\n const { index } = e.target as UDExSecondaryNavigationSubItem;\n const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;\n const nextItem = this.domNavItems[nextIndex];\n const currentItem = this.domNavItems[index];\n\n this.unsetTabIndex(currentItem);\n this.setTabIndex(nextItem);\n nextItem.focus();\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n const { isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.setPrevNestedItems();\n this.onShouldFocusFirstSubItem();\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;\n if (hasItems && !isBack) {\n this.handleSubItemClick(e);\n this.unsetTabIndex(this.domNavItems[index]);\n }\n }\n\n handleEnterAndSpace(e: KeyboardEvent): void {\n const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;\n if (isBack) {\n this.onBackClick();\n this.onShouldFocusFirstSubItem();\n return;\n }\n\n this.handleSubItemClick(e);\n\n if (hasItems) {\n this.onShouldFocusFirstSubItem();\n } else {\n this.closeDropdown();\n this.focus();\n }\n }\n\n handleEscapeKey(): void {\n this.closeDropdown();\n this.focus();\n }\n\n fireNavItemClickEvent(e: PointerEvent | KeyboardEvent): void {\n this.fireDecoratorEvent(\"nav-item-click\", {\n item: this,\n index: this.index,\n originalEvent: e,\n });\n }\n\n fireSubItemClickEvent(e: PointerEvent, clickedItem: NavItem, index: number): void {\n this.fireDecoratorEvent(\"sub-item-click\", {\n item: clickedItem,\n index,\n originalEvent: e,\n });\n }\n\n setDropdownHistory(): void {\n this._dropdownHistory.push(this._processedItems);\n }\n\n setPrevNestedItems(): void {\n this._processedItems = this._dropdownHistory.pop()!;\n }\n\n setNestedItems({ title, items, mobileLinkTitle } : NavItem): void {\n if (items) {\n this._processedItems = [{ title, mobileLinkTitle, isBack: true }, ...items];\n }\n }\n\n setDropdownItems(): void {\n this._processedItems = this.subItems;\n }\n\n setDropdownHeight(): void {\n if (!this._maxHeight || this._dropdownMaxHeightExceeds || !this.heightSatisfiesType) {\n const secondaryNavigationMobileTrigger = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!;\n const maxDropdownHeight = window.innerHeight - secondaryNavigationMobileTrigger.clientHeight;\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-max-height\", `${maxDropdownHeight}px`);\n return;\n }\n\n this.style.setProperty(\"--udex-secondary-navigation-item-dropdown-max-height\", `${this._maxHeight}`);\n }\n\n get _dropdownMaxHeightExceeds(): boolean {\n const normalizedHeight = parseRelativeUnits(this._maxHeight, this.dropdown);\n const secondaryNavigationMobileTriggerHeight = this.shadowRoot!.querySelector(\".udex-secondary-navigation__item\")!.clientHeight;\n return normalizedHeight >= window.innerHeight - secondaryNavigationMobileTriggerHeight;\n }\n\n get heightSatisfiesType(): boolean {\n return /vh|vw|%|em|rem|px/.test(this._maxHeight);\n }\n\n setDropdownHorizontalAlign(): void {\n const { right, left } = this.dropdown.getBoundingClientRect();\n\n if (right > window.innerWidth) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"right\");\n }\n\n if (left < 0) {\n this.dropdown.setAttribute(\"data-horizontal-align\", \"left\");\n }\n }\n\n setTabIndex(item: UDExSecondaryNavigationSubItem): void {\n item._tabIndex = \"0\";\n }\n\n unsetTabIndex(item: UDExSecondaryNavigationSubItem): void {\n item._tabIndex = \"-1\";\n }\n\n onFirstSubItemFocus(): void {\n const firstSubItem = this.domNavItems[0];\n\n firstSubItem.focus();\n this.setTabIndex(firstSubItem);\n }\n\n onLastSubItemFocus(): void {\n this.domNavItems[this.domNavItems.length - 1].focus();\n }\n\n onShouldFocusFirstSubItem(): void {\n this._shouldFocusFirstSubItem = true;\n }\n\n get dropdown(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-secondary-navigation__dropdown\")!;\n }\n\n get isLastItem(): boolean {\n return this._navItemsLength === this.index;\n }\n\n get domNavItems(): Array<UDExSecondaryNavigationSubItem> {\n const domNavItems = this.shadowRoot?.querySelectorAll<UDExSecondaryNavigationSubItem>(\"[udex-secondary-navigation-sub-item]\");\n return domNavItems ? Array.from(domNavItems) : [];\n }\n\n get hasNestedItems(): boolean {\n return this.subItems.length > 0;\n }\n\n get isSubItemActive(): boolean {\n return !!this.subActiveItem?.active;\n }\n\n get isActive(): boolean {\n return this.isSubItemActive || this.active;\n }\n\n get subActiveItemTitle(): string | undefined {\n if (this.subActiveItem) {\n const { title, mobileLinkTitle } = this.subActiveItem;\n return this._isMobileView ? (mobileLinkTitle || title) : title;\n }\n }\n\n get subActiveItem(): NavItem | undefined {\n return this.getActiveSubItem(this.subItems);\n }\n\n get isLink(): boolean {\n return !this.hasNestedItems && !!this.path;\n }\n\n get itemRole(): string {\n return this.role ? this.role : this.menuItemRole;\n }\n\n get menuItemRole(): string {\n return menuItemRole;\n }\n\n get title(): string {\n return this.label;\n }\n}\n\nUDExSecondaryNavigationItem.define();\n\nexport default UDExSecondaryNavigationItem;\n"]}
|
|
@@ -3,8 +3,12 @@ import UDExSecondaryNavigationItemBase from "./SecondaryNavigationItemBase.js";
|
|
|
3
3
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
4
4
|
import "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
|
|
5
5
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
6
|
-
type UDExSecondaryNavigationSubItemClickEventDetail = {
|
|
6
|
+
export type UDExSecondaryNavigationSubItemClickEventDetail = {
|
|
7
7
|
item: UDExSecondaryNavigationSubItem;
|
|
8
|
+
originalEvent: PointerEvent;
|
|
9
|
+
};
|
|
10
|
+
export type UDExSecondaryNavigationSubItemBackClickEventDetail = {
|
|
11
|
+
originalEvent: PointerEvent;
|
|
8
12
|
};
|
|
9
13
|
/**
|
|
10
14
|
* @class
|
|
@@ -27,7 +31,7 @@ type UDExSecondaryNavigationSubItemClickEventDetail = {
|
|
|
27
31
|
declare class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
|
|
28
32
|
eventDetails: {
|
|
29
33
|
"sub-item-click": UDExSecondaryNavigationSubItemClickEventDetail;
|
|
30
|
-
"back-item-click":
|
|
34
|
+
"back-item-click": UDExSecondaryNavigationSubItemBackClickEventDetail;
|
|
31
35
|
};
|
|
32
36
|
/**
|
|
33
37
|
* Defines back item.
|
|
@@ -45,8 +49,8 @@ declare class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItem
|
|
|
45
49
|
nestedItems: Array<NavItem>;
|
|
46
50
|
_tabIndex: string;
|
|
47
51
|
static i18nBundle: I18nBundle;
|
|
48
|
-
onItemClick(): void;
|
|
49
|
-
onBackItemClick(): void;
|
|
52
|
+
onItemClick(e: PointerEvent): void;
|
|
53
|
+
onBackItemClick(e: PointerEvent): void;
|
|
50
54
|
get hasItems(): boolean;
|
|
51
55
|
get isButton(): boolean;
|
|
52
56
|
get isSubItemActive(): boolean;
|
|
@@ -48,13 +48,14 @@ let UDExSecondaryNavigationSubItem = UDExSecondaryNavigationSubItem_1 = class UD
|
|
|
48
48
|
this.nestedItems = [];
|
|
49
49
|
this._tabIndex = "-1";
|
|
50
50
|
}
|
|
51
|
-
onItemClick() {
|
|
51
|
+
onItemClick(e) {
|
|
52
52
|
this.fireDecoratorEvent("sub-item-click", {
|
|
53
53
|
item: this,
|
|
54
|
+
originalEvent: e,
|
|
54
55
|
});
|
|
55
56
|
}
|
|
56
|
-
onBackItemClick() {
|
|
57
|
-
this.fireDecoratorEvent("back-item-click");
|
|
57
|
+
onBackItemClick(e) {
|
|
58
|
+
this.fireDecoratorEvent("back-item-click", { originalEvent: e });
|
|
58
59
|
}
|
|
59
60
|
get hasItems() {
|
|
60
61
|
return !!this.nestedItems?.length;
|
|
@@ -97,7 +98,7 @@ UDExSecondaryNavigationSubItem = UDExSecondaryNavigationSubItem_1 = __decorate([
|
|
|
97
98
|
* @public
|
|
98
99
|
*/
|
|
99
100
|
,
|
|
100
|
-
event("sub-item-click", { bubbles: true })
|
|
101
|
+
event("sub-item-click", { bubbles: true, cancelable: true })
|
|
101
102
|
/**
|
|
102
103
|
* Fires when back item is clicked
|
|
103
104
|
*
|
|
@@ -105,7 +106,7 @@ UDExSecondaryNavigationSubItem = UDExSecondaryNavigationSubItem_1 = __decorate([
|
|
|
105
106
|
* @public
|
|
106
107
|
*/
|
|
107
108
|
,
|
|
108
|
-
event("back-item-click", { bubbles: true })
|
|
109
|
+
event("back-item-click", { bubbles: true, cancelable: true })
|
|
109
110
|
], UDExSecondaryNavigationSubItem);
|
|
110
111
|
UDExSecondaryNavigationSubItem.define();
|
|
111
112
|
export default UDExSecondaryNavigationSubItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecondaryNavigationSubItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationSubItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAEtD,OAAO,+BAA+B,MAAM,kCAAkC,CAAC;AAC/E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,mDAAmD,CAAC;AAC3D,OAAO,kCAAkC,MAAM,iEAAiE,CAAC;AAEjH,SAAS;AACT,OAAO,6BAA6B,MAAM,sDAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"SecondaryNavigationSubItem.js","sourceRoot":"","sources":["../src/SecondaryNavigationSubItem.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAEtD,OAAO,+BAA+B,MAAM,kCAAkC,CAAC;AAC/E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,mDAAmD,CAAC;AAC3D,OAAO,kCAAkC,MAAM,iEAAiE,CAAC;AAEjH,SAAS;AACT,OAAO,6BAA6B,MAAM,sDAAsD,CAAC;AAWjG;;;;;;;;;;;;;;;;;GAiBG;AAyBH,IAAM,8BAA8B,sCAApC,MAAM,8BAA+B,SAAQ,+BAA+B;IAA5E;;QAcE;;;;;WAKG;QAED,gBAAW,GAAmB,EAAE,CAAC;QAGjC,cAAS,GAAW,IAAI,CAAC;IAgC7B,CAAC;IA3BC,WAAW,CAAC,CAAe;QACzB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YACxC,IAAI,EAAE,IAAI;YACV,aAAa,EAAE,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,CAAe;QAC7B,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC3D,CAAC;IAED,IAAI,mBAAmB;QACrB,MAAM,KAAK,GAAG,gCAA8B,CAAC,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnF,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;CACF,CAAA;AA5CG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8DACT;AASjB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mEACQ;AAGjC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEACA;AAGpB;IADN,IAAI,CAAC,yBAAyB,CAAC;wDACF;AA3B1B,8BAA8B;IAxBnC,aAAa,CAAC;QACb,GAAG,EAAE,oCAAoC;QACzC,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,6BAA6B;QACrC,QAAQ,EAAE,kCAAkC;QAC5C,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE7D;;;;;OAKG;;IACF,KAAK,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAExD,8BAA8B,CAwDnC;AAED,8BAA8B,CAAC,MAAM,EAAE,CAAC;AAExC,eAAe,8BAA8B,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { NavItem } from \"./SecondaryNavigationItemBase.js\";\nimport UDExSecondaryNavigationItemBase from \"./SecondaryNavigationItemBase.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { BACK_BUTTON_LABEL } from \"./generated/i18n/i18n-defaults.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-left.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport SecondaryNavigationSubItemTemplate from \"./generated/templates/SecondaryNavigationSubItemTemplate.lit.js\";\n\n// Styles\nimport SecondaryNavigationSubItemCss from \"./generated/themes/SecondaryNavigationSubItem.css.js\";\n\nexport type UDExSecondaryNavigationSubItemClickEventDetail = {\n item: UDExSecondaryNavigationSubItem,\n originalEvent: PointerEvent\n}\n\nexport type UDExSecondaryNavigationSubItemBackClickEventDetail = {\n originalEvent: PointerEvent\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-secondary-navigation-sub-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/SecondaryNavigationSubItem.js\";</code>\n *\n * @constructor\n * @extends UDExSecondaryNavigationItemBase\n * @tagname udex-secondary-navigation-sub-item\n * @public\n */\n@customElement({\n tag: \"udex-secondary-navigation-sub-item\",\n renderer: litRender,\n styles: SecondaryNavigationSubItemCss,\n template: SecondaryNavigationSubItemTemplate,\n dependencies: [UI5Icon],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"sub-item-click\", { bubbles: true, cancelable: true })\n\n/**\n * Fires when back item is clicked\n *\n * @allowPreventDefault\n * @public\n */\n@event(\"back-item-click\", { bubbles: true, cancelable: true })\n\nclass UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {\n eventDetails!: {\n \"sub-item-click\": UDExSecondaryNavigationSubItemClickEventDetail,\n \"back-item-click\": UDExSecondaryNavigationSubItemBackClickEventDetail,\n };\n /**\n * Defines back item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n isBack!: boolean;\n\n /**\n * List of the nested items\n *\n * @default \"[]\"\n * @public\n */\n @property({ type: Object })\n nestedItems: Array<NavItem> = [];\n\n @property({ type: String })\n _tabIndex: string = \"-1\";\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onItemClick(e: PointerEvent): void {\n this.fireDecoratorEvent(\"sub-item-click\", {\n item: this,\n originalEvent: e,\n });\n }\n\n onBackItemClick(e: PointerEvent): void {\n this.fireDecoratorEvent(\"back-item-click\", { originalEvent: e });\n }\n\n get hasItems(): boolean {\n return !!this.nestedItems?.length;\n }\n\n get isButton(): boolean {\n return this.hasItems || !this.path;\n }\n\n get isSubItemActive(): boolean {\n return !!this.getActiveSubItem(this.nestedItems)?.active;\n }\n\n get backButtonAriaLabel(): string {\n const label = UDExSecondaryNavigationSubItem.i18nBundle.getText(BACK_BUTTON_LABEL);\n return `${label} ${this.itemLabel}`;\n }\n}\n\nUDExSecondaryNavigationSubItem.define();\n\nexport default UDExSecondaryNavigationSubItem;\n"]}
|
package/dist/Table.d.ts
CHANGED
package/dist/Table.js
CHANGED
|
@@ -238,7 +238,7 @@ __decorate([
|
|
|
238
238
|
property()
|
|
239
239
|
], UDExTable.prototype, "noDataText", void 0);
|
|
240
240
|
__decorate([
|
|
241
|
-
property({ type:
|
|
241
|
+
property({ type: Boolean })
|
|
242
242
|
], UDExTable.prototype, "loading", void 0);
|
|
243
243
|
__decorate([
|
|
244
244
|
property({ type: Number })
|
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 customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport UDExTableRow from \"./TableRow.js\";\nimport UDExTableCell from \"./TableCell.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 \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\n\ntype TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\ntype 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: litRender,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n dependencies: [\n BusyIndicator,\n UDExTableHeaderRow,\n UDExTableRow,\n UDExTableCell,\n UDExTableGroupRow,\n ],\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: String })\n loading!: string;\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!: Array<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 || UDExTable.i18nBundle.getText(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 customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport {\n isUp, isDown, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UDExTableHeaderRow from \"./TableHeaderRow.js\";\nimport UDExTableRow from \"./TableRow.js\";\nimport UDExTableCell from \"./TableCell.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 \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport TableCss from \"./generated/themes/Table.css.js\";\n\ntype TableBaseRow = UDExTableHeaderRow | UDExTableRow;\n\ntype 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: litRender,\n styles: [TableCss, getEffectiveScrollbarStyle()],\n template: TableTemplate,\n dependencies: [\n BusyIndicator,\n UDExTableHeaderRow,\n UDExTableRow,\n UDExTableCell,\n UDExTableGroupRow,\n ],\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!: Array<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 || UDExTable.i18nBundle.getText(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/Upload.d.ts
CHANGED
|
@@ -46,17 +46,25 @@ declare class UDExUpload extends UI5Element {
|
|
|
46
46
|
*/
|
|
47
47
|
uploadTitle: string;
|
|
48
48
|
/**
|
|
49
|
-
* Defines
|
|
49
|
+
* Defines an optional upporting message shown in 2 cases, both in single uplaod mode.
|
|
50
|
+
* 1) When more than one file is uploaded and the button for uploading is clicked.
|
|
51
|
+
* 2) When the button for uploading is disabled and a file has already been uploaded.
|
|
50
52
|
*
|
|
51
53
|
* @public
|
|
52
54
|
*/
|
|
53
|
-
|
|
55
|
+
supportingText: string;
|
|
54
56
|
/**
|
|
55
57
|
* Defines if uploader is required.
|
|
56
58
|
*
|
|
57
59
|
* @public
|
|
58
60
|
*/
|
|
59
61
|
required: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Defines if the button for uploading is disabled.
|
|
64
|
+
*
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
disabled: boolean;
|
|
60
68
|
/**
|
|
61
69
|
* Defines if uploading multiple files is allowed.
|
|
62
70
|
*
|
|
@@ -122,6 +130,8 @@ declare class UDExUpload extends UI5Element {
|
|
|
122
130
|
_isDuplicateFile(file: string): boolean;
|
|
123
131
|
_getExceededFiles(files: FileList): Array<FileData>;
|
|
124
132
|
_getDuplicateFiles(files: FileList): Array<FileData>;
|
|
133
|
+
get showSupportingText(): boolean;
|
|
134
|
+
get supportingTextClasses(): string;
|
|
125
135
|
get fileUploader(): HTMLInputElement;
|
|
126
136
|
get uploadButtonAriaLabel(): string;
|
|
127
137
|
get listBusy(): boolean;
|
package/dist/Upload.js
CHANGED
|
@@ -44,6 +44,18 @@ const convertBytesToMegabytes = (bytes) => (bytes / 1024) / 1024;
|
|
|
44
44
|
let UDExUpload = UDExUpload_1 = class UDExUpload extends UI5Element {
|
|
45
45
|
constructor() {
|
|
46
46
|
super();
|
|
47
|
+
/**
|
|
48
|
+
* Defines if uploader is required.
|
|
49
|
+
*
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
this.required = false;
|
|
53
|
+
/**
|
|
54
|
+
* Defines if the button for uploading is disabled.
|
|
55
|
+
*
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
this.disabled = false;
|
|
47
59
|
/**
|
|
48
60
|
* Defines if a file is already uploaded when multiple is false.
|
|
49
61
|
*
|
|
@@ -153,6 +165,15 @@ let UDExUpload = UDExUpload_1 = class UDExUpload extends UI5Element {
|
|
|
153
165
|
}
|
|
154
166
|
return duplicateFiles;
|
|
155
167
|
}
|
|
168
|
+
get showSupportingText() {
|
|
169
|
+
return this.disabled || this._filesFull;
|
|
170
|
+
}
|
|
171
|
+
get supportingTextClasses() {
|
|
172
|
+
if (this.disabled && !!this.supportingText) {
|
|
173
|
+
return "udex-upload__supporting-text";
|
|
174
|
+
}
|
|
175
|
+
return "udex-upload__supporting-error-text";
|
|
176
|
+
}
|
|
156
177
|
get fileUploader() {
|
|
157
178
|
const uploader = this.shadowRoot.querySelector("[ui5-file-uploader]");
|
|
158
179
|
return uploader.shadowRoot.querySelector("input");
|
|
@@ -172,10 +193,13 @@ __decorate([
|
|
|
172
193
|
], UDExUpload.prototype, "uploadTitle", void 0);
|
|
173
194
|
__decorate([
|
|
174
195
|
property({ type: String })
|
|
175
|
-
], UDExUpload.prototype, "
|
|
196
|
+
], UDExUpload.prototype, "supportingText", void 0);
|
|
176
197
|
__decorate([
|
|
177
198
|
property({ type: Boolean })
|
|
178
199
|
], UDExUpload.prototype, "required", void 0);
|
|
200
|
+
__decorate([
|
|
201
|
+
property({ type: Boolean })
|
|
202
|
+
], UDExUpload.prototype, "disabled", void 0);
|
|
179
203
|
__decorate([
|
|
180
204
|
property({ type: Boolean })
|
|
181
205
|
], UDExUpload.prototype, "multiple", void 0);
|
package/dist/Upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","sourceRoot":"","sources":["../src/Upload.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport FileUploader from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport type { FileUploaderChangeEventDetail } from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { UPLOAD_BUTTON_LABEL } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport { UDExButtonSize } from \"./types/Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExUploadItem from \"./UploadItem.js\";\nimport UploadTemplate from \"./generated/templates/UploadTemplate.lit.js\";\nimport type FileData from \"./types/FileData.js\";\n\n// Styles\nimport UploadCss from \"./generated/themes/Upload.css.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype UDExUploadBaseEventDetail = {\n files: Array<FileData>\n}\n\ntype UDExUploadFileDeleteEventDetail = {\n file: UDExUploadItem,\n}\n\ntype UDExUploadFileChangeEventDetail = {\n files: Array<UDExUploadItem>\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-upload</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Upload.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-upload\",\n renderer: litRender,\n styles: UploadCss,\n template: UploadTemplate,\n dependencies: [FileUploader, UDExList, UDExButton, UDExUploadItem],\n})\n\n/**\n * Triggered when the uploaded file exceeds the maximum allowed size.\n *\n * @public\n */\n@event(\"file-size-exceed\", { bubbles: true })\n\n/**\n * Triggered when the user deletes the uploaded item.\n *\n * @public\n */\n@event(\"file-delete\", { bubbles: true })\n\n/**\n * Triggered when the user uploads the item.\n *\n * @public\n */\n@event(\"file-change\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a duplicate file.\n *\n * @public\n */\n@event(\"file-duplicate\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a file.\n *\n * @public\n */\n@event(\"change\", { bubbles: true })\n\nclass UDExUpload extends UI5Element {\n eventDetails!: {\n \"file-size-exceed\": UDExUploadBaseEventDetail,\n \"file-delete\": UDExUploadFileDeleteEventDetail,\n \"file-change\": UDExUploadFileChangeEventDetail,\n \"file-duplicate\": UDExUploadBaseEventDetail,\n \"change\": FileUploaderChangeEventDetail\n };\n /**\n * Defines the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n uploadTitle!: string;\n\n /**\n * Defines the error message shown when more than one file is uploaded with multiple set to false.\n *\n * @public\n */\n @property({ type: String })\n errorText!: string;\n\n /**\n * Defines if uploader is required.\n *\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines if uploading multiple files is allowed.\n *\n * @public\n */\n @property({ type: Boolean })\n multiple!: boolean;\n\n /**\n * Defines the acceptable file formats for uploading.\n *\n * @public\n */\n @property({ type: String })\n accept!: string;\n\n /**\n * Defines the maximum allowed size of the file for uploading.\n *\n * @default undefined\n * @public\n */\n @property({ type: Number })\n maxFileSize!: number;\n\n /**\n * Defines the additional text below the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n additionalText!: string;\n\n /**\n * Defines the text in the upload button.\n *\n * @public\n */\n @property({ type: String })\n uploadButtonText!: string;\n\n /**\n * Defines if a file is already uploaded when multiple is false.\n *\n * @private\n */\n @property({ type: Boolean })\n _filesFull: boolean = false;\n\n /**\n * Defines the uploaded files.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExUploadItem>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property({ type: String })\n _buttonSize: `${UDExButtonSize}` = UDExButtonSize.Large;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _uploadedFiles: FileData[] = [];\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n if (this._filesFull) {\n this._filesFull = this.fileNumberExceeded;\n }\n }\n\n handleUploadClick(e: Event) {\n this._filesFull = this.fileNumberExceeded;\n if (this.fileNumberExceeded) {\n e.preventDefault();\n }\n }\n\n handleUploadFile(e: CustomEvent<FileUploaderChangeEventDetail>) {\n const { files } = e.target as HTMLInputElement;\n if (!files?.length || this.fileNumberExceeded) {\n e.stopPropagation();\n }\n\n const duplicateFiles = this._getDuplicateFiles(files!);\n if (duplicateFiles.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-duplicate\", {\n files: duplicateFiles,\n });\n this.fileUploader.value = \"\";\n return;\n }\n\n const newFiles = Array.from(files!).map(file => ({\n fileName: file.name,\n fileSize: file.size,\n }));\n\n this._uploadedFiles = [...this._uploadedFiles, ...newFiles];\n\n const exceededFilesData = this.maxFileSize ? this._getExceededFiles(files!) : [];\n if (exceededFilesData.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-size-exceed\", {\n files: exceededFilesData,\n });\n return;\n }\n\n this.fireEvent(\"change\", { files });\n }\n\n handleSelectionChange(e: CustomEvent) {\n const uploadedFiles = e.detail.listItems as UDExUploadItem[];\n this.fireDecoratorEvent(\"file-change\", { files: uploadedFiles });\n this.fileUploader.value = \"\";\n }\n\n _handleResize() {\n this._buttonSize = BreakpointUtils.isAtMost(\"S\") ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n\n handleRemoveFile(e: CustomEvent) {\n const removedFile = e.target as UDExUploadItem;\n this.fireDecoratorEvent(\"file-delete\", { file: removedFile });\n this._uploadedFiles = this._uploadedFiles.filter(file => file.fileName !== removedFile.fileName);\n this.fileUploader.value = \"\";\n }\n\n _isDuplicateFile(file: string): boolean {\n return this._uploadedFiles.some(uploadedFile => uploadedFile.fileName === file);\n }\n\n _getExceededFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const exceededFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n if (fileSize > this.maxFileSize) {\n exceededFiles.push({\n fileName: filesArray[i].name,\n fileSize,\n });\n }\n }\n return exceededFiles;\n }\n\n _getDuplicateFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const duplicateFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n const { name } = filesArray[i];\n\n const potentialDuplicate: FileData = {\n fileSize,\n fileName: name,\n };\n\n if (this._isDuplicateFile(potentialDuplicate.fileName)) {\n duplicateFiles.push(potentialDuplicate);\n }\n }\n\n return duplicateFiles;\n }\n\n get fileUploader(): HTMLInputElement {\n const uploader = this.shadowRoot!.querySelector<FileUploader>(\"[ui5-file-uploader]\")!;\n return uploader.shadowRoot!.querySelector(\"input\")!;\n }\n\n get uploadButtonAriaLabel(): string {\n return UDExUpload.i18nBundle.getText(UPLOAD_BUTTON_LABEL);\n }\n\n get listBusy(): boolean {\n return !this.items.length;\n }\n\n get fileNumberExceeded(): boolean {\n return !this.multiple && this.items.length >= 1;\n }\n}\n\nUDExUpload.define();\n\nexport default UDExUpload;\n"]}
|
|
1
|
+
{"version":3,"file":"Upload.js","sourceRoot":"","sources":["../src/Upload.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\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.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport FileUploader from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport type { FileUploaderChangeEventDetail } from \"@ui5/webcomponents/dist/FileUploader.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { UPLOAD_BUTTON_LABEL } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExButton from \"./Button.js\";\nimport { UDExButtonSize } from \"./types/Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExUploadItem from \"./UploadItem.js\";\nimport UploadTemplate from \"./generated/templates/UploadTemplate.lit.js\";\nimport type FileData from \"./types/FileData.js\";\n\n// Styles\nimport UploadCss from \"./generated/themes/Upload.css.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\nconst convertBytesToMegabytes = (bytes: number) => (bytes / 1024) / 1024;\n\ntype UDExUploadBaseEventDetail = {\n files: Array<FileData>\n}\n\ntype UDExUploadFileDeleteEventDetail = {\n file: UDExUploadItem,\n}\n\ntype UDExUploadFileChangeEventDetail = {\n files: Array<UDExUploadItem>\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-upload</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Upload.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-upload\",\n renderer: litRender,\n styles: UploadCss,\n template: UploadTemplate,\n dependencies: [FileUploader, UDExList, UDExButton, UDExUploadItem],\n})\n\n/**\n * Triggered when the uploaded file exceeds the maximum allowed size.\n *\n * @public\n */\n@event(\"file-size-exceed\", { bubbles: true })\n\n/**\n * Triggered when the user deletes the uploaded item.\n *\n * @public\n */\n@event(\"file-delete\", { bubbles: true })\n\n/**\n * Triggered when the user uploads the item.\n *\n * @public\n */\n@event(\"file-change\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a duplicate file.\n *\n * @public\n */\n@event(\"file-duplicate\", { bubbles: true })\n\n/**\n * Triggered when the user attempts to upload a file.\n *\n * @public\n */\n@event(\"change\", { bubbles: true })\n\nclass UDExUpload extends UI5Element {\n eventDetails!: {\n \"file-size-exceed\": UDExUploadBaseEventDetail,\n \"file-delete\": UDExUploadFileDeleteEventDetail,\n \"file-change\": UDExUploadFileChangeEventDetail,\n \"file-duplicate\": UDExUploadBaseEventDetail,\n \"change\": FileUploaderChangeEventDetail\n };\n /**\n * Defines the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n uploadTitle!: string;\n\n /**\n * Defines an optional upporting message shown in 2 cases, both in single uplaod mode.\n * 1) When more than one file is uploaded and the button for uploading is clicked.\n * 2) When the button for uploading is disabled and a file has already been uploaded.\n *\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines if uploader is required.\n *\n * @public\n */\n @property({ type: Boolean })\n required: boolean = false;\n\n /**\n * Defines if the button for uploading is disabled.\n *\n * @public\n */\n @property({ type: Boolean })\n disabled: boolean = false;\n\n /**\n * Defines if uploading multiple files is allowed.\n *\n * @public\n */\n @property({ type: Boolean })\n multiple!: boolean;\n\n /**\n * Defines the acceptable file formats for uploading.\n *\n * @public\n */\n @property({ type: String })\n accept!: string;\n\n /**\n * Defines the maximum allowed size of the file for uploading.\n *\n * @default undefined\n * @public\n */\n @property({ type: Number })\n maxFileSize!: number;\n\n /**\n * Defines the additional text below the title of the upload.\n *\n * @public\n */\n @property({ type: String })\n additionalText!: string;\n\n /**\n * Defines the text in the upload button.\n *\n * @public\n */\n @property({ type: String })\n uploadButtonText!: string;\n\n /**\n * Defines if a file is already uploaded when multiple is false.\n *\n * @private\n */\n @property({ type: Boolean })\n _filesFull: boolean = false;\n\n /**\n * Defines the uploaded files.\n *\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n items!: Array<UDExUploadItem>;\n\n /**\n * Defines the percentage of the upload.\n *\n * @default \"Large\"\n * @private\n */\n @property({ type: String })\n _buttonSize: `${UDExButtonSize}` = UDExButtonSize.Large;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _uploadedFiles: FileData[] = [];\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onAfterRendering(): void {\n if (this._filesFull) {\n this._filesFull = this.fileNumberExceeded;\n }\n }\n\n handleUploadClick(e: Event) {\n this._filesFull = this.fileNumberExceeded;\n if (this.fileNumberExceeded) {\n e.preventDefault();\n }\n }\n\n handleUploadFile(e: CustomEvent<FileUploaderChangeEventDetail>) {\n const { files } = e.target as HTMLInputElement;\n if (!files?.length || this.fileNumberExceeded) {\n e.stopPropagation();\n }\n\n const duplicateFiles = this._getDuplicateFiles(files!);\n if (duplicateFiles.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-duplicate\", {\n files: duplicateFiles,\n });\n this.fileUploader.value = \"\";\n return;\n }\n\n const newFiles = Array.from(files!).map(file => ({\n fileName: file.name,\n fileSize: file.size,\n }));\n\n this._uploadedFiles = [...this._uploadedFiles, ...newFiles];\n\n const exceededFilesData = this.maxFileSize ? this._getExceededFiles(files!) : [];\n if (exceededFilesData.length) {\n e.stopPropagation();\n this.fireDecoratorEvent(\"file-size-exceed\", {\n files: exceededFilesData,\n });\n return;\n }\n\n this.fireEvent(\"change\", { files });\n }\n\n handleSelectionChange(e: CustomEvent) {\n const uploadedFiles = e.detail.listItems as UDExUploadItem[];\n this.fireDecoratorEvent(\"file-change\", { files: uploadedFiles });\n this.fileUploader.value = \"\";\n }\n\n _handleResize() {\n this._buttonSize = BreakpointUtils.isAtMost(\"S\") ? UDExButtonSize.Medium : UDExButtonSize.Large;\n }\n\n handleRemoveFile(e: CustomEvent) {\n const removedFile = e.target as UDExUploadItem;\n this.fireDecoratorEvent(\"file-delete\", { file: removedFile });\n this._uploadedFiles = this._uploadedFiles.filter(file => file.fileName !== removedFile.fileName);\n this.fileUploader.value = \"\";\n }\n\n _isDuplicateFile(file: string): boolean {\n return this._uploadedFiles.some(uploadedFile => uploadedFile.fileName === file);\n }\n\n _getExceededFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const exceededFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n if (fileSize > this.maxFileSize) {\n exceededFiles.push({\n fileName: filesArray[i].name,\n fileSize,\n });\n }\n }\n return exceededFiles;\n }\n\n _getDuplicateFiles(files: FileList): Array<FileData> {\n const filesArray = Array.from(files);\n const duplicateFiles: Array<FileData> = [];\n\n for (let i = 0; i < filesArray.length; i++) {\n const fileSize = convertBytesToMegabytes(filesArray[i].size);\n const { name } = filesArray[i];\n\n const potentialDuplicate: FileData = {\n fileSize,\n fileName: name,\n };\n\n if (this._isDuplicateFile(potentialDuplicate.fileName)) {\n duplicateFiles.push(potentialDuplicate);\n }\n }\n\n return duplicateFiles;\n }\n\n get showSupportingText(): boolean {\n return this.disabled || this._filesFull;\n }\n\n get supportingTextClasses(): string {\n if (this.disabled && !!this.supportingText) {\n return \"udex-upload__supporting-text\";\n }\n return \"udex-upload__supporting-error-text\";\n }\n\n get fileUploader(): HTMLInputElement {\n const uploader = this.shadowRoot!.querySelector<FileUploader>(\"[ui5-file-uploader]\")!;\n return uploader.shadowRoot!.querySelector(\"input\")!;\n }\n\n get uploadButtonAriaLabel(): string {\n return UDExUpload.i18nBundle.getText(UPLOAD_BUTTON_LABEL);\n }\n\n get listBusy(): boolean {\n return !this.items.length;\n }\n\n get fileNumberExceeded(): boolean {\n return !this.multiple && this.items.length >= 1;\n }\n}\n\nUDExUpload.define();\n\nexport default UDExUpload;\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as V,j as r,a as c,p as S,d as w,b as P,s as g,m as x,L as v,c as y,e as R,g as O,D as L,h as D,i as F,F as A,B as I,I as b,k as f,R as G,l as H,n as E,o as $,q as N,r as B}from"./bundle.esm-
|
|
1
|
+
import{f as V,j as r,a as c,p as S,d as w,b as P,s as g,m as x,L as v,c as y,e as R,g as O,D as L,h as D,i as F,F as A,B as I,I as b,k as f,R as G,l as H,n as E,o as $,q as N,r as B}from"./bundle.esm-D10tX-qa.js";const M=n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");function _(n,e,t,s){return n.replaceAll(new RegExp(M(e),`${s?"i":""}g`),t)}function z(n,e){if(!n||!e)return n;const t=l=>{const[a,d]=l.split("");for(;n.indexOf(l)>=0||e.indexOf(l)>=0;)l=`${a}${l}${d}`;return l},s=t("12"),i=t("34");let o=V(_(n,e,l=>`${s}${l}${i}`,!0));return[[s,"<b>"],[i,"</b>"]].forEach(([l,a])=>{o=_(o,l,a,!1)}),o}function q(n,e){const t=(n==null?void 0:n.listItemContent)||U;return r("li",{part:"native-li","data-sap-focus-ref":!0,tabindex:this._effectiveTabIndex,class:this.classes.main,draggable:this.movable,role:e==null?void 0:e.role,title:e==null?void 0:e.title,onFocusIn:this._onfocusin,onKeyUp:this._onkeyup,onKeyDown:this._onkeydown,onClick:this._onclick,children:t.call(this)})}function U(){return r("div",{part:"content",id:`${this._id}-content`,class:"ui5-li-content",children:r("div",{class:"ui5-li-text-wrapper",children:r("span",{part:"title",class:"ui5-li-title",children:r("slot",{})})})})}function K(){return[q.call(this,{listItemContent:W},{role:"option"})]}function W(){return r("div",{part:"content",id:"content",class:"ui5-li-content",children:c("div",{class:"ui5-li-text-wrapper",children:[r("span",{part:"title",className:"ui5-li-title",dangerouslySetInnerHTML:{__html:this.markupText}}),this.additionalText&&r("span",{part:"additional-text",class:"ui5-li-additional-text",children:this.additionalText})]})})}S("@ui5/webcomponents-theming","sap_horizon",async()=>w);S("@ui5/webcomponents","sap_horizon",async()=>P);const X=`:host([ui5-suggestion-item]){height:auto;min-height:var(--_ui5-v2-10-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-root{min-height:var(--_ui5-v2-10-0_list_item_base_height)}:host([ui5-suggestion-item]) .ui5-li-content{padding-bottom:.875rem;padding-top:.875rem;box-sizing:border-box}
|
|
2
2
|
`;var p=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(l=n[a])&&(o=(i<3?l(o):i>3?l(e,t,o):l(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let h=class extends v{constructor(){super(...arguments),this.markupText=""}onEnterDOM(){y()&&this.setAttribute("desktop","")}get _effectiveTabIndex(){return-1}};p([g()],h.prototype,"text",void 0);p([g()],h.prototype,"additionalText",void 0);p([g()],h.prototype,"markupText",void 0);h=p([x({tag:"ui5-suggestion-item",template:K,styles:[v.styles,X]})],h);h.define();function j(n){const e=(n==null?void 0:n.items)||J;return c("ul",{role:"group",class:"ui5-group-li-root",onDragEnter:this._ondragenter,onDragOver:this._ondragover,onDrop:this._ondrop,onDragLeave:this._ondragleave,children:[this.hasHeader&&r(O,{focused:this.focused,part:"header",accessibleRole:R.Group,children:this.hasFormattedHeader?r("slot",{name:"header"}):this.headerText}),e.call(this),r(L,{orientation:"Horizontal",ownerReference:this})]})}function J(){return r("slot",{})}var T=function(n,e,t,s){var i=arguments.length,o=i<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,t):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,s);else for(var a=n.length-1;a>=0;a--)(l=n[a])&&(o=(i<3?l(o):i>3?l(e,t,o):l(e,t))||o);return i>3&&o&&Object.defineProperty(e,t,o),o};let m=class extends F{};T([D({default:!0,invalidateOnChildChange:!0,type:HTMLElement})],m.prototype,"items",void 0);m=T([x({tag:"ui5-suggestion-item-group",template:j})],m);m.define();function Q(n){const e=(n==null?void 0:n.suggestionsList)||Y,t=n==null?void 0:n.valueStateMessage,s=n==null?void 0:n.valueStateMessageInputIcon;return c(G,{class:this.classes.popover,hideArrow:!0,preventFocusRestore:!0,preventInitialFocus:!0,placement:"Bottom",horizontalAlign:"Start",tabindex:-1,style:this.styles.suggestionsPopover,onOpen:this._afterOpenPicker,onClose:this._afterClosePicker,onScroll:this._scroll,open:this.open,opener:this,accessibleName:this._popupLabel,children:[this._isPhone&&c(A,{children:[c("div",{slot:"header",class:"ui5-responsive-popover-header",children:[c("div",{class:"row",children:[r("span",{children:this._headerTitleText}),r(I,{class:"ui5-responsive-popover-close-btn",icon:$,design:"Transparent",onClick:this._closePicker})]}),r("div",{class:"row",children:r("div",{class:"input-root-phone native-input-wrapper",children:r(b,{class:"ui5-input-inner-phone",type:this.inputType,value:this.value,showClearIcon:this.showClearIcon,placeholder:this.placeholder,onInput:this._handleInput,onChange:this._handleChange})})})]}),this.hasValueStateMessage&&c("div",{class:this.classes.popoverValueState,style:this.styles.suggestionPopoverHeader,children:[r(f,{class:"ui5-input-value-state-message-icon",name:s==null?void 0:s.call(this)}),this.open&&(t==null?void 0:t.call(this))]})]}),!this._isPhone&&this.hasValueStateMessage&&c("div",{slot:"header",class:{"ui5-responsive-popover-header":!0,"ui5-responsive-popover-header--focused":this._isValueStateFocused,...this.classes.popoverValueState},style:this.styles.suggestionPopoverHeader,children:[r(f,{class:"ui5-input-value-state-message-icon",name:s==null?void 0:s.call(this)}),this.open&&(t==null?void 0:t.call(this))]}),e.call(this),this._isPhone&&r("div",{slot:"footer",class:"ui5-responsive-popover-footer",children:r(I,{design:"Transparent",onClick:this._closePicker,children:"OK"})})]})}function Y(){return r(E,{accessibleRole:H.ListBox,separators:this.suggestionSeparators,selectionMode:"Single",onMouseDown:this.onItemMouseDown,onItemClick:this._handleSuggestionItemPress,onSelectionChange:this._handleSelectionChange,children:r("slot",{})})}class u{get template(){return Q}constructor(e,t,s,i){this.component=e,this.slotName=t,this.handleFocus=i,this.highlight=s,this.selectedItemIndex=-1}onUp(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!1,s),!0}onDown(e,t){e.preventDefault();const s=!this.isOpened&&this._hasValueState&&t===-1?0:t;return this._handleItemNavigation(!0,s),!0}onSpace(e){return this._isItemOnTarget()?(e.preventDefault(),this.onItemSelected(this._selectedItem,!0),!0):!1}onEnter(e){return this._isGroupItem?(e.preventDefault(),!1):this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}onPageUp(e){e.preventDefault();const t=this.selectedItemIndex-10>-1;return this._hasValueState&&!t?(this._focusValueState(),!0):(this._moveItemSelection(this.selectedItemIndex,t?this.selectedItemIndex-=10:this.selectedItemIndex=0),!0)}onPageDown(e){e.preventDefault();const t=this._getItems(),s=t.length-1,i=this.selectedItemIndex+10<=s;return this._hasValueState&&!t?(this._focusValueState(),!0):(this._moveItemSelection(this.selectedItemIndex,i?this.selectedItemIndex+=10:this.selectedItemIndex=s),!0)}onHome(e){return e.preventDefault(),this._hasValueState?(this._focusValueState(),!0):(this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=0),!0)}onEnd(e){e.preventDefault();const t=this._getItems().length-1;return this._hasValueState&&!t?(this._focusValueState(),!0):(this._moveItemSelection(this.selectedItemIndex,this.selectedItemIndex=t),!0)}onTab(){return this._isItemOnTarget()?(this.onItemSelected(this._selectedItem,!0),!0):!1}toggle(e,t){(e!==void 0?e:!this.isOpened())?this._getComponent().open=!0:this.close(t.preventFocusRestore)}get _selectedItem(){return this._getNonGroupItems().find(e=>e.selected)}_isScrollable(){const e=this._getScrollContainer();return e.offsetHeight<e.scrollHeight}close(e=!1){const t=this._getItems()&&this._getItems()[this.selectedItemIndex];this._getComponent().open=!1;const s=this._getPicker();s.preventFocusRestore=e,s.open=!1,t&&t.focused&&(t.focused=!1)}updateSelectedItemPosition(e){this.selectedItemIndex=e}onItemSelected(e,t){const s=e,i=this._getNonGroupItems();s&&(this.accInfo={isGroup:s.hasAttribute("ui5-suggestion-item-group"),currentPos:i.indexOf(s)+1,listSize:i.length,itemText:s.text||"",additionalText:s.additionalText},this._getComponent().onItemSelected(s,t),this._getComponent().open=!1)}onItemSelect(e){this._getComponent().onItemSelect(e)}onItemPress(e){let t;const s=e.type==="ui5-item-click";s&&!e.detail.item.selected||this._handledPress&&!s||(s&&e.detail.item.selected?(t=e.detail.item,this._handledPress=!0):t=e.detail.selectedItems[0],this.onItemSelected(t,!1))}_onClose(){this._handledPress=!1}_isItemOnTarget(){return this.isOpened()&&this.selectedItemIndex!==null&&this.selectedItemIndex!==-1&&!this._isGroupItem}get _isGroupItem(){const e=this._getItems();return!e||!e[this.selectedItemIndex]?!1:e[this.selectedItemIndex].hasAttribute("ui5-suggestion-item-group")}isOpened(){var e;return!!((e=this._getPicker())!=null&&e.open)}_handleItemNavigation(e,t){this.selectedItemIndex=t,this._getItems().length&&(e?this._selectNextItem():this._selectPreviousItem())}_selectNextItem(){const e=this._getItems().length,t=this.selectedItemIndex;if(this._hasValueState&&t===-1&&!this.component._isValueStateFocused){this._focusValueState();return}(t===-1&&!this._hasValueState||this.component._isValueStateFocused)&&(this._clearValueStateFocus(),this.selectedItemIndex=-1),!(t!==-1&&t+1>e-1)&&this._moveItemSelection(t,++this.selectedItemIndex)}_selectPreviousItem(){const e=this._getItems(),t=this.selectedItemIndex;if(this._hasValueState&&t===0&&!this.component._isValueStateFocused){this.component.hasSuggestionItemSelected=!1,this.component._isValueStateFocused=!0,this.selectedItemIndex=0,e[0].focused=!1,e[0].hasAttribute("ui5-suggestion-item")&&(e[0].selected=!1);return}if(this.component._isValueStateFocused){this.component.focused=!0,this.component._isValueStateFocused=!1,this.selectedItemIndex=0;return}if(!(t===-1||t===null)){if(t-1<0){(e[t].hasAttribute("ui5-suggestion-item")||e[t].hasAttribute("ui5-suggestion-item-custom"))&&(e[t].selected=!1),e[t].focused=!1,this.component.focused=!0,this.component.hasSuggestionItemSelected=!1,this.selectedItemIndex-=1;return}this._moveItemSelection(t,--this.selectedItemIndex)}}_moveItemSelection(e,t){const s=this._getItems(),i=s[t],o=s[e],l=this._getNonGroupItems(),a=i.hasAttribute("ui5-suggestion-item-group");if(!i)return;this.component.focused=!1,this._clearValueStateFocus();const d=this._getItems()[this.selectedItemIndex];if(this.accInfo={isGroup:a,currentPos:s.indexOf(i)+1,itemText:(a?d.headerText:d.text)||""},(i.hasAttribute("ui5-suggestion-item")||i.hasAttribute("ui5-suggestion-item-custom"))&&(this.accInfo.additionalText=i.additionalText||"",this.accInfo.currentPos=l.indexOf(i)+1,this.accInfo.listSize=l.length),o&&(o.focused=!1),(o!=null&&o.hasAttribute("ui5-suggestion-item")||o!=null&&o.hasAttribute("ui5-suggestion-item-custom"))&&(o.selected=!1),i&&(i.focused=!0,a||(i.selected=!0),this.handleFocus&&i.focus()),this.component.hasSuggestionItemSelected=!0,this.onItemSelect(i),!this._isItemIntoView(i)){const C=this._isGroupItem?i.shadowRoot.querySelector("[ui5-li-group-header]"):i;this._scrollItemIntoView(C)}}_deselectItems(){this._getItems().forEach(t=>{t.hasAttribute("ui5-suggestion-item")&&(t.selected=!1),t.focused=!1})}_clearItemFocus(){const e=this._getItems().find(t=>t.focused);e&&(e.focused=!1)}_isItemIntoView(e){const t=e.getDomRef().getBoundingClientRect(),s=this._getComponent().getDomRef().getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight;let o=0;return this._hasValueState&&(o=this._getPicker().querySelector("[slot=header]").getBoundingClientRect().height),t.top+u.SCROLL_STEP<=i&&t.top>=s.top+o}_scrollItemIntoView(e){e.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"})}_getScrollContainer(){return this._scrollContainer||(this._scrollContainer=this._getPicker().shadowRoot.querySelector(".ui5-popup-content")),this._scrollContainer}_getItems(){return this._getComponent().getSlottedNodes("suggestionItems").flatMap(t=>t.hasAttribute("ui5-suggestion-item-group")?[t,...t.items]:[t])}_getNonGroupItems(){return this._getItems().filter(e=>!e.hasAttribute("ui5-suggestion-item-group"))}_getComponent(){return this.component}_getList(){return this._getPicker().querySelector("[ui5-list]")}_getListWidth(){var e;return(e=this._getList())==null?void 0:e.offsetWidth}_getPicker(){return this._getComponent().shadowRoot.querySelector("[ui5-responsive-popover]")}get itemSelectionAnnounce(){if(!this.accInfo)return"";if(this.accInfo.isGroup)return`${u.i18nBundle.getText(N)} ${this.accInfo.itemText}`;const e=u.i18nBundle.getText(B,this.accInfo.currentPos||0,this.accInfo.listSize||0);return`${this.accInfo.additionalText} ${e}`}hightlightInput(e,t){return z(e,t)}get _hasValueState(){return this.component.hasValueStateMessage}_focusValueState(){this.component._isValueStateFocused=!0,this.component.focused=!1,this.component.hasSuggestionItemSelected=!1,this.selectedItemIndex=0,this.component.value=this.component.typedInValue,this._deselectItems()}_clearValueStateFocus(){this.component._isValueStateFocused=!1}_clearSelectedSuggestionAndaccInfo(){this.accInfo=void 0,this.selectedItemIndex=0}}u.SCROLL_STEP=60;b.SuggestionsClass=u;export{u as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,h as C,t as P,m as O,u as w,v as B,w as I,x as A,E as R,y as L,z as S,R as M,B as N,A as F,C as z,G as D,H as X,J as j,K as $}from"./bundle.esm-
|
|
1
|
+
import{j as o,a as _,F as y,p as m,d as b,b as E,s as x,h as C,t as P,m as O,u as w,v as B,w as I,x as A,E as R,y as L,z as S,R as M,B as N,A as F,C as z,G as D,H as X,J as j,K as $}from"./bundle.esm-D10tX-qa.js";var v;(function(t){t.InPlace="InPlace",t.Popover="Popover"})(v||(v={}));const k=v;var T;(function(t){t.Off="Off",t.On="On"})(T||(T={}));const H=T;function W(){return o(y,{children:o("span",{children:this._renderEmptyIndicator?_(y,{children:[o("span",{className:"empty-indicator","aria-hidden":"true",children:this._emptyIndicatorSymbol}),o("span",{className:"empty-indicator-aria-label",children:this._emptyIndicatorAriaLabel})]}):o("slot",{})})})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const Y=`:host{max-width:100%;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);color:var(--sapTextColor);line-height:normal;cursor:text;overflow:hidden}:host([max-lines="1"]){display:inline-block;text-overflow:ellipsis;white-space:nowrap}:host(:not([max-lines="1"])){display:-webkit-box;-webkit-line-clamp:var(--_ui5-v2-10-0_text_max_lines);line-clamp:var(--_ui5-v2-10-0_text_max_lines);-webkit-box-orient:vertical;white-space:normal;word-wrap:break-word}.empty-indicator-aria-label{position:absolute!important;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0;font-size:0}
|
|
2
2
|
`;var h=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},f;let p=f=class extends B{constructor(){super(...arguments),this.maxLines=1/0,this.emptyIndicatorMode="Off"}onBeforeRendering(){this.style.setProperty(I("--_ui5_text_max_lines"),`${this.maxLines}`)}get hasText(){return A(this.text)}get _renderEmptyIndicator(){return!this.hasText&&this.emptyIndicatorMode===H.On}get _emptyIndicatorAriaLabel(){return f.i18nBundle.getText(R)}get _emptyIndicatorSymbol(){return f.i18nBundle.getText(L)}};h([x({type:Number})],p.prototype,"maxLines",void 0);h([x()],p.prototype,"emptyIndicatorMode",void 0);h([C({type:Node,default:!0})],p.prototype,"text",void 0);h([P("@ui5/webcomponents")],p,"i18nBundle",void 0);p=f=h([O({tag:"ui5-text",renderer:w,template:W,styles:Y})],p);p.define();const g=p;function q(){return _("div",{children:[o(g,{class:"ui5-exp-text-text",emptyIndicatorMode:this.emptyIndicatorMode,children:this._displayedText}),this._maxCharactersExceeded&&_(y,{children:[o("span",{class:"ui5-exp-text-ellipsis",children:this._ellipsisText}),o(S,{id:"toggle",class:"ui5-exp-text-toggle",accessibleRole:"Button",accessibleName:this._accessibleNameForToggle,accessibilityAttributes:this._accessibilityAttributesForToggle,onClick:this._handleToggleClick,children:this._textForToggle}),this._usePopover&&_(M,{open:this._expanded,opener:"toggle",accessibleNameRef:"popover-text",contentOnlyOnDesktop:!0,_hideHeader:!0,class:"ui5-exp-text-popover",onClose:this._handlePopoverClose,children:[o(g,{id:"popover-text",children:this.text}),o("div",{slot:"footer",class:"ui5-exp-text-footer",children:o(N,{design:"Transparent",onClick:this._handleCloseButtonClick,children:this._closeButtonText})})]})]})]})}m("@ui5/webcomponents-theming","sap_horizon",async()=>b);m("@ui5/webcomponents","sap_horizon",async()=>E);const V=`:host{display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);color:var(--sapTextColor)}:host([hidden]){display:none}.ui5-exp-text-text{display:inline}.ui5-exp-text-text,.ui5-exp-text-toggle{font-family:inherit;font-size:inherit}.ui5-exp-text-text,.ui5-exp-text-ellipsis{color:inherit}.ui5-exp-text-popover::part(content){padding-inline:1rem}.ui5-exp-text-footer{width:100%;display:flex;align-items:center;justify-content:flex-end}
|
|
3
3
|
`;var u=function(t,e,n,s){var a=arguments.length,i=a<3?e:s===null?s=Object.getOwnPropertyDescriptor(e,n):s,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(t,e,n,s);else for(var d=t.length-1;d>=0;d--)(l=t[d])&&(i=(a<3?l(i):a>3?l(e,n,i):l(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},c;let r=c=class extends B{constructor(){super(...arguments),this.maxCharacters=100,this.overflowMode="InPlace",this.emptyIndicatorMode="Off",this._expanded=!1}getFocusDomRef(){var e,n;return this._usePopover?(e=this.shadowRoot)==null?void 0:e.querySelector("[ui5-responsive-popover]"):(n=this.shadowRoot)==null?void 0:n.querySelector("[ui5-link]")}get _displayedText(){var e;return this._expanded&&!this._usePopover?this.text:(e=this.text)==null?void 0:e.substring(0,this.maxCharacters)}get _maxCharactersExceeded(){var e;return(((e=this.text)==null?void 0:e.length)||0)>this.maxCharacters}get _usePopover(){return this.overflowMode===k.Popover}get _ellipsisText(){return this._expanded&&!this._usePopover?" ":"... "}get _textForToggle(){return this._expanded?c.i18nBundle.getText(F):c.i18nBundle.getText(z)}get _closeButtonText(){return c.i18nBundle.getText(D)}get _accessibilityAttributesForToggle(){return this._usePopover?{expanded:this._expanded,hasPopup:"dialog"}:{expanded:this._expanded}}get _accessibleNameForToggle(){if(this._usePopover)return this._expanded?c.i18nBundle.getText(X):c.i18nBundle.getText(j)}_handlePopoverClose(){$()||(this._expanded=!1)}_handleToggleClick(){this._expanded=!this._expanded}_handleCloseButtonClick(e){this._expanded=!1,e.stopPropagation()}};u([x()],r.prototype,"text",void 0);u([x({type:Number})],r.prototype,"maxCharacters",void 0);u([x()],r.prototype,"overflowMode",void 0);u([x()],r.prototype,"emptyIndicatorMode",void 0);u([x({type:Boolean})],r.prototype,"_expanded",void 0);u([P("@ui5/webcomponents")],r,"i18nBundle",void 0);r=c=u([O({tag:"ui5-expandable-text",renderer:w,styles:V,template:q})],r);r.define();function Q(t){const{className:e,text:n,maxCharacters:s,part:a}=t;return o(r,{part:a,class:e,text:n,maxCharacters:s})}export{Q as default};
|