@sapudex/web-components 0.114.2 → 0.117.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 (216) hide show
  1. package/bundle.esm.js +3 -0
  2. package/dist/Avatar.d.ts +8 -1
  3. package/dist/Avatar.js +5 -2
  4. package/dist/Avatar.js.map +1 -1
  5. package/dist/CountrySelector.d.ts +1 -0
  6. package/dist/CountrySelector.js +3 -0
  7. package/dist/CountrySelector.js.map +1 -1
  8. package/dist/FilterMenu.d.ts +14 -4
  9. package/dist/FilterMenu.js +46 -7
  10. package/dist/FilterMenu.js.map +1 -1
  11. package/dist/InputGroup.js.map +1 -1
  12. package/dist/List.d.ts +7 -0
  13. package/dist/List.js +78 -18
  14. package/dist/List.js.map +1 -1
  15. package/dist/ListItem.d.ts +0 -1
  16. package/dist/ListItem.js +0 -6
  17. package/dist/ListItem.js.map +1 -1
  18. package/dist/ListItemBase.d.ts +3 -0
  19. package/dist/ListItemBase.js +12 -0
  20. package/dist/ListItemBase.js.map +1 -1
  21. package/dist/PhoneNumberField.js.map +1 -1
  22. package/dist/Search.d.ts +3 -0
  23. package/dist/Search.js +35 -10
  24. package/dist/Search.js.map +1 -1
  25. package/dist/SecondaryNavigation.d.ts +34 -46
  26. package/dist/SecondaryNavigation.js +140 -161
  27. package/dist/SecondaryNavigation.js.map +1 -1
  28. package/dist/SecondaryNavigationItem.d.ts +101 -0
  29. package/dist/SecondaryNavigationItem.js +287 -0
  30. package/dist/SecondaryNavigationItem.js.map +1 -0
  31. package/dist/SecondaryNavigationItemBase.d.ts +68 -0
  32. package/dist/SecondaryNavigationItemBase.js +78 -0
  33. package/dist/SecondaryNavigationItemBase.js.map +1 -0
  34. package/dist/SecondaryNavigationSubItem.d.ts +52 -0
  35. package/dist/SecondaryNavigationSubItem.js +102 -0
  36. package/dist/SecondaryNavigationSubItem.js.map +1 -0
  37. package/dist/SelectBox.d.ts +1 -0
  38. package/dist/SelectBox.js +13 -1
  39. package/dist/SelectBox.js.map +1 -1
  40. package/dist/StatusBadge.d.ts +67 -0
  41. package/dist/StatusBadge.js +104 -0
  42. package/dist/StatusBadge.js.map +1 -0
  43. package/dist/Tab.js +1 -1
  44. package/dist/Tab.js.map +1 -1
  45. package/dist/assets/{bundle.esm-ab45813e.js → bundle.esm-f65ae7da.js} +187 -184
  46. package/dist/assets/messagebundle_en-7249941b.js +1 -0
  47. package/dist/css/themes/Avatar.css +1 -1
  48. package/dist/css/themes/Checkbox.css +1 -1
  49. package/dist/css/themes/CountrySelector.css +1 -1
  50. package/dist/css/themes/Dropdown.css +1 -1
  51. package/dist/css/themes/FilterMenu.css +1 -1
  52. package/dist/css/themes/HeroBanner.css +1 -1
  53. package/dist/css/themes/MediaPlayer.css +1 -1
  54. package/dist/css/themes/PhoneNumberField.css +1 -1
  55. package/dist/css/themes/RatingIndicator.css +1 -1
  56. package/dist/css/themes/Search.css +1 -1
  57. package/dist/css/themes/SecondaryNavigation.css +1 -1
  58. package/dist/css/themes/SecondaryNavigationItem.css +1 -0
  59. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -0
  60. package/dist/css/themes/Slider.css +1 -1
  61. package/dist/css/themes/StatusBadge.css +1 -0
  62. package/dist/custom-elements-internal.json +604 -2
  63. package/dist/custom-elements.json +574 -2
  64. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  65. package/dist/generated/i18n/i18n-defaults.d.ts +8 -1
  66. package/dist/generated/i18n/i18n-defaults.js +8 -1
  67. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  68. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  69. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  70. package/dist/generated/templates/DropdownTemplate.lit.js +1 -1
  71. package/dist/generated/templates/DropdownTemplate.lit.js.map +1 -1
  72. package/dist/generated/templates/FilterMenuTemplate.lit.js +3 -3
  73. package/dist/generated/templates/FilterMenuTemplate.lit.js.map +1 -1
  74. package/dist/generated/templates/HeroBannerTemplate.lit.js +2 -2
  75. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +1 -1
  76. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +4 -4
  77. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  78. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  79. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  80. package/dist/generated/templates/ListSelectAllTemplate.lit.js +1 -1
  81. package/dist/generated/templates/ListSelectAllTemplate.lit.js.map +1 -1
  82. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  83. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  84. package/dist/generated/templates/SearchTemplate.lit.js +2 -2
  85. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  86. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  87. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  88. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +4 -0
  89. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +11 -0
  90. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -0
  91. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +4 -0
  92. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +9 -0
  93. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -0
  94. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +7 -10
  95. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  96. package/dist/generated/templates/SelectBoxTemplate.lit.js +1 -1
  97. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  98. package/dist/generated/templates/StatusBadgeTemplate.lit.d.ts +4 -0
  99. package/dist/generated/templates/StatusBadgeTemplate.lit.js +5 -0
  100. package/dist/generated/templates/StatusBadgeTemplate.lit.js.map +1 -0
  101. package/dist/generated/themes/Avatar.css.js +1 -1
  102. package/dist/generated/themes/Avatar.css.js.map +1 -1
  103. package/dist/generated/themes/Checkbox.css.js +1 -1
  104. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  105. package/dist/generated/themes/CountrySelector.css.js +1 -1
  106. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  107. package/dist/generated/themes/Dropdown.css.js +1 -1
  108. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  109. package/dist/generated/themes/FilterMenu.css.js +1 -1
  110. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  111. package/dist/generated/themes/HeroBanner.css.js +1 -1
  112. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  113. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  114. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  115. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  116. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  117. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  118. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  119. package/dist/generated/themes/Search.css.js +1 -1
  120. package/dist/generated/themes/Search.css.js.map +1 -1
  121. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  122. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  123. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +3 -0
  124. package/dist/generated/themes/SecondaryNavigationItem.css.js +9 -0
  125. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -0
  126. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +3 -0
  127. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +9 -0
  128. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -0
  129. package/dist/generated/themes/Slider.css.js +1 -1
  130. package/dist/generated/themes/Slider.css.js.map +1 -1
  131. package/dist/generated/themes/StatusBadge.css.d.ts +3 -0
  132. package/dist/generated/themes/StatusBadge.css.js +9 -0
  133. package/dist/generated/themes/StatusBadge.css.js.map +1 -0
  134. package/dist/i18n/messagebundle.properties +12 -1
  135. package/dist/i18n/messagebundle_en.properties +8 -1
  136. package/dist/vscode.html-custom-data.json +131 -3
  137. package/dist/web-types.json +203 -5
  138. package/package.json +1 -1
  139. package/src/Avatar.ts +12 -3
  140. package/src/CountrySelector.hbs +2 -1
  141. package/src/CountrySelector.ts +4 -1
  142. package/src/Dropdown.hbs +0 -1
  143. package/src/FilterMenu.hbs +5 -1
  144. package/src/FilterMenu.ts +60 -10
  145. package/src/HeroBanner.hbs +24 -21
  146. package/src/InputGroup.ts +6 -5
  147. package/src/List.ts +92 -21
  148. package/src/ListGroupHeader.hbs +9 -5
  149. package/src/ListItem.hbs +2 -1
  150. package/src/ListItem.ts +0 -7
  151. package/src/ListItemBase.ts +14 -0
  152. package/src/ListSelectAll.hbs +1 -0
  153. package/src/PhoneNumberField.ts +1 -1
  154. package/src/Search.hbs +3 -2
  155. package/src/Search.ts +37 -10
  156. package/src/SearchSuggestions.hbs +1 -1
  157. package/src/SearchableListBase.hbs +2 -0
  158. package/src/SecondaryNavigation.hbs +50 -72
  159. package/src/SecondaryNavigation.ts +171 -195
  160. package/src/SecondaryNavigationItem.hbs +63 -0
  161. package/src/SecondaryNavigationItem.ts +358 -0
  162. package/src/SecondaryNavigationItemBase.ts +115 -0
  163. package/src/SecondaryNavigationSubItem.hbs +41 -0
  164. package/src/SecondaryNavigationSubItem.ts +123 -0
  165. package/src/SelectBox.hbs +1 -0
  166. package/src/SelectBox.ts +16 -1
  167. package/src/StatusBadge.hbs +9 -0
  168. package/src/StatusBadge.ts +129 -0
  169. package/src/Tab.ts +1 -1
  170. package/src/generated/i18n/i18n-defaults.ts +2 -2
  171. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  172. package/src/generated/templates/DropdownTemplate.lit.ts +1 -1
  173. package/src/generated/templates/FilterMenuTemplate.lit.ts +3 -3
  174. package/src/generated/templates/HeroBannerTemplate.lit.ts +2 -2
  175. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  176. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  177. package/src/generated/templates/ListSelectAllTemplate.lit.ts +1 -1
  178. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  179. package/src/generated/templates/SearchTemplate.lit.ts +2 -2
  180. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  181. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +16 -0
  182. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +14 -0
  183. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +7 -10
  184. package/src/generated/templates/SelectBoxTemplate.lit.ts +1 -1
  185. package/src/generated/templates/StatusBadgeTemplate.lit.ts +10 -0
  186. package/src/generated/themes/Avatar.css.ts +1 -1
  187. package/src/generated/themes/Checkbox.css.ts +1 -1
  188. package/src/generated/themes/CountrySelector.css.ts +1 -1
  189. package/src/generated/themes/Dropdown.css.ts +1 -1
  190. package/src/generated/themes/FilterMenu.css.ts +1 -1
  191. package/src/generated/themes/HeroBanner.css.ts +1 -1
  192. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  193. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  194. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  195. package/src/generated/themes/Search.css.ts +1 -1
  196. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  197. package/src/generated/themes/SecondaryNavigationItem.css.ts +13 -0
  198. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +13 -0
  199. package/src/generated/themes/Slider.css.ts +1 -1
  200. package/src/generated/themes/StatusBadge.css.ts +13 -0
  201. package/src/i18n/messagebundle.properties +12 -1
  202. package/src/i18n/messagebundle_en.properties +8 -1
  203. package/src/themes/Avatar.css +20 -0
  204. package/src/themes/Checkbox.css +12 -0
  205. package/src/themes/CountrySelector.css +4 -0
  206. package/src/themes/Dropdown.css +2 -0
  207. package/src/themes/FilterMenu.css +10 -0
  208. package/src/themes/HeroBanner.css +42 -6
  209. package/src/themes/MediaPlayer.css +3 -2
  210. package/src/themes/PhoneNumberField.css +4 -0
  211. package/src/themes/Search.css +11 -7
  212. package/src/themes/SecondaryNavigation.css +44 -302
  213. package/src/themes/SecondaryNavigationItem.css +220 -0
  214. package/src/themes/SecondaryNavigationSubItem.css +118 -0
  215. package/src/themes/StatusBadge.css +135 -0
  216. package/dist/assets/messagebundle_en-26cd7a92.js +0 -1
package/dist/Search.js CHANGED
@@ -33,6 +33,7 @@ import SearchCss from "./generated/themes/Search.css.js";
33
33
  import SearchSuggestionsCss from "./generated/themes/SearchSuggestions.css.js";
34
34
  import retryUntilSuccessful from "./utils/retryUntilSuccessful.js";
35
35
  const SearchIcon = "sap-icon://search";
36
+ const SuggestionsPopoverId = "suggestions-popover";
36
37
  export var Mode;
37
38
  (function (Mode) {
38
39
  Mode["Standard"] = "Standard";
@@ -98,6 +99,7 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
98
99
  this.handleEnterKey(e);
99
100
  this.handleTabKey(e);
100
101
  this.handleEscapeKey(e);
102
+ this.fireEvent("search-keydown", e);
101
103
  };
102
104
  this._handleResizeBound = this._handleResize.bind(this);
103
105
  }
@@ -440,13 +442,14 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
440
442
  this.handleDebounce();
441
443
  }
442
444
  handleEnterKey(e) {
443
- if (isEnter(e) && !this.open) {
444
- e.preventDefault();
445
- this.handleSubmitValue();
446
- }
447
- if (isEnter(e) && this.open) {
448
- this.Suggestion?.onEnter(e);
449
- this.fireDropdownItemClick(this.value);
445
+ if (isEnter(e)) {
446
+ if (!this.open) {
447
+ e.preventDefault();
448
+ }
449
+ else {
450
+ this.Suggestion?.onEnter(e);
451
+ this.fireDropdownItemClick(this.value);
452
+ }
450
453
  this.handleSubmitValue();
451
454
  }
452
455
  }
@@ -456,9 +459,12 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
456
459
  }
457
460
  }
458
461
  handleEscapeKey(e) {
459
- if (isEscape(e) && this.open) {
460
- this.Suggestion?.onEscape(e);
461
- this.handleClassToRoot();
462
+ if (isEscape(e)) {
463
+ if (this.open) {
464
+ this.Suggestion?.onEscape(e);
465
+ this.handleClassToRoot();
466
+ }
467
+ this.fireEvent("handle-close-search");
462
468
  }
463
469
  }
464
470
  handleKeyDownPopover(e) {
@@ -467,11 +473,13 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
467
473
  this.handlePrevTabKeyList(e);
468
474
  this.handleDownKeyList(e);
469
475
  this.handleUpKeyList(e);
476
+ this.handleEscapeKey(e);
470
477
  }
471
478
  }
472
479
  handleTabKeyList(e) {
473
480
  if (isTabNext(e)) {
474
481
  this.Suggestion?.onKeyTabList(e);
482
+ this.handleClassToRoot();
475
483
  }
476
484
  }
477
485
  handlePrevTabKeyList(e) {
@@ -589,6 +597,15 @@ let UDExSearch = UDExSearch_1 = class UDExSearch extends UI5Element {
589
597
  get isShowRecommendedList() {
590
598
  return !!this.recommendedList?.length;
591
599
  }
600
+ get hasPopoverContent() {
601
+ return !!(this.suggestedList?.length || this.recommendedList?.length);
602
+ }
603
+ get getAriaControls() {
604
+ return this.hasPopoverContent ? this.getSuggestionsPopoverId : "";
605
+ }
606
+ get getSuggestionsPopoverId() {
607
+ return SuggestionsPopoverId;
608
+ }
592
609
  get isShowSubmitButton() {
593
610
  return this.showSubmitButton;
594
611
  }
@@ -758,6 +775,14 @@ UDExSearch = UDExSearch_1 = __decorate([
758
775
  */
759
776
  ,
760
777
  event("handle-value-reset")
778
+ /**
779
+ * Fired event when the user presses escape in search field.
780
+ *
781
+ * @event sap.ui.webc.web-components.UDExSearch#handleCloseSearch
782
+ * @public
783
+ */
784
+ ,
785
+ event("handle-close-search")
761
786
  /**
762
787
  * Fired event when the user clicks on the item inside the popover.
763
788
  *
@@ -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} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport List from \"./List.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents/dist/Icon.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} 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\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}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/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 ([Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies, List] : [List]);\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 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 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 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 constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExSearch.i18nBundle = await getI18nBundle(\"udex-search\");\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) {\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 };\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() {\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 dropdown.showAt(this.getPrefixButton());\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(\"udex-search__prefix--show-popover\");\n this.handleItemClick();\n }\n }\n\n private handleItemClick() {\n this.dropdownPrefix[0].addEventListener(\"item-press\", (e: any) => {\n const selectedItemPrefix = e.detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n });\n }\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n\n dropdown.close();\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n\n wrapper.classList.remove(\"udex-search__prefix--show-popover\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n this.dropdownPrefix[0].removeEventListener(\"item-press\", () => {});\n }\n\n handleInputClick(): void {\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: MouseEvent): 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.shadowRoot?.querySelector(\"[udex-id='search-input']\")?.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.Suggestion.open();\n }\n\n this.handleClassToRoot();\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleClassToRoot();\n this.handleAriaExpanded();\n this.openSuggestionPopup = false;\n }\n }\n\n handleClassToRoot() {\n const hasAdditionRootClass = !this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.contains(\"udex-search__root--show-popover\");\n\n if (this.mode === Mode.HomeSearch && hasAdditionRootClass && this.open) {\n this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.add(\"udex-search__root--show-popover\");\n }\n\n if (this.mode === Mode.HomeSearch && !hasAdditionRootClass && !this.open) {\n this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.remove(\"udex-search__root--show-popover\");\n }\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 '@udex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\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: MouseEvent) => {\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 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 };\n\n handleEnterKey(e: KeyboardEvent) {\n if (isEnter(e) && !this.open) {\n e.preventDefault();\n this.handleSubmitValue();\n }\n if (isEnter(e) && this.open) {\n this.Suggestion?.onEnter(e);\n this.fireDropdownItemClick(this.value);\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) && this.open) {\n this.Suggestion?.onEscape(e);\n this.handleClassToRoot();\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 }\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.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.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: MouseEvent): void {\n e.stopPropagation();\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.handleBlur();\n this.fireEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n }\n\n onVoice(e: MouseEvent): 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 onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n (this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement)?.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;\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 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 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 classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n return this.isHomeSearchMode || this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--home\" : \"\";\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;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES) as string;\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} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport List from \"./List.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport \"@ui5/webcomponents/dist/Icon.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} 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}\n\nexport enum Mode {\n Standard = \"Standard\",\n HomeSearch = \"Home Search\"\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-search</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/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 ([Popover] as Array<typeof UI5Element>).concat(Suggestion ? [...Suggestion.dependencies, List] : [List]);\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 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 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 constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n static async onDefine(): Promise<void> {\n UDExSearch.i18nBundle = await getI18nBundle(\"udex-search\");\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) {\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 };\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() {\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 dropdown.showAt(this.getPrefixButton());\n dropdown.style.width = `${button.offsetWidth + 1}px`;\n button.classList.add(\"udex-search__prefix-button--active\");\n wrapper.classList.add(\"udex-search__prefix--show-popover\");\n this.handleItemClick();\n }\n }\n\n private handleItemClick() {\n this.dropdownPrefix[0].addEventListener(\"item-press\", (e: any) => {\n const selectedItemPrefix = e.detail.item as ListItemBase;\n this.labelPrefix = selectedItemPrefix.innerText;\n this.fireEvent(\"prefix-item-click\", { item: selectedItemPrefix });\n this.onClosePrefixPopover();\n });\n }\n\n onClosePrefixPopover() {\n const dropdown = this.getPrefixPopover();\n\n dropdown.close();\n this.handleAfterClosePrefixPopover();\n }\n\n handleAfterClosePrefixPopover() {\n const wrapper = this.getPrefixWrapper();\n const button = this.getPrefixButton();\n\n wrapper.classList.remove(\"udex-search__prefix--show-popover\");\n button.classList.remove(\"udex-search__prefix-button--active\");\n this.dropdownPrefix[0].removeEventListener(\"item-press\", () => {});\n }\n\n handleInputClick(): void {\n if (this.showPopoverWhenClickedIntoInput) {\n this.onOpenPopover();\n }\n }\n\n onSubmit(e: MouseEvent): 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.shadowRoot?.querySelector(\"[udex-id='search-input']\")?.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.Suggestion.open();\n }\n\n this.handleClassToRoot();\n this.handleAriaExpanded();\n }\n }\n\n onClosePopover(): void {\n if (this.showSuggestedPopover) {\n this.Suggestion!.close();\n this.handleClassToRoot();\n this.handleAriaExpanded();\n this.openSuggestionPopup = false;\n }\n }\n\n handleClassToRoot() {\n const hasAdditionRootClass = !this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.contains(\"udex-search__root--show-popover\");\n\n if (this.mode === Mode.HomeSearch && hasAdditionRootClass && this.open) {\n this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.add(\"udex-search__root--show-popover\");\n }\n\n if (this.mode === Mode.HomeSearch && !hasAdditionRootClass && !this.open) {\n this.shadowRoot?.querySelector(\".udex-search__root\")?.classList.remove(\"udex-search__root--show-popover\");\n }\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 '@udex/webcomponents/dist/features/SearchSuggestionsPopover.js' module to use udex-search suggestions\");\n }\n }\n\n onAfterRendering(): void {\n if (this.showSuggestedPopover) {\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: MouseEvent) => {\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 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 this.fireDropdownItemClick(this.value);\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 this.handleClassToRoot();\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 this.handleClassToRoot();\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.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.isFocusedOnTextfield = false;\n this.focusClasses = \"\";\n }\n\n onReset(e: MouseEvent): void {\n e.stopPropagation();\n this.value = \"\";\n this.showResetButton = false;\n this.onClosePopover();\n this.handleBlur();\n this.fireEvent(\"handle-value-reset\");\n this.Suggestion?.resetFocusState();\n }\n\n handleKeyDownReset(e: KeyboardEvent) {\n if (isTabPrevious(e) && this.open) {\n this.Suggestion?.handlePrevTabReset(e);\n }\n }\n\n onVoice(e: MouseEvent): 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 onSpeechStart(): void {\n this.speechRecognition.onstart = () => {\n this.voiceActiveClass = this._voiceActiveClassName;\n (this.shadowRoot?.querySelector(\"[id='search-input']\") as HTMLInputElement)?.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;\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 getAriaControls(): string {\n return this.hasPopoverContent ? this.getSuggestionsPopoverId : \"\";\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 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 classWithPrefix(): string {\n return this.isHomeSearchWithPrefixMode ? \"udex-search-prefix\" : \"\";\n }\n\n get homeSearchPopoverClass(): string {\n return this.isHomeSearchMode || this.isHomeSearchWithPrefixMode ? \"udex-search-suggestions__root--home\" : \"\";\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;\n }\n\n get accInfo() {\n return {\n \"ariaLabel\": this.accessibleName || undefined,\n };\n }\n\n get suggestionsAccessibleName(): string {\n return UDExSearch.i18nBundle.getText(AVAILABLE_VALUES) as string;\n }\n}\n\nUDExSearch.define();\n\nexport default UDExSearch;\n"]}
@@ -1,23 +1,17 @@
1
1
  import UI5Element, { ChangeInfo } from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
3
- export declare enum Target {
4
- _blank = "_blank",
5
- _parent = "_parent",
6
- _self = "_self",
7
- _top = "_top"
8
- }
9
- export type NavItem = {
10
- path: string;
11
- mobileLinkTitle: string;
12
- target: Target;
13
- title: string;
14
- active?: boolean;
15
- };
2
+ import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
3
+ import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
16
4
  export type SecondaryNavigationItemClickDetail = {
17
5
  originalEvent: Event;
18
- clickedItem: HTMLElement;
6
+ clickedItem: UDExSecondaryNavigationItem;
19
7
  clickedIndex: number;
20
8
  };
9
+ export type SecondaryNavigationSubItemClickDetail = {
10
+ originalEvent: Event;
11
+ clickedItem: {
12
+ items: Array<NavItem>;
13
+ };
14
+ };
21
15
  /**
22
16
  * @class
23
17
  *
@@ -70,15 +64,22 @@ declare class UDExSecondaryNavigation extends UI5Element {
70
64
  * @public
71
65
  */
72
66
  title: string;
73
- _dropdownMoreIsOpen: boolean;
67
+ /**
68
+ * Defines the href of the title.
69
+ *
70
+ * @default ""
71
+ * @public
72
+ */
73
+ titleHref: string;
74
+ _selectedMore: boolean;
74
75
  _overflowItems: Array<NavItem>;
75
- _navItems: Array<NavItem>;
76
+ _visibleItems: Array<NavItem>;
76
77
  _requestRender: boolean;
77
78
  _mobileBtnExpanded: boolean;
79
+ _navItems: Array<NavItem>;
78
80
  _showMoreButton: boolean;
79
- _navigationList: Array<NavItem> | undefined;
80
- _dropdown: HTMLElement | null | undefined;
81
81
  _rootHolder: HTMLElement | null | undefined;
82
+ _clickedNavItem: UDExSecondaryNavigationItem;
82
83
  _boundReflowItems: () => void;
83
84
  static i18nBundle: any;
84
85
  static onDefine(): Promise<void>;
@@ -90,43 +91,30 @@ declare class UDExSecondaryNavigation extends UI5Element {
90
91
  refreshRendering(): void;
91
92
  reflowItems(): void;
92
93
  handleKeyDown(e: KeyboardEvent): void;
93
- handleEscapeKey(e: KeyboardEvent): void;
94
- handleKeyDownDropdown(e: KeyboardEvent): void;
95
- handleLeftArrow(e: KeyboardEvent): void;
96
- handleRightArrow(e: KeyboardEvent): void;
97
- handleUpArrow(e: KeyboardEvent): void;
98
- handleDownArrow(e: KeyboardEvent): void;
99
- handleOutsideClick(): void;
100
- handleMobileOpen(): void;
101
- handleToggleDropdown(): void;
102
- toggleActiveClass(): void;
103
94
  focusPrevNavItem(e: KeyboardEvent): void;
104
95
  focusNextNavItem(e: KeyboardEvent): void;
105
- onCloseDropdown(): void;
106
96
  getItemWidth(item: NavItem): number;
107
- getCurrentIndex(item: HTMLElement): number;
108
- getListItemByIndex(index: number): HTMLElement | null;
109
- getDropdown(): HTMLElement;
110
- getMobileButtonMenu(): HTMLElement;
111
- getMoreButton(): HTMLElement;
112
97
  getMoreButtonWidth(): number;
98
+ getCurrentIndex(item: UDExSecondaryNavigationItem): number;
99
+ handleItemClick(e: CustomEvent): void;
100
+ handleSubItemClick(e: CustomEvent): void;
101
+ setActiveItem(navItems: Array<NavItem>, clickedItem: UDExSecondaryNavigationItemBase): void;
102
+ handleOutsideClick(): void;
103
+ closePrevDropdown(clickedItemId: string): void;
113
104
  parseArrayFromString<T>(string: string): T[];
114
- handleNavigationClick(e: MouseEvent): void;
115
- get navigationItems(): Array<HTMLElement>;
116
- get domNavItems(): Array<HTMLElement>;
105
+ get domNavItems(): Array<UDExSecondaryNavigationItem>;
117
106
  get rootHolder(): HTMLElement;
118
107
  get heading(): HTMLElement;
108
+ get mobileNav(): UDExSecondaryNavigationItem;
119
109
  get optionalButtons(): HTMLElement | null | undefined;
120
- get linksList(): HTMLElement | null | undefined;
121
110
  get moreButtonText(): string;
122
- get activeItemText(): string;
123
- get moreClass(): string;
124
- get navigationList(): Array<NavItem>;
125
- get items(): Array<NavItem>;
126
- get moreIsActive(): boolean;
127
- get rootClass(): string;
111
+ get parsedItems(): Array<NavItem>;
112
+ get visibleItems(): Array<NavItem>;
128
113
  get hasBreadcrumbsSlot(): boolean;
129
- get hasButtonsSlot(): boolean;
114
+ get hasDesktopButtonsSlot(): boolean;
115
+ get hasMobileButtonsSlot(): boolean;
116
+ get hasButtons(): boolean;
130
117
  get isDesktopScreen(): boolean;
118
+ get isMobileScreen(): boolean;
131
119
  }
132
120
  export default UDExSecondaryNavigation;