@sapudex/web-components 2.22.0 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/cypress/specs/CountrySelector.cy.tsx +158 -144
  2. package/cypress/specs/EventRibbon.cy.tsx +3 -1
  3. package/cypress/specs/SelectBox.cy.tsx +173 -206
  4. package/cypress/specs/Tag.cy.tsx +1 -1
  5. package/cypress/specs/TextField.cy.tsx +15 -0
  6. package/cypress/specs/Textarea.cy.tsx +15 -33
  7. package/dist/Checkbox.js +4 -0
  8. package/dist/Checkbox.js.map +1 -1
  9. package/dist/CountrySelector.d.ts +25 -142
  10. package/dist/CountrySelector.js +91 -268
  11. package/dist/CountrySelector.js.map +1 -1
  12. package/dist/FilterMenu.d.ts +14 -2
  13. package/dist/FilterMenu.js +11 -1
  14. package/dist/FilterMenu.js.map +1 -1
  15. package/dist/Footer.js +2 -2
  16. package/dist/Footer.js.map +1 -1
  17. package/dist/FooterTemplate.js +1 -1
  18. package/dist/FooterTemplate.js.map +1 -1
  19. package/dist/List.js +2 -3
  20. package/dist/List.js.map +1 -1
  21. package/dist/ListGroupHeaderBase.d.ts +1 -0
  22. package/dist/ListGroupHeaderBase.js +3 -0
  23. package/dist/ListGroupHeaderBase.js.map +1 -1
  24. package/dist/ListItemBase.d.ts +12 -0
  25. package/dist/ListItemBase.js +17 -2
  26. package/dist/ListItemBase.js.map +1 -1
  27. package/dist/MediaPlayer.js +4 -0
  28. package/dist/MediaPlayer.js.map +1 -1
  29. package/dist/MediaPlayerTemplate.js +4 -4
  30. package/dist/MediaPlayerTemplate.js.map +1 -1
  31. package/dist/SearchableListBase.d.ts +23 -16
  32. package/dist/SearchableListBase.js +48 -72
  33. package/dist/SearchableListBase.js.map +1 -1
  34. package/dist/SelectBase.d.ts +193 -0
  35. package/dist/SelectBase.js +428 -0
  36. package/dist/SelectBase.js.map +1 -0
  37. package/dist/SelectBox.d.ts +30 -152
  38. package/dist/SelectBox.js +139 -348
  39. package/dist/SelectBox.js.map +1 -1
  40. package/dist/TagGroup.d.ts +23 -5
  41. package/dist/TagGroup.js +37 -16
  42. package/dist/TagGroup.js.map +1 -1
  43. package/dist/TagTemplate.js +4 -2
  44. package/dist/TagTemplate.js.map +1 -1
  45. package/dist/TextArea.d.ts +1 -1
  46. package/dist/TextArea.js +5 -5
  47. package/dist/TextArea.js.map +1 -1
  48. package/dist/TextAreaTemplate.d.ts +2 -0
  49. package/dist/TextAreaTemplate.js +13 -0
  50. package/dist/TextAreaTemplate.js.map +1 -0
  51. package/dist/TextField.d.ts +29 -4
  52. package/dist/TextField.js +32 -16
  53. package/dist/TextField.js.map +1 -1
  54. package/dist/TextFieldTemplate.d.ts +2 -0
  55. package/dist/TextFieldTemplate.js +14 -0
  56. package/dist/TextFieldTemplate.js.map +1 -0
  57. package/dist/assets/{InputSuggestions-By00xQan.js → InputSuggestions-63QG0i9j.js} +1 -1
  58. package/dist/assets/{ListItemStandardExpandableTextTemplate-BGtoxRbA.js → ListItemStandardExpandableTextTemplate-B1CpqSCb.js} +1 -1
  59. package/dist/assets/{bundle.esm-9yDdQqR5.js → bundle.esm-lUYJDofa.js} +218 -217
  60. package/dist/assets/fi-BGPAljj_.js +1 -0
  61. package/dist/assets/gl-DqaooM6m.js +1 -0
  62. package/dist/assets/{video.es-DIP_dh4I.js → video.es-BDeHzm02.js} +32 -32
  63. package/dist/css/themes/Checkbox.css +1 -1
  64. package/dist/css/themes/CountrySelector.css +1 -1
  65. package/dist/css/themes/EventRibbon.css +1 -1
  66. package/dist/css/themes/Footer.css +1 -1
  67. package/dist/css/themes/ImageGridTickerItem.css +1 -1
  68. package/dist/css/themes/InputGroup.css +1 -1
  69. package/dist/css/themes/Link.css +1 -1
  70. package/dist/css/themes/ListItem.css +1 -1
  71. package/dist/css/themes/MastheadItem.css +1 -1
  72. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  73. package/dist/css/themes/RadioButton.css +1 -1
  74. package/dist/css/themes/RatingIndicator.css +1 -1
  75. package/dist/css/themes/Search.css +1 -1
  76. package/dist/css/themes/SelectBase.css +1 -0
  77. package/dist/css/themes/SelectBox.css +1 -1
  78. package/dist/css/themes/Slider.css +1 -1
  79. package/dist/css/themes/StatusMessage.css +1 -1
  80. package/dist/css/themes/TagGroup.css +1 -1
  81. package/dist/css/themes/TextField.css +1 -1
  82. package/dist/custom-elements-internal.json +1088 -1284
  83. package/dist/custom-elements.json +284 -934
  84. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  85. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  86. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  87. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  88. package/dist/generated/templates/SelectBoxTemplate.lit.js +10 -9
  89. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  90. package/dist/generated/themes/Checkbox.css.d.ts +1 -1
  91. package/dist/generated/themes/Checkbox.css.js +1 -1
  92. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  93. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  94. package/dist/generated/themes/CountrySelector.css.js +1 -1
  95. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  96. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  97. package/dist/generated/themes/EventRibbon.css.js +1 -1
  98. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  99. package/dist/generated/themes/Footer.css.d.ts +1 -1
  100. package/dist/generated/themes/Footer.css.js +1 -1
  101. package/dist/generated/themes/Footer.css.js.map +1 -1
  102. package/dist/generated/themes/ImageGridTickerItem.css.d.ts +1 -1
  103. package/dist/generated/themes/ImageGridTickerItem.css.js +1 -1
  104. package/dist/generated/themes/ImageGridTickerItem.css.js.map +1 -1
  105. package/dist/generated/themes/InputGroup.css.d.ts +1 -1
  106. package/dist/generated/themes/InputGroup.css.js +1 -1
  107. package/dist/generated/themes/InputGroup.css.js.map +1 -1
  108. package/dist/generated/themes/Link.css.d.ts +1 -1
  109. package/dist/generated/themes/Link.css.js +1 -1
  110. package/dist/generated/themes/Link.css.js.map +1 -1
  111. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  112. package/dist/generated/themes/ListItem.css.js +1 -1
  113. package/dist/generated/themes/ListItem.css.js.map +1 -1
  114. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  115. package/dist/generated/themes/MastheadItem.css.js +1 -1
  116. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  117. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  118. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  119. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  120. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  121. package/dist/generated/themes/RadioButton.css.js +1 -1
  122. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  123. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  124. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  125. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  126. package/dist/generated/themes/Search.css.d.ts +1 -1
  127. package/dist/generated/themes/Search.css.js +1 -1
  128. package/dist/generated/themes/Search.css.js.map +1 -1
  129. package/dist/generated/themes/SelectBase.css.d.ts +2 -0
  130. package/dist/generated/themes/SelectBase.css.js +8 -0
  131. package/dist/generated/themes/SelectBase.css.js.map +1 -0
  132. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  133. package/dist/generated/themes/SelectBox.css.js +1 -1
  134. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  135. package/dist/generated/themes/Slider.css.d.ts +1 -1
  136. package/dist/generated/themes/Slider.css.js +1 -1
  137. package/dist/generated/themes/Slider.css.js.map +1 -1
  138. package/dist/generated/themes/StatusMessage.css.d.ts +1 -1
  139. package/dist/generated/themes/StatusMessage.css.js +1 -1
  140. package/dist/generated/themes/StatusMessage.css.js.map +1 -1
  141. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  142. package/dist/generated/themes/TagGroup.css.js +1 -1
  143. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  144. package/dist/generated/themes/TextField.css.d.ts +1 -1
  145. package/dist/generated/themes/TextField.css.js +1 -1
  146. package/dist/generated/themes/TextField.css.js.map +1 -1
  147. package/dist/types/common.d.ts +1 -1
  148. package/dist/types/common.js +1 -1
  149. package/dist/types/common.js.map +1 -1
  150. package/dist/vscode.html-custom-data.json +23 -234
  151. package/dist/web-types.json +256 -811
  152. package/package.json +2 -2
  153. package/src/Checkbox.ts +4 -0
  154. package/src/CountrySelector.hbs +6 -61
  155. package/src/CountrySelector.ts +93 -375
  156. package/src/FilterMenu.ts +13 -3
  157. package/src/Footer.ts +2 -2
  158. package/src/FooterTemplate.tsx +5 -4
  159. package/src/List.ts +2 -3
  160. package/src/ListGroupHeaderBase.ts +4 -0
  161. package/src/ListItem.hbs +0 -1
  162. package/src/ListItemBase.ts +17 -3
  163. package/src/MediaPlayer.ts +4 -0
  164. package/src/MediaPlayerTemplate.tsx +0 -1
  165. package/src/SearchableListBase.ts +68 -83
  166. package/src/SelectBase.ts +580 -0
  167. package/src/SelectBox.hbs +118 -107
  168. package/src/SelectBox.ts +155 -445
  169. package/src/TagGroup.ts +53 -19
  170. package/src/TagTemplate.tsx +4 -2
  171. package/src/TextArea.ts +5 -5
  172. package/src/TextAreaTemplate.tsx +67 -0
  173. package/src/TextField.ts +57 -24
  174. package/src/TextFieldTemplate.tsx +90 -0
  175. package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
  176. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  177. package/src/generated/templates/SelectBoxTemplate.lit.ts +10 -9
  178. package/src/generated/themes/Checkbox.css.ts +1 -1
  179. package/src/generated/themes/CountrySelector.css.ts +1 -1
  180. package/src/generated/themes/EventRibbon.css.ts +1 -1
  181. package/src/generated/themes/Footer.css.ts +1 -1
  182. package/src/generated/themes/ImageGridTickerItem.css.ts +1 -1
  183. package/src/generated/themes/InputGroup.css.ts +1 -1
  184. package/src/generated/themes/Link.css.ts +1 -1
  185. package/src/generated/themes/ListItem.css.ts +1 -1
  186. package/src/generated/themes/MastheadItem.css.ts +1 -1
  187. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  188. package/src/generated/themes/RadioButton.css.ts +1 -1
  189. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  190. package/src/generated/themes/Search.css.ts +1 -1
  191. package/src/generated/themes/SelectBase.css.ts +9 -0
  192. package/src/generated/themes/SelectBox.css.ts +1 -1
  193. package/src/generated/themes/Slider.css.ts +1 -1
  194. package/src/generated/themes/StatusMessage.css.ts +1 -1
  195. package/src/generated/themes/TagGroup.css.ts +1 -1
  196. package/src/generated/themes/TextField.css.ts +1 -1
  197. package/src/themes/Checkbox.css +21 -15
  198. package/src/themes/CountrySelector.css +42 -115
  199. package/src/themes/EventRibbon.css +21 -13
  200. package/src/themes/Footer.css +3 -2
  201. package/src/themes/ImageGridTickerItem.css +1 -1
  202. package/src/themes/InputGroup.css +11 -6
  203. package/src/themes/Link.css +2 -0
  204. package/src/themes/ListItem.css +6 -0
  205. package/src/themes/MastheadItem.css +0 -2
  206. package/src/themes/MastheadMobileMenu.css +2 -0
  207. package/src/themes/RadioButton.css +29 -6
  208. package/src/themes/Search.css +0 -1
  209. package/src/themes/SelectBase.css +239 -0
  210. package/src/themes/SelectBox.css +13 -195
  211. package/src/themes/StatusMessage.css +1 -2
  212. package/src/themes/TagGroup.css +0 -1
  213. package/src/themes/TextField.css +7 -7
  214. package/src/types/common.ts +1 -1
  215. package/dist/assets/fi-hYXoEotT.js +0 -1
  216. package/dist/assets/gl-eZFVp-ap.js +0 -1
  217. package/dist/generated/templates/TextAreaTemplate.lit.d.ts +0 -3
  218. package/dist/generated/templates/TextAreaTemplate.lit.js +0 -13
  219. package/dist/generated/templates/TextAreaTemplate.lit.js.map +0 -1
  220. package/dist/generated/templates/TextFieldTemplate.lit.d.ts +0 -3
  221. package/dist/generated/templates/TextFieldTemplate.lit.js +0 -14
  222. package/dist/generated/templates/TextFieldTemplate.lit.js.map +0 -1
  223. package/src/TextArea.hbs +0 -54
  224. package/src/TextField.hbs +0 -78
  225. package/src/generated/templates/TextAreaTemplate.lit.ts +0 -17
  226. package/src/generated/templates/TextFieldTemplate.lit.ts +0 -18
@@ -16,7 +16,7 @@ const linkTag = <UDExTag id="tag-link" text="SAP home page" href="https://sap.co
16
16
 
17
17
  describe("Tag", () => {
18
18
  it("is rendered", () => {
19
- cy.mount(<UDExTag></UDExTag>)
19
+ cy.mount(<UDExTag text="tag"></UDExTag>)
20
20
  cy.get("[udex-tag]").should("exist")
21
21
  });
22
22
 
@@ -85,6 +85,12 @@ describe("Text Field", () => {
85
85
  cy.get("[udex-text-field]").shadow().find("input").should("have.attr", "readonly")
86
86
  });
87
87
 
88
+ it("sets name attribute to input element", () => {
89
+ const name = "my-name";
90
+ cy.mount(<UDExTextField name={name}></UDExTextField>);
91
+ cy.get("[udex-text-field]").shadow().find("input").should("have.attr", "name", name)
92
+ });
93
+
88
94
  it("Value attribute is set", () => {
89
95
  const TEST_VALUE = "Test value";
90
96
  cy.get("#defaultTextField").shadow().find("input").should("have.value", TEST_VALUE);
@@ -132,6 +138,15 @@ describe("Text Field", () => {
132
138
  })
133
139
  });
134
140
 
141
+ it("sets object fieldRef current to input element inside shadow root", () => {
142
+ const fieldRefObj = { current: null as HTMLInputElement | null };
143
+ cy.mount(<UDExTextField fieldRef={fieldRefObj}></UDExTextField>);
144
+ cy.get('[udex-text-field]').shadow().find('.udex-text-field__input').then(($input) => {
145
+ expect(fieldRefObj.current).to.be.instanceOf(HTMLInputElement);
146
+ expect(fieldRefObj.current?.className).to.include("udex-text-field__input");
147
+ });
148
+ });
149
+
135
150
  describe("Label classes", () => {
136
151
  beforeEach(() => {
137
152
  cy.mount(textFieldWithLabel)
@@ -1,36 +1,18 @@
1
1
  import { UDExTextArea } from "../support/component-imports.js";
2
+ import { UDExValueState } from "../../src/types/common.js";
2
3
 
3
- const defaultTextarea = <UDExTextArea
4
- valueState="Standard"
5
- id="defaultTextArea">
6
- </UDExTextArea>
7
-
8
- const textareaWithAttributes = <UDExTextArea
9
- valueState="Standard"
10
- label="Label"
11
- value="Value"
12
- rows={3}
13
- supportingText="Supporting Text"
14
- id="textAreaWithAttributes">
15
- </UDExTextArea>
16
-
17
- const textareaWithMaxLength = <UDExTextArea
18
- value="Test value"
19
- maxlength={10}
20
- id="limitedTextArea">
21
- </UDExTextArea>
22
-
23
- const growingTextarea = <UDExTextArea
24
- valueState="Standard"
25
- value="123"
26
- growing
27
- growingMaxLines={5}
28
- id="growingTextarea">
29
- </UDExTextArea>
4
+ const state = UDExValueState.Standard;
5
+ const label = "Label";
6
+ const value = "Value";
7
+ const text = "Supporting Text";
8
+ const LABEL_ACTIVE_CLASS = "udex-textarea__label--active";
30
9
 
31
- describe("Textarea", () => {
32
- const LABEL_ACTIVE_CLASS = "udex-textarea__label--active";
10
+ const defaultTextarea = <UDExTextArea valueState={state} id="defaultTextArea"></UDExTextArea>
11
+ const textareaWithAttributes = <UDExTextArea valueState={state} label={label} value={value} rows={3} supportingText={text} id="textAreaWithAttributes"></UDExTextArea>
12
+ const textareaWithMaxLength = <UDExTextArea value="Test value" maxlength={10} id="limitedTextArea"></UDExTextArea>
13
+ const growingTextarea = <UDExTextArea valueState={state} value="123" growing growingMaxLines={5} id="growingTextarea"></UDExTextArea>
33
14
 
15
+ describe("Textarea", () => {
34
16
  beforeEach(() => {
35
17
  cy.mount(defaultTextarea);
36
18
  })
@@ -70,13 +52,13 @@ describe("Textarea", () => {
70
52
 
71
53
  it("label attribute is set", () => {
72
54
  cy.get("#textAreaWithAttributes").then($textArea => {
73
- expect($textArea.attr("label")).eqls("Label")
55
+ expect($textArea.attr("label")).eqls(label)
74
56
  })
75
57
  });
76
58
 
77
59
  it("value attribute is set", () => {
78
60
  cy.get("#textAreaWithAttributes").then($textArea => {
79
- expect($textArea.attr("value")).eqls("Value")
61
+ expect($textArea.attr("value")).eqls(value)
80
62
  })
81
63
  });
82
64
 
@@ -88,7 +70,7 @@ describe("Textarea", () => {
88
70
 
89
71
  it("supportingText attribute is set", () => {
90
72
  cy.get("#textAreaWithAttributes").then($textArea => {
91
- expect($textArea.attr("supporting-text")).eqls("Supporting Text")
73
+ expect($textArea.attr("supporting-text")).eqls(text)
92
74
  })
93
75
  });
94
76
 
@@ -122,7 +104,7 @@ describe("Textarea", () => {
122
104
  });
123
105
 
124
106
  it("aria-invalid attribute is set when valueState is Error", () => {
125
- cy.mount(<UDExTextArea id="invalidTextArea" valueState="Error"></UDExTextArea>)
107
+ cy.mount(<UDExTextArea id="invalidTextArea" valueState={UDExValueState.Error}></UDExTextArea>)
126
108
  cy.get("#invalidTextArea").shadow().find("textarea").should("have.attr", "aria-invalid")
127
109
  });
128
110
  });
package/dist/Checkbox.js CHANGED
@@ -10,6 +10,7 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
10
10
  import CheckBox from "@ui5/webcomponents/dist/CheckBox.js";
11
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
12
12
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
13
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
13
14
  import { VALUE_STATE_ERROR, VALUE_STATE_SUCCESS } from "./generated/i18n/i18n-defaults.js";
14
15
  import UDExCheckboxValueState from "./types/Checkbox.js";
15
16
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -57,6 +58,9 @@ let UDExCheckbox = UDExCheckbox_1 = class UDExCheckbox extends CheckBox {
57
58
  }
58
59
  onEnterDOM() {
59
60
  ResizeHandler.register(this, this._handleResizeBound);
61
+ if (isDesktop()) {
62
+ this.setAttribute("desktop", "");
63
+ }
60
64
  }
61
65
  onAfterRendering() {
62
66
  this.shadowRoot?.querySelector(".ui5-checkbox-label")?.removeAttribute("required");
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport CheckBox from \"@ui5/webcomponents/dist/CheckBox.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { VALUE_STATE_ERROR, VALUE_STATE_SUCCESS } from \"./generated/i18n/i18n-defaults.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckboxValueState from \"./types/Checkbox.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport WrappingType from \"@ui5/webcomponents/dist/types/WrappingType.js\";\nimport type Label from \"@ui5/webcomponents/dist/Label.js\";\n\n// Styles\nimport CheckboxCss from \"./generated/themes/Checkbox.css.js\";\n\nconst LABEL_TEXT_HEIGHT = 18.5;\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-checkbox</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Checkbox.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends CheckBox\n * @tagname udex-checkbox\n * @public\n */\n@customElement({\n tag: \"udex-checkbox\",\n renderer: jsxRenderer,\n styles: [CheckBox.styles, CheckboxCss],\n})\n\nclass UDExCheckbox extends CheckBox {\n /**\n * Defines the value state of the component.\n *\n * @default \"None\"\n * @public\n */\n @property()\n /** @ts-expect-error */\n valueState: `${UDExCheckboxValueState}` = UDExCheckboxValueState.None;\n\n /**\n * Defines whether the component text wraps when there is not enough space..\n *\n * @default \"None\"\n * @public\n */\n @property()\n wrappingType: `${WrappingType}` = WrappingType.None;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onAfterRendering() {\n this.shadowRoot?.querySelector(\".ui5-checkbox-label\")?.removeAttribute(\"required\");\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n valueStateMappings(): Record<string, string> {\n return {\n [UDExCheckboxValueState.Error]: UDExCheckbox.i18nBundle.getText(VALUE_STATE_ERROR),\n [UDExCheckboxValueState.Success]: UDExCheckbox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n };\n }\n\n _handleResize(): void {\n const labelOverflows = this.labelHeight > LABEL_TEXT_HEIGHT;\n\n if (labelOverflows && this.wrappingType === WrappingType.Normal) {\n this.label?.classList.add(\"udex-checkbox__label-multiline\");\n } else {\n this.label?.classList.remove(\"udex-checkbox__label-multiline\");\n }\n }\n\n get valueStateText(): string | undefined {\n if (this.valueState !== UDExCheckboxValueState.None) {\n return this.valueStateMappings()[this.valueState];\n }\n }\n\n get label(): Label | null {\n return this.shadowRoot!.querySelector<Label>(\"[ui5-label]\");\n }\n\n get labelHeight(): number {\n return this.label?.getBoundingClientRect().height || 0;\n }\n}\n\nUDExCheckbox.define();\n\nexport default UDExCheckbox;\n"]}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport CheckBox from \"@ui5/webcomponents/dist/CheckBox.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { VALUE_STATE_ERROR, VALUE_STATE_SUCCESS } from \"./generated/i18n/i18n-defaults.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UDExCheckboxValueState from \"./types/Checkbox.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport WrappingType from \"@ui5/webcomponents/dist/types/WrappingType.js\";\nimport type Label from \"@ui5/webcomponents/dist/Label.js\";\n\n// Styles\nimport CheckboxCss from \"./generated/themes/Checkbox.css.js\";\n\nconst LABEL_TEXT_HEIGHT = 18.5;\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-checkbox</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Checkbox.js\";</code>\n *\n * @constructor\n * @author SAP SE\n * @extends CheckBox\n * @tagname udex-checkbox\n * @public\n */\n@customElement({\n tag: \"udex-checkbox\",\n renderer: jsxRenderer,\n styles: [CheckBox.styles, CheckboxCss],\n})\n\nclass UDExCheckbox extends CheckBox {\n /**\n * Defines the value state of the component.\n *\n * @default \"None\"\n * @public\n */\n @property()\n /** @ts-expect-error */\n valueState: `${UDExCheckboxValueState}` = UDExCheckboxValueState.None;\n\n /**\n * Defines whether the component text wraps when there is not enough space..\n *\n * @default \"None\"\n * @public\n */\n @property()\n wrappingType: `${WrappingType}` = WrappingType.None;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _handleResizeBound: ResizeObserverCallback;\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onAfterRendering() {\n this.shadowRoot?.querySelector(\".ui5-checkbox-label\")?.removeAttribute(\"required\");\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n valueStateMappings(): Record<string, string> {\n return {\n [UDExCheckboxValueState.Error]: UDExCheckbox.i18nBundle.getText(VALUE_STATE_ERROR),\n [UDExCheckboxValueState.Success]: UDExCheckbox.i18nBundle.getText(VALUE_STATE_SUCCESS),\n };\n }\n\n _handleResize(): void {\n const labelOverflows = this.labelHeight > LABEL_TEXT_HEIGHT;\n\n if (labelOverflows && this.wrappingType === WrappingType.Normal) {\n this.label?.classList.add(\"udex-checkbox__label-multiline\");\n } else {\n this.label?.classList.remove(\"udex-checkbox__label-multiline\");\n }\n }\n\n get valueStateText(): string | undefined {\n if (this.valueState !== UDExCheckboxValueState.None) {\n return this.valueStateMappings()[this.valueState];\n }\n }\n\n get label(): Label | null {\n return this.shadowRoot!.querySelector<Label>(\"[ui5-label]\");\n }\n\n get labelHeight(): number {\n return this.label?.getBoundingClientRect().height || 0;\n }\n}\n\nUDExCheckbox.define();\n\nexport default UDExCheckbox;\n"]}
@@ -1,16 +1,7 @@
1
- import type Popover from "@ui5/webcomponents/dist/Popover.js";
2
- import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
3
1
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
4
2
  import "@ui5/webcomponents-icons/dist/navigation-up-arrow.js";
5
3
  import type { Country } from "./data/CountryListISO3166.js";
6
- import Search from "./Search.js";
7
- import UDExDropdown from "./Dropdown.js";
8
- import UDExSearchableListBase from "./SearchableListBase.js";
9
- import UDExTextField from "./TextField.js";
10
- import UDExValueState from "./types/common.js";
11
- import type { UDExSearchKeydownEventDetail } from "./Search.js";
12
- import type { UDExSearchableListBaseEvents } from "./SearchableListBase.js";
13
- import SearchableListBaseTemplate from "./generated/templates/SearchableListBaseTemplate.lit.js";
4
+ import UDExSelectBase from "./SelectBase.js";
14
5
  type UDExCountrySelectorChangeSearchEventDetail = {
15
6
  value: string;
16
7
  };
@@ -32,76 +23,7 @@ type UDExCountrySelectorChangeSearchEventDetail = {
32
23
  * @tagname udex-country-selector
33
24
  * @public
34
25
  */
35
- declare class UDExCountrySelector extends UDExSearchableListBase {
36
- eventDetails: {
37
- "open": void;
38
- "close": void;
39
- "before-close": void;
40
- "before-open": void;
41
- "change-search": UDExCountrySelectorChangeSearchEventDetail;
42
- } & Omit<UDExSearchableListBaseEvents, "change-search">;
43
- /**
44
- * Defines label text for the input field.
45
- *
46
- * @default undefined
47
- * @public
48
- */
49
- label?: string;
50
- /**
51
- * Defines the accessible ARIA name of the component.
52
- *
53
- * @default undefined
54
- * @public
55
- */
56
- accessibleName?: string;
57
- /**
58
- * Receives id (or many ids) of the elements that label the component.
59
- * @default ""
60
- * @public
61
- */
62
- accessibleNameRef: string;
63
- /**
64
- * Defines whether the component is required.
65
- *
66
- * @default false
67
- * @public
68
- */
69
- required: boolean;
70
- /**
71
- * Allows control over the height.
72
- *
73
- * @public
74
- */
75
- height?: string;
76
- /**
77
- * Defines whether the component is in disabled state.
78
- * <br><br>
79
- * <b>Note:</b> A disabled component is completely noninteractive.
80
- *
81
- * @default false
82
- * @public
83
- */
84
- disabled: boolean;
85
- /**
86
- * Defines whether the component is read-only.
87
- * <br><br>
88
- * <b>Note:</b> A read-only component is not editable,
89
- * but still provides visual feedback upon user interaction.
90
- *
91
- * @default false
92
- * @public
93
- */
94
- readonly: boolean;
95
- /**
96
- * Defines whether the component is display-only.
97
- * <br><br>
98
- * <b>Note:</b> A display-only component is not editable,
99
- * but still provides visual feedback upon user interaction, input border is not visible.
100
- *
101
- * @default false
102
- * @public
103
- */
104
- displayonly: boolean;
26
+ declare class UDExCountrySelector extends UDExSelectBase {
105
27
  /**
106
28
  * Allows to define the initially preselected country.
107
29
  *
@@ -117,81 +39,42 @@ declare class UDExCountrySelector extends UDExSearchableListBase {
117
39
  */
118
40
  blockedCountryCodes?: string;
119
41
  /**
120
- * Defines the placeholder of the search.
42
+ * Allows to hide the flag images in the country selector.
121
43
  *
122
- * @default ""
123
- * @public
124
- */
125
- searchPlaceholder: string;
126
- /**
127
- * Defines the value state of the component.
128
- *
129
- * @default "Standard"
130
- * @public
131
- */
132
- valueState: `${UDExValueState}`;
133
- /**
134
- * Defines supporting text under the country selector.
135
- *
136
- * @default undefined
44
+ * @default false
137
45
  * @public
138
46
  */
139
- supportingText?: string;
47
+ hideFlagImages?: boolean;
140
48
  /**
49
+ * Indicates whether the country selector is enabled.
141
50
  *
142
- * @public
51
+ * @default true
52
+ * @private
143
53
  */
144
- hideFlagImages?: boolean;
145
- _open?: boolean;
146
- countryList: Country[];
147
- selectedCountry: Country | undefined;
148
- _trigger: UDExTextField;
149
- _dropdown: UDExDropdown;
150
- _search: Search;
151
- _handleResizeBound: ResizeObserverCallback;
152
- constructor();
153
- onEnterDOM(): void;
154
- onExitDOM(): void;
155
- onBeforeRendering(): void;
54
+ _countrySelector: boolean;
55
+ _countryList: Country[];
56
+ _selectedCountry: Country | undefined;
156
57
  onAfterRendering(): void;
157
- getTrigger(): UDExTextField;
158
- _dropdownClose(): void;
159
- _dropdownOpen(): void;
160
- _dropdownBeforeOpen(): void;
161
- _dropdownBeforeClose(): void;
162
- get searchableList(): object;
163
- static get searchableListBaseTemplate(): typeof SearchableListBaseTemplate;
164
- _handleResize(): void;
165
- handleCloseSearch(): void;
58
+ onBeforeRendering(): void;
166
59
  handleItemPress(e: CustomEvent): void;
167
- handleKeyPress(keyEvent: KeyboardEvent): void;
168
- handleInputMouseDown(e: CustomEvent): void;
169
- handleTriggerClick(): void;
170
- handleValueSearch(e: CustomEvent): void;
171
- handleSubmitSearch(): void;
172
- handleKeyDownSearch(keyEvent: CustomEvent<UDExSearchKeydownEventDetail>): void;
173
- handleKeyDownDropdown(e: KeyboardEvent): void;
174
- dropDownClose(): void;
175
- handleResetSearch(): void;
60
+ handleInputFocusIn(): void;
61
+ handleInputFocusOut(e: FocusEvent): void;
62
+ handleKeyDownSearch(e: KeyboardEvent): void;
63
+ handleDropdownBeforeOpen(): void;
64
+ handleDropdownClose(): void;
65
+ handleOutsideClick(): void;
66
+ updateImagePosition(): void;
67
+ filterBlockedCountries(): void;
68
+ setPreselectedCountry(): void;
69
+ selectCountryByElement(el: HTMLElement): void;
176
70
  prepareCountrySelectorItems(): void;
177
- fireChangeSearch(): void;
178
71
  getItemTemplate(country: Country): string | undefined;
179
72
  getCountryLabel(countryName?: string, localName?: string): string | null;
180
- get ariaControls(): string | null | undefined;
181
- get selectedCountryFlagX(): string | undefined;
182
- get selectedCountryFlagY(): string | undefined;
183
73
  get selectedCountryName(): string | null;
184
74
  get flagAriaLabel(): string;
185
- get triggerIcon(): string | undefined;
186
- get countrySelectorClasses(): string;
187
- get countrySelectorTriggerClasses(): string;
188
- get showFlagImages(): boolean;
189
- get isOpenerDisabled(): boolean;
190
- getSearch(): Search;
191
- getDropdownPopover(): Popover;
192
- getDropdown(): UDExDropdown;
193
- getTextField(): UDExTextField;
194
- get effectiveAriaLabel(): string;
75
+ get selectedCountryFlagX(): string | undefined;
76
+ get selectedCountryFlagY(): string | undefined;
77
+ get showImageFlags(): boolean;
195
78
  }
196
79
  export default UDExCountrySelector;
197
80
  export type { UDExCountrySelectorChangeSearchEventDetail };