genesys-spark-components 3.5.0 → 3.7.1

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 (437) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/{en-3662eafc.js → en-3d7b896f.js} +3 -1
  3. package/dist/cjs/genesys-webcomponents.cjs.js +2 -2
  4. package/dist/cjs/gux-accordion-legacy.cjs.entry.js +2 -2
  5. package/dist/cjs/gux-accordion-section.cjs.entry.js +1 -1
  6. package/dist/cjs/gux-accordion.cjs.entry.js +2 -2
  7. package/dist/cjs/gux-action-button-legacy.cjs.entry.js +4 -4
  8. package/dist/cjs/gux-action-button.cjs.entry.js +4 -4
  9. package/dist/cjs/gux-action-item.cjs.entry.js +1 -1
  10. package/dist/cjs/gux-action-list-divider.cjs.entry.js +1 -1
  11. package/dist/cjs/gux-action-list-legacy.cjs.entry.js +2 -2
  12. package/dist/cjs/gux-action-toast.cjs.entry.js +2 -2
  13. package/dist/cjs/gux-advanced-dropdown.cjs.entry.js +3 -3
  14. package/dist/cjs/gux-all-row-select.cjs.entry.js +3 -3
  15. package/dist/cjs/gux-badge-beta.cjs.entry.js +3 -3
  16. package/dist/cjs/gux-breadcrumb-item.cjs.entry.js +1 -1
  17. package/dist/cjs/gux-breadcrumbs.cjs.entry.js +3 -3
  18. package/dist/cjs/gux-button-multi-legacy.cjs.entry.js +3 -3
  19. package/dist/cjs/gux-button-multi.cjs.entry.js +3 -3
  20. package/dist/cjs/gux-button-slot-beta.cjs.entry.js +2 -2
  21. package/dist/cjs/gux-button.cjs.entry.js +2 -2
  22. package/dist/cjs/gux-calendar.cjs.entry.js +3 -3
  23. package/dist/cjs/gux-card-beta.cjs.entry.js +2 -2
  24. package/dist/cjs/gux-chart-column-beta.cjs.entry.js +2 -2
  25. package/dist/cjs/gux-chart-donut-beta.cjs.entry.js +2 -2
  26. package/dist/cjs/gux-chart-line-beta.cjs.entry.js +2 -2
  27. package/dist/cjs/gux-chart-pie-beta.cjs.entry.js +2 -2
  28. package/dist/cjs/gux-chart-scatter-plot-beta.cjs.entry.js +2 -2
  29. package/dist/cjs/gux-color-select_2.cjs.entry.js +1 -1
  30. package/dist/cjs/gux-command-action.cjs.entry.js +1 -1
  31. package/dist/cjs/gux-command-palette-legacy.cjs.entry.js +3 -3
  32. package/dist/cjs/gux-content-search.cjs.entry.js +3 -3
  33. package/dist/cjs/gux-copy-to-clipboard-beta.cjs.entry.js +3 -3
  34. package/dist/cjs/gux-datepicker.cjs.entry.js +4 -4
  35. package/dist/cjs/gux-disclosure-button.cjs.entry.js +3 -3
  36. package/dist/cjs/gux-dismiss-button.cjs.entry.js +3 -3
  37. package/dist/cjs/gux-dropdown-legacy.cjs.entry.js +4 -4
  38. package/dist/cjs/gux-dropdown-multi-beta.cjs.entry.js +297 -0
  39. package/dist/cjs/gux-dropdown-multi-tag.cjs.entry.js +58 -0
  40. package/dist/cjs/gux-dropdown-option.cjs.entry.js +1 -1
  41. package/dist/cjs/gux-dropdown_3.cjs.entry.js +30 -178
  42. package/dist/cjs/gux-error-message-beta.cjs.entry.js +2 -2
  43. package/dist/cjs/gux-flyout-menu-beta.cjs.entry.js +2 -2
  44. package/dist/cjs/gux-form-field-checkbox.cjs.entry.js +8 -8
  45. package/dist/cjs/gux-form-field-color.cjs.entry.js +10 -10
  46. package/dist/cjs/gux-form-field-dropdown.cjs.entry.js +91 -0
  47. package/dist/cjs/gux-form-field-input-clear-button.cjs.entry.js +3 -3
  48. package/dist/cjs/{gux-form-field-label-d5088b51.js → gux-form-field-label-abbb7396.js} +1 -1
  49. package/dist/cjs/gux-form-field-legacy.cjs.entry.js +3 -3
  50. package/dist/cjs/gux-form-field-number.cjs.entry.js +13 -13
  51. package/dist/cjs/gux-form-field-radio.cjs.entry.js +8 -8
  52. package/dist/cjs/gux-form-field-range.cjs.entry.js +10 -10
  53. package/dist/cjs/gux-form-field-search.cjs.entry.js +12 -12
  54. package/dist/cjs/gux-form-field-select.cjs.entry.js +10 -10
  55. package/dist/cjs/gux-form-field-text-like.cjs.entry.js +12 -12
  56. package/dist/cjs/gux-form-field-textarea.cjs.entry.js +10 -10
  57. package/dist/cjs/{gux-form-field.servce-e9451c50.js → gux-form-field.service-21126f1d.js} +1 -1
  58. package/dist/cjs/gux-icon.cjs.entry.js +2 -2
  59. package/dist/cjs/gux-input-checkbox_7.cjs.entry.js +2 -2
  60. package/dist/cjs/gux-input-search.cjs.entry.js +2 -2
  61. package/dist/cjs/gux-input-text-like.cjs.entry.js +2 -2
  62. package/dist/cjs/gux-list-divider-legacy.cjs.entry.js +1 -1
  63. package/dist/cjs/gux-list-divider.cjs.entry.js +1 -1
  64. package/dist/cjs/gux-list-item-legacy_2.cjs.entry.js +2 -2
  65. package/dist/cjs/gux-list-item.cjs.entry.js +1 -1
  66. package/dist/cjs/gux-list.cjs.entry.js +2 -2
  67. package/dist/cjs/gux-listbox-multi.cjs.entry.js +159 -0
  68. package/dist/cjs/gux-listbox.service-d394da79.js +161 -0
  69. package/dist/cjs/gux-menu-option.cjs.entry.js +1 -1
  70. package/dist/cjs/gux-menu.cjs.entry.js +1 -1
  71. package/dist/cjs/gux-modal.cjs.entry.js +2 -2
  72. package/dist/cjs/gux-notification-toast.cjs.entry.js +2 -2
  73. package/dist/cjs/gux-option-legacy.cjs.entry.js +1 -1
  74. package/dist/cjs/gux-option-multi.cjs.entry.js +47 -0
  75. package/dist/cjs/gux-page-loading-spinner.cjs.entry.js +2 -2
  76. package/dist/cjs/gux-pagination-beta.cjs.entry.js +2 -2
  77. package/dist/cjs/gux-pagination-buttons-beta_3.cjs.entry.js +2 -2
  78. package/dist/cjs/gux-pagination-buttons_3.cjs.entry.js +2 -2
  79. package/dist/cjs/gux-pagination-cursor.cjs.entry.js +3 -3
  80. package/dist/cjs/gux-pagination.cjs.entry.js +2 -2
  81. package/dist/cjs/gux-panel-frame-legacy.cjs.entry.js +2 -2
  82. package/dist/cjs/gux-popover-list.cjs.entry.js +3 -3
  83. package/dist/cjs/gux-popover.cjs.entry.js +3 -3
  84. package/dist/cjs/gux-popup.cjs.entry.js +1 -1
  85. package/dist/cjs/gux-radial-loading.cjs.entry.js +3 -3
  86. package/dist/cjs/gux-radial-progress.cjs.entry.js +2 -2
  87. package/dist/cjs/gux-rating.cjs.entry.js +2 -2
  88. package/dist/cjs/gux-row-select.cjs.entry.js +3 -3
  89. package/dist/cjs/gux-side-panel-button.cjs.entry.js +1 -1
  90. package/dist/cjs/gux-side-panel-legacy.cjs.entry.js +2 -2
  91. package/dist/cjs/gux-simple-toast.cjs.entry.js +2 -2
  92. package/dist/cjs/gux-sort-control.cjs.entry.js +42 -0
  93. package/dist/cjs/gux-submenu.cjs.entry.js +1 -1
  94. package/dist/cjs/gux-switch-item.cjs.entry.js +1 -1
  95. package/dist/cjs/gux-switch.cjs.entry.js +2 -2
  96. package/dist/cjs/gux-tab-advanced-list.cjs.entry.js +3 -3
  97. package/dist/cjs/gux-tab-advanced-panel.cjs.entry.js +1 -1
  98. package/dist/cjs/gux-tab-advanced.cjs.entry.js +2 -2
  99. package/dist/cjs/gux-tab-dropdown-option-legacy.cjs.entry.js +1 -1
  100. package/dist/cjs/gux-tab-legacy.cjs.entry.js +1 -1
  101. package/dist/cjs/gux-tab-list.cjs.entry.js +19 -2
  102. package/dist/cjs/gux-tab-panel.cjs.entry.js +1 -1
  103. package/dist/cjs/gux-tab.cjs.entry.js +1 -1
  104. package/dist/cjs/gux-table-beta.cjs.entry.js +47 -31
  105. package/dist/cjs/gux-tabs-advanced.cjs.entry.js +2 -2
  106. package/dist/cjs/gux-tabs-legacy.cjs.entry.js +3 -3
  107. package/dist/cjs/gux-tabs.cjs.entry.js +2 -2
  108. package/dist/cjs/gux-tag-beta.cjs.entry.js +3 -3
  109. package/dist/cjs/gux-text-highlight.cjs.entry.js +2 -2
  110. package/dist/cjs/gux-text-label-legacy.cjs.entry.js +2 -2
  111. package/dist/cjs/gux-time-picker-beta.cjs.entry.js +4 -4
  112. package/dist/cjs/gux-toggle-slider.cjs.entry.js +1 -1
  113. package/dist/cjs/gux-toggle.cjs.entry.js +3 -3
  114. package/dist/cjs/gux-tooltip_2.cjs.entry.js +3 -3
  115. package/dist/cjs/gux-visualization-beta.cjs.entry.js +3 -3
  116. package/dist/cjs/{index-33b1b88e.js → index-525cfec0.js} +30 -4
  117. package/dist/cjs/{index-2202ad01.js → index-57ec1998.js} +1 -1
  118. package/dist/cjs/loader.cjs.js +2 -2
  119. package/dist/cjs/{on-click-outside-246a1eb3.js → on-click-outside-e0d28eff.js} +1 -1
  120. package/dist/cjs/{on-mutation-2e4dd956.js → on-mutation-347de78d.js} +1 -1
  121. package/dist/cjs/{usage-tracking-1ddbe5f1.js → usage-tracking-39a72be3.js} +1 -1
  122. package/dist/collection/collection-manifest.json +6 -0
  123. package/dist/collection/components/beta/gux-dropdown-multi/gux-dropdown-multi-tag/gux-dropdown-multi-tag.css +50 -0
  124. package/dist/collection/components/beta/gux-dropdown-multi/gux-dropdown-multi-tag/gux-dropdown-multi-tag.js +116 -0
  125. package/dist/collection/components/beta/gux-dropdown-multi/gux-dropdown-multi.css +151 -0
  126. package/dist/collection/components/beta/gux-dropdown-multi/gux-dropdown-multi.js +458 -0
  127. package/dist/collection/components/beta/gux-table/gux-sort-control/gux-sort-control.css +39 -0
  128. package/dist/collection/components/beta/gux-table/gux-sort-control/gux-sort-control.js +50 -0
  129. package/dist/collection/components/beta/gux-table/gux-table.js +43 -27
  130. package/dist/collection/components/beta/gux-tag/gux-tag.js +0 -17
  131. package/dist/collection/components/stable/gux-dropdown/gux-dropdown.js +19 -0
  132. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-checkbox/gux-form-field-checkbox.js +1 -1
  133. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-color/gux-form-field-color.js +1 -1
  134. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-dropdown/gux-form-field-dropdown.css +153 -0
  135. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-dropdown/gux-form-field-dropdown.js +126 -0
  136. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-number/gux-form-field-number.js +1 -1
  137. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-radio/gux-form-field-radio.js +1 -1
  138. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-range/gux-form-field-range.js +1 -1
  139. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-search/gux-form-field-search.js +1 -1
  140. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-select/gux-form-field-select.js +1 -1
  141. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-text-like/gux-form-field-text-like.js +1 -1
  142. package/dist/collection/components/stable/gux-form-field/components/gux-form-field-textarea/gux-form-field-textarea.js +1 -1
  143. package/dist/collection/components/stable/gux-form-field/{gux-form-field.servce.js → gux-form-field.service.js} +0 -0
  144. package/dist/collection/components/stable/gux-listbox/gux-listbox.js +7 -9
  145. package/dist/collection/components/stable/gux-listbox-multi/gux-listbox-multi.css +23 -0
  146. package/dist/collection/components/stable/gux-listbox-multi/gux-listbox-multi.js +269 -0
  147. package/dist/collection/components/stable/gux-listbox-multi/gux-option-multi/gux-option-multi.css +45 -0
  148. package/dist/collection/components/stable/gux-listbox-multi/gux-option-multi/gux-option-multi.js +167 -0
  149. package/dist/collection/components/stable/gux-tabs/gux-tab-list/gux-tab-list.js +13 -0
  150. package/dist/deploy-info.json +3 -3
  151. package/dist/esm/{en-07edddda.js → en-d22521fc.js} +3 -1
  152. package/dist/esm/genesys-webcomponents.js +2 -2
  153. package/dist/esm/gux-accordion-legacy.entry.js +2 -2
  154. package/dist/esm/gux-accordion-section.entry.js +1 -1
  155. package/dist/esm/gux-accordion.entry.js +2 -2
  156. package/dist/esm/gux-action-button-legacy.entry.js +4 -4
  157. package/dist/esm/gux-action-button.entry.js +4 -4
  158. package/dist/esm/gux-action-item.entry.js +1 -1
  159. package/dist/esm/gux-action-list-divider.entry.js +1 -1
  160. package/dist/esm/gux-action-list-legacy.entry.js +2 -2
  161. package/dist/esm/gux-action-toast.entry.js +2 -2
  162. package/dist/esm/gux-advanced-dropdown.entry.js +3 -3
  163. package/dist/esm/gux-all-row-select.entry.js +3 -3
  164. package/dist/esm/gux-badge-beta.entry.js +3 -3
  165. package/dist/esm/gux-breadcrumb-item.entry.js +1 -1
  166. package/dist/esm/gux-breadcrumbs.entry.js +3 -3
  167. package/dist/esm/gux-button-multi-legacy.entry.js +3 -3
  168. package/dist/esm/gux-button-multi.entry.js +3 -3
  169. package/dist/esm/gux-button-slot-beta.entry.js +2 -2
  170. package/dist/esm/gux-button.entry.js +2 -2
  171. package/dist/esm/gux-calendar.entry.js +3 -3
  172. package/dist/esm/gux-card-beta.entry.js +2 -2
  173. package/dist/esm/gux-chart-column-beta.entry.js +2 -2
  174. package/dist/esm/gux-chart-donut-beta.entry.js +2 -2
  175. package/dist/esm/gux-chart-line-beta.entry.js +2 -2
  176. package/dist/esm/gux-chart-pie-beta.entry.js +2 -2
  177. package/dist/esm/gux-chart-scatter-plot-beta.entry.js +2 -2
  178. package/dist/esm/gux-color-select_2.entry.js +1 -1
  179. package/dist/esm/gux-command-action.entry.js +1 -1
  180. package/dist/esm/gux-command-palette-legacy.entry.js +3 -3
  181. package/dist/esm/gux-content-search.entry.js +3 -3
  182. package/dist/esm/gux-copy-to-clipboard-beta.entry.js +3 -3
  183. package/dist/esm/gux-datepicker.entry.js +4 -4
  184. package/dist/esm/gux-disclosure-button.entry.js +3 -3
  185. package/dist/esm/gux-dismiss-button.entry.js +3 -3
  186. package/dist/esm/gux-dropdown-legacy.entry.js +4 -4
  187. package/dist/esm/gux-dropdown-multi-beta.entry.js +293 -0
  188. package/dist/esm/gux-dropdown-multi-tag.entry.js +54 -0
  189. package/dist/esm/gux-dropdown-option.entry.js +1 -1
  190. package/dist/esm/gux-dropdown_3.entry.js +12 -160
  191. package/dist/esm/gux-error-message-beta.entry.js +2 -2
  192. package/dist/esm/gux-flyout-menu-beta.entry.js +2 -2
  193. package/dist/esm/gux-form-field-checkbox.entry.js +4 -4
  194. package/dist/esm/gux-form-field-color.entry.js +5 -5
  195. package/dist/esm/gux-form-field-dropdown.entry.js +87 -0
  196. package/dist/esm/gux-form-field-input-clear-button.entry.js +3 -3
  197. package/dist/esm/{gux-form-field-label-ac49a8be.js → gux-form-field-label-1d0c1a02.js} +1 -1
  198. package/dist/esm/gux-form-field-legacy.entry.js +3 -3
  199. package/dist/esm/gux-form-field-number.entry.js +6 -6
  200. package/dist/esm/gux-form-field-radio.entry.js +4 -4
  201. package/dist/esm/gux-form-field-range.entry.js +5 -5
  202. package/dist/esm/gux-form-field-search.entry.js +5 -5
  203. package/dist/esm/gux-form-field-select.entry.js +5 -5
  204. package/dist/esm/gux-form-field-text-like.entry.js +5 -5
  205. package/dist/esm/gux-form-field-textarea.entry.js +5 -5
  206. package/dist/esm/{gux-form-field.servce-971609e2.js → gux-form-field.service-4bfd6534.js} +1 -1
  207. package/dist/esm/gux-icon.entry.js +2 -2
  208. package/dist/esm/gux-input-checkbox_7.entry.js +2 -2
  209. package/dist/esm/gux-input-search.entry.js +2 -2
  210. package/dist/esm/gux-input-text-like.entry.js +2 -2
  211. package/dist/esm/gux-list-divider-legacy.entry.js +1 -1
  212. package/dist/esm/gux-list-divider.entry.js +1 -1
  213. package/dist/esm/gux-list-item-legacy_2.entry.js +2 -2
  214. package/dist/esm/gux-list-item.entry.js +1 -1
  215. package/dist/esm/gux-list.entry.js +2 -2
  216. package/dist/esm/gux-listbox-multi.entry.js +155 -0
  217. package/dist/esm/gux-listbox.service-3541a2f7.js +148 -0
  218. package/dist/esm/gux-menu-option.entry.js +1 -1
  219. package/dist/esm/gux-menu.entry.js +1 -1
  220. package/dist/esm/gux-modal.entry.js +2 -2
  221. package/dist/esm/gux-notification-toast.entry.js +2 -2
  222. package/dist/esm/gux-option-legacy.entry.js +1 -1
  223. package/dist/esm/gux-option-multi.entry.js +43 -0
  224. package/dist/esm/gux-page-loading-spinner.entry.js +2 -2
  225. package/dist/esm/gux-pagination-beta.entry.js +2 -2
  226. package/dist/esm/gux-pagination-buttons-beta_3.entry.js +2 -2
  227. package/dist/esm/gux-pagination-buttons_3.entry.js +2 -2
  228. package/dist/esm/gux-pagination-cursor.entry.js +3 -3
  229. package/dist/esm/gux-pagination.entry.js +2 -2
  230. package/dist/esm/gux-panel-frame-legacy.entry.js +2 -2
  231. package/dist/esm/gux-popover-list.entry.js +3 -3
  232. package/dist/esm/gux-popover.entry.js +3 -3
  233. package/dist/esm/gux-popup.entry.js +1 -1
  234. package/dist/esm/gux-radial-loading.entry.js +3 -3
  235. package/dist/esm/gux-radial-progress.entry.js +2 -2
  236. package/dist/esm/gux-rating.entry.js +2 -2
  237. package/dist/esm/gux-row-select.entry.js +3 -3
  238. package/dist/esm/gux-side-panel-button.entry.js +1 -1
  239. package/dist/esm/gux-side-panel-legacy.entry.js +2 -2
  240. package/dist/esm/gux-simple-toast.entry.js +2 -2
  241. package/dist/esm/gux-sort-control.entry.js +38 -0
  242. package/dist/esm/gux-submenu.entry.js +1 -1
  243. package/dist/esm/gux-switch-item.entry.js +1 -1
  244. package/dist/esm/gux-switch.entry.js +2 -2
  245. package/dist/esm/gux-tab-advanced-list.entry.js +3 -3
  246. package/dist/esm/gux-tab-advanced-panel.entry.js +1 -1
  247. package/dist/esm/gux-tab-advanced.entry.js +2 -2
  248. package/dist/esm/gux-tab-dropdown-option-legacy.entry.js +1 -1
  249. package/dist/esm/gux-tab-legacy.entry.js +1 -1
  250. package/dist/esm/gux-tab-list.entry.js +19 -2
  251. package/dist/esm/gux-tab-panel.entry.js +1 -1
  252. package/dist/esm/gux-tab.entry.js +1 -1
  253. package/dist/esm/gux-table-beta.entry.js +47 -31
  254. package/dist/esm/gux-tabs-advanced.entry.js +2 -2
  255. package/dist/esm/gux-tabs-legacy.entry.js +3 -3
  256. package/dist/esm/gux-tabs.entry.js +2 -2
  257. package/dist/esm/gux-tag-beta.entry.js +3 -3
  258. package/dist/esm/gux-text-highlight.entry.js +2 -2
  259. package/dist/esm/gux-text-label-legacy.entry.js +2 -2
  260. package/dist/esm/gux-time-picker-beta.entry.js +4 -4
  261. package/dist/esm/gux-toggle-slider.entry.js +1 -1
  262. package/dist/esm/gux-toggle.entry.js +3 -3
  263. package/dist/esm/gux-tooltip_2.entry.js +3 -3
  264. package/dist/esm/gux-visualization-beta.entry.js +3 -3
  265. package/dist/esm/{index-5bfcdeb1.js → index-16dc4871.js} +1 -1
  266. package/dist/esm/{index-76794476.js → index-d8b1bc53.js} +30 -4
  267. package/dist/esm/loader.js +2 -2
  268. package/dist/esm/{on-click-outside-ce30de20.js → on-click-outside-9635bd3e.js} +1 -1
  269. package/dist/esm/{on-mutation-2e96b1b9.js → on-mutation-1c2ba0a6.js} +1 -1
  270. package/dist/esm/{usage-tracking-e9b9fc3f.js → usage-tracking-9ae70c67.js} +1 -1
  271. package/dist/genesys-webcomponents/genesys-webcomponents.css +1 -1
  272. package/dist/genesys-webcomponents/genesys-webcomponents.esm.js +1 -1
  273. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.ar.json +1 -1
  274. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.cs.json +1 -1
  275. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.da.json +1 -1
  276. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.de.json +1 -1
  277. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.en.json +1 -1
  278. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.es-es.json +1 -1
  279. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.es.json +1 -1
  280. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.fi.json +1 -1
  281. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.fr-ca.json +1 -1
  282. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.fr.json +1 -1
  283. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.it.json +1 -1
  284. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.ja.json +1 -1
  285. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.ko.json +1 -1
  286. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.nl.json +1 -1
  287. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.no.json +1 -1
  288. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.pl.json +1 -1
  289. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.pt-br.json +1 -1
  290. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.ru.json +1 -1
  291. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.sv.json +1 -1
  292. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.th.json +1 -1
  293. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.tr.json +1 -1
  294. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.zh-cn.json +1 -1
  295. package/dist/genesys-webcomponents/i18n/genesys-webcomponents.i18n.zh-tw.json +1 -1
  296. package/dist/genesys-webcomponents/{p-c3b9a57f.entry.js → p-00519483.entry.js} +1 -1
  297. package/dist/genesys-webcomponents/p-013eb64c.entry.js +1 -0
  298. package/dist/genesys-webcomponents/{p-76f7479d.entry.js → p-050ab2cb.entry.js} +1 -1
  299. package/dist/genesys-webcomponents/{p-8288a4c9.entry.js → p-0b1bf180.entry.js} +1 -1
  300. package/dist/genesys-webcomponents/{p-7c1b42ab.entry.js → p-0c38f51c.entry.js} +1 -1
  301. package/dist/genesys-webcomponents/{p-6f834153.entry.js → p-0dfa8f9f.entry.js} +1 -1
  302. package/dist/genesys-webcomponents/{p-5674b67a.entry.js → p-1173c715.entry.js} +1 -1
  303. package/dist/genesys-webcomponents/{p-c6eab0f6.entry.js → p-1255480b.entry.js} +1 -1
  304. package/dist/genesys-webcomponents/{p-08b07a2b.js → p-14551b38.js} +1 -1
  305. package/dist/genesys-webcomponents/{p-5a3afda9.entry.js → p-1483501f.entry.js} +1 -1
  306. package/dist/genesys-webcomponents/{p-7bae2a7d.entry.js → p-166e7535.entry.js} +1 -1
  307. package/dist/genesys-webcomponents/{p-f26b46dc.entry.js → p-16e8f471.entry.js} +1 -1
  308. package/dist/genesys-webcomponents/{p-7c57956f.entry.js → p-17e7772d.entry.js} +1 -1
  309. package/dist/genesys-webcomponents/{p-e4e5aa67.entry.js → p-1ad06cfc.entry.js} +1 -1
  310. package/dist/genesys-webcomponents/{p-cbd66a48.entry.js → p-1d09f345.entry.js} +1 -1
  311. package/dist/genesys-webcomponents/{p-7512b26a.entry.js → p-1d83549a.entry.js} +1 -1
  312. package/dist/genesys-webcomponents/{p-5f8b46b5.entry.js → p-1f1554e3.entry.js} +1 -1
  313. package/dist/genesys-webcomponents/p-2092557f.entry.js +1 -0
  314. package/dist/genesys-webcomponents/{p-dc714f80.entry.js → p-2aac6bab.entry.js} +1 -1
  315. package/dist/genesys-webcomponents/p-2b24dcb6.entry.js +1 -0
  316. package/dist/genesys-webcomponents/{p-c150db37.entry.js → p-2b7d8c71.entry.js} +1 -1
  317. package/dist/genesys-webcomponents/{p-66e648d2.entry.js → p-3308c20e.entry.js} +1 -1
  318. package/dist/genesys-webcomponents/{p-4402a21b.entry.js → p-33c27a48.entry.js} +1 -1
  319. package/dist/genesys-webcomponents/{p-4b7056b2.js → p-35578249.js} +1 -1
  320. package/dist/genesys-webcomponents/{p-9b476241.entry.js → p-356c4b29.entry.js} +1 -1
  321. package/dist/genesys-webcomponents/{p-e61558ed.entry.js → p-35c9b84c.entry.js} +1 -1
  322. package/dist/genesys-webcomponents/{p-5534193b.entry.js → p-371cffc7.entry.js} +1 -1
  323. package/dist/genesys-webcomponents/p-3770c1e9.js +1 -0
  324. package/dist/genesys-webcomponents/{p-6b756f6d.entry.js → p-398cbe65.entry.js} +1 -1
  325. package/dist/genesys-webcomponents/{p-f329dbea.entry.js → p-3a830867.entry.js} +1 -1
  326. package/dist/genesys-webcomponents/{p-b3e2578c.entry.js → p-3d888c4f.entry.js} +1 -1
  327. package/dist/genesys-webcomponents/{p-f0e923b9.entry.js → p-3e72de53.entry.js} +1 -1
  328. package/dist/genesys-webcomponents/{p-ca932cd2.js → p-440657a8.js} +1 -1
  329. package/dist/genesys-webcomponents/p-448d6c60.entry.js +1 -0
  330. package/dist/genesys-webcomponents/{p-f114dc1b.entry.js → p-44ac7dd3.entry.js} +1 -1
  331. package/dist/genesys-webcomponents/{p-a6257c98.js → p-451a9239.js} +1 -1
  332. package/dist/genesys-webcomponents/{p-8df52df5.entry.js → p-45517975.entry.js} +1 -1
  333. package/dist/genesys-webcomponents/{p-6ec0cec3.entry.js → p-469eea38.entry.js} +1 -1
  334. package/dist/genesys-webcomponents/p-480ffa9e.entry.js +1 -0
  335. package/dist/genesys-webcomponents/{p-5ca81424.js → p-49b1912a.js} +1 -1
  336. package/dist/genesys-webcomponents/{p-44ea15ed.entry.js → p-4b58fc7e.entry.js} +1 -1
  337. package/dist/genesys-webcomponents/{p-2548bdad.js → p-523a0237.js} +1 -1
  338. package/dist/genesys-webcomponents/{p-45df9c11.entry.js → p-5453b69f.entry.js} +1 -1
  339. package/dist/genesys-webcomponents/{p-c551dd14.entry.js → p-54866ea0.entry.js} +1 -1
  340. package/dist/genesys-webcomponents/{p-f2a5fea9.entry.js → p-5647d38b.entry.js} +1 -1
  341. package/dist/genesys-webcomponents/{p-f62d408a.entry.js → p-573f5ff0.entry.js} +1 -1
  342. package/dist/genesys-webcomponents/{p-53df4573.entry.js → p-5b9ed635.entry.js} +1 -1
  343. package/dist/genesys-webcomponents/{p-78fa1cfb.entry.js → p-5baa156e.entry.js} +1 -1
  344. package/dist/genesys-webcomponents/{p-ed56171c.entry.js → p-5ebb0e5e.entry.js} +1 -1
  345. package/dist/genesys-webcomponents/{p-c89c74eb.entry.js → p-603a557b.entry.js} +1 -1
  346. package/dist/genesys-webcomponents/{p-1313a627.entry.js → p-646c8c96.entry.js} +1 -1
  347. package/dist/genesys-webcomponents/{p-029337ed.entry.js → p-647dd4a5.entry.js} +1 -1
  348. package/dist/genesys-webcomponents/{p-421513fb.entry.js → p-659e0050.entry.js} +1 -1
  349. package/dist/genesys-webcomponents/{p-d7a2f8dc.entry.js → p-66117fa0.entry.js} +1 -1
  350. package/dist/genesys-webcomponents/{p-6be57719.entry.js → p-6c8e24ef.entry.js} +1 -1
  351. package/dist/genesys-webcomponents/{p-4ddf13c8.entry.js → p-6fe4eeb9.entry.js} +1 -1
  352. package/dist/genesys-webcomponents/{p-5587d078.entry.js → p-717c426f.entry.js} +1 -1
  353. package/dist/genesys-webcomponents/{p-74ab4e9c.entry.js → p-7341343a.entry.js} +1 -1
  354. package/dist/genesys-webcomponents/{p-72291037.entry.js → p-7454d082.entry.js} +1 -1
  355. package/dist/genesys-webcomponents/{p-45d49edc.entry.js → p-7623d68f.entry.js} +1 -1
  356. package/dist/genesys-webcomponents/{p-b190a126.entry.js → p-78035895.entry.js} +1 -1
  357. package/dist/genesys-webcomponents/{p-5a4584b1.entry.js → p-7e8a517b.entry.js} +1 -1
  358. package/dist/genesys-webcomponents/{p-c6d44d2f.entry.js → p-84bc8565.entry.js} +1 -1
  359. package/dist/genesys-webcomponents/p-8a1b9201.entry.js +1 -0
  360. package/dist/genesys-webcomponents/{p-e7caa47a.entry.js → p-8bc4b382.entry.js} +1 -1
  361. package/dist/genesys-webcomponents/{p-b0259c1a.entry.js → p-90d3e8af.entry.js} +1 -1
  362. package/dist/genesys-webcomponents/{p-34e05274.entry.js → p-9154b32a.entry.js} +1 -1
  363. package/dist/genesys-webcomponents/{p-193d169d.entry.js → p-92e0518f.entry.js} +1 -1
  364. package/dist/genesys-webcomponents/{p-548af6d1.entry.js → p-98229921.entry.js} +1 -1
  365. package/dist/genesys-webcomponents/{p-a8b8ae7f.entry.js → p-9869e6f4.entry.js} +1 -1
  366. package/dist/genesys-webcomponents/{p-be4455b9.entry.js → p-98dd850d.entry.js} +1 -1
  367. package/dist/genesys-webcomponents/{p-c1f6910e.entry.js → p-99b858d1.entry.js} +1 -1
  368. package/dist/genesys-webcomponents/{p-2d9198b1.entry.js → p-9b6e59f2.entry.js} +1 -1
  369. package/dist/genesys-webcomponents/{p-d75428f1.entry.js → p-9d36ee95.entry.js} +1 -1
  370. package/dist/genesys-webcomponents/{p-c72a8228.entry.js → p-9df54194.entry.js} +1 -1
  371. package/dist/genesys-webcomponents/{p-b3fcbbe4.entry.js → p-9fe46900.entry.js} +1 -1
  372. package/dist/genesys-webcomponents/{p-5b4d8050.entry.js → p-a09cb82d.entry.js} +1 -1
  373. package/dist/genesys-webcomponents/{p-0ba16a48.entry.js → p-a0a0d12d.entry.js} +1 -1
  374. package/dist/genesys-webcomponents/{p-25b74c1b.entry.js → p-a13ff6ec.entry.js} +1 -1
  375. package/dist/genesys-webcomponents/p-a2f34941.entry.js +1 -0
  376. package/dist/genesys-webcomponents/{p-cfd5c06d.entry.js → p-a41b086e.entry.js} +1 -1
  377. package/dist/genesys-webcomponents/{p-2acf2470.entry.js → p-a6509d00.entry.js} +1 -1
  378. package/dist/genesys-webcomponents/{p-30558b17.entry.js → p-b0205823.entry.js} +1 -1
  379. package/dist/genesys-webcomponents/p-b0c0bff1.entry.js +1 -0
  380. package/dist/genesys-webcomponents/p-b1bffdc0.entry.js +1 -0
  381. package/dist/genesys-webcomponents/{p-29744d9a.entry.js → p-b1cb1a31.entry.js} +1 -1
  382. package/dist/genesys-webcomponents/{p-a5c9fbed.entry.js → p-b225ce42.entry.js} +1 -1
  383. package/dist/genesys-webcomponents/p-b27f0bef.entry.js +1 -0
  384. package/dist/genesys-webcomponents/{p-68ee84bf.entry.js → p-b41cc336.entry.js} +1 -1
  385. package/dist/genesys-webcomponents/{p-4083afa6.entry.js → p-b5867962.entry.js} +1 -1
  386. package/dist/genesys-webcomponents/{p-3d2cb50a.entry.js → p-b695ac46.entry.js} +1 -1
  387. package/dist/genesys-webcomponents/{p-e78c86e4.entry.js → p-b98f76af.entry.js} +1 -1
  388. package/dist/genesys-webcomponents/{p-d4730ee1.entry.js → p-bb1431b6.entry.js} +1 -1
  389. package/dist/genesys-webcomponents/{p-b3bdfcc9.entry.js → p-bf05f0be.entry.js} +1 -1
  390. package/dist/genesys-webcomponents/{p-b664a390.entry.js → p-c13e9b91.entry.js} +1 -1
  391. package/dist/genesys-webcomponents/{p-344828ad.entry.js → p-c251e266.entry.js} +1 -1
  392. package/dist/genesys-webcomponents/p-c66803cf.entry.js +1 -0
  393. package/dist/genesys-webcomponents/{p-d429ff71.entry.js → p-c6715c5a.entry.js} +1 -1
  394. package/dist/genesys-webcomponents/p-cb3d0262.entry.js +1 -0
  395. package/dist/genesys-webcomponents/{p-882bb0d7.entry.js → p-ccaedc78.entry.js} +1 -1
  396. package/dist/genesys-webcomponents/{p-5190a2c0.entry.js → p-cd9decab.entry.js} +1 -1
  397. package/dist/genesys-webcomponents/p-cdf5cb56.js +1 -0
  398. package/dist/genesys-webcomponents/{p-d63d33a7.entry.js → p-d30142cc.entry.js} +1 -1
  399. package/dist/genesys-webcomponents/{p-bea0187a.entry.js → p-d33adb9d.entry.js} +1 -1
  400. package/dist/genesys-webcomponents/{p-1856e5cd.entry.js → p-d5939eb4.entry.js} +1 -1
  401. package/dist/genesys-webcomponents/{p-b98439e6.entry.js → p-d820f160.entry.js} +1 -1
  402. package/dist/genesys-webcomponents/{p-1bef4ea7.entry.js → p-d8fb93d1.entry.js} +1 -1
  403. package/dist/genesys-webcomponents/{p-24206bb9.entry.js → p-dbad07cb.entry.js} +1 -1
  404. package/dist/genesys-webcomponents/{p-4cc40ffe.entry.js → p-ddbe5e3d.entry.js} +1 -1
  405. package/dist/genesys-webcomponents/{p-2212a472.entry.js → p-e0660777.entry.js} +1 -1
  406. package/dist/genesys-webcomponents/{p-dcdf8926.entry.js → p-e122b070.entry.js} +1 -1
  407. package/dist/genesys-webcomponents/{p-e56e0d6a.entry.js → p-e3aa0165.entry.js} +1 -1
  408. package/dist/genesys-webcomponents/p-e571f861.js +2 -0
  409. package/dist/genesys-webcomponents/{p-caff3783.entry.js → p-e996ed62.entry.js} +1 -1
  410. package/dist/genesys-webcomponents/{p-eadf85b3.entry.js → p-eafca6fd.entry.js} +1 -1
  411. package/dist/genesys-webcomponents/{p-c87736cc.entry.js → p-f3f4c59f.entry.js} +1 -1
  412. package/dist/genesys-webcomponents/{p-84165fbe.entry.js → p-fca55791.entry.js} +1 -1
  413. package/dist/genesys-webcomponents/{p-7abebb37.entry.js → p-fee0493f.entry.js} +1 -1
  414. package/dist/stencil-wrapper.js +1 -1
  415. package/dist/types/components/beta/gux-dropdown-multi/gux-dropdown-multi-tag/gux-dropdown-multi-tag.d.ts +20 -0
  416. package/dist/types/components/beta/gux-dropdown-multi/gux-dropdown-multi.d.ts +56 -0
  417. package/dist/types/components/beta/gux-table/gux-sort-control/gux-sort-control.d.ts +13 -0
  418. package/dist/types/components/beta/gux-table/gux-table.d.ts +2 -0
  419. package/dist/types/components/beta/gux-tag/gux-tag.d.ts +0 -4
  420. package/dist/types/components/stable/gux-dropdown/gux-dropdown.d.ts +1 -0
  421. package/dist/types/components/stable/gux-form-field/components/gux-form-field-dropdown/gux-form-field-dropdown.d.ts +27 -0
  422. package/dist/types/components/stable/gux-form-field/{gux-form-field.servce.d.ts → gux-form-field.service.d.ts} +1 -1
  423. package/dist/types/components/stable/gux-listbox/gux-listbox.d.ts +1 -1
  424. package/dist/types/components/stable/gux-listbox-multi/gux-listbox-multi.d.ts +28 -0
  425. package/dist/types/components/stable/gux-listbox-multi/gux-option-multi/gux-option-multi.d.ts +15 -0
  426. package/dist/types/components/stable/gux-tabs/gux-tab-list/gux-tab-list.d.ts +1 -0
  427. package/dist/types/components.d.ts +136 -8
  428. package/dist/types/utils/dom/on-attribute-change.d.ts +2 -2
  429. package/package.json +1 -1
  430. package/dist/genesys-webcomponents/p-2dac107b.entry.js +0 -1
  431. package/dist/genesys-webcomponents/p-4a67745f.entry.js +0 -1
  432. package/dist/genesys-webcomponents/p-61fd6f64.entry.js +0 -1
  433. package/dist/genesys-webcomponents/p-83818ffb.entry.js +0 -1
  434. package/dist/genesys-webcomponents/p-947b7fe3.entry.js +0 -1
  435. package/dist/genesys-webcomponents/p-a085b143.js +0 -2
  436. package/dist/genesys-webcomponents/p-ab1ad75b.entry.js +0 -1
  437. package/dist/genesys-webcomponents/p-afb54d23.js +0 -1
@@ -0,0 +1,458 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Component, Element, forceUpdate, h, Listen, Method, Prop, State, Watch } from '@stencil/core';
8
+ import { OnClickOutside } from '../../../utils/decorator/on-click-outside';
9
+ import { buildI18nForComponent } from '../../../i18n';
10
+ import simulateNativeEvent from '../../../utils/dom/simulate-native-event';
11
+ import { trackComponent } from '../../../usage-tracking';
12
+ import translationResources from './i18n/en.json';
13
+ import { getSearchOption } from '../../stable/gux-listbox/gux-listbox.service';
14
+ /**
15
+ * @slot - for a gux-listbox-multi containing gux-option-multi children
16
+ */
17
+ export class GuxDropdownMulti {
18
+ constructor() {
19
+ this.disabled = false;
20
+ this.required = false;
21
+ this.filterable = false;
22
+ this.expanded = false;
23
+ this.filter = '';
24
+ }
25
+ focusSelectedItemAfterRender(expanded) {
26
+ if (expanded && this.listboxElement) {
27
+ requestAnimationFrame(() => {
28
+ requestAnimationFrame(() => {
29
+ this.listboxElement.focus();
30
+ if (this.filterable) {
31
+ this.filterElement.focus();
32
+ }
33
+ });
34
+ });
35
+ }
36
+ if (!expanded) {
37
+ this.filter = '';
38
+ }
39
+ }
40
+ validateValue(newValue) {
41
+ if (newValue === undefined) {
42
+ if (this.listboxElement) {
43
+ this.listboxElement.value = newValue;
44
+ }
45
+ return;
46
+ }
47
+ const selectedListboxOptionElement = this.getOptionElementByValue(newValue);
48
+ if (selectedListboxOptionElement) {
49
+ this.listboxElement.value = newValue;
50
+ return;
51
+ }
52
+ this.value = undefined;
53
+ }
54
+ /**
55
+ * Gets the currently selected values.
56
+ */
57
+ getSelectedValues() {
58
+ var _a;
59
+ return Promise.resolve(((_a = this.value) === null || _a === void 0 ? void 0 : _a.split(',')) || []);
60
+ }
61
+ onKeydown(event) {
62
+ switch (event.key) {
63
+ case 'Escape':
64
+ if (this.filterable) {
65
+ if (document.activeElement === this.listboxElement) {
66
+ return this.filterElement.focus();
67
+ }
68
+ }
69
+ this.collapseListbox('focusFieldButton');
70
+ return;
71
+ case 'Tab':
72
+ if (this.shiftTabFromFilterListbox(event)) {
73
+ event.preventDefault();
74
+ return this.filterElement.focus();
75
+ }
76
+ else if (this.shiftTabFromExpandedFilterInput(event)) {
77
+ event.preventDefault();
78
+ return this.collapseListbox('focusFieldButton');
79
+ }
80
+ else {
81
+ this.collapseListbox('noFocusChange');
82
+ }
83
+ return;
84
+ case 'ArrowDown':
85
+ if (this.activeElementNotListbox()) {
86
+ event.preventDefault();
87
+ this.expanded = true;
88
+ }
89
+ return;
90
+ }
91
+ }
92
+ onInternallistboxoptionsupdated(event) {
93
+ event.stopPropagation();
94
+ forceUpdate(this.root);
95
+ }
96
+ onGuxclearselected(event) {
97
+ event.stopPropagation();
98
+ this.value = '';
99
+ if (this.listboxElement) {
100
+ this.listboxElement.value = undefined;
101
+ }
102
+ this.validateValue(this.value);
103
+ this.fieldButtonElement.focus();
104
+ }
105
+ onBlur(event) {
106
+ this.stopPropagationOfInternalFocusEvents(event);
107
+ }
108
+ onFocus(event) {
109
+ this.stopPropagationOfInternalFocusEvents(event);
110
+ }
111
+ onFocusout(event) {
112
+ this.stopPropagationOfInternalFocusEvents(event);
113
+ }
114
+ onFocusin(event) {
115
+ this.stopPropagationOfInternalFocusEvents(event);
116
+ }
117
+ onClickOutside() {
118
+ this.collapseListbox('noFocusChange');
119
+ }
120
+ async componentWillLoad() {
121
+ trackComponent(this.root);
122
+ this.i18n = await buildI18nForComponent(this.root, translationResources);
123
+ this.listboxElement = this.root.querySelector('gux-listbox-multi');
124
+ this.validateValue(this.value);
125
+ }
126
+ componentDidLoad() {
127
+ this.listboxElement.addEventListener('input', (event) => {
128
+ event.stopPropagation();
129
+ this.updateValue(event.target.value);
130
+ });
131
+ this.listboxElement.addEventListener('change', (event) => {
132
+ event.stopPropagation();
133
+ });
134
+ }
135
+ componentWillRender() {
136
+ this.validateValue(this.value);
137
+ this.listboxElement.filter = this.filter;
138
+ }
139
+ stopPropagationOfInternalFocusEvents(event) {
140
+ if (this.root.contains(event.relatedTarget)) {
141
+ return event.stopImmediatePropagation();
142
+ }
143
+ }
144
+ getOptionElementByValue(value) {
145
+ const listboxOptionElements = Array.from(this.root.querySelectorAll('gux-option-multi'));
146
+ const values = value ? value.split(',') : undefined;
147
+ if (values) {
148
+ return listboxOptionElements.filter(element => values.includes(element.value));
149
+ }
150
+ return;
151
+ }
152
+ fieldButtonClick() {
153
+ this.expanded = !this.expanded;
154
+ }
155
+ fieldButtonInputClick() {
156
+ if (!this.expanded) {
157
+ this.expanded = !this.expanded;
158
+ }
159
+ }
160
+ filterInput(event) {
161
+ event.stopPropagation();
162
+ this.filter = this.filterElement.value;
163
+ }
164
+ shiftTabFromExpandedFilterInput(event) {
165
+ return (event.shiftKey &&
166
+ this.filterable &&
167
+ this.expanded &&
168
+ !(document.activeElement === this.listboxElement));
169
+ }
170
+ shiftTabFromFilterListbox(event) {
171
+ return (event.shiftKey &&
172
+ this.filterable &&
173
+ document.activeElement === this.listboxElement);
174
+ }
175
+ activeElementNotListbox() {
176
+ return document.activeElement !== this.listboxElement;
177
+ }
178
+ filterKeydown(event) {
179
+ switch (event.key) {
180
+ case 'ArrowDown':
181
+ event.stopImmediatePropagation();
182
+ this.listboxElement.focus();
183
+ return;
184
+ case 'Enter':
185
+ void this.listboxElement.guxSelectActive();
186
+ event.preventDefault();
187
+ return;
188
+ }
189
+ }
190
+ filterKeyup(event) {
191
+ switch (event.key) {
192
+ case ' ':
193
+ event.preventDefault();
194
+ return;
195
+ }
196
+ }
197
+ collapseListbox(focusChange) {
198
+ if (this.expanded) {
199
+ this.expanded = false;
200
+ }
201
+ if (focusChange === 'focusFieldButton') {
202
+ this.fieldButtonElement.focus();
203
+ }
204
+ }
205
+ updateValue(newValue) {
206
+ if (this.value !== newValue) {
207
+ this.value = newValue;
208
+ simulateNativeEvent(this.root, 'input');
209
+ simulateNativeEvent(this.root, 'change');
210
+ }
211
+ }
212
+ getSuggestionText(filter) {
213
+ const filterLength = filter.length;
214
+ if (filterLength > 0) {
215
+ const option = getSearchOption(this.listboxElement, filter);
216
+ if (option) {
217
+ return option.textContent.substring(filterLength);
218
+ }
219
+ }
220
+ return '';
221
+ }
222
+ renderTargetDisplay() {
223
+ return (h("div", { class: "gux-placeholder" },
224
+ this.placeholder || this.i18n('noSelection'),
225
+ this.getSrSelectedText()));
226
+ }
227
+ getSrSelectedText() {
228
+ const selectedListboxOptionElement = this.getOptionElementByValue(this.value);
229
+ if (selectedListboxOptionElement === null || selectedListboxOptionElement === void 0 ? void 0 : selectedListboxOptionElement.length) {
230
+ return (h("span", { class: "gux-sr-only" }, this.i18n('numberSelected', {
231
+ numberSelected: selectedListboxOptionElement.length.toString()
232
+ })));
233
+ }
234
+ }
235
+ renderTag() {
236
+ const selectedListboxOptionElement = this.getOptionElementByValue(this.value);
237
+ if (selectedListboxOptionElement === null || selectedListboxOptionElement === void 0 ? void 0 : selectedListboxOptionElement.length) {
238
+ return (h("gux-dropdown-multi-tag", { disabled: this.disabled, "number-selected": selectedListboxOptionElement.length }));
239
+ }
240
+ }
241
+ renderFilterInputField() {
242
+ if (this.expanded && this.filterable) {
243
+ return (h("div", { class: "gux-field gux-input-field" },
244
+ h("div", { class: "gux-field-content" },
245
+ h("div", { class: "gux-filter" },
246
+ h("div", { class: "gux-filter-display" },
247
+ h("span", { class: "gux-filter-text" }, this.filter),
248
+ h("span", { class: "gux-filter-suggestion" }, this.getSuggestionText(this.filter))),
249
+ h("div", { class: "input-and-dropdown-button" },
250
+ h("input", { onClick: this.fieldButtonInputClick.bind(this), placeholder: this.placeholder || this.i18n('noSelection'), class: "gux-filter-input", type: "text", "aria-label": this.i18n('filterResults'), ref: el => (this.filterElement = el), onInput: this.filterInput.bind(this), onKeyDown: this.filterKeydown.bind(this), onKeyUp: this.filterKeyup.bind(this) }))))));
251
+ }
252
+ }
253
+ renderPopup() {
254
+ return (h("div", { slot: "popup", class: "gux-listbox-container" },
255
+ h("slot", null)));
256
+ }
257
+ renderTarget() {
258
+ return (h("div", { class: {
259
+ 'gux-target-container': true,
260
+ 'gux-target-container-expanded': this.expanded && this.filterable,
261
+ 'gux-target-container-collapsed': !(this.expanded && this.filterable)
262
+ }, slot: "target" },
263
+ this.renderFilterInputField(),
264
+ h("button", { type: "button", class: "gux-field gux-field-button", disabled: this.disabled, onClick: this.fieldButtonClick.bind(this), ref: el => (this.fieldButtonElement = el), "aria-haspopup": "listbox", "aria-expanded": this.expanded.toString() },
265
+ this.renderTargetContent(),
266
+ h("gux-icon", { class: {
267
+ 'gux-expand-icon': true
268
+ }, "screenreader-text": this.i18n('dropdown'), iconName: "chevron-small-down" }))));
269
+ }
270
+ renderTargetContent() {
271
+ if (!(this.expanded && this.filterable)) {
272
+ return (h("div", { class: "gux-field-content" }, this.renderTargetDisplay()));
273
+ }
274
+ }
275
+ render() {
276
+ return [
277
+ h("div", { class: "gux-dropdown-container" },
278
+ h("gux-popup", { expanded: this.expanded, disabled: this.disabled },
279
+ this.renderTarget(),
280
+ this.renderPopup()),
281
+ this.renderTag())
282
+ ];
283
+ }
284
+ static get is() { return "gux-dropdown-multi-beta"; }
285
+ static get encapsulation() { return "shadow"; }
286
+ static get originalStyleUrls() { return {
287
+ "$": ["gux-dropdown-multi.less"]
288
+ }; }
289
+ static get styleUrls() { return {
290
+ "$": ["gux-dropdown-multi.css"]
291
+ }; }
292
+ static get properties() { return {
293
+ "value": {
294
+ "type": "string",
295
+ "mutable": true,
296
+ "complexType": {
297
+ "original": "string",
298
+ "resolved": "string",
299
+ "references": {}
300
+ },
301
+ "required": false,
302
+ "optional": false,
303
+ "docs": {
304
+ "tags": [],
305
+ "text": ""
306
+ },
307
+ "attribute": "value",
308
+ "reflect": false
309
+ },
310
+ "disabled": {
311
+ "type": "boolean",
312
+ "mutable": false,
313
+ "complexType": {
314
+ "original": "boolean",
315
+ "resolved": "boolean",
316
+ "references": {}
317
+ },
318
+ "required": false,
319
+ "optional": false,
320
+ "docs": {
321
+ "tags": [],
322
+ "text": ""
323
+ },
324
+ "attribute": "disabled",
325
+ "reflect": false,
326
+ "defaultValue": "false"
327
+ },
328
+ "required": {
329
+ "type": "boolean",
330
+ "mutable": false,
331
+ "complexType": {
332
+ "original": "boolean",
333
+ "resolved": "boolean",
334
+ "references": {}
335
+ },
336
+ "required": false,
337
+ "optional": false,
338
+ "docs": {
339
+ "tags": [],
340
+ "text": ""
341
+ },
342
+ "attribute": "required",
343
+ "reflect": false,
344
+ "defaultValue": "false"
345
+ },
346
+ "placeholder": {
347
+ "type": "string",
348
+ "mutable": false,
349
+ "complexType": {
350
+ "original": "string",
351
+ "resolved": "string",
352
+ "references": {}
353
+ },
354
+ "required": false,
355
+ "optional": false,
356
+ "docs": {
357
+ "tags": [],
358
+ "text": ""
359
+ },
360
+ "attribute": "placeholder",
361
+ "reflect": false
362
+ },
363
+ "filterable": {
364
+ "type": "boolean",
365
+ "mutable": false,
366
+ "complexType": {
367
+ "original": "boolean",
368
+ "resolved": "boolean",
369
+ "references": {}
370
+ },
371
+ "required": false,
372
+ "optional": false,
373
+ "docs": {
374
+ "tags": [],
375
+ "text": ""
376
+ },
377
+ "attribute": "filterable",
378
+ "reflect": false,
379
+ "defaultValue": "false"
380
+ }
381
+ }; }
382
+ static get states() { return {
383
+ "expanded": {},
384
+ "filter": {}
385
+ }; }
386
+ static get methods() { return {
387
+ "getSelectedValues": {
388
+ "complexType": {
389
+ "signature": "() => Promise<string[]>",
390
+ "parameters": [],
391
+ "references": {
392
+ "Promise": {
393
+ "location": "global"
394
+ }
395
+ },
396
+ "return": "Promise<string[]>"
397
+ },
398
+ "docs": {
399
+ "text": "Gets the currently selected values.",
400
+ "tags": []
401
+ }
402
+ }
403
+ }; }
404
+ static get elementRef() { return "root"; }
405
+ static get watchers() { return [{
406
+ "propName": "expanded",
407
+ "methodName": "focusSelectedItemAfterRender"
408
+ }, {
409
+ "propName": "value",
410
+ "methodName": "validateValue"
411
+ }]; }
412
+ static get listeners() { return [{
413
+ "name": "keydown",
414
+ "method": "onKeydown",
415
+ "target": undefined,
416
+ "capture": false,
417
+ "passive": false
418
+ }, {
419
+ "name": "internallistboxoptionsupdated",
420
+ "method": "onInternallistboxoptionsupdated",
421
+ "target": undefined,
422
+ "capture": false,
423
+ "passive": false
424
+ }, {
425
+ "name": "guxclearselected",
426
+ "method": "onGuxclearselected",
427
+ "target": undefined,
428
+ "capture": false,
429
+ "passive": false
430
+ }, {
431
+ "name": "blur",
432
+ "method": "onBlur",
433
+ "target": undefined,
434
+ "capture": false,
435
+ "passive": false
436
+ }, {
437
+ "name": "focus",
438
+ "method": "onFocus",
439
+ "target": undefined,
440
+ "capture": false,
441
+ "passive": false
442
+ }, {
443
+ "name": "focusout",
444
+ "method": "onFocusout",
445
+ "target": undefined,
446
+ "capture": false,
447
+ "passive": false
448
+ }, {
449
+ "name": "focusin",
450
+ "method": "onFocusin",
451
+ "target": undefined,
452
+ "capture": false,
453
+ "passive": false
454
+ }]; }
455
+ }
456
+ __decorate([
457
+ OnClickOutside({ triggerEvents: 'mousedown' })
458
+ ], GuxDropdownMulti.prototype, "onClickOutside", null);
@@ -0,0 +1,39 @@
1
+ button {
2
+ position: absolute;
3
+ top: 0;
4
+ right: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ z-index: 1;
8
+ display: inline;
9
+ width: 100%;
10
+ height: 100%;
11
+ padding: 4px;
12
+ margin: 1px;
13
+ font-size: 100%;
14
+ font-weight: bold;
15
+ color: #2e394c;
16
+ text-align: left;
17
+ cursor: pointer;
18
+ background: transparent;
19
+ border: none;
20
+ outline: none;
21
+ }
22
+ button gux-icon {
23
+ float: right;
24
+ width: 16px;
25
+ height: 16px;
26
+ padding-right: 8.5px;
27
+ }
28
+ button:focus {
29
+ border-bottom: 3px solid #75a8ff;
30
+ }
31
+ .gux-sr-only:not(:focus):not(:active) {
32
+ position: absolute;
33
+ width: 1px;
34
+ height: 1px;
35
+ overflow: hidden;
36
+ clip: rect(0 0 0 0);
37
+ clip-path: inset(50%);
38
+ white-space: nowrap;
39
+ }
@@ -0,0 +1,50 @@
1
+ import { Component, h, Host, State, Listen, Element } from '@stencil/core';
2
+ import { buildI18nForComponent } from '../../../../i18n';
3
+ import tableResources from '../i18n/en.json';
4
+ export class GuxSortControl {
5
+ sortDirectionEvent(event) {
6
+ this.colSortDirection = event.detail.sortDirection;
7
+ this.colLabel = event.detail.columnName;
8
+ }
9
+ renderSrText() {
10
+ return (h("div", { class: "gux-sr-only" }, this.i18n('colSortDirection', {
11
+ colLabel: this.colLabel,
12
+ colSortDirection: this.colSortDirection
13
+ })));
14
+ }
15
+ async componentWillRender() {
16
+ this.i18n = await buildI18nForComponent(this.root, tableResources);
17
+ }
18
+ componentDidLoad() {
19
+ this.colLabel = this.root.closest('th').getAttribute('data-column-name');
20
+ this.colSortDirection = this.root.closest('th').getAttribute('aria-sort');
21
+ }
22
+ render() {
23
+ return (h(Host, null,
24
+ h("button", { type: "button" },
25
+ h("gux-icon", { "icon-name": this.colSortDirection === 'ascending'
26
+ ? 'arrow-solid-down'
27
+ : 'arrow-solid-up', decorative: true }),
28
+ this.renderSrText())));
29
+ }
30
+ static get is() { return "gux-sort-control"; }
31
+ static get encapsulation() { return "shadow"; }
32
+ static get originalStyleUrls() { return {
33
+ "$": ["gux-sort-control.less"]
34
+ }; }
35
+ static get styleUrls() { return {
36
+ "$": ["gux-sort-control.css"]
37
+ }; }
38
+ static get states() { return {
39
+ "colLabel": {},
40
+ "colSortDirection": {}
41
+ }; }
42
+ static get elementRef() { return "root"; }
43
+ static get listeners() { return [{
44
+ "name": "guxsortchanged",
45
+ "method": "sortDirectionEvent",
46
+ "target": "body",
47
+ "capture": false,
48
+ "passive": false
49
+ }]; }
50
+ }
@@ -120,6 +120,12 @@ export class GuxTable {
120
120
  get tableColumns() {
121
121
  return Array.from(this.slottedTable.querySelectorAll('thead th'));
122
122
  }
123
+ get tableColumnsDataSortable() {
124
+ return Array.from(this.slottedTable.querySelectorAll('thead th[data-sortable]'));
125
+ }
126
+ get sortControlCol() {
127
+ return Array.from(this.slottedTable.querySelectorAll('thead th gux-sort-control'));
128
+ }
123
129
  get rowCheckboxes() {
124
130
  return Array.from(this.slottedTable.querySelectorAll('tbody tr td gux-row-select'));
125
131
  }
@@ -313,32 +319,42 @@ export class GuxTable {
313
319
  }
314
320
  /******************************* Sortable Columns *******************************/
315
321
  prepareSortableColumns() {
316
- const columnsElements = this.tableColumns;
317
- this.prepareSortableColumnsStyles();
318
- columnsElements.forEach((column) => {
319
- if (Object.prototype.hasOwnProperty.call(column.dataset, 'sortable')) {
320
- column.onclick = (event) => {
321
- if (!this.columnResizeHover) {
322
- const columnElement = event.currentTarget;
323
- const sortDirection = columnElement.dataset.sort || '';
324
- let newSortDirection = null;
325
- switch (sortDirection) {
326
- case '':
327
- case 'desc':
328
- newSortDirection = 'asc';
329
- break;
330
- case 'asc':
331
- newSortDirection = 'desc';
332
- break;
333
- }
334
- this.guxsortchanged.emit({
335
- columnName: columnElement.dataset.columnName,
336
- sortDirection: newSortDirection
337
- });
338
- }
339
- };
322
+ let sortControlSelected = [];
323
+ const sortControl = document.querySelector('gux-sort-control');
324
+ sortControl
325
+ ? (sortControlSelected = this.sortControlCol)
326
+ : (sortControlSelected = this.tableColumnsDataSortable);
327
+ /* Only apply sortable styles if the data-sortable way of sorting is being used(ie the old way) and not the <gux-sort-control /> */
328
+ this.tableColumnsDataSortable.forEach((tableHeader) => {
329
+ if (tableHeader.hasAttribute('data-sortable')) {
330
+ this.prepareSortableColumnsStyles();
340
331
  }
341
332
  });
333
+ sortControlSelected.forEach((column) => {
334
+ column.onclick = (event) => {
335
+ if (!this.columnResizeHover) {
336
+ const button = event.target;
337
+ const columnElement = column.hasAttribute('data-sortable')
338
+ ? event.currentTarget
339
+ : button.parentElement;
340
+ const sortDirection = columnElement.getAttribute('aria-sort') || '';
341
+ let newSortDirection = null;
342
+ switch (sortDirection) {
343
+ case '':
344
+ case 'descending':
345
+ newSortDirection = 'ascending';
346
+ break;
347
+ case 'ascending':
348
+ newSortDirection = 'descending';
349
+ break;
350
+ }
351
+ this.guxsortchanged.emit({
352
+ columnName: columnElement.dataset.columnName,
353
+ sortDirection: newSortDirection
354
+ });
355
+ }
356
+ };
357
+ });
342
358
  }
343
359
  /**
344
360
  * Create sort styles if they don't exist. We can't make these static because we need to look up
@@ -354,9 +370,9 @@ export class GuxTable {
354
370
  const sortAscContent = this.i18n('sortAsc');
355
371
  const sortDescContent = this.i18n('sortDesc');
356
372
  styleElement.innerHTML = `
357
- th[data-sortable]:hover:after{content: "${sortAscContent}";background-image: url("${ascArrowIcon}");}
358
- th[data-sort="asc"]:after{background-image:url("${ascArrowIcon}")!important;content:"${sortAscContent}"!important;}
359
- th[data-sort="desc"]:after{background-image:url("${descArrowIcon}")!important;content:"${sortDescContent}"!important;}
373
+ th[data-sortable]:focus-within:after{content: "${sortAscContent}";background-image: url("${ascArrowIcon}");}
374
+ th[aria-sort="ascending"]:after{background-image:url("${ascArrowIcon}")!important;content:"${sortAscContent}"!important;}
375
+ th[aria-sort="descending"]:after{background-image:url("${descArrowIcon}")!important;content:"${sortDescContent}"!important;}
360
376
  `;
361
377
  document.querySelector('head').appendChild(styleElement);
362
378
  }
@@ -156,23 +156,6 @@ export class GuxTag {
156
156
  "attribute": "removable",
157
157
  "reflect": false,
158
158
  "defaultValue": "false"
159
- },
160
- "icon": {
161
- "type": "string",
162
- "mutable": false,
163
- "complexType": {
164
- "original": "string",
165
- "resolved": "string",
166
- "references": {}
167
- },
168
- "required": false,
169
- "optional": false,
170
- "docs": {
171
- "tags": [],
172
- "text": "Tag icon name."
173
- },
174
- "attribute": "icon",
175
- "reflect": false
176
159
  }
177
160
  }; }
178
161
  static get states() { return {
@@ -17,6 +17,7 @@ import { getSearchOption } from '../gux-listbox/gux-listbox.service';
17
17
  export class GuxDropdown {
18
18
  constructor() {
19
19
  this.disabled = false;
20
+ this.required = false;
20
21
  this.filterable = false;
21
22
  this.expanded = false;
22
23
  this.filter = '';
@@ -281,6 +282,24 @@ export class GuxDropdown {
281
282
  "reflect": false,
282
283
  "defaultValue": "false"
283
284
  },
285
+ "required": {
286
+ "type": "boolean",
287
+ "mutable": false,
288
+ "complexType": {
289
+ "original": "boolean",
290
+ "resolved": "boolean",
291
+ "references": {}
292
+ },
293
+ "required": false,
294
+ "optional": false,
295
+ "docs": {
296
+ "tags": [],
297
+ "text": ""
298
+ },
299
+ "attribute": "required",
300
+ "reflect": false,
301
+ "defaultValue": "false"
302
+ },
284
303
  "placeholder": {
285
304
  "type": "string",
286
305
  "mutable": false,