wcs-core 7.5.1 → 7.6.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 (481) hide show
  1. package/bundle/{p-763371a0.js → p-1329a1af.js} +3 -3
  2. package/bundle/p-1329a1af.js.map +1 -0
  3. package/bundle/p-2f7bca1e.js +2 -0
  4. package/bundle/p-2f7bca1e.js.map +1 -0
  5. package/bundle/p-475be4d2.js +2 -0
  6. package/bundle/{p-010cf905.js → p-5ef2bc63.js} +2 -2
  7. package/bundle/{p-44a3b0b9.js → p-7a06295b.js} +2 -2
  8. package/bundle/{p-2751ddc1.js → p-8b186fcf.js} +2 -2
  9. package/bundle/{p-d23d7658.js → p-a0268a31.js} +2 -2
  10. package/bundle/{p-c8b73e93.js → p-bce8c93f.js} +2 -2
  11. package/bundle/{p-2e9b9605.js → p-bf326ae8.js} +2 -2
  12. package/bundle/{p-98bd8a96.js → p-d018450c.js} +2 -2
  13. package/bundle/p-d05140f5.js +2 -0
  14. package/bundle/p-d05140f5.js.map +1 -0
  15. package/bundle/{p-f0dda0b8.js → p-d3fe6951.js} +2 -2
  16. package/bundle/{p-9c2aa87a.js → p-ee6ff5f8.js} +2 -2
  17. package/bundle/{p-cdc6f6c2.js → p-ff261e50.js} +2 -2
  18. package/bundle/wcs-accordion-panel.js +1 -1
  19. package/bundle/wcs-alert-drawer.js +1 -1
  20. package/bundle/wcs-alert.js +1 -1
  21. package/bundle/wcs-breadcrumb.js +1 -1
  22. package/bundle/wcs-button.js +1 -1
  23. package/bundle/wcs-card-content.js +1 -1
  24. package/bundle/wcs-card-content.js.map +1 -1
  25. package/bundle/wcs-card.js +1 -1
  26. package/bundle/wcs-card.js.map +1 -1
  27. package/bundle/wcs-checkbox.js +1 -1
  28. package/bundle/wcs-com-nav-category.js +1 -1
  29. package/bundle/wcs-com-nav-submenu.js +1 -1
  30. package/bundle/wcs-com-nav.js +1 -1
  31. package/bundle/wcs-counter.js +1 -1
  32. package/bundle/wcs-dropdown-item.js +1 -1
  33. package/bundle/wcs-dropdown.js +1 -1
  34. package/bundle/wcs-dropdown.js.map +1 -1
  35. package/bundle/wcs-editable-field.js +1 -1
  36. package/bundle/wcs-editable-field.js.map +1 -1
  37. package/bundle/wcs-form-field.js +1 -1
  38. package/bundle/wcs-galactic-menu.js +1 -1
  39. package/bundle/wcs-grid-column.js +1 -1
  40. package/bundle/wcs-grid-column.js.map +1 -1
  41. package/bundle/wcs-grid-custom-cell.js +1 -1
  42. package/bundle/wcs-grid-custom-cell.js.map +1 -1
  43. package/bundle/wcs-grid-pagination.js +1 -1
  44. package/bundle/wcs-grid.js +1 -1
  45. package/bundle/wcs-grid.js.map +1 -1
  46. package/bundle/wcs-header.js +1 -1
  47. package/bundle/wcs-hint.js +1 -1
  48. package/bundle/wcs-horizontal-stepper.js +1 -1
  49. package/bundle/wcs-icon.js +1 -1
  50. package/bundle/wcs-input.js +1 -1
  51. package/bundle/wcs-input.js.map +1 -1
  52. package/bundle/wcs-label.js +1 -1
  53. package/bundle/wcs-list-item-properties.js +1 -1
  54. package/bundle/wcs-list-item-property.js +1 -1
  55. package/bundle/wcs-list-item.js +1 -1
  56. package/bundle/wcs-mat-icon.js +1 -1
  57. package/bundle/wcs-modal.js +1 -1
  58. package/bundle/wcs-native-select.js +1 -1
  59. package/bundle/wcs-nav-item.js +1 -1
  60. package/bundle/wcs-nav.js +1 -1
  61. package/bundle/wcs-progress-bar.js +1 -1
  62. package/bundle/wcs-progress-radial.js +1 -1
  63. package/bundle/wcs-radio-group.js +1 -1
  64. package/bundle/wcs-radio-group.js.map +1 -1
  65. package/bundle/wcs-radio.js +1 -1
  66. package/bundle/wcs-radio.js.map +1 -1
  67. package/bundle/wcs-select-option.js +1 -1
  68. package/bundle/wcs-select.js +1 -1
  69. package/bundle/wcs-skeleton-circle.js +1 -1
  70. package/bundle/wcs-skeleton-rectangle.js +1 -1
  71. package/bundle/wcs-skeleton-text.js +1 -1
  72. package/bundle/wcs-spinner.js +1 -1
  73. package/bundle/wcs-switch.js +1 -1
  74. package/bundle/wcs-tab.js +1 -1
  75. package/bundle/wcs-tabs.js +1 -1
  76. package/bundle/wcs-textarea.js +1 -1
  77. package/bundle/wcs-tooltip.js +2 -2
  78. package/composite-elements/{p-af24fb0d.js → p-00dd13c3.js} +3 -3
  79. package/composite-elements/p-00dd13c3.js.map +1 -0
  80. package/composite-elements/p-6b91c7bd.js +2 -0
  81. package/composite-elements/p-6b91c7bd.js.map +1 -0
  82. package/{bundle/p-30d83d3d.js → composite-elements/p-7feba658.js} +2 -2
  83. package/composite-elements/p-7feba658.js.map +1 -0
  84. package/composite-elements/{p-b83afff9.js → p-87e97a2e.js} +2 -2
  85. package/composite-elements/{p-b92e818b.js → p-a70a3379.js} +2 -2
  86. package/composite-elements/{p-55668982.js → p-c028b8e6.js} +2 -2
  87. package/composite-elements/{p-2a51c239.js → p-c6adb221.js} +2 -2
  88. package/composite-elements/{p-04663560.js → p-e4e3ed2c.js} +2 -2
  89. package/composite-elements/{p-51517fda.js → p-ec3ce4d4.js} +2 -2
  90. package/composite-elements/wcs-alert-drawer.js +1 -1
  91. package/composite-elements/wcs-alert.js +1 -1
  92. package/composite-elements/wcs-breadcrumb.js +1 -1
  93. package/composite-elements/wcs-button.js +1 -1
  94. package/composite-elements/wcs-card-content.js +1 -1
  95. package/composite-elements/wcs-card-content.js.map +1 -1
  96. package/composite-elements/wcs-card.js +1 -1
  97. package/composite-elements/wcs-card.js.map +1 -1
  98. package/composite-elements/wcs-counter.js +1 -1
  99. package/composite-elements/wcs-dropdown.js +1 -1
  100. package/composite-elements/wcs-dropdown.js.map +1 -1
  101. package/composite-elements/wcs-editable-field.js +1 -1
  102. package/composite-elements/wcs-editable-field.js.map +1 -1
  103. package/composite-elements/wcs-galactic-menu.js +1 -1
  104. package/composite-elements/wcs-grid-column.js +1 -1
  105. package/composite-elements/wcs-grid-column.js.map +1 -1
  106. package/composite-elements/wcs-grid-custom-cell.js +1 -1
  107. package/composite-elements/wcs-grid-custom-cell.js.map +1 -1
  108. package/composite-elements/wcs-grid-pagination.js +1 -1
  109. package/composite-elements/wcs-grid.js +1 -1
  110. package/composite-elements/wcs-grid.js.map +1 -1
  111. package/composite-elements/wcs-header.js +1 -1
  112. package/composite-elements/wcs-hint.js +1 -1
  113. package/composite-elements/wcs-horizontal-stepper.js +1 -1
  114. package/composite-elements/wcs-icon.js +1 -1
  115. package/composite-elements/wcs-input.js +1 -1
  116. package/composite-elements/wcs-input.js.map +1 -1
  117. package/composite-elements/wcs-label.js +1 -1
  118. package/composite-elements/wcs-list-item-properties.js +1 -1
  119. package/composite-elements/wcs-list-item-property.js +1 -1
  120. package/composite-elements/wcs-list-item.js +1 -1
  121. package/composite-elements/wcs-mat-icon.js +1 -1
  122. package/composite-elements/wcs-modal.js +1 -1
  123. package/composite-elements/wcs-native-select.js +1 -1
  124. package/composite-elements/wcs-nav-item.js +1 -1
  125. package/composite-elements/wcs-nav.js +1 -1
  126. package/composite-elements/wcs-progress-bar.js +1 -1
  127. package/composite-elements/wcs-progress-radial.js +1 -1
  128. package/composite-elements/wcs-radio-group.js +1 -1
  129. package/composite-elements/wcs-radio.js +1 -1
  130. package/composite-elements/wcs-radio.js.map +1 -1
  131. package/composite-elements/wcs-select-option.js +1 -1
  132. package/composite-elements/wcs-select.js +1 -1
  133. package/composite-elements/wcs-skeleton-circle.js +1 -1
  134. package/composite-elements/wcs-skeleton-rectangle.js +1 -1
  135. package/composite-elements/wcs-skeleton-text.js +1 -1
  136. package/composite-elements/wcs-spinner.js +1 -1
  137. package/composite-elements/wcs-switch.js +1 -1
  138. package/composite-elements/wcs-tab.js +1 -1
  139. package/composite-elements/wcs-tabs.js +1 -1
  140. package/composite-elements/wcs-textarea.js +1 -1
  141. package/composite-elements/wcs-tooltip.js +1 -1
  142. package/dist/cjs/{grid-pagination-4505d7b6.js → grid-pagination-ded127cc.js} +2 -2
  143. package/dist/cjs/grid-pagination-ded127cc.js.map +1 -0
  144. package/dist/cjs/{isEqual-8a0a6936.js → isEqual-be8e5a57.js} +2 -2
  145. package/dist/cjs/{isEqual-8a0a6936.js.map → isEqual-be8e5a57.js.map} +1 -1
  146. package/dist/cjs/loader.cjs.js +1 -1
  147. package/dist/cjs/wcs-button_2.cjs.entry.js +1 -1
  148. package/dist/cjs/wcs-card-content.cjs.entry.js +1 -1
  149. package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -1
  150. package/dist/cjs/wcs-card.cjs.entry.js +1 -1
  151. package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
  152. package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
  153. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  154. package/dist/cjs/wcs-editable-field.cjs.entry.js +34 -10
  155. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  156. package/dist/cjs/wcs-error_3.cjs.entry.js +2 -2
  157. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
  158. package/dist/cjs/wcs-grid-column.cjs.entry.js +1 -1
  159. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  160. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +1 -1
  161. package/dist/cjs/wcs-grid.cjs.entry.js +6 -6
  162. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  163. package/dist/cjs/wcs-header.cjs.entry.js +1 -1
  164. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  165. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  166. package/dist/cjs/wcs-icon.cjs.entry.js +1 -1
  167. package/dist/cjs/wcs-input.cjs.entry.js +1 -6
  168. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  169. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  170. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  171. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  172. package/dist/cjs/wcs-mat-icon.cjs.entry.js +1 -1
  173. package/dist/cjs/wcs-modal.cjs.entry.js +1 -1
  174. package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
  175. package/dist/cjs/wcs-nav-item.cjs.entry.js +1 -1
  176. package/dist/cjs/wcs-nav.cjs.entry.js +1 -1
  177. package/dist/cjs/wcs-progress-bar.cjs.entry.js +2 -2
  178. package/dist/cjs/wcs-progress-radial.cjs.entry.js +2 -2
  179. package/dist/cjs/wcs-radio-group.cjs.entry.js +1 -1
  180. package/dist/cjs/wcs-radio.cjs.entry.js +24 -20
  181. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  182. package/dist/cjs/wcs-select_2.cjs.entry.js +19 -9
  183. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  184. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  185. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  186. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  187. package/dist/cjs/wcs-switch.cjs.entry.js +1 -1
  188. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  189. package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
  190. package/dist/cjs/wcs-textarea.cjs.entry.js +1 -1
  191. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  192. package/dist/cjs/wcs.cjs.js +1 -1
  193. package/dist/collection/components/card/card.js +11 -4
  194. package/dist/collection/components/card/card.js.map +1 -1
  195. package/dist/collection/components/card-content/card-content.js +8 -3
  196. package/dist/collection/components/card-content/card-content.js.map +1 -1
  197. package/dist/collection/components/dropdown/dropdown.css +8 -0
  198. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +53 -0
  199. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -1
  200. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +214 -0
  201. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -1
  202. package/dist/collection/components/editable-field/editable-field.js +34 -10
  203. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  204. package/dist/collection/components/grid/grid-radio.css +8 -0
  205. package/dist/collection/components/grid/grid.e2e.playwright.js +55 -0
  206. package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -1
  207. package/dist/collection/components/grid/grid.js +3 -3
  208. package/dist/collection/components/grid-column/grid-column.js +1 -1
  209. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  210. package/dist/collection/components/grid-pagination/grid-pagination.js +4 -1
  211. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  212. package/dist/collection/components/header/header.js +1 -1
  213. package/dist/collection/components/hint/hint.js +1 -1
  214. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
  215. package/dist/collection/components/icon/icon.js +1 -1
  216. package/dist/collection/components/input/input.js +2 -7
  217. package/dist/collection/components/input/input.js.map +1 -1
  218. package/dist/collection/components/label/label.css +12 -8
  219. package/dist/collection/components/label/label.e2e.playwright.js +62 -0
  220. package/dist/collection/components/label/label.e2e.playwright.js.map +1 -1
  221. package/dist/collection/components/label/label.js +1 -1
  222. package/dist/collection/components/label/label.js.map +1 -1
  223. package/dist/collection/components/list-item/list-item.js +1 -1
  224. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  225. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  226. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  227. package/dist/collection/components/modal/modal.js +1 -1
  228. package/dist/collection/components/native-select/native-select.js +1 -1
  229. package/dist/collection/components/nav/nav.js +1 -1
  230. package/dist/collection/components/nav-item/nav-item.js +1 -1
  231. package/dist/collection/components/progress-bar/progress-bar.js +2 -2
  232. package/dist/collection/components/progress-radial/progress-radial.js +2 -2
  233. package/dist/collection/components/radio/radio.css +48 -37
  234. package/dist/collection/components/radio/radio.js +24 -20
  235. package/dist/collection/components/radio/radio.js.map +1 -1
  236. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +92 -7
  237. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -1
  238. package/dist/collection/components/radio-group/radio-group.js +1 -1
  239. package/dist/collection/components/select/select-interface.js.map +1 -1
  240. package/dist/collection/components/select/select.e2e.playwright.js +9 -9
  241. package/dist/collection/components/select/select.e2e.playwright.js.map +1 -1
  242. package/dist/collection/components/select/select.js +16 -6
  243. package/dist/collection/components/select/select.js.map +1 -1
  244. package/dist/collection/components/select-option/select-option.js +2 -2
  245. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  246. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  247. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  248. package/dist/collection/components/spinner/spinner.js +1 -1
  249. package/dist/collection/components/switch/switch.js +1 -1
  250. package/dist/collection/components/tab/tab.js +1 -1
  251. package/dist/collection/components/tabs/tabs.js +1 -1
  252. package/dist/collection/components/textarea/textarea.js +1 -1
  253. package/dist/collection/components/tooltip/tooltip.js +1 -1
  254. package/dist/esm/{com-nav-utils-ee7bf77c.js → com-nav-utils-27c1efdf.js} +2 -2
  255. package/dist/esm/{com-nav-utils-ee7bf77c.js.map → com-nav-utils-27c1efdf.js.map} +1 -1
  256. package/dist/esm/{grid-pagination-731726a6.js → grid-pagination-23102986.js} +3 -3
  257. package/dist/esm/grid-pagination-23102986.js.map +1 -0
  258. package/dist/esm/{helpers-ece6a2d3.js → helpers-89faa1b1.js} +2 -2
  259. package/dist/esm/{helpers-ece6a2d3.js.map → helpers-89faa1b1.js.map} +1 -1
  260. package/dist/esm/{isEqual-f2a07f4c.js → isEqual-89e74e17.js} +2 -2
  261. package/dist/esm/{isEqual-f2a07f4c.js.map → isEqual-89e74e17.js.map} +1 -1
  262. package/dist/esm/{keyboard-event-26b65ae5.js → keyboard-event-dd35bb6b.js} +2 -2
  263. package/dist/esm/{keyboard-event-26b65ae5.js.map → keyboard-event-dd35bb6b.js.map} +1 -1
  264. package/dist/esm/loader.js +1 -1
  265. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  266. package/dist/esm/wcs-alert-drawer.entry.js +1 -1
  267. package/dist/esm/wcs-breadcrumb.entry.js +1 -1
  268. package/dist/esm/wcs-button_2.entry.js +2 -2
  269. package/dist/esm/wcs-card-content.entry.js +1 -1
  270. package/dist/esm/wcs-card-content.entry.js.map +1 -1
  271. package/dist/esm/wcs-card.entry.js +1 -1
  272. package/dist/esm/wcs-card.entry.js.map +1 -1
  273. package/dist/esm/wcs-checkbox.entry.js +1 -1
  274. package/dist/esm/wcs-com-nav-category.entry.js +2 -2
  275. package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
  276. package/dist/esm/wcs-com-nav.entry.js +2 -2
  277. package/dist/esm/wcs-counter.entry.js +1 -1
  278. package/dist/esm/wcs-dropdown-item.entry.js +1 -1
  279. package/dist/esm/wcs-dropdown.entry.js +3 -3
  280. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  281. package/dist/esm/wcs-editable-field.entry.js +35 -11
  282. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  283. package/dist/esm/wcs-error_3.entry.js +3 -3
  284. package/dist/esm/wcs-error_3.entry.js.map +1 -1
  285. package/dist/esm/wcs-galactic-menu.entry.js +1 -1
  286. package/dist/esm/wcs-grid-column.entry.js +2 -2
  287. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  288. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  289. package/dist/esm/wcs-grid.entry.js +8 -8
  290. package/dist/esm/wcs-grid.entry.js.map +1 -1
  291. package/dist/esm/wcs-header.entry.js +2 -2
  292. package/dist/esm/wcs-hint.entry.js +1 -1
  293. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  294. package/dist/esm/wcs-icon.entry.js +2 -2
  295. package/dist/esm/wcs-input.entry.js +2 -7
  296. package/dist/esm/wcs-input.entry.js.map +1 -1
  297. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  298. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  299. package/dist/esm/wcs-list-item.entry.js +1 -1
  300. package/dist/esm/wcs-mat-icon.entry.js +2 -2
  301. package/dist/esm/wcs-modal.entry.js +2 -2
  302. package/dist/esm/wcs-native-select.entry.js +1 -1
  303. package/dist/esm/wcs-nav-item.entry.js +2 -2
  304. package/dist/esm/wcs-nav.entry.js +2 -2
  305. package/dist/esm/wcs-progress-bar.entry.js +3 -3
  306. package/dist/esm/wcs-progress-radial.entry.js +3 -3
  307. package/dist/esm/wcs-radio-group.entry.js +2 -2
  308. package/dist/esm/wcs-radio.entry.js +25 -21
  309. package/dist/esm/wcs-radio.entry.js.map +1 -1
  310. package/dist/esm/wcs-select_2.entry.js +21 -11
  311. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  312. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  313. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  314. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  315. package/dist/esm/wcs-switch.entry.js +2 -2
  316. package/dist/esm/wcs-tab.entry.js +1 -1
  317. package/dist/esm/wcs-tabs.entry.js +2 -2
  318. package/dist/esm/wcs-textarea.entry.js +2 -2
  319. package/dist/esm/wcs-tooltip.entry.js +2 -2
  320. package/dist/esm/wcs.js +1 -1
  321. package/dist/types/components/card/card.d.ts +10 -3
  322. package/dist/types/components/card-content/card-content.d.ts +7 -2
  323. package/dist/types/components/editable-field/editable-field.d.ts +3 -0
  324. package/dist/types/components/grid-pagination/grid-pagination.d.ts +3 -0
  325. package/dist/types/components/radio/radio.d.ts +4 -5
  326. package/dist/types/components/select/select-interface.d.ts +4 -0
  327. package/dist/types/components.d.ts +52 -16
  328. package/dist/wcs/{p-1ba616c2.entry.js → p-03838b42.entry.js} +2 -2
  329. package/dist/wcs/{p-b0a6eec6.entry.js → p-0cbf08fb.entry.js} +2 -2
  330. package/dist/wcs/{p-cad10435.entry.js → p-0d233c6a.entry.js} +2 -2
  331. package/dist/wcs/{p-db7ba599.entry.js → p-14dfa087.entry.js} +3 -3
  332. package/dist/wcs/p-1c356201.entry.js +2 -0
  333. package/dist/wcs/p-1c356201.entry.js.map +1 -0
  334. package/dist/wcs/{p-b28b2fba.entry.js → p-218b5f3d.entry.js} +2 -2
  335. package/dist/wcs/{p-aadf37e7.entry.js → p-25d7b2f8.entry.js} +2 -2
  336. package/dist/wcs/{p-850fa9c9.entry.js → p-3e57c746.entry.js} +2 -2
  337. package/dist/wcs/{p-52d77e1f.js → p-5314a64d.js} +2 -2
  338. package/dist/wcs/{p-27b438c0.entry.js → p-53bc2cae.entry.js} +2 -2
  339. package/dist/wcs/p-5443c9af.entry.js +2 -0
  340. package/dist/wcs/p-5443c9af.entry.js.map +1 -0
  341. package/dist/wcs/{p-ad286030.entry.js → p-56d9554a.entry.js} +2 -2
  342. package/dist/wcs/p-59f96b21.entry.js +2 -0
  343. package/dist/wcs/{p-ff826ebe.js → p-5cea30cb.js} +1 -1
  344. package/dist/wcs/{p-ff826ebe.js.map → p-5cea30cb.js.map} +1 -1
  345. package/dist/wcs/{p-2329af04.entry.js → p-63a8e5cc.entry.js} +2 -2
  346. package/dist/wcs/{p-fbd68522.entry.js → p-6d8f0040.entry.js} +2 -2
  347. package/dist/wcs/p-6e7db56e.entry.js +2 -0
  348. package/dist/wcs/p-6e7db56e.entry.js.map +1 -0
  349. package/dist/wcs/{p-c84ae00d.entry.js → p-6f937b20.entry.js} +2 -2
  350. package/dist/wcs/p-7af9a2f3.js +2 -0
  351. package/dist/wcs/p-7b60d4c7.js +2 -0
  352. package/dist/wcs/p-7b60d4c7.js.map +1 -0
  353. package/dist/wcs/{p-2221bf0c.entry.js → p-82838611.entry.js} +3 -3
  354. package/dist/wcs/p-82838611.entry.js.map +1 -0
  355. package/dist/wcs/{p-bc009574.entry.js → p-8f95bbf3.entry.js} +2 -2
  356. package/dist/wcs/{p-9fd3366c.entry.js → p-912c2c9b.entry.js} +2 -2
  357. package/dist/wcs/p-9197e9b5.entry.js +2 -0
  358. package/dist/wcs/p-9197e9b5.entry.js.map +1 -0
  359. package/dist/wcs/{p-1e7ea63c.entry.js → p-9388283a.entry.js} +2 -2
  360. package/dist/wcs/{p-18fa39f4.entry.js → p-9c6db857.entry.js} +2 -2
  361. package/dist/wcs/{p-637ec45a.entry.js → p-9d4c8f84.entry.js} +2 -2
  362. package/dist/wcs/p-9d4c8f84.entry.js.map +1 -0
  363. package/dist/wcs/{p-dfb52a1c.entry.js → p-9e091c53.entry.js} +2 -2
  364. package/dist/wcs/{p-450942b1.entry.js → p-a60ba874.entry.js} +3 -3
  365. package/dist/wcs/{p-c6f8c45c.entry.js → p-a6d64e5b.entry.js} +2 -2
  366. package/dist/wcs/{p-9c73744c.entry.js → p-ae299c3f.entry.js} +2 -2
  367. package/dist/wcs/{p-a0f6ef30.entry.js → p-b04471f5.entry.js} +2 -2
  368. package/dist/wcs/p-b04471f5.entry.js.map +1 -0
  369. package/dist/wcs/{p-4ae08567.entry.js → p-b3b31d43.entry.js} +2 -2
  370. package/dist/wcs/{p-abd8d5a0.entry.js → p-b42f441f.entry.js} +2 -2
  371. package/dist/wcs/{p-5202b323.entry.js → p-b9368690.entry.js} +2 -2
  372. package/dist/wcs/{p-e56b9ce2.entry.js → p-beeec782.entry.js} +2 -2
  373. package/dist/wcs/{p-c261eaf9.entry.js → p-c169d496.entry.js} +2 -2
  374. package/dist/wcs/p-c3b733ff.entry.js +2 -0
  375. package/dist/wcs/{p-22620c69.entry.js → p-c42a6c1c.entry.js} +2 -2
  376. package/dist/wcs/p-c42a6c1c.entry.js.map +1 -0
  377. package/dist/wcs/p-c6808cab.entry.js +2 -0
  378. package/dist/wcs/{p-ed3b0709.entry.js → p-cb9147b8.entry.js} +2 -2
  379. package/dist/wcs/{p-f2f7595e.entry.js → p-cceee683.entry.js} +2 -2
  380. package/dist/wcs/{p-f2f7595e.entry.js.map → p-cceee683.entry.js.map} +1 -1
  381. package/dist/wcs/p-d3afc02f.entry.js +2 -0
  382. package/dist/wcs/{p-5e8fff73.entry.js → p-d89ad962.entry.js} +2 -2
  383. package/dist/wcs/{p-4e2d6227.entry.js → p-d8c4dbc3.entry.js} +2 -2
  384. package/dist/wcs/p-dbf82cb9.js +2 -0
  385. package/dist/wcs/{p-dff8641e.entry.js → p-e35b138e.entry.js} +2 -2
  386. package/dist/wcs/{p-fdeae83e.entry.js → p-f2c49d83.entry.js} +2 -2
  387. package/dist/wcs/{p-cbda74f6.entry.js → p-f411974e.entry.js} +2 -2
  388. package/dist/wcs/{p-0326f834.entry.js → p-f974210c.entry.js} +2 -2
  389. package/dist/wcs/{p-352e1f99.entry.js → p-ff48a8b2.entry.js} +2 -2
  390. package/dist/wcs/wcs.esm.js +1 -1
  391. package/dist/wcs/wcs.esm.js.map +1 -1
  392. package/package.json +2 -2
  393. package/bundle/p-30d83d3d.js.map +0 -1
  394. package/bundle/p-581fc0fc.js +0 -2
  395. package/bundle/p-581fc0fc.js.map +0 -1
  396. package/bundle/p-763371a0.js.map +0 -1
  397. package/bundle/p-97e70e10.js +0 -2
  398. package/composite-elements/p-79ad61e4.js +0 -2
  399. package/composite-elements/p-79ad61e4.js.map +0 -1
  400. package/composite-elements/p-af24fb0d.js.map +0 -1
  401. package/composite-elements/p-bc4c736d.js +0 -2
  402. package/composite-elements/p-bc4c736d.js.map +0 -1
  403. package/dist/cjs/grid-pagination-4505d7b6.js.map +0 -1
  404. package/dist/esm/grid-pagination-731726a6.js.map +0 -1
  405. package/dist/wcs/p-0017d766.js +0 -2
  406. package/dist/wcs/p-0b8157e7.entry.js +0 -2
  407. package/dist/wcs/p-2221bf0c.entry.js.map +0 -1
  408. package/dist/wcs/p-22620c69.entry.js.map +0 -1
  409. package/dist/wcs/p-3823f54e.entry.js +0 -2
  410. package/dist/wcs/p-580b3142.entry.js +0 -2
  411. package/dist/wcs/p-5da0534f.entry.js +0 -2
  412. package/dist/wcs/p-5da0534f.entry.js.map +0 -1
  413. package/dist/wcs/p-637ec45a.entry.js.map +0 -1
  414. package/dist/wcs/p-86ec9ead.entry.js +0 -2
  415. package/dist/wcs/p-86ec9ead.entry.js.map +0 -1
  416. package/dist/wcs/p-89b8c724.js +0 -2
  417. package/dist/wcs/p-98a8b806.entry.js +0 -2
  418. package/dist/wcs/p-98a8b806.entry.js.map +0 -1
  419. package/dist/wcs/p-a0f6ef30.entry.js.map +0 -1
  420. package/dist/wcs/p-ad5192cd.entry.js +0 -2
  421. package/dist/wcs/p-c5bad0b8.js +0 -2
  422. package/dist/wcs/p-c5bad0b8.js.map +0 -1
  423. package/dist/wcs/p-fe303f58.entry.js +0 -2
  424. package/dist/wcs/p-fe303f58.entry.js.map +0 -1
  425. /package/bundle/{p-97e70e10.js.map → p-475be4d2.js.map} +0 -0
  426. /package/bundle/{p-010cf905.js.map → p-5ef2bc63.js.map} +0 -0
  427. /package/bundle/{p-44a3b0b9.js.map → p-7a06295b.js.map} +0 -0
  428. /package/bundle/{p-2751ddc1.js.map → p-8b186fcf.js.map} +0 -0
  429. /package/bundle/{p-d23d7658.js.map → p-a0268a31.js.map} +0 -0
  430. /package/bundle/{p-c8b73e93.js.map → p-bce8c93f.js.map} +0 -0
  431. /package/bundle/{p-2e9b9605.js.map → p-bf326ae8.js.map} +0 -0
  432. /package/bundle/{p-98bd8a96.js.map → p-d018450c.js.map} +0 -0
  433. /package/bundle/{p-f0dda0b8.js.map → p-d3fe6951.js.map} +0 -0
  434. /package/bundle/{p-9c2aa87a.js.map → p-ee6ff5f8.js.map} +0 -0
  435. /package/bundle/{p-cdc6f6c2.js.map → p-ff261e50.js.map} +0 -0
  436. /package/composite-elements/{p-b83afff9.js.map → p-87e97a2e.js.map} +0 -0
  437. /package/composite-elements/{p-b92e818b.js.map → p-a70a3379.js.map} +0 -0
  438. /package/composite-elements/{p-55668982.js.map → p-c028b8e6.js.map} +0 -0
  439. /package/composite-elements/{p-2a51c239.js.map → p-c6adb221.js.map} +0 -0
  440. /package/composite-elements/{p-04663560.js.map → p-e4e3ed2c.js.map} +0 -0
  441. /package/composite-elements/{p-51517fda.js.map → p-ec3ce4d4.js.map} +0 -0
  442. /package/dist/wcs/{p-1ba616c2.entry.js.map → p-03838b42.entry.js.map} +0 -0
  443. /package/dist/wcs/{p-b0a6eec6.entry.js.map → p-0cbf08fb.entry.js.map} +0 -0
  444. /package/dist/wcs/{p-cad10435.entry.js.map → p-0d233c6a.entry.js.map} +0 -0
  445. /package/dist/wcs/{p-db7ba599.entry.js.map → p-14dfa087.entry.js.map} +0 -0
  446. /package/dist/wcs/{p-b28b2fba.entry.js.map → p-218b5f3d.entry.js.map} +0 -0
  447. /package/dist/wcs/{p-aadf37e7.entry.js.map → p-25d7b2f8.entry.js.map} +0 -0
  448. /package/dist/wcs/{p-850fa9c9.entry.js.map → p-3e57c746.entry.js.map} +0 -0
  449. /package/dist/wcs/{p-52d77e1f.js.map → p-5314a64d.js.map} +0 -0
  450. /package/dist/wcs/{p-27b438c0.entry.js.map → p-53bc2cae.entry.js.map} +0 -0
  451. /package/dist/wcs/{p-ad286030.entry.js.map → p-56d9554a.entry.js.map} +0 -0
  452. /package/dist/wcs/{p-3823f54e.entry.js.map → p-59f96b21.entry.js.map} +0 -0
  453. /package/dist/wcs/{p-2329af04.entry.js.map → p-63a8e5cc.entry.js.map} +0 -0
  454. /package/dist/wcs/{p-fbd68522.entry.js.map → p-6d8f0040.entry.js.map} +0 -0
  455. /package/dist/wcs/{p-c84ae00d.entry.js.map → p-6f937b20.entry.js.map} +0 -0
  456. /package/dist/wcs/{p-89b8c724.js.map → p-7af9a2f3.js.map} +0 -0
  457. /package/dist/wcs/{p-bc009574.entry.js.map → p-8f95bbf3.entry.js.map} +0 -0
  458. /package/dist/wcs/{p-9fd3366c.entry.js.map → p-912c2c9b.entry.js.map} +0 -0
  459. /package/dist/wcs/{p-1e7ea63c.entry.js.map → p-9388283a.entry.js.map} +0 -0
  460. /package/dist/wcs/{p-18fa39f4.entry.js.map → p-9c6db857.entry.js.map} +0 -0
  461. /package/dist/wcs/{p-dfb52a1c.entry.js.map → p-9e091c53.entry.js.map} +0 -0
  462. /package/dist/wcs/{p-450942b1.entry.js.map → p-a60ba874.entry.js.map} +0 -0
  463. /package/dist/wcs/{p-c6f8c45c.entry.js.map → p-a6d64e5b.entry.js.map} +0 -0
  464. /package/dist/wcs/{p-9c73744c.entry.js.map → p-ae299c3f.entry.js.map} +0 -0
  465. /package/dist/wcs/{p-4ae08567.entry.js.map → p-b3b31d43.entry.js.map} +0 -0
  466. /package/dist/wcs/{p-abd8d5a0.entry.js.map → p-b42f441f.entry.js.map} +0 -0
  467. /package/dist/wcs/{p-5202b323.entry.js.map → p-b9368690.entry.js.map} +0 -0
  468. /package/dist/wcs/{p-e56b9ce2.entry.js.map → p-beeec782.entry.js.map} +0 -0
  469. /package/dist/wcs/{p-c261eaf9.entry.js.map → p-c169d496.entry.js.map} +0 -0
  470. /package/dist/wcs/{p-0b8157e7.entry.js.map → p-c3b733ff.entry.js.map} +0 -0
  471. /package/dist/wcs/{p-580b3142.entry.js.map → p-c6808cab.entry.js.map} +0 -0
  472. /package/dist/wcs/{p-ed3b0709.entry.js.map → p-cb9147b8.entry.js.map} +0 -0
  473. /package/dist/wcs/{p-ad5192cd.entry.js.map → p-d3afc02f.entry.js.map} +0 -0
  474. /package/dist/wcs/{p-5e8fff73.entry.js.map → p-d89ad962.entry.js.map} +0 -0
  475. /package/dist/wcs/{p-4e2d6227.entry.js.map → p-d8c4dbc3.entry.js.map} +0 -0
  476. /package/dist/wcs/{p-0017d766.js.map → p-dbf82cb9.js.map} +0 -0
  477. /package/dist/wcs/{p-dff8641e.entry.js.map → p-e35b138e.entry.js.map} +0 -0
  478. /package/dist/wcs/{p-fdeae83e.entry.js.map → p-f2c49d83.entry.js.map} +0 -0
  479. /package/dist/wcs/{p-cbda74f6.entry.js.map → p-f411974e.entry.js.map} +0 -0
  480. /package/dist/wcs/{p-0326f834.entry.js.map → p-f974210c.entry.js.map} +0 -0
  481. /package/dist/wcs/{p-352e1f99.entry.js.map → p-ff48a8b2.entry.js.map} +0 -0
@@ -2,6 +2,18 @@ import { setWcsContent } from "../../utils/playwright/test";
2
2
  import { test } from "@stencil/playwright";
3
3
  import { expect } from "@playwright/test";
4
4
  test.describe('Radio Group', () => {
5
+ test('should not render an interactive radio descendant inside wcs-radio', async ({ page }) => {
6
+ // Given
7
+ await setWcsContent(page, `
8
+ <wcs-radio-group>
9
+ <wcs-radio id="radio-1" label="SNCF" value="1"></wcs-radio>
10
+ </wcs-radio-group>
11
+ `);
12
+ const radio = page.locator('#radio-1');
13
+ // Then
14
+ await expect(radio).toHaveAttribute('role', 'radio');
15
+ await expect(radio.locator('input[type="radio"]')).toHaveCount(0);
16
+ });
5
17
  test('should navigate to the first not disabled radio when pressing tab key', async ({ page }) => {
6
18
  // Given
7
19
  await setWcsContent(page, `
@@ -57,8 +69,7 @@ test.describe('Radio Group', () => {
57
69
  await page.keyboard.press('Space');
58
70
  // Then
59
71
  await expect(firstRadio).toBeFocused(); // Ensure focus is on the first radio
60
- const firstRadioNativeInput = page.locator('#radio-1 input');
61
- await expect(firstRadioNativeInput).toHaveAttribute('aria-checked', 'true');
72
+ await expect(firstRadio).toHaveAttribute('aria-checked', 'true');
62
73
  });
63
74
  test('should navigate to the checked radio when pressing tab key', async ({ page }) => {
64
75
  // Given
@@ -90,13 +101,12 @@ test.describe('Radio Group', () => {
90
101
  `);
91
102
  const firstRadio = page.locator('#radio-1');
92
103
  await firstRadio.focus();
93
- const thirdRadioNativeInput = page.locator('#radio-3 input');
94
104
  const thirdRadio = page.locator('#radio-3');
95
105
  // When
96
106
  await page.keyboard.press('ArrowDown');
97
107
  // Then
98
108
  await expect(thirdRadio).toBeFocused(); // Ensure focus is on the third radio
99
- await expect(thirdRadioNativeInput).toHaveAttribute('aria-checked', 'true');
109
+ await expect(thirdRadio).toHaveAttribute('aria-checked', 'true');
100
110
  });
101
111
  test('should checked the first not disabled radio when we are on the last radio', async ({ page }) => {
102
112
  // Given
@@ -113,7 +123,7 @@ test.describe('Radio Group', () => {
113
123
  await lastRadio.focus();
114
124
  await expect(lastRadio).toBeFocused();
115
125
  const secondRadio = page.locator('#radio-2');
116
- const secondRadioNativeInputInput = page.locator('#radio-2 input');
126
+ const secondRadioNativeInputInput = page.locator('#radio-2');
117
127
  // When
118
128
  await page.keyboard.press('ArrowDown');
119
129
  // Then
@@ -139,6 +149,26 @@ test.describe('Radio Group', () => {
139
149
  // Then
140
150
  expect(radioClickSpy).toHaveReceivedEventTimes(1);
141
151
  });
152
+ test('should keep only the last clicked radio checked in the same group', async ({ page }) => {
153
+ // Given
154
+ await setWcsContent(page, `
155
+ <wcs-radio-group>
156
+ <wcs-radio id="radio-1" value="1"></wcs-radio>
157
+ <wcs-radio id="radio-2" value="2"></wcs-radio>
158
+ <wcs-radio id="radio-3" value="3"></wcs-radio>
159
+ </wcs-radio-group>
160
+ `);
161
+ const radio1 = page.locator('#radio-1');
162
+ const radio2 = page.locator('#radio-2');
163
+ // When
164
+ await radio1.click();
165
+ await page.waitForChanges();
166
+ await radio2.click();
167
+ await page.waitForChanges();
168
+ // Then
169
+ await expect(radio1).toHaveAttribute('aria-checked', 'false');
170
+ await expect(radio2).toHaveAttribute('aria-checked', 'true');
171
+ });
142
172
  test('should fire wcsChange when we click or move to an unchecked radio', async ({ page }) => {
143
173
  // Given
144
174
  await setWcsContent(page, `
@@ -164,6 +194,30 @@ test.describe('Radio Group', () => {
164
194
  await expect(radio3).toBeFocused(); // Ensure focus is on the third radio (next radio after radio2)
165
195
  expect(changeSpy).toHaveReceivedEventTimes(2);
166
196
  });
197
+ test('should keep only the last keyboard-selected radio checked in the same group', async ({ page }) => {
198
+ // Given
199
+ await setWcsContent(page, `
200
+ <wcs-radio-group>
201
+ <wcs-radio id="radio-1" value="1"></wcs-radio>
202
+ <wcs-radio id="radio-2" value="2"></wcs-radio>
203
+ <wcs-radio id="radio-3" value="3"></wcs-radio>
204
+ </wcs-radio-group>
205
+ `);
206
+ const radio1 = page.locator('#radio-1');
207
+ const radio2 = page.locator('#radio-2');
208
+ const radio3 = page.locator('#radio-3');
209
+ // When
210
+ await radio1.focus();
211
+ await page.keyboard.press('Space');
212
+ await page.waitForChanges();
213
+ await page.keyboard.press('ArrowDown');
214
+ await page.waitForChanges();
215
+ // Then
216
+ await expect(radio2).toBeFocused();
217
+ await expect(radio1).toHaveAttribute('aria-checked', 'false');
218
+ await expect(radio2).toHaveAttribute('aria-checked', 'true');
219
+ await expect(radio3).toHaveAttribute('aria-checked', 'false');
220
+ });
167
221
  test('should fire wcsBlur and wcsFocus from the radios', async ({ page }) => {
168
222
  // Given
169
223
  await setWcsContent(page, `
@@ -206,7 +260,7 @@ test.describe('Radio Group', () => {
206
260
  // When
207
261
  await page.keyboard.press('ArrowUp');
208
262
  // Then
209
- const secondRadioInput = page.locator('#radio-2 input');
263
+ const secondRadioInput = page.locator('#radio-2');
210
264
  await expect(secondRadioInput).toHaveAttribute('aria-checked', 'true');
211
265
  });
212
266
  test('should checked the last radio when we are on the first radio', async ({ page }) => {
@@ -223,9 +277,40 @@ test.describe('Radio Group', () => {
223
277
  // When
224
278
  await page.keyboard.press('ArrowUp');
225
279
  // Then
226
- const lastRadioInput = page.locator('#radio-3 input');
280
+ const lastRadioInput = page.locator('#radio-3');
227
281
  await expect(lastRadioInput).toHaveAttribute('aria-checked', 'true');
228
282
  });
229
283
  });
284
+ test.describe('Behavior in window with scroll', () => {
285
+ [
286
+ { mode: 'radio' },
287
+ { mode: 'horizontal' },
288
+ { mode: 'option' }
289
+ ].forEach(({ mode }) => {
290
+ test(`should preserve the window scroll position when clicking a radio inside a scrollable container - mode: ${mode}`, async ({ page }) => {
291
+ // Given
292
+ await setWcsContent(page, `
293
+ <div id="scroll-container" style="height: 100vh; overflow-y: auto;">
294
+ <div style="margin-top: 150vh;">
295
+ <wcs-radio-group mode="${mode}">
296
+ <wcs-radio id="radio-1" value="1">Radio 1</wcs-radio>
297
+ <wcs-radio id="radio-2" value="2">Radio 2</wcs-radio>
298
+ <wcs-radio id="radio-3" value="3">Radio 3</wcs-radio>
299
+ </wcs-radio-group>
300
+ </div>
301
+ <div style="margin-top: 200vh;">Other content</div>
302
+ </div>
303
+ `);
304
+ const body = page.locator('body');
305
+ const radio2 = page.locator('#radio-2');
306
+ await radio2.scrollIntoViewIfNeeded();
307
+ // When
308
+ await radio2.click();
309
+ // Then
310
+ const scrollY = await body.evaluate(() => window.scrollY);
311
+ expect(scrollY).toBe(0);
312
+ });
313
+ });
314
+ });
230
315
  });
231
316
  //# sourceMappingURL=radio-group.e2e.playwright.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Radio Group', () => {\n test('should navigate to the first not disabled radio when pressing tab key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const secondRadio = page.locator('#radio-2');\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(secondRadio).toBeFocused();\n });\n\n test('should not make unselected radios focusable when a radio is clicked', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const input = page.locator('wcs-input');\n const radio3 = page.locator('#radio-3');\n\n // When\n await radio3.click();\n await input.focus();\n\n // Then\n await page.keyboard.press('Tab');\n await expect(radio3).toBeFocused();\n });\n\n test('should checked the first radio when pressing space key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const firstRadio = page.locator('#radio-1');\n await page.keyboard.press('Tab');\n\n // When\n await page.keyboard.press('Space');\n\n // Then\n await expect(firstRadio).toBeFocused(); // Ensure focus is on the first radio\n const firstRadioNativeInput = page.locator('#radio-1 input');\n await expect(firstRadioNativeInput).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should navigate to the checked radio when pressing tab key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group value=\"3\">\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const thirdRadio = page.locator('#radio-3');\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(thirdRadio).toBeFocused();\n });\n\n test.describe('When pressing arrow down key', () => {\n test('should checked the next radio not disabled when we are on the first radio and next radio is here', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio disabled id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstRadio = page.locator('#radio-1');\n await firstRadio.focus();\n const thirdRadioNativeInput = page.locator('#radio-3 input');\n const thirdRadio = page.locator('#radio-3');\n\n // When\n await page.keyboard.press('ArrowDown');\n\n // Then\n await expect(thirdRadio).toBeFocused(); // Ensure focus is on the third radio\n await expect(thirdRadioNativeInput).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should checked the first not disabled radio when we are on the last radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const lastRadio = page.locator('#radio-3');\n // Click to select, then focus explicitly for WebKit compatibility\n await lastRadio.click();\n await lastRadio.focus();\n await expect(lastRadio).toBeFocused();\n const secondRadio = page.locator('#radio-2');\n const secondRadioNativeInputInput = page.locator('#radio-2 input');\n\n // When\n await page.keyboard.press('ArrowDown');\n\n // Then\n await expect(secondRadio).toBeFocused(); // Ensure focus is on the second radio\n await expect(secondRadioNativeInputInput).toHaveAttribute('aria-checked', 'true');\n });\n });\n\n test.describe('Events handling', () => {\n test('should fire wcsRadioClick when we click on an unchecked radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const radioClickSpy = await page.spyOnEvent('wcsRadioClick');\n\n const radio2 = page.locator('#radio-2');\n\n // When\n await radio2.click();\n await page.waitForChanges();\n\n // Then\n expect(radioClickSpy).toHaveReceivedEventTimes(1);\n });\n\n test('should fire wcsChange when we click or move to an unchecked radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const changeSpy = await page.spyOnEvent('wcsChange');\n\n const radio2 = page.locator('#radio-2');\n\n // When: Clicking on an unchecked radio\n await radio2.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n\n // When: Moving focus to another unchecked radio with keyboard\n await radio2.focus();\n await page.keyboard.press('ArrowDown'); // Move to the next radio\n await page.waitForChanges();\n\n // Then\n const radio3 = page.locator('#radio-3');\n await expect(radio3).toBeFocused(); // Ensure focus is on the third radio (next radio after radio2)\n expect(changeSpy).toHaveReceivedEventTimes(2);\n });\n\n test('should fire wcsBlur and wcsFocus from the radios', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const blurSpy = await page.spyOnEvent('wcsBlur');\n const focusSpy = await page.spyOnEvent('wcsFocus');\n\n const radio = page.locator('#radio-1');\n\n // When: Focusing on the first radio\n await radio.focus();\n await page.waitForChanges();\n\n // Then: Expect wcsFocus to be fired\n expect(focusSpy).toHaveReceivedEventTimes(1);\n\n // When: Moving to the next radio\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // When: Moving focus to another radio\n await page.keyboard.press('Tab');\n\n // Then\n expect(blurSpy).toHaveReceivedEvent();\n expect(focusSpy).toHaveReceivedEventTimes(2);\n });\n });\n\n test.describe('When pressing arrow up key', () => {\n test('should checked the previous radio when we are on the last radio and previous radio is here', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const lastRadio = page.locator('#radio-3');\n await lastRadio.focus();\n\n // When\n await page.keyboard.press('ArrowUp');\n\n // Then\n const secondRadioInput = page.locator('#radio-2 input');\n await expect(secondRadioInput).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should checked the last radio when we are on the first radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstRadio = page.locator('#radio-1');\n await firstRadio.focus();\n\n // When\n await page.keyboard.press('ArrowUp');\n\n // Then\n const lastRadioInput = page.locator('#radio-3 input');\n await expect(lastRadioInput).toHaveAttribute('aria-checked', 'true');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"radio-group.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/radio-group/radio-group.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Radio Group', () => {\n test('should not render an interactive radio descendant inside wcs-radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" label=\"SNCF\" value=\"1\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const radio = page.locator('#radio-1');\n\n // Then\n await expect(radio).toHaveAttribute('role', 'radio');\n await expect(radio.locator('input[type=\"radio\"]')).toHaveCount(0);\n });\n\n test('should navigate to the first not disabled radio when pressing tab key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const secondRadio = page.locator('#radio-2');\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(secondRadio).toBeFocused();\n });\n\n test('should not make unselected radios focusable when a radio is clicked', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const input = page.locator('wcs-input');\n const radio3 = page.locator('#radio-3');\n\n // When\n await radio3.click();\n await input.focus();\n\n // Then\n await page.keyboard.press('Tab');\n await expect(radio3).toBeFocused();\n });\n\n test('should checked the first radio when pressing space key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const firstRadio = page.locator('#radio-1');\n await page.keyboard.press('Tab');\n\n // When\n await page.keyboard.press('Space');\n\n // Then\n await expect(firstRadio).toBeFocused(); // Ensure focus is on the first radio\n await expect(firstRadio).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should navigate to the checked radio when pressing tab key', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-input></wcs-input>\n <wcs-radio-group value=\"3\">\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstTabbableItem = page.locator('wcs-input');\n await firstTabbableItem.focus();\n const thirdRadio = page.locator('#radio-3');\n\n // When\n await page.keyboard.press('Tab');\n\n // Then\n await expect(thirdRadio).toBeFocused();\n });\n\n test.describe('When pressing arrow down key', () => {\n test('should checked the next radio not disabled when we are on the first radio and next radio is here', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio disabled id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstRadio = page.locator('#radio-1');\n await firstRadio.focus();\n const thirdRadio = page.locator('#radio-3');\n\n // When\n await page.keyboard.press('ArrowDown');\n\n // Then\n await expect(thirdRadio).toBeFocused(); // Ensure focus is on the third radio\n await expect(thirdRadio).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should checked the first not disabled radio when we are on the last radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio disabled id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const lastRadio = page.locator('#radio-3');\n // Click to select, then focus explicitly for WebKit compatibility\n await lastRadio.click();\n await lastRadio.focus();\n await expect(lastRadio).toBeFocused();\n const secondRadio = page.locator('#radio-2');\n const secondRadioNativeInputInput = page.locator('#radio-2');\n\n // When\n await page.keyboard.press('ArrowDown');\n\n // Then\n await expect(secondRadio).toBeFocused(); // Ensure focus is on the second radio\n await expect(secondRadioNativeInputInput).toHaveAttribute('aria-checked', 'true');\n });\n });\n\n test.describe('Events handling', () => {\n test('should fire wcsRadioClick when we click on an unchecked radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const radioClickSpy = await page.spyOnEvent('wcsRadioClick');\n\n const radio2 = page.locator('#radio-2');\n\n // When\n await radio2.click();\n await page.waitForChanges();\n\n // Then\n expect(radioClickSpy).toHaveReceivedEventTimes(1);\n });\n\n test('should keep only the last clicked radio checked in the same group', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const radio1 = page.locator('#radio-1');\n const radio2 = page.locator('#radio-2');\n\n // When\n await radio1.click();\n await page.waitForChanges();\n await radio2.click();\n await page.waitForChanges();\n\n // Then\n await expect(radio1).toHaveAttribute('aria-checked', 'false');\n await expect(radio2).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should fire wcsChange when we click or move to an unchecked radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const changeSpy = await page.spyOnEvent('wcsChange');\n\n const radio2 = page.locator('#radio-2');\n\n // When: Clicking on an unchecked radio\n await radio2.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n\n // When: Moving focus to another unchecked radio with keyboard\n await radio2.focus();\n await page.keyboard.press('ArrowDown'); // Move to the next radio\n await page.waitForChanges();\n\n // Then\n const radio3 = page.locator('#radio-3');\n await expect(radio3).toBeFocused(); // Ensure focus is on the third radio (next radio after radio2)\n expect(changeSpy).toHaveReceivedEventTimes(2);\n });\n\n test('should keep only the last keyboard-selected radio checked in the same group', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const radio1 = page.locator('#radio-1');\n const radio2 = page.locator('#radio-2');\n const radio3 = page.locator('#radio-3');\n\n // When\n await radio1.focus();\n await page.keyboard.press('Space');\n await page.waitForChanges();\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // Then\n await expect(radio2).toBeFocused();\n await expect(radio1).toHaveAttribute('aria-checked', 'false');\n await expect(radio2).toHaveAttribute('aria-checked', 'true');\n await expect(radio3).toHaveAttribute('aria-checked', 'false');\n });\n\n test('should fire wcsBlur and wcsFocus from the radios', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const blurSpy = await page.spyOnEvent('wcsBlur');\n const focusSpy = await page.spyOnEvent('wcsFocus');\n\n const radio = page.locator('#radio-1');\n\n // When: Focusing on the first radio\n await radio.focus();\n await page.waitForChanges();\n\n // Then: Expect wcsFocus to be fired\n expect(focusSpy).toHaveReceivedEventTimes(1);\n\n // When: Moving to the next radio\n await page.keyboard.press('ArrowDown');\n await page.waitForChanges();\n\n // When: Moving focus to another radio\n await page.keyboard.press('Tab');\n\n // Then\n expect(blurSpy).toHaveReceivedEvent();\n expect(focusSpy).toHaveReceivedEventTimes(2);\n });\n });\n\n test.describe('When pressing arrow up key', () => {\n test('should checked the previous radio when we are on the last radio and previous radio is here', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const lastRadio = page.locator('#radio-3');\n await lastRadio.focus();\n\n // When\n await page.keyboard.press('ArrowUp');\n\n // Then\n const secondRadioInput = page.locator('#radio-2');\n await expect(secondRadioInput).toHaveAttribute('aria-checked', 'true');\n });\n\n test('should checked the last radio when we are on the first radio', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-radio-group>\n <wcs-radio id=\"radio-1\" value=\"1\"></wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\"></wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\"></wcs-radio>\n </wcs-radio-group>\n `);\n\n const firstRadio = page.locator('#radio-1');\n await firstRadio.focus();\n\n // When\n await page.keyboard.press('ArrowUp');\n\n // Then\n const lastRadioInput = page.locator('#radio-3');\n await expect(lastRadioInput).toHaveAttribute('aria-checked', 'true');\n });\n });\n\n test.describe('Behavior in window with scroll', () => {\n [\n { mode: 'radio' },\n { mode: 'horizontal' },\n { mode: 'option' }\n ].forEach(({ mode }) => {\n test(`should preserve the window scroll position when clicking a radio inside a scrollable container - mode: ${mode}`, async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div id=\"scroll-container\" style=\"height: 100vh; overflow-y: auto;\">\n <div style=\"margin-top: 150vh;\">\n <wcs-radio-group mode=\"${mode}\">\n <wcs-radio id=\"radio-1\" value=\"1\">Radio 1</wcs-radio>\n <wcs-radio id=\"radio-2\" value=\"2\">Radio 2</wcs-radio>\n <wcs-radio id=\"radio-3\" value=\"3\">Radio 3</wcs-radio>\n </wcs-radio-group>\n </div>\n <div style=\"margin-top: 200vh;\">Other content</div>\n </div>\n `);\n const body = page.locator('body');\n const radio2 = page.locator('#radio-2');\n await radio2.scrollIntoViewIfNeeded();\n\n // When\n await radio2.click();\n\n // Then\n const scrollY = await body.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n });\n });\n });\n});\n"]}
@@ -104,7 +104,7 @@ export class RadioGroup {
104
104
  }
105
105
  }
106
106
  render() {
107
- return (h(Host, { key: '3179704d2f1ed56f940941c1777b90a49ecd0ffa', role: "radiogroup" }, h("slot", { key: 'f01213b0c89bc04622601447005e24df07fea376', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
107
+ return (h(Host, { key: '9e945b3bd3935232dbfd859e6a53f49523d6f49b', role: "radiogroup" }, h("slot", { key: '7c6a9ae33e2dbc25c1c696ee2d9957cc882d5eba', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
108
108
  }
109
109
  static get is() { return "wcs-radio-group"; }
110
110
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"select-interface.js","sourceRoot":"","sources":["../../../src/components/select/select-interface.ts"],"names":[],"mappings":"AAYA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsB,CAAC,QAAQ,EAAE,MAAM,EAAW,EAAE;IACrF,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,CAAC,iGAAiG;AAIxJ,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,0EAA0E;IAC1E,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { WcsSize } from \"../../shared-types\";\n\nexport interface SelectChangeEventDetail {\n value: any | any[] | undefined | null;\n}\n\nexport interface SelectFilterChangeEventDetail {\n value: string | number | undefined | null;\n}\n\nexport type WcsSelectFilterFn = (optionEl: HTMLWcsSelectOptionElement, filter: string) => boolean;\n\n/**\n * Default filtering function. Compares the string start of wcs-select-option element's text content\n * with your filter input.\n * @param optionEl - wcs-select-option element\n * @param filter - input filter field value\n * @constructor\n */\nexport const WcsDefaultSelectFilterFn: WcsSelectFilterFn = (optionEl, filter): boolean => {\n return optionEl.textContent.toLowerCase().startsWith(filter.toLowerCase());\n}\n\nexport const WcsSelectSizeValue = ['m', 'l'] as const; // as const keyword is used to infer and preserve the exact literal values of an array or object.\n\nexport type WcsSelectSize = Extract<WcsSize, typeof WcsSelectSizeValue[number]>;\n\nexport function isWcsSelectSize(size: string): size is WcsSelectSize {\n // @ts-ignore : ignore size type, as it is checked with WcsInputSizeValues\n return WcsSelectSizeValue.includes(size);\n}\n"]}
1
+ {"version":3,"file":"select-interface.js","sourceRoot":"","sources":["../../../src/components/select/select-interface.ts"],"names":[],"mappings":"AAgBA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAsB,CAAC,QAAQ,EAAE,MAAM,EAAW,EAAE;IACrF,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,CAAC,iGAAiG;AAIxJ,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,0EAA0E;IAC1E,OAAO,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import { WcsSize } from \"../../shared-types\";\n\nexport interface SelectChangeEventDetail {\n value: any | any[] | undefined | null;\n /**\n * Could be undefined if the wcs-select is in server mode, as the selected options are not rendered in the DOM\n */\n selectedOptions: HTMLWcsSelectOptionElement[] | undefined;\n}\n\nexport interface SelectFilterChangeEventDetail {\n value: string | number | undefined | null;\n}\n\nexport type WcsSelectFilterFn = (optionEl: HTMLWcsSelectOptionElement, filter: string) => boolean;\n\n/**\n * Default filtering function. Compares the string start of wcs-select-option element's text content\n * with your filter input.\n * @param optionEl - wcs-select-option element\n * @param filter - input filter field value\n * @constructor\n */\nexport const WcsDefaultSelectFilterFn: WcsSelectFilterFn = (optionEl, filter): boolean => {\n return optionEl.textContent.toLowerCase().startsWith(filter.toLowerCase());\n}\n\nexport const WcsSelectSizeValue = ['m', 'l'] as const; // as const keyword is used to infer and preserve the exact literal values of an array or object.\n\nexport type WcsSelectSize = Extract<WcsSize, typeof WcsSelectSizeValue[number]>;\n\nexport function isWcsSelectSize(size: string): size is WcsSelectSize {\n // @ts-ignore : ignore size type, as it is checked with WcsInputSizeValues\n return WcsSelectSizeValue.includes(size);\n}\n"]}
@@ -106,7 +106,7 @@ test.describe('Select component', () => {
106
106
  await page.waitForChanges();
107
107
  // Then
108
108
  expect(changeSpy).toHaveReceivedEventTimes(1);
109
- expect(changeSpy).toHaveReceivedEventDetail({ value: '1' });
109
+ expect(changeSpy.lastEvent.detail.value).toBe('1');
110
110
  // Vérifier le label dans le shadow DOM
111
111
  const label = select.locator('label').first();
112
112
  await expect(label).toHaveText('One');
@@ -242,7 +242,7 @@ test.describe('Select component', () => {
242
242
  await page.waitForChanges();
243
243
  // Then
244
244
  expect(changeSpy).toHaveReceivedEventTimes(2);
245
- expect(changeSpy).toHaveNthReceivedEventDetail(1, { value: ['1', '2'] });
245
+ expect(changeSpy.events[1].detail.value).toEqual(['1', '2']);
246
246
  });
247
247
  test('Allows to unselect a value', async ({ page }) => {
248
248
  // Given
@@ -267,7 +267,7 @@ test.describe('Select component', () => {
267
267
  await page.waitForChanges();
268
268
  // Then
269
269
  expect(changeSpy).toHaveReceivedEventTimes(3);
270
- expect(changeSpy).toHaveNthReceivedEventDetail(2, { value: ['2'] });
270
+ expect(changeSpy.events[2].detail.value).toEqual(['2']);
271
271
  });
272
272
  test('Displays all values separated by a comma', async ({ page }) => {
273
273
  // Given
@@ -321,7 +321,7 @@ test.describe('Select component', () => {
321
321
  await page.waitForChanges();
322
322
  // Then
323
323
  expect(changeSpy).toHaveReceivedEventTimes(2);
324
- expect(changeSpy).toHaveNthReceivedEventDetail(1, { value: ['1', '2'] });
324
+ expect(changeSpy.events[1].detail.value).toEqual(['1', '2']);
325
325
  });
326
326
  });
327
327
  test.describe('Keyboard navigation when select is closed and not multiple', () => {
@@ -344,7 +344,7 @@ test.describe('Select component', () => {
344
344
  const label = select.locator('label').first();
345
345
  await expect(label).toHaveText('Option 2');
346
346
  expect(changeSpy).toHaveReceivedEventTimes(1);
347
- expect(changeSpy).toHaveFirstReceivedEventDetail({ value: 'option2' });
347
+ expect(changeSpy.firstEvent.detail.value).toBe('option2');
348
348
  });
349
349
  test('select value of last option enabled on PageDown key pressed', async ({ page }) => {
350
350
  // Given
@@ -365,7 +365,7 @@ test.describe('Select component', () => {
365
365
  const label = select.locator('label').first();
366
366
  await expect(label).toHaveText('Option 3');
367
367
  expect(changeSpy).toHaveReceivedEventTimes(1);
368
- expect(changeSpy).toHaveFirstReceivedEventDetail({ value: 'option3' });
368
+ expect(changeSpy.firstEvent.detail.value).toBe('option3');
369
369
  });
370
370
  test('select value of first option enabled on PageUp key pressed', async ({ page }) => {
371
371
  // Given
@@ -386,7 +386,7 @@ test.describe('Select component', () => {
386
386
  const label = select.locator('label').first();
387
387
  await expect(label).toHaveText('Option 2');
388
388
  expect(changeSpy).toHaveReceivedEventTimes(1);
389
- expect(changeSpy).toHaveFirstReceivedEventDetail({ value: 'option2' });
389
+ expect(changeSpy.firstEvent.detail.value).toBe('option2');
390
390
  });
391
391
  test('open the overlay on Enter key press', async ({ page }) => {
392
392
  // Given
@@ -547,7 +547,7 @@ test.describe('Select component', () => {
547
547
  const label = select.locator('label').first();
548
548
  await expect(label).toHaveText('Option 2');
549
549
  expect(changeSpy).toHaveReceivedEventTimes(1);
550
- expect(changeSpy).toHaveFirstReceivedEventDetail({ value: 'option2' });
550
+ expect(changeSpy.firstEvent.detail.value).toBe('option2');
551
551
  });
552
552
  test('move focus to next option on Down Arrow key down', async ({ page }) => {
553
553
  // Given
@@ -732,7 +732,7 @@ test.describe('Select component', () => {
732
732
  await page.waitForChanges();
733
733
  // Then
734
734
  expect(changeSpy).toHaveReceivedEventTimes(1);
735
- expect(changeSpy).toHaveFirstReceivedEventDetail({ value: '1' });
735
+ expect(changeSpy.firstEvent.detail.value).toBe('1');
736
736
  });
737
737
  test.describe('Focus management', () => {
738
738
  test('after selection, focus is on the correct element', async ({ page }) => {