@sapudex/web-components 0.230.3 → 0.231.1

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 (279) hide show
  1. package/dist/Accordion.d.ts +7 -5
  2. package/dist/Accordion.js +22 -16
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionItem.js +7 -0
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/CountrySelector.d.ts +1 -1
  7. package/dist/CountrySelector.js +6 -7
  8. package/dist/CountrySelector.js.map +1 -1
  9. package/dist/MastheadCountrySelector.d.ts +6 -0
  10. package/dist/MastheadCountrySelector.js +17 -2
  11. package/dist/MastheadCountrySelector.js.map +1 -1
  12. package/dist/MastheadItem.d.ts +3 -0
  13. package/dist/MastheadItem.js +25 -1
  14. package/dist/MastheadItem.js.map +1 -1
  15. package/dist/MastheadMenu.d.ts +3 -1
  16. package/dist/MastheadMenu.js +26 -14
  17. package/dist/MastheadMenu.js.map +1 -1
  18. package/dist/MastheadMobileMenu.d.ts +4 -0
  19. package/dist/MastheadMobileMenu.js +61 -8
  20. package/dist/MastheadMobileMenu.js.map +1 -1
  21. package/dist/MastheadShell.d.ts +17 -0
  22. package/dist/MastheadShell.js +57 -13
  23. package/dist/MastheadShell.js.map +1 -1
  24. package/dist/Search.js +3 -3
  25. package/dist/Search.js.map +1 -1
  26. package/dist/SearchableListBase.d.ts +4 -0
  27. package/dist/SearchableListBase.js +21 -2
  28. package/dist/SearchableListBase.js.map +1 -1
  29. package/dist/assets/{bundle.esm-6dbe4d40.js → bundle.esm-7a799a95.js} +194 -194
  30. package/dist/assets/messagebundle_ar-4acbb276.js +1 -0
  31. package/dist/assets/messagebundle_bg-76df681f.js +1 -0
  32. package/dist/assets/messagebundle_cs-5488afab.js +1 -0
  33. package/dist/assets/messagebundle_da-7b8fee05.js +1 -0
  34. package/dist/assets/messagebundle_de-6c3b79cd.js +1 -0
  35. package/dist/assets/messagebundle_el-6f926401.js +1 -0
  36. package/dist/assets/messagebundle_en-4b95b93e.js +1 -0
  37. package/dist/assets/messagebundle_es-b32ec403.js +1 -0
  38. package/dist/assets/messagebundle_et-bac74fdc.js +1 -0
  39. package/dist/assets/messagebundle_fi-3485fac7.js +1 -0
  40. package/dist/assets/messagebundle_fr-4fea234b.js +1 -0
  41. package/dist/assets/messagebundle_hr-455c228f.js +1 -0
  42. package/dist/assets/messagebundle_hu-a8d556d9.js +1 -0
  43. package/dist/assets/messagebundle_it-014d7d0c.js +1 -0
  44. package/dist/assets/messagebundle_iw-630f53fd.js +1 -0
  45. package/dist/assets/messagebundle_ko-fd7c94a4.js +1 -0
  46. package/dist/assets/messagebundle_lt-93f8402d.js +1 -0
  47. package/dist/assets/messagebundle_lv-db65919a.js +1 -0
  48. package/dist/assets/messagebundle_nl-08fb0493.js +1 -0
  49. package/dist/assets/messagebundle_no-af05c854.js +1 -0
  50. package/dist/assets/messagebundle_pl-f65552a3.js +1 -0
  51. package/dist/assets/messagebundle_pt-c00237ba.js +1 -0
  52. package/dist/assets/messagebundle_ro-8387820d.js +1 -0
  53. package/dist/assets/messagebundle_ru-8aaf2b34.js +1 -0
  54. package/dist/assets/messagebundle_sk-bccab7cc.js +1 -0
  55. package/dist/assets/messagebundle_sl-9f2d28b6.js +1 -0
  56. package/dist/assets/messagebundle_sr-58be5960.js +1 -0
  57. package/dist/assets/messagebundle_sv-a0fbe175.js +1 -0
  58. package/dist/assets/messagebundle_tr-64ad7959.js +1 -0
  59. package/dist/assets/messagebundle_uk-7c63d422.js +1 -0
  60. package/dist/assets/messagebundle_zh_CN-6234699a.js +1 -0
  61. package/dist/assets/messagebundle_zh_TW-62cc17d9.js +1 -0
  62. package/dist/css/themes/CountrySelector.css +1 -1
  63. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  64. package/dist/css/themes/MastheadItem.css +1 -1
  65. package/dist/css/themes/MastheadMenuItem.css +1 -1
  66. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  67. package/dist/css/themes/MastheadShell.css +1 -1
  68. package/dist/css/themes/RatingIndicator.css +1 -1
  69. package/dist/css/themes/SearchableList.css +1 -1
  70. package/dist/css/themes/Slider.css +1 -1
  71. package/dist/custom-elements-internal.json +23 -15
  72. package/dist/custom-elements.json +22 -15
  73. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  78. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  80. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  81. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  82. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  83. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  84. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  85. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  86. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  87. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  105. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  106. package/dist/generated/i18n/i18n-defaults.js +2 -1
  107. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  108. package/dist/generated/templates/AccordionTemplate.lit.js +1 -1
  109. package/dist/generated/templates/AccordionTemplate.lit.js.map +1 -1
  110. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
  111. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  112. package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
  113. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  114. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +11 -11
  115. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  116. package/dist/generated/templates/MastheadShellTemplate.lit.js +1 -1
  117. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  118. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
  119. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  120. package/dist/generated/themes/CountrySelector.css.js +1 -1
  121. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  122. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  123. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  124. package/dist/generated/themes/MastheadItem.css.js +1 -1
  125. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  126. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  127. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  128. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  129. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  130. package/dist/generated/themes/MastheadShell.css.js +1 -1
  131. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  132. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  133. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  134. package/dist/generated/themes/SearchableList.css.js +1 -1
  135. package/dist/generated/themes/SearchableList.css.js.map +1 -1
  136. package/dist/generated/themes/Slider.css.js +1 -1
  137. package/dist/generated/themes/Slider.css.js.map +1 -1
  138. package/dist/i18n/messagebundle.properties +3 -0
  139. package/dist/i18n/messagebundle_ar.properties +3 -0
  140. package/dist/i18n/messagebundle_bg.properties +3 -0
  141. package/dist/i18n/messagebundle_cs.properties +3 -0
  142. package/dist/i18n/messagebundle_da.properties +3 -0
  143. package/dist/i18n/messagebundle_de.properties +3 -0
  144. package/dist/i18n/messagebundle_el.properties +3 -0
  145. package/dist/i18n/messagebundle_en.properties +1 -0
  146. package/dist/i18n/messagebundle_es.properties +3 -0
  147. package/dist/i18n/messagebundle_et.properties +3 -0
  148. package/dist/i18n/messagebundle_fi.properties +3 -0
  149. package/dist/i18n/messagebundle_fr.properties +3 -0
  150. package/dist/i18n/messagebundle_hr.properties +3 -0
  151. package/dist/i18n/messagebundle_hu.properties +3 -0
  152. package/dist/i18n/messagebundle_it.properties +3 -0
  153. package/dist/i18n/messagebundle_iw.properties +3 -1
  154. package/dist/i18n/messagebundle_ko.properties +3 -0
  155. package/dist/i18n/messagebundle_lt.properties +3 -0
  156. package/dist/i18n/messagebundle_lv.properties +3 -0
  157. package/dist/i18n/messagebundle_nl.properties +3 -0
  158. package/dist/i18n/messagebundle_no.properties +3 -0
  159. package/dist/i18n/messagebundle_pl.properties +3 -0
  160. package/dist/i18n/messagebundle_pt.properties +3 -0
  161. package/dist/i18n/messagebundle_pt_BR.properties +3 -0
  162. package/dist/i18n/messagebundle_ro.properties +3 -0
  163. package/dist/i18n/messagebundle_ru.properties +3 -0
  164. package/dist/i18n/messagebundle_sk.properties +3 -0
  165. package/dist/i18n/messagebundle_sl.properties +3 -0
  166. package/dist/i18n/messagebundle_sr.properties +3 -1
  167. package/dist/i18n/messagebundle_sv.properties +3 -0
  168. package/dist/i18n/messagebundle_tr.properties +3 -0
  169. package/dist/i18n/messagebundle_uk.properties +3 -0
  170. package/dist/i18n/messagebundle_zh_CN.properties +3 -1
  171. package/dist/i18n/messagebundle_zh_TW.properties +3 -0
  172. package/dist/vscode.html-custom-data.json +1 -1
  173. package/dist/web-types.json +10 -2
  174. package/package.json +1 -1
  175. package/src/Accordion.hbs +1 -0
  176. package/src/Accordion.ts +26 -18
  177. package/src/AccordionItem.ts +19 -6
  178. package/src/CountrySelector.ts +8 -9
  179. package/src/MastheadCountrySelector.hbs +5 -9
  180. package/src/MastheadCountrySelector.ts +22 -0
  181. package/src/MastheadItem.ts +32 -1
  182. package/src/MastheadMenu.hbs +3 -3
  183. package/src/MastheadMenu.ts +35 -15
  184. package/src/MastheadMobileMenu.hbs +12 -1
  185. package/src/MastheadMobileMenu.ts +68 -9
  186. package/src/MastheadShell.hbs +5 -5
  187. package/src/MastheadShell.ts +68 -14
  188. package/src/Search.ts +3 -3
  189. package/src/SearchableListBase.hbs +6 -0
  190. package/src/SearchableListBase.ts +25 -2
  191. package/src/generated/i18n/i18n-defaults.ts +2 -2
  192. package/src/generated/templates/AccordionTemplate.lit.ts +1 -1
  193. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
  194. package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
  195. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +11 -11
  196. package/src/generated/templates/MastheadShellTemplate.lit.ts +1 -1
  197. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
  198. package/src/generated/themes/CountrySelector.css.ts +1 -1
  199. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  200. package/src/generated/themes/MastheadItem.css.ts +1 -1
  201. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  202. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  203. package/src/generated/themes/MastheadShell.css.ts +1 -1
  204. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  205. package/src/generated/themes/SearchableList.css.ts +1 -1
  206. package/src/generated/themes/Slider.css.ts +1 -1
  207. package/src/i18n/messagebundle.properties +3 -0
  208. package/src/i18n/messagebundle_ar.properties +3 -0
  209. package/src/i18n/messagebundle_bg.properties +3 -0
  210. package/src/i18n/messagebundle_cs.properties +3 -0
  211. package/src/i18n/messagebundle_da.properties +3 -0
  212. package/src/i18n/messagebundle_de.properties +3 -0
  213. package/src/i18n/messagebundle_el.properties +3 -0
  214. package/src/i18n/messagebundle_en.properties +1 -0
  215. package/src/i18n/messagebundle_es.properties +3 -0
  216. package/src/i18n/messagebundle_et.properties +3 -0
  217. package/src/i18n/messagebundle_fi.properties +3 -0
  218. package/src/i18n/messagebundle_fr.properties +3 -0
  219. package/src/i18n/messagebundle_hr.properties +3 -0
  220. package/src/i18n/messagebundle_hu.properties +3 -0
  221. package/src/i18n/messagebundle_it.properties +3 -0
  222. package/src/i18n/messagebundle_iw.properties +3 -1
  223. package/src/i18n/messagebundle_ko.properties +3 -0
  224. package/src/i18n/messagebundle_lt.properties +3 -0
  225. package/src/i18n/messagebundle_lv.properties +3 -0
  226. package/src/i18n/messagebundle_nl.properties +3 -0
  227. package/src/i18n/messagebundle_no.properties +3 -0
  228. package/src/i18n/messagebundle_pl.properties +3 -0
  229. package/src/i18n/messagebundle_pt.properties +3 -0
  230. package/src/i18n/messagebundle_pt_BR.properties +3 -0
  231. package/src/i18n/messagebundle_ro.properties +3 -0
  232. package/src/i18n/messagebundle_ru.properties +3 -0
  233. package/src/i18n/messagebundle_sk.properties +3 -0
  234. package/src/i18n/messagebundle_sl.properties +3 -0
  235. package/src/i18n/messagebundle_sr.properties +3 -1
  236. package/src/i18n/messagebundle_sv.properties +3 -0
  237. package/src/i18n/messagebundle_tr.properties +3 -0
  238. package/src/i18n/messagebundle_uk.properties +3 -0
  239. package/src/i18n/messagebundle_zh_CN.properties +3 -1
  240. package/src/i18n/messagebundle_zh_TW.properties +3 -0
  241. package/src/themes/CountrySelector.css +11 -0
  242. package/src/themes/MastheadCountrySelector.css +11 -0
  243. package/src/themes/MastheadItem.css +6 -2
  244. package/src/themes/MastheadMenuItem.css +5 -0
  245. package/src/themes/MastheadMobileMenu.css +1 -0
  246. package/src/themes/MastheadShell.css +10 -5
  247. package/src/themes/SearchableList.css +11 -0
  248. package/dist/assets/messagebundle_ar-bb470511.js +0 -1
  249. package/dist/assets/messagebundle_bg-a533dfab.js +0 -1
  250. package/dist/assets/messagebundle_cs-c70a7f36.js +0 -1
  251. package/dist/assets/messagebundle_da-e292cac5.js +0 -1
  252. package/dist/assets/messagebundle_de-5c108de6.js +0 -1
  253. package/dist/assets/messagebundle_el-44746e0b.js +0 -1
  254. package/dist/assets/messagebundle_en-d0c2d2d4.js +0 -1
  255. package/dist/assets/messagebundle_es-c0c1060f.js +0 -1
  256. package/dist/assets/messagebundle_et-a5f15d3b.js +0 -1
  257. package/dist/assets/messagebundle_fi-f4b8eb82.js +0 -1
  258. package/dist/assets/messagebundle_fr-af18ac46.js +0 -1
  259. package/dist/assets/messagebundle_hr-d893e46d.js +0 -1
  260. package/dist/assets/messagebundle_hu-230c58c9.js +0 -1
  261. package/dist/assets/messagebundle_it-5bf1436c.js +0 -1
  262. package/dist/assets/messagebundle_iw-dd60afc4.js +0 -1
  263. package/dist/assets/messagebundle_ko-c450bda3.js +0 -1
  264. package/dist/assets/messagebundle_lt-87ab0529.js +0 -1
  265. package/dist/assets/messagebundle_lv-fc413852.js +0 -1
  266. package/dist/assets/messagebundle_nl-34d7e236.js +0 -1
  267. package/dist/assets/messagebundle_no-f22648fb.js +0 -1
  268. package/dist/assets/messagebundle_pl-10303f09.js +0 -1
  269. package/dist/assets/messagebundle_pt-b7a40c67.js +0 -1
  270. package/dist/assets/messagebundle_ro-94628623.js +0 -1
  271. package/dist/assets/messagebundle_ru-1f6595ba.js +0 -1
  272. package/dist/assets/messagebundle_sk-89eabac1.js +0 -1
  273. package/dist/assets/messagebundle_sl-d56532f1.js +0 -1
  274. package/dist/assets/messagebundle_sr-cf7f3b32.js +0 -1
  275. package/dist/assets/messagebundle_sv-3a3b20d3.js +0 -1
  276. package/dist/assets/messagebundle_tr-33b16d09.js +0 -1
  277. package/dist/assets/messagebundle_uk-82e1f2c1.js +0 -1
  278. package/dist/assets/messagebundle_zh_CN-15ca05aa.js +0 -1
  279. package/dist/assets/messagebundle_zh_TW-ad6445e7.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport {\n isEnter,\n isTabNext,\n isTabPrevious,\n isUp,\n isDown,\n isEscape,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport List from \"./List.js\";\nimport ControlButton from \"./ControlButton.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/microphone.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport debounce from \"./utils/debounce.js\";\nimport {\n SUGGESTED_TEXT,\n RECOMMENDED_TEXT,\n AVAILABLE_VALUES,\n NO_MATCHES_FOUND,\n ACCESSIBLE_NAME_RESET_ICON,\n ACCESSIBLE_NAME_SEARCH_ICON,\n TOOLTIP_RESET_BUTTON,\n TOOLTIP_VOICE_BUTTON,\n LISTENING,\n OF,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type SearchInputSuggestion from \"./features/SearchSuggestionsPopover.js\";\n\nimport SearchTemplate from \"./generated/templates/SearchTemplate.lit.js\";\nimport SearchSuggestionsTemplate from \"./generated/templates/SearchSuggestionsTemplate.lit.js\";\n\n// Styles\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchSuggestionsCss from \"./generated/themes/SearchSuggestions.css.js\";\nimport retryUntilSuccessful from \"./utils/retryUntilSuccessful.js\";\n\nconst SearchIcon: string = \"sap-icon://search\";\n\nconst SuggestionsPopoverId: string = \"suggestions-popover\";\n\ntype ListItem = {\n label: string;\n icon: string;\n}\n\ntype DataList = Array<ListItem | string>;\n\nexport type SuggestionData = {\n label: string,\n list: DataList\n}\n\nexport type RecommendData = {\n label: string,\n list: DataList\n}\n\ntype SuggestionRecommendLists = {\n suggested: SuggestionData | DataList,\n recommended: RecommendData | DataList\n}\n\nexport type SuggestionList = {\n handleSelectItem: () => void,\n text: string,\n icon: string,\n title: string,\n hasCustomIcon: boolean,\n id: string\n suggestionDescription: string;\n}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\nexport type PopoverPlacement = \"Bottom\" | \"Top\";\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-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Search.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-search\n * @public\n */\n@customElement({\n tag: \"udex-search\",\n renderer: litRender,\n styles: SearchCss,\n template: SearchTemplate,\n staticAreaStyles: SearchSuggestionsCss,\n staticAreaTemplate: SearchSuggestionsTemplate,\n get dependencies() {\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n return ([ControlButton, Button, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);\n },\n})\n\n/**\n * Fired event when the user submitted the value.\n *\n * @event sap.ui.webc.web-components.UDExSearch#submitSearchValue\n * @public\n */\n@event(\"submit-search-value\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user typed to search field.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleValueSearch\n * @public\n */\n@event(\"handle-value-search\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user clicks on the reset button.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleResetValue\n * @public\n */\n@event(\"handle-value-reset\")\n/**\n * Fired event when the user presses escape in search field.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleCloseSearch\n * @public\n */\n@event(\"handle-close-search\")\n/**\n * Fired event when the user clicks on the item inside the popover.\n *\n * @event sap.ui.webc.web-components.UDExSearch#dropdownItemClick\n * @public\n */\n@event(\"dropdown-item-click\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @event sap.ui.webc.web-components.UDExSearch#prefixItemClick\n * @public\n */\n@event(\"prefix-item-click\", { detail: { item: { type: ListItemBase } } })\nclass UDExSearch extends UI5Element {\n static i18nBundle: any;\n _labelActiveClassName = \"udex-search__label--active\";\n _labelAnimationClassName = \"udex-search__label--animation-enabled\";\n _voiceActiveClassName = \"udex-search__voice-button--active\";\n _focusActiveClassName = \"udex-search__container--focus\";\n _handleResizeBound: ResizeObserverCallback;\n suggestedList!: Array<SuggestionList>;\n recommendedList!: Array<SuggestionList>;\n speechRecognition!: any;\n isNotMozillaFirefox!: boolean;\n isNotMozillaFirefoxIOS!: boolean;\n isFocusedOnTextfield!: boolean;\n Suggestion?: SearchInputSuggestion;\n /**\n * Defines the value of the component.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value!: string;\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 if the label animation is disabled for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n labelAnimationDisabled!: boolean;\n\n /**\n * Defines display the reset button for the search field.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n showResetButton!: boolean;\n\n /**\n * Defines where the SuggestionPopover is currently placed.\n *\n * @default \"Bottom\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"Bottom\" })\n _popoverPlacement!: PopoverPlacement;\n\n /**\n * Defines display the submit button for the search field.\n *\n * @default true\n * @public\n */\n @property({ type: Boolean })\n showSubmitButton!: boolean;\n\n /**\n * Defines non-interactive the submit button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractiveSubmitButton!: boolean;\n\n /**\n * Defines display the voice button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showVoiceButton!: boolean;\n\n /**\n * Defines suggestions and recommended lists for the component.\n * <br><br>\n * <b>Note:</b> Structure of the property:\n * { suggested: [\"string\", string, ...], recommended: [\"string\", \"string\", ...] }\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n suggestionList!: string;\n /**\n * Width of the search component\n * @private\n */\n @property({ validator: Integer })\n _searchWidth?: number;\n\n /**\n * Define the label of the prefix for the dropdown.\n *\n * @private\n */\n @property({ type: String })\n labelPrefix!: string;\n\n /**\n * Defines display the suggestion popover in the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSuggestedPopover!: boolean;\n\n /**\n * Defines the language of voice search.\n *\n * @default \"en-US\"\n * @public\n */\n @property({ type: String, defaultValue: \"en-US\" })\n languageVoice!: string;\n\n /**\n * Defines the mode of component.\n * <br><br>\n * <b>Note:</b> accepts a string \"Standard\" or \"Home Search\".\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: String, defaultValue: Mode.Standard })\n mode!: Mode;\n\n /**\n * Defines open suggestion popover when clicked on the input field.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n showPopoverWhenClickedIntoInput!: boolean;\n\n /**\n * Defines open suggestion popover.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n openSuggestionPopup!: boolean;\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 accessible ARIA name of the reset icon.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n accessibleNameResetIcon!: string;\n\n /**\n * Defines the accessible ARIA name of the search icon (applied just when \"nonInteractiveSubmitButton\" is active).\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n accessibleNameSearchIcon!: string;\n\n /**\n * Defines the tooltip of the clear button.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n tooltipResetButton!: string;\n\n /**\n * Defines the tooltip of the voice button.\n *\n * @default \"Voice\"\n * @public\n */\n @property({ type: String })\n tooltipVoiceButton!: string;\n\n /**\n * Defines the tooltip of the submit button.\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n tooltipSubmitButton!: string;\n\n /**\n * Defines the text if the suggestion list doesn't return results.\n *\n * @default \"No matches found.\"\n * @public\n */\n @property({ type: String, defaultValue: \"No matches found.\" })\n noResultText!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the inner stored animation class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelAnimationClass!: string;\n\n /**\n * Defines the voice active class of the button.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n voiceActiveClass!: string;\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, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the class of focus on the input field.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n focusClasses!: string;\n\n /**\n * Defines the suggestion popover is opened\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n open!: boolean;\n\n /**\n * The label of the suggestion section.\n * @private\n */\n @property({ type: String })\n _suggestionLabel?: string;\n\n /**\n * The label of the recommend section.\n * @private\n */\n @property({ type: String })\n _recommendLabel?: string;\n\n /**\n * The console warning shown after all unsuccessful attempts of opening SearchSuggestionsPopover component.\n * @default \"UdexSearchSuggestionsPopover couldn`t be opened\"\n */\n @property({ type: String, defaultValue: \"UdexSearchSuggestionsPopover couldn`t be opened\" })\n unsuccessfulRetryMessage: string = \"UdexSearchSuggestionsPopover couldn`t be opened\";\n\n /**\n * The delay before retrying to open the SerchSuggestionsPopover component.\n * @default 200\n */\n @property({ type: Number, defaultValue: 200 })\n retryDelay: number = 200;\n\n /**\n * The maximum number of attempts for opening the SearchSuggestionsPopover component.\n * @default 5\n */\n @property({ type: Number, defaultValue: 5 })\n maxRetryAttempts: number = 5;\n\n /**\n * Defines the prefix dropdown of the Search component.\n *\n * @slot dropdownPrefix\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n dropdownPrefix!: Array<List>;\n\n /**\n * Defines the open button icon\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _prefixDropdownExpanded!: boolean;\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\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 constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExSearch.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n onEnterDOM(): void {\n this.isNotMozillaFirefox = !this.isMozillaFirefox(\"Firefox\");\n this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox(\"FxiOS\");\n this.initSpeechRecognition();\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n this.removeEventListener(\"dropdown-trigger-event\", () => { });\n }\n\n initSpeechRecognition(): void {\n try {\n if (this.isNotMozillaFirefox || this.isNotMozillaFirefoxIOS) {\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition || (window as any).mozSpeechRecognition || (window as any).msSpeechRecognition;\n this.speechRecognition = new SpeechRecognition();\n this.speechRecognition.continuous = true;\n this.speechRecognition.lang = this.languageVoice;\n this.speechRecognition.interimResults = false;\n this.speechRecognition.maxAlternatives = 5;\n }\n } catch (error: any) {\n console.warn(\"The voice button does not work in this browser\");\n }\n }\n\n private isMozillaFirefox(keyWord: string) {\n const userAgent = navigator.userAgent;\n const firefoxAgent = userAgent.split(\" \").find(item => item.indexOf(keyWord) > -1);\n\n if (firefoxAgent) {\n const splitAgent = firefoxAgent.split(\"/\");\n const firefoxVersion = splitAgent[splitAgent.length - 1];\n return Number(firefoxVersion) >= 125;\n }\n return false;\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n this.setNewValue(changeInfo);\n this.setPopoverState(changeInfo);\n this.setNewSuggestionList(changeInfo);\n }\n\n setNewValue(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"value\") {\n this.value = changeInfo.newValue as string;\n this.setSuggestedRecommendedLists(this.suggestionList);\n this.toggleLabelActiveClass();\n }\n }\n\n private toggleLabelActiveClass() {\n if (this.labelActiveClass && !this.labelAnimationDisabled && !this.isFocusedOnTextfield) {\n this.handleBlur();\n }\n }\n\n setPopoverState(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"openSuggestionPopup\") {\n this.handlePopoverTrigger(changeInfo.newValue as boolean);\n }\n }\n\n handlePopoverTrigger(isOpenPopover: boolean): void {\n if (isOpenPopover) {\n this.onOpenPopover();\n } else {\n this.onClosePopover();\n }\n }\n\n setNewSuggestionList(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"suggestionList\" && !!changeInfo.newValue) {\n this.setSuggestedRecommendedLists(changeInfo.newValue as string);\n }\n }\n\n setSuggestedRecommendedLists(value: string): void {\n if (this.showSuggestedPopover && value) {\n const parsedData: SuggestionRecommendLists = JSON.parse(value);\n const hasDataLabels = this.hasDataLabel(parsedData);\n\n if (this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.setDropdownLabels(hasDataLabels, parsedData);\n this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), \"suggested\");\n this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), \"recommended\");\n }\n if (!this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.onClosePopover();\n this.resetSuggestedRecommendedLists();\n }\n }\n }\n\n private hasDataLabel(parsedData: SuggestionRecommendLists) {\n return Object.values(parsedData).some(item => Object.prototype.hasOwnProperty.call(item, \"label\"));\n }\n\n private resetSuggestedRecommendedLists() {\n this.suggestedList = [];\n this.recommendedList = [];\n }\n\n private setDropdownLabels(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n this._suggestionLabel = this.getSuggestionLabel(hasDataLabels, parsedData);\n this._recommendLabel = this.getRecommendLabel(hasDataLabels, parsedData);\n }\n\n private getRecommendLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).label || \"\"\n : UDExSearch.i18nBundle.getText(RECOMMENDED_TEXT) as string;\n }\n\n private getSuggestionLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).label || \"\"\n : UDExSearch.i18nBundle.getText(SUGGESTED_TEXT) as string;\n }\n\n private getRecommendedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).list\n : parsedData.recommended as DataList;\n }\n\n private getSuggestedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).list\n : parsedData.suggested as DataList;\n }\n\n private shouldShowPopover(parsedData: SuggestionRecommendLists, hasDataLabels: boolean) {\n const hasSuggestedListContent = this.hasSuggestedContent(hasDataLabels, parsedData);\n const hasRecommendedContent = this.hasRecommendedContent(hasDataLabels, parsedData);\n return this.showPopoverWhenClickedIntoInput || (hasSuggestedListContent || hasRecommendedContent);\n }\n\n private hasSuggestedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.suggested, \"list\") && (parsedData.suggested as SuggestionData).list.length\n : (parsedData.suggested as DataList).length;\n }\n\n private hasRecommendedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.recommended, \"list\") && (parsedData.recommended as RecommendData).list.length\n : (parsedData.recommended as DataList).length;\n }\n\n getListWithSuggestion(suggestedList: DataList, idName: string): Array<SuggestionList> {\n return suggestedList?.map((item, index) => {\n const itemWithCustomIcon = typeof item === \"object\";\n const label = itemWithCustomIcon ? item.label : item;\n return {\n handleSelectItem: this.handleSelectItem(label),\n text: this.getTextWithSuggestion(label),\n title: label,\n icon: itemWithCustomIcon ? item.icon : SearchIcon,\n hasCustomIcon: itemWithCustomIcon,\n id: `${idName}-${index}`,\n suggestionDescription: `${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`,\n };\n });\n }\n\n escapeRegExp(input: string): string {\n const specialChars = /[-[\\]/{}()*+?.\\\\^$|]/g;\n return input.replace(specialChars, \"\\\\$&\");\n }\n\n getTextWithSuggestion(text: string): string {\n const escapedValue = this.escapeRegExp(this.value);\n const search = new RegExp(escapedValue, \"i\");\n return text.replace(search, \"<b>$&</b>\");\n }\n\n handleSelectItem = (itemValue: string) => () => {\n this.value = itemValue;\n this.fireDropdownItemClick(itemValue);\n this.handleSubmitValue();\n };\n\n fireDropdownItemClick(value: string) {\n this.fireEvent(\"dropdown-item-click\", { value });\n }\n\n handleDropdownClick() {\n const dropdown = this.getPrefixPopover();\n\n if (dropdown.opened) {\n this.onClosePrefixPopover();\n } else {\n this.onOpenPrefixPopover();\n }\n }\n\n getPrefixWrapper() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix\") as HTMLElement;\n }\n\n getPrefixPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getPrefixButton() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix-button\") as HTMLElement;\n }\n\n onOpenPrefixPopover() {\n if (this.dropdownPrefix.length) {\n const wrapper = this.getPrefixWrapper();\n const dropdown = this.getPrefixPopover();\n const button = this.getPrefixButton();\n\n this._prefixDropdownExpanded = true;\n dropdown.showAt(this.getPrefixButton());\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n dropdown.classList.add(this.prefixPopoverClasses);\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(this.prefixWrapperClasses);\n this.dropdownPrefix[0].addEventListener(\"item-press\", this.handleItemClick);\n }\n }\n\n handleItemClick = (e: Event) => {\n const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n };\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n this.dropdownPrefix[0].removeEventListener(\"item-press\", this.handleItemClick);\n dropdown.close();\n this._prefixDropdownExpanded = false;\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n wrapper.classList.remove(\"udex-search__prefix--show-popover\", \"udex-search__prefix--show-popover-top\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n }\n\n handleInputClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: Event): void {\n e.stopPropagation();\n this.handleSubmitValue();\n }\n\n handleSubmitValue(): void {\n this.onClosePopover();\n this.fireEvent(\"submit-search-value\", { value: this.value });\n }\n\n handleAriaExpanded() {\n const value = this.open.toString();\n this.getSearchInput()?.setAttribute(\"aria-expanded\", value);\n }\n\n onOpenPopover(): void {\n if (this.showSuggestedPopover) {\n if (!this.Suggestion) {\n retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)\n .then(() => {\n this.Suggestion!.open();\n })\n .catch(error => {\n console.warn(error.message);\n });\n } else {\n this.open = true;\n this.Suggestion.open();\n }\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleAriaExpanded();\n this.open = false;\n }\n }\n\n handleKeyPressSuggestionList(e: KeyboardEvent): void {\n this.Suggestion?.handleKeyPress(e);\n }\n\n get rootClasses(): string {\n if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {\n return this.isSuggestionPopoverTop ? \"udex-search__root--show-popover-top\" : \"udex-search__root--show-popover\";\n }\n return \"\";\n }\n\n onBeforeRendering(): void {\n if (this.showSuggestedPopover) {\n this.enableSuggestions();\n }\n\n if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {\n const dropdownItems = Array.from(this.dropdownPrefix[0].children) as Array<ListItemBase>;\n const selectedItemIndex = dropdownItems.findIndex(listItem => listItem.selected);\n const selectedItemPrefix = selectedItemIndex >= 0 ? dropdownItems[selectedItemIndex] : dropdownItems[0];\n\n this.labelPrefix = selectedItemPrefix.innerText;\n }\n\n this.showResetButton = !!this.value.length;\n\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n if (this.mode === Mode.HomeSearch) {\n this.labelAnimationDisabled = true;\n }\n\n if (!this.labelAnimationDisabled) {\n this.labelAnimationClass = this._labelAnimationClassName;\n }\n\n this.labelClasses = `udex-search__label ${this.labelActiveClass} ${this.labelAnimationClass}`;\n\n if (this.isVoiceButton) {\n this.labelClasses += \" udex-search__label-with-voice-icon\";\n }\n\n if (this.isShowSubmitButton) {\n this.labelClasses += \" udex-search__label-with-search-icon\";\n }\n }\n\n enableSuggestions() {\n if (this.Suggestion) {\n return;\n }\n\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n\n if (Suggestion) {\n this.Suggestion = new Suggestion(this);\n } else {\n throw new Error(\"You have to import '@sapudex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n private _createObserver(popover: Popover, ingoreOpenState: boolean = false): MutationObserver {\n return new MutationObserver(mutationList => {\n mutationList.forEach(mutation => {\n const newValue = popover?.actualPlacementType;\n const oldValue = mutation.oldValue;\n\n if (mutation.attributeName === \"actual-placement-type\" && newValue !== oldValue) {\n this._popoverPlacement = newValue as PopoverPlacement;\n }\n\n if (mutation.attributeName === \"open\" && newValue !== oldValue && !ingoreOpenState) {\n this.open = popover?.open || false;\n }\n });\n });\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\n const prefixPopover = this.getPrefixPopover();\n\n if (this.Suggestion?.popover) {\n const suggestionObserver = this._createObserver(this.Suggestion.popover);\n const popoverNode = this.Suggestion?.popover as Node;\n suggestionObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n this.Suggestion.initLists();\n }\n\n if (prefixPopover) {\n const prefixObserver = this._createObserver(prefixPopover, true);\n const popoverNode = prefixPopover as Node;\n prefixObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n }\n\n this.handleOutsideClick();\n this.handleOpenSuggestionPopover();\n this.setSearchWidth();\n }\n }\n\n async handleOpenSuggestionPopover() {\n if (this.openSuggestionPopup) {\n await this.Suggestion?._getSuggestionPopover().then(() => {\n this.handlePopoverTrigger(this.openSuggestionPopup);\n });\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n const popover = (e.target as HTMLElement).shadowRoot?.querySelector(\"[ui5-popover]\");\n\n if (e.target !== this && popover !== this.Suggestion?.popover) {\n this.handleBlur();\n this.onClosePopover();\n }\n });\n }\n\n handleBlur(): void {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n }\n\n handleSearchChange(e: InputEvent): void {\n this.value = (e.target as HTMLInputElement)?.value;\n this.showResetButton = !!this.value.length;\n this.handleDebounce();\n }\n\n handleDebounce = debounce(() => {\n this.fireEvent(\"handle-value-search\", { value: this.value });\n if (this.showSuggestedPopover && this.value.length >= 2) {\n this.onOpenPopover();\n }\n if (!this.showPopoverWhenClickedIntoInput && this.showSuggestedPopover && this.value.length < 2) {\n this.onClosePopover();\n }\n });\n\n handleKeyDown = (e: KeyboardEvent) => {\n e.stopPropagation();\n this.handleEnterKey(e);\n this.handleTabKey(e);\n this.handleEscapeKey(e);\n this.fireEvent(\"search-keydown\", e);\n };\n\n handleEnterKey(e: KeyboardEvent) {\n if (isEnter(e)) {\n if (!this.open) {\n e.preventDefault();\n } else {\n this.Suggestion?.onEnter(e);\n }\n this.handleSubmitValue();\n }\n }\n\n handleTabKey(e: KeyboardEvent) {\n if (isTabNext(e) && this.open) {\n this.Suggestion?.onTab(e);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (isEscape(e)) {\n if (this.open) {\n this.Suggestion?.onEscape(e);\n }\n this.fireEvent(\"handle-close-search\");\n }\n }\n\n handleKeyDownPopover(e: KeyboardEvent) {\n if (this.open) {\n this.handleTabKeyList(e);\n this.handlePrevTabKeyList(e);\n this.handleDownKeyList(e);\n this.handleUpKeyList(e);\n this.handleEscapeKey(e);\n }\n }\n\n handleTabKeyList(e: KeyboardEvent) {\n if (isTabNext(e)) {\n this.Suggestion?.onKeyTabList(e);\n }\n }\n\n handlePrevTabKeyList(e: KeyboardEvent) {\n if (isTabPrevious(e)) {\n this.Suggestion?.onPrevKeyTabList(e);\n }\n }\n\n handleDownKeyList(e: KeyboardEvent) {\n if (isDown(e)) {\n this.Suggestion?.onKeyDown(e);\n }\n }\n\n handleUpKeyList(e: KeyboardEvent) {\n if (isUp(e)) {\n this.Suggestion?.onKeyUp(e);\n }\n }\n\n handleFocus(): void {\n this.active = true;\n this.isFocusedOnTextfield = true;\n this.focusClasses = this._focusActiveClassName;\n this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : \"\";\n this.labelAnimationClass = !this.labelAnimationDisabled ? this._labelAnimationClassName : \"\";\n }\n\n handleFocusout(): void {\n this.active = false;\n this.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: Event): void {\n e.stopPropagation();\n this.handleReset();\n }\n\n handleReset(): void {\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.fireEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n this.getSearchInput()?.focus();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.handleReset();\n }\n }\n\n private getSearchInput(): HTMLInputElement {\n return this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement;\n }\n\n onVoice(e: Event): void {\n e.stopPropagation();\n if (this.speechRecognition) {\n this.onSpeechLaunch();\n this.onSpeechStart();\n this.onSpeechResult();\n this.onSpeechEnd();\n }\n }\n\n onSpeechLaunch(): void {\n if (!this.voiceActiveClass) {\n this.speechRecognition.start();\n } else {\n this.speechRecognition.stop();\n }\n }\n\n get effectivePlaceholder() {\n return !this.voiceActiveClass ? this.label : `${UDExSearch.i18nBundle.getText(LISTENING)}...`;\n }\n\n onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n this.getSearchInput()?.focus();\n };\n }\n\n onSpeechResult(): void {\n this.speechRecognition.onresult = (e: any) => {\n const last = e.results.length - 1;\n this.value = e.results[last][0].transcript;\n this.speechRecognition.stop();\n };\n }\n\n onSpeechEnd(): void {\n this.speechRecognition.onend = () => {\n this.voiceActiveClass = \"\";\n this.handleSubmitValue();\n this.onShowResetButton();\n };\n }\n\n onShowResetButton(): void {\n if (this.value) {\n this.showResetButton = true;\n }\n }\n\n _handleResize() {\n this.setSearchWidth();\n }\n\n private setSearchWidth() {\n const searchContainer = (this.shadowRoot?.querySelector(\".udex-search__container\") as HTMLElement);\n\n if (searchContainer.offsetWidth !== this._searchWidth) {\n this._searchWidth = searchContainer.offsetWidth;\n }\n }\n\n get popoverStyles() {\n return {\n \"width\": this._searchWidth ? `${this._searchWidth}px` : \"\",\n };\n }\n\n get prefixPopoverStyles() {\n return {\n \"width\": this.getPrefixButton() ? `${this.getPrefixButton().offsetWidth + 1}px` : \"\",\n };\n }\n\n get isShowResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.Standard;\n }\n\n get isShowHomeResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.HomeSearch;\n }\n\n get noResultMessage(): string {\n return this.noResultText || UDExSearch.i18nBundle.getText(NO_MATCHES_FOUND) as string;\n }\n\n get showNoResultMessage(): boolean {\n return !this.suggestedList?.length && !this.recommendedList?.length;\n }\n\n get isShowSuggestedList(): boolean {\n return !!this.suggestedList?.length;\n }\n\n get isShowRecommendedList(): boolean {\n return !!this.recommendedList?.length;\n }\n\n get hasPopoverContent(): boolean {\n return !!(this.suggestedList?.length || this.recommendedList?.length);\n }\n\n get getAriaHasPopup(): string {\n return this.showSuggestedPopover ? \"dialog\" : \"false\";\n }\n\n get getSuggestionsPopoverId(): string {\n return SuggestionsPopoverId;\n }\n\n get isShowSubmitButton(): boolean {\n return this.showSubmitButton;\n }\n\n get suggestedHeading(): string | undefined {\n return this._suggestionLabel;\n }\n\n get recommendedHeading(): string | undefined {\n return this._recommendLabel;\n }\n\n get isSuggestionPopoverTop(): boolean {\n const suggestionPopover = this.Suggestion?.popover;\n return suggestionPopover! && suggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isPrefixSuggestionPopoverTop(): boolean {\n const prefixSuggestionPopover = this.getPrefixPopover();\n return prefixSuggestionPopover && prefixSuggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isShowSearchHomePrefix(): boolean {\n return this.isHomeSearchWithPrefixMode && !!this.dropdownPrefix.length;\n }\n\n get isHomeSearchMode(): boolean {\n return this.mode === Mode.HomeSearch;\n }\n\n get isHomeSearchWithPrefixMode(): boolean {\n return this.mode === Mode.HomeSearch && !!this.dropdownPrefix.length;\n }\n\n get searchClasses(): string {\n return `${this.classWithPrefix} ${this.rootClasses} udex-search-mode-${this.mode.toLowerCase().replace(\" \", \"-\")}`.trim();\n }\n\n get prefixWrapperClasses(): string {\n const prefixPopover = this.getPrefixPopover();\n if (prefixPopover && prefixPopover.open) {\n return this._popoverPlacement === \"Top\" ? \"udex-search__prefix--show-popover-top\" : \"udex-search__prefix--show-popover\";\n }\n return \"\";\n }\n\n get prefixPopoverClasses(): string {\n return this.isPrefixSuggestionPopoverTop ? \"udex-search__prefix-popover-top\" : \"udex-search__prefix-popover\";\n }\n\n get classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n if (this.isHomeSearchMode || this.isHomeSearchWithPrefixMode) {\n return this.isSuggestionPopoverTop ? \"udex-search-suggestions__root-top--home\" : \"udex-search-suggestions__root--home\";\n }\n return \"\";\n }\n\n get homeSearchWithPrefixPopoverClass(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--prefix\" : \"\";\n }\n\n get searchButtonActiveClass(): string {\n return this.isHomeSearchMode && this.open ? \"udex-search__submit-button--active\" : \"\";\n }\n\n get isNotEmptyClass(): string {\n return this.value.length > 2 || this.focusClasses.length ? \" udex-search__container--has-value\" : \"\";\n }\n\n get isVoiceButton(): boolean {\n return this.showVoiceButton && this.isNotMozillaFirefox && this.isNotMozillaFirefoxIOS && this.mode === Mode.HomeSearch;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n \"ariaDescription\": this.open ? this.suggestionsDescription : undefined,\n \"accessibleNameResetIcon\": this.accessibleNameResetIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_RESET_ICON) as string,\n \"accessibleNameSearchIcon\": this.accessibleNameSearchIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON) as string,\n };\n }\n\n get suggestionsDescription(): string {\n return !this.showNoResultMessage ? `${this.suggestedList.length} ${this._suggestionLabel}, ${this.recommendedList.length} ${this._recommendLabel}` : `${this.noResultMessage}`;\n }\n\n get tooltipInfo() {\n return {\n \"tooltipResetButton\": this.tooltipResetButton || UDExSearch.i18nBundle.getText(TOOLTIP_RESET_BUTTON) as string,\n \"tooltipVoiceButton\": this.tooltipVoiceButton || UDExSearch.i18nBundle.getText(TOOLTIP_VOICE_BUTTON) as string,\n \"tooltipSubmitButton\": this.tooltipSubmitButton || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON) as string,\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES) as string;\n }\n\n get showNonInteractiveButton(): boolean {\n return this.showSubmitButton && this.nonInteractiveSubmitButton;\n }\n\n get showSubmitStandardButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.Standard;\n }\n\n get showSubmitHomeButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.HomeSearch;\n }\n}\n\nUDExSearch.define();\n\nexport default UDExSearch;\n"]}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport {\n isEnter,\n isTabNext,\n isTabPrevious,\n isUp,\n isDown,\n isEscape,\n isSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport List from \"./List.js\";\nimport ControlButton from \"./ControlButton.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/microphone.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport debounce from \"./utils/debounce.js\";\nimport {\n SUGGESTED_TEXT,\n RECOMMENDED_TEXT,\n AVAILABLE_VALUES,\n NO_MATCHES_FOUND,\n ACCESSIBLE_NAME_RESET_ICON,\n ACCESSIBLE_NAME_SEARCH_ICON,\n TOOLTIP_RESET_BUTTON,\n TOOLTIP_VOICE_BUTTON,\n LISTENING,\n OF,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport type SearchInputSuggestion from \"./features/SearchSuggestionsPopover.js\";\nimport retryUntilSuccessful from \"./utils/retryUntilSuccessful.js\";\nimport UDExButton from \"./Button.js\";\n\nimport SearchTemplate from \"./generated/templates/SearchTemplate.lit.js\";\nimport SearchSuggestionsTemplate from \"./generated/templates/SearchSuggestionsTemplate.lit.js\";\n\n// Styles\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchSuggestionsCss from \"./generated/themes/SearchSuggestions.css.js\";\n\nconst SearchIcon: string = \"sap-icon://search\";\n\nconst SuggestionsPopoverId: string = \"suggestions-popover\";\n\ntype ListItem = {\n label: string;\n icon: string;\n}\n\ntype DataList = Array<ListItem | string>;\n\nexport type SuggestionData = {\n label: string,\n list: DataList\n}\n\nexport type RecommendData = {\n label: string,\n list: DataList\n}\n\ntype SuggestionRecommendLists = {\n suggested: SuggestionData | DataList,\n recommended: RecommendData | DataList\n}\n\nexport type SuggestionList = {\n handleSelectItem: () => void,\n text: string,\n icon: string,\n title: string,\n hasCustomIcon: boolean,\n id: string\n suggestionDescription: string;\n}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\nexport type PopoverPlacement = \"Bottom\" | \"Top\";\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-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Search.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-search\n * @public\n */\n@customElement({\n tag: \"udex-search\",\n renderer: litRender,\n styles: SearchCss,\n template: SearchTemplate,\n staticAreaStyles: SearchSuggestionsCss,\n staticAreaTemplate: SearchSuggestionsTemplate,\n get dependencies() {\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n return ([ControlButton, UDExButton, Icon, List, Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies] : []);\n },\n})\n\n/**\n * Fired event when the user submitted the value.\n *\n * @event sap.ui.webc.web-components.UDExSearch#submitSearchValue\n * @public\n */\n@event(\"submit-search-value\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user typed to search field.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleValueSearch\n * @public\n */\n@event(\"handle-value-search\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user clicks on the reset button.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleResetValue\n * @public\n */\n@event(\"handle-value-reset\")\n/**\n * Fired event when the user presses escape in search field.\n *\n * @event sap.ui.webc.web-components.UDExSearch#handleCloseSearch\n * @public\n */\n@event(\"handle-close-search\")\n/**\n * Fired event when the user clicks on the item inside the popover.\n *\n * @event sap.ui.webc.web-components.UDExSearch#dropdownItemClick\n * @public\n */\n@event(\"dropdown-item-click\", { detail: { value: { type: String } } })\n/**\n * Fired event when the user clicks on the intem inside the prefix dropdown.\n *\n * @event sap.ui.webc.web-components.UDExSearch#prefixItemClick\n * @public\n */\n@event(\"prefix-item-click\", { detail: { item: { type: ListItemBase } } })\nclass UDExSearch extends UI5Element {\n static i18nBundle: any;\n _labelActiveClassName = \"udex-search__label--active\";\n _labelAnimationClassName = \"udex-search__label--animation-enabled\";\n _voiceActiveClassName = \"udex-search__voice-button--active\";\n _focusActiveClassName = \"udex-search__container--focus\";\n _handleResizeBound: ResizeObserverCallback;\n suggestedList!: Array<SuggestionList>;\n recommendedList!: Array<SuggestionList>;\n speechRecognition!: any;\n isNotMozillaFirefox!: boolean;\n isNotMozillaFirefoxIOS!: boolean;\n isFocusedOnTextfield!: boolean;\n Suggestion?: SearchInputSuggestion;\n /**\n * Defines the value of the component.\n *\n * @default \"\"\n * @formEvents input\n * @formProperty\n * @public\n */\n @property({ type: String })\n value!: string;\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 if the label animation is disabled for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n labelAnimationDisabled!: boolean;\n\n /**\n * Defines display the reset button for the search field.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n showResetButton!: boolean;\n\n /**\n * Defines where the SuggestionPopover is currently placed.\n *\n * @default \"Bottom\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"Bottom\" })\n _popoverPlacement!: PopoverPlacement;\n\n /**\n * Defines display the submit button for the search field.\n *\n * @default true\n * @public\n */\n @property({ type: Boolean })\n showSubmitButton!: boolean;\n\n /**\n * Defines non-interactive the submit button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n nonInteractiveSubmitButton!: boolean;\n\n /**\n * Defines display the voice button for the search field.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showVoiceButton!: boolean;\n\n /**\n * Defines suggestions and recommended lists for the component.\n * <br><br>\n * <b>Note:</b> Structure of the property:\n * { suggested: [\"string\", string, ...], recommended: [\"string\", \"string\", ...] }\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n suggestionList!: string;\n /**\n * Width of the search component\n * @private\n */\n @property({ validator: Integer })\n _searchWidth?: number;\n\n /**\n * Define the label of the prefix for the dropdown.\n *\n * @private\n */\n @property({ type: String })\n labelPrefix!: string;\n\n /**\n * Defines display the suggestion popover in the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSuggestedPopover!: boolean;\n\n /**\n * Defines the language of voice search.\n *\n * @default \"en-US\"\n * @public\n */\n @property({ type: String, defaultValue: \"en-US\" })\n languageVoice!: string;\n\n /**\n * Defines the mode of component.\n * <br><br>\n * <b>Note:</b> accepts a string \"Standard\" or \"Home Search\".\n *\n * @default \"Standard\"\n * @public\n */\n @property({ type: String, defaultValue: Mode.Standard })\n mode!: Mode;\n\n /**\n * Defines open suggestion popover when clicked on the input field.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n showPopoverWhenClickedIntoInput!: boolean;\n\n /**\n * Defines open suggestion popover.\n *\n * @defaultvalue false\n * @public\n */\n @property({ type: Boolean })\n openSuggestionPopup!: boolean;\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 accessible ARIA name of the reset icon.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n accessibleNameResetIcon!: string;\n\n /**\n * Defines the accessible ARIA name of the search icon (applied just when \"nonInteractiveSubmitButton\" is active).\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n accessibleNameSearchIcon!: string;\n\n /**\n * Defines the tooltip of the clear button.\n *\n * @default \"Clear\"\n * @public\n */\n @property({ type: String })\n tooltipResetButton!: string;\n\n /**\n * Defines the tooltip of the voice button.\n *\n * @default \"Voice\"\n * @public\n */\n @property({ type: String })\n tooltipVoiceButton!: string;\n\n /**\n * Defines the tooltip of the submit button.\n *\n * @default \"Search\"\n * @public\n */\n @property({ type: String })\n tooltipSubmitButton!: string;\n\n /**\n * Defines the text if the suggestion list doesn't return results.\n *\n * @default \"No matches found.\"\n * @public\n */\n @property({ type: String, defaultValue: \"No matches found.\" })\n noResultText!: string;\n\n /**\n * Defines the inner stored class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelActiveClass!: string;\n\n /**\n * Defines the inner stored animation class of the label.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n labelAnimationClass!: string;\n\n /**\n * Defines the voice active class of the button.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n voiceActiveClass!: string;\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, defaultValue: \"\" })\n labelClasses!: string;\n\n /**\n * Defines the class of focus on the input field.\n *\n * @default \"\"\n * @private\n */\n @property({ type: String, noAttribute: true, defaultValue: \"\" })\n focusClasses!: string;\n\n /**\n * Defines the suggestion popover is opened\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n open!: boolean;\n\n /**\n * The label of the suggestion section.\n * @private\n */\n @property({ type: String })\n _suggestionLabel?: string;\n\n /**\n * The label of the recommend section.\n * @private\n */\n @property({ type: String })\n _recommendLabel?: string;\n\n /**\n * The console warning shown after all unsuccessful attempts of opening SearchSuggestionsPopover component.\n * @default \"UdexSearchSuggestionsPopover couldn`t be opened\"\n */\n @property({ type: String, defaultValue: \"UdexSearchSuggestionsPopover couldn`t be opened\" })\n unsuccessfulRetryMessage: string = \"UdexSearchSuggestionsPopover couldn`t be opened\";\n\n /**\n * The delay before retrying to open the SerchSuggestionsPopover component.\n * @default 200\n */\n @property({ type: Number, defaultValue: 200 })\n retryDelay: number = 200;\n\n /**\n * The maximum number of attempts for opening the SearchSuggestionsPopover component.\n * @default 5\n */\n @property({ type: Number, defaultValue: 5 })\n maxRetryAttempts: number = 5;\n\n /**\n * Defines the prefix dropdown of the Search component.\n *\n * @slot dropdownPrefix\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n dropdownPrefix!: Array<List>;\n\n /**\n * Defines the open button icon\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _prefixDropdownExpanded!: boolean;\n\n /**\n * Defines the active (focus)\n * @default false\n * @private\n */\n @property({ type: Boolean })\n active!: boolean;\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 constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExSearch.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n onEnterDOM(): void {\n this.isNotMozillaFirefox = !this.isMozillaFirefox(\"Firefox\");\n this.isNotMozillaFirefoxIOS = !this.isMozillaFirefox(\"FxiOS\");\n this.initSpeechRecognition();\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n this.removeEventListener(\"dropdown-trigger-event\", () => { });\n }\n\n initSpeechRecognition(): void {\n try {\n if (this.isNotMozillaFirefox || this.isNotMozillaFirefoxIOS) {\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition || (window as any).mozSpeechRecognition || (window as any).msSpeechRecognition;\n this.speechRecognition = new SpeechRecognition();\n this.speechRecognition.continuous = true;\n this.speechRecognition.lang = this.languageVoice;\n this.speechRecognition.interimResults = false;\n this.speechRecognition.maxAlternatives = 5;\n }\n } catch (error: any) {\n console.warn(\"The voice button does not work in this browser\");\n }\n }\n\n private isMozillaFirefox(keyWord: string) {\n const userAgent = navigator.userAgent;\n const firefoxAgent = userAgent.split(\" \").find(item => item.indexOf(keyWord) > -1);\n\n if (firefoxAgent) {\n const splitAgent = firefoxAgent.split(\"/\");\n const firefoxVersion = splitAgent[splitAgent.length - 1];\n return Number(firefoxVersion) >= 125;\n }\n return false;\n }\n\n onInvalidation(changeInfo: ChangeInfo): void {\n this.setNewValue(changeInfo);\n this.setPopoverState(changeInfo);\n this.setNewSuggestionList(changeInfo);\n }\n\n setNewValue(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"value\") {\n this.value = changeInfo.newValue as string;\n this.setSuggestedRecommendedLists(this.suggestionList);\n this.toggleLabelActiveClass();\n }\n }\n\n private toggleLabelActiveClass() {\n if (this.labelActiveClass && !this.labelAnimationDisabled && !this.isFocusedOnTextfield) {\n this.handleBlur();\n }\n }\n\n setPopoverState(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"openSuggestionPopup\") {\n this.handlePopoverTrigger(changeInfo.newValue as boolean);\n }\n }\n\n handlePopoverTrigger(isOpenPopover: boolean): void {\n if (isOpenPopover) {\n this.onOpenPopover();\n } else {\n this.onClosePopover();\n }\n }\n\n setNewSuggestionList(changeInfo: ChangeInfo): void {\n if (changeInfo.name === \"suggestionList\" && !!changeInfo.newValue) {\n this.setSuggestedRecommendedLists(changeInfo.newValue as string);\n }\n }\n\n setSuggestedRecommendedLists(value: string): void {\n if (this.showSuggestedPopover && value) {\n const parsedData: SuggestionRecommendLists = JSON.parse(value);\n const hasDataLabels = this.hasDataLabel(parsedData);\n\n if (this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.setDropdownLabels(hasDataLabels, parsedData);\n this.suggestedList = this.getListWithSuggestion(this.getSuggestedList(hasDataLabels, parsedData), \"suggested\");\n this.recommendedList = this.getListWithSuggestion(this.getRecommendedList(hasDataLabels, parsedData), \"recommended\");\n }\n if (!this.shouldShowPopover(parsedData, hasDataLabels)) {\n this.onClosePopover();\n this.resetSuggestedRecommendedLists();\n }\n }\n }\n\n private hasDataLabel(parsedData: SuggestionRecommendLists) {\n return Object.values(parsedData).some(item => Object.prototype.hasOwnProperty.call(item, \"label\"));\n }\n\n private resetSuggestedRecommendedLists() {\n this.suggestedList = [];\n this.recommendedList = [];\n }\n\n private setDropdownLabels(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n this._suggestionLabel = this.getSuggestionLabel(hasDataLabels, parsedData);\n this._recommendLabel = this.getRecommendLabel(hasDataLabels, parsedData);\n }\n\n private getRecommendLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).label || \"\"\n : UDExSearch.i18nBundle.getText(RECOMMENDED_TEXT) as string;\n }\n\n private getSuggestionLabel(hasDataLabels: boolean, parsedData: SuggestionRecommendLists): string {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).label || \"\"\n : UDExSearch.i18nBundle.getText(SUGGESTED_TEXT) as string;\n }\n\n private getRecommendedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.recommended as RecommendData).list\n : parsedData.recommended as DataList;\n }\n\n private getSuggestedList(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? (parsedData.suggested as SuggestionData).list\n : parsedData.suggested as DataList;\n }\n\n private shouldShowPopover(parsedData: SuggestionRecommendLists, hasDataLabels: boolean) {\n const hasSuggestedListContent = this.hasSuggestedContent(hasDataLabels, parsedData);\n const hasRecommendedContent = this.hasRecommendedContent(hasDataLabels, parsedData);\n return this.showPopoverWhenClickedIntoInput || (hasSuggestedListContent || hasRecommendedContent);\n }\n\n private hasSuggestedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.suggested, \"list\") && (parsedData.suggested as SuggestionData).list.length\n : (parsedData.suggested as DataList).length;\n }\n\n private hasRecommendedContent(hasDataLabels: boolean, parsedData: SuggestionRecommendLists) {\n return hasDataLabels\n ? Object.prototype.hasOwnProperty.call(parsedData.recommended, \"list\") && (parsedData.recommended as RecommendData).list.length\n : (parsedData.recommended as DataList).length;\n }\n\n getListWithSuggestion(suggestedList: DataList, idName: string): Array<SuggestionList> {\n return suggestedList?.map((item, index) => {\n const itemWithCustomIcon = typeof item === \"object\";\n const label = itemWithCustomIcon ? item.label : item;\n return {\n handleSelectItem: this.handleSelectItem(label),\n text: this.getTextWithSuggestion(label),\n title: label,\n icon: itemWithCustomIcon ? item.icon : SearchIcon,\n hasCustomIcon: itemWithCustomIcon,\n id: `${idName}-${index}`,\n suggestionDescription: `${label}, ${idName} ${index + 1} ${UDExSearch.i18nBundle.getText(OF)} ${suggestedList.length}`,\n };\n });\n }\n\n escapeRegExp(input: string): string {\n const specialChars = /[-[\\]/{}()*+?.\\\\^$|]/g;\n return input.replace(specialChars, \"\\\\$&\");\n }\n\n getTextWithSuggestion(text: string): string {\n const escapedValue = this.escapeRegExp(this.value);\n const search = new RegExp(escapedValue, \"i\");\n return text.replace(search, \"<b>$&</b>\");\n }\n\n handleSelectItem = (itemValue: string) => () => {\n this.value = itemValue;\n this.fireDropdownItemClick(itemValue);\n this.handleSubmitValue();\n };\n\n fireDropdownItemClick(value: string) {\n this.fireEvent(\"dropdown-item-click\", { value });\n }\n\n handleDropdownClick() {\n const dropdown = this.getPrefixPopover();\n\n if (dropdown.opened) {\n this.onClosePrefixPopover();\n } else {\n this.onOpenPrefixPopover();\n }\n }\n\n getPrefixWrapper() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix\") as HTMLElement;\n }\n\n getPrefixPopover(): Popover {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getPrefixButton() {\n return this.shadowRoot!.querySelector(\".udex-search__prefix-button\") as HTMLElement;\n }\n\n onOpenPrefixPopover() {\n if (this.dropdownPrefix.length) {\n const wrapper = this.getPrefixWrapper();\n const dropdown = this.getPrefixPopover();\n const button = this.getPrefixButton();\n\n this._prefixDropdownExpanded = true;\n dropdown.showAt(this.getPrefixButton());\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n dropdown.classList.add(this.prefixPopoverClasses);\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(this.prefixWrapperClasses);\n this.dropdownPrefix[0].addEventListener(\"item-press\", this.handleItemClick);\n }\n }\n\n handleItemClick = (e: Event) => {\n const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n };\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n this.dropdownPrefix[0].removeEventListener(\"item-press\", this.handleItemClick);\n dropdown.close();\n this._prefixDropdownExpanded = false;\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n wrapper.classList.remove(\"udex-search__prefix--show-popover\", \"udex-search__prefix--show-popover-top\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n }\n\n handleInputClick(): void {\n if (!isDesktop()) {\n this._isTouched = true;\n }\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: Event): void {\n e.stopPropagation();\n this.handleSubmitValue();\n }\n\n handleSubmitValue(): void {\n this.onClosePopover();\n this.fireEvent(\"submit-search-value\", { value: this.value });\n }\n\n handleAriaExpanded() {\n const value = this.open.toString();\n this.getSearchInput()?.setAttribute(\"aria-expanded\", value);\n }\n\n onOpenPopover(): void {\n if (this.showSuggestedPopover) {\n if (!this.Suggestion) {\n retryUntilSuccessful(() => this.Suggestion, this.retryDelay, this.maxRetryAttempts, this.unsuccessfulRetryMessage)\n .then(() => {\n this.Suggestion!.open();\n })\n .catch(error => {\n console.warn(error.message);\n });\n } else {\n this.open = true;\n this.Suggestion.open();\n }\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleAriaExpanded();\n this.open = false;\n }\n }\n\n handleKeyPressSuggestionList(e: KeyboardEvent): void {\n this.Suggestion?.handleKeyPress(e);\n }\n\n get rootClasses(): string {\n if (this.mode === Mode.HomeSearch && this.showSuggestedPopover && this.open) {\n return this.isSuggestionPopoverTop ? \"udex-search__root--show-popover-top\" : \"udex-search__root--show-popover\";\n }\n return \"\";\n }\n\n onBeforeRendering(): void {\n if (this.showSuggestedPopover) {\n this.enableSuggestions();\n }\n\n if (this.isHomeSearchWithPrefixMode && this.dropdownPrefix.length) {\n const dropdownItems = Array.from(this.dropdownPrefix[0].children) as Array<ListItemBase>;\n const selectedItemIndex = dropdownItems.findIndex(listItem => listItem.selected);\n const selectedItemPrefix = selectedItemIndex >= 0 ? dropdownItems[selectedItemIndex] : dropdownItems[0];\n\n this.labelPrefix = selectedItemPrefix.innerText;\n }\n\n this.showResetButton = !!this.value.length;\n\n if (this.value && this.labelActiveClass === \"\") {\n this.labelActiveClass = this._labelActiveClassName;\n }\n\n if (this.mode === Mode.HomeSearch) {\n this.labelAnimationDisabled = true;\n }\n\n if (!this.labelAnimationDisabled) {\n this.labelAnimationClass = this._labelAnimationClassName;\n }\n\n this.labelClasses = `udex-search__label ${this.labelActiveClass} ${this.labelAnimationClass}`;\n\n if (this.isVoiceButton) {\n this.labelClasses += \" udex-search__label-with-voice-icon\";\n }\n\n if (this.isShowSubmitButton) {\n this.labelClasses += \" udex-search__label-with-search-icon\";\n }\n }\n\n enableSuggestions() {\n if (this.Suggestion) {\n return;\n }\n\n const Suggestion = getFeature<typeof SearchInputSuggestion>(\"SearchInputSuggestion\");\n\n if (Suggestion) {\n this.Suggestion = new Suggestion(this);\n } else {\n throw new Error(\"You have to import '@sapudex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n private _createObserver(popover: Popover, ingoreOpenState: boolean = false): MutationObserver {\n return new MutationObserver(mutationList => {\n mutationList.forEach(mutation => {\n const newValue = popover?.actualPlacementType;\n const oldValue = mutation.oldValue;\n\n if (mutation.attributeName === \"actual-placement-type\" && newValue !== oldValue) {\n this._popoverPlacement = newValue as PopoverPlacement;\n }\n\n if (mutation.attributeName === \"open\" && newValue !== oldValue && !ingoreOpenState) {\n this.open = popover?.open || false;\n }\n });\n });\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\n const prefixPopover = this.getPrefixPopover();\n\n if (this.Suggestion?.popover) {\n const suggestionObserver = this._createObserver(this.Suggestion.popover);\n const popoverNode = this.Suggestion?.popover as Node;\n suggestionObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n this.Suggestion.initLists();\n }\n\n if (prefixPopover) {\n const prefixObserver = this._createObserver(prefixPopover, true);\n const popoverNode = prefixPopover as Node;\n prefixObserver.observe(popoverNode, { attributes: true, attributeOldValue: true });\n }\n\n this.handleOutsideClick();\n this.handleOpenSuggestionPopover();\n this.setSearchWidth();\n }\n }\n\n async handleOpenSuggestionPopover() {\n if (this.openSuggestionPopup) {\n await this.Suggestion?._getSuggestionPopover().then(() => {\n this.handlePopoverTrigger(this.openSuggestionPopup);\n });\n }\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n const popover = (e.target as HTMLElement).shadowRoot?.querySelector(\"[ui5-popover]\");\n\n if (e.target !== this && popover !== this.Suggestion?.popover) {\n this.handleBlur();\n this.onClosePopover();\n }\n });\n }\n\n handleBlur(): void {\n this._isTouched = false;\n if (this.value) {\n this.labelActiveClass = this._labelActiveClassName;\n } else {\n this.labelActiveClass = \"\";\n }\n }\n\n handleSearchChange(e: InputEvent): void {\n this.value = (e.target as HTMLInputElement)?.value;\n this.showResetButton = !!this.value.length;\n this.handleDebounce();\n }\n\n handleDebounce = debounce(() => {\n this.fireEvent(\"handle-value-search\", { value: this.value });\n if (this.showSuggestedPopover && this.value.length >= 2) {\n this.onOpenPopover();\n }\n if (!this.showPopoverWhenClickedIntoInput && this.showSuggestedPopover && this.value.length < 2) {\n this.onClosePopover();\n }\n });\n\n handleKeyDown = (e: KeyboardEvent) => {\n e.stopPropagation();\n this.handleEnterKey(e);\n this.handleTabKey(e);\n this.handleEscapeKey(e);\n this.fireEvent(\"search-keydown\", e);\n };\n\n handleEnterKey(e: KeyboardEvent) {\n if (isEnter(e)) {\n if (!this.open) {\n e.preventDefault();\n } else {\n this.Suggestion?.onEnter(e);\n }\n this.handleSubmitValue();\n }\n }\n\n handleTabKey(e: KeyboardEvent) {\n if (isTabNext(e) && this.open) {\n this.Suggestion?.onTab(e);\n }\n }\n\n handleEscapeKey(e: KeyboardEvent) {\n if (isEscape(e)) {\n if (this.open) {\n this.Suggestion?.onEscape(e);\n }\n this.fireEvent(\"handle-close-search\");\n }\n }\n\n handleKeyDownPopover(e: KeyboardEvent) {\n if (this.open) {\n this.handleTabKeyList(e);\n this.handlePrevTabKeyList(e);\n this.handleDownKeyList(e);\n this.handleUpKeyList(e);\n this.handleEscapeKey(e);\n }\n }\n\n handleTabKeyList(e: KeyboardEvent) {\n if (isTabNext(e)) {\n this.Suggestion?.onKeyTabList(e);\n }\n }\n\n handlePrevTabKeyList(e: KeyboardEvent) {\n if (isTabPrevious(e)) {\n this.Suggestion?.onPrevKeyTabList(e);\n }\n }\n\n handleDownKeyList(e: KeyboardEvent) {\n if (isDown(e)) {\n this.Suggestion?.onKeyDown(e);\n }\n }\n\n handleUpKeyList(e: KeyboardEvent) {\n if (isUp(e)) {\n this.Suggestion?.onKeyUp(e);\n }\n }\n\n handleFocus(): void {\n this.active = true;\n this.isFocusedOnTextfield = true;\n this.focusClasses = this._focusActiveClassName;\n this.labelActiveClass = (this.value || !this.labelAnimationDisabled) ? this._labelActiveClassName : \"\";\n this.labelAnimationClass = !this.labelAnimationDisabled ? this._labelAnimationClassName : \"\";\n }\n\n handleFocusout(): void {\n this.active = false;\n this.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: Event): void {\n e.stopPropagation();\n this.handleReset();\n }\n\n handleReset(): void {\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.fireEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n this.getSearchInput()?.focus();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n if (isEnter(e) || isSpace(e)) {\n e.preventDefault();\n e.stopPropagation();\n this.handleReset();\n }\n }\n\n private getSearchInput(): HTMLInputElement {\n return this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement;\n }\n\n onVoice(e: Event): void {\n e.stopPropagation();\n if (this.speechRecognition) {\n this.onSpeechLaunch();\n this.onSpeechStart();\n this.onSpeechResult();\n this.onSpeechEnd();\n }\n }\n\n onSpeechLaunch(): void {\n if (!this.voiceActiveClass) {\n this.speechRecognition.start();\n } else {\n this.speechRecognition.stop();\n }\n }\n\n get effectivePlaceholder() {\n return !this.voiceActiveClass ? this.label : `${UDExSearch.i18nBundle.getText(LISTENING)}...`;\n }\n\n onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n this.getSearchInput()?.focus();\n };\n }\n\n onSpeechResult(): void {\n this.speechRecognition.onresult = (e: any) => {\n const last = e.results.length - 1;\n this.value = e.results[last][0].transcript;\n this.speechRecognition.stop();\n };\n }\n\n onSpeechEnd(): void {\n this.speechRecognition.onend = () => {\n this.voiceActiveClass = \"\";\n this.handleSubmitValue();\n this.onShowResetButton();\n };\n }\n\n onShowResetButton(): void {\n if (this.value) {\n this.showResetButton = true;\n }\n }\n\n _handleResize() {\n this.setSearchWidth();\n }\n\n private setSearchWidth() {\n const searchContainer = (this.shadowRoot?.querySelector(\".udex-search__container\") as HTMLElement);\n\n if (searchContainer.offsetWidth !== this._searchWidth) {\n this._searchWidth = searchContainer.offsetWidth;\n }\n }\n\n get popoverStyles() {\n return {\n \"width\": this._searchWidth ? `${this._searchWidth}px` : \"\",\n };\n }\n\n get prefixPopoverStyles() {\n return {\n \"width\": this.getPrefixButton() ? `${this.getPrefixButton().offsetWidth + 1}px` : \"\",\n };\n }\n\n get isShowResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.Standard;\n }\n\n get isShowHomeResetButton(): boolean {\n return this.showResetButton && !!this.value.length && this.mode === Mode.HomeSearch;\n }\n\n get noResultMessage(): string {\n return this.noResultText || UDExSearch.i18nBundle.getText(NO_MATCHES_FOUND) as string;\n }\n\n get showNoResultMessage(): boolean {\n return !this.suggestedList?.length && !this.recommendedList?.length;\n }\n\n get isShowSuggestedList(): boolean {\n return !!this.suggestedList?.length;\n }\n\n get isShowRecommendedList(): boolean {\n return !!this.recommendedList?.length;\n }\n\n get hasPopoverContent(): boolean {\n return !!(this.suggestedList?.length || this.recommendedList?.length);\n }\n\n get getAriaHasPopup(): string {\n return this.showSuggestedPopover ? \"dialog\" : \"false\";\n }\n\n get getSuggestionsPopoverId(): string {\n return SuggestionsPopoverId;\n }\n\n get isShowSubmitButton(): boolean {\n return this.showSubmitButton;\n }\n\n get suggestedHeading(): string | undefined {\n return this._suggestionLabel;\n }\n\n get recommendedHeading(): string | undefined {\n return this._recommendLabel;\n }\n\n get isSuggestionPopoverTop(): boolean {\n const suggestionPopover = this.Suggestion?.popover;\n return suggestionPopover! && suggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isPrefixSuggestionPopoverTop(): boolean {\n const prefixSuggestionPopover = this.getPrefixPopover();\n return prefixSuggestionPopover && prefixSuggestionPopover.open && this._popoverPlacement === \"Top\";\n }\n\n get isShowSearchHomePrefix(): boolean {\n return this.isHomeSearchWithPrefixMode && !!this.dropdownPrefix.length;\n }\n\n get isHomeSearchMode(): boolean {\n return this.mode === Mode.HomeSearch;\n }\n\n get isHomeSearchWithPrefixMode(): boolean {\n return this.mode === Mode.HomeSearch && !!this.dropdownPrefix.length;\n }\n\n get searchClasses(): string {\n return `${this.classWithPrefix} ${this.rootClasses} udex-search-mode-${this.mode.toLowerCase().replace(\" \", \"-\")}`.trim();\n }\n\n get prefixWrapperClasses(): string {\n const prefixPopover = this.getPrefixPopover();\n if (prefixPopover && prefixPopover.open) {\n return this._popoverPlacement === \"Top\" ? \"udex-search__prefix--show-popover-top\" : \"udex-search__prefix--show-popover\";\n }\n return \"\";\n }\n\n get prefixPopoverClasses(): string {\n return this.isPrefixSuggestionPopoverTop ? \"udex-search__prefix-popover-top\" : \"udex-search__prefix-popover\";\n }\n\n get classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n if (this.isHomeSearchMode || this.isHomeSearchWithPrefixMode) {\n return this.isSuggestionPopoverTop ? \"udex-search-suggestions__root-top--home\" : \"udex-search-suggestions__root--home\";\n }\n return \"\";\n }\n\n get homeSearchWithPrefixPopoverClass(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--prefix\" : \"\";\n }\n\n get searchButtonActiveClass(): string {\n return this.isHomeSearchMode && this.open ? \"udex-search__submit-button--active\" : \"\";\n }\n\n get isNotEmptyClass(): string {\n return this.value.length > 2 || this.focusClasses.length ? \" udex-search__container--has-value\" : \"\";\n }\n\n get isVoiceButton(): boolean {\n return this.showVoiceButton && this.isNotMozillaFirefox && this.isNotMozillaFirefoxIOS && this.mode === Mode.HomeSearch;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n \"ariaDescription\": this.open ? this.suggestionsDescription : undefined,\n \"accessibleNameResetIcon\": this.accessibleNameResetIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_RESET_ICON) as string,\n \"accessibleNameSearchIcon\": this.accessibleNameSearchIcon || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON) as string,\n };\n }\n\n get suggestionsDescription(): string {\n return !this.showNoResultMessage ? `${this.suggestedList.length} ${this._suggestionLabel}, ${this.recommendedList.length} ${this._recommendLabel}` : `${this.noResultMessage}`;\n }\n\n get tooltipInfo() {\n return {\n \"tooltipResetButton\": this.tooltipResetButton || UDExSearch.i18nBundle.getText(TOOLTIP_RESET_BUTTON) as string,\n \"tooltipVoiceButton\": this.tooltipVoiceButton || UDExSearch.i18nBundle.getText(TOOLTIP_VOICE_BUTTON) as string,\n \"tooltipSubmitButton\": this.tooltipSubmitButton || UDExSearch.i18nBundle.getText(ACCESSIBLE_NAME_SEARCH_ICON) as string,\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES) as string;\n }\n\n get showNonInteractiveButton(): boolean {\n return this.showSubmitButton && this.nonInteractiveSubmitButton;\n }\n\n get showSubmitStandardButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.Standard;\n }\n\n get showSubmitHomeButton(): boolean {\n return this.showSubmitButton && !this.nonInteractiveSubmitButton && this.mode === Mode.HomeSearch;\n }\n}\n\nUDExSearch.define();\n\nexport default UDExSearch;\n"]}
@@ -96,6 +96,7 @@ declare class UDExSearchableListBase extends UI5Element {
96
96
  defaultAccessibleRole: string;
97
97
  _filteredItems: Array<ProcessedItem>;
98
98
  _shouldFilterItems?: boolean;
99
+ _accSearchResultInfo?: string;
99
100
  static i18nBundle: I18nBundle;
100
101
  constructor();
101
102
  onBeforeRendering(): void;
@@ -128,6 +129,7 @@ declare class UDExSearchableListBase extends UI5Element {
128
129
  fireSelectionChange(itemId: string): void;
129
130
  handlePreviousItemFocus(e: KeyboardEvent): void;
130
131
  handleNextListItemFocus(e: KeyboardEvent): void;
132
+ getFlattenItemsArray(array: Array<ProcessedItem>): (ProcessedItem | UDExListItemBase)[];
131
133
  getCurrentIndex(item: Element): number;
132
134
  getSearch(): Search;
133
135
  getDomListItems(): Element[];
@@ -135,6 +137,8 @@ declare class UDExSearchableListBase extends UI5Element {
135
137
  getDataTokenId(e: CustomEvent): string;
136
138
  getProcessedItems(): Array<ProcessedItem>;
137
139
  get getNoResultText(): string;
140
+ get noMatchesFoundText(): string;
141
+ get resultReturnedText(): string;
138
142
  get isListEmpty(): boolean;
139
143
  get selectedItems(): Array<UDExListItemBase>;
140
144
  get modeMultiSelect(): boolean;
@@ -15,7 +15,7 @@ import { isDown, isUp, } from "@ui5/webcomponents-base/dist/Keys.js";
15
15
  import { cleanLabel } from "./utils/listItemLabelUtils.js";
16
16
  import { ListMode } from "./types/List.js";
17
17
  import { SHOW_SEARCH_AFTER_COUNT } from "./types/SearchableListBase.js";
18
- import { NO_MATCHES_FOUND } from "./generated/i18n/i18n-defaults.js";
18
+ import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-defaults.js";
19
19
  /**
20
20
  * @class
21
21
  *
@@ -115,6 +115,8 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
115
115
  const searchValue = e.detail.value;
116
116
  this._shouldFilterItems = true;
117
117
  this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);
118
+ const items = this.getFlattenItemsArray(this._filteredItems);
119
+ this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;
118
120
  this.fireEvent("change-search", { value: searchValue });
119
121
  }
120
122
  onReset() {
@@ -250,6 +252,17 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
250
252
  listItems[nextSelectIndex].focus();
251
253
  }
252
254
  }
255
+ getFlattenItemsArray(array) {
256
+ return array.flatMap(item => {
257
+ if (item.isGroup) {
258
+ return [
259
+ item,
260
+ ...item.groupItems.filter(groupItem => !groupItem.disabled),
261
+ ];
262
+ }
263
+ return item.item.disabled ? [] : [item.item];
264
+ });
265
+ }
253
266
  getCurrentIndex(item) {
254
267
  return this.getDomListItems().indexOf(item);
255
268
  }
@@ -286,7 +299,13 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
286
299
  }
287
300
  get getNoResultText() {
288
301
  const hasTextProperty = this.noResultText !== "undefined" && this.noResultText.length > 0;
289
- return hasTextProperty ? this.noResultText : UDExSearchableListBase_1.i18nBundle.getText(NO_MATCHES_FOUND);
302
+ return hasTextProperty ? this.noResultText : this.noMatchesFoundText;
303
+ }
304
+ get noMatchesFoundText() {
305
+ return UDExSearchableListBase_1.i18nBundle.getText(NO_MATCHES_FOUND);
306
+ }
307
+ get resultReturnedText() {
308
+ return UDExSearchableListBase_1.i18nBundle.getText(RESULT_RETURNED);
290
309
  }
291
310
  get isListEmpty() {
292
311
  return this._filteredItems.length === 0;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport Search from \"./Search.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport { ProcessedItem, SHOW_SEARCH_AFTER_COUNT } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectionChange\n * @public\n */\n@event(\"selection-change\", {\n detail: {\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\n },\n})\n\nclass UDExSearchableListBase extends UI5Element {\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number, defaultValue: 1000, validator: Integer })\n busyDelay?: number;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: Array<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list componnet.\n *\n * @default \"list\"\n * @public\n */\n @property({ type: String, defaultValue: \"list\" })\n defaultAccessibleRole!: string;\n\n @property({ type: Object })\n _filteredItems!: Array<ProcessedItem>;\n\n _shouldFilterItems?: boolean;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = e.detail.item.getAttribute(\"data-token-id\");\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n onFilterSelectAllHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n this.activateHeaderAndSetAllItems(item as UDExListGroupHeaderBase);\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase) {\n item.activateHeader();\n item.setAllItems(false);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n if (groupHeader.isFilterMenuSelectAllHeader) {\n groupHeader.deactivateHeader();\n\n if (groupHeader.isAllDeselected()) {\n groupHeader.activateHeader();\n }\n } else {\n groupHeader.handleHeaderState();\n }\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n onSearch(e:CustomEvent) {\n const searchValue: string = e.detail.value;\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<ProcessedItem>, str: string): Array<ProcessedItem> {\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n if (isGroup) {\n preparedItem.groupItems = this.filterItemsForLabel(preparedItem.groupItems, str);\n return preparedItem.groupItems.length > 0;\n }\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n if (!str.length) {\n return text;\n }\n\n const regex = new RegExp(`(${str})`, \"i\");\n return text.replace(regex, \"<b>$1</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isUp(e)) {\n this.handlePreviousItemFocus(e);\n }\n if (isDown(e)) {\n this.handleNextListItemFocus(e);\n }\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string) {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n // moves focus to next list item\n handlePreviousItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const currentSelectIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectIndex - 1;\n if (currentSelectIndex > 0) {\n e.preventDefault();\n (listItems[previousSelectIndex] as HTMLElement).focus();\n }\n }\n\n // moves focus to previous list item\n handleNextListItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const lastItemIndex = listItems.length - 1;\n const currentSelectIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectIndex + 1;\n if (nextSelectIndex <= lastItemIndex) {\n e.preventDefault();\n (listItems[nextSelectIndex] as HTMLElement).focus();\n }\n }\n\n getCurrentIndex(item: Element): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDomListItems(): Element[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n setItemsModeAndControl(items: Array<UDExFilterMenuItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n getDataTokenId(e:CustomEvent): string {\n return e.detail.item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<ProcessedItem> {\n return this.items.map(item => {\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n this.setItemsModeAndControl(groupItems);\n }\n item.mode = this.mode;\n item.controlled = this.isControlled;\n return {\n item,\n groupItems: item.isGroup ? (item as UDExListGroupHeaderBase).getItems() : [],\n isGroup: item.isGroup,\n };\n });\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== \"undefined\" && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(({ selected }) => selected);\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === ListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.mode === ListMode.MultiSelect && isGrouping;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n return this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : \"none\";\n }\n\n get accessibleRoleForList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : this.defaultAccessibleRole;\n }\n\n static async onDefine(): Promise<void> {\n UDExSearchableListBase.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n}\n\nexport default UDExSearchableListBase;\n"]}
1
+ {"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport Search from \"./Search.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport { ProcessedItem, SHOW_SEARCH_AFTER_COUNT } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND, RESULT_RETURNED } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectionChange\n * @public\n */\n@event(\"selection-change\", {\n detail: {\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\n },\n})\n\nclass UDExSearchableListBase extends UI5Element {\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number, defaultValue: 1000, validator: Integer })\n busyDelay?: number;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: Array<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list componnet.\n *\n * @default \"list\"\n * @public\n */\n @property({ type: String, defaultValue: \"list\" })\n defaultAccessibleRole!: string;\n\n @property({ type: Object })\n _filteredItems!: Array<ProcessedItem>;\n\n _shouldFilterItems?: boolean;\n _accSearchResultInfo?: string;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = e.detail.item.getAttribute(\"data-token-id\");\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n onFilterSelectAllHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n this.activateHeaderAndSetAllItems(item as UDExListGroupHeaderBase);\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase) {\n item.activateHeader();\n item.setAllItems(false);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n if (groupHeader.isFilterMenuSelectAllHeader) {\n groupHeader.deactivateHeader();\n\n if (groupHeader.isAllDeselected()) {\n groupHeader.activateHeader();\n }\n } else {\n groupHeader.handleHeaderState();\n }\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n onSearch(e:CustomEvent) {\n const searchValue: string = e.detail.value;\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n const items = this.getFlattenItemsArray(this._filteredItems);\n this._accSearchResultInfo = items.length ? `${items.length} ${this.resultReturnedText}` : this.noMatchesFoundText;\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<ProcessedItem>, str: string): Array<ProcessedItem> {\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n if (isGroup) {\n preparedItem.groupItems = this.filterItemsForLabel(preparedItem.groupItems, str);\n return preparedItem.groupItems.length > 0;\n }\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n if (!str.length) {\n return text;\n }\n\n const regex = new RegExp(`(${str})`, \"i\");\n return text.replace(regex, \"<b>$1</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isUp(e)) {\n this.handlePreviousItemFocus(e);\n }\n if (isDown(e)) {\n this.handleNextListItemFocus(e);\n }\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string) {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n // moves focus to next list item\n handlePreviousItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const currentSelectIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectIndex - 1;\n if (currentSelectIndex > 0) {\n e.preventDefault();\n (listItems[previousSelectIndex] as HTMLElement).focus();\n }\n }\n\n // moves focus to previous list item\n handleNextListItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const lastItemIndex = listItems.length - 1;\n const currentSelectIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectIndex + 1;\n if (nextSelectIndex <= lastItemIndex) {\n e.preventDefault();\n (listItems[nextSelectIndex] as HTMLElement).focus();\n }\n }\n\n getFlattenItemsArray(array: Array<ProcessedItem>): (ProcessedItem | UDExListItemBase)[] {\n return array.flatMap(item => {\n if (item.isGroup) {\n return [\n item,\n ...item.groupItems.filter(groupItem => !groupItem.disabled),\n ];\n }\n return item.item.disabled ? [] : [item.item];\n });\n }\n\n getCurrentIndex(item: Element): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDomListItems(): Element[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n setItemsModeAndControl(items: Array<UDExFilterMenuItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n getDataTokenId(e:CustomEvent): string {\n return e.detail.item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<ProcessedItem> {\n return this.items.map(item => {\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n this.setItemsModeAndControl(groupItems);\n }\n item.mode = this.mode;\n item.controlled = this.isControlled;\n return {\n item,\n groupItems: item.isGroup ? (item as UDExListGroupHeaderBase).getItems() : [],\n isGroup: item.isGroup,\n };\n });\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== \"undefined\" && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : this.noMatchesFoundText;\n }\n\n get noMatchesFoundText(): string {\n return UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get resultReturnedText(): string {\n return UDExSearchableListBase.i18nBundle.getText(RESULT_RETURNED);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(({ selected }) => selected);\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === ListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.mode === ListMode.MultiSelect && isGrouping;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n return this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : \"none\";\n }\n\n get accessibleRoleForList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : this.defaultAccessibleRole;\n }\n\n static async onDefine(): Promise<void> {\n UDExSearchableListBase.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n}\n\nexport default UDExSearchableListBase;\n"]}