@sapudex/web-components 2.39.0 → 2.41.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.
Files changed (161) hide show
  1. package/cypress/specs/Dropdown.cy.tsx +90 -0
  2. package/cypress/specs/PasswordField.cy.tsx +37 -0
  3. package/cypress/specs/Search.cy.tsx +244 -138
  4. package/cypress/specs/SelectBox.cy.tsx +457 -0
  5. package/cypress/specs/Tile.cy.tsx +96 -0
  6. package/cypress/support/component-imports.instrumented.ts +4 -0
  7. package/cypress/support/component-imports.src.ts +4 -0
  8. package/dist/Dropdown.d.ts +5 -0
  9. package/dist/Dropdown.js +56 -0
  10. package/dist/Dropdown.js.map +1 -1
  11. package/dist/List.d.ts +1 -6
  12. package/dist/List.js +2 -10
  13. package/dist/List.js.map +1 -1
  14. package/dist/MastheadCountrySelector.d.ts +7 -0
  15. package/dist/MastheadCountrySelector.js +3 -0
  16. package/dist/MastheadCountrySelector.js.map +1 -1
  17. package/dist/PasswordField.d.ts +10 -0
  18. package/dist/PasswordField.js +17 -2
  19. package/dist/PasswordField.js.map +1 -1
  20. package/dist/PasswordFieldTemplate.js +1 -1
  21. package/dist/PasswordFieldTemplate.js.map +1 -1
  22. package/dist/Search.d.ts +1 -1
  23. package/dist/Search.js +13 -9
  24. package/dist/Search.js.map +1 -1
  25. package/dist/SearchTemplate.js +3 -3
  26. package/dist/SearchTemplate.js.map +1 -1
  27. package/dist/SearchableListBase.d.ts +2 -6
  28. package/dist/SearchableListBase.js +6 -3
  29. package/dist/SearchableListBase.js.map +1 -1
  30. package/dist/SearchableListBaseTemplate.js +1 -1
  31. package/dist/SearchableListBaseTemplate.js.map +1 -1
  32. package/dist/SelectBase.d.ts +20 -2
  33. package/dist/SelectBase.js +189 -13
  34. package/dist/SelectBase.js.map +1 -1
  35. package/dist/SelectBox.js +2 -1
  36. package/dist/SelectBox.js.map +1 -1
  37. package/dist/SelectBoxTemplate.js +4 -4
  38. package/dist/SelectBoxTemplate.js.map +1 -1
  39. package/dist/TextField.d.ts +1 -1
  40. package/dist/TextField.js +2 -2
  41. package/dist/TextField.js.map +1 -1
  42. package/dist/TextFieldTemplate.js +1 -1
  43. package/dist/TextFieldTemplate.js.map +1 -1
  44. package/dist/assets/{InputSuggestions-jTW8u1vD.js → InputSuggestions-BSg7bjcx.js} +1 -1
  45. package/dist/assets/{ListItemStandardExpandableTextTemplate-ShRY1eSJ.js → ListItemStandardExpandableTextTemplate-CCEQur_J.js} +1 -1
  46. package/dist/assets/{bundle.esm-VI-guBTG.js → bundle.esm-I7iOjLgn.js} +232 -232
  47. package/dist/assets/messagebundle_en-BZqDcZHN.js +1 -0
  48. package/dist/assets/messagebundle_et-yYsmBPXN.js +1 -0
  49. package/dist/assets/messagebundle_fi-DeMNrHC9.js +1 -0
  50. package/dist/assets/messagebundle_fr-qEm5Eykz.js +1 -0
  51. package/dist/assets/messagebundle_hr-NBdiYo-T.js +1 -0
  52. package/dist/assets/messagebundle_hu-CBV3ISbF.js +1 -0
  53. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  54. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  55. package/dist/css/themes/SelectBase.css +1 -1
  56. package/dist/css/themes/SelectBox.css +1 -1
  57. package/dist/css/themes/StatusMessage.css +1 -1
  58. package/dist/css/themes/TextField.css +1 -1
  59. package/dist/css/themes/Tile.css +1 -1
  60. package/dist/css/themes/Toast.css +1 -1
  61. package/dist/custom-elements-internal.json +85 -161
  62. package/dist/custom-elements.json +56 -120
  63. package/dist/features/SearchSuggestionsPopover.d.ts +6 -9
  64. package/dist/features/SearchSuggestionsPopover.js +47 -163
  65. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  72. package/dist/generated/i18n/i18n-defaults.d.ts +3 -2
  73. package/dist/generated/i18n/i18n-defaults.js +3 -2
  74. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  75. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +6 -5
  76. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  77. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +1 -1
  78. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  79. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  80. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  81. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  82. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  83. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  84. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  85. package/dist/generated/themes/SelectBase.css.d.ts +1 -1
  86. package/dist/generated/themes/SelectBase.css.js +1 -1
  87. package/dist/generated/themes/SelectBase.css.js.map +1 -1
  88. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  89. package/dist/generated/themes/SelectBox.css.js +1 -1
  90. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  91. package/dist/generated/themes/StatusMessage.css.d.ts +1 -1
  92. package/dist/generated/themes/StatusMessage.css.js +1 -1
  93. package/dist/generated/themes/StatusMessage.css.js.map +1 -1
  94. package/dist/generated/themes/TextField.css.d.ts +1 -1
  95. package/dist/generated/themes/TextField.css.js +1 -1
  96. package/dist/generated/themes/TextField.css.js.map +1 -1
  97. package/dist/generated/themes/Tile.css.d.ts +1 -1
  98. package/dist/generated/themes/Tile.css.js +1 -1
  99. package/dist/generated/themes/Tile.css.js.map +1 -1
  100. package/dist/generated/themes/Toast.css.d.ts +1 -1
  101. package/dist/generated/themes/Toast.css.js +1 -1
  102. package/dist/generated/themes/Toast.css.js.map +1 -1
  103. package/dist/messagebundle.properties +2 -1
  104. package/dist/messagebundle_en.properties +2 -1
  105. package/dist/messagebundle_et.properties +126 -0
  106. package/dist/messagebundle_fi.properties +127 -0
  107. package/dist/messagebundle_fr.properties +120 -0
  108. package/dist/messagebundle_hr.properties +125 -0
  109. package/dist/messagebundle_hu.properties +125 -0
  110. package/dist/vscode.html-custom-data.json +12 -27
  111. package/dist/web-types.json +36 -44
  112. package/package.json +1 -1
  113. package/src/Dropdown.ts +62 -0
  114. package/src/List.ts +3 -18
  115. package/src/MastheadCountrySelector.hbs +2 -0
  116. package/src/MastheadCountrySelector.ts +9 -0
  117. package/src/MastheadMobileMenu.hbs +1 -0
  118. package/src/PasswordField.ts +24 -0
  119. package/src/PasswordFieldTemplate.tsx +2 -2
  120. package/src/Search.ts +13 -9
  121. package/src/SearchTemplate.tsx +0 -3
  122. package/src/SearchableListBase.ts +8 -9
  123. package/src/SearchableListBaseTemplate.tsx +0 -1
  124. package/src/SelectBase.ts +203 -16
  125. package/src/SelectBox.ts +2 -1
  126. package/src/SelectBoxTemplate.tsx +1 -0
  127. package/src/TextField.ts +1 -1
  128. package/src/TextFieldTemplate.tsx +1 -1
  129. package/src/features/SearchSuggestionsPopover.ts +55 -177
  130. package/src/generated/i18n/i18n-defaults.ts +2 -2
  131. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +6 -5
  132. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +1 -1
  133. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  134. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  135. package/src/generated/themes/SelectBase.css.ts +1 -1
  136. package/src/generated/themes/SelectBox.css.ts +1 -1
  137. package/src/generated/themes/StatusMessage.css.ts +1 -1
  138. package/src/generated/themes/TextField.css.ts +1 -1
  139. package/src/generated/themes/Tile.css.ts +1 -1
  140. package/src/generated/themes/Toast.css.ts +1 -1
  141. package/src/i18n/messagebundle.properties +2 -1
  142. package/src/i18n/messagebundle_en.properties +2 -1
  143. package/src/i18n/messagebundle_et.properties +126 -0
  144. package/src/i18n/messagebundle_fi.properties +127 -0
  145. package/src/i18n/messagebundle_fr.properties +120 -0
  146. package/src/i18n/messagebundle_hr.properties +125 -0
  147. package/src/i18n/messagebundle_hu.properties +125 -0
  148. package/src/themes/MastheadCountrySelector.css +5 -2
  149. package/src/themes/MastheadProfileMenu.css +0 -5
  150. package/src/themes/SelectBase.css +7 -0
  151. package/src/themes/SelectBox.css +4 -0
  152. package/src/themes/StatusMessage.css +4 -4
  153. package/src/themes/TextField.css +3 -0
  154. package/src/themes/Tile.css +11 -3
  155. package/src/themes/Toast.css +14 -2
  156. package/dist/assets/messagebundle_en-BxjFAY2S.js +0 -1
  157. package/dist/assets/messagebundle_et-BCYOcg2t.js +0 -1
  158. package/dist/assets/messagebundle_fi-CssCIjmp.js +0 -1
  159. package/dist/assets/messagebundle_fr-CvOyuAVw.js +0 -1
  160. package/dist/assets/messagebundle_hr-CashhWbN.js +0 -1
  161. package/dist/assets/messagebundle_hu-BEMbu-EE.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBase.js","sourceRoot":"","sources":["../src/SelectBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport type { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n isEscape, isDown, isUp, isHome, isEnd, isTabNext, isTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { UDExListItemBase } from \"./List.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExSearch from \"./Search.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { COUNTRY_SELECT, STARS } from \"./generated/i18n/i18n-defaults.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport CountrySelectorTemplate from \"./CountrySelectorTemplate.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExValueState from \"./types/common.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport { getTokensCountText } from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport translate from \"./utils/translate.js\";\nimport type { AriaAutoComplete, AriaHasPopup } from \"@ui5/webcomponents-base/dist/types.js\";\n\ntype UDExSelectBaseEvents = {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n} & UDExSearchableListBaseEvents;\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExCountrySelector</code> and <code>UDExSelectBox</code> classes.\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @public\n */\n\nclass UDExSelectBase extends UDExSearchableListBase {\n eventDetails!: UDExSelectBaseEvents;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default undefined\n * @public\n */\n @property()\n accessibleNameRef?: string;\n\n /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Defines selected option for Single Select Mode.\n *\n * @default undefined\n * @private\n */\n @property()\n _selectedOption!: string;\n\n /**\n * Defines if the component should reset.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n _paneWidthVariableName = \"--udex-dropdown-pane-width\";\n _labelBaseClass = \"udex-text-field__label\";\n _dropdownClass = \"udex-select-box__dropdown\";\n _listBoxRole: AriaHasPopup = \"listbox\";\n _rootClass = \"udex-select-box__root\";\n _stickyClass = \"udex-list__sticky\";\n _ariaAutoComplete: AriaAutoComplete = \"list\";\n _trigger!: HTMLElement;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _list!: UDExList;\n _inputValue: string = \"\";\n _lastSelectedItemId: string = \"\";\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.setSelectOption();\n }\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.modeSingleSelect && !this._inputValue) {\n this.setSelectOption();\n }\n }\n\n onAfterRendering() {\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._list = this.getList();\n this._trigger = this.trigger;\n this.handleDirection();\n\n if (this._requestRender) {\n this._requestRender = false;\n }\n }\n\n _handleResize() {\n this.updatePopoverWidth();\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n\n if (isLetterKey(e.key)) {\n this.handleLetterKeyPress(e);\n return;\n }\n\n if (isTabPrevious(e) && !this.tabNavigationEnabled) {\n e.preventDefault();\n this._search.focus();\n return;\n }\n\n if (isTabNext(e) && !this.tabNavigationEnabled) {\n this.closeDropdown();\n return;\n }\n\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n\n if (!items || this.tabNavigationEnabled) {\n return;\n }\n\n this.handleListNavigationKeys(e, items);\n }\n\n handleListNavigationKeys(e: KeyboardEvent, items: UDExListItemBase[]) {\n const currentSelectedIndex = this._list?.getCurrentIndex(items, e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownKeyPress(items, currentSelectedIndex, lastItemIndex);\n\n return;\n }\n\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpKeyPress(items, currentSelectedIndex, lastItemIndex);\n\n return;\n }\n\n if (isHome(e)) {\n e.preventDefault();\n this.handleHomeKeyPress(items);\n\n return;\n }\n\n if (isEnd(e)) {\n e.preventDefault();\n this.handleEndKeyPress(items, lastItemIndex);\n }\n }\n\n handleEndKeyPress(items: UDExListItemBase[], lastItemIndex: number) {\n if (this.showImageFlags) {\n this.handleImagePosition(items, lastItemIndex);\n }\n\n this._selectedOption = items[lastItemIndex].label;\n }\n\n handleHomeKeyPress(items: UDExListItemBase[]) {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._selectedOption = items[firstIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, firstIndex);\n }\n }\n\n handleDownKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const nextIndex = currentSelectedIndex + 1;\n const nextSelectIndex = nextIndex > lastItemIndex ? 0 : nextIndex;\n const isNonInteractive = items[nextSelectIndex].nonInteractive && !items[nextSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = nextSelectIndex + 1 > lastItemIndex ? 0 : nextSelectIndex + 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[nextSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextSelectIndex);\n }\n }\n\n handleUpKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const prevIndex = currentSelectedIndex - 1;\n const previousSelectIndex = prevIndex < 0 ? lastItemIndex : prevIndex;\n const isNonInteractive = items[previousSelectIndex].nonInteractive && !items[previousSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = previousSelectIndex === 0 ? lastItemIndex : previousSelectIndex - 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[previousSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, previousSelectIndex);\n }\n }\n\n handleLetterKeyPress(e: KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this._selectedOption = \"\";\n this._inputValue = e.key;\n this._search.value = e.key;\n this._search.focus();\n this.onSearch(this._search.value);\n }\n\n handleEscKeyPress(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.closeDropdown();\n this._search.focus();\n\n if (!this.tabNavigationEnabled) {\n this._selectedOption = \"\";\n }\n }\n\n handleItemSelection(e:CustomEvent) {\n this.onItemPress(e);\n const item = e.detail.item as UDExListItemBase;\n this._lastSelectedItemId = this.getDataTokenId(item);\n this.resetSearchState();\n\n if (this.modeSingleSelect) {\n this._search.focus();\n this.closeDropdown();\n }\n }\n\n onKeyDownSearch(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n const hasItems = items && items.length > 0;\n const popoverOpened = this._popover.open;\n if (!isEscape(e) || popoverOpened) {\n e.stopPropagation();\n }\n const isEscAndPopoverOpened = isEscape(e) && popoverOpened;\n const isDownAndPopoverClosed = isDown(e) && !popoverOpened;\n const isDownAndPopoverOpened = isDown(e) && popoverOpened;\n\n if (!hasItems) {\n return;\n }\n\n if (isEscAndPopoverOpened) {\n return this.closeDropdown();\n }\n\n if (isDownAndPopoverClosed) {\n e.preventDefault();\n this.openDropdown();\n this.focusFirstItem(items);\n if (this.showImageFlags) {\n this.handleImagePosition(items, 0);\n }\n return;\n }\n\n if (isDownAndPopoverOpened) {\n e.preventDefault();\n if (this.showImageFlags) {\n this.handleImagePosition(items, 0);\n }\n return this.focusFirstItem(items);\n }\n }\n\n focusFirstItem(items: UDExListItemBase[]): void {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n const firstItem = items[firstIndex];\n this._list.setTabIndexByIndex(items, firstIndex);\n\n if (!this.tabNavigationEnabled) {\n this._selectedOption = firstItem.label;\n }\n\n if (firstItem.isGroup) {\n this._list.focusHeader(firstItem);\n } else {\n firstItem.focus();\n }\n }\n\n handleSearchChange(e: InputEvent) {\n const inputValue = (e.target as HTMLInputElement)?.value || \"\";\n this._inputValue = inputValue;\n\n if (inputValue) {\n this._selectedOption = \"\";\n }\n\n this.onSearch(inputValue);\n\n if (!this._popover.open) {\n this.openDropdown();\n }\n }\n\n handleDirection() {\n const directionStyles = window.getComputedStyle(this).getPropertyValue(\"direction\");\n this._direction = directionStyles || \"ltr\";\n }\n\n handleDropdownBeforeClose() {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n dropdownBeforeOpen() {\n if (this.height) {\n this._setContentHeight();\n }\n\n this.fireDecoratorEvent(\"before-open\");\n }\n\n fireEventDropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n }\n\n fireEventDropdownClose() {\n this.fireDecoratorEvent(\"close\");\n }\n\n handleButtonClick() {\n if (!this.isDisabled) {\n this._search.focus();\n\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n }\n\n handleInputClick() {\n if (!this.isDisabled) {\n this._search.focus();\n this.openDropdown();\n }\n }\n\n openDropdown() {\n this._popover.opener = this._trigger;\n this._popover.open = true;\n this._open = true;\n }\n\n closeDropdown() {\n if (this._popover.open) {\n this._open = false;\n this._popover.open = false;\n }\n }\n\n inputFocusIn() {\n if (!this.isDisabled) {\n this._focused = true;\n }\n }\n\n resetSearchState() {\n this._inputValue = \"\";\n setTimeout(() => this.resetSearch(), 0);\n\n if (this.modeSingleSelect) {\n this.setSelectOption();\n }\n }\n\n setSelectOption() {\n if (!this.selectedItems[0]) {\n this._selectedOption = \"\";\n return;\n }\n\n const label = this.selectedItems[0].label;\n const ratingLabel = this.selectedItems[0].ratingCount !== undefined\n ? `${this.selectedItems[0].ratingCount} ${translate(UDExSearchableListBase, STARS)}`\n : \"\";\n this._selectedOption = label || ratingLabel;\n }\n\n updatePopoverWidth() {\n this._popover.style.setProperty(this._paneWidthVariableName, `${this._trigger.offsetWidth}px`);\n }\n\n handleImagePosition(items: UDExListItemBase[], index: number) {\n const image = items[index].querySelector<HTMLElement>(\".udex-text-field__image\");\n const imagePlaceholder = this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__input > .udex-text-field__image\");\n\n if (imagePlaceholder) {\n imagePlaceholder.style.backgroundPosition = image?.style?.backgroundPosition || \"\";\n }\n }\n\n get ariaDescribedbyText(): string {\n if (this.modeSingleSelect) {\n return this._selectedOption;\n }\n const tags = this.selectedItems.filter(item => !item.isGroup);\n return getTokensCountText(tags.length);\n }\n\n get trigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__wrap\")!;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get labelClass(): string {\n const baseClass = this._labelBaseClass;\n const isActive = [\n this._inputValue,\n this._focused,\n this._open,\n this._selectedOption,\n this.hasSelectedItems,\n ].some(Boolean);\n return isActive ? `${baseClass} ${baseClass}_active` : baseClass;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get additionalClassName(): string {\n return this._stickyClass;\n }\n\n get accInfo(): { ariaLabel: string } {\n return {\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || this.label || translate(UDExSelectBase, COUNTRY_SELECT),\n };\n }\n\n get popoverId(): string {\n return `${this._id}_${this._dropdownClass}`;\n }\n\n get listboxRole(): AriaHasPopup {\n return this._listBoxRole;\n }\n\n get hideDropdownSearch(): boolean {\n return true;\n }\n\n get showImageFlags(): boolean {\n return false;\n }\n\n get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return executeTemplate(UDExSelectBase.searchableListBaseTemplate, this);\n }\n\n get countryFlag() {\n return executeTemplate(UDExSelectBase.countryFlagTemplate, this);\n }\n\n static get countryFlagTemplate() {\n return CountrySelectorTemplate;\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nexport default UDExSelectBase;\nexport type { UDExSelectBaseEvents };\n"]}
1
+ {"version":3,"file":"SelectBase.js","sourceRoot":"","sources":["../src/SelectBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport type { ChangeInfo, Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport {\n isEscape, isDown, isUp, isHome, isEnd, isTabNext, isTabPrevious, isLeft, isRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport type { UDExListItemBase } from \"./List.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type UDExList from \"./List.js\";\nimport type UDExSearch from \"./Search.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport { COUNTRY_SELECT, STARS } from \"./generated/i18n/i18n-defaults.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport CountrySelectorTemplate from \"./CountrySelectorTemplate.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExValueState from \"./types/common.js\";\nimport type { UDExSearchableListBaseEvents } from \"./SearchableListBase.js\";\nimport { getTokensCountText } from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport isLetterKey from \"./utils/isLetterKeyPressed.js\";\nimport translate from \"./utils/translate.js\";\nimport type { AriaAutoComplete, AriaHasPopup } from \"@ui5/webcomponents-base/dist/types.js\";\n\ntype UDExSelectBaseEvents = {\n \"open\": void,\n \"close\": void,\n \"before-close\": void,\n \"before-open\": void,\n} & UDExSearchableListBaseEvents;\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExCountrySelector</code> and <code>UDExSelectBox</code> classes.\n *\n * @constructor\n * @extends UDExSearchableListBase\n * @public\n */\n\nclass UDExSelectBase extends UDExSearchableListBase {\n eventDetails!: UDExSelectBaseEvents;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines whether the component is in disabled state.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines label text for field container.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default undefined\n * @public\n */\n @property()\n accessibleName?: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default undefined\n * @public\n */\n @property()\n accessibleNameRef?: string;\n\n /**\n * Defines whether the component is read-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines the value state of the trigger container.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the trigger container.\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n supportingText?: string;\n\n /**\n * @private\n */\n @property({ type: String, noAttribute: true })\n _direction?: string;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _focused!: boolean;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _open: boolean = false;\n\n /**\n * Defines selected option for Single Select Mode.\n *\n * @default undefined\n * @private\n */\n @property()\n _selectedOption!: string;\n\n /**\n * Defines if the component should reset.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * Defines the footer content for the component dropdown.\n * Place any content (e.g. an action button) here. Clicking footer content does not close the dropdown —\n * use the <code>close</code> method if needed.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Slot<HTMLElement>;\n\n _paneWidthVariableName = \"--udex-dropdown-pane-width\";\n _labelBaseClass = \"udex-text-field__label\";\n _dropdownClass = \"udex-select-box__dropdown\";\n _listBoxRole: AriaHasPopup = \"listbox\";\n _rootClass = \"udex-select-box__root\";\n _stickyClass = \"udex-list__sticky\";\n _ariaAutoComplete: AriaAutoComplete = \"list\";\n _trigger!: HTMLElement;\n _search!: UDExSearch | HTMLInputElement;\n _popover!: Popover;\n _list!: UDExList;\n _inputValue: string = \"\";\n _lastSelectedItemId: string = \"\";\n _handleResizeBound: ResizeObserverCallback;\n _handleListKeyDownBound: (e: KeyboardEvent) => void;\n _listKeyDownListenerAdded: boolean = false;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n this._handleListKeyDownBound = this._handleListKeyDownCapture.bind(this);\n }\n\n onEnterDOM() {\n ResizeHandler.register(this, this._handleResizeBound);\n if (this.modeSingleSelect && this.hasSelectedItems) {\n this.setSelectOption();\n }\n }\n\n onExitDOM() {\n ResizeHandler.deregister(this, this._handleResizeBound);\n if (this._list && this._listKeyDownListenerAdded) {\n this._list.removeEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = false;\n }\n }\n\n onInvalidation({ name }: ChangeInfo): void {\n if (name === \"default\" && this.modeSingleSelect && !this._inputValue) {\n this.setSelectOption();\n }\n }\n\n onAfterRendering() {\n this._popover = this.getPopover();\n this._search = this.getSearch();\n this._list = this.getList();\n this._trigger = this.trigger;\n this.handleDirection();\n\n if (this._requestRender) {\n this._requestRender = false;\n }\n\n if (!this._listKeyDownListenerAdded && this._list) {\n this._list.addEventListener(\"keydown\", this._handleListKeyDownBound, { capture: true });\n this._listKeyDownListenerAdded = true;\n }\n }\n\n _handleResize() {\n this.updatePopoverWidth();\n }\n\n handleKeyDownDropdown(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n\n if (isLetterKey(e.key)) {\n this.handleLetterKeyPress(e);\n return;\n }\n\n if (this.hasFooter) {\n const isInFooter = (e.target as HTMLElement).closest?.(\"[slot=\\\"footer\\\"]\");\n if (isInFooter) {\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._focusLastListItem();\n return;\n }\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n (this._firstFocusableIn(this.footer[0]) ?? this.footer[0])?.focus();\n return;\n }\n }\n\n if (isTabPrevious(e)) {\n e.preventDefault();\n this._search.focus();\n return;\n }\n\n if (isTabNext(e)) {\n e.preventDefault();\n this.closeDropdown();\n this._moveFocusAfterComponent();\n return;\n }\n\n if (isEscape(e)) {\n this.handleEscKeyPress(e);\n return;\n }\n\n if (!items) {\n return;\n }\n\n if (isRight(e)) {\n e.preventDefault();\n this._handleArrowRightInRow(e.target as HTMLElement);\n return;\n }\n\n if (isLeft(e)) {\n e.preventDefault();\n this._handleArrowLeftInRow(e.target as HTMLElement);\n return;\n }\n\n const iconSlot = this._getIconButtonSlot(e.target as HTMLElement);\n const effectiveTarget = iconSlot\n ? (e.target as HTMLElement).parentElement as UDExListItemBase | undefined\n : undefined;\n\n this.handleListNavigationKeys(e, items, effectiveTarget);\n }\n\n handleListNavigationKeys(e: KeyboardEvent, items: UDExListItemBase[], effectiveTarget?: UDExListItemBase) {\n const currentSelectedIndex = this._list?.getCurrentIndex(items, effectiveTarget ?? e.target as UDExListItemBase);\n const lastItemIndex = items.length - 1;\n\n if (isDown(e)) {\n e.preventDefault();\n this.handleDownKeyPress(items, currentSelectedIndex, lastItemIndex);\n\n return;\n }\n\n if (isUp(e)) {\n e.preventDefault();\n this.handleUpKeyPress(items, currentSelectedIndex, lastItemIndex);\n\n return;\n }\n\n if (isHome(e)) {\n e.preventDefault();\n this.handleHomeKeyPress(items);\n\n return;\n }\n\n if (isEnd(e)) {\n e.preventDefault();\n this.handleEndKeyPress(items, lastItemIndex);\n }\n }\n\n handleEndKeyPress(items: UDExListItemBase[], lastItemIndex: number) {\n if (this.showImageFlags) {\n this.handleImagePosition(items, lastItemIndex);\n }\n\n this._selectedOption = items[lastItemIndex].label;\n }\n\n handleHomeKeyPress(items: UDExListItemBase[]) {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n this._selectedOption = items[firstIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, firstIndex);\n }\n }\n\n handleDownKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const nextIndex = currentSelectedIndex + 1;\n const nextSelectIndex = nextIndex > lastItemIndex ? 0 : nextIndex;\n const isNonInteractive = items[nextSelectIndex].nonInteractive && !items[nextSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = nextSelectIndex + 1 > lastItemIndex ? 0 : nextSelectIndex + 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[nextSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, nextSelectIndex);\n }\n }\n\n handleUpKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {\n const prevIndex = currentSelectedIndex - 1;\n const previousSelectIndex = prevIndex < 0 ? lastItemIndex : prevIndex;\n const isNonInteractive = items[previousSelectIndex].nonInteractive && !items[previousSelectIndex].collapsible;\n\n if (isNonInteractive) {\n const skipIndex = previousSelectIndex === 0 ? lastItemIndex : previousSelectIndex - 1;\n this._selectedOption = items[skipIndex].label;\n if (this.showImageFlags) {\n this.handleImagePosition(items, skipIndex);\n }\n return;\n }\n\n this._selectedOption = items[previousSelectIndex].label;\n\n if (this.showImageFlags) {\n this.handleImagePosition(items, previousSelectIndex);\n }\n }\n\n handleLetterKeyPress(e: KeyboardEvent) {\n e.stopPropagation();\n e.preventDefault();\n this._selectedOption = \"\";\n this._inputValue = e.key;\n this._search.value = e.key;\n this._search.focus();\n this.onSearch(this._search.value);\n }\n\n handleEscKeyPress(e: KeyboardEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.closeDropdown();\n this._search.focus();\n this._selectedOption = \"\";\n }\n\n handleItemSelection(e:CustomEvent) {\n this.onItemPress(e);\n const item = e.detail.item as UDExListItemBase;\n this._lastSelectedItemId = this.getDataTokenId(item);\n this.resetSearchState();\n\n if (this.modeSingleSelect) {\n this._search.focus();\n this.closeDropdown();\n }\n }\n\n onKeyDownSearch(e: KeyboardEvent) {\n const items = this._list?.getKeyboardNavigationItems();\n const hasItems = items && items.length > 0;\n const popoverOpened = this._popover.open;\n if (!isEscape(e) || popoverOpened) {\n e.stopPropagation();\n }\n const isEscAndPopoverOpened = isEscape(e) && popoverOpened;\n const isDownAndPopoverClosed = isDown(e) && !popoverOpened;\n const isDownAndPopoverOpened = isDown(e) && popoverOpened;\n\n if (!hasItems) {\n return;\n }\n\n if (isEscAndPopoverOpened) {\n return this.closeDropdown();\n }\n\n if (isDownAndPopoverClosed) {\n e.preventDefault();\n this.openDropdown();\n this.focusFirstItem(items);\n if (this.showImageFlags) {\n this.handleImagePosition(items, 0);\n }\n return;\n }\n\n if (isDownAndPopoverOpened) {\n e.preventDefault();\n if (this.showImageFlags) {\n this.handleImagePosition(items, 0);\n }\n return this.focusFirstItem(items);\n }\n }\n\n focusFirstItem(items: UDExListItemBase[]): void {\n const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;\n const firstItem = items[firstIndex];\n this._list.setTabIndexByIndex(items, firstIndex);\n this._selectedOption = firstItem.label;\n\n if (firstItem.isGroup) {\n this._list.focusHeader(firstItem);\n } else {\n firstItem.focus();\n }\n }\n\n handleSearchChange(e: InputEvent) {\n const inputValue = (e.target as HTMLInputElement)?.value || \"\";\n this._inputValue = inputValue;\n\n if (inputValue) {\n this._selectedOption = \"\";\n }\n\n this.onSearch(inputValue);\n\n if (!this._popover.open) {\n this.openDropdown();\n }\n }\n\n handleDirection() {\n const directionStyles = window.getComputedStyle(this).getPropertyValue(\"direction\");\n this._direction = directionStyles || \"ltr\";\n }\n\n handleDropdownBeforeClose() {\n this.fireDecoratorEvent(\"before-close\");\n }\n\n dropdownBeforeOpen() {\n if (this.height) {\n this._setContentHeight();\n }\n\n this.fireDecoratorEvent(\"before-open\");\n }\n\n fireEventDropdownOpen() {\n this.fireDecoratorEvent(\"open\");\n }\n\n fireEventDropdownClose() {\n this.fireDecoratorEvent(\"close\");\n }\n\n handleButtonClick() {\n if (!this.isDisabled) {\n this._search.focus();\n\n if (this._popover.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n }\n }\n\n handleInputClick() {\n if (!this.isDisabled) {\n this._search.focus();\n this.openDropdown();\n }\n }\n\n openDropdown() {\n this._popover.opener = this._trigger;\n this._popover.open = true;\n this._open = true;\n }\n\n closeDropdown() {\n if (this._popover.open) {\n this._open = false;\n this._popover.open = false;\n }\n }\n\n inputFocusIn() {\n if (!this.isDisabled) {\n this._focused = true;\n }\n }\n\n resetSearchState() {\n this._inputValue = \"\";\n setTimeout(() => this.resetSearch(), 0);\n\n if (this.modeSingleSelect) {\n this.setSelectOption();\n }\n }\n\n setSelectOption() {\n if (!this.selectedItems[0]) {\n this._selectedOption = \"\";\n return;\n }\n\n const label = this.selectedItems[0].label;\n const ratingLabel = this.selectedItems[0].ratingCount !== undefined\n ? `${this.selectedItems[0].ratingCount} ${translate(UDExSearchableListBase, STARS)}`\n : \"\";\n this._selectedOption = label || ratingLabel;\n }\n\n updatePopoverWidth() {\n this._popover.style.setProperty(this._paneWidthVariableName, `${this._trigger.offsetWidth}px`);\n }\n\n handleImagePosition(items: UDExListItemBase[], index: number) {\n const image = items[index].querySelector<HTMLElement>(\".udex-text-field__image\");\n const imagePlaceholder = this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__input > .udex-text-field__image\");\n\n if (imagePlaceholder) {\n imagePlaceholder.style.backgroundPosition = image?.style?.backgroundPosition || \"\";\n }\n }\n\n get hasFooter(): boolean {\n return this.footer.length > 0;\n }\n\n _getIconButtonSlot(el: HTMLElement): string | null {\n const iconSlot = el.getAttribute?.(\"slot\");\n return (iconSlot === \"firstIcon\" || iconSlot === \"secondIcon\") ? iconSlot : null;\n }\n\n _handleArrowRightInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) {\n const firstIcon = target.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n firstIcon?.focus();\n return;\n }\n if (iconSlot === \"firstIcon\") {\n const parentItem = target.parentElement;\n if (parentItem) {\n const secondIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"secondIcon\\\"]\");\n secondIcon?.focus();\n }\n }\n }\n\n _handleArrowLeftInRow(target: HTMLElement): void {\n const iconSlot = this._getIconButtonSlot(target);\n if (!iconSlot) { return; }\n const parentItem = target.parentElement;\n if (!parentItem) { return; }\n if (iconSlot === \"secondIcon\") {\n const firstIcon = parentItem.querySelector<HTMLElement>(\"[slot=\\\"firstIcon\\\"]\");\n firstIcon?.focus();\n } else if (iconSlot === \"firstIcon\") {\n (parentItem as UDExListItemBase).focus();\n }\n }\n\n _handleListKeyDownCapture(e: KeyboardEvent): void {\n const target = e.target as HTMLElement;\n if (!this._getIconButtonSlot(target)) { return; }\n if (!isDown(e) && !isUp(e)) { return; }\n\n const items = this._list?.getKeyboardNavigationItems();\n if (!items?.length) { return; }\n\n e.stopImmediatePropagation();\n e.preventDefault();\n\n const parentItem = target.parentElement as UDExListItemBase | null;\n if (!parentItem) { return; }\n\n const currentIndex = this._list.getCurrentIndex(items, parentItem);\n if (currentIndex < 0) { return; }\n\n const lastItemIndex = items.length - 1;\n let targetIndex: number;\n\n if (isDown(e)) {\n const nextIndex = currentIndex + 1 > lastItemIndex ? 0 : currentIndex + 1;\n const isNonInteractive = items[nextIndex].nonInteractive && !items[nextIndex].collapsible;\n const wrappedNext = nextIndex + 1 > lastItemIndex ? 0 : nextIndex + 1;\n targetIndex = isNonInteractive ? wrappedNext : nextIndex;\n } else {\n const prevIndex = currentIndex - 1 < 0 ? lastItemIndex : currentIndex - 1;\n const isNonInteractive = items[prevIndex].nonInteractive && !items[prevIndex].collapsible;\n const wrappedPrev = prevIndex === 0 ? lastItemIndex : prevIndex - 1;\n targetIndex = isNonInteractive ? wrappedPrev : prevIndex;\n }\n\n this._list.unsetTabIndexByIndex(items, currentIndex);\n this._list.setTabIndexByIndex(items, targetIndex);\n items[targetIndex].focus();\n this._selectedOption = items[targetIndex].label;\n }\n\n _focusLastListItem() {\n const items = this._list?.getKeyboardNavigationItems();\n if (!items || items.length === 0) {\n this._search.focus();\n return;\n }\n const lastIndex = items.length - 1;\n const lastItem = items[lastIndex];\n this._list.setTabIndexByIndex(items, lastIndex);\n this._selectedOption = lastItem.label;\n if (lastItem.isGroup) {\n this._list.focusHeader(lastItem);\n } else {\n lastItem.focus();\n }\n }\n\n _firstFocusableIn(el: Element | undefined): HTMLElement | null {\n if (!(el instanceof HTMLElement)) { return null; }\n if (el.tabIndex >= 0 && !el.hidden && !(el as HTMLElement & { disabled?: boolean }).disabled && (!!el.offsetParent || el.matches(\"body\"))) {\n return el;\n }\n return Array.from(el.children).reduce<HTMLElement | null>(\n (found, child) => found ?? this._firstFocusableIn(child), null,\n );\n }\n\n _moveFocusAfterComponent() {\n const findAndFocus = (from: Element) => {\n let node: Element | null = from;\n while (node && node !== document.documentElement) {\n let sibling = node.nextElementSibling;\n while (sibling) {\n const focusable = this._firstFocusableIn(sibling);\n if (focusable) {\n focusable.focus();\n return;\n }\n sibling = sibling.nextElementSibling;\n }\n node = node.parentElement;\n }\n };\n\n findAndFocus(this);\n }\n\n get ariaDescribedbyText(): string {\n if (this.modeSingleSelect) {\n return this._selectedOption;\n }\n const tags = this.selectedItems.filter(item => !item.isGroup);\n return getTokensCountText(tags.length);\n }\n\n get trigger(): HTMLElement {\n return this.shadowRoot!.querySelector(\".udex-text-field__wrap\")!;\n }\n\n get isDisabled(): boolean {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n get labelClass(): string {\n const baseClass = this._labelBaseClass;\n const isActive = [\n this._inputValue,\n this._focused,\n this._open,\n this._selectedOption,\n this.hasSelectedItems,\n ].some(Boolean);\n return isActive ? `${baseClass} ${baseClass}_active` : baseClass;\n }\n\n get isReadOrDisplayOnly(): boolean {\n return this.readonly || this.displayonly;\n }\n\n get hasSelectedItems(): boolean {\n return this.selectedItems.length > 0;\n }\n\n get additionalClassName(): string {\n return this._stickyClass;\n }\n\n get accInfo(): { ariaLabel: string } {\n return {\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || this.label || translate(UDExSelectBase, COUNTRY_SELECT),\n };\n }\n\n get popoverId(): string {\n return `${this._id}_${this._dropdownClass}`;\n }\n\n get listboxRole(): AriaHasPopup {\n return this._listBoxRole;\n }\n\n get hideDropdownSearch(): boolean {\n return true;\n }\n\n get showImageFlags(): boolean {\n return false;\n }\n\n get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return executeTemplate(UDExSelectBase.searchableListBaseTemplate, this);\n }\n\n get countryFlag() {\n return executeTemplate(UDExSelectBase.countryFlagTemplate, this);\n }\n\n static get countryFlagTemplate() {\n return CountrySelectorTemplate;\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n}\n\nexport default UDExSelectBase;\nexport type { UDExSelectBaseEvents };\n"]}
package/dist/SelectBox.js CHANGED
@@ -115,8 +115,9 @@ let UDExSelectBox = class UDExSelectBox extends UDExSelectBase {
115
115
  handleInputFocusOut(e) {
116
116
  const relatedTarget = e.relatedTarget;
117
117
  const isInsideComponent = relatedTarget?.closest(`.${this._rootClass}`);
118
+ const isFooterElement = this.hasFooter && !!relatedTarget && this.footer.some(el => el === relatedTarget || el.contains(relatedTarget));
118
119
  const hasTags = this.tokenizer?.tokens.length > 0;
119
- if (!isInsideComponent) {
120
+ if (!isInsideComponent && !isFooterElement) {
120
121
  this.closeDropdown();
121
122
  this.resetSearchState();
122
123
  if (hasTags) {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBox.js","sourceRoot":"","sources":["../src/SelectBox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport {\n isEnter, isSpace, isDelete, isTabPrevious, isTabNext, isLeft, isRight, isDown, isUp, isBackSpace, isShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { UDExItemFromList } from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement } from \"./types/Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport IllustratedMessage from \"@ui5/webcomponents-fiori/dist/IllustratedMessage.js\";\nimport \"@ui5/webcomponents-fiori/dist/illustrations/NoSearchResults.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport UDExSelectBoxGroupHeader from \"./SelectBoxGroupHeader.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExBusyIndicator from \"./BusyIndicator.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExSelectBase from \"./SelectBase.js\";\nimport SelectBoxTemplate from \"./SelectBoxTemplate.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\nimport type { UDExSelectBaseEvents } from \"./SelectBase.js\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport SelectBoxCss from \"./generated/themes/SelectBox.css.js\";\nimport SelectBaseCss from \"./generated/themes/SelectBase.css.js\";\n\nexport type SelectBoxAccessibilityAttributes = {\n controls?: string,\n expanded?: \"true\" | \"false\" | boolean,\n hasPopup?: string,\n ariaLabel?: string,\n}\n\ntype UDExSelectBoxRemoveEventDetail = {\n item: UDExItemFromList,\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-select-box</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UDExSelectBox.js\";</code>\n *\n * @constructor\n * @extends UDExSelectBase\n * @tagname udex-select-box\n * @public\n */\n@customElement({\n tag: \"udex-select-box\",\n renderer: jsxRenderer,\n styles: [\n TextFieldCss,\n SelectBoxCss,\n SelectBaseCss,\n SearchableListCss,\n getEffectiveScrollbarStyle(),\n ],\n template: SelectBoxTemplate,\n dependencies: [\n UDExSelectBoxGroupHeader,\n UDExListGroupHeader,\n UDExListSelectAll,\n UDExSelectBoxItem,\n UDExStatusMessage,\n UDExBusyIndicator,\n UDExTagGroup,\n UDExListItem,\n UDExList,\n UDExTag,\n IllustratedMessage,\n Tokenizer,\n Popover,\n Token,\n Icon,\n ],\n})\n\n/**\n * Fired event when the user remove tag.\n *\n * @public\n * @param {UDExItemFromList} item The removed item\n */\n@event(\"remove\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the More button.\n *\n * @public\n */\n@event(\"show-more\", { bubbles: true })\n\nclass UDExSelectBox extends UDExSelectBase {\n eventDetails!: {\n \"remove\": UDExSelectBoxRemoveEventDetail,\n \"show-more\": void,\n } & UDExSelectBaseEvents;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n tooltipPlacement: `${Placement}` = Placement.Bottom;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTagsDropdownContent!: boolean;\n\n _truncatableTag!: UDExTag;\n _inactiveTabIndex: number = -1;\n _handleResizeTokenizerBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeTokenizerBound = this.handleResizeTokenizer.bind(this);\n }\n\n onEnterDOM() {\n super.onEnterDOM();\n ResizeHandler.register(this, this._handleResizeTokenizerBound);\n }\n\n onExitDOM() {\n super.onExitDOM();\n ResizeHandler.deregister(this, this._handleResizeTokenizerBound);\n }\n\n onAfterRendering() {\n super.onAfterRendering();\n this.handleSelectBoxOutsideClick();\n if (this.tagGroup) {\n this.configureTokenizer();\n }\n }\n\n handleResizeTokenizer() {\n this.resizeTokenizer();\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onSelectAllHeaderPress(e);\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleItemPress(e:CustomEvent) {\n this.handleItemSelection(e);\n }\n\n handlerShowMoreItems(e: CustomEvent) {\n if (!this.displayonly) {\n this.showMoreItems(e);\n this.handleUnselectTruncatableTag();\n this.openDropdown();\n }\n this.fireDecoratorEvent(\"show-more\");\n }\n\n handleInputFocusIn() {\n this.inputFocusIn();\n\n if (this.tokenizer) {\n this.tokenizer.expanded = true;\n this._requestRender = true;\n }\n }\n\n handleInputFocusOut(e: FocusEvent) {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const isInsideComponent = relatedTarget?.closest(`.${this._rootClass}`);\n const hasTags = this.tokenizer?.tokens.length > 0;\n\n if (!isInsideComponent) {\n this.closeDropdown();\n this.resetSearchState();\n\n if (hasTags) {\n this.collapseTokenizer();\n }\n }\n\n this._focused = false;\n }\n\n handleDropdownBeforeOpen() {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n }\n\n this.dropdownBeforeOpen();\n }\n\n handleDropdownClose() {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n }\n\n if (this.modeMultiSelect) {\n this.handleUnselectTruncatableTag();\n this._selectedOption = \"\";\n }\n\n this._open = false;\n this.fireEventDropdownClose();\n }\n\n handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {\n tag = tag ?? (e?.detail.tag as UI5Element);\n const tagId: string = tag.getAttribute(\"data-id\")!;\n this.tokenizer.deleteToken(tag as Token, true);\n this.handleDropdownItemPress(tagId);\n this.fireDecoratorEventRemove(tagId);\n }\n\n handleRemoveTruncatableTag() {\n const tagId: string = this._truncatableTag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.closeDropdown();\n this.fireDecoratorEventRemove(tagId);\n }\n\n handleTagClick(e: CustomEvent) {\n const tag = e.detail.tag as UDExTag;\n this.toggleTruncatedPopover(tag);\n }\n\n handleUnselectTruncatableTag() {\n if (this._truncatableTag?.selected) {\n this._truncatableTag.selected = false;\n this._showTagsDropdownContent = false;\n }\n }\n\n handleKeyDownTag(e: CustomEvent) {\n if (this.isDisabled) { return; }\n const originalEvent: KeyboardEvent = e.detail.originalEvent;\n const tag = originalEvent.target as UDExTag;\n const token = originalEvent.target as Token;\n this.tokenizer.expanded = (isLeft(originalEvent) || isRight(originalEvent) || isBackSpace(originalEvent) || isDelete(originalEvent)) && this.tokenizer.tokens.length > 0;\n\n if (isTabNext(originalEvent)) {\n originalEvent.preventDefault();\n this._search.focus();\n return;\n }\n\n if ((isDown(originalEvent) || isUp(originalEvent))) {\n this._search.focus();\n this.openDropdown();\n }\n\n if (isSpace(originalEvent) || isShift(originalEvent) || isEnter(originalEvent)) {\n originalEvent.preventDefault();\n originalEvent.stopPropagation();\n tag.selected = false;\n }\n\n if (isLeft(originalEvent) || isRight(originalEvent)) {\n const nextTokenIndex = this.tokenizer._calcNextTokenIndex(token, this.tokenizer.tokens, isRight(originalEvent));\n this.focusTagByIndex(nextTokenIndex);\n this.tokenizer._scrollToToken(this.tokenizer.tokens[nextTokenIndex]);\n return;\n }\n\n if (tag.isTruncatable && this.validTruncatableKey(originalEvent)) {\n this.toggleTruncatedPopover(tag);\n } else {\n this._showTagsDropdownContent = false;\n }\n\n if (isDelete(originalEvent) || isBackSpace(originalEvent)) {\n this.handleRemoveTag(null, tag);\n if (this.tokenizer.tokens.length === 1) {\n this._search.focus();\n } else {\n this.tokenizer.deleteToken(token, true);\n }\n }\n }\n\n handleKeyDownSearch(e: KeyboardEvent) {\n const tokenizer = this.tokenizer;\n const hasTags = tokenizer?.tokens.length > 0;\n const lastTagIndex = tokenizer?.tokens.length - 1;\n\n if (isTabPrevious(e)) {\n this.resetTagsTabIndexes();\n return;\n }\n\n if (isLeft(e) && hasTags) {\n e.preventDefault();\n this.focusTagByIndex(lastTagIndex);\n return;\n }\n\n if (isBackSpace(e) && this._inputValue === \"\" && hasTags) {\n this.focusTagByIndex(lastTagIndex);\n return;\n }\n\n this.onKeyDownSearch(e);\n }\n\n handleSelectBoxOutsideClick() {\n document.addEventListener(\"click\", (e: Event) => {\n if (e.target !== this) {\n this._open = this._popover.open;\n if (this.tokenizer?.tokens.length > 0) {\n this.collapseTokenizer();\n }\n }\n });\n }\n\n focusTagByIndex(index: number) {\n const token = this.tokenizer.tokens[index];\n if (token) {\n token.focus();\n token.forcedTabIndex = \"0\";\n }\n }\n\n fireDecoratorEventRemove(id: string) {\n this.fireDecoratorEvent(\"remove\", {\n item: this.getItemFromList(id),\n });\n }\n\n collapseTokenizer() {\n this.tokenizer.expanded = false;\n this._selectedOption = \"\";\n }\n\n showMoreItems(e: CustomEvent) {\n e.preventDefault();\n this._focused = true;\n this._search.focus();\n this._showTagsDropdownContent = false;\n }\n\n toggleTruncatedPopover(tag: UDExTag) {\n if (!tag.isTruncatable) {\n this._showTagsDropdownContent = false;\n tag.selected = false;\n }\n\n if (tag.isTruncatable && !this._open) {\n this._truncatableTag = tag;\n this._truncatableTag.selected = true;\n this._showTagsDropdownContent = true;\n this.openDropdown();\n }\n }\n\n configureTokenizer() {\n this.tagGroup._scrollToEnd = true;\n this.resetTagsTabIndexes();\n }\n\n resetTagsTabIndexes() {\n this.tags.forEach(tag => {\n this.getTagContent(tag).tabIndex = this._inactiveTabIndex;\n });\n }\n\n resizeTokenizer() {\n if (this.tokenizer) {\n this.tokenizer._handleResize();\n }\n }\n\n validTruncatableKey(e: KeyboardEvent): boolean {\n return isSpace(e) || isEnter(e);\n }\n\n getTagContent(tag: UDExTag): HTMLElement {\n return tag.shadowRoot!.querySelector(\".udex-tag\")!;\n }\n\n /**\n * Close the dropdown.\n * @public\n */\n close(): void {\n this.closeDropdown();\n }\n\n get tokenizer(): Tokenizer {\n return this.tagGroup?.tokenizer;\n }\n\n get tagGroup(): UDExTagGroup {\n return this.shadowRoot!.querySelector<UDExTagGroup>(\"[udex-tag-group]\")!;\n }\n\n get tags(): Array<UDExTag> {\n return this.tagGroup ? Array.from(this.tagGroup.shadowRoot!.querySelectorAll<UDExTag>(\"[udex-tag]\")) : [];\n }\n\n get truncatableTagLabel(): string {\n return this._truncatableTag.text.replace(/<\\/?b>/gi, \"\");\n }\n\n get showMultiSelectedOptions(): boolean {\n return this.hasSelectedItems && this.modeMultiSelect;\n }\n\n get allowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get tokenizerExpanded(): boolean {\n if (this._showTagsDropdownContent && this._truncatableTag) {\n return false;\n }\n\n const isCurrentlyExpanded = this.tokenizer?.expanded;\n\n return this._focused || this._open || isCurrentlyExpanded;\n }\n\n override get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return SearchableListBaseTemplate.call(this);\n }\n\n static override get searchableListBaseTemplate(): any {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExSelectBox.define();\n\nexport default UDExSelectBox;\nexport type { UDExSelectBoxRemoveEventDetail };\n"]}
1
+ {"version":3,"file":"SelectBox.js","sourceRoot":"","sources":["../src/SelectBox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport {\n isEnter, isSpace, isDelete, isTabPrevious, isTabNext, isLeft, isRight, isDown, isUp, isBackSpace, isShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { UDExItemFromList } from \"./SearchableListBase.js\";\nimport { UDExPopoverPart } from \"./types/SearchableListBase.js\";\nimport { Placement } from \"./types/Dropdown.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport Tokenizer from \"@ui5/webcomponents/dist/Tokenizer.js\";\nimport IllustratedMessage from \"@ui5/webcomponents-fiori/dist/IllustratedMessage.js\";\nimport \"@ui5/webcomponents-fiori/dist/illustrations/NoSearchResults.js\";\nimport Token from \"@ui5/webcomponents/dist/Token.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExListGroupHeader from \"./ListGroupHeader.js\";\nimport UDExListSelectAll from \"./ListSelectAll.js\";\nimport UDExSelectBoxItem from \"./SelectBoxItem.js\";\nimport UDExSelectBoxGroupHeader from \"./SelectBoxGroupHeader.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UDExBusyIndicator from \"./BusyIndicator.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExSelectBase from \"./SelectBase.js\";\nimport SelectBoxTemplate from \"./SelectBoxTemplate.js\";\nimport SearchableListBaseTemplate from \"./SearchableListBaseTemplate.js\";\nimport getEffectiveScrollbarStyle from \"./utils/getEffectiveScrollbarStyle.js\";\nimport type { UDExSelectBaseEvents } from \"./SelectBase.js\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\nimport SearchableListCss from \"./generated/themes/SearchableList.css.js\";\nimport SelectBoxCss from \"./generated/themes/SelectBox.css.js\";\nimport SelectBaseCss from \"./generated/themes/SelectBase.css.js\";\n\nexport type SelectBoxAccessibilityAttributes = {\n controls?: string,\n expanded?: \"true\" | \"false\" | boolean,\n hasPopup?: string,\n ariaLabel?: string,\n}\n\ntype UDExSelectBoxRemoveEventDetail = {\n item: UDExItemFromList,\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-select-box</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/UDExSelectBox.js\";</code>\n *\n * @constructor\n * @extends UDExSelectBase\n * @tagname udex-select-box\n * @public\n */\n@customElement({\n tag: \"udex-select-box\",\n renderer: jsxRenderer,\n styles: [\n TextFieldCss,\n SelectBoxCss,\n SelectBaseCss,\n SearchableListCss,\n getEffectiveScrollbarStyle(),\n ],\n template: SelectBoxTemplate,\n dependencies: [\n UDExSelectBoxGroupHeader,\n UDExListGroupHeader,\n UDExListSelectAll,\n UDExSelectBoxItem,\n UDExStatusMessage,\n UDExBusyIndicator,\n UDExTagGroup,\n UDExListItem,\n UDExList,\n UDExTag,\n IllustratedMessage,\n Tokenizer,\n Popover,\n Token,\n Icon,\n ],\n})\n\n/**\n * Fired event when the user remove tag.\n *\n * @public\n * @param {UDExItemFromList} item The removed item\n */\n@event(\"remove\", { bubbles: true })\n\n/**\n * Fired event when the user clicks on the More button.\n *\n * @public\n */\n@event(\"show-more\", { bubbles: true })\n\nclass UDExSelectBox extends UDExSelectBase {\n eventDetails!: {\n \"remove\": UDExSelectBoxRemoveEventDetail,\n \"show-more\": void,\n } & UDExSelectBaseEvents;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Determines on which side of the component the Tooltip is displayed.\n *\n * @default \"Bottom\"\n * @public\n */\n @property()\n tooltipPlacement: `${Placement}` = Placement.Bottom;\n\n /**\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _showTagsDropdownContent!: boolean;\n\n _truncatableTag!: UDExTag;\n _inactiveTabIndex: number = -1;\n _handleResizeTokenizerBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeTokenizerBound = this.handleResizeTokenizer.bind(this);\n }\n\n onEnterDOM() {\n super.onEnterDOM();\n ResizeHandler.register(this, this._handleResizeTokenizerBound);\n }\n\n onExitDOM() {\n super.onExitDOM();\n ResizeHandler.deregister(this, this._handleResizeTokenizerBound);\n }\n\n onAfterRendering() {\n super.onAfterRendering();\n this.handleSelectBoxOutsideClick();\n if (this.tagGroup) {\n this.configureTokenizer();\n }\n }\n\n handleResizeTokenizer() {\n this.resizeTokenizer();\n }\n\n handleSelectAll(e:CustomEvent) {\n this.onSelectAllHeaderPress(e);\n }\n\n handleHeaderPress(e:CustomEvent) {\n this.onHeaderPress(e);\n }\n\n handleItemPress(e:CustomEvent) {\n this.handleItemSelection(e);\n }\n\n handlerShowMoreItems(e: CustomEvent) {\n if (!this.displayonly) {\n this.showMoreItems(e);\n this.handleUnselectTruncatableTag();\n this.openDropdown();\n }\n this.fireDecoratorEvent(\"show-more\");\n }\n\n handleInputFocusIn() {\n this.inputFocusIn();\n\n if (this.tokenizer) {\n this.tokenizer.expanded = true;\n this._requestRender = true;\n }\n }\n\n handleInputFocusOut(e: FocusEvent) {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const isInsideComponent = relatedTarget?.closest(`.${this._rootClass}`);\n const isFooterElement = this.hasFooter && !!relatedTarget && this.footer.some(el => el === relatedTarget || el.contains(relatedTarget));\n const hasTags = this.tokenizer?.tokens.length > 0;\n\n if (!isInsideComponent && !isFooterElement) {\n this.closeDropdown();\n this.resetSearchState();\n\n if (hasTags) {\n this.collapseTokenizer();\n }\n }\n\n this._focused = false;\n }\n\n handleDropdownBeforeOpen() {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"addEventListener\");\n }\n\n this.dropdownBeforeOpen();\n }\n\n handleDropdownClose() {\n if (this.preventPageScroll) {\n this._managePopupListeners(UDExPopoverPart.Header, \"removeEventListener\");\n }\n\n if (this.modeMultiSelect) {\n this.handleUnselectTruncatableTag();\n this._selectedOption = \"\";\n }\n\n this._open = false;\n this.fireEventDropdownClose();\n }\n\n handleRemoveTag(e: CustomEvent | null, tag?: UI5Element) {\n tag = tag ?? (e?.detail.tag as UI5Element);\n const tagId: string = tag.getAttribute(\"data-id\")!;\n this.tokenizer.deleteToken(tag as Token, true);\n this.handleDropdownItemPress(tagId);\n this.fireDecoratorEventRemove(tagId);\n }\n\n handleRemoveTruncatableTag() {\n const tagId: string = this._truncatableTag.getAttribute(\"data-id\")!;\n this.handleDropdownItemPress(tagId);\n this.closeDropdown();\n this.fireDecoratorEventRemove(tagId);\n }\n\n handleTagClick(e: CustomEvent) {\n const tag = e.detail.tag as UDExTag;\n this.toggleTruncatedPopover(tag);\n }\n\n handleUnselectTruncatableTag() {\n if (this._truncatableTag?.selected) {\n this._truncatableTag.selected = false;\n this._showTagsDropdownContent = false;\n }\n }\n\n handleKeyDownTag(e: CustomEvent) {\n if (this.isDisabled) { return; }\n const originalEvent: KeyboardEvent = e.detail.originalEvent;\n const tag = originalEvent.target as UDExTag;\n const token = originalEvent.target as Token;\n this.tokenizer.expanded = (isLeft(originalEvent) || isRight(originalEvent) || isBackSpace(originalEvent) || isDelete(originalEvent)) && this.tokenizer.tokens.length > 0;\n\n if (isTabNext(originalEvent)) {\n originalEvent.preventDefault();\n this._search.focus();\n return;\n }\n\n if ((isDown(originalEvent) || isUp(originalEvent))) {\n this._search.focus();\n this.openDropdown();\n }\n\n if (isSpace(originalEvent) || isShift(originalEvent) || isEnter(originalEvent)) {\n originalEvent.preventDefault();\n originalEvent.stopPropagation();\n tag.selected = false;\n }\n\n if (isLeft(originalEvent) || isRight(originalEvent)) {\n const nextTokenIndex = this.tokenizer._calcNextTokenIndex(token, this.tokenizer.tokens, isRight(originalEvent));\n this.focusTagByIndex(nextTokenIndex);\n this.tokenizer._scrollToToken(this.tokenizer.tokens[nextTokenIndex]);\n return;\n }\n\n if (tag.isTruncatable && this.validTruncatableKey(originalEvent)) {\n this.toggleTruncatedPopover(tag);\n } else {\n this._showTagsDropdownContent = false;\n }\n\n if (isDelete(originalEvent) || isBackSpace(originalEvent)) {\n this.handleRemoveTag(null, tag);\n if (this.tokenizer.tokens.length === 1) {\n this._search.focus();\n } else {\n this.tokenizer.deleteToken(token, true);\n }\n }\n }\n\n handleKeyDownSearch(e: KeyboardEvent) {\n const tokenizer = this.tokenizer;\n const hasTags = tokenizer?.tokens.length > 0;\n const lastTagIndex = tokenizer?.tokens.length - 1;\n\n if (isTabPrevious(e)) {\n this.resetTagsTabIndexes();\n return;\n }\n\n if (isLeft(e) && hasTags) {\n e.preventDefault();\n this.focusTagByIndex(lastTagIndex);\n return;\n }\n\n if (isBackSpace(e) && this._inputValue === \"\" && hasTags) {\n this.focusTagByIndex(lastTagIndex);\n return;\n }\n\n this.onKeyDownSearch(e);\n }\n\n handleSelectBoxOutsideClick() {\n document.addEventListener(\"click\", (e: Event) => {\n if (e.target !== this) {\n this._open = this._popover.open;\n if (this.tokenizer?.tokens.length > 0) {\n this.collapseTokenizer();\n }\n }\n });\n }\n\n focusTagByIndex(index: number) {\n const token = this.tokenizer.tokens[index];\n if (token) {\n token.focus();\n token.forcedTabIndex = \"0\";\n }\n }\n\n fireDecoratorEventRemove(id: string) {\n this.fireDecoratorEvent(\"remove\", {\n item: this.getItemFromList(id),\n });\n }\n\n collapseTokenizer() {\n this.tokenizer.expanded = false;\n this._selectedOption = \"\";\n }\n\n showMoreItems(e: CustomEvent) {\n e.preventDefault();\n this._focused = true;\n this._search.focus();\n this._showTagsDropdownContent = false;\n }\n\n toggleTruncatedPopover(tag: UDExTag) {\n if (!tag.isTruncatable) {\n this._showTagsDropdownContent = false;\n tag.selected = false;\n }\n\n if (tag.isTruncatable && !this._open) {\n this._truncatableTag = tag;\n this._truncatableTag.selected = true;\n this._showTagsDropdownContent = true;\n this.openDropdown();\n }\n }\n\n configureTokenizer() {\n this.tagGroup._scrollToEnd = true;\n this.resetTagsTabIndexes();\n }\n\n resetTagsTabIndexes() {\n this.tags.forEach(tag => {\n this.getTagContent(tag).tabIndex = this._inactiveTabIndex;\n });\n }\n\n resizeTokenizer() {\n if (this.tokenizer) {\n this.tokenizer._handleResize();\n }\n }\n\n validTruncatableKey(e: KeyboardEvent): boolean {\n return isSpace(e) || isEnter(e);\n }\n\n getTagContent(tag: UDExTag): HTMLElement {\n return tag.shadowRoot!.querySelector(\".udex-tag\")!;\n }\n\n /**\n * Close the dropdown.\n * @public\n */\n close(): void {\n this.closeDropdown();\n }\n\n get tokenizer(): Tokenizer {\n return this.tagGroup?.tokenizer;\n }\n\n get tagGroup(): UDExTagGroup {\n return this.shadowRoot!.querySelector<UDExTagGroup>(\"[udex-tag-group]\")!;\n }\n\n get tags(): Array<UDExTag> {\n return this.tagGroup ? Array.from(this.tagGroup.shadowRoot!.querySelectorAll<UDExTag>(\"[udex-tag]\")) : [];\n }\n\n get truncatableTagLabel(): string {\n return this._truncatableTag.text.replace(/<\\/?b>/gi, \"\");\n }\n\n get showMultiSelectedOptions(): boolean {\n return this.hasSelectedItems && this.modeMultiSelect;\n }\n\n get allowTargetOverlap(): boolean {\n return !this.disableTargetOverlap;\n }\n\n get tokenizerExpanded(): boolean {\n if (this._showTagsDropdownContent && this._truncatableTag) {\n return false;\n }\n\n const isCurrentlyExpanded = this.tokenizer?.expanded;\n\n return this._focused || this._open || isCurrentlyExpanded;\n }\n\n override get searchableList() {\n this.defaultAccessibleRole = this._listBoxRole;\n return SearchableListBaseTemplate.call(this);\n }\n\n static override get searchableListBaseTemplate(): any {\n return SearchableListBaseTemplate;\n }\n}\n\nUDExSelectBox.define();\n\nexport default UDExSelectBox;\nexport type { UDExSelectBoxRemoveEventDetail };\n"]}
@@ -8,13 +8,13 @@ import UI5PopoverPlacement from "@ui5/webcomponents/dist/types/PopoverPlacement.
8
8
  import UI5PopoverHAlign from "@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js";
9
9
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
10
10
  export default function SelectBoxTemplate() {
11
- return (_jsx("div", { class: this._rootClass, children: _jsxs("div", { class: "udex-text-field__container", children: [_jsxs("div", { class: "udex-text-field__wrap", ...(this.displayonly ? { displayonly: "" } : {}), children: [this.showMultiSelectedOptions && renderTagGroup.call(this), _jsxs("div", { class: "udex-text-field__input", onFocusIn: this.handleInputFocusIn, onFocusOut: this.handleInputFocusOut, ...(this.readonly ? { readonly: "" } : {}), ...(this.isDisabled ? { disabled: "" } : {}), ...(this._open ? { open: "" } : {}), children: [this.label && (_jsxs(_Fragment, { children: [_jsxs("label", { for: "search-input", class: this.labelClass, children: [this.label, this.required && "*"] }), _jsx("span", { class: "hidden", id: `${this._id}-aria-describedby`, children: this.ariaDescribedbyText })] })), this.showImageFlags && this.countryFlag, _jsxs("div", { class: "udex-text-field__holder", children: [_jsx("input", { role: "combobox", type: "text", id: "search-input", name: "search", class: "udex-text-field__search", value: this._inputValue, onInput: this.handleSearchChange, onClick: this.handleInputClick, onKeyDown: this.handleKeyDownSearch, disabled: this.isDisabled, readonly: this.isReadOrDisplayOnly, "aria-label": this.accInfo.ariaLabel, "aria-readonly": this.isReadOrDisplayOnly, "aria-disabled": this.disabled, "aria-haspopup": this.listboxRole, "aria-controls": this.popoverId, "aria-expanded": this._open, "aria-autocomplete": this._ariaAutoComplete, "aria-describedby": `${this._id}-aria-describedby`, autocomplete: "off" }), this._selectedOption && (_jsx("div", { class: "udex-text-field__text-holder", children: _jsx("span", { class: "udex-text-field__single-label", "aria-hidden": "true", dangerouslySetInnerHTML: { __html: this._selectedOption } }) }))] }), !this.displayonly && (_jsx("button", { onClick: this.handleButtonClick, disabled: this.isDisabled, "aria-label": this.accInfo.ariaLabel, class: "udex-text-field__trigger", tabindex: -1, children: _jsx(UI5Icon, { mode: "Decorative", name: "navigation-down-arrow" }) })), _jsx(UI5Popover, { id: this.popoverId, "allow-target-overlap": this.allowTargetOverlap, onKeyDown: this.handleKeyDownDropdown, ...{
11
+ return (_jsx("div", { class: this._rootClass, children: _jsxs("div", { class: "udex-text-field__container", children: [_jsxs("div", { class: "udex-text-field__wrap", ...(this.displayonly ? { displayonly: "" } : {}), children: [this.showMultiSelectedOptions && renderTagGroup.call(this), _jsxs("div", { class: "udex-text-field__input", onFocusIn: this.handleInputFocusIn, onFocusOut: this.handleInputFocusOut, ...(this.readonly ? { readonly: "" } : {}), ...(this.isDisabled ? { disabled: "" } : {}), ...(this._open ? { open: "" } : {}), children: [this.label && (_jsxs(_Fragment, { children: [_jsxs("label", { for: "search-input", class: this.labelClass, children: [this.label, this.required && "*"] }), _jsx("span", { class: "hidden", id: `${this._id}-aria-describedby`, children: this.ariaDescribedbyText })] })), this.showImageFlags && this.countryFlag, _jsxs("div", { class: "udex-text-field__holder", children: [_jsx("input", { role: "combobox", type: "text", id: "search-input", name: "search", class: "udex-text-field__search", value: this._inputValue, onInput: this.handleSearchChange, onClick: this.handleInputClick, onKeyDown: this.handleKeyDownSearch, disabled: this.isDisabled, readonly: this.isReadOrDisplayOnly, "aria-label": this.accInfo.ariaLabel, "aria-readonly": this.isReadOrDisplayOnly, "aria-disabled": this.disabled, "aria-haspopup": this.listboxRole, "aria-controls": this.popoverId, "aria-expanded": this._open, "aria-autocomplete": this._ariaAutoComplete, "aria-describedby": `${this._id}-aria-describedby`, autocomplete: "off" }), this._selectedOption && (_jsx("div", { class: "udex-text-field__text-holder", children: _jsx("span", { class: "udex-text-field__single-label", "aria-hidden": "true", dangerouslySetInnerHTML: { __html: this._selectedOption } }) }))] }), !this.displayonly && (_jsx("button", { onClick: this.handleButtonClick, disabled: this.isDisabled, "aria-label": this.accInfo.ariaLabel, class: "udex-text-field__trigger", tabindex: -1, children: _jsx(UI5Icon, { mode: "Decorative", name: "navigation-down-arrow" }) })), _jsxs(UI5Popover, { id: this.popoverId, "allow-target-overlap": this.allowTargetOverlap, onKeyDown: this.handleKeyDownDropdown, ...{
12
12
  onSelectAll: this.handleSelectAll,
13
13
  onItemPress: this.handleItemPress,
14
14
  onHeaderPress: this.handleHeaderPress,
15
- }, onBeforeOpen: this.handleDropdownBeforeOpen, onOpen: this.fireEventDropdownOpen, onBeforeClose: this.handleDropdownBeforeClose, onClose: this.handleDropdownClose, class: "udex-select-box__dropdown", "horizontal-align": UI5PopoverHAlign.Start, placement: UI5PopoverPlacement.Bottom, "prevent-focus-restore": true, "prevent-initial-focus": true, "hide-arrow": true, children: this._showTagsDropdownContent
16
- ? renderTruncatableTagContent.call(this)
17
- : this.searchableList }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._accSearchResultInfo })] })] }), this.supportingText && (_jsx(UDExStatusMessage, { disabled: this.disabled ? "true" : undefined, "supporting-text": this.supportingText, "value-state": this.valueState }))] }) }));
15
+ }, onBeforeOpen: this.handleDropdownBeforeOpen, onOpen: this.fireEventDropdownOpen, onBeforeClose: this.handleDropdownBeforeClose, onClose: this.handleDropdownClose, class: "udex-select-box__dropdown", "horizontal-align": UI5PopoverHAlign.Start, placement: UI5PopoverPlacement.Bottom, "prevent-focus-restore": true, "prevent-initial-focus": true, "hide-arrow": true, children: [this._showTagsDropdownContent
16
+ ? renderTruncatableTagContent.call(this)
17
+ : this.searchableList, this.hasFooter && _jsx("slot", { name: "footer", slot: "footer" })] }), _jsx("span", { "aria-live": "polite", "aria-atomic": "true", class: "hidden", children: this._accSearchResultInfo })] })] }), this.supportingText && (_jsx(UDExStatusMessage, { disabled: this.disabled ? "true" : undefined, "supporting-text": this.supportingText, "value-state": this.valueState }))] }) }));
18
18
  }
19
19
  function renderTagGroup() {
20
20
  return (_jsx(UDExTagGroup, { class: "udex-tag-group", displayonly: this.displayonly, readonly: this.readonly, disabled: this.disabled, onFocusOut: this.resetTagsTabIndexes, "tooltip-placement": this.tooltipPlacement, onTagIconClick: this.handleRemoveTag, onTagClick: this.handleTagClick, onShowMoreTags: this.handlerShowMoreItems, onTagKeydown: this.handleKeyDownTag, "tokenizer-expanded": this.tokenizerExpanded, "_skip-more-button-focus": true, children: this.selectedItems
@@ -1 +1 @@
1
- {"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <>\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \"*\"}\n </label>\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n </>\n )}\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-haspopup={this.listboxRole}\n aria-controls={this.popoverId}\n aria-expanded={this._open}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.fireEventDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._accSearchResultInfo}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled ? \"true\" : undefined}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"SelectBoxTemplate.js","sourceRoot":"","sources":["../src/SelectBoxTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExSelectBox from \"./SelectBox.js\";\nimport UDExTagGroup from \"./TagGroup.js\";\nimport UDExTag from \"./Tag.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport UI5Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport UI5PopoverPlacement from \"@ui5/webcomponents/dist/types/PopoverPlacement.js\";\nimport UI5PopoverHAlign from \"@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\n\nexport default function SelectBoxTemplate(this: UDExSelectBox) {\n return (\n <div class={this._rootClass}>\n <div class=\"udex-text-field__container\">\n <div class=\"udex-text-field__wrap\" {...(this.displayonly ? { displayonly: \"\" } : {})}>\n {this.showMultiSelectedOptions && renderTagGroup.call(this)}\n <div\n class=\"udex-text-field__input\"\n onFocusIn={this.handleInputFocusIn}\n onFocusOut={this.handleInputFocusOut}\n {...(this.readonly ? { readonly: \"\" } : {})}\n {...(this.isDisabled ? { disabled: \"\" } : {})}\n {...(this._open ? { open: \"\" } : {})}>\n {this.label && (\n <>\n <label for=\"search-input\" class={this.labelClass}>\n {this.label}{this.required && \"*\"}\n </label>\n <span class=\"hidden\" id={`${this._id}-aria-describedby`}>{this.ariaDescribedbyText}</span>\n </>\n )}\n {this.showImageFlags && this.countryFlag}\n <div class=\"udex-text-field__holder\">\n <input\n role=\"combobox\"\n type=\"text\"\n id=\"search-input\"\n name=\"search\"\n class=\"udex-text-field__search\"\n value={this._inputValue}\n onInput={this.handleSearchChange}\n onClick={this.handleInputClick}\n onKeyDown={this.handleKeyDownSearch}\n disabled={this.isDisabled}\n readonly={this.isReadOrDisplayOnly}\n aria-label={this.accInfo.ariaLabel}\n aria-readonly={this.isReadOrDisplayOnly}\n aria-disabled={this.disabled}\n aria-haspopup={this.listboxRole}\n aria-controls={this.popoverId}\n aria-expanded={this._open}\n aria-autocomplete={this._ariaAutoComplete}\n aria-describedby={`${this._id}-aria-describedby`}\n autocomplete=\"off\"\n />\n {this._selectedOption && (\n <div class=\"udex-text-field__text-holder\">\n <span\n class=\"udex-text-field__single-label\"\n aria-hidden=\"true\"\n dangerouslySetInnerHTML={{ __html: this._selectedOption }}>\n </span>\n </div>\n )}\n </div>\n {!this.displayonly && (\n <button\n onClick={this.handleButtonClick}\n disabled={this.isDisabled}\n aria-label={this.accInfo.ariaLabel}\n class=\"udex-text-field__trigger\"\n tabindex={-1}>\n <UI5Icon mode=\"Decorative\" name=\"navigation-down-arrow\"></UI5Icon>\n </button>\n )}\n <UI5Popover\n id={this.popoverId}\n allow-target-overlap={this.allowTargetOverlap}\n onKeyDown={this.handleKeyDownDropdown}\n {...({\n onSelectAll: this.handleSelectAll,\n onItemPress: this.handleItemPress,\n onHeaderPress: this.handleHeaderPress,\n } as any)}\n onBeforeOpen={this.handleDropdownBeforeOpen}\n onOpen={this.fireEventDropdownOpen}\n onBeforeClose={this.handleDropdownBeforeClose}\n onClose={this.handleDropdownClose}\n class=\"udex-select-box__dropdown\"\n horizontal-align={UI5PopoverHAlign.Start}\n placement={UI5PopoverPlacement.Bottom}\n prevent-focus-restore\n prevent-initial-focus\n hide-arrow>\n {this._showTagsDropdownContent\n ? renderTruncatableTagContent.call(this)\n : this.searchableList}\n {this.hasFooter && <slot name=\"footer\" slot=\"footer\" />}\n </UI5Popover>\n <span aria-live=\"polite\" aria-atomic=\"true\" class=\"hidden\">{this._accSearchResultInfo}</span>\n </div>\n </div>\n {this.supportingText && (\n <UDExStatusMessage\n disabled={this.disabled ? \"true\" : undefined}\n supporting-text={this.supportingText}\n value-state={this.valueState}>\n </UDExStatusMessage>\n )}\n </div>\n </div>\n );\n}\n\nfunction renderTagGroup(this: UDExSelectBox) {\n return (\n <UDExTagGroup\n class=\"udex-tag-group\"\n displayonly={this.displayonly}\n readonly={this.readonly}\n disabled={this.disabled}\n onFocusOut={this.resetTagsTabIndexes}\n tooltip-placement={this.tooltipPlacement}\n onTagIconClick={this.handleRemoveTag}\n onTagClick={this.handleTagClick}\n onShowMoreTags={this.handlerShowMoreItems}\n onTagKeydown={this.handleKeyDownTag}\n tokenizer-expanded={this.tokenizerExpanded}\n _skip-more-button-focus>\n {this.selectedItems\n .filter(item => !item.isGroup)\n .map((item, index) => (\n item.label ? (\n <UDExTag\n key={index}\n text={cleanLabel(item.label)}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n ) : (\n <UDExTag\n key={index}\n text={`${item.rating} ${this.startsText}`}\n id={item._id}\n icon=\"decline\">\n </UDExTag>\n )\n ))\n }\n </UDExTagGroup>\n );\n}\n\nfunction renderTruncatableTagContent(this: UDExSelectBox) {\n return (\n <div class=\"udex-truncatable-tag-content\">\n <span class=\"udex-truncatable-tag-content__label\">{this.truncatableTagLabel}</span>\n <UI5Icon\n onClick={this.handleRemoveTruncatableTag}\n class=\"udex-truncatable-tag-content__icon\"\n mode=\"Decorative\"\n name=\"decline\">\n </UI5Icon>\n </div>\n );\n}\n"]}
@@ -180,7 +180,7 @@ declare class UDExTextField extends UI5Element {
180
180
  * @default ""
181
181
  * @private
182
182
  */
183
- showButtonTooltip: string;
183
+ buttonTooltip: string;
184
184
  /**
185
185
  * Defines the inner stored class of the label.
186
186
  *
package/dist/TextField.js CHANGED
@@ -77,7 +77,7 @@ let UDExTextField = UDExTextField_1 = class UDExTextField extends UI5Element {
77
77
  * @default ""
78
78
  * @private
79
79
  */
80
- this.showButtonTooltip = "";
80
+ this.buttonTooltip = "";
81
81
  /**
82
82
  * Defines the inner stored class of the label.
83
83
  *
@@ -275,7 +275,7 @@ __decorate([
275
275
  ], UDExTextField.prototype, "autocomplete", void 0);
276
276
  __decorate([
277
277
  property({ type: String })
278
- ], UDExTextField.prototype, "showButtonTooltip", void 0);
278
+ ], UDExTextField.prototype, "buttonTooltip", void 0);
279
279
  __decorate([
280
280
  property({ type: String, noAttribute: true })
281
281
  ], UDExTextField.prototype, "labelActiveClass", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n VALUE_STATE_SUCCESS, VALUE_STATE_WARNING, VALUE_STATE_ERROR, READ_ONLY,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExValueState, { valueStateToControlButtonDesign } from \"./types/common.js\";\nimport type UDExControlButtonDesign from \"./types/ControlButtonDesign.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport TextFieldTemplate from \"./TextFieldTemplate.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\n\nexport type AccInfo = {\n ariaInvalid?: string;\n ariaDescribedBy?: string;\n ariaLabelledBy?: string;\n ariaLabel?: string;\n ariaHasPopup?: string,\n}\n\ntype UDExTextFieldKeydownEventDetail = {\n keyboardEvent: KeyboardEvent;\n}\n\ntype UDExTextFieldChangeEventDetail = {\n originalEvent: Event,\n}\n\ntype UDExTextFieldBlurEventDetail = {\n originalEvent: FocusEvent,\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-field\n * @public\n */\n@customElement({\n tag: \"udex-text-field\",\n renderer: jsxRenderer,\n styles: TextFieldCss,\n template: TextFieldTemplate,\n dependencies: [UDExControlButton, Icon, UDExStatusMessage],\n})\n\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @public\n */\n@event(\"input\", { bubbles: true })\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @public\n */\n@event(\"change\", { bubbles: true })\n/**\n * Fired on input focusout.\n *\n * @public\n */\n@event(\"blur\", { bubbles: true })\n/**\n * Fired event when the user clicks the icon.\n *\n * @private\n */\n@event(\"click-icon\", { bubbles: true })\n\n/**\n * Fired event when the key is pressed in the input.\n *\n * @private\n * @param {KeyboardEvent} keyboardEvent The native keyboard event.\n */\n@event(\"keydown\", { bubbles: true })\nclass UDExTextField extends UI5Element {\n eventDetails!: {\n \"keydown\": UDExTextFieldKeydownEventDetail,\n \"input\": void,\n \"change\": UDExTextFieldChangeEventDetail,\n \"blur\": UDExTextFieldBlurEventDetail,\n \"click-icon\": void,\n };\n _labelActiveClassName = \"udex-text-field__label_active\";\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Sets the maximum number of characters available in the input field.\n * <br><br>\n * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n *\n * @public\n */\n @property({ type: Number })\n maxlength?: number;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the name of the input element.\n *\n * @default \"\"\n * @public\n */\n @property()\n name!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines the ref of the input element.\n *\n * @default undefined\n * @public\n */\n @property()\n fieldRef?: ((el: HTMLInputElement | null) => void) | { current: HTMLInputElement | null };\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleIconName: string = \"\";\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines the icon name in the text-field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the text-field is active\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Defines if dropdown associated with text-field trigger has opened dropdown. It indicates active state of control button.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n iconActive!: boolean;\n\n /**\n * Defines the behaviour of autocomplete.\n * @default \"off\"\n * @public\n */\n @property({ type: String })\n autocomplete: string = \"off\";\n\n /**\n * Defines the inner stored show password button tooltip.\n *\n * @default \"\"\n * @private\n */\n\n @property({ type: String })\n showButtonTooltip: string = \"\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the type of inner input field.\n * Note: Only URL and Email types can be used within this property. For other types, user should use dedicated UDEx component.\n * There is no custom logic on UDEx component side. Property is used only to pass it directly to html input element.\n *\n * @default \"Text\"\n * @public\n */\n @property({ type: String })\n type: \"Text\" | \"Email\" | \"Number\" | \"Password\" | \"Tel\" | \"URL\" | \"Search\" = \"Text\";\n\n /**\n * Defines direction of the input.\n *\n * @public\n */\n @property({ type: String, noAttribute: true })\n direction?: string;\n\n /**\n * Defines the max value for the \"number\" type of the input.\n */\n @property({ type: Number })\n max?: number;\n\n /**\n * Defines the min value for the \"number\" type of the input.\n */\n @property({ type: Number })\n min?: number;\n\n /**\n * Defines the step for the \"number\" type of the input.\n * @default undefined\n */\n @property({ type: Number })\n step?: number;\n\n /**\n * Allows setting the aria-describedby property on the internal input node.\n *\n * @default \"\"\n * @public\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Defines the aria-haspopup attribute of the input.\n * @private\n */\n @property({ type: String })\n _ariaHasPopup?: string;\n\n /**\n * Defines is it the touch of the input field (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n /**\n * Determines Combobox role for the button.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isComboboxRole?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering(): void {\n if ((this.value || this.active) && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n } else if (!this.active && !this.value && this.labelActiveClass.length) {\n this.labelActiveClass = \"\";\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-text-field__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering(): void {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this.direction = \"ltr\";\n } else {\n this.direction = directionStyles;\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"keydown\", { keyboardEvent: e });\n }\n\n handleChange = (e: Event): void => {\n this.fireDecoratorEvent(\"change\", { originalEvent: e });\n };\n\n handleInput = (inputEvent: InputEvent) => {\n this.value = (inputEvent.target as HTMLInputElement)?.value;\n this.fireDecoratorEvent(\"input\");\n };\n\n handleClick = (): void => {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n };\n\n handleFocus = (): void => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.labelActiveClass = this._labelActiveClassName;\n this.active = true;\n }\n };\n\n handleBlur = (e: FocusEvent): void => {\n this.fireDecoratorEvent(\"blur\", { originalEvent: e });\n this.active = false;\n\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this._isTouched = false;\n };\n\n handleIconClick(): void {\n this.fireDecoratorEvent(\"click-icon\");\n }\n\n get _inputHolder(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__wrap\")!;\n }\n\n get valueStateTypeMappings(): Record<string, string> {\n return {\n \"Success\": translate(UDExTextField, VALUE_STATE_SUCCESS),\n \"Standard\": \"\",\n \"Error\": translate(UDExTextField, VALUE_STATE_ERROR),\n \"Warning\": translate(UDExTextField, VALUE_STATE_WARNING),\n };\n }\n\n get hasValueState(): boolean {\n return this.valueState !== UDExValueState.Standard;\n }\n\n get valueStateText(): string {\n return this.valueState !== UDExValueState.Standard ? this.valueStateTypeMappings[this.valueState] : \"\";\n }\n\n get readOnlyStateText(): string {\n return translate(UDExTextField, READ_ONLY);\n }\n\n get ariaDescribedById(): string {\n return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();\n }\n\n get supportingTextId(): string {\n return this.supportingText ? `${this._id}-supportingTextDesc` : \"\";\n }\n\n get valueStateTextId(): string {\n return this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n }\n\n get readOnlyStateTextId(): string {\n return this.readonly ? `${this._id}-stateReadOnlyDesc` : \"\";\n }\n\n get accInfo(): AccInfo {\n return {\n \"ariaInvalid\": this.valueState === UDExValueState.Error ? \"true\" : undefined,\n \"ariaDescribedBy\": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || undefined,\n \"ariaHasPopup\": this._ariaHasPopup || undefined,\n };\n }\n\n get inputRole(): string | undefined {\n return this.isAutoCompleteDisabled ? \"presentation\" : undefined;\n }\n\n get isAutoCompleteDisabled(): boolean {\n return this.autocomplete === \"off\" || this.autocomplete === \"new-password\";\n }\n\n get readonlyNotDisabled(): boolean {\n return this.isInputReadonly && !this.disabled;\n }\n\n get buttonAccessibleName(): string {\n return this._isComboboxRole ? this.label : this.accessibleIconName || this.icon;\n }\n\n get buttonAccessibleDescription(): string {\n const label = this._isComboboxRole ? this.value : \"\";\n return `${label} ${this.supportingText || \"\"} ${this.valueStateText}`;\n }\n\n get controlButtonDesign(): UDExControlButtonDesign {\n return valueStateToControlButtonDesign[this.valueState];\n }\n}\n\nUDExTextField.define();\n\nexport default UDExTextField;\nexport type { UDExTextFieldKeydownEventDetail, UDExTextFieldChangeEventDetail, UDExTextFieldBlurEventDetail };\n"]}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../src/TextField.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getAllAccessibleNameRefTexts } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport {\n VALUE_STATE_SUCCESS, VALUE_STATE_WARNING, VALUE_STATE_ERROR, READ_ONLY,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExValueState, { valueStateToControlButtonDesign } from \"./types/common.js\";\nimport type UDExControlButtonDesign from \"./types/ControlButtonDesign.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\nimport TextFieldTemplate from \"./TextFieldTemplate.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport TextFieldCss from \"./generated/themes/TextField.css.js\";\n\nexport type AccInfo = {\n ariaInvalid?: string;\n ariaDescribedBy?: string;\n ariaLabelledBy?: string;\n ariaLabel?: string;\n ariaHasPopup?: string,\n}\n\ntype UDExTextFieldKeydownEventDetail = {\n keyboardEvent: KeyboardEvent;\n}\n\ntype UDExTextFieldChangeEventDetail = {\n originalEvent: Event,\n}\n\ntype UDExTextFieldBlurEventDetail = {\n originalEvent: FocusEvent,\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-text-field\n * @public\n */\n@customElement({\n tag: \"udex-text-field\",\n renderer: jsxRenderer,\n styles: TextFieldCss,\n template: TextFieldTemplate,\n dependencies: [UDExControlButton, Icon, UDExStatusMessage],\n})\n\n/**\n * Fired when the value of the component changes at each keystroke.\n *\n * @public\n */\n@event(\"input\", { bubbles: true })\n/**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n *\n * @public\n */\n@event(\"change\", { bubbles: true })\n/**\n * Fired on input focusout.\n *\n * @public\n */\n@event(\"blur\", { bubbles: true })\n/**\n * Fired event when the user clicks the icon.\n *\n * @private\n */\n@event(\"click-icon\", { bubbles: true })\n\n/**\n * Fired event when the key is pressed in the input.\n *\n * @private\n * @param {KeyboardEvent} keyboardEvent The native keyboard event.\n */\n@event(\"keydown\", { bubbles: true })\nclass UDExTextField extends UI5Element {\n eventDetails!: {\n \"keydown\": UDExTextFieldKeydownEventDetail,\n \"input\": void,\n \"change\": UDExTextFieldChangeEventDetail,\n \"blur\": UDExTextFieldBlurEventDetail,\n \"click-icon\": void,\n };\n _labelActiveClassName = \"udex-text-field__label_active\";\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines the value of the component.\n * <br><br>\n * <b>Note:</b> The property is updated upon typing.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value: string = \"\";\n\n /**\n * Sets the maximum number of characters available in the input field.\n * <br><br>\n * <b>Note:</b> This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n *\n * @public\n */\n @property({ type: Number })\n maxlength?: number;\n\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Defines the name of the input element.\n *\n * @default \"\"\n * @public\n */\n @property()\n name!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property()\n accessibleNameRef: string = \"\";\n\n /**\n * Defines the ref of the input element.\n *\n * @default undefined\n * @public\n */\n @property()\n fieldRef?: ((el: HTMLInputElement | null) => void) | { current: HTMLInputElement | null };\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleIconName: string = \"\";\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Defines the value state of the component.\n *\n * @default \"Standard\"\n * @public\n */\n @property()\n valueState: `${UDExValueState}` = UDExValueState.Standard;\n\n /**\n * Defines supporting text under the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n supportingText!: string;\n\n /**\n * Defines the icon name in the text-field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n icon!: string;\n\n /**\n * Defines if the text-field is active\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n active!: boolean;\n\n /**\n * Defines if dropdown associated with text-field trigger has opened dropdown. It indicates active state of control button.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n iconActive!: boolean;\n\n /**\n * Defines the behaviour of autocomplete.\n * @default \"off\"\n * @public\n */\n @property({ type: String })\n autocomplete: string = \"off\";\n\n /**\n * Defines the inner stored show password button tooltip.\n *\n * @default \"\"\n * @private\n */\n\n @property({ type: String })\n buttonTooltip: string = \"\";\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelActiveClass: string = \"\";\n\n /**\n * Defines the inner stored value of the readonly attribute of the input.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n isInputReadonly!: boolean;\n\n /**\n * Defines the inner stored value of the classes of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true })\n labelClasses: string = \"\";\n\n /**\n * Defines the type of inner input field.\n * Note: Only URL and Email types can be used within this property. For other types, user should use dedicated UDEx component.\n * There is no custom logic on UDEx component side. Property is used only to pass it directly to html input element.\n *\n * @default \"Text\"\n * @public\n */\n @property({ type: String })\n type: \"Text\" | \"Email\" | \"Number\" | \"Password\" | \"Tel\" | \"URL\" | \"Search\" = \"Text\";\n\n /**\n * Defines direction of the input.\n *\n * @public\n */\n @property({ type: String, noAttribute: true })\n direction?: string;\n\n /**\n * Defines the max value for the \"number\" type of the input.\n */\n @property({ type: Number })\n max?: number;\n\n /**\n * Defines the min value for the \"number\" type of the input.\n */\n @property({ type: Number })\n min?: number;\n\n /**\n * Defines the step for the \"number\" type of the input.\n * @default undefined\n */\n @property({ type: Number })\n step?: number;\n\n /**\n * Allows setting the aria-describedby property on the internal input node.\n *\n * @default \"\"\n * @public\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Defines the aria-haspopup attribute of the input.\n * @private\n */\n @property({ type: String })\n _ariaHasPopup?: string;\n\n /**\n * Defines is it the touch of the input field (only for mobile devices).\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isTouched!: boolean;\n\n /**\n * Determines Combobox role for the button.\n * @default false\n * @private\n */\n @property({ type: Boolean })\n _isComboboxRole?: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n onBeforeRendering(): void {\n if ((this.value || this.active) && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n } else if (!this.active && !this.value && this.labelActiveClass.length) {\n this.labelActiveClass = \"\";\n }\n\n this.isInputReadonly = this.readonly || this.displayonly;\n\n this.labelClasses = `udex-text-field__label ${this.labelActiveClass}`;\n }\n\n onAfterRendering(): void {\n const directionStyles: string = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n\n if (!directionStyles) {\n this.direction = \"ltr\";\n } else {\n this.direction = directionStyles;\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.fireDecoratorEvent(\"keydown\", { keyboardEvent: e });\n }\n\n handleChange = (e: Event): void => {\n this.fireDecoratorEvent(\"change\", { originalEvent: e });\n };\n\n handleInput = (inputEvent: InputEvent) => {\n this.value = (inputEvent.target as HTMLInputElement)?.value;\n this.fireDecoratorEvent(\"input\");\n };\n\n handleClick = (): void => {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n };\n\n handleFocus = (): void => {\n if (!this.disabled && !this.readonly && !this.displayonly) {\n this.labelActiveClass = this._labelActiveClassName;\n this.active = true;\n }\n };\n\n handleBlur = (e: FocusEvent): void => {\n this.fireDecoratorEvent(\"blur\", { originalEvent: e });\n this.active = false;\n\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n this._isTouched = false;\n };\n\n handleIconClick(): void {\n this.fireDecoratorEvent(\"click-icon\");\n }\n\n get _inputHolder(): HTMLElement {\n return this.shadowRoot!.querySelector<HTMLElement>(\".udex-text-field__wrap\")!;\n }\n\n get valueStateTypeMappings(): Record<string, string> {\n return {\n \"Success\": translate(UDExTextField, VALUE_STATE_SUCCESS),\n \"Standard\": \"\",\n \"Error\": translate(UDExTextField, VALUE_STATE_ERROR),\n \"Warning\": translate(UDExTextField, VALUE_STATE_WARNING),\n };\n }\n\n get hasValueState(): boolean {\n return this.valueState !== UDExValueState.Standard;\n }\n\n get valueStateText(): string {\n return this.valueState !== UDExValueState.Standard ? this.valueStateTypeMappings[this.valueState] : \"\";\n }\n\n get readOnlyStateText(): string {\n return translate(UDExTextField, READ_ONLY);\n }\n\n get ariaDescribedById(): string {\n return `${this.supportingTextId} ${this.valueStateTextId} ${this.readOnlyStateTextId}`.trim();\n }\n\n get supportingTextId(): string {\n return this.supportingText ? `${this._id}-supportingTextDesc` : \"\";\n }\n\n get valueStateTextId(): string {\n return this.hasValueState ? `${this._id}-valueStateDesc` : \"\";\n }\n\n get readOnlyStateTextId(): string {\n return this.readonly ? `${this._id}-stateReadOnlyDesc` : \"\";\n }\n\n get accInfo(): AccInfo {\n return {\n \"ariaInvalid\": this.valueState === UDExValueState.Error ? \"true\" : undefined,\n \"ariaDescribedBy\": this.ariaDescribedBy ? this.ariaDescribedBy : this.ariaDescribedById || undefined,\n \"ariaLabel\": getAllAccessibleNameRefTexts(this) || this.accessibleName || undefined,\n \"ariaHasPopup\": this._ariaHasPopup || undefined,\n };\n }\n\n get inputRole(): string | undefined {\n return this.isAutoCompleteDisabled ? \"presentation\" : undefined;\n }\n\n get isAutoCompleteDisabled(): boolean {\n return this.autocomplete === \"off\" || this.autocomplete === \"new-password\";\n }\n\n get readonlyNotDisabled(): boolean {\n return this.isInputReadonly && !this.disabled;\n }\n\n get buttonAccessibleName(): string {\n return this._isComboboxRole ? this.label : this.accessibleIconName || this.icon;\n }\n\n get buttonAccessibleDescription(): string {\n const label = this._isComboboxRole ? this.value : \"\";\n return `${label} ${this.supportingText || \"\"} ${this.valueStateText}`;\n }\n\n get controlButtonDesign(): UDExControlButtonDesign {\n return valueStateToControlButtonDesign[this.valueState];\n }\n}\n\nUDExTextField.define();\n\nexport default UDExTextField;\nexport type { UDExTextFieldKeydownEventDetail, UDExTextFieldChangeEventDetail, UDExTextFieldBlurEventDetail };\n"]}
@@ -6,7 +6,7 @@ export default function TextFieldTemplate() {
6
6
  const hiddenClass = "hidden-text";
7
7
  return (_jsxs("div", { class: `${rootClass}__container`, children: [this.label &&
8
8
  _jsxs("label", { for: `${this._id}-input`, class: this.labelClasses, part: "label", children: [this.label, this.required && " * "] }), _jsxs("div", { class: `${rootClass}__wrap`, children: [_jsx("input", { id: `${this._id}-input`, class: `${rootClass}__input`, type: this.type, value: this.value, maxlength: this.maxlength, disabled: this.disabled, readonly: this.isInputReadonly, required: this.required, "aria-required": this.required, "aria-readonly": this.isInputReadonly, autocomplete: this.autocomplete, role: this.inputRole, name: this.name, ref: this.fieldRef, "aria-disabled": this.readonlyNotDisabled, "aria-invalid": this.accInfo.ariaInvalid, "aria-describedby": this.accInfo.ariaDescribedBy, "aria-haspopup": this.accInfo.ariaHasPopup, "aria-label": this.accInfo.ariaLabel, part: "textfield-input", min: this.min, max: this.max, step: this.step, onChange: this.handleChange, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onClick: this.handleClick, onKeyDown: this.handleKeydown }), this.icon &&
9
- _jsx(UDExControlButton, { part: "textfield-control-btn", class: `${rootClass}__icon-container`, size: "Large", tooltip: this.showButtonTooltip, active: this.active, disabled: this.disabled, readonly: this.readonly, "non-interactive": this.readonly, design: this.controlButtonDesign, icon: this.icon, "_is-combobox-role": this._isComboboxRole, "accessible-name": this.buttonAccessibleName, "accessible-description": this.buttonAccessibleDescription, onClick: this.handleIconClick })] }), this.supportingText &&
9
+ _jsx(UDExControlButton, { part: "textfield-control-btn", class: `${rootClass}__icon-container`, size: "Large", tooltip: this.buttonTooltip, active: this.active, disabled: this.disabled, readonly: this.readonly, "non-interactive": this.readonly, design: this.controlButtonDesign, icon: this.icon, "_is-combobox-role": this._isComboboxRole, "accessible-name": this.buttonAccessibleName, "accessible-description": this.buttonAccessibleDescription, onClick: this.handleIconClick })] }), this.supportingText &&
10
10
  _jsxs(_Fragment, { children: [_jsx(UDExStatusMessage, { "supporting-text": this.supportingText, "value-state": this.valueState, disabled: this.disabled ? "true" : undefined }), _jsx("span", { id: `${this._id}-supportingTextDesc`, class: hiddenClass, children: this.supportingText })] }), this.hasValueState &&
11
11
  _jsx("span", { id: `${this._id}-valueStateDesc`, class: hiddenClass, children: this.valueStateText }), this.readonly &&
12
12
  _jsx("span", { id: `${this._id}-stateReadOnlyDesc`, class: hiddenClass, children: this.readOnlyStateText })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldTemplate.js","sourceRoot":"","sources":["../src/TextFieldTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type TextField from \"./TextField.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { Booleanish } from \"@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextFieldTemplate(this: TextField) {\n const rootClass = \"udex-text-field\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}__container`}>\n {this.label &&\n <label for={`${this._id}-input`} class={this.labelClasses} part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n }\n <div class={`${rootClass}__wrap`}>\n <input id={`${this._id}-input`} class={`${rootClass}__input`}\n type={this.type}\n value={this.value}\n maxlength={this.maxlength}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n autocomplete={this.autocomplete}\n role={this.inputRole as AriaRole}\n name={this.name}\n ref={this.fieldRef}\n aria-disabled={this.readonlyNotDisabled}\n aria-invalid={this.accInfo.ariaInvalid as Booleanish}\n aria-describedby={this.accInfo.ariaDescribedBy}\n aria-haspopup={this.accInfo.ariaHasPopup as Booleanish}\n aria-label={this.accInfo.ariaLabel}\n part=\"textfield-input\"\n min={this.min}\n max={this.max}\n step={this.step}\n onChange={this.handleChange}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown} />\n {this.icon &&\n <UDExControlButton\n part=\"textfield-control-btn\"\n class={`${rootClass}__icon-container`}\n size=\"Large\"\n tooltip={this.showButtonTooltip}\n active={this.active}\n disabled={this.disabled}\n readonly={this.readonly}\n non-interactive={this.readonly}\n design={this.controlButtonDesign}\n icon={this.icon}\n _is-combobox-role={this._isComboboxRole}\n accessible-name={this.buttonAccessibleName}\n accessible-description={this.buttonAccessibleDescription}\n onClick={this.handleIconClick}>\n </UDExControlButton>\n }\n </div>\n {this.supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this.supportingText}\n value-state={this.valueState}\n disabled={this.disabled ? \"true\" : undefined}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this.supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.valueStateText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-stateReadOnlyDesc`} class={hiddenClass}>\n {this.readOnlyStateText}\n </span>\n }\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"TextFieldTemplate.js","sourceRoot":"","sources":["../src/TextFieldTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type TextField from \"./TextField.js\";\nimport type { AriaRole } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type { Booleanish } from \"@ui5/webcomponents-base/dist/thirdparty/preact/jsx.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExStatusMessage from \"./StatusMessage.js\";\n\nexport default function TextFieldTemplate(this: TextField) {\n const rootClass = \"udex-text-field\";\n const hiddenClass = \"hidden-text\";\n\n return (\n <div class={`${rootClass}__container`}>\n {this.label &&\n <label for={`${this._id}-input`} class={this.labelClasses} part=\"label\">\n {this.label}{this.required && \" * \"}\n </label>\n }\n <div class={`${rootClass}__wrap`}>\n <input id={`${this._id}-input`} class={`${rootClass}__input`}\n type={this.type}\n value={this.value}\n maxlength={this.maxlength}\n disabled={this.disabled}\n readonly={this.isInputReadonly}\n required={this.required}\n aria-required={this.required}\n aria-readonly={this.isInputReadonly}\n autocomplete={this.autocomplete}\n role={this.inputRole as AriaRole}\n name={this.name}\n ref={this.fieldRef}\n aria-disabled={this.readonlyNotDisabled}\n aria-invalid={this.accInfo.ariaInvalid as Booleanish}\n aria-describedby={this.accInfo.ariaDescribedBy}\n aria-haspopup={this.accInfo.ariaHasPopup as Booleanish}\n aria-label={this.accInfo.ariaLabel}\n part=\"textfield-input\"\n min={this.min}\n max={this.max}\n step={this.step}\n onChange={this.handleChange}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onClick={this.handleClick}\n onKeyDown={this.handleKeydown} />\n {this.icon &&\n <UDExControlButton\n part=\"textfield-control-btn\"\n class={`${rootClass}__icon-container`}\n size=\"Large\"\n tooltip={this.buttonTooltip}\n active={this.active}\n disabled={this.disabled}\n readonly={this.readonly}\n non-interactive={this.readonly}\n design={this.controlButtonDesign}\n icon={this.icon}\n _is-combobox-role={this._isComboboxRole}\n accessible-name={this.buttonAccessibleName}\n accessible-description={this.buttonAccessibleDescription}\n onClick={this.handleIconClick}>\n </UDExControlButton>\n }\n </div>\n {this.supportingText &&\n <>\n <UDExStatusMessage\n supporting-text={this.supportingText}\n value-state={this.valueState}\n disabled={this.disabled ? \"true\" : undefined}>\n </UDExStatusMessage>\n <span id={`${this._id}-supportingTextDesc`} class={hiddenClass}>\n {this.supportingText}\n </span>\n </>\n }\n {this.hasValueState &&\n <span id={`${this._id}-valueStateDesc`} class={hiddenClass}>\n {this.valueStateText}\n </span>\n }\n {this.readonly &&\n <span id={`${this._id}-stateReadOnlyDesc`} class={hiddenClass}>\n {this.readOnlyStateText}\n </span>\n }\n </div>\n );\n}\n"]}