wcs-core 4.2.0 → 5.0.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 (541) hide show
  1. package/dist/cjs/{accessibility-e99b032d.js → accessibility-c0c4e648.js} +8 -2
  2. package/dist/cjs/accessibility-c0c4e648.js.map +1 -0
  3. package/dist/cjs/button-interface-044a8a8a.js +12 -0
  4. package/dist/cjs/button-interface-044a8a8a.js.map +1 -0
  5. package/dist/cjs/grid-pagination-3511fdfa.js +111 -0
  6. package/dist/cjs/grid-pagination-3511fdfa.js.map +1 -0
  7. package/dist/cjs/{helpers-4a14051a.js → helpers-6280db6e.js} +75 -2
  8. package/dist/cjs/helpers-6280db6e.js.map +1 -0
  9. package/dist/cjs/{index-ca67a6dc.js → index-749d999e.js} +4 -1
  10. package/dist/cjs/index-749d999e.js.map +1 -0
  11. package/dist/cjs/{isEqual-9ea7ee49.js → keyboard-event-1cad4036.js} +77 -1
  12. package/dist/cjs/keyboard-event-1cad4036.js.map +1 -0
  13. package/dist/cjs/loader.cjs.js +2 -2
  14. package/dist/cjs/{select-arrow-c9583ea9.js → select-arrow-8169c0cb.js} +2 -2
  15. package/dist/cjs/{select-arrow-c9583ea9.js.map → select-arrow-8169c0cb.js.map} +1 -1
  16. package/dist/cjs/wcs-accordion-content.cjs.entry.js +1 -1
  17. package/dist/cjs/wcs-accordion-header.cjs.entry.js +1 -1
  18. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -2
  19. package/dist/cjs/wcs-accordion.cjs.entry.js +1 -1
  20. package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/wcs-app.cjs.entry.js +1 -1
  22. package/dist/cjs/wcs-badge.cjs.entry.js +3 -2
  23. package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
  24. package/dist/cjs/{wcs-button.cjs.entry.js → wcs-button_2.cjs.entry.js} +21 -12
  25. package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -0
  26. package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
  27. package/dist/cjs/wcs-card.cjs.entry.js +1 -1
  28. package/dist/cjs/wcs-checkbox.cjs.entry.js +5 -2
  29. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  30. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +2 -2
  31. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +2 -2
  32. package/dist/cjs/wcs-com-nav.cjs.entry.js +2 -2
  33. package/dist/cjs/wcs-counter.cjs.entry.js +16 -6
  34. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
  35. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  37. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  39. package/dist/cjs/wcs-dropdown-header.cjs.entry.js.map +1 -1
  40. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
  41. package/dist/cjs/wcs-dropdown-item.cjs.entry.js.map +1 -1
  42. package/dist/cjs/wcs-dropdown.cjs.entry.js +12 -6
  43. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  44. package/dist/cjs/wcs-editable-field.cjs.entry.js +18 -3
  45. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  46. package/dist/cjs/wcs-error_2.cjs.entry.js +36 -2
  47. package/dist/cjs/wcs-error_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  49. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  50. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  51. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  52. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +2 -2
  53. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  54. package/dist/cjs/wcs-grid-column.cjs.entry.js +25 -4
  55. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  56. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  57. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  58. package/dist/cjs/wcs-grid.cjs.entry.js +320 -65
  59. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  60. package/dist/cjs/wcs-header.cjs.entry.js +1 -1
  61. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  62. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  63. package/dist/cjs/wcs-icon.cjs.entry.js +1 -1
  64. package/dist/cjs/wcs-input.cjs.entry.js +15 -15
  65. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  66. package/dist/cjs/wcs-label.cjs.entry.js +1 -1
  67. package/dist/cjs/wcs-label.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  69. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  70. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  71. package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
  72. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
  73. package/dist/cjs/wcs-modal.cjs.entry.js +35 -5
  74. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  75. package/dist/cjs/wcs-native-select.cjs.entry.js +6 -3
  76. package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
  78. package/dist/cjs/wcs-nav.cjs.entry.js +1 -1
  79. package/dist/cjs/wcs-progress-bar.cjs.entry.js +4 -6
  80. package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
  81. package/dist/cjs/wcs-progress-radial.cjs.entry.js +14 -6
  82. package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
  83. package/dist/cjs/wcs-radio-group.cjs.entry.js +22 -15
  84. package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
  85. package/dist/cjs/wcs-radio.cjs.entry.js +14 -7
  86. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  87. package/dist/cjs/wcs-select_2.cjs.entry.js +603 -111
  88. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  89. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  90. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  91. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  92. package/dist/cjs/wcs-switch.cjs.entry.js +5 -2
  93. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  94. package/dist/cjs/wcs-tab.cjs.entry.js +4 -1
  95. package/dist/cjs/wcs-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/wcs-tabs.cjs.entry.js +4 -4
  97. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  98. package/dist/cjs/wcs-textarea.cjs.entry.js +13 -11
  99. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  100. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  101. package/dist/cjs/wcs.cjs.js +2 -2
  102. package/dist/collection/components/badge/badge-interface.js.map +1 -1
  103. package/dist/collection/components/badge/badge.css +19 -1
  104. package/dist/collection/components/badge/badge.js +24 -0
  105. package/dist/collection/components/badge/badge.js.map +1 -1
  106. package/dist/collection/components/button/button.css +1 -1
  107. package/dist/collection/components/checkbox/checkbox.js +34 -1
  108. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  109. package/dist/collection/components/counter/counter.css +6 -1
  110. package/dist/collection/components/counter/counter.js +61 -3
  111. package/dist/collection/components/counter/counter.js.map +1 -1
  112. package/dist/collection/components/dropdown/dropdown.css +15 -4
  113. package/dist/collection/components/dropdown/dropdown.js +37 -1
  114. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  115. package/dist/collection/components/dropdown-divider/dropdown-divider.js +3 -0
  116. package/dist/collection/components/dropdown-divider/dropdown-divider.js.map +1 -1
  117. package/dist/collection/components/dropdown-header/dropdown-header.js +4 -0
  118. package/dist/collection/components/dropdown-header/dropdown-header.js.map +1 -1
  119. package/dist/collection/components/dropdown-item/dropdown-item.js +5 -1
  120. package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
  121. package/dist/collection/components/editable-field/editable-field.js +17 -2
  122. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  123. package/dist/collection/components/error/error.js +1 -1
  124. package/dist/collection/components/error/error.js.map +1 -1
  125. package/dist/collection/components/form-field/form-field.js +31 -0
  126. package/dist/collection/components/form-field/form-field.js.map +1 -1
  127. package/dist/collection/components/grid/grid-interface.js.map +1 -1
  128. package/dist/collection/components/grid/grid-keyboard-event.js +52 -0
  129. package/dist/collection/components/grid/grid-keyboard-event.js.map +1 -0
  130. package/dist/collection/components/grid/grid.css +5 -0
  131. package/dist/collection/components/grid/grid.js +265 -29
  132. package/dist/collection/components/grid/grid.js.map +1 -1
  133. package/dist/collection/components/grid-column/grid-column.css +5 -0
  134. package/dist/collection/components/grid-column/grid-column.js +60 -1
  135. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  136. package/dist/collection/components/grid-column/grid-sort-arrow.js +1 -1
  137. package/dist/collection/components/grid-column/grid-sort-arrow.js.map +1 -1
  138. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +32 -23
  139. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
  140. package/dist/collection/components/grid-pagination/grid-pagination.css +17 -0
  141. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  142. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  143. package/dist/collection/components/input/input.js +64 -28
  144. package/dist/collection/components/input/input.js.map +1 -1
  145. package/dist/collection/components/label/label.js.map +1 -1
  146. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  147. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  148. package/dist/collection/components/modal/modal.css +2 -2
  149. package/dist/collection/components/modal/modal.js +73 -2
  150. package/dist/collection/components/modal/modal.js.map +1 -1
  151. package/dist/collection/components/native-select/native-select.css +6 -5
  152. package/dist/collection/components/native-select/native-select.js +29 -0
  153. package/dist/collection/components/native-select/native-select.js.map +1 -1
  154. package/dist/collection/components/progress-bar/progress-bar.css +12 -11
  155. package/dist/collection/components/progress-bar/progress-bar.js +22 -13
  156. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  157. package/dist/collection/components/progress-radial/progress-radial.css +5 -0
  158. package/dist/collection/components/progress-radial/progress-radial.js +18 -7
  159. package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
  160. package/dist/collection/components/radio/radio.css +8 -16
  161. package/dist/collection/components/radio/radio.js +12 -5
  162. package/dist/collection/components/radio/radio.js.map +1 -1
  163. package/dist/collection/components/radio-group/radio-group.js +50 -13
  164. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  165. package/dist/collection/components/select/select-interface.js +10 -0
  166. package/dist/collection/components/select/select-interface.js.map +1 -1
  167. package/dist/collection/components/select/select-keyboard-event.js +306 -0
  168. package/dist/collection/components/select/select-keyboard-event.js.map +1 -0
  169. package/dist/collection/components/select/select.css +59 -6
  170. package/dist/collection/components/select/select.js +435 -111
  171. package/dist/collection/components/select/select.js.map +1 -1
  172. package/dist/collection/components/select-option/select-option.css +15 -0
  173. package/dist/collection/components/select-option/select-option.js +30 -5
  174. package/dist/collection/components/select-option/select-option.js.map +1 -1
  175. package/dist/collection/components/switch/switch.js +34 -1
  176. package/dist/collection/components/switch/switch.js.map +1 -1
  177. package/dist/collection/components/tab/tab.css +7 -0
  178. package/dist/collection/components/tab/tab.js +11 -1
  179. package/dist/collection/components/tab/tab.js.map +1 -1
  180. package/dist/collection/components/tabs/tabs.js +7 -3
  181. package/dist/collection/components/tabs/tabs.js.map +1 -1
  182. package/dist/collection/components/textarea/textarea.css +8 -3
  183. package/dist/collection/components/textarea/textarea.js +41 -12
  184. package/dist/collection/components/textarea/textarea.js.map +1 -1
  185. package/dist/collection/utils/accessibility.js +7 -1
  186. package/dist/collection/utils/accessibility.js.map +1 -1
  187. package/dist/collection/utils/helpers.js +76 -1
  188. package/dist/collection/utils/helpers.js.map +1 -1
  189. package/dist/collection/utils/keyboard-event.js +74 -0
  190. package/dist/collection/utils/keyboard-event.js.map +1 -0
  191. package/dist/collection/utils/mutable-aria-attribute.js +4 -0
  192. package/dist/collection/utils/mutable-aria-attribute.js.map +1 -0
  193. package/dist/esm/{accessibility-ffa12842.js → accessibility-64feea8a.js} +8 -2
  194. package/dist/esm/accessibility-64feea8a.js.map +1 -0
  195. package/dist/esm/button-interface-c21c265f.js +9 -0
  196. package/dist/esm/button-interface-c21c265f.js.map +1 -0
  197. package/dist/esm/grid-pagination-f7b01e2e.js +109 -0
  198. package/dist/esm/grid-pagination-f7b01e2e.js.map +1 -0
  199. package/dist/esm/{helpers-1d55b67f.js → helpers-a21ae7d0.js} +75 -3
  200. package/dist/esm/helpers-a21ae7d0.js.map +1 -0
  201. package/dist/esm/{index-dc4d96d4.js → index-4f282598.js} +4 -1
  202. package/dist/esm/index-4f282598.js.map +1 -0
  203. package/dist/esm/{isEqual-20881bca.js → keyboard-event-ba3d20e7.js} +77 -2
  204. package/dist/esm/keyboard-event-ba3d20e7.js.map +1 -0
  205. package/dist/esm/loader.js +3 -3
  206. package/dist/esm/{select-arrow-81d069f7.js → select-arrow-28e8687b.js} +2 -2
  207. package/dist/esm/{select-arrow-81d069f7.js.map → select-arrow-28e8687b.js.map} +1 -1
  208. package/dist/esm/wcs-accordion-content.entry.js +1 -1
  209. package/dist/esm/wcs-accordion-header.entry.js +1 -1
  210. package/dist/esm/wcs-accordion-panel.entry.js +2 -2
  211. package/dist/esm/wcs-accordion.entry.js +1 -1
  212. package/dist/esm/wcs-action-bar.entry.js +1 -1
  213. package/dist/esm/wcs-app.entry.js +1 -1
  214. package/dist/esm/wcs-badge.entry.js +3 -2
  215. package/dist/esm/wcs-badge.entry.js.map +1 -1
  216. package/dist/esm/{wcs-button.entry.js → wcs-button_2.entry.js} +19 -11
  217. package/dist/esm/wcs-button_2.entry.js.map +1 -0
  218. package/dist/esm/wcs-card-body.entry.js +1 -1
  219. package/dist/esm/wcs-card.entry.js +1 -1
  220. package/dist/esm/wcs-checkbox.entry.js +5 -2
  221. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  222. package/dist/esm/wcs-com-nav-category.entry.js +2 -2
  223. package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
  224. package/dist/esm/wcs-com-nav.entry.js +2 -2
  225. package/dist/esm/wcs-counter.entry.js +16 -6
  226. package/dist/esm/wcs-counter.entry.js.map +1 -1
  227. package/dist/esm/wcs-divider.entry.js +1 -1
  228. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  229. package/dist/esm/wcs-dropdown-divider.entry.js.map +1 -1
  230. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  231. package/dist/esm/wcs-dropdown-header.entry.js.map +1 -1
  232. package/dist/esm/wcs-dropdown-item.entry.js +2 -2
  233. package/dist/esm/wcs-dropdown-item.entry.js.map +1 -1
  234. package/dist/esm/wcs-dropdown.entry.js +12 -6
  235. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  236. package/dist/esm/wcs-editable-field.entry.js +18 -3
  237. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  238. package/dist/esm/wcs-error_2.entry.js +36 -2
  239. package/dist/esm/wcs-error_2.entry.js.map +1 -1
  240. package/dist/esm/wcs-field-content.entry.js +1 -1
  241. package/dist/esm/wcs-field-label.entry.js +1 -1
  242. package/dist/esm/wcs-field.entry.js +1 -1
  243. package/dist/esm/wcs-footer.entry.js +1 -1
  244. package/dist/esm/wcs-galactic-menu.entry.js +2 -2
  245. package/dist/esm/wcs-galactic.entry.js +1 -1
  246. package/dist/esm/wcs-grid-column.entry.js +25 -4
  247. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  248. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  249. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  250. package/dist/esm/wcs-grid.entry.js +282 -27
  251. package/dist/esm/wcs-grid.entry.js.map +1 -1
  252. package/dist/esm/wcs-header.entry.js +1 -1
  253. package/dist/esm/wcs-hint.entry.js +1 -1
  254. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  255. package/dist/esm/wcs-icon.entry.js +1 -1
  256. package/dist/esm/wcs-input.entry.js +15 -15
  257. package/dist/esm/wcs-input.entry.js.map +1 -1
  258. package/dist/esm/wcs-label.entry.js +1 -1
  259. package/dist/esm/wcs-label.entry.js.map +1 -1
  260. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  261. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  262. package/dist/esm/wcs-list-item.entry.js +1 -1
  263. package/dist/esm/wcs-mat-icon.entry.js +2 -2
  264. package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
  265. package/dist/esm/wcs-modal.entry.js +35 -5
  266. package/dist/esm/wcs-modal.entry.js.map +1 -1
  267. package/dist/esm/wcs-native-select.entry.js +6 -3
  268. package/dist/esm/wcs-native-select.entry.js.map +1 -1
  269. package/dist/esm/wcs-nav-item.entry.js +2 -2
  270. package/dist/esm/wcs-nav.entry.js +1 -1
  271. package/dist/esm/wcs-progress-bar.entry.js +4 -6
  272. package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
  273. package/dist/esm/wcs-progress-radial.entry.js +14 -6
  274. package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
  275. package/dist/esm/wcs-radio-group.entry.js +22 -15
  276. package/dist/esm/wcs-radio-group.entry.js.map +1 -1
  277. package/dist/esm/wcs-radio.entry.js +14 -7
  278. package/dist/esm/wcs-radio.entry.js.map +1 -1
  279. package/dist/esm/wcs-select_2.entry.js +602 -110
  280. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  281. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  282. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  283. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  284. package/dist/esm/wcs-switch.entry.js +5 -2
  285. package/dist/esm/wcs-switch.entry.js.map +1 -1
  286. package/dist/esm/wcs-tab.entry.js +4 -1
  287. package/dist/esm/wcs-tab.entry.js.map +1 -1
  288. package/dist/esm/wcs-tabs.entry.js +4 -4
  289. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  290. package/dist/esm/wcs-textarea.entry.js +13 -11
  291. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  292. package/dist/esm/wcs-tooltip.entry.js +1 -1
  293. package/dist/esm/wcs.js +3 -3
  294. package/dist/types/components/badge/badge-interface.d.ts +2 -0
  295. package/dist/types/components/badge/badge.d.ts +5 -1
  296. package/dist/types/components/checkbox/checkbox.d.ts +4 -1
  297. package/dist/types/components/counter/counter.d.ts +8 -1
  298. package/dist/types/components/dropdown/dropdown.d.ts +10 -1
  299. package/dist/types/components/dropdown-divider/dropdown-divider.d.ts +3 -0
  300. package/dist/types/components/dropdown-header/dropdown-header.d.ts +4 -0
  301. package/dist/types/components/dropdown-item/dropdown-item.d.ts +7 -0
  302. package/dist/types/components/editable-field/editable-field.d.ts +7 -0
  303. package/dist/types/components/form-field/form-field.d.ts +4 -0
  304. package/dist/types/components/grid/grid-interface.d.ts +14 -2
  305. package/dist/types/components/grid/grid-keyboard-event.d.ts +16 -0
  306. package/dist/types/components/grid/grid.d.ts +59 -4
  307. package/dist/types/components/grid-column/grid-column.d.ts +17 -0
  308. package/dist/types/components/input/input.d.ts +40 -17
  309. package/dist/types/components/modal/modal.d.ts +37 -1
  310. package/dist/types/components/native-select/native-select.d.ts +3 -1
  311. package/dist/types/components/progress-bar/progress-bar.d.ts +8 -3
  312. package/dist/types/components/progress-radial/progress-radial.d.ts +12 -0
  313. package/dist/types/components/radio/radio.d.ts +3 -0
  314. package/dist/types/components/radio-group/radio-group.d.ts +3 -1
  315. package/dist/types/components/select/select-interface.d.ts +12 -0
  316. package/dist/types/components/select/select-keyboard-event.d.ts +38 -0
  317. package/dist/types/components/select/select.d.ts +76 -15
  318. package/dist/types/components/select-option/select-option.d.ts +10 -4
  319. package/dist/types/components/switch/switch.d.ts +4 -1
  320. package/dist/types/components/tab/tab.d.ts +3 -0
  321. package/dist/types/components/tabs/tabs.d.ts +4 -0
  322. package/dist/types/components/textarea/textarea.d.ts +8 -4
  323. package/dist/types/components.d.ts +357 -55
  324. package/dist/types/utils/accessibility.d.ts +4 -0
  325. package/dist/types/utils/helpers.d.ts +12 -1
  326. package/dist/types/utils/keyboard-event.d.ts +13 -0
  327. package/dist/types/utils/mutable-aria-attribute.d.ts +5 -0
  328. package/dist/wcs/{p-7a3f70da.entry.js → p-00f6a79a.entry.js} +2 -2
  329. package/dist/wcs/{p-ee453b6e.entry.js → p-016e4dd9.entry.js} +2 -2
  330. package/dist/wcs/p-0ae177cf.js +2 -0
  331. package/dist/wcs/p-0ae177cf.js.map +1 -0
  332. package/dist/wcs/{p-f06f48f3.entry.js → p-0d02d9e4.entry.js} +2 -2
  333. package/dist/wcs/p-0d02d9e4.entry.js.map +1 -0
  334. package/dist/wcs/{p-30d8f9c3.entry.js → p-11ab4ffc.entry.js} +2 -2
  335. package/dist/wcs/p-13548191.entry.js +2 -0
  336. package/dist/wcs/p-13548191.entry.js.map +1 -0
  337. package/dist/wcs/p-13ffe5f3.entry.js +2 -0
  338. package/dist/wcs/p-13ffe5f3.entry.js.map +1 -0
  339. package/dist/wcs/{p-dfddec76.entry.js → p-17442a2f.entry.js} +2 -2
  340. package/dist/wcs/p-1d49a02e.entry.js +2 -0
  341. package/dist/wcs/p-1d49a02e.entry.js.map +1 -0
  342. package/dist/wcs/{p-d6c3e615.js → p-24611014.js} +2 -2
  343. package/dist/wcs/p-250b3794.entry.js +2 -0
  344. package/dist/wcs/{p-91b3e4b5.entry.js.map → p-250b3794.entry.js.map} +1 -1
  345. package/dist/wcs/{p-292ca644.entry.js → p-2d62b3dd.entry.js} +2 -2
  346. package/dist/wcs/{p-d6b3f742.entry.js → p-33a5594d.entry.js} +2 -2
  347. package/dist/wcs/p-33a570ee.js +2 -0
  348. package/dist/wcs/p-33a570ee.js.map +1 -0
  349. package/dist/wcs/{p-e86c6cbb.entry.js → p-34079054.entry.js} +2 -2
  350. package/dist/wcs/{p-e86c6cbb.entry.js.map → p-34079054.entry.js.map} +1 -1
  351. package/dist/wcs/{p-257b15b9.entry.js → p-36e83879.entry.js} +2 -2
  352. package/dist/wcs/p-44410e32.entry.js +2 -0
  353. package/dist/wcs/p-44410e32.entry.js.map +1 -0
  354. package/dist/wcs/{p-7269272f.entry.js → p-46184d47.entry.js} +2 -2
  355. package/dist/wcs/p-46975b1e.entry.js +2 -0
  356. package/dist/wcs/p-46975b1e.entry.js.map +1 -0
  357. package/dist/wcs/{p-4a9f8e94.entry.js → p-46d56c4e.entry.js} +3 -3
  358. package/dist/wcs/{p-fc3f5b53.entry.js → p-4820154c.entry.js} +2 -2
  359. package/dist/wcs/p-49b0de03.entry.js +2 -0
  360. package/dist/wcs/p-49b0de03.entry.js.map +1 -0
  361. package/dist/wcs/{p-ff9967eb.entry.js → p-4af68f13.entry.js} +2 -2
  362. package/dist/wcs/{p-1f8c73eb.entry.js → p-5f0ab1dc.entry.js} +2 -2
  363. package/dist/wcs/p-5f0ab1dc.entry.js.map +1 -0
  364. package/dist/wcs/p-5f3e6b0c.entry.js +2 -0
  365. package/dist/wcs/p-5f3e6b0c.entry.js.map +1 -0
  366. package/dist/wcs/{p-50dce764.entry.js → p-61b934a7.entry.js} +2 -2
  367. package/dist/wcs/p-64855188.js +2 -0
  368. package/dist/wcs/p-64855188.js.map +1 -0
  369. package/dist/wcs/p-680b107c.entry.js +2 -0
  370. package/dist/wcs/p-68d654da.js +2 -0
  371. package/dist/wcs/p-68d654da.js.map +1 -0
  372. package/dist/wcs/p-69d1223c.js +3 -0
  373. package/dist/wcs/p-69d1223c.js.map +1 -0
  374. package/dist/wcs/p-6f538b67.entry.js +2 -0
  375. package/dist/wcs/p-6f538b67.entry.js.map +1 -0
  376. package/dist/wcs/p-7c145ed0.entry.js +2 -0
  377. package/dist/wcs/p-7c145ed0.entry.js.map +1 -0
  378. package/dist/wcs/p-8724a296.entry.js +2 -0
  379. package/dist/wcs/p-8724a296.entry.js.map +1 -0
  380. package/dist/wcs/{p-d084dd61.entry.js → p-88b1cdfe.entry.js} +2 -2
  381. package/dist/wcs/{p-c7494651.entry.js → p-8ff7e463.entry.js} +2 -2
  382. package/dist/wcs/p-90a7fd68.entry.js +2 -0
  383. package/dist/wcs/p-90a7fd68.entry.js.map +1 -0
  384. package/dist/wcs/{p-cfcacc44.entry.js → p-914aa964.entry.js} +2 -2
  385. package/dist/wcs/p-93fcef08.entry.js +2 -0
  386. package/dist/wcs/p-93fcef08.entry.js.map +1 -0
  387. package/dist/wcs/{p-429bd9fb.entry.js → p-9b1c73b3.entry.js} +2 -2
  388. package/dist/wcs/p-9cc48d75.js +2 -0
  389. package/dist/wcs/p-9cc48d75.js.map +1 -0
  390. package/dist/wcs/p-a3518f66.entry.js +2 -0
  391. package/dist/wcs/p-a361d9f1.entry.js +2 -0
  392. package/dist/wcs/{p-31a8d23f.entry.js → p-a85208ca.entry.js} +2 -2
  393. package/dist/wcs/{p-d3f1cafe.entry.js → p-b91323fc.entry.js} +2 -2
  394. package/dist/wcs/{p-47d8ece5.entry.js → p-bd4029f8.entry.js} +2 -2
  395. package/dist/wcs/{p-e348058b.entry.js → p-bed4e3ce.entry.js} +2 -2
  396. package/dist/wcs/{p-f489793d.entry.js → p-c261353f.entry.js} +2 -2
  397. package/dist/wcs/p-c261353f.entry.js.map +1 -0
  398. package/dist/wcs/p-c3227f01.entry.js +2 -0
  399. package/dist/wcs/p-c3227f01.entry.js.map +1 -0
  400. package/dist/wcs/{p-810aff71.entry.js → p-c38adf4b.entry.js} +2 -2
  401. package/dist/wcs/{p-2185bf8b.entry.js → p-c6a8c6f9.entry.js} +2 -2
  402. package/dist/wcs/p-c9478849.entry.js +2 -0
  403. package/dist/wcs/p-c9478849.entry.js.map +1 -0
  404. package/dist/wcs/p-ce3ef5d0.entry.js +2 -0
  405. package/dist/wcs/p-ce3ef5d0.entry.js.map +1 -0
  406. package/dist/wcs/{p-54e29233.entry.js → p-ce40b012.entry.js} +2 -2
  407. package/dist/wcs/{p-54e29233.entry.js.map → p-ce40b012.entry.js.map} +1 -1
  408. package/dist/wcs/p-d6c482fc.entry.js +2 -0
  409. package/dist/wcs/p-d6c482fc.entry.js.map +1 -0
  410. package/dist/wcs/{p-1e43122f.entry.js → p-d84cee70.entry.js} +2 -2
  411. package/dist/wcs/p-d895b92c.entry.js +16 -0
  412. package/dist/wcs/p-d895b92c.entry.js.map +1 -0
  413. package/dist/wcs/p-dca2f42c.entry.js +2 -0
  414. package/dist/wcs/{p-7519a270.entry.js → p-e0d5908a.entry.js} +2 -2
  415. package/dist/wcs/{p-a5cd4c07.entry.js → p-e487ff2c.entry.js} +2 -2
  416. package/dist/wcs/p-e487ff2c.entry.js.map +1 -0
  417. package/dist/wcs/{p-3b1fc676.entry.js → p-e52c11e4.entry.js} +2 -2
  418. package/dist/wcs/{p-0ede0c37.entry.js → p-e7661047.entry.js} +2 -2
  419. package/dist/wcs/p-ea6e33ee.entry.js +2 -0
  420. package/dist/wcs/{p-cc03627c.entry.js → p-f7ce4e0d.entry.js} +2 -2
  421. package/dist/wcs/{p-b6160b7c.entry.js → p-faf04401.entry.js} +2 -2
  422. package/dist/wcs/p-fc1767ae.entry.js +2 -0
  423. package/dist/wcs/p-fc1767ae.entry.js.map +1 -0
  424. package/dist/wcs/p-feebc469.entry.js +2 -0
  425. package/dist/wcs/p-feebc469.entry.js.map +1 -0
  426. package/dist/wcs/wcs.css +1 -1
  427. package/dist/wcs/wcs.esm.js +1 -1
  428. package/dist/wcs/wcs.esm.js.map +1 -1
  429. package/package.json +1 -1
  430. package/dist/cjs/accessibility-e99b032d.js.map +0 -1
  431. package/dist/cjs/grid-pagination-4b55c908.js +0 -101
  432. package/dist/cjs/grid-pagination-4b55c908.js.map +0 -1
  433. package/dist/cjs/helpers-4a14051a.js.map +0 -1
  434. package/dist/cjs/index-ca67a6dc.js.map +0 -1
  435. package/dist/cjs/isEqual-9ea7ee49.js.map +0 -1
  436. package/dist/cjs/wcs-button.cjs.entry.js.map +0 -1
  437. package/dist/cjs/wcs-spinner.cjs.entry.js +0 -22
  438. package/dist/cjs/wcs-spinner.cjs.entry.js.map +0 -1
  439. package/dist/esm/accessibility-ffa12842.js.map +0 -1
  440. package/dist/esm/grid-pagination-41354861.js +0 -99
  441. package/dist/esm/grid-pagination-41354861.js.map +0 -1
  442. package/dist/esm/helpers-1d55b67f.js.map +0 -1
  443. package/dist/esm/index-dc4d96d4.js.map +0 -1
  444. package/dist/esm/isEqual-20881bca.js.map +0 -1
  445. package/dist/esm/wcs-button.entry.js.map +0 -1
  446. package/dist/esm/wcs-spinner.entry.js +0 -18
  447. package/dist/esm/wcs-spinner.entry.js.map +0 -1
  448. package/dist/wcs/p-02b95dbf.entry.js +0 -2
  449. package/dist/wcs/p-02b95dbf.entry.js.map +0 -1
  450. package/dist/wcs/p-0f8db386.js +0 -2
  451. package/dist/wcs/p-0f8db386.js.map +0 -1
  452. package/dist/wcs/p-17630eea.entry.js +0 -2
  453. package/dist/wcs/p-1f8c73eb.entry.js.map +0 -1
  454. package/dist/wcs/p-269d244c.entry.js +0 -2
  455. package/dist/wcs/p-269d244c.entry.js.map +0 -1
  456. package/dist/wcs/p-2f63d6c5.entry.js +0 -2
  457. package/dist/wcs/p-2f63d6c5.entry.js.map +0 -1
  458. package/dist/wcs/p-39821dd2.entry.js +0 -2
  459. package/dist/wcs/p-39821dd2.entry.js.map +0 -1
  460. package/dist/wcs/p-3dc6b507.js +0 -2
  461. package/dist/wcs/p-3dc6b507.js.map +0 -1
  462. package/dist/wcs/p-463667c9.entry.js +0 -2
  463. package/dist/wcs/p-475ac7c5.js +0 -2
  464. package/dist/wcs/p-475ac7c5.js.map +0 -1
  465. package/dist/wcs/p-4ffe4539.entry.js +0 -2
  466. package/dist/wcs/p-4ffe4539.entry.js.map +0 -1
  467. package/dist/wcs/p-57560d7d.entry.js +0 -2
  468. package/dist/wcs/p-57560d7d.entry.js.map +0 -1
  469. package/dist/wcs/p-61cab06f.entry.js +0 -2
  470. package/dist/wcs/p-61cab06f.entry.js.map +0 -1
  471. package/dist/wcs/p-627bbb6a.entry.js +0 -2
  472. package/dist/wcs/p-627bbb6a.entry.js.map +0 -1
  473. package/dist/wcs/p-6de70331.entry.js +0 -2
  474. package/dist/wcs/p-6de70331.entry.js.map +0 -1
  475. package/dist/wcs/p-747a5962.entry.js +0 -2
  476. package/dist/wcs/p-8181f8cd.js +0 -2
  477. package/dist/wcs/p-8181f8cd.js.map +0 -1
  478. package/dist/wcs/p-8c4ed883.entry.js +0 -2
  479. package/dist/wcs/p-8c4ed883.entry.js.map +0 -1
  480. package/dist/wcs/p-8d57835f.entry.js +0 -2
  481. package/dist/wcs/p-8fed8b1c.entry.js +0 -2
  482. package/dist/wcs/p-8fed8b1c.entry.js.map +0 -1
  483. package/dist/wcs/p-91b3e4b5.entry.js +0 -2
  484. package/dist/wcs/p-9910fedd.entry.js +0 -2
  485. package/dist/wcs/p-9910fedd.entry.js.map +0 -1
  486. package/dist/wcs/p-9d798de4.entry.js +0 -2
  487. package/dist/wcs/p-9d798de4.entry.js.map +0 -1
  488. package/dist/wcs/p-9ecdeaf9.entry.js +0 -2
  489. package/dist/wcs/p-9ecdeaf9.entry.js.map +0 -1
  490. package/dist/wcs/p-a2df3a49.js +0 -3
  491. package/dist/wcs/p-a2df3a49.js.map +0 -1
  492. package/dist/wcs/p-a5cd4c07.entry.js.map +0 -1
  493. package/dist/wcs/p-ac106663.entry.js +0 -2
  494. package/dist/wcs/p-ac106663.entry.js.map +0 -1
  495. package/dist/wcs/p-cb90bc3a.entry.js +0 -2
  496. package/dist/wcs/p-cb90bc3a.entry.js.map +0 -1
  497. package/dist/wcs/p-cdd172b4.entry.js +0 -2
  498. package/dist/wcs/p-d5a0e271.entry.js +0 -2
  499. package/dist/wcs/p-d5a0e271.entry.js.map +0 -1
  500. package/dist/wcs/p-ec84d6fd.entry.js +0 -16
  501. package/dist/wcs/p-ec84d6fd.entry.js.map +0 -1
  502. package/dist/wcs/p-ed3132be.entry.js +0 -2
  503. package/dist/wcs/p-ed3132be.entry.js.map +0 -1
  504. package/dist/wcs/p-f06f48f3.entry.js.map +0 -1
  505. package/dist/wcs/p-f20b9024.entry.js +0 -2
  506. package/dist/wcs/p-f20b9024.entry.js.map +0 -1
  507. package/dist/wcs/p-f489793d.entry.js.map +0 -1
  508. /package/dist/wcs/{p-7a3f70da.entry.js.map → p-00f6a79a.entry.js.map} +0 -0
  509. /package/dist/wcs/{p-ee453b6e.entry.js.map → p-016e4dd9.entry.js.map} +0 -0
  510. /package/dist/wcs/{p-30d8f9c3.entry.js.map → p-11ab4ffc.entry.js.map} +0 -0
  511. /package/dist/wcs/{p-dfddec76.entry.js.map → p-17442a2f.entry.js.map} +0 -0
  512. /package/dist/wcs/{p-d6c3e615.js.map → p-24611014.js.map} +0 -0
  513. /package/dist/wcs/{p-292ca644.entry.js.map → p-2d62b3dd.entry.js.map} +0 -0
  514. /package/dist/wcs/{p-d6b3f742.entry.js.map → p-33a5594d.entry.js.map} +0 -0
  515. /package/dist/wcs/{p-257b15b9.entry.js.map → p-36e83879.entry.js.map} +0 -0
  516. /package/dist/wcs/{p-7269272f.entry.js.map → p-46184d47.entry.js.map} +0 -0
  517. /package/dist/wcs/{p-4a9f8e94.entry.js.map → p-46d56c4e.entry.js.map} +0 -0
  518. /package/dist/wcs/{p-fc3f5b53.entry.js.map → p-4820154c.entry.js.map} +0 -0
  519. /package/dist/wcs/{p-ff9967eb.entry.js.map → p-4af68f13.entry.js.map} +0 -0
  520. /package/dist/wcs/{p-50dce764.entry.js.map → p-61b934a7.entry.js.map} +0 -0
  521. /package/dist/wcs/{p-17630eea.entry.js.map → p-680b107c.entry.js.map} +0 -0
  522. /package/dist/wcs/{p-d084dd61.entry.js.map → p-88b1cdfe.entry.js.map} +0 -0
  523. /package/dist/wcs/{p-c7494651.entry.js.map → p-8ff7e463.entry.js.map} +0 -0
  524. /package/dist/wcs/{p-cfcacc44.entry.js.map → p-914aa964.entry.js.map} +0 -0
  525. /package/dist/wcs/{p-429bd9fb.entry.js.map → p-9b1c73b3.entry.js.map} +0 -0
  526. /package/dist/wcs/{p-8d57835f.entry.js.map → p-a3518f66.entry.js.map} +0 -0
  527. /package/dist/wcs/{p-463667c9.entry.js.map → p-a361d9f1.entry.js.map} +0 -0
  528. /package/dist/wcs/{p-31a8d23f.entry.js.map → p-a85208ca.entry.js.map} +0 -0
  529. /package/dist/wcs/{p-d3f1cafe.entry.js.map → p-b91323fc.entry.js.map} +0 -0
  530. /package/dist/wcs/{p-47d8ece5.entry.js.map → p-bd4029f8.entry.js.map} +0 -0
  531. /package/dist/wcs/{p-e348058b.entry.js.map → p-bed4e3ce.entry.js.map} +0 -0
  532. /package/dist/wcs/{p-810aff71.entry.js.map → p-c38adf4b.entry.js.map} +0 -0
  533. /package/dist/wcs/{p-2185bf8b.entry.js.map → p-c6a8c6f9.entry.js.map} +0 -0
  534. /package/dist/wcs/{p-1e43122f.entry.js.map → p-d84cee70.entry.js.map} +0 -0
  535. /package/dist/wcs/{p-747a5962.entry.js.map → p-dca2f42c.entry.js.map} +0 -0
  536. /package/dist/wcs/{p-7519a270.entry.js.map → p-e0d5908a.entry.js.map} +0 -0
  537. /package/dist/wcs/{p-3b1fc676.entry.js.map → p-e52c11e4.entry.js.map} +0 -0
  538. /package/dist/wcs/{p-0ede0c37.entry.js.map → p-e7661047.entry.js.map} +0 -0
  539. /package/dist/wcs/{p-cdd172b4.entry.js.map → p-ea6e33ee.entry.js.map} +0 -0
  540. /package/dist/wcs/{p-cc03627c.entry.js.map → p-f7ce4e0d.entry.js.map} +0 -0
  541. /package/dist/wcs/{p-b6160b7c.entry.js.map → p-faf04401.entry.js.map} +0 -0
@@ -2,9 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-ca67a6dc.js');
6
- const gridPagination = require('./grid-pagination-4b55c908.js');
7
- const isEqual = require('./isEqual-9ea7ee49.js');
5
+ const index = require('./index-749d999e.js');
6
+ const gridPagination = require('./grid-pagination-3511fdfa.js');
7
+ const keyboardEvent = require('./keyboard-event-1cad4036.js');
8
+ require('./helpers-6280db6e.js');
8
9
 
9
10
  function getSortOrderInteger(sortOrder) {
10
11
  switch (sortOrder) {
@@ -111,7 +112,7 @@ var symbolTag$2 = '[object Symbol]';
111
112
  */
112
113
  function isSymbol(value) {
113
114
  return typeof value == 'symbol' ||
114
- (isEqual.isObjectLike(value) && isEqual.baseGetTag(value) == symbolTag$2);
115
+ (keyboardEvent.isObjectLike(value) && keyboardEvent.baseGetTag(value) == symbolTag$2);
115
116
  }
116
117
 
117
118
  /**
@@ -138,7 +139,7 @@ function arrayMap(array, iteratee) {
138
139
  var INFINITY$1 = 1 / 0;
139
140
 
140
141
  /** Used to convert symbols to primitives and strings. */
141
- var symbolProto$1 = isEqual.Symbol ? isEqual.Symbol.prototype : undefined,
142
+ var symbolProto$1 = keyboardEvent.Symbol ? keyboardEvent.Symbol.prototype : undefined,
142
143
  symbolToString = symbolProto$1 ? symbolProto$1.toString : undefined;
143
144
 
144
145
  /**
@@ -154,7 +155,7 @@ function baseToString(value) {
154
155
  if (typeof value == 'string') {
155
156
  return value;
156
157
  }
157
- if (isEqual.isArray(value)) {
158
+ if (keyboardEvent.isArray(value)) {
158
159
  // Recursively convert values (susceptible to call stack limits).
159
160
  return arrayMap(value, baseToString) + '';
160
161
  }
@@ -179,7 +180,7 @@ var objectCreate = Object.create;
179
180
  var baseCreate = (function() {
180
181
  function object() {}
181
182
  return function(proto) {
182
- if (!isEqual.isObject(proto)) {
183
+ if (!keyboardEvent.isObject(proto)) {
183
184
  return {};
184
185
  }
185
186
  if (objectCreate) {
@@ -213,7 +214,7 @@ function copyArray(source, array) {
213
214
 
214
215
  var defineProperty = (function() {
215
216
  try {
216
- var func = isEqual.getNative(Object, 'defineProperty');
217
+ var func = keyboardEvent.getNative(Object, 'defineProperty');
217
218
  func({}, '', {});
218
219
  return func;
219
220
  } catch (e) {}
@@ -280,7 +281,7 @@ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;
280
281
  */
281
282
  function assignValue(object, key, value) {
282
283
  var objValue = object[key];
283
- if (!(hasOwnProperty$2.call(object, key) && isEqual.eq(objValue, value)) ||
284
+ if (!(hasOwnProperty$2.call(object, key) && keyboardEvent.eq(objValue, value)) ||
284
285
  (value === undefined && !(key in object))) {
285
286
  baseAssignValue(object, key, value);
286
287
  }
@@ -355,10 +356,10 @@ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
355
356
  * @returns {Array} Returns the array of property names.
356
357
  */
357
358
  function baseKeysIn(object) {
358
- if (!isEqual.isObject(object)) {
359
+ if (!keyboardEvent.isObject(object)) {
359
360
  return nativeKeysIn(object);
360
361
  }
361
- var isProto = isEqual.isPrototype(object),
362
+ var isProto = keyboardEvent.isPrototype(object),
362
363
  result = [];
363
364
 
364
365
  for (var key in object) {
@@ -393,7 +394,7 @@ function baseKeysIn(object) {
393
394
  * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
394
395
  */
395
396
  function keysIn(object) {
396
- return isEqual.isArrayLike(object) ? isEqual.arrayLikeKeys(object, true) : baseKeysIn(object);
397
+ return keyboardEvent.isArrayLike(object) ? keyboardEvent.arrayLikeKeys(object, true) : baseKeysIn(object);
397
398
  }
398
399
 
399
400
  /** Used to match property names within property paths. */
@@ -409,7 +410,7 @@ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
409
410
  * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
410
411
  */
411
412
  function isKey(value, object) {
412
- if (isEqual.isArray(value)) {
413
+ if (keyboardEvent.isArray(value)) {
413
414
  return false;
414
415
  }
415
416
  var type = typeof value;
@@ -484,12 +485,12 @@ function memoize(func, resolver) {
484
485
  memoized.cache = cache.set(key, result) || cache;
485
486
  return result;
486
487
  };
487
- memoized.cache = new (memoize.Cache || isEqual.MapCache);
488
+ memoized.cache = new (memoize.Cache || keyboardEvent.MapCache);
488
489
  return memoized;
489
490
  }
490
491
 
491
492
  // Expose `MapCache`.
492
- memoize.Cache = isEqual.MapCache;
493
+ memoize.Cache = keyboardEvent.MapCache;
493
494
 
494
495
  /** Used as the maximum memoize cache size. */
495
496
  var MAX_MEMOIZE_SIZE = 500;
@@ -572,7 +573,7 @@ function toString(value) {
572
573
  * @returns {Array} Returns the cast property path array.
573
574
  */
574
575
  function castPath(value, object) {
575
- if (isEqual.isArray(value)) {
576
+ if (keyboardEvent.isArray(value)) {
576
577
  return value;
577
578
  }
578
579
  return isKey(value, object) ? [value] : stringToPath(toString(value));
@@ -647,7 +648,7 @@ function get(object, path, defaultValue) {
647
648
  }
648
649
 
649
650
  /** Built-in value references. */
650
- var getPrototype = isEqual.overArg(Object.getPrototypeOf, Object);
651
+ var getPrototype = keyboardEvent.overArg(Object.getPrototypeOf, Object);
651
652
 
652
653
  /**
653
654
  * The base implementation of `_.assign` without support for multiple sources
@@ -659,7 +660,7 @@ var getPrototype = isEqual.overArg(Object.getPrototypeOf, Object);
659
660
  * @returns {Object} Returns `object`.
660
661
  */
661
662
  function baseAssign(object, source) {
662
- return object && copyObject(source, isEqual.keys(source), object);
663
+ return object && copyObject(source, keyboardEvent.keys(source), object);
663
664
  }
664
665
 
665
666
  /**
@@ -685,7 +686,7 @@ var freeModule = freeExports && typeof module == 'object' && module && !module.n
685
686
  var moduleExports = freeModule && freeModule.exports === freeExports;
686
687
 
687
688
  /** Built-in value references. */
688
- var Buffer = moduleExports ? isEqual.root.Buffer : undefined,
689
+ var Buffer = moduleExports ? keyboardEvent.root.Buffer : undefined,
689
690
  allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;
690
691
 
691
692
  /**
@@ -716,7 +717,7 @@ function cloneBuffer(buffer, isDeep) {
716
717
  * @returns {Object} Returns `object`.
717
718
  */
718
719
  function copySymbols(source, object) {
719
- return copyObject(source, isEqual.getSymbols(source), object);
720
+ return copyObject(source, keyboardEvent.getSymbols(source), object);
720
721
  }
721
722
 
722
723
  /* Built-in method references for those with the same name as other `lodash` methods. */
@@ -729,10 +730,10 @@ var nativeGetSymbols = Object.getOwnPropertySymbols;
729
730
  * @param {Object} object The object to query.
730
731
  * @returns {Array} Returns the array of symbols.
731
732
  */
732
- var getSymbolsIn = !nativeGetSymbols ? isEqual.stubArray : function(object) {
733
+ var getSymbolsIn = !nativeGetSymbols ? keyboardEvent.stubArray : function(object) {
733
734
  var result = [];
734
735
  while (object) {
735
- isEqual.arrayPush(result, isEqual.getSymbols(object));
736
+ keyboardEvent.arrayPush(result, keyboardEvent.getSymbols(object));
736
737
  object = getPrototype(object);
737
738
  }
738
739
  return result;
@@ -759,7 +760,7 @@ function copySymbolsIn(source, object) {
759
760
  * @returns {Array} Returns the array of property names and symbols.
760
761
  */
761
762
  function getAllKeysIn(object) {
762
- return isEqual.baseGetAllKeys(object, keysIn, getSymbolsIn);
763
+ return keyboardEvent.baseGetAllKeys(object, keysIn, getSymbolsIn);
763
764
  }
764
765
 
765
766
  /** Used for built-in method references. */
@@ -796,7 +797,7 @@ function initCloneArray(array) {
796
797
  */
797
798
  function cloneArrayBuffer(arrayBuffer) {
798
799
  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
799
- new isEqual.Uint8Array(result).set(new isEqual.Uint8Array(arrayBuffer));
800
+ new keyboardEvent.Uint8Array(result).set(new keyboardEvent.Uint8Array(arrayBuffer));
800
801
  return result;
801
802
  }
802
803
 
@@ -830,7 +831,7 @@ function cloneRegExp(regexp) {
830
831
  }
831
832
 
832
833
  /** Used to convert symbols to primitives and strings. */
833
- var symbolProto = isEqual.Symbol ? isEqual.Symbol.prototype : undefined,
834
+ var symbolProto = keyboardEvent.Symbol ? keyboardEvent.Symbol.prototype : undefined,
834
835
  symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
835
836
 
836
837
  /**
@@ -935,7 +936,7 @@ function initCloneByTag(object, tag, isDeep) {
935
936
  * @returns {Object} Returns the initialized clone.
936
937
  */
937
938
  function initCloneObject(object) {
938
- return (typeof object.constructor == 'function' && !isEqual.isPrototype(object))
939
+ return (typeof object.constructor == 'function' && !keyboardEvent.isPrototype(object))
939
940
  ? baseCreate(getPrototype(object))
940
941
  : {};
941
942
  }
@@ -951,11 +952,11 @@ var mapTag$1 = '[object Map]';
951
952
  * @returns {boolean} Returns `true` if `value` is a map, else `false`.
952
953
  */
953
954
  function baseIsMap(value) {
954
- return isEqual.isObjectLike(value) && isEqual.getTag(value) == mapTag$1;
955
+ return keyboardEvent.isObjectLike(value) && keyboardEvent.getTag(value) == mapTag$1;
955
956
  }
956
957
 
957
958
  /* Node.js helper references. */
958
- var nodeIsMap = isEqual.nodeUtil && isEqual.nodeUtil.isMap;
959
+ var nodeIsMap = keyboardEvent.nodeUtil && keyboardEvent.nodeUtil.isMap;
959
960
 
960
961
  /**
961
962
  * Checks if `value` is classified as a `Map` object.
@@ -974,7 +975,7 @@ var nodeIsMap = isEqual.nodeUtil && isEqual.nodeUtil.isMap;
974
975
  * _.isMap(new WeakMap);
975
976
  * // => false
976
977
  */
977
- var isMap = nodeIsMap ? isEqual.baseUnary(nodeIsMap) : baseIsMap;
978
+ var isMap = nodeIsMap ? keyboardEvent.baseUnary(nodeIsMap) : baseIsMap;
978
979
 
979
980
  /** `Object#toString` result references. */
980
981
  var setTag$1 = '[object Set]';
@@ -987,11 +988,11 @@ var setTag$1 = '[object Set]';
987
988
  * @returns {boolean} Returns `true` if `value` is a set, else `false`.
988
989
  */
989
990
  function baseIsSet(value) {
990
- return isEqual.isObjectLike(value) && isEqual.getTag(value) == setTag$1;
991
+ return keyboardEvent.isObjectLike(value) && keyboardEvent.getTag(value) == setTag$1;
991
992
  }
992
993
 
993
994
  /* Node.js helper references. */
994
- var nodeIsSet = isEqual.nodeUtil && isEqual.nodeUtil.isSet;
995
+ var nodeIsSet = keyboardEvent.nodeUtil && keyboardEvent.nodeUtil.isSet;
995
996
 
996
997
  /**
997
998
  * Checks if `value` is classified as a `Set` object.
@@ -1010,7 +1011,7 @@ var nodeIsSet = isEqual.nodeUtil && isEqual.nodeUtil.isSet;
1010
1011
  * _.isSet(new WeakSet);
1011
1012
  * // => false
1012
1013
  */
1013
- var isSet = nodeIsSet ? isEqual.baseUnary(nodeIsSet) : baseIsSet;
1014
+ var isSet = nodeIsSet ? keyboardEvent.baseUnary(nodeIsSet) : baseIsSet;
1014
1015
 
1015
1016
  /** Used to compose bitmasks for cloning. */
1016
1017
  var CLONE_DEEP_FLAG$1 = 1,
@@ -1090,20 +1091,20 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1090
1091
  if (result !== undefined) {
1091
1092
  return result;
1092
1093
  }
1093
- if (!isEqual.isObject(value)) {
1094
+ if (!keyboardEvent.isObject(value)) {
1094
1095
  return value;
1095
1096
  }
1096
- var isArr = isEqual.isArray(value);
1097
+ var isArr = keyboardEvent.isArray(value);
1097
1098
  if (isArr) {
1098
1099
  result = initCloneArray(value);
1099
1100
  if (!isDeep) {
1100
1101
  return copyArray(value, result);
1101
1102
  }
1102
1103
  } else {
1103
- var tag = isEqual.getTag(value),
1104
+ var tag = keyboardEvent.getTag(value),
1104
1105
  isFunc = tag == funcTag || tag == genTag;
1105
1106
 
1106
- if (isEqual.isBuffer(value)) {
1107
+ if (keyboardEvent.isBuffer(value)) {
1107
1108
  return cloneBuffer(value, isDeep);
1108
1109
  }
1109
1110
  if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
@@ -1121,7 +1122,7 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1121
1122
  }
1122
1123
  }
1123
1124
  // Check for circular references and return its corresponding clone.
1124
- stack || (stack = new isEqual.Stack);
1125
+ stack || (stack = new keyboardEvent.Stack);
1125
1126
  var stacked = stack.get(value);
1126
1127
  if (stacked) {
1127
1128
  return stacked;
@@ -1139,8 +1140,8 @@ function baseClone(value, bitmask, customizer, key, object, stack) {
1139
1140
  }
1140
1141
 
1141
1142
  var keysFunc = isFull
1142
- ? (isFlat ? getAllKeysIn : isEqual.getAllKeys)
1143
- : (isFlat ? keysIn : isEqual.keys);
1143
+ ? (isFlat ? getAllKeysIn : keyboardEvent.getAllKeys)
1144
+ : (isFlat ? keysIn : keyboardEvent.keys);
1144
1145
 
1145
1146
  var props = isArr ? undefined : keysFunc(value);
1146
1147
  arrayEach(props || value, function(subValue, key) {
@@ -1180,7 +1181,51 @@ function cloneDeep(value) {
1180
1181
  return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
1181
1182
  }
1182
1183
 
1183
- const gridCss = ":host{display:block;--wcs-grid-highlight-color:var(--wcs-light)}:host th{background-color:var(--wcs-light)}:host th:not(:first-child){border-left:solid 1px var(--wcs-text-light)}:host ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:none}:host table{width:100%;border-spacing:0}:host td{color:var(--wcs-gray-light);margin:0;padding:calc(var(--wcs-padding) / 2) var(--wcs-padding)}:host tr:not(:last-child) td{border-bottom:solid 1px var(--wcs-text-light)}:host .wcs-grid-selection-column{padding:calc(var(--wcs-padding) / 2) var(--wcs-padding);width:40px}:host tr.selected{background-color:var(--wcs-grid-highlight-color)}:host .loading{text-align:center}:host([selection]) ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:solid 1px var(--wcs-text-light) !important}";
1184
+ /**
1185
+ * We follow this https://www.w3.org/WAI/ARIA/apg/patterns/grid/
1186
+ * @param event
1187
+ * @param type
1188
+ */
1189
+ function getActionForKeyboardEvent(event, type) {
1190
+ const keyboardShortcut = keyboardEvent.keyboardShortcutFromKeyboardEvent(event);
1191
+ if (keyboardShortcut === 'UNKNOWN') {
1192
+ return [];
1193
+ }
1194
+ switch (keyboardShortcut) {
1195
+ case "UP_ARROW":
1196
+ return [{ kind: 'FocusCell', target: 'up' }];
1197
+ case "DOWN_ARROW":
1198
+ return [{ kind: 'FocusCell', target: 'down' }];
1199
+ case "LEFT_ARROW":
1200
+ return [{ kind: 'FocusCell', target: 'left' }];
1201
+ case "RIGHT_ARROW":
1202
+ return [{ kind: 'FocusCell', target: 'right' }];
1203
+ case "HOME":
1204
+ return [{ kind: 'FocusCell', target: 'first_of_row' }];
1205
+ case "END":
1206
+ return [{ kind: 'FocusCell', target: 'last_of_row' }];
1207
+ case "MAJ+SPACE":
1208
+ switch (type) {
1209
+ case "grid_selection_single":
1210
+ case "grid_selection_multiple":
1211
+ return [{ kind: 'SelectRow', target: 'one' }];
1212
+ }
1213
+ break;
1214
+ case "CTRL+A":
1215
+ switch (type) {
1216
+ case "grid_selection_multiple":
1217
+ return [{ kind: 'SelectRow', target: 'all' }];
1218
+ }
1219
+ break;
1220
+ case "CTRL+HOME":
1221
+ return [{ kind: 'FocusCell', target: 'first_of_grid' }];
1222
+ case "CTRL+END":
1223
+ return [{ kind: 'FocusCell', target: 'last_of_grid' }];
1224
+ }
1225
+ return [];
1226
+ }
1227
+
1228
+ const gridCss = ":host{display:block;--wcs-grid-highlight-color:var(--wcs-light)}:host th{background-color:var(--wcs-light)}:host th:not(:first-child){border-left:solid 1px var(--wcs-text-light)}:host ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:none}:host table{width:100%;border-spacing:0}:host td{color:var(--wcs-gray-light);margin:0;padding:calc(var(--wcs-padding) / 2) var(--wcs-padding)}:host td:focus-visible{outline:2px dashed var(--wcs-primary);outline-offset:0;border-radius:0.1rem}:host tr:not(:last-child) td{border-bottom:solid 1px var(--wcs-text-light)}:host .wcs-grid-selection-column{padding:calc(var(--wcs-padding) / 2) var(--wcs-padding);width:40px}:host tr.selected{background-color:var(--wcs-grid-highlight-color)}:host .loading{text-align:center}:host([selection]) ::slotted([slot=grid-column]:first-child){--wcs-grid-column-border-left:solid 1px var(--wcs-text-light) !important}";
1184
1229
 
1185
1230
  const Grid = class {
1186
1231
  constructor(hostRef) {
@@ -1197,6 +1242,11 @@ const Grid = class {
1197
1242
  this.columns = undefined;
1198
1243
  this.paginationEl = undefined;
1199
1244
  this.rows = [];
1245
+ this.cursorPosition = { col: 0, row: 1 };
1246
+ }
1247
+ onCursorPositionChange(newValue) {
1248
+ // Notify all grid columns that the cursorPosition has changed
1249
+ this.getGridColumnsFromTemplate().forEach(g => g.cursorPosition = newValue);
1200
1250
  }
1201
1251
  onDataChange(newValue) {
1202
1252
  this.updateGridRows(newValue);
@@ -1205,16 +1255,147 @@ const Grid = class {
1205
1255
  onSelectedItemsPropertyChange(newValue) {
1206
1256
  this.updateSelectionWithValues(newValue);
1207
1257
  }
1258
+ onFocus() {
1259
+ var _a;
1260
+ (_a = this.getElementToFocusAtCursorPosition()) === null || _a === void 0 ? void 0 : _a.focus();
1261
+ }
1262
+ /**
1263
+ * If selectionConfig is different from `none`, that means that an extra column for radio or checkbox is rendered
1264
+ * in the table.
1265
+ */
1266
+ hasSelectionColumn() {
1267
+ return this.selectionConfig !== 'none';
1268
+ }
1269
+ /**
1270
+ * Returns the element to focus at the current cursor position : it can be a cell (td, th) to focus or a nested
1271
+ * checkbox / radio element if the selection mode is single or multiple
1272
+ */
1273
+ getElementToFocusAtCursorPosition() {
1274
+ var _a, _b;
1275
+ const el = (_a = this.gridElementsWithCoordinates.find(cell => { var _a, _b; return cell.col === ((_a = this.cursorPosition) === null || _a === void 0 ? void 0 : _a.col) && cell.row === ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.row); })) === null || _a === void 0 ? void 0 : _a.el;
1276
+ return this.hasSelectionColumn()
1277
+ ? (_b = el.querySelector('wcs-checkbox,wcs-radio')) !== null && _b !== void 0 ? _b : el
1278
+ : el;
1279
+ }
1280
+ moveCursorPosition(directionX, directionY) {
1281
+ var _a;
1282
+ this.cursorPosition = {
1283
+ col: directionX === 'first' ? 0 :
1284
+ directionX === 'last' ? this.totalDisplayedColumnCount() - 1 :
1285
+ Math.min(Math.max(this.cursorPosition.col + directionX, 0), this.totalDisplayedColumnCount() - 1),
1286
+ row: directionY === 'first' ? 0 :
1287
+ directionY === 'last' ? this.getRowsForCurrentPage().length :
1288
+ Math.min(Math.max(this.cursorPosition.row + directionY, 0), this.getRowsForCurrentPage().length)
1289
+ };
1290
+ this.handleCursorPositionOnEmptyTh();
1291
+ (_a = this.getElementToFocusAtCursorPosition()) === null || _a === void 0 ? void 0 : _a.focus();
1292
+ }
1293
+ /**
1294
+ * When the grid has selectionConfig single, an empty th appears at col=0, row=0.
1295
+ * It should not be focusable so the cursor navigates to col=1, row=0 instead.
1296
+ */
1297
+ handleCursorPositionOnEmptyTh() {
1298
+ if (this.selectionConfig === 'single' && this.cursorPosition.col === 0 && this.cursorPosition.row === 0) {
1299
+ this.cursorPosition = {
1300
+ col: 1,
1301
+ row: 0
1302
+ };
1303
+ }
1304
+ }
1208
1305
  onHiddenColumnChange() {
1209
1306
  // We use forceUpdate because the fact of hiding a column or not does not modify the internal structure of the grid (WcsGridRow).
1210
1307
  // Hide a column only impacts the way it is rendered but the grid-column remains in the dom and in our internal model.
1211
1308
  index.forceUpdate(this);
1309
+ this.cursorPosition = { col: 0, row: 1 };
1310
+ }
1311
+ onKeyDown(_event) {
1312
+ var _a;
1313
+ if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'WCS-GRID-PAGINATION') {
1314
+ return;
1315
+ }
1316
+ let type;
1317
+ switch (this.selectionConfig) {
1318
+ case "multiple":
1319
+ type = 'grid_selection_multiple';
1320
+ break;
1321
+ case "single":
1322
+ type = 'grid_selection_single';
1323
+ break;
1324
+ case "none":
1325
+ type = 'grid_no_selection';
1326
+ break;
1327
+ }
1328
+ const actionsFromKeyboardEvents = getActionForKeyboardEvent(_event, type);
1329
+ // If we have at least one associated actions, we prevent the default behavior of the event.
1330
+ // Except if the action is a focus move (we have to handle the preventDefault behavior ourselves in the action implementation)
1331
+ if (actionsFromKeyboardEvents.length != 0) {
1332
+ _event.preventDefault();
1333
+ }
1334
+ for (const actionFromKeyboardEvent of actionsFromKeyboardEvents) {
1335
+ this.doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent, _event);
1336
+ }
1337
+ }
1338
+ doActionFromKeyboardEventAssociatedAction(actionFromKeyboardEvent, event) {
1339
+ switch (actionFromKeyboardEvent.kind) {
1340
+ case "FocusCell":
1341
+ switch (actionFromKeyboardEvent.target) {
1342
+ case "up":
1343
+ this.moveCursorPosition(0, -1);
1344
+ break;
1345
+ case "down":
1346
+ this.moveCursorPosition(0, 1);
1347
+ break;
1348
+ case "left":
1349
+ this.moveCursorPosition(-1, 0);
1350
+ break;
1351
+ case "right":
1352
+ this.moveCursorPosition(1, 0);
1353
+ break;
1354
+ case "first_of_row":
1355
+ this.moveCursorPosition('first', 0);
1356
+ break;
1357
+ case "last_of_row":
1358
+ this.moveCursorPosition('last', 0);
1359
+ break;
1360
+ case "first_of_grid":
1361
+ this.moveCursorPosition('first', 'first');
1362
+ break;
1363
+ case "last_of_grid":
1364
+ this.moveCursorPosition('last', 'last');
1365
+ break;
1366
+ }
1367
+ case "SelectRow":
1368
+ switch (actionFromKeyboardEvent.target) {
1369
+ case "one":
1370
+ event.preventDefault();
1371
+ if (this.cursorPosition.row > 0) {
1372
+ this.onRowSelection(this.rows[this.cursorPosition.row - 1]);
1373
+ }
1374
+ break;
1375
+ case "all":
1376
+ this.selectAllRows();
1377
+ break;
1378
+ }
1379
+ break;
1380
+ default:
1381
+ throw new Error("Internal error");
1382
+ }
1383
+ }
1384
+ onClick(_event) {
1385
+ const clickedGridElement = _event.composedPath()
1386
+ .filter(x => ['TD', 'TH']
1387
+ .includes(x.nodeName))[0];
1388
+ const clickedGridElementWithCoordinates = this.gridElementsWithCoordinates.find(e => e.el === clickedGridElement);
1389
+ this.cursorPosition = {
1390
+ col: clickedGridElementWithCoordinates.col,
1391
+ row: clickedGridElementWithCoordinates.row,
1392
+ };
1212
1393
  }
1213
1394
  updateSelectionWithValues(values) {
1214
1395
  if (this.selectionConfig === 'single') {
1215
1396
  this.rows.map(r => r.selected = false);
1216
1397
  for (const row of this.rows) {
1217
- if (isEqual.isEqual(row.data, values)) {
1398
+ if (keyboardEvent.isEqual(row.data, values)) {
1218
1399
  row.selected = true;
1219
1400
  break; // only one line can be selected
1220
1401
  }
@@ -1223,7 +1404,7 @@ const Grid = class {
1223
1404
  else if (this.selectionConfig === 'multiple') {
1224
1405
  this.rows.map(r => r.selected = false);
1225
1406
  for (const row of this.rows) {
1226
- if (values.find(x => isEqual.isEqual(x, row.data))) {
1407
+ if (values.find(x => keyboardEvent.isEqual(x, row.data))) {
1227
1408
  row.selected = true;
1228
1409
  }
1229
1410
  }
@@ -1244,7 +1425,10 @@ const Grid = class {
1244
1425
  selected: false,
1245
1426
  cells: []
1246
1427
  };
1428
+ let index = 0;
1247
1429
  for (const column of this.columns) {
1430
+ column.columnPosition = index + (this.hasSelectionColumn() ? 1 : 0);
1431
+ index++;
1248
1432
  row.cells.push({
1249
1433
  content: get(data[i], column.path),
1250
1434
  column,
@@ -1272,14 +1456,14 @@ const Grid = class {
1272
1456
  * Handle existing column's filters (defined before the grid is instantiated)
1273
1457
  * @private
1274
1458
  */
1275
- refreshSort(refreshOthersColmumnsSortOrderState) {
1459
+ refreshSort(refreshOthersColumnsSortOrderState) {
1276
1460
  //fixme: why the column property can be null or undefined?
1277
1461
  if (this.columns) {
1278
1462
  const [first, ...other] = this.columns.filter(c => c.sortOrder !== 'none');
1279
1463
  if (first && !this.serverMode) {
1280
1464
  this.sortBy(first);
1281
1465
  }
1282
- refreshOthersColmumnsSortOrderState && this.disableSortOrderForColumns(other);
1466
+ refreshOthersColumnsSortOrderState && this.disableSortOrderForColumns(other);
1283
1467
  }
1284
1468
  }
1285
1469
  disableSortOrderForColumns(columns) {
@@ -1293,6 +1477,34 @@ const Grid = class {
1293
1477
  const slotted = this.el.shadowRoot.querySelector('slot[name="grid-pagination"]');
1294
1478
  return slotted.assignedElements();
1295
1479
  }
1480
+ get gridElementsWithCoordinates() {
1481
+ const gridElements = [];
1482
+ // If selection multiple, the first cell should be added to the list
1483
+ if (this.selectionConfig === 'multiple') {
1484
+ gridElements.push({
1485
+ el: this.el.shadowRoot.querySelector('th'),
1486
+ row: 0,
1487
+ col: 0
1488
+ });
1489
+ }
1490
+ this.getGridColumnsFromTemplate()
1491
+ .filter(col => !col.hidden)
1492
+ .forEach((col, index) => {
1493
+ gridElements.push({
1494
+ el: col.shadowRoot.querySelector('th'),
1495
+ row: 0,
1496
+ col: index + (this.hasSelectionColumn() ? 1 : 0),
1497
+ });
1498
+ });
1499
+ this.el.shadowRoot.querySelectorAll('td').forEach((cell, index) => {
1500
+ gridElements.push({
1501
+ el: cell,
1502
+ row: 1 + Math.floor(index / this.totalDisplayedColumnCount()),
1503
+ col: index % this.totalDisplayedColumnCount(),
1504
+ });
1505
+ });
1506
+ return gridElements;
1507
+ }
1296
1508
  sortChangeEventHandler(event) {
1297
1509
  if (event.detail.order === 'none')
1298
1510
  return;
@@ -1305,19 +1517,19 @@ const Grid = class {
1305
1517
  }
1306
1518
  /**
1307
1519
  * Sorts the grid rows according to the given column's configuration
1308
- * @param colmun Column from which to extract the sorting configuration
1520
+ * @param column Column from which to extract the sorting configuration
1309
1521
  * @private
1310
1522
  */
1311
- sortBy(colmun) {
1312
- if (colmun.sortFn) {
1523
+ sortBy(column) {
1524
+ if (column.sortFn) {
1313
1525
  this.rows = cloneDeep(this.rows)
1314
- .sort((a, b) => colmun.sortFn(a.data, b.data, colmun) * getSortOrderInteger(colmun.sortOrder));
1526
+ .sort((a, b) => column.sortFn(a.data, b.data, column) * getSortOrderInteger(column.sortOrder));
1315
1527
  }
1316
1528
  else {
1317
1529
  this.rows = cloneDeep(this.rows)
1318
1530
  .sort((a, b) => {
1319
- const path = colmun.path;
1320
- return ((get(a.data, path) < get(b.data, path)) ? -1 : (get(a.data, path) > get(b.data, path)) ? 1 : 0) * getSortOrderInteger(colmun.sortOrder);
1531
+ const path = column.path;
1532
+ return ((get(a.data, path) < get(b.data, path)) ? -1 : (get(a.data, path) > get(b.data, path)) ? 1 : 0) * getSortOrderInteger(column.sortOrder);
1321
1533
  });
1322
1534
  }
1323
1535
  }
@@ -1358,15 +1570,25 @@ const Grid = class {
1358
1570
  }
1359
1571
  row.selected = !row.selected;
1360
1572
  if (this.selectionConfig !== 'single' || row.selected) {
1361
- this.wcsGridSelectionChange.emit({ row: this.wcsGridRowToWcsGridRowData(row) });
1573
+ this.wcsGridSelectionChange.emit({
1574
+ selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),
1575
+ changedRow: this.wcsGridRowToWcsGridRowData(row)
1576
+ });
1362
1577
  }
1363
1578
  this.rows = cloneDeep(this.rows);
1364
1579
  }
1580
+ get selectedRows() {
1581
+ return this.rows.filter(r => r.selected);
1582
+ }
1365
1583
  selectAllRows() {
1366
1584
  const rows = this.getRowsForCurrentPage();
1367
1585
  const selected = !this.allRowsAreSelected();
1368
1586
  rows.map(r => r.selected = selected);
1369
1587
  this.wcsGridAllSelectionChange.emit({ rows: selected ? rows.map(row => this.wcsGridRowToWcsGridRowData(row)) : [] });
1588
+ this.wcsGridSelectionChange.emit({
1589
+ selectedRows: this.selectedRows.map(row => this.wcsGridRowToWcsGridRowData(row)),
1590
+ changedRow: 'allCheckbox'
1591
+ });
1370
1592
  this.rows = cloneDeep(this.rows);
1371
1593
  }
1372
1594
  allRowsAreSelected() {
@@ -1379,14 +1601,15 @@ const Grid = class {
1379
1601
  }
1380
1602
  return this.rows;
1381
1603
  }
1382
- renderSelectionColumn(row) {
1604
+ renderSelectionColumn(row, rowIndex) {
1605
+ var _a, _b, _c, _d;
1383
1606
  switch (this.selectionConfig) {
1384
1607
  case 'none':
1385
1608
  return;
1386
1609
  case 'single':
1387
- return index.h("td", null, index.h("wcs-radio", { checked: row.selected, onWcsRadioClick: this.onRowSelection.bind(this, row) }));
1610
+ return index.h("td", { "aria-colindex": this.atLeastOneColumnHidden() ? 1 : null, tabIndex: ((_a = this.cursorPosition) === null || _a === void 0 ? void 0 : _a.col) === 0 && rowIndex + 1 === ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.row) ? 0 : -1 }, index.h("wcs-radio", { tabIndex: -1, checked: row.selected, onWcsRadioClick: this.onRowSelection.bind(this, row) }));
1388
1611
  case 'multiple':
1389
- return index.h("td", null, index.h("wcs-checkbox", { checked: row.selected, onWcsChange: this.onRowSelection.bind(this, row) }));
1612
+ return index.h("td", { "aria-colindex": this.atLeastOneColumnHidden() ? 1 : null, tabIndex: ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.col) === 0 && rowIndex + 1 === ((_d = this.cursorPosition) === null || _d === void 0 ? void 0 : _d.row) ? 0 : -1 }, index.h("wcs-checkbox", { tabIndex: -1, checked: row.selected, onWcsChange: this.onRowSelection.bind(this, row) }));
1390
1613
  }
1391
1614
  }
1392
1615
  getCellContent(row, cell) {
@@ -1395,34 +1618,66 @@ const Grid = class {
1395
1618
  }
1396
1619
  return cell.content;
1397
1620
  }
1621
+ /**
1622
+ * Returns the total number of columns
1623
+ * @private
1624
+ */
1398
1625
  totalColumnCount() {
1399
1626
  if (!this.columns) {
1400
1627
  return 0;
1401
1628
  }
1402
- return this.columns.length + (this.selectionConfig === 'none' ? 0 : 1);
1629
+ return this.columns.length + (this.hasSelectionColumn() ? 1 : 0);
1630
+ }
1631
+ /**
1632
+ * Returns the total number of columns that are not hidden
1633
+ * @private
1634
+ */
1635
+ totalDisplayedColumnCount() {
1636
+ var _a, _b;
1637
+ return (_b = this.totalColumnCount() - ((_a = this.columns) === null || _a === void 0 ? void 0 : _a.filter(col => col.hidden).length)) !== null && _b !== void 0 ? _b : 0;
1638
+ }
1639
+ /**
1640
+ * Returns true if at least one column is hidden from the table
1641
+ * @private
1642
+ */
1643
+ atLeastOneColumnHidden() {
1644
+ return this.totalDisplayedColumnCount() !== this.totalColumnCount();
1403
1645
  }
1404
1646
  render() {
1405
- var _a;
1406
- return (index.h(index.Host, null, index.h("table", null, index.h("thead", null, this.selectionConfig === 'none' ? ''
1647
+ var _a, _b, _c, _d;
1648
+ return (index.h(index.Host, null, index.h("table", { role: "grid", "aria-rowcount": !this.loading && ((_a = this.rows) === null || _a === void 0 ? void 0 : _a.length), "aria-colcount": !this.loading && this.totalDisplayedColumnCount() }, index.h("thead", null, index.h("tr", { "aria-rowindex": "1" }, this.selectionConfig === 'none' ? ''
1407
1649
  : index.h("th", { class: "wcs-grid-selection-column" }, this.selectionConfig === 'single' ? '' :
1408
- index.h("wcs-checkbox", { checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), index.h("slot", { name: "grid-column" })), index.h("tbody", null, this.loading
1409
- ? index.h("tr", null, index.h("td", { colSpan: this.totalColumnCount(), class: "loading" }, index.h("wcs-spinner", null)))
1410
- : (_a = this.rows) === null || _a === void 0 ? void 0 : _a.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map(row => this.renderRow(row)))), index.h("slot", { name: "grid-pagination" })));
1650
+ index.h("wcs-checkbox", { tabIndex: ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.col) === 0
1651
+ && ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.row) === 0 ? 0 : -1, checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), index.h("slot", { name: "grid-column" }))), index.h("tbody", null, this.loading
1652
+ ? index.h("tr", { "aria-busy": "true" }, index.h("td", { colSpan: this.totalColumnCount(), class: "loading" }, index.h("wcs-spinner", null)))
1653
+ : (_d = this.rows) === null || _d === void 0 ? void 0 : _d.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map((row, index) => this.renderRow(row, index)))), index.h("slot", { name: "grid-pagination" })));
1411
1654
  }
1412
- renderRow(row) {
1655
+ /**
1656
+ * Returns the row with all mapped cells inside.
1657
+ * The aria-rowindex here starts at 2 because the header row starts at index 1.
1658
+ * @private
1659
+ */
1660
+ renderRow(row, rowIndex) {
1413
1661
  var _a;
1414
- return index.h("tr", { class: row.selected ? 'selected' : '' }, this.renderSelectionColumn(row), (_a = row.cells) === null || _a === void 0 ? void 0 :
1415
- _a.map(cell => {
1662
+ let hiddenColumnCount = 0;
1663
+ return index.h("tr", { class: row.selected ? 'selected' : '', "aria-selected": row.selected ? 'true' : null, "aria-rowindex": rowIndex + 2 }, this.renderSelectionColumn(row, rowIndex), (_a = row.cells) === null || _a === void 0 ? void 0 :
1664
+ _a.map((cell, cellIndex) => {
1665
+ var _a, _b;
1416
1666
  if (cell.column.hidden) {
1667
+ hiddenColumnCount++;
1417
1668
  return;
1418
1669
  }
1670
+ const nonHiddenColumnIndex = cellIndex - hiddenColumnCount + 1 + (this.hasSelectionColumn() ? 1 : 0);
1671
+ const cursorIsOnCell = nonHiddenColumnIndex - 1 === ((_a = this.cursorPosition) === null || _a === void 0 ? void 0 : _a.col)
1672
+ && rowIndex + 1 === ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.row);
1419
1673
  return cell.column.customCells
1420
- ? (index.h("td", null, index.h("slot", { name: cell.column.id + '-' + row.data[this.rowIdPath] })))
1421
- : (index.h("td", { part: cell.column.path + '-column' }, this.getCellContent(row, cell)));
1674
+ ? (index.h("td", { tabIndex: cursorIsOnCell ? 0 : -1, "aria-colindex": this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null }, index.h("slot", { name: cell.column.id + '-' + row.data[this.rowIdPath] })))
1675
+ : (index.h("td", { tabIndex: cursorIsOnCell ? 0 : -1, "aria-colindex": this.atLeastOneColumnHidden() ? nonHiddenColumnIndex : null, part: cell.column.path + '-column' }, this.getCellContent(row, cell)));
1422
1676
  }));
1423
1677
  }
1424
1678
  get el() { return index.getElement(this); }
1425
1679
  static get watchers() { return {
1680
+ "cursorPosition": ["onCursorPositionChange"],
1426
1681
  "data": ["onDataChange"],
1427
1682
  "selectedItems": ["onSelectedItemsPropertyChange"]
1428
1683
  }; }