@sapudex/web-components 0.111.0 → 0.114.2

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 (189) hide show
  1. package/.npmrc +1 -2
  2. package/bundle.esm.js +1 -0
  3. package/dist/AccordionItem.d.ts +7 -0
  4. package/dist/AccordionItem.js +6 -2
  5. package/dist/AccordionItem.js.map +1 -1
  6. package/dist/CountrySelector.d.ts +5 -7
  7. package/dist/CountrySelector.js +12 -7
  8. package/dist/CountrySelector.js.map +1 -1
  9. package/dist/Dropdown.d.ts +10 -0
  10. package/dist/Dropdown.js +10 -0
  11. package/dist/Dropdown.js.map +1 -1
  12. package/dist/Footer.d.ts +40 -1
  13. package/dist/Footer.js +151 -1
  14. package/dist/Footer.js.map +1 -1
  15. package/dist/InputGroup.d.ts +75 -0
  16. package/dist/InputGroup.js +101 -0
  17. package/dist/InputGroup.js.map +1 -0
  18. package/dist/MastheadMobileMenu.d.ts +4 -1
  19. package/dist/MastheadMobileMenu.js +10 -3
  20. package/dist/MastheadMobileMenu.js.map +1 -1
  21. package/dist/PhoneNumberField.d.ts +8 -0
  22. package/dist/PhoneNumberField.js +23 -10
  23. package/dist/PhoneNumberField.js.map +1 -1
  24. package/dist/Search.d.ts +58 -2
  25. package/dist/Search.js +159 -12
  26. package/dist/Search.js.map +1 -1
  27. package/dist/SecondaryNavigation.d.ts +5 -1
  28. package/dist/SecondaryNavigation.js +18 -2
  29. package/dist/SecondaryNavigation.js.map +1 -1
  30. package/dist/SelectBox.d.ts +6 -0
  31. package/dist/SelectBox.js +14 -1
  32. package/dist/SelectBox.js.map +1 -1
  33. package/dist/Table.d.ts +5 -5
  34. package/dist/Table.js +5 -5
  35. package/dist/Table.js.map +1 -1
  36. package/dist/Tag.d.ts +7 -1
  37. package/dist/Tag.js +6 -2
  38. package/dist/Tag.js.map +1 -1
  39. package/dist/TextArea.js.map +1 -1
  40. package/dist/assets/{bundle.esm-b7920968.js → bundle.esm-ab45813e.js} +181 -179
  41. package/dist/css/themes/AccordionItem.css +1 -1
  42. package/dist/css/themes/Breadcrumbs.css +1 -1
  43. package/dist/css/themes/CountrySelector.css +1 -1
  44. package/dist/css/themes/DatePicker.css +1 -1
  45. package/dist/css/themes/Dropdown.css +1 -1
  46. package/dist/css/themes/InputGroup.css +1 -0
  47. package/dist/css/themes/MastheadItem.css +1 -1
  48. package/dist/css/themes/MastheadMenuItem.css +1 -1
  49. package/dist/css/themes/MastheadShell.css +1 -1
  50. package/dist/css/themes/PhoneNumberField.css +1 -1
  51. package/dist/css/themes/RatingIndicator.css +1 -1
  52. package/dist/css/themes/Search.css +1 -1
  53. package/dist/css/themes/SearchSuggestions.css +1 -1
  54. package/dist/css/themes/Slider.css +1 -1
  55. package/dist/css/themes/Tag.css +1 -1
  56. package/dist/css/themes/TextField.css +1 -1
  57. package/dist/custom-elements-internal.json +405 -53
  58. package/dist/custom-elements.json +358 -52
  59. package/dist/features/SearchSuggestionsPopover.d.ts +3 -3
  60. package/dist/features/SearchSuggestionsPopover.js +16 -18
  61. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  62. package/dist/generated/templates/AccordionItemTemplate.lit.js +2 -1
  63. package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
  64. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  65. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  66. package/dist/generated/templates/FooterTemplate.lit.js +15 -15
  67. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  68. package/dist/generated/templates/InputGroupTemplate.lit.d.ts +4 -0
  69. package/dist/generated/templates/InputGroupTemplate.lit.js +7 -0
  70. package/dist/generated/templates/InputGroupTemplate.lit.js.map +1 -0
  71. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +15 -10
  72. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  73. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  74. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  75. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +11 -10
  76. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  77. package/dist/generated/templates/SearchTemplate.lit.js +11 -10
  78. package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
  79. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +2 -1
  80. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  81. package/dist/generated/themes/AccordionItem.css.js +1 -1
  82. package/dist/generated/themes/AccordionItem.css.js.map +1 -1
  83. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  84. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  85. package/dist/generated/themes/CountrySelector.css.js +1 -1
  86. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  87. package/dist/generated/themes/DatePicker.css.js +1 -1
  88. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  89. package/dist/generated/themes/Dropdown.css.js +1 -1
  90. package/dist/generated/themes/Dropdown.css.js.map +1 -1
  91. package/dist/generated/themes/InputGroup.css.d.ts +3 -0
  92. package/dist/generated/themes/InputGroup.css.js +9 -0
  93. package/dist/generated/themes/InputGroup.css.js.map +1 -0
  94. package/dist/generated/themes/MastheadItem.css.js +1 -1
  95. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  96. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  97. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  98. package/dist/generated/themes/MastheadShell.css.js +1 -1
  99. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  100. package/dist/generated/themes/PhoneNumberField.css.js +1 -1
  101. package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
  102. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  103. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  104. package/dist/generated/themes/Search.css.js +1 -1
  105. package/dist/generated/themes/Search.css.js.map +1 -1
  106. package/dist/generated/themes/SearchSuggestions.css.js +1 -1
  107. package/dist/generated/themes/SearchSuggestions.css.js.map +1 -1
  108. package/dist/generated/themes/Slider.css.js +1 -1
  109. package/dist/generated/themes/Slider.css.js.map +1 -1
  110. package/dist/generated/themes/Tag.css.js +1 -1
  111. package/dist/generated/themes/Tag.css.js.map +1 -1
  112. package/dist/generated/themes/TextField.css.js +1 -1
  113. package/dist/generated/themes/TextField.css.js.map +1 -1
  114. package/dist/types/callback.d.ts +2 -0
  115. package/dist/types/callback.js +2 -0
  116. package/dist/types/callback.js.map +1 -0
  117. package/dist/utils/debounce.d.ts +2 -2
  118. package/dist/utils/debounce.js.map +1 -1
  119. package/dist/utils/retryUntilSuccessful.d.ts +3 -0
  120. package/dist/utils/retryUntilSuccessful.js +21 -0
  121. package/dist/utils/retryUntilSuccessful.js.map +1 -0
  122. package/dist/vscode.html-custom-data.json +48 -12
  123. package/dist/web-types.json +205 -29
  124. package/package.json +1 -1
  125. package/src/AccordionItem.hbs +12 -1
  126. package/src/AccordionItem.ts +11 -2
  127. package/src/CountrySelector.hbs +1 -2
  128. package/src/CountrySelector.ts +18 -20
  129. package/src/Dropdown.ts +10 -0
  130. package/src/Footer.hbs +154 -91
  131. package/src/Footer.ts +158 -1
  132. package/src/InputGroup.hbs +20 -0
  133. package/src/InputGroup.ts +136 -0
  134. package/src/MastheadMobileMenu.hbs +51 -28
  135. package/src/MastheadMobileMenu.ts +12 -3
  136. package/src/MastheadProfileMenu.hbs +1 -1
  137. package/src/PhoneNumberField.ts +27 -3
  138. package/src/Search.hbs +23 -1
  139. package/src/Search.ts +203 -15
  140. package/src/SearchSuggestions.hbs +46 -48
  141. package/src/SecondaryNavigation.hbs +6 -4
  142. package/src/SecondaryNavigation.ts +23 -3
  143. package/src/SelectBox.ts +22 -0
  144. package/src/Table.ts +7 -7
  145. package/src/Tag.ts +12 -3
  146. package/src/TextArea.ts +1 -1
  147. package/src/features/SearchSuggestionsPopover.ts +18 -20
  148. package/src/generated/templates/AccordionItemTemplate.lit.ts +2 -1
  149. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  150. package/src/generated/templates/FooterTemplate.lit.ts +15 -15
  151. package/src/generated/templates/InputGroupTemplate.lit.ts +12 -0
  152. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +15 -10
  153. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  154. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +11 -10
  155. package/src/generated/templates/SearchTemplate.lit.ts +10 -9
  156. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +2 -1
  157. package/src/generated/themes/AccordionItem.css.ts +1 -1
  158. package/src/generated/themes/Breadcrumbs.css.ts +1 -1
  159. package/src/generated/themes/CountrySelector.css.ts +1 -1
  160. package/src/generated/themes/DatePicker.css.ts +1 -1
  161. package/src/generated/themes/Dropdown.css.ts +1 -1
  162. package/src/generated/themes/InputGroup.css.ts +13 -0
  163. package/src/generated/themes/MastheadItem.css.ts +1 -1
  164. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  165. package/src/generated/themes/MastheadShell.css.ts +1 -1
  166. package/src/generated/themes/PhoneNumberField.css.ts +1 -1
  167. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  168. package/src/generated/themes/Search.css.ts +1 -1
  169. package/src/generated/themes/SearchSuggestions.css.ts +1 -1
  170. package/src/generated/themes/Slider.css.ts +1 -1
  171. package/src/generated/themes/Tag.css.ts +1 -1
  172. package/src/generated/themes/TextField.css.ts +1 -1
  173. package/src/themes/AccordionItem.css +20 -15
  174. package/src/themes/Breadcrumbs.css +4 -2
  175. package/src/themes/CountrySelector.css +12 -1
  176. package/src/themes/DatePicker.css +1 -1
  177. package/src/themes/Dropdown.css +2 -2
  178. package/src/themes/InputGroup.css +19 -0
  179. package/src/themes/MastheadItem.css +2 -7
  180. package/src/themes/MastheadMenuItem.css +0 -4
  181. package/src/themes/MastheadShell.css +9 -10
  182. package/src/themes/PhoneNumberField.css +13 -3
  183. package/src/themes/Search.css +160 -17
  184. package/src/themes/SearchSuggestions.css +7 -1
  185. package/src/themes/Tag.css +6 -1
  186. package/src/themes/TextField.css +10 -1
  187. package/src/types/callback.ts +3 -0
  188. package/src/utils/debounce.ts +1 -1
  189. package/src/utils/retryUntilSuccessful.ts +23 -0
package/.npmrc CHANGED
@@ -1,3 +1,2 @@
1
1
  # Auto detect the chromedriver version
2
- detect_chromedriver_version=true
3
- loglevel=verbose
2
+ detect_chromedriver_version=true
package/bundle.esm.js CHANGED
@@ -38,6 +38,7 @@ import "./dist/TruncatedText.js";
38
38
  import "./dist/Tag.js";
39
39
  import "./dist/Tile.js";
40
40
  import "./dist/Checkbox.js";
41
+ import "./dist/InputGroup.js";
41
42
  import "./dist/Tooltip.js";
42
43
  import "./dist/Badge.js";
43
44
  import "./dist/RadioButton.js";
@@ -22,6 +22,13 @@ import "@ui5/webcomponents-icons/dist/feeder-arrow.js";
22
22
  * @public
23
23
  */
24
24
  declare class UDExAccordionItem extends UI5Element {
25
+ /**
26
+ * Defines the Badge at the end of the title item.
27
+ *
28
+ * @default ""
29
+ * @public
30
+ */
31
+ numberBadge: string;
25
32
  /**
26
33
  * Defines the title of the accordion item component.
27
34
  *
@@ -14,6 +14,7 @@ import "@ui5/webcomponents/dist/Icon.js";
14
14
  import "@ui5/webcomponents-icons/dist/AllIcons.js";
15
15
  import "@ui5/webcomponents-icons/dist/feeder-arrow.js";
16
16
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
17
+ import UDExBadge from "./Badge.js";
17
18
  import AccordionItemTemplate from "./generated/templates/AccordionItemTemplate.lit.js";
18
19
  // Styles
19
20
  import AccordionItemCss from "./generated/themes/AccordionItem.css.js";
@@ -128,7 +129,10 @@ let UDExAccordionItem = class UDExAccordionItem extends UI5Element {
128
129
  }
129
130
  };
130
131
  __decorate([
131
- property({ type: String })
132
+ property()
133
+ ], UDExAccordionItem.prototype, "numberBadge", void 0);
134
+ __decorate([
135
+ property()
132
136
  ], UDExAccordionItem.prototype, "title", void 0);
133
137
  __decorate([
134
138
  property({ type: Boolean })
@@ -148,7 +152,7 @@ UDExAccordionItem = __decorate([
148
152
  renderer: litRender,
149
153
  styles: AccordionItemCss,
150
154
  template: AccordionItemTemplate,
151
- dependencies: [],
155
+ dependencies: [UDExBadge],
152
156
  })
153
157
  /**
154
158
  * Triggered when the user focuses on an accordion item.
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/AllIcons.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\n\nimport AccordionItemTemplate from \"./generated/templates/AccordionItemTemplate.lit.js\";\n\n// Styles\nimport AccordionItemCss from \"./generated/themes/AccordionItem.css.js\";\n\ntype ToggleAllEvent = {\n isOpen: boolean\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-accordion-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/AccordionItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion-item\n * @public\n */\n@customElement({\n tag: \"udex-accordion-item\",\n renderer: litRender,\n styles: AccordionItemCss,\n template: AccordionItemTemplate,\n dependencies: [],\n})\n\n/**\n * Triggered when the user focuses on an accordion item.\n * @public\n */\n@event(\"accordion-item-focus\")\n\nclass UDExAccordionItem extends UI5Element {\n /**\n * Defines the title of the accordion item component.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String }) title!: string;\n\n /**\n * Defines if the accordion item is expanded by default\n *\n * @default false\n * @public\n */\n @property({ type: Boolean }) expanded!: boolean;\n\n /**\n * Used internally to understand the component's open or closed state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true }) isOpen = false;\n\n /**\n * Defines direction of the accordion item.\n *\n * @public\n */\n @property({ type: String }) _direction?: string;\n\n /**\n * Slot for accordion item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true }) content!: Array<Node>;\n\n _el: HTMLElement | null = null;\n\n constructor() {\n super();\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n contentKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n itemClickHandler(e: Event) {\n e.preventDefault();\n if (this._el) {\n const isActive = this._el.classList.contains(\"active\");\n this.toggleItemState(this._el, isActive);\n this.toggleExpanded();\n }\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n const customEvent = e as CustomEvent<ToggleAllEvent>;\n if (this._el) { this.toggleItemState(this._el, customEvent.detail.isOpen); }\n }\n\n toggleItemState(el: HTMLElement, isActive: boolean) {\n if (isActive) {\n el.classList.remove(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"false\");\n } else {\n el.classList.add(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"true\");\n }\n }\n\n toggleExpanded(): void {\n this.expanded = !this.expanded;\n }\n\n focusHandler() {\n this.fireEvent(\"accordion-item-focus\");\n }\n\n keydownHandler(e: KeyboardEvent) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n this.itemClickHandler(e);\n break;\n default:\n break;\n }\n }\n\n get accordionItemsClass(): string {\n let classes = \"udex-accordion-item\";\n if (this._direction === \"rtl\") {\n classes = `${classes} ${this._direction}`;\n }\n return classes;\n }\n\n get ariaLabelledby() {\n return `${this._id}-header-title`;\n }\n\n onAfterRendering() {\n this._el = this.shadowRoot?.querySelector(\".udex-accordion-item\") || null;\n const accordion = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-accordion-item\",\n ) || null;\n\n if (accordion) {\n const directionStyles: string = window\n .getComputedStyle(accordion)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n if (this._el) {\n this.toggleItemState(this._el, !this.expanded);\n }\n\n this?.parentElement?.addEventListener(\"ui5-toggle-items\", this.toggleAllHandler.bind(this));\n }\n}\n\nUDExAccordionItem.define();\n\nexport default UDExAccordionItem;\n"]}
1
+ {"version":3,"file":"AccordionItem.js","sourceRoot":"","sources":["../src/AccordionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/AllIcons.js\";\nimport \"@ui5/webcomponents-icons/dist/feeder-arrow.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UDExBadge from \"./Badge.js\";\n\nimport AccordionItemTemplate from \"./generated/templates/AccordionItemTemplate.lit.js\";\n\n// Styles\nimport AccordionItemCss from \"./generated/themes/AccordionItem.css.js\";\n\ntype ToggleAllEvent = {\n isOpen: boolean\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-accordion-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/AccordionItem.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-accordion-item\n * @public\n */\n@customElement({\n tag: \"udex-accordion-item\",\n renderer: litRender,\n styles: AccordionItemCss,\n template: AccordionItemTemplate,\n dependencies: [UDExBadge],\n})\n\n/**\n * Triggered when the user focuses on an accordion item.\n * @public\n */\n@event(\"accordion-item-focus\")\n\nclass UDExAccordionItem extends UI5Element {\n /**\n * Defines the Badge at the end of the title item.\n *\n * @default \"\"\n * @public\n */\n @property() numberBadge!: string;\n\n /**\n * Defines the title of the accordion item component.\n *\n * @default \"\"\n * @public\n */\n @property() title!: string;\n\n /**\n * Defines if the accordion item is expanded by default\n *\n * @default false\n * @public\n */\n @property({ type: Boolean }) expanded!: boolean;\n\n /**\n * Used internally to understand the component's open or closed state.\n *\n * @default false\n * @private\n */\n @property({ type: Boolean, noAttribute: true }) isOpen = false;\n\n /**\n * Defines direction of the accordion item.\n *\n * @public\n */\n @property({ type: String }) _direction?: string;\n\n /**\n * Slot for accordion item content.\n *\n * @slot\n * @public\n */\n @slot({ type: Node, \"default\": true }) content!: Array<Node>;\n\n _el: HTMLElement | null = null;\n\n constructor() {\n super();\n }\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n contentKeydown(e: KeyboardEvent) {\n e.stopPropagation();\n }\n\n itemClickHandler(e: Event) {\n e.preventDefault();\n if (this._el) {\n const isActive = this._el.classList.contains(\"active\");\n this.toggleItemState(this._el, isActive);\n this.toggleExpanded();\n }\n }\n\n toggleAllHandler(e: Event) {\n e.preventDefault();\n const customEvent = e as CustomEvent<ToggleAllEvent>;\n if (this._el) { this.toggleItemState(this._el, customEvent.detail.isOpen); }\n }\n\n toggleItemState(el: HTMLElement, isActive: boolean) {\n if (isActive) {\n el.classList.remove(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"false\");\n } else {\n el.classList.add(\"active\");\n el.querySelector(\".udex-accordion-item__header\")?.setAttribute(\"aria-expanded\", \"true\");\n }\n }\n\n toggleExpanded(): void {\n this.expanded = !this.expanded;\n }\n\n focusHandler() {\n this.fireEvent(\"accordion-item-focus\");\n }\n\n keydownHandler(e: KeyboardEvent) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n this.itemClickHandler(e);\n break;\n default:\n break;\n }\n }\n\n get accordionItemsClass(): string {\n let classes = \"udex-accordion-item\";\n if (this._direction === \"rtl\") {\n classes = `${classes} ${this._direction}`;\n }\n return classes;\n }\n\n get ariaLabelledby() {\n return `${this._id}-header-title`;\n }\n\n onAfterRendering() {\n this._el = this.shadowRoot?.querySelector(\".udex-accordion-item\") || null;\n const accordion = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-accordion-item\",\n ) || null;\n\n if (accordion) {\n const directionStyles: string = window\n .getComputedStyle(accordion)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n if (this._el) {\n this.toggleItemState(this._el, !this.expanded);\n }\n\n this?.parentElement?.addEventListener(\"ui5-toggle-items\", this.toggleAllHandler.bind(this));\n }\n}\n\nUDExAccordionItem.define();\n\nexport default UDExAccordionItem;\n"]}
@@ -1,4 +1,5 @@
1
1
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
+ import { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
2
3
  import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
3
4
  import Search from "./Search.js";
4
5
  import UDExDropdown from "./Dropdown.js";
@@ -52,12 +53,6 @@ declare class CountrySelector extends UDExSearchableListBase {
52
53
  * @public
53
54
  */
54
55
  required: boolean;
55
- /**
56
- * Allows control over the width.
57
- *
58
- * @public
59
- */
60
- width?: string;
61
56
  /**
62
57
  * Allows control over the height.
63
58
  *
@@ -124,9 +119,12 @@ declare class CountrySelector extends UDExSearchableListBase {
124
119
  selectedCountry: Country;
125
120
  _dropdown: UDExDropdown;
126
121
  _search: Search;
122
+ _handleResizeBound: ResizeObserverCallback;
127
123
  static i18nBundle: I18nBundle;
128
124
  static onDefine(): Promise<void>;
129
125
  constructor();
126
+ onEnterDOM(): void;
127
+ onExitDOM(): void;
130
128
  onBeforeRendering(): void;
131
129
  onAfterRendering(): void;
132
130
  _dropdownBeforeOpen(): void;
@@ -135,8 +133,8 @@ declare class CountrySelector extends UDExSearchableListBase {
135
133
  _dropdownBeforeClose(): void;
136
134
  get searchableList(): object;
137
135
  static get searchableListBaseTemplate(): typeof SearchableListBaseTemplate;
136
+ _handleResize(): void;
138
137
  get ariaControls(): string | null | undefined;
139
- get holderWidth(): string;
140
138
  get selectedCountryFlagX(): string;
141
139
  get selectedCountryFlagY(): string;
142
140
  get selectedCountryName(): string;
@@ -13,6 +13,7 @@ import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTempla
13
13
  import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
14
14
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
15
15
  import Button from "@ui5/webcomponents/dist/Button.js";
16
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
16
17
  import { COUNTRY_SELECT } from "./generated/i18n/i18n-defaults.js";
17
18
  import CountrySelectorTemplate from "./generated/templates/CountrySelectorTemplate.lit.js";
18
19
  import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
@@ -54,8 +55,15 @@ let CountrySelector = CountrySelector_1 = class CountrySelector extends UDExSear
54
55
  this._open = false;
55
56
  this.countryList = CountryListDB;
56
57
  this._shouldFilterItems = false;
58
+ this._handleResizeBound = this._handleResize.bind(this);
57
59
  this._filteredItems = [];
58
60
  }
61
+ onEnterDOM() {
62
+ ResizeHandler.register(this, this._handleResizeBound);
63
+ }
64
+ onExitDOM() {
65
+ ResizeHandler.deregister(this, this._handleResizeBound);
66
+ }
59
67
  onBeforeRendering() {
60
68
  if (this.blockedCountryCodes?.length) {
61
69
  const blockedCountryCodesArray = this.blockedCountryCodes.split(",").map(code => code.trim().toUpperCase());
@@ -94,13 +102,13 @@ let CountrySelector = CountrySelector_1 = class CountrySelector extends UDExSear
94
102
  static get searchableListBaseTemplate() {
95
103
  return SearchableListBaseTemplate;
96
104
  }
105
+ _handleResize() {
106
+ this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
107
+ }
97
108
  get ariaControls() {
98
109
  const list = this.shadowRoot.querySelector("udex-list");
99
110
  return list?.getAttribute("id");
100
111
  }
101
- get holderWidth() {
102
- return this.width ? this.width : "auto";
103
- }
104
112
  get selectedCountryFlagX() {
105
113
  return this.selectedCountry?.flagX;
106
114
  }
@@ -196,7 +204,7 @@ let CountrySelector = CountrySelector_1 = class CountrySelector extends UDExSear
196
204
  const selected = country.iso.toUpperCase() === this.selectedCountry.iso.toUpperCase();
197
205
  this.items.push({
198
206
  label: this.getCountryLabel(country.countryName, country.localName),
199
- content: this.getItemTemplate(country),
207
+ innerHTML: this.getItemTemplate(country),
200
208
  selected,
201
209
  _id: country.iso.toUpperCase(),
202
210
  });
@@ -227,9 +235,6 @@ __decorate([
227
235
  __decorate([
228
236
  property({ type: Boolean })
229
237
  ], CountrySelector.prototype, "required", void 0);
230
- __decorate([
231
- property({ type: String })
232
- ], CountrySelector.prototype, "width", void 0);
233
238
  __decorate([
234
239
  property({ type: String })
235
240
  ], CountrySelector.prototype, "height", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,eAAe,MAAM,0DAA0D,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,uBAAuB,MAAM,sDAAsD,CAAC;AAC3F,OAAO,0BAA0B,MAAM,yDAAyD,CAAC;AAEjG,SAAS;AACT,OAAO,kBAAkB,MAAM,2CAA2C,CAAC;AAE3E,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAW,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,sBAAsB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,wDAAwD,CAAC;AAChE,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAQvC;;;;;;;;;;;;;;;;;;GAkBG;AAgFH,IAAM,eAAe,uBAArB,MAAM,eAAgB,SAAQ,sBAAsB;IAqIlD,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,iBAAe,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,6BAA6B,CAAC,CAAC;IAClF,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAfR,UAAK,GAAa,KAAK,CAAC;QAE1B,gBAAW,GAAc,aAAa,CAAC;QAcrC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE;YACpC,MAAM,wBAAwB,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC5G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAwB,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACvH;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACrJ;QAED,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAChD;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,eAAe,CAAC,iBAAe,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,0BAA0B;QACnC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,IAAI,YAAY;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,WAAW,CAAC,CAAC;QACnE,OAAO,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC;IACrC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,sBAAsB;QACxB,MAAM,SAAS,GAAG,iCAAiC,CAAC;QACpD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;IAED,IAAI,6BAA6B;QAC/B,MAAM,SAAS,GAAG,gCAAgC,CAAC;QACnD,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,YAAY,CAAC,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;SAC3C;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC5D,CAAC;IAED,eAAe,CAAC,OAAgB;QAC9B,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,8EAA8E,OAAO,CAAC,KAAK,IAAI,CAAC;IAC3I,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,SAAkB;QACrD,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,CAAc;QAC5B,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;QACvC,MAAM,IAAI,GAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAW,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,CAAc;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;YACtD,OAAO;SACR;QAED,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAuB,CAAC;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QAEzB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;aACjC;SACF;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SACzB;IACH,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;IACH,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC7B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAe,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACtF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;gBACnE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBACtC,QAAQ;gBACR,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;aACA,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAS,aAAa,CAAE,CAAC;IAChE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,eAAe,CAAE,CAAC;IACxE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,iBAAiB,CAAE,CAAC;IAC1E,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,cAAc,IAAI,iBAAe,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,CAAC;CACF,CAAA;AA3UG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACV;AASf;IADD,QAAQ,EAAE;uDACe;AAQxB;IADD,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;0DACF;AAS3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACP;AAQnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACV;AAQf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACT;AAWhB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACP;AAYnB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACP;AAanB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACJ;AAStB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DACG;AAS5B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DACI;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DACE;AAO3B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uDACD;AAGzB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACF;AA3HtB,eAAe;IA/EpB,aAAa,CAAC;QACb,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,uBAAuB;QACjC,YAAY,EAAE;YACZ,MAAM;YACN,QAAQ;YACR,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,MAAM;SACP;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE;QACtB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB;KACF,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,EAAE;QACtB,MAAM,EAAE;YACN,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SAC/B;KACF,CAAC;GAEI,eAAe,CAmVpB;AAED,eAAe,CAAC,MAAM,EAAE,CAAC;AAEzB,eAAe,eAAe,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport { Country, CountryListDB } from \"./data/CountryListISO3166.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport TextField from \"./TextField.js\";\n\ntype CountryItem = {\n label: any,\n content: any,\n _id: any\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-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n UDExList,\n UDExListItem,\n UDExDropdown,\n TextField,\n Button,\n ],\n})\n\n/**\n * Fired before the dropdown paneis opened.\n *\n * @event sap.ui.webc.web-components.CountrySelector#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.CountrySelector#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.CountrySelector#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.CountrySelector#afterClose\n * @public\n */\n@event(\"after-close\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.CountrySelector#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\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.CountrySelector#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.CountrySelector#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\nclass CountrySelector extends UDExSearchableListBase {\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the width.\n *\n * @public\n */\n @property({ type: String })\n width?: string;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n CountrySelector.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry.toUpperCase()) || this.countryList[0];\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n }\n\n _dropdownBeforeOpen() {\n this.onResetSearch();\n this._open = true;\n this.fireEvent(\"before-open\");\n }\n\n _dropdownAfterClose() {\n this._open = false;\n this.fireEvent(\"after-close\");\n }\n\n _dropdownAfterOpen() {\n this.fireEvent(\"after-open\");\n }\n\n _dropdownBeforeClose() {\n this.fireEvent(\"before-close\");\n }\n\n get searchableList() {\n return executeTemplate(CountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"udex-list\");\n return list?.getAttribute(\"id\");\n }\n\n get holderWidth() {\n return this.width ? this.width : \"auto\";\n }\n\n get selectedCountryFlagX() {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY() {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName() {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName);\n }\n\n get countrySelectorClasses() {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses() {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages() {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled() {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName: string, localName?: string) {\n return localName ? `${countryName} (${localName})` : countryName;\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id) || this.countryList[0];\n this._dropdown.onClose();\n }\n\n handleKeyDown(e: CustomEvent) {\n if (this.disabled || this.readonly || this.displayonly) {\n return;\n }\n\n const keyEvent = e.detail as KeyboardEvent;\n const key = keyEvent.key;\n\n if (isEnter(keyEvent) || isSpace(keyEvent)) {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n } else {\n this._dropdown.onTriggerClick();\n }\n } else if (this.isLetterKey(key)) {\n this._dropdown.onOpen(this.getInput());\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n }\n }\n\n isLetterKey(key: string) {\n return /^[a-zA-Z]$/.test(key);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n content: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as CountryItem as UDExListItem);\n });\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"udex-search\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-dropdown\")!;\n }\n\n getInput(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-text-field\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.accessibleName || CountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nCountrySelector.define();\n\nexport default CountrySelector;\n"]}
1
+ {"version":3,"file":"CountrySelector.js","sourceRoot":"","sources":["../src/CountrySelector.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { COUNTRY_SELECT } from \"./generated/i18n/i18n-defaults.js\";\nimport CountrySelectorTemplate from \"./generated/templates/CountrySelectorTemplate.lit.js\";\nimport SearchableListBaseTemplate from \"./generated/templates/SearchableListBaseTemplate.lit.js\";\n\n// Styles\nimport CountrySelectorCss from \"./generated/themes/CountrySelector.css.js\";\n\nimport Search from \"./Search.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExList from \"./List.js\";\nimport { Country, CountryListDB } from \"./data/CountryListISO3166.js\";\nimport UDExSearchableListBase from \"./SearchableListBase.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport TextField from \"./TextField.js\";\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-country-selector</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/CountrySelector.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UDExSearchableListBase\n * @tagname udex-country-selector\n * @public\n */\n@customElement({\n tag: \"udex-country-selector\",\n renderer: litRender,\n styles: CountrySelectorCss,\n template: CountrySelectorTemplate,\n dependencies: [\n Search,\n UDExList,\n UDExListItem,\n UDExDropdown,\n TextField,\n Button,\n ],\n})\n\n/**\n * Fired before the dropdown paneis opened.\n *\n * @event sap.ui.webc.web-components.CountrySelector#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown pane is opened.\n *\n * @event sap.ui.webc.web-components.CountrySelector#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.CountrySelector#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the dropdown pane is closed.\n *\n * @event sap.ui.webc.web-components.CountrySelector#afterClose\n * @public\n */\n@event(\"after-close\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.CountrySelector#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\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.CountrySelector#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.CountrySelector#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\nclass CountrySelector extends UDExSearchableListBase {\n /**\n * Defines label text for the input field.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Defines the accessible ARIA name of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n accessibleName!: string;\n\n /**\n * Receives id (or many ids) of the elements that label the component.\n * @default \"\"\n * @public\n */\n @property({ defaultValue: \"\" })\n accessibleNameRef!: string;\n\n /**\n * Defines whether the component is required.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n required!: boolean;\n\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Defines whether the component is in disabled state.\n * <br><br>\n * <b>Note:</b> A disabled component is completely noninteractive.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disabled!: boolean;\n\n /**\n * Defines whether the component is read-only.\n * <br><br>\n * <b>Note:</b> A read-only component is not editable,\n * but still provides visual feedback upon user interaction.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n readonly!: boolean;\n\n /**\n * Defines whether the component is display-only.\n * <br><br>\n * <b>Note:</b> A display-only component is not editable,\n * but still provides visual feedback upon user interaction, input border is not visible.\n *\n * @default false\n * @public\n */\n\n @property({ type: Boolean })\n displayonly!: boolean;\n\n /**\n * Allows to define the initially preselected country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n preselectedCountry!: string;\n\n /**\n * Allows to define the list of blocked country.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n blockedCountryCodes?: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n searchPlaceholder!: string;\n\n /**\n *\n * @public\n */\n @property({ type: Boolean })\n hideFlagImages?: boolean;\n\n @property({ type: Boolean })\n _open?: boolean = false;\n\n countryList: Country[] = CountryListDB;\n selectedCountry!: Country;\n\n _dropdown!: UDExDropdown;\n _search!: Search;\n\n _handleResizeBound: ResizeObserverCallback;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine() {\n CountrySelector.i18nBundle = await getI18nBundle(\"sap-ui-webcomponents-bundle\");\n }\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._handleResizeBound = this._handleResize.bind(this);\n this._filteredItems = [];\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n onBeforeRendering(): void {\n if (this.blockedCountryCodes?.length) {\n const blockedCountryCodesArray = this.blockedCountryCodes.split(\",\").map(code => code.trim().toUpperCase());\n this.countryList = this.countryList.filter(country => !blockedCountryCodesArray?.includes(country.iso.toUpperCase()));\n }\n\n if (!this.selectedCountry) {\n this.selectedCountry = this.countryList.find(country => country.iso.toUpperCase() === this.preselectedCountry.toUpperCase()) || this.countryList[0];\n }\n\n this.prepareCountrySelectorItems();\n\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onAfterRendering() {\n this._dropdown = this.getDropdown();\n this._search = this.getSearch();\n }\n\n _dropdownBeforeOpen() {\n this.onResetSearch();\n this._open = true;\n this.fireEvent(\"before-open\");\n }\n\n _dropdownAfterClose() {\n this._open = false;\n this.fireEvent(\"after-close\");\n }\n\n _dropdownAfterOpen() {\n this.fireEvent(\"after-open\");\n }\n\n _dropdownBeforeClose() {\n this.fireEvent(\"before-close\");\n }\n\n get searchableList() {\n return executeTemplate(CountrySelector.searchableListBaseTemplate, this);\n }\n\n static get searchableListBaseTemplate() {\n return SearchableListBaseTemplate;\n }\n\n _handleResize() {\n this._dropdown.style.setProperty(\"--udex-dropdown-pane-width\", `${this.offsetWidth}px`);\n }\n\n get ariaControls(): string | null | undefined {\n const list = this.shadowRoot!.querySelector<UDExList>(\"udex-list\");\n return list?.getAttribute(\"id\");\n }\n\n get selectedCountryFlagX() {\n return this.selectedCountry?.flagX;\n }\n\n get selectedCountryFlagY() {\n return this.selectedCountry?.flagY;\n }\n\n get selectedCountryName() {\n return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName);\n }\n\n get countrySelectorClasses() {\n const baseClass = \"udex-country-selector__dropdown\";\n return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;\n }\n\n get countrySelectorTriggerClasses() {\n const baseClass = \"udex-country-selector__trigger\";\n const classes = [baseClass];\n\n if (this.disabled) {\n classes.push(`${baseClass}--disabled`);\n }\n\n if (this.readonly) {\n classes.push(`${baseClass}--readonly`);\n }\n\n if (this.displayonly) {\n classes.push(`${baseClass}--displayonly`);\n }\n\n return classes.join(\" \");\n }\n\n get showFlagImages() {\n return !this.hideFlagImages;\n }\n\n get isOpenerDisabled() {\n return this.readonly || this.displayonly || this.disabled;\n }\n\n getItemTemplate(country: Country) {\n return this.hideFlagImages ? undefined : `<span class=\"udex-country-selector-item__image\" style=\"background-position:${country.flagX}\">`;\n }\n\n getCountryLabel(countryName: string, localName?: string) {\n return localName ? `${countryName} (${localName})` : countryName;\n }\n\n handleItemPress(e: CustomEvent) {\n this.onItemPress(e);\n const target = e.target as HTMLElement;\n const item: any = this.getItemFromList(target?.getAttribute(\"data-token-id\") as string);\n this.selectedCountry = this.countryList.find(country => country.iso === item._id) || this.countryList[0];\n this._dropdown.onClose();\n }\n\n handleKeyDown(e: CustomEvent) {\n if (this.disabled || this.readonly || this.displayonly) {\n return;\n }\n\n const keyEvent = e.detail as KeyboardEvent;\n const key = keyEvent.key;\n\n if (isEnter(keyEvent) || isSpace(keyEvent)) {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n } else {\n this._dropdown.onTriggerClick();\n }\n } else if (this.isLetterKey(key)) {\n this._dropdown.onOpen(this.getInput());\n this._search.focus();\n this._search.value = key;\n this.onValueSearch(key);\n }\n }\n\n onValueSearch(searchValue: string) {\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n handleTriggerClick() {\n if (this._dropdown.open) {\n this._dropdown.onClose();\n }\n }\n\n isLetterKey(key: string) {\n return /^[a-zA-Z]$/.test(key);\n }\n\n handleValueSearch(e:CustomEvent) {\n this.onValueSearch(e.detail.value as string);\n }\n\n handleSubmitSearch() {\n this.onSubmitSearch();\n }\n\n handleResetSearch() {\n this.onResetSearch();\n }\n\n prepareCountrySelectorItems(): void {\n this.items.length = 0;\n this.countryList.forEach(country => {\n const selected = country.iso.toUpperCase() === this.selectedCountry.iso.toUpperCase();\n this.items.push({\n label: this.getCountryLabel(country.countryName, country.localName),\n innerHTML: this.getItemTemplate(country),\n selected,\n _id: country.iso.toUpperCase(),\n } as UDExListItem);\n });\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"udex-search\")!;\n }\n\n getDropdown(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-dropdown\")!;\n }\n\n getInput(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(\"udex-text-field\")!;\n }\n\n get effectiveAriaLabel(): string {\n return this.accessibleName || CountrySelector.i18nBundle.getText(COUNTRY_SELECT);\n }\n}\n\nCountrySelector.define();\n\nexport default CountrySelector;\n"]}
@@ -108,7 +108,17 @@ declare class UDExDropdown extends UI5Element {
108
108
  getDropdownPane(): Popover;
109
109
  getTrigger(): HTMLElement;
110
110
  onTriggerClick(): void;
111
+ /**
112
+ * Open dropdown
113
+ *
114
+ * @public
115
+ */
111
116
  onOpen(opener: HTMLElement): void;
117
+ /**
118
+ * Close dropdown
119
+ *
120
+ * @public
121
+ */
112
122
  onClose(): void;
113
123
  afterDropdownClose(): void;
114
124
  afterDropdownOpen(): void;
package/dist/Dropdown.js CHANGED
@@ -69,10 +69,20 @@ let UDExDropdown = class UDExDropdown extends UI5Element {
69
69
  this.fireEvent("click-trigger");
70
70
  }
71
71
  }
72
+ /**
73
+ * Open dropdown
74
+ *
75
+ * @public
76
+ */
72
77
  onOpen(opener) {
73
78
  const dropdown = this.getDropdownPane();
74
79
  dropdown.showAt(opener);
75
80
  }
81
+ /**
82
+ * Close dropdown
83
+ *
84
+ * @public
85
+ */
76
86
  onClose() {
77
87
  const dropdown = this.getDropdownPane();
78
88
  dropdown.close(true);
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,OAAO,MAAM,oCAAoC,CAAC;AACzD,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,0BAA0B,MAAM,iEAAiE,CAAC;AACzG,OAAO,mBAAmB,MAAM,sDAAsD,CAAC;AACvF,OAAO,gBAAgB,MAAM,+CAA+C,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAErE,SAAS;AACT,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AAmDH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IA0GnC,gBAAgB;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,eAAe;QACb,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,UAAU,EAAE;YACd,MAAM,eAAe,GAAW,MAAM;iBACnC,gBAAgB,CAAC,UAAU,CAAC;iBAC5B,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;iBAAM;gBACL,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC;aACnC;SACF;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAU,eAAe,CAAE,CAAC;IACnE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAc,gBAAgB,CAAE,CAAC;IAC5D,CAAC;IAED,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzD,IAAI,CAAC,gBAAgB,EAAE;YACrB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;SACjC;IACH,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;QAEhD,IAAI,gBAAgB,EAAE;YACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAW,CAAC,aAAa,CAAC,gBAAgB,CAAgB,CAAC;YACpF,OAAO,CAAC,KAAK,CAAC,SAAS,GAAY,IAAI,CAAC,MAAM,CAAC;SAChD;QAED,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,oBAAoB,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC;IAC1D,CAAC;CACF,CAAA;AA3LG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACT;AAShB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;mDACjC;AASnC;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;qDAC/B;AASvC;IADD,QAAQ,EAAE;oDACe;AAQxB;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC;oDACtC;AAS1C;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;6CACd;AAS7B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;4CACE;AAS5B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;4CACE;AAS5B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;6CACG;AAS7B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AASf;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0DACK;AAQ/B;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACL;AAxGlB,YAAY;IAlDjB,aAAa,CAAC;QACb,GAAG,EAAE,eAAe;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE;YACN,WAAW;YACX,0BAA0B,EAAE;SAC7B;QACD,QAAQ,EAAE,gBAAgB;QAC1B,YAAY,EAAE,CAAC,OAAO,CAAC;KACxB,CAAC;IAEF;;;;;OAKG;;IACF,KAAK,CAAC,eAAe,CAAC;IAEvB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;IAErB;;;;;OAKG;;IACF,KAAK,CAAC,YAAY,CAAC;IAEpB;;;;;OAKG;;IACF,KAAK,CAAC,cAAc,CAAC;IAEtB;;;;;OAKG;;IACF,KAAK,CAAC,aAAa,CAAC;GACf,YAAY,CAkMjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport DropdownTemplate from \"./generated/templates/DropdownTemplate.lit.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\n\n// Styles\nimport DropdownCss from \"./generated/themes/Dropdown.css\";\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-dropdown</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Dropdown.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-dropdown\n * @public\n */\n@customElement({\n tag: \"udex-dropdown\",\n renderer: litRender,\n styles: [\n DropdownCss,\n getEffectiveScrollbarStyle(),\n ],\n template: DropdownTemplate,\n dependencies: [Popover],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#clickTrigger\n * @public\n */\n@event(\"click-trigger\")\n\n/**\n * Fired before the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterClose\n * @public\n */\n@event(\"after-close\")\nclass UDExDropdown extends UI5Element {\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\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 * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n /**\n * Defines the content of the Dropdown.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the header HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n header!: Array<HTMLElement>;\n\n /**\n * Defines the footer HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Array<HTMLElement>;\n\n /**\n * Defines the trigger HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n trigger!: Array<HTMLElement>;\n\n /**\n * Indicates if the dropdown pane is open\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n open!: boolean;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines direction of the component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n onAfterRendering() {\n this.handleDirection();\n }\n\n handleDirection() {\n const filterMenu = this.shadowRoot?.querySelector(\".udex-dropdown\");\n if (filterMenu) {\n const directionStyles: string = window\n .getComputedStyle(filterMenu)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n }\n\n getDropdownPane() {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getTrigger() {\n return this.querySelector<HTMLElement>(\"[slot=trigger]\")!;\n }\n\n onTriggerClick() {\n const dropdown = this.getDropdownPane();\n const opener = this.getTrigger();\n const isOpenerDisabled = opener.hasAttribute(\"disabled\");\n\n if (!isOpenerDisabled) {\n dropdown.showAt(opener);\n this.fireEvent(\"click-trigger\");\n }\n }\n\n onOpen(opener: HTMLElement): void {\n const dropdown = this.getDropdownPane();\n dropdown.showAt(opener);\n }\n\n onClose():void {\n const dropdown = this.getDropdownPane();\n dropdown.close(true);\n }\n\n afterDropdownClose() {\n this.open = false;\n this.fireEvent(\"after-close\");\n }\n\n afterDropdownOpen() {\n this.open = true;\n this.fireEvent(\"after-open\");\n }\n\n beforeDropdownOpen() {\n const dropdown = this.getDropdownPane();\n const hasContentHeight = !!this?.height?.length;\n\n if (hasContentHeight) {\n const content = dropdown.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = <string> this.height;\n }\n\n this.fireEvent(\"before-open\");\n }\n\n beforeDropdownClose() {\n this.fireEvent(\"before-close\");\n }\n\n get hasTriggerSlot(): boolean {\n return !!this.trigger.length;\n }\n\n get hasHeaderSlot(): boolean {\n return !!this.header.length;\n }\n\n get hasFooterSlot(): boolean {\n return !!this.footer.length;\n }\n\n get disableAllowTargetOverlap() {\n return this.disableTargetOverlap?.toString() !== \"true\";\n }\n}\n\nUDExDropdown.define();\n\nexport default UDExDropdown;\n"]}
1
+ {"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport getEffectiveScrollbarStyle from \"@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js\";\nimport PopupAccessibleRole from \"@ui5/webcomponents/dist/types/PopupAccessibleRole.js\";\nimport DropdownTemplate from \"./generated/templates/DropdownTemplate.lit.js\";\nimport { PlacementType, HorizontalAlign } from \"./types/Dropdown.js\";\n\n// Styles\nimport DropdownCss from \"./generated/themes/Dropdown.css\";\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-dropdown</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import @udex/web-components/dist/Dropdown.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @tagname udex-dropdown\n * @public\n */\n@customElement({\n tag: \"udex-dropdown\",\n renderer: litRender,\n styles: [\n DropdownCss,\n getEffectiveScrollbarStyle(),\n ],\n template: DropdownTemplate,\n dependencies: [Popover],\n})\n\n/**\n * Fired event when the user clicks the trigger.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#clickTrigger\n * @public\n */\n@event(\"click-trigger\")\n\n/**\n * Fired before the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeOpen\n * @public\n */\n@event(\"before-open\")\n\n/**\n * Fired after the dropdown is opened.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterOpen\n * @public\n */\n@event(\"after-open\")\n\n/**\n * Fired before the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#beforeClose\n * @public\n */\n@event(\"before-close\")\n\n/**\n * Fired after the menu is closed.\n *\n * @event sap.ui.webc.web-components.UDExDropdown#afterClose\n * @public\n */\n@event(\"after-close\")\nclass UDExDropdown extends UI5Element {\n /**\n * Allows control over the height.\n *\n * @public\n */\n @property({ type: String })\n height?: string;\n\n /**\n * Determines on which side the component is placed at.\n *\n * @default \"Bottom\"\n * @public\n */\n @property({ type: PlacementType, defaultValue: PlacementType.Bottom })\n placementType!: `${PlacementType}`;\n\n /**\n * Determines the horizontal alignment of the component.\n *\n * @default \"Left\"\n * @public\n */\n @property({ type: HorizontalAlign, defaultValue: HorizontalAlign.Left })\n horizontalAlign!: `${HorizontalAlign}`;\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 * Allows setting a custom role.\n * @default \"Dialog\"\n * @public\n */\n @property({ type: PopupAccessibleRole, defaultValue: PopupAccessibleRole.Dialog })\n accessibleRole!: `${PopupAccessibleRole}`;\n\n /**\n * Defines the content of the Dropdown.\n *\n * @slot content\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content!: Array<HTMLElement>;\n\n /**\n * Defines the header HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n header!: Array<HTMLElement>;\n\n /**\n * Defines the footer HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n footer!: Array<HTMLElement>;\n\n /**\n * Defines the trigger HTML Element.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n trigger!: Array<HTMLElement>;\n\n /**\n * Indicates if the dropdown pane is open\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n open!: boolean;\n\n /**\n * Determines if there is no enough space, the component can be placed\n * over the target.\n * @default false\n * @public\n */\n @property({ type: Boolean })\n disableTargetOverlap?: boolean;\n\n /**\n * Defines direction of the component.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n onAfterRendering() {\n this.handleDirection();\n }\n\n handleDirection() {\n const filterMenu = this.shadowRoot?.querySelector(\".udex-dropdown\");\n if (filterMenu) {\n const directionStyles: string = window\n .getComputedStyle(filterMenu)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n }\n\n getDropdownPane() {\n return this.shadowRoot!.querySelector<Popover>(\"[ui5-popover]\")!;\n }\n\n getTrigger() {\n return this.querySelector<HTMLElement>(\"[slot=trigger]\")!;\n }\n\n onTriggerClick() {\n const dropdown = this.getDropdownPane();\n const opener = this.getTrigger();\n const isOpenerDisabled = opener.hasAttribute(\"disabled\");\n\n if (!isOpenerDisabled) {\n dropdown.showAt(opener);\n this.fireEvent(\"click-trigger\");\n }\n }\n\n /**\n * Open dropdown\n *\n * @public\n */\n onOpen(opener: HTMLElement): void {\n const dropdown = this.getDropdownPane();\n dropdown.showAt(opener);\n }\n\n /**\n * Close dropdown\n *\n * @public\n */\n onClose():void {\n const dropdown = this.getDropdownPane();\n dropdown.close(true);\n }\n\n afterDropdownClose() {\n this.open = false;\n this.fireEvent(\"after-close\");\n }\n\n afterDropdownOpen() {\n this.open = true;\n this.fireEvent(\"after-open\");\n }\n\n beforeDropdownOpen() {\n const dropdown = this.getDropdownPane();\n const hasContentHeight = !!this?.height?.length;\n\n if (hasContentHeight) {\n const content = dropdown.shadowRoot!.querySelector(\"[part=content]\") as HTMLElement;\n content.style.maxHeight = <string> this.height;\n }\n\n this.fireEvent(\"before-open\");\n }\n\n beforeDropdownClose() {\n this.fireEvent(\"before-close\");\n }\n\n get hasTriggerSlot(): boolean {\n return !!this.trigger.length;\n }\n\n get hasHeaderSlot(): boolean {\n return !!this.header.length;\n }\n\n get hasFooterSlot(): boolean {\n return !!this.footer.length;\n }\n\n get disableAllowTargetOverlap() {\n return this.disableTargetOverlap?.toString() !== \"true\";\n }\n}\n\nUDExDropdown.define();\n\nexport default UDExDropdown;\n"]}
package/dist/Footer.d.ts CHANGED
@@ -18,6 +18,35 @@ export type FooterContactNumber = {
18
18
  number: string;
19
19
  country: string;
20
20
  };
21
+ export declare const FooterBaseEvent: {
22
+ detail: {
23
+ originalEvent: {
24
+ type: {
25
+ new (type: string, eventInitDict?: PointerEventInit | undefined): PointerEvent;
26
+ prototype: PointerEvent;
27
+ };
28
+ };
29
+ };
30
+ };
31
+ export declare const FooterDetailedEvent: {
32
+ detail: {
33
+ originalEvent: {
34
+ type: {
35
+ new (type: string, eventInitDict?: PointerEventInit | undefined): PointerEvent;
36
+ prototype: PointerEvent;
37
+ };
38
+ };
39
+ name: {
40
+ type: StringConstructor;
41
+ };
42
+ sourceNode: {
43
+ type: {
44
+ new (): HTMLElement;
45
+ prototype: HTMLElement;
46
+ };
47
+ };
48
+ };
49
+ };
21
50
  /**
22
51
  * @class
23
52
  *
@@ -136,7 +165,7 @@ declare class UDExFooter extends UI5Element {
136
165
  onExitDOM(): void;
137
166
  onEnterDOM(): void;
138
167
  _handleResize(): void;
139
- onBackToTopClick(): void;
168
+ onBackToTopClick(e: Event): void;
140
169
  parseArrayFromString<T>(string: string): T[];
141
170
  get parsedRef(): string | undefined;
142
171
  get quickLinksArray(): FooterLink[];
@@ -158,5 +187,15 @@ declare class UDExFooter extends UI5Element {
158
187
  get completeListTitle(): string;
159
188
  get localCountryTitle(): string;
160
189
  get isMobile(): boolean;
190
+ _onLogoClick(e: Event): void;
191
+ _onContactPhoneClick(e: Event): void;
192
+ _onContactPhoneLocalNumbersClick(e: Event): void;
193
+ _onContactEmailClick(e: Event): void;
194
+ _onContactChatClick(e: Event): void;
195
+ _onQuickLinksClick(e: Event): void;
196
+ _onTrendingClick(e: Event): void;
197
+ _onAboutSapClick(e: Event): void;
198
+ _onSiteInformationClick(e: Event): void;
199
+ _onSocialMediaLinkClick(e: Event): void;
161
200
  }
162
201
  export default UDExFooter;
package/dist/Footer.js CHANGED
@@ -9,6 +9,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
9
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
10
10
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
11
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
12
+ import event from "@ui5/webcomponents-base/dist/decorators/event.js";
12
13
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
13
14
  import "@ui5/webcomponents-icons/dist/headset.js";
14
15
  import "@ui5/webcomponents-icons/dist/email.js";
@@ -24,6 +25,18 @@ import FooterCss from "./generated/themes/Footer.css";
24
25
  import UDExAccordionItem from "./AccordionItem.js";
25
26
  import { ABOUT_SAP, CHAT_WITH_US, CONTACT_US, EMAIL, LOCAL_COUNTRY_NAMES, PHONE_NUMBER, QUICK_LINKS, SEE_COMPLETE_LIST, SITE_INFORMATION, SOCIAL_LINK_ICON, TRENDING, } from "./generated/i18n/i18n-defaults.js";
26
27
  const BreakpointSizeS = 979;
28
+ export const FooterBaseEvent = {
29
+ detail: {
30
+ originalEvent: { type: PointerEvent },
31
+ },
32
+ };
33
+ export const FooterDetailedEvent = {
34
+ detail: {
35
+ originalEvent: { type: PointerEvent },
36
+ name: { type: String },
37
+ sourceNode: { type: HTMLElement },
38
+ },
39
+ };
27
40
  /**
28
41
  * @class
29
42
  *
@@ -63,7 +76,8 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
63
76
  _handleResize() {
64
77
  this._shouldRenderMobileMenu = this.isMobile;
65
78
  }
66
- onBackToTopClick() {
79
+ onBackToTopClick(e) {
80
+ this.fireEvent("back-to-top-click", { originalEvent: e }, true);
67
81
  window.scrollTo(0, 0);
68
82
  }
69
83
  parseArrayFromString(string) {
@@ -132,6 +146,65 @@ let UDExFooter = UDExFooter_1 = class UDExFooter extends UI5Element {
132
146
  get isMobile() {
133
147
  return window.innerWidth <= BreakpointSizeS;
134
148
  }
149
+ _onLogoClick(e) {
150
+ this.fireEvent("logo-click", { originalEvent: e }, true);
151
+ }
152
+ _onContactPhoneClick(e) {
153
+ this.fireEvent("contact-phone-click", { originalEvent: e }, true);
154
+ }
155
+ _onContactPhoneLocalNumbersClick(e) {
156
+ this.fireEvent("contact-phone-local-numbers-click", { originalEvent: e }, true);
157
+ }
158
+ _onContactEmailClick(e) {
159
+ this.fireEvent("contact-email-click", { originalEvent: e }, true);
160
+ }
161
+ _onContactChatClick(e) {
162
+ this.fireEvent("contact-chat-click", { originalEvent: e }, true);
163
+ }
164
+ _onQuickLinksClick(e) {
165
+ const sourceNode = e.composedPath()[0];
166
+ this.fireEvent("quick-links-click", {
167
+ name: sourceNode.innerText,
168
+ originalEvent: e,
169
+ sourceNode,
170
+ }, true);
171
+ }
172
+ _onTrendingClick(e) {
173
+ const sourceNode = e.composedPath()[0];
174
+ this.fireEvent("trending-click", {
175
+ name: sourceNode.innerText,
176
+ originalEvent: e,
177
+ sourceNode,
178
+ }, true);
179
+ }
180
+ _onAboutSapClick(e) {
181
+ const sourceNode = e.composedPath()[0];
182
+ this.fireEvent("about-sap-click", {
183
+ name: sourceNode.innerText,
184
+ originalEvent: e,
185
+ sourceNode,
186
+ }, true);
187
+ }
188
+ _onSiteInformationClick(e) {
189
+ const sourceNode = e.composedPath()[0];
190
+ this.fireEvent("site-information-click", {
191
+ name: sourceNode.innerText,
192
+ originalEvent: e,
193
+ sourceNode,
194
+ }, true);
195
+ }
196
+ _onSocialMediaLinkClick(e) {
197
+ const nodes = e.composedPath();
198
+ let sourceNode = nodes[0];
199
+ if (nodes[0] instanceof HTMLImageElement) {
200
+ sourceNode = nodes[1];
201
+ }
202
+ this.fireEvent("social-media-link-click", {
203
+ name: sourceNode?.dataset?.name,
204
+ originalEvent: e,
205
+ sourceNode,
206
+ }, true);
207
+ }
135
208
  };
136
209
  __decorate([
137
210
  property({ type: String, defaultValue: "" })
@@ -180,6 +253,83 @@ UDExFooter = UDExFooter_1 = __decorate([
180
253
  template: FooterTemplate,
181
254
  dependencies: [UDExAccordionItem],
182
255
  })
256
+ /**
257
+ * Triggered on click interaction with logo in footer
258
+ * @public
259
+ * @allowPreventDefault
260
+ */
261
+ ,
262
+ event("logo-click", FooterBaseEvent)
263
+ /**
264
+ * Triggered on click interaction with "Back to Top" button
265
+ * @public
266
+ * @allowPreventDefault
267
+ */
268
+ ,
269
+ event("back-to-top-click", FooterBaseEvent)
270
+ /**
271
+ * Triggered on click interaction with phone number link in footer
272
+ * @public
273
+ * @allowPreventDefault
274
+ */
275
+ ,
276
+ event("contact-phone-click", FooterBaseEvent)
277
+ /**
278
+ * Triggered on click interaction with local country numbers list link
279
+ * @public
280
+ * @allowPreventDefault
281
+ */
282
+ ,
283
+ event("contact-phone-local-numbers-click", FooterBaseEvent)
284
+ /**
285
+ * Triggered on click interaction with "Contact us by email" link
286
+ * @public
287
+ * @allowPreventDefault
288
+ */
289
+ ,
290
+ event("contact-email-click", FooterBaseEvent)
291
+ /**
292
+ * Triggered on click interaction with "Contact us by chat" link
293
+ * @public
294
+ * @allowPreventDefault
295
+ */
296
+ ,
297
+ event("contact-chat-click", FooterBaseEvent)
298
+ /**
299
+ * Triggered on click interaction with a link within "Quick Links" category
300
+ * @public
301
+ * @allowPreventDefault
302
+ */
303
+ ,
304
+ event("quick-links-click", FooterDetailedEvent)
305
+ /**
306
+ * Triggered on click interaction with a link within "Trending" category
307
+ * @public
308
+ * @allowPreventDefault
309
+ */
310
+ ,
311
+ event("trending-click", FooterDetailedEvent)
312
+ /**
313
+ * Triggered on click interaction with a link within "About SAP" category
314
+ * @public
315
+ * @allowPreventDefault
316
+ */
317
+ ,
318
+ event("about-sap-click", FooterDetailedEvent)
319
+ /**
320
+ * Triggered on click interaction with a link within "Site Information" category
321
+ * @public
322
+ * @allowPreventDefault
323
+ */
324
+ ,
325
+ event("site-information-click", FooterDetailedEvent)
326
+ /**
327
+ * Triggered on click interaction with any of the social media links within footer
328
+ * @public
329
+ * @allowPreventDefault
330
+ */
331
+ ,
332
+ event("social-media-link-click", FooterDetailedEvent)
183
333
  ], UDExFooter);
184
334
  UDExFooter.define();
185
335
  export default UDExFooter;