@sapudex/web-components 2.22.0 → 2.23.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 (170) 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/CountrySelector.d.ts +25 -142
  8. package/dist/CountrySelector.js +91 -268
  9. package/dist/CountrySelector.js.map +1 -1
  10. package/dist/FilterMenu.d.ts +14 -2
  11. package/dist/FilterMenu.js +11 -1
  12. package/dist/FilterMenu.js.map +1 -1
  13. package/dist/List.js +2 -3
  14. package/dist/List.js.map +1 -1
  15. package/dist/ListGroupHeaderBase.d.ts +1 -0
  16. package/dist/ListGroupHeaderBase.js +3 -0
  17. package/dist/ListGroupHeaderBase.js.map +1 -1
  18. package/dist/ListItemBase.d.ts +12 -0
  19. package/dist/ListItemBase.js +17 -2
  20. package/dist/ListItemBase.js.map +1 -1
  21. package/dist/MediaPlayer.js +2 -0
  22. package/dist/MediaPlayer.js.map +1 -1
  23. package/dist/MediaPlayerTemplate.js +4 -4
  24. package/dist/MediaPlayerTemplate.js.map +1 -1
  25. package/dist/SearchableListBase.d.ts +23 -16
  26. package/dist/SearchableListBase.js +48 -72
  27. package/dist/SearchableListBase.js.map +1 -1
  28. package/dist/SelectBase.d.ts +193 -0
  29. package/dist/SelectBase.js +428 -0
  30. package/dist/SelectBase.js.map +1 -0
  31. package/dist/SelectBox.d.ts +30 -152
  32. package/dist/SelectBox.js +139 -348
  33. package/dist/SelectBox.js.map +1 -1
  34. package/dist/TagGroup.d.ts +23 -5
  35. package/dist/TagGroup.js +37 -16
  36. package/dist/TagGroup.js.map +1 -1
  37. package/dist/TagTemplate.js +4 -2
  38. package/dist/TagTemplate.js.map +1 -1
  39. package/dist/TextArea.d.ts +1 -1
  40. package/dist/TextArea.js +5 -5
  41. package/dist/TextArea.js.map +1 -1
  42. package/dist/TextAreaTemplate.d.ts +2 -0
  43. package/dist/TextAreaTemplate.js +13 -0
  44. package/dist/TextAreaTemplate.js.map +1 -0
  45. package/dist/TextField.d.ts +29 -4
  46. package/dist/TextField.js +32 -16
  47. package/dist/TextField.js.map +1 -1
  48. package/dist/TextFieldTemplate.d.ts +2 -0
  49. package/dist/TextFieldTemplate.js +14 -0
  50. package/dist/TextFieldTemplate.js.map +1 -0
  51. package/dist/assets/{InputSuggestions-By00xQan.js → InputSuggestions-C8m6N2-d.js} +1 -1
  52. package/dist/assets/{ListItemStandardExpandableTextTemplate-BGtoxRbA.js → ListItemStandardExpandableTextTemplate-BwD5bYhw.js} +1 -1
  53. package/dist/assets/{bundle.esm-9yDdQqR5.js → bundle.esm-hGsUwmUy.js} +218 -217
  54. package/dist/css/themes/CountrySelector.css +1 -1
  55. package/dist/css/themes/EventRibbon.css +1 -1
  56. package/dist/css/themes/ListItem.css +1 -1
  57. package/dist/css/themes/MastheadItem.css +1 -1
  58. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  59. package/dist/css/themes/RatingIndicator.css +1 -1
  60. package/dist/css/themes/Search.css +1 -1
  61. package/dist/css/themes/SelectBase.css +1 -0
  62. package/dist/css/themes/SelectBox.css +1 -1
  63. package/dist/css/themes/Slider.css +1 -1
  64. package/dist/css/themes/TagGroup.css +1 -1
  65. package/dist/css/themes/TextField.css +1 -1
  66. package/dist/custom-elements-internal.json +1088 -1284
  67. package/dist/custom-elements.json +284 -934
  68. package/dist/generated/templates/CountrySelectorTemplate.lit.js +3 -3
  69. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  70. package/dist/generated/templates/ListItemTemplate.lit.js +1 -1
  71. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  72. package/dist/generated/templates/SelectBoxTemplate.lit.js +10 -9
  73. package/dist/generated/templates/SelectBoxTemplate.lit.js.map +1 -1
  74. package/dist/generated/themes/CountrySelector.css.d.ts +1 -1
  75. package/dist/generated/themes/CountrySelector.css.js +1 -1
  76. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  77. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  78. package/dist/generated/themes/EventRibbon.css.js +1 -1
  79. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  80. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  81. package/dist/generated/themes/ListItem.css.js +1 -1
  82. package/dist/generated/themes/ListItem.css.js.map +1 -1
  83. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  84. package/dist/generated/themes/MastheadItem.css.js +1 -1
  85. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  86. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  87. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  88. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  89. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  90. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  91. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  92. package/dist/generated/themes/Search.css.d.ts +1 -1
  93. package/dist/generated/themes/Search.css.js +1 -1
  94. package/dist/generated/themes/Search.css.js.map +1 -1
  95. package/dist/generated/themes/SelectBase.css.d.ts +2 -0
  96. package/dist/generated/themes/SelectBase.css.js +8 -0
  97. package/dist/generated/themes/SelectBase.css.js.map +1 -0
  98. package/dist/generated/themes/SelectBox.css.d.ts +1 -1
  99. package/dist/generated/themes/SelectBox.css.js +1 -1
  100. package/dist/generated/themes/SelectBox.css.js.map +1 -1
  101. package/dist/generated/themes/Slider.css.d.ts +1 -1
  102. package/dist/generated/themes/Slider.css.js +1 -1
  103. package/dist/generated/themes/Slider.css.js.map +1 -1
  104. package/dist/generated/themes/TagGroup.css.d.ts +1 -1
  105. package/dist/generated/themes/TagGroup.css.js +1 -1
  106. package/dist/generated/themes/TagGroup.css.js.map +1 -1
  107. package/dist/generated/themes/TextField.css.d.ts +1 -1
  108. package/dist/generated/themes/TextField.css.js +1 -1
  109. package/dist/generated/themes/TextField.css.js.map +1 -1
  110. package/dist/types/common.d.ts +1 -1
  111. package/dist/types/common.js +1 -1
  112. package/dist/types/common.js.map +1 -1
  113. package/dist/vscode.html-custom-data.json +23 -234
  114. package/dist/web-types.json +256 -811
  115. package/package.json +1 -1
  116. package/src/CountrySelector.hbs +6 -61
  117. package/src/CountrySelector.ts +93 -375
  118. package/src/FilterMenu.ts +13 -3
  119. package/src/List.ts +2 -3
  120. package/src/ListGroupHeaderBase.ts +4 -0
  121. package/src/ListItem.hbs +0 -1
  122. package/src/ListItemBase.ts +17 -3
  123. package/src/MediaPlayer.ts +2 -0
  124. package/src/MediaPlayerTemplate.tsx +0 -1
  125. package/src/SearchableListBase.ts +68 -83
  126. package/src/SelectBase.ts +580 -0
  127. package/src/SelectBox.hbs +118 -107
  128. package/src/SelectBox.ts +155 -445
  129. package/src/TagGroup.ts +53 -19
  130. package/src/TagTemplate.tsx +4 -2
  131. package/src/TextArea.ts +5 -5
  132. package/src/TextAreaTemplate.tsx +67 -0
  133. package/src/TextField.ts +57 -24
  134. package/src/TextFieldTemplate.tsx +90 -0
  135. package/src/generated/templates/CountrySelectorTemplate.lit.ts +2 -2
  136. package/src/generated/templates/ListItemTemplate.lit.ts +1 -1
  137. package/src/generated/templates/SelectBoxTemplate.lit.ts +10 -9
  138. package/src/generated/themes/CountrySelector.css.ts +1 -1
  139. package/src/generated/themes/EventRibbon.css.ts +1 -1
  140. package/src/generated/themes/ListItem.css.ts +1 -1
  141. package/src/generated/themes/MastheadItem.css.ts +1 -1
  142. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  143. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  144. package/src/generated/themes/Search.css.ts +1 -1
  145. package/src/generated/themes/SelectBase.css.ts +9 -0
  146. package/src/generated/themes/SelectBox.css.ts +1 -1
  147. package/src/generated/themes/Slider.css.ts +1 -1
  148. package/src/generated/themes/TagGroup.css.ts +1 -1
  149. package/src/generated/themes/TextField.css.ts +1 -1
  150. package/src/themes/CountrySelector.css +42 -115
  151. package/src/themes/EventRibbon.css +21 -13
  152. package/src/themes/ListItem.css +6 -0
  153. package/src/themes/MastheadItem.css +0 -2
  154. package/src/themes/MastheadMobileMenu.css +2 -0
  155. package/src/themes/Search.css +0 -1
  156. package/src/themes/SelectBase.css +239 -0
  157. package/src/themes/SelectBox.css +13 -195
  158. package/src/themes/TagGroup.css +0 -1
  159. package/src/themes/TextField.css +7 -7
  160. package/src/types/common.ts +1 -1
  161. package/dist/generated/templates/TextAreaTemplate.lit.d.ts +0 -3
  162. package/dist/generated/templates/TextAreaTemplate.lit.js +0 -13
  163. package/dist/generated/templates/TextAreaTemplate.lit.js.map +0 -1
  164. package/dist/generated/templates/TextFieldTemplate.lit.d.ts +0 -3
  165. package/dist/generated/templates/TextFieldTemplate.lit.js +0 -14
  166. package/dist/generated/templates/TextFieldTemplate.lit.js.map +0 -1
  167. package/src/TextArea.hbs +0 -54
  168. package/src/TextField.hbs +0 -78
  169. package/src/generated/templates/TextAreaTemplate.lit.ts +0 -17
  170. package/src/generated/templates/TextFieldTemplate.lit.ts +0 -18
@@ -1,224 +1,238 @@
1
1
  import { UDExCountrySelector } from "../support/component-imports.js";
2
2
 
3
- const defaultCountrySelector = <UDExCountrySelector id="default"
4
- searchPlaceholder="Search Countries and Regions"
5
- label="Countries"
6
- blockedCountryCodes="PL">
7
- </UDExCountrySelector>
8
-
9
- const countrySelectorWithoutFlags = <UDExCountrySelector id="country-selector-no-flags"
10
- searchPlaceholder="Search Countries and Regions"
11
- blockedCountry-Codes="PL"
12
- hideFlagImages>
3
+ const defaultCountrySelector = <div style={{ width: "300px" }}><UDExCountrySelector
4
+ id="default"
5
+ label="Countries"
6
+ height="400px"
7
+ blockedCountryCodes="PL">
8
+ </UDExCountrySelector></div>
9
+
10
+ const countrySelectorWithoutFlags = <UDExCountrySelector
11
+ id="country-selector-no-flags"
12
+ blockedCountryCodes="PL"
13
+ hideFlagImages>
13
14
  </UDExCountrySelector>
14
15
 
15
16
  const countrySelectorWithSupportingText = <UDExCountrySelector
16
- id="country-selector-supporting-text"
17
- supportingText="Test supporting text"
18
- searchPlaceholder="Search Countries and Regions"
19
- height="400px">
17
+ id="country-selector-supporting-text"
18
+ supportingText="Test supporting text"
19
+ height="400px">
20
20
  </UDExCountrySelector>
21
21
 
22
- describe("CountrySelector", () => {
23
- const blockedCountryIsoCode = 'PL';
24
- const initialCountryData = {
25
- iso: 'FR',
26
- phoneFmt: "+xxxx xxxx xxxx",
27
- countryName: "France",
28
- localName: "France",
29
- }
30
-
31
- const countrySelectorNoFlagClass = "udex-country-selector__dropdown--hide-flag";
32
- const countrySelectorDisabledClass = "udex-country-selector__trigger--disabled";
33
- const countrySelectorReadOnlyClass = "udex-country-selector__trigger--readonly";
34
- const countrySelectorDisplayOnlyClass = "udex-country-selector__trigger--displayonly";
35
-
22
+ describe("CountrySelector component", () => {
36
23
  beforeEach(() => {
37
- cy.mount(defaultCountrySelector)
24
+ cy.mount(defaultCountrySelector);
25
+ cy.get("#default").shadow().as("defaultCountrySelector");
26
+ cy.get("@defaultCountrySelector").find(".udex-text-field__search").as("searchInput");
27
+ cy.get("@defaultCountrySelector").find(".udex-text-field__trigger").as("buttonTrigger");
28
+ cy.get("@defaultCountrySelector").find("[ui5-popover]").as("dropdownPopover");
38
29
  });
39
30
 
40
31
  it("is correctly rendered", () => {
41
- cy.get("#default").shadow().find(".udex-country-selector__dropdown").should("be.visible")
32
+ cy.get("@defaultCountrySelector").find(".udex-select-box__root").should("be.visible");
42
33
  });
43
34
 
44
35
  it("renders flag icon when no country is selected", () => {
45
- cy.get("#default").shadow().find(".udex-country-selector__image").should("be.visible")
36
+ cy.get("@defaultCountrySelector").find(".udex-text-field__image").should("be.visible");
46
37
  });
47
38
 
48
39
  it("renders label", () => {
49
- cy.get("#default").shadow().find("udex-text-field").shadow().find(".udex-text-field__label").should("have.text", "Countries")
50
- });
51
-
52
- it("renders placeholder in the dropdown's search", () => {
53
- cy.get("#default").shadow().find(".udex-country-selector__dropdown").find("udex-search").shadow().find("input").should("have.attr", "placeholder", "Search Countries and Regions")
40
+ cy.get("@defaultCountrySelector").find(".udex-text-field__label").should("be.visible");
54
41
  });
55
42
 
56
43
  it("renders supporting text", () => {
57
44
  cy.mount(countrySelectorWithSupportingText)
58
45
  cy.get("#country-selector-supporting-text")
59
- .shadow().find("udex-text-field")
60
- .shadow().find("udex-status-message")
61
- .shadow().find(".udex-status-message__supporting-text").should("have.text", "Test supporting text")
46
+ .shadow().find("[udex-status-message]")
47
+ .shadow().find(".udex-status-message__supporting-text")
48
+ .should("have.text", "Test supporting text");
62
49
  });
63
50
 
64
51
  it("renders Standard valueState by default", () => {
65
52
  cy.mount(countrySelectorWithSupportingText)
66
- cy.get("#country-selector-supporting-text").should("have.attr", "value-state", "Standard")
53
+ cy.get("#country-selector-supporting-text")
54
+ .shadow().find("[udex-status-message]")
55
+ .should("have.attr", "value-state", "Standard");
67
56
  });
68
57
 
69
58
  it("renders Error valueState", () => {
70
- cy.mount(<UDExCountrySelector valueState="Error"></UDExCountrySelector>)
71
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").should("have.attr", "value-state", "Error")
59
+ cy.mount(<UDExCountrySelector valueState="Error" supportingText="error"></UDExCountrySelector>)
60
+ cy.get("[udex-country-selector]")
61
+ .shadow().find("[udex-status-message]")
62
+ .should("have.attr", "value-state", "Error");
72
63
  });
73
64
 
74
65
  it("renders Warning valueState", () => {
75
- cy.mount(<UDExCountrySelector valueState="Warning"></UDExCountrySelector>)
76
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").should("have.attr", "value-state", "Warning")
66
+ cy.mount(<UDExCountrySelector valueState="Warning" supportingText="Warning"></UDExCountrySelector>)
67
+ cy.get("[udex-country-selector]")
68
+ .shadow().find("[udex-status-message]")
69
+ .should("have.attr", "value-state", "Warning");
77
70
  });
78
71
 
79
72
  it("renders Success valueState", () => {
80
- cy.mount(<UDExCountrySelector valueState="Success"></UDExCountrySelector>)
81
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").should("have.attr", "value-state", "Success")
73
+ cy.mount(<UDExCountrySelector valueState="Success" supportingText="Success"></UDExCountrySelector>)
74
+ cy.get("[udex-country-selector]")
75
+ .shadow().find("[udex-status-message]")
76
+ .should("have.attr", "value-state", "Success");
82
77
  });
83
78
 
84
- it('opens the dropdown on trigger click', () => {
85
- cy.get("#default").shadow().find("#udexTextField").click()
86
- cy.get("#default").shadow().find("#dropdown").should("have.attr", "open")
79
+ it("renders readonly country selector", () => {
80
+ cy.mount(<UDExCountrySelector readonly></UDExCountrySelector>);
81
+ cy.get("[udex-country-selector]").shadow().find("#search-input").should("have.attr", "readonly");
82
+ cy.get("[udex-country-selector]").shadow().find("#search-input").should("have.attr", "aria-readonly", "true");
87
83
  });
88
84
 
89
- it('closes the dropdown on trigger click', () => {
90
- cy.get("#default").shadow().find("#udexTextField").click()
91
- cy.get("#default").shadow().find("#udexTextField").click()
92
- cy.get("#default").shadow().find("#dropdown").should("not.have.attr", "open")
85
+ it("renders disabled country selector", () => {
86
+ cy.mount(<UDExCountrySelector disabled></UDExCountrySelector>);
87
+ cy.get("[udex-country-selector]").shadow().find("#search-input").should("have.attr", "disabled");
93
88
  });
94
89
 
95
- it('closes the dropdown on outside click', () => {
96
- cy.get("#default").shadow().find("#udexTextField").click()
97
- cy.get("body").click()
98
- cy.get("#default").shadow().find("#dropdown").should("not.have.attr", "open")
90
+ it("renders displayonly country selector", () => {
91
+ cy.mount(<UDExCountrySelector displayonly></UDExCountrySelector>);
92
+ cy.get("[udex-country-selector]").shadow().find("#search-input").should("have.attr", "readonly");
93
+ cy.get("[udex-country-selector]").shadow().find("#search-input").should("have.attr", "aria-readonly", "true");
99
94
  });
100
95
 
101
- it('closes the dropdown on country selection', () => {
102
- cy.get("#default").shadow().find("#udexTextField").click()
103
- cy.get("#default").shadow().find("#dropdown").find("udex-list")
104
- .find("udex-list-item").first().click()
105
- cy.get("#default").shadow().find("#dropdown").should("not.have.attr", "open")
96
+ it("renders initially selected country", () => {
97
+ cy.mount(<UDExCountrySelector preselectedCountry="PL"></UDExCountrySelector>);
98
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__text-holder").should("have.text", "Poland (Polska)");
106
99
  });
107
100
 
108
- it('opens the dropdown on trigger icon click', () => {
109
- cy.get("#default").shadow().find("#udexTextField").shadow().find("udex-control-button").click()
110
- cy.get("#default").shadow().find("#dropdown").should("have.attr", "open")
101
+ it("renders no result dropdown", () => {
102
+ cy.get("@searchInput").click()
103
+ .realPress("x")
104
+ .realPress("y")
105
+ .realPress("z");
106
+ cy.get("@dropdownPopover").find(".udex-no-result").should("have.text", "No matches found.");
111
107
  });
112
108
 
113
- it('doesnt render blocked country', () => {
114
- cy.get("#default").shadow().find("#dropdown").find("udex-list-item[id='PL']").should("not.exist")
109
+ it("filtering options after typing input", () => {
110
+ cy.get("@searchInput").click()
111
+ .realPress("a")
112
+ .realPress("f")
113
+ .realPress("g");
114
+ cy.get("@dropdownPopover").find("udex-list-item").should("have.length", 1);
115
+ cy.get("@dropdownPopover").find("udex-list-item").first().should("have.attr", "data-token-id", "AF");
115
116
  });
116
117
 
117
- it('renders readonly country selector', () => {
118
- cy.mount(<UDExCountrySelector readonly></UDExCountrySelector>)
119
- cy.get("[udex-country-selector]").shadow().find(".udex-country-selector__trigger").should("have.class", countrySelectorReadOnlyClass)
120
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("input").should("have.attr", "readonly")
121
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("input").should("have.attr", "aria-readonly", "true")
118
+ it("opens the dropdown on trigger click", () => {
119
+ cy.get("@searchInput").click();
120
+ cy.get("@dropdownPopover").should("have.attr", "open");
122
121
  });
123
122
 
124
- it('renders disabled country selector', () => {
125
- cy.mount(<UDExCountrySelector disabled></UDExCountrySelector>)
126
- cy.get("[udex-country-selector]").shadow().find(".udex-country-selector__trigger").should("have.class", countrySelectorDisabledClass)
127
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("input").should("have.attr", "disabled")
123
+ it("closes the dropdown on trigger click", () => {
124
+ cy.get("@buttonTrigger").click();
125
+ cy.get("@buttonTrigger").click();
126
+ cy.get("@dropdownPopover").should("not.have.attr", "open");
128
127
  });
129
128
 
130
- it('renders displayonly country selector', () => {
131
- cy.mount(<UDExCountrySelector displayonly></UDExCountrySelector>)
132
- cy.get("[udex-country-selector]").shadow().find(".udex-country-selector__trigger").should("have.class", countrySelectorDisplayOnlyClass)
133
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("input").should("have.attr", "readonly")
134
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("input").should("have.attr", "aria-readonly", "true")
129
+ it("closes the dropdown on outside click", () => {
130
+ cy.get("@searchInput").click();
131
+ cy.get("body").realClick();
132
+ cy.get("@dropdownPopover").should("not.have.attr", "open");
135
133
  });
136
134
 
137
- it('hides trigger icon when displayonly', () => {
138
- cy.mount(<UDExCountrySelector displayonly></UDExCountrySelector>)
139
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").shadow().find("udex-control-button").should("not.exist")
135
+ it("closes the dropdown on country selection", () => {
136
+ cy.get("@searchInput").click();
137
+ cy.get("@defaultCountrySelector").find("[udex-list-item]").first().click();
138
+ cy.get("@dropdownPopover").should("not.have.attr", "open");
140
139
  });
141
140
 
142
- it('add special class when hideFlagImages is true', () => {
143
- cy.mount(countrySelectorWithoutFlags)
144
- cy.get("#country-selector-no-flags").shadow().find("#dropdown").find("udex-list")
145
- .find("udex-list-item").first().find(".udex-country-selector-item__image").should("not.exist")
141
+ it("opens the dropdown on trigger icon click", () => {
142
+ cy.get("@defaultCountrySelector").find(".udex-text-field__trigger").click();
143
+ cy.get("@dropdownPopover").should("have.attr", "open");
146
144
  });
147
145
 
148
- it('renders initially selected country', () => {
149
- cy.mount(<UDExCountrySelector id="country-selector-preselected" preselectedCountry="PL"></UDExCountrySelector>)
150
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").should("have.attr", "value", "Poland (Polska)")
146
+ it("doesnt render blocked country", () => {
147
+ cy.get("@dropdownPopover").find("udex-list-item[id='PL']").should("not.exist");
151
148
  });
152
149
 
153
- it("emits open/close when dropdown opened/closed", () => {
154
- const openHandler = cy.stub().as("openHandler")
155
- const closeHandler = cy.stub().as("closeHandler")
156
- cy.mount(<UDExCountrySelector onOpen={openHandler} onClose={closeHandler}></UDExCountrySelector>)
157
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").click()
158
- cy.get("@openHandler").should("have.been.called")
159
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").click()
160
- cy.get("@closeHandler").should("have.been.called")
150
+ it("hides trigger icon when displayonly", () => {
151
+ cy.mount(<UDExCountrySelector displayonly></UDExCountrySelector>);
152
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").should("not.exist");
161
153
  });
162
154
 
163
- it('emits change-search when search field typing', () => {
164
- const changeHandler = cy.stub().as("changeHandler")
165
- cy.get("#default").then($countrySelector => {
166
- $countrySelector[0].addEventListener("change-search", changeHandler)
167
- })
168
- cy.get("#default").shadow().find("#udexTextField").click()
169
- cy.get("#default").shadow().find("udex-search").shadow().find(".udex-search__field").click().realPress("p").realPress("o").realPress("l").realPress("a")
170
- cy.get("@changeHandler").should("have.been.called")
155
+ it("hides image flag when hideFlagImages is true", () => {
156
+ cy.mount(countrySelectorWithoutFlags);
157
+ cy.get("#country-selector-no-flags").shadow().find("udex-list-item")
158
+ .first().find(".udex-country-selector-item__image").should("not.exist");
171
159
  });
172
160
 
173
- it("emits reset-search when search reset button is clicked", () => {
174
- const resetHandler = cy.stub().as("resetHandler")
175
- cy.get("#default").then($countrySelector => {
176
- $countrySelector[0].addEventListener("reset-search", resetHandler)
177
- })
178
- cy.get("#default").shadow().find("#udexTextField").click()
179
- cy.get("#default").shadow().find("udex-search").shadow().find(".udex-search__field").click().realPress("p").realPress("o").realPress("l").realPress("a")
180
- cy.get("#default").shadow().find("udex-search").shadow().find(".udex-search__reset-button").click()
181
- cy.get("@resetHandler").should("have.been.called")
161
+ it("set active country item on item option click", () => {
162
+ cy.get("@searchInput").click();
163
+ cy.get("@defaultCountrySelector").find("[udex-list-item]").first().click();
164
+ cy.get("@defaultCountrySelector").find(".udex-text-field__text-holder").should("have.text", "Afghanistan (افغانستان)");
182
165
  });
183
166
 
184
- it('emits submit-search when user presses Enter key in the search', () => {
185
- const submitHandler = cy.stub().as("submitHandler")
186
- cy.get("#default").then($countrySelector => {
187
- $countrySelector[0].addEventListener("submit-search", submitHandler)
188
- })
189
- cy.get("#default").shadow().find("#udexTextField").click()
190
- cy.get("#default").shadow().find("udex-search").shadow().find(".udex-search__field").click().realPress("p").realPress("o").realPress("l").realPress("a").realPress("Enter")
191
- cy.get("@submitHandler").should("have.been.called")
167
+ it("set active country item on item option click", () => {
168
+ cy.get("@searchInput").click();
169
+ cy.get("@defaultCountrySelector").find("[udex-list-item]").first().click();
170
+ cy.get("@defaultCountrySelector").find(".udex-text-field__text-holder").should("have.text", "Afghanistan (افغانستان)");
192
171
  });
193
172
 
194
- it('emits selection-change when list item is clicked', () => {
195
- const selectionHandler = cy.stub().as("selectionHandler")
196
- cy.mount(<UDExCountrySelector onSelectionChange={selectionHandler}></UDExCountrySelector>)
197
- cy.get("[udex-country-selector]").shadow().find("#udexTextField").click()
198
- cy.get("[udex-country-selector]").shadow().find("#dropdown").find("udex-list")
199
- .find("udex-list-item").first().click()
173
+ it("open dropdown press `ArrowDown` key on search", () => {
174
+ cy.get("@searchInput").click().realPress("{downarrow}");
175
+ cy.get("@dropdownPopover").should("have.attr", "open");
176
+ });
177
+
178
+ it("set active country item on `Enter` press", () => {
179
+ cy.get("@searchInput").click().realPress("{downarrow}").realPress("{enter}");
180
+ cy.get("@defaultCountrySelector").find(".udex-text-field__text-holder").should("have.text", "Afghanistan (افغانستان)");
181
+ });
182
+
183
+ it("close dropdown press `Escape` key on search", () => {
184
+ cy.get("@searchInput").click().realPress("{downarrow}").realPress("Escape");
185
+ cy.get("@dropdownPopover").should("not.have.attr", "open");
186
+ });
200
187
 
201
- cy.get("@selectionHandler").should("have.been.called")
188
+ it("emits before-open event when dropdown is about to open", () => {
189
+ const beforeOpenHandler = cy.stub().as("beforeOpenHandler");
190
+ cy.mount(<UDExCountrySelector onBeforeOpen={beforeOpenHandler}></UDExCountrySelector>);
191
+ cy.get("[udex-country-selector]").shadow().find("#search-input").click();
192
+ cy.get("@beforeOpenHandler").should("have.been.called");
202
193
  });
203
194
 
204
- it('focus on element with corresponding starting letter', () => {
205
- cy.get("#default").shadow().find("#udexTextField").click().realPress("Tab").realPress("a").realPress("a").realPress("Enter")
206
- cy.get("#default").shadow().find("#udexTextField").should("have.attr", "value", "Albania (Shqipëria)")
195
+ it("emits before-close event when dropdown is about to close", () => {
196
+ const beforeCloseHandler = cy.stub().as("beforeCloseHandler");
197
+ cy.mount(<UDExCountrySelector onBeforeClose={beforeCloseHandler}></UDExCountrySelector>);
198
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").click();
199
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").click();
200
+ cy.get("@beforeCloseHandler").should("have.been.called");
207
201
  });
208
202
 
209
- it('focus on element with corresponding starting letter filtered by search value', () => {
210
- cy.get("#default").shadow().find("#udexTextField").click()
211
- cy.get("#default").shadow().find("udex-search").shadow().find(".udex-search__field").click().realPress("p").realPress("o").realPress("l").realPress("a").realPress("Tab").realPress("Tab").realPress("Enter")
212
- cy.get("#default").shadow().find("#udexTextField").should("have.attr", "value", "Afghanistan (افغانستان)")
203
+ it("emits open event when dropdown is opened", () => {
204
+ const openHandler = cy.stub().as("openHandler");
205
+ cy.mount(<UDExCountrySelector onOpen={openHandler}></UDExCountrySelector>);
206
+ cy.get("[udex-country-selector]").shadow().find("#search-input").click();
207
+ cy.get("@openHandler").should("have.been.called");
213
208
  });
214
209
 
215
- it('keyboard focus navigation for `ArrowDown`', () => {
216
- cy.get("#default").shadow().find("#udexTextField").click().realPress("Tab").realPress("a").realPress("{downarrow}").realPress("Enter")
217
- cy.get("#default").shadow().find("#udexTextField").should("have.attr", "value", "Albania (Shqipëria)")
210
+ it("emits close event when dropdown is closed", () => {
211
+ const closeHandler = cy.stub().as("closeHandler");
212
+ cy.mount(<UDExCountrySelector onClose={closeHandler}></UDExCountrySelector>);
213
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").click();
214
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").click();
215
+ cy.get("@closeHandler").should("have.been.called");
218
216
  });
219
217
 
220
- it('keyboard focus navigation for `ArrowUp`', () => {
221
- cy.get("#default").shadow().find("#udexTextField").click().realPress("Tab").realPress("a").realPress("{downarrow}").realPress("{downarrow}").realPress("{uparrow}").realPress("Enter")
222
- cy.get("#default").shadow().find("#udexTextField").should("have.attr", "value", "Albania (Shqipëria)")
218
+ it('emits change-search when search field typing', () => {
219
+ const changeHandler = cy.stub().as("changeHandler");
220
+ cy.get("#default").then($countrySelector => {
221
+ $countrySelector[0].addEventListener("change-search", changeHandler)
222
+ });
223
+ cy.get("@searchInput").click()
224
+ .realPress("p")
225
+ .realPress("o")
226
+ .realPress("l")
227
+ .realPress("a");
228
+ cy.get("@changeHandler").should("have.been.called");
229
+ });
230
+
231
+ it('emits selection-change when list item is clicked', () => {
232
+ const selectionHandler = cy.stub().as("selectionHandler");
233
+ cy.mount(<UDExCountrySelector onSelectionChange={selectionHandler}></UDExCountrySelector>);
234
+ cy.get("[udex-country-selector]").shadow().find(".udex-text-field__trigger").click();
235
+ cy.get("[udex-country-selector]").shadow().find("[udex-list-item]").first().click();
236
+ cy.get("@selectionHandler").should("have.been.called");
223
237
  });
224
238
  });
@@ -105,7 +105,9 @@ describe("EventRibbon", () => {
105
105
  it("correctly renders background image", () => {
106
106
  cy.mount(imageEventRibbon)
107
107
  cy.get("[udex-event-ribbon]").shadow().find(".udex-event-ribbon__container").then($eventRibbon => {
108
- const { backgroundImage } = window.getComputedStyle($eventRibbon[0])
108
+ const container = $eventRibbon[0];
109
+ const beforeStyle = window.getComputedStyle(container, '::before');
110
+ const backgroundImage = beforeStyle.backgroundImage;
109
111
  assert.strictEqual(backgroundImage, 'url("https://cdn.udex.services.sap.com/dds/design-tokens/assets/logos/sap-logo.svg")')
110
112
  })
111
113
  });