@watermarkinsights/ripple 5.6.0-1 → 5.6.0-3

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 (383) hide show
  1. package/dist/cjs/{chartFunctions-878f8139.js → chartFunctions-fb38580b.js} +10 -7
  2. package/dist/cjs/{functions-05e7ad5a.js → functions-a70fcff7.js} +13 -104
  3. package/dist/{esm/app-globals-8a702f67.js → cjs/global-85a3a126.js} +2 -7
  4. package/dist/cjs/index-e86c28b6.js +2653 -0
  5. package/dist/cjs/{intl-2b550151.js → intl-4a3a3a94.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +4 -5
  7. package/dist/cjs/priv-calendar.cjs.entry.js +5 -6
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +5 -6
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +3 -4
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +3 -4
  11. package/dist/cjs/priv-option-list.cjs.entry.js +384 -0
  12. package/dist/cjs/ripple.cjs.js +12 -13
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +6 -8
  14. package/dist/cjs/wm-button.cjs.entry.js +4 -5
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +1 -1
  16. package/dist/cjs/wm-chart.cjs.entry.js +9 -12
  17. package/dist/cjs/wm-date-range.cjs.entry.js +8 -9
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +8 -9
  19. package/dist/cjs/wm-file-list.cjs.entry.js +3 -4
  20. package/dist/cjs/wm-file.cjs.entry.js +4 -5
  21. package/dist/cjs/wm-input.cjs.entry.js +5 -6
  22. package/dist/cjs/wm-line-chart.cjs.entry.js +14 -15
  23. package/dist/cjs/wm-modal-footer.cjs.entry.js +3 -4
  24. package/dist/cjs/wm-modal-header.cjs.entry.js +5 -6
  25. package/dist/cjs/wm-modal.cjs.entry.js +5 -6
  26. package/dist/cjs/wm-navigation_3.cjs.entry.js +10 -13
  27. package/dist/cjs/wm-navigator.cjs.entry.js +3 -4
  28. package/dist/cjs/wm-nested-select.cjs.entry.js +295 -0
  29. package/dist/cjs/wm-optgroup.cjs.entry.js +56 -0
  30. package/dist/cjs/wm-option_2.cjs.entry.js +37 -344
  31. package/dist/cjs/wm-pagination.cjs.entry.js +4 -5
  32. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +8 -10
  33. package/dist/cjs/wm-search.cjs.entry.js +6 -7
  34. package/dist/cjs/wm-snackbar.cjs.entry.js +6 -7
  35. package/dist/cjs/wm-tab-item_3.cjs.entry.js +8 -11
  36. package/dist/cjs/wm-tag-input.cjs.entry.js +7 -8
  37. package/dist/cjs/wm-tag-option.cjs.entry.js +2 -2
  38. package/dist/cjs/wm-textarea.cjs.entry.js +5 -6
  39. package/dist/cjs/wm-timepicker.cjs.entry.js +5 -6
  40. package/dist/cjs/wm-toggletip.cjs.entry.js +5 -6
  41. package/dist/cjs/wm-uploader.cjs.entry.js +6 -7
  42. package/dist/cjs/wm-wrapper.cjs.entry.js +1 -1
  43. package/dist/collection/collection-manifest.json +7 -4
  44. package/dist/collection/components/charts/chartFunctions.js +3 -3
  45. package/dist/collection/components/charts/chartFunctions.spec.js +16 -0
  46. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +81 -0
  47. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +2 -2
  48. package/dist/collection/components/charts/screenshots.e2e.js +96 -0
  49. package/dist/collection/components/charts/wm-chart/wm-chart.css +13 -8
  50. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +213 -0
  51. package/dist/collection/components/charts/wm-chart/wm-chart.js +3 -5
  52. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +37 -0
  53. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +176 -0
  54. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +9 -9
  55. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +163 -0
  56. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +13 -8
  57. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +1 -1
  58. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +69 -0
  59. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +1 -1
  60. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +79 -0
  61. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +2 -2
  62. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +89 -0
  63. package/dist/collection/components/datepickers/wm-date-range.e2e.js +443 -0
  64. package/dist/collection/components/datepickers/wm-date-range.js +13 -17
  65. package/dist/collection/components/datepickers/wm-date-range.spec.js +22 -0
  66. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +382 -0
  67. package/dist/collection/components/datepickers/wm-datepicker.js +13 -17
  68. package/dist/collection/components/datepickers/wm-datepicker.spec.js +21 -0
  69. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +104 -0
  70. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +714 -0
  71. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +378 -0
  72. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +581 -0
  73. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +77 -0
  74. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +197 -0
  75. package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.css +0 -74
  76. package/dist/collection/components/selects/wm-select/wm-select.e2e.js +521 -0
  77. package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.js +17 -384
  78. package/dist/collection/components/selects/wm-select/wm-select.spec.js +271 -0
  79. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +200 -0
  80. package/dist/collection/components/wm-action-menu/wm-action-menu.js +1 -1
  81. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +48 -0
  82. package/dist/collection/components/wm-button/wm-button.e2e.js +55 -0
  83. package/dist/collection/components/wm-button/wm-button.js +1 -1
  84. package/dist/collection/components/wm-button/wm-button.spec.js +74 -0
  85. package/dist/collection/components/wm-file/wm-file.js +1 -1
  86. package/dist/collection/components/wm-file/wm-file.spec.js +194 -0
  87. package/dist/collection/components/wm-file-list/wm-file-list.js +1 -1
  88. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +69 -0
  89. package/dist/collection/components/wm-input/wm-input.e2e.js +32 -0
  90. package/dist/collection/components/wm-input/wm-input.js +1 -1
  91. package/dist/collection/components/wm-input/wm-input.spec.js +173 -0
  92. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +23 -0
  93. package/dist/collection/components/wm-menuitem/wm-menuitem.js +1 -1
  94. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +54 -0
  95. package/dist/collection/components/wm-modal/wm-modal-footer.js +1 -1
  96. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +11 -0
  97. package/dist/collection/components/wm-modal/wm-modal-header.js +1 -1
  98. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +8 -0
  99. package/dist/collection/components/wm-modal/wm-modal.e2e.js +104 -0
  100. package/dist/collection/components/wm-modal/wm-modal.js +2 -2
  101. package/dist/collection/components/wm-modal/wm-modal.spec.js +30 -0
  102. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +1 -1
  103. package/dist/collection/components/wm-navigation/wm-navigation-item.js +1 -1
  104. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +102 -0
  105. package/dist/collection/components/wm-navigation/wm-navigation.js +2 -2
  106. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +91 -0
  107. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +50 -0
  108. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +1 -1
  109. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +1 -1
  110. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +209 -0
  111. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +177 -0
  112. package/dist/collection/components/wm-option/wm-option.e2e.js +22 -0
  113. package/dist/collection/components/wm-option/wm-option.js +35 -9
  114. package/dist/collection/components/wm-option/wm-option.spec.js +63 -0
  115. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +312 -0
  116. package/dist/collection/components/wm-pagination/wm-pagination.js +1 -1
  117. package/dist/collection/components/wm-search/wm-search.e2e.js +76 -0
  118. package/dist/collection/components/wm-search/wm-search.js +4 -5
  119. package/dist/collection/components/wm-search/wm-search.spec.js +71 -0
  120. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +112 -0
  121. package/dist/collection/components/wm-snackbar/wm-snackbar.js +2 -2
  122. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +9 -0
  123. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +1 -1
  124. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +1 -1
  125. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +1 -1
  126. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +91 -0
  127. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +12 -0
  128. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +204 -0
  129. package/dist/collection/components/wm-tag-input/wm-tag-input.js +3 -3
  130. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +195 -0
  131. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +41 -0
  132. package/dist/collection/components/wm-textarea/wm-textarea.js +1 -1
  133. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +79 -0
  134. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +163 -0
  135. package/dist/collection/components/wm-timepicker/wm-timepicker.js +8 -11
  136. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +147 -0
  137. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +69 -0
  138. package/dist/collection/components/wm-toggletip/wm-toggletip.js +2 -2
  139. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +21 -0
  140. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +70 -0
  141. package/dist/collection/components/wm-uploader/wm-uploader.js +2 -2
  142. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +234 -0
  143. package/dist/collection/dev/nested-select.js +62 -0
  144. package/dist/collection/global/functions.js +5 -0
  145. package/dist/collection/global/functions.spec.js +126 -0
  146. package/dist/collection/lang/lang.spec.js +20 -0
  147. package/dist/esm/{chartFunctions-00fd6f23.js → chartFunctions-c07590f5.js} +10 -7
  148. package/dist/esm/{functions-25781571.js → functions-dea8b0f6.js} +13 -105
  149. package/dist/{cjs/app-globals-5caee80b.js → esm/global-fc303bc4.js} +1 -10
  150. package/dist/esm/index-558b5a82.js +2622 -0
  151. package/dist/esm/{intl-df3d34d1.js → intl-417d8b33.js} +1 -1
  152. package/dist/esm/loader.js +5 -6
  153. package/dist/esm/priv-calendar.entry.js +5 -6
  154. package/dist/esm/priv-chart-popover.entry.js +5 -6
  155. package/dist/esm/priv-navigator-button.entry.js +3 -4
  156. package/dist/esm/priv-navigator-item.entry.js +3 -4
  157. package/dist/esm/priv-option-list.entry.js +380 -0
  158. package/dist/esm/ripple.js +13 -14
  159. package/dist/esm/wm-action-menu_2.entry.js +6 -8
  160. package/dist/esm/wm-button.entry.js +4 -5
  161. package/dist/esm/wm-chart-slice.entry.js +1 -1
  162. package/dist/esm/wm-chart.entry.js +9 -12
  163. package/dist/esm/wm-date-range.entry.js +8 -9
  164. package/dist/esm/wm-datepicker.entry.js +8 -9
  165. package/dist/esm/wm-file-list.entry.js +3 -4
  166. package/dist/esm/wm-file.entry.js +4 -5
  167. package/dist/esm/wm-input.entry.js +5 -6
  168. package/dist/esm/wm-line-chart.entry.js +14 -15
  169. package/dist/esm/wm-modal-footer.entry.js +3 -4
  170. package/dist/esm/wm-modal-header.entry.js +5 -6
  171. package/dist/esm/wm-modal.entry.js +5 -6
  172. package/dist/esm/wm-navigation_3.entry.js +10 -13
  173. package/dist/esm/wm-navigator.entry.js +3 -4
  174. package/dist/esm/wm-nested-select.entry.js +291 -0
  175. package/dist/esm/wm-optgroup.entry.js +52 -0
  176. package/dist/esm/wm-option_2.entry.js +37 -344
  177. package/dist/esm/wm-pagination.entry.js +4 -5
  178. package/dist/esm/wm-progress-indicator_3.entry.js +8 -10
  179. package/dist/esm/wm-search.entry.js +6 -7
  180. package/dist/esm/wm-snackbar.entry.js +6 -7
  181. package/dist/esm/wm-tab-item_3.entry.js +8 -11
  182. package/dist/esm/wm-tag-input.entry.js +7 -8
  183. package/dist/esm/wm-tag-option.entry.js +2 -2
  184. package/dist/esm/wm-textarea.entry.js +5 -6
  185. package/dist/esm/wm-timepicker.entry.js +5 -6
  186. package/dist/esm/wm-toggletip.entry.js +5 -6
  187. package/dist/esm/wm-uploader.entry.js +6 -7
  188. package/dist/esm/wm-wrapper.entry.js +1 -1
  189. package/dist/esm-es5/{chartFunctions-00fd6f23.js → chartFunctions-c07590f5.js} +1 -1
  190. package/dist/esm-es5/functions-dea8b0f6.js +1 -0
  191. package/dist/esm-es5/global-fc303bc4.js +1 -0
  192. package/dist/esm-es5/index-558b5a82.js +1 -0
  193. package/dist/esm-es5/{intl-df3d34d1.js → intl-417d8b33.js} +1 -1
  194. package/dist/esm-es5/loader.js +1 -1
  195. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  196. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  197. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  198. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  199. package/dist/esm-es5/priv-option-list.entry.js +1 -0
  200. package/dist/esm-es5/ripple.js +1 -1
  201. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  202. package/dist/esm-es5/wm-button.entry.js +1 -1
  203. package/dist/esm-es5/wm-chart-slice.entry.js +1 -1
  204. package/dist/esm-es5/wm-chart.entry.js +1 -1
  205. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  206. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  207. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  208. package/dist/esm-es5/wm-file.entry.js +1 -1
  209. package/dist/esm-es5/wm-input.entry.js +1 -1
  210. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  211. package/dist/esm-es5/wm-modal-footer.entry.js +1 -1
  212. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  213. package/dist/esm-es5/wm-modal.entry.js +1 -1
  214. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  215. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  216. package/dist/esm-es5/wm-nested-select.entry.js +1 -0
  217. package/dist/esm-es5/wm-optgroup.entry.js +1 -0
  218. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  219. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  220. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  221. package/dist/esm-es5/wm-search.entry.js +1 -1
  222. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  223. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  224. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  225. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  226. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  227. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  228. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  229. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  230. package/dist/esm-es5/wm-wrapper.entry.js +1 -1
  231. package/dist/loader/cdn.js +2 -1
  232. package/dist/loader/index.cjs.js +2 -1
  233. package/dist/loader/index.d.ts +0 -3
  234. package/dist/loader/index.es2017.js +2 -1
  235. package/dist/loader/index.js +2 -1
  236. package/dist/ripple/p-021ff5fa.system.entry.js +1 -0
  237. package/dist/ripple/{p-bcff8b3a.entry.js → p-0289e88d.entry.js} +1 -1
  238. package/dist/ripple/p-03a28fd8.entry.js +1 -0
  239. package/dist/ripple/p-10fffb96.entry.js +1 -0
  240. package/dist/ripple/p-182f1286.system.entry.js +1 -0
  241. package/dist/ripple/{p-298bde1b.entry.js → p-1ae47d48.entry.js} +1 -1
  242. package/dist/ripple/p-1aead401.entry.js +1 -0
  243. package/dist/ripple/p-230cd6ec.system.entry.js +1 -0
  244. package/dist/ripple/p-24ba754f.entry.js +1 -0
  245. package/dist/ripple/p-24c56217.system.entry.js +1 -0
  246. package/dist/ripple/p-294b38ca.system.entry.js +1 -0
  247. package/dist/ripple/p-2c7bb996.system.entry.js +1 -0
  248. package/dist/ripple/p-2ed54dbc.entry.js +1 -0
  249. package/dist/ripple/p-2f899c05.system.entry.js +1 -0
  250. package/dist/ripple/p-311923b2.system.entry.js +1 -0
  251. package/dist/ripple/{p-823d7b4e.system.entry.js → p-32bf3f5b.system.entry.js} +1 -1
  252. package/dist/ripple/p-350223f1.entry.js +1 -0
  253. package/dist/ripple/p-3568472c.entry.js +1 -0
  254. package/dist/ripple/p-37687638.system.entry.js +1 -0
  255. package/dist/ripple/{p-b0c566b5.system.entry.js → p-37f39cd9.system.entry.js} +1 -1
  256. package/dist/ripple/p-3bdac9a4.entry.js +1 -0
  257. package/dist/ripple/{p-13b1d775.entry.js → p-48e09589.entry.js} +1 -1
  258. package/dist/ripple/{p-aab56a37.system.entry.js → p-4df006b1.system.entry.js} +1 -1
  259. package/dist/ripple/p-4e1065d1.system.entry.js +1 -0
  260. package/dist/ripple/{p-6e60631a.entry.js → p-503702ef.entry.js} +1 -1
  261. package/dist/ripple/{p-a1a2f8c9.system.entry.js → p-5052c9dd.system.entry.js} +1 -1
  262. package/dist/ripple/p-568c595f.js +2 -0
  263. package/dist/ripple/p-588d678d.entry.js +1 -0
  264. package/dist/ripple/p-5b9babd9.system.entry.js +1 -0
  265. package/dist/ripple/{p-8e72de50.entry.js → p-61a19aa5.entry.js} +1 -1
  266. package/dist/ripple/p-62744f66.entry.js +1 -0
  267. package/dist/ripple/{p-043901ab.system.entry.js → p-65d26233.system.entry.js} +1 -1
  268. package/dist/ripple/p-667fed4f.system.js +1 -0
  269. package/dist/ripple/p-6a6bfac8.entry.js +1 -0
  270. package/dist/ripple/{p-672ae2cb.entry.js → p-6dd5fd2e.entry.js} +1 -1
  271. package/dist/ripple/p-71ed7e56.system.entry.js +1 -0
  272. package/dist/ripple/p-87d0933f.system.entry.js +1 -0
  273. package/dist/ripple/{p-cd0cc88d.entry.js → p-88ebddd7.entry.js} +1 -1
  274. package/dist/ripple/p-8c02e3a3.entry.js +1 -0
  275. package/dist/ripple/{p-041e579b.entry.js → p-8c7d5cd9.entry.js} +1 -1
  276. package/dist/ripple/p-902a54c5.entry.js +1 -0
  277. package/dist/ripple/{p-ac40417b.system.entry.js → p-91b21054.system.entry.js} +1 -1
  278. package/dist/ripple/p-94db7841.entry.js +1 -0
  279. package/dist/ripple/p-9e9c9d20.entry.js +1 -0
  280. package/dist/ripple/p-a20333e9.entry.js +1 -0
  281. package/dist/ripple/p-ab8d78cc.system.js +2 -0
  282. package/dist/ripple/{p-67a7f0b0.entry.js → p-ace05e0b.entry.js} +1 -1
  283. package/dist/ripple/p-ade3d9a9.entry.js +1 -0
  284. package/dist/ripple/p-b0a02b42.system.entry.js +1 -0
  285. package/dist/ripple/p-b8963e4d.system.entry.js +1 -0
  286. package/dist/ripple/{p-41eb6a2e.system.entry.js → p-b918e97a.system.entry.js} +1 -1
  287. package/dist/ripple/p-b99f6b96.js +1 -0
  288. package/dist/ripple/p-b9f650c7.system.js +1 -0
  289. package/dist/ripple/p-bb884a44.js +1 -0
  290. package/dist/ripple/p-c10f3273.entry.js +1 -0
  291. package/dist/ripple/{p-a9d89ac8.system.js → p-c28863e7.system.js} +1 -1
  292. package/dist/ripple/p-c4df2809.entry.js +1 -0
  293. package/dist/ripple/p-c4ec5884.system.entry.js +1 -0
  294. package/dist/ripple/p-c51398ba.entry.js +1 -0
  295. package/dist/ripple/p-c7dfcc99.system.entry.js +1 -0
  296. package/dist/ripple/p-c885c7f9.entry.js +1 -0
  297. package/dist/ripple/p-c93275bd.system.entry.js +1 -0
  298. package/dist/ripple/p-c9543950.system.entry.js +1 -0
  299. package/dist/ripple/p-c999c1f7.system.entry.js +1 -0
  300. package/dist/ripple/{p-d93c51dd.system.entry.js → p-cb690d83.system.entry.js} +1 -1
  301. package/dist/ripple/{p-03708b88.system.js → p-cd7cef47.system.js} +1 -1
  302. package/dist/ripple/{p-f54e9ed0.js → p-d32bf479.js} +1 -1
  303. package/dist/ripple/{p-6fe35d1e.system.entry.js → p-d52545c7.system.entry.js} +1 -1
  304. package/dist/ripple/p-d9122935.system.entry.js +1 -0
  305. package/dist/ripple/p-daf03315.entry.js +1 -0
  306. package/dist/ripple/p-de283385.system.js +1 -0
  307. package/dist/ripple/p-de35505c.entry.js +1 -0
  308. package/dist/ripple/p-e004b92b.system.entry.js +1 -0
  309. package/dist/ripple/p-e26a6bd0.entry.js +1 -0
  310. package/dist/ripple/p-e42eeb59.system.entry.js +1 -0
  311. package/dist/ripple/{p-a88bf1c5.js → p-e8c12272.js} +1 -1
  312. package/dist/ripple/p-e9395ac5.entry.js +1 -0
  313. package/dist/ripple/p-eeebc2c7.entry.js +1 -0
  314. package/dist/ripple/p-f69a16d4.system.entry.js +1 -0
  315. package/dist/ripple/p-f8c6fa96.system.entry.js +1 -0
  316. package/dist/ripple/p-fb3d5a64.system.entry.js +1 -0
  317. package/dist/ripple/ripple.esm.js +1 -1
  318. package/dist/ripple/ripple.js +1 -1
  319. package/dist/types/components/selects/wm-select/wm-select.d.ts +53 -0
  320. package/dist/types/components.d.ts +148 -2
  321. package/dist/types/global/functions.d.ts +1 -0
  322. package/dist/types/stencil-public-runtime.d.ts +10 -3
  323. package/package.json +1 -1
  324. package/dist/cjs/index-788526f5.js +0 -1851
  325. package/dist/esm/index-130e07bb.js +0 -1820
  326. package/dist/esm-es5/app-globals-8a702f67.js +0 -1
  327. package/dist/esm-es5/functions-25781571.js +0 -1
  328. package/dist/esm-es5/index-130e07bb.js +0 -1
  329. package/dist/ripple/p-0af94825.entry.js +0 -1
  330. package/dist/ripple/p-0ff41567.system.entry.js +0 -1
  331. package/dist/ripple/p-13fc2164.entry.js +0 -1
  332. package/dist/ripple/p-155224a2.system.entry.js +0 -1
  333. package/dist/ripple/p-17bb1157.system.entry.js +0 -1
  334. package/dist/ripple/p-1f09134c.entry.js +0 -1
  335. package/dist/ripple/p-298c2675.entry.js +0 -1
  336. package/dist/ripple/p-2d619f83.entry.js +0 -1
  337. package/dist/ripple/p-2ef49c84.entry.js +0 -1
  338. package/dist/ripple/p-2fd12dd9.entry.js +0 -1
  339. package/dist/ripple/p-3423a9b6.system.entry.js +0 -1
  340. package/dist/ripple/p-376efca9.entry.js +0 -1
  341. package/dist/ripple/p-3b4045f8.system.entry.js +0 -1
  342. package/dist/ripple/p-3b5f4364.system.entry.js +0 -1
  343. package/dist/ripple/p-417c8e46.system.entry.js +0 -1
  344. package/dist/ripple/p-418ed08c.system.entry.js +0 -1
  345. package/dist/ripple/p-4670ccb4.system.js +0 -1
  346. package/dist/ripple/p-4baaf026.entry.js +0 -1
  347. package/dist/ripple/p-4ea1e503.entry.js +0 -1
  348. package/dist/ripple/p-5051034b.entry.js +0 -1
  349. package/dist/ripple/p-56766bb2.entry.js +0 -1
  350. package/dist/ripple/p-58988291.system.js +0 -1
  351. package/dist/ripple/p-5caaf651.system.entry.js +0 -1
  352. package/dist/ripple/p-5ece78e5.system.entry.js +0 -1
  353. package/dist/ripple/p-6d0e5159.system.entry.js +0 -1
  354. package/dist/ripple/p-6d56676e.system.entry.js +0 -1
  355. package/dist/ripple/p-748f8a97.system.entry.js +0 -1
  356. package/dist/ripple/p-7eab6bea.system.entry.js +0 -1
  357. package/dist/ripple/p-7fb95b89.entry.js +0 -1
  358. package/dist/ripple/p-830f8b3f.entry.js +0 -1
  359. package/dist/ripple/p-86fd68b3.system.entry.js +0 -1
  360. package/dist/ripple/p-88cfd58d.js +0 -1
  361. package/dist/ripple/p-8b56f9d8.system.entry.js +0 -1
  362. package/dist/ripple/p-a62e7532.entry.js +0 -1
  363. package/dist/ripple/p-b41ef3db.entry.js +0 -1
  364. package/dist/ripple/p-b7307be6.system.entry.js +0 -1
  365. package/dist/ripple/p-b80d9402.system.entry.js +0 -1
  366. package/dist/ripple/p-b8168f35.system.entry.js +0 -1
  367. package/dist/ripple/p-c2181de0.entry.js +0 -1
  368. package/dist/ripple/p-cef8a45b.system.js +0 -2
  369. package/dist/ripple/p-d5ba9de1.system.entry.js +0 -1
  370. package/dist/ripple/p-d9da0502.js +0 -2
  371. package/dist/ripple/p-ddff380b.system.js +0 -1
  372. package/dist/ripple/p-e2fe86a7.system.entry.js +0 -1
  373. package/dist/ripple/p-e4918449.js +0 -1
  374. package/dist/ripple/p-e85b1f40.entry.js +0 -1
  375. package/dist/ripple/p-ea0dfadf.system.entry.js +0 -1
  376. package/dist/ripple/p-eb14b354.entry.js +0 -1
  377. package/dist/ripple/p-ecb6c756.entry.js +0 -1
  378. package/dist/ripple/p-f09e2c22.entry.js +0 -1
  379. package/dist/ripple/p-f17fd62b.entry.js +0 -1
  380. package/dist/ripple/p-fabe4ca4.entry.js +0 -1
  381. package/dist/ripple/p-fc529ba1.system.entry.js +0 -1
  382. package/dist/types/components/wm-option/wm-option.d.ts +0 -39
  383. package/dist/types/components/wm-select/wm-select.d.ts +0 -96
@@ -2,12 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-788526f5.js');
6
- const functions = require('./functions-05e7ad5a.js');
7
- const intl = require('./intl-2b550151.js');
5
+ const index = require('./index-e86c28b6.js');
6
+ const functions = require('./functions-a70fcff7.js');
7
+ const intl = require('./intl-4a3a3a94.js');
8
8
 
9
9
  const wmOptionCss = ":host(:not(:last-child)){border-bottom:2px solid;border-color:var(--wmcolor-select-option-border)}:host{display:block;cursor:pointer;position:relative;padding:1.25rem;background:var(--wmcolor-select-option-background);font-family:inherit;list-style:none;color:var(--wmcolor-select-option-text);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host:focus,:host.focus{outline:none;background:var(--wmcolor-select-option-background-focus)}:host.icon{color:var(--wmcolor-interactive)}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.checkbox:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f131\";display:inline-block;margin-right:0.25rem;color:var(--wmcolor-interactive)}:host([aria-selected=true]){background:var(--wmcolor-select-option-background-selected);font-weight:500}:host([aria-selected=true]) .checkbox:before{content:\"\\f132\"}:host([aria-disabled=true]){color:var(--wmcolor-select-option-text-disabled);background:var(--wmcolor-select-option-background-disabled);cursor:default}:host([aria-disabled=true]) .checkbox:before{color:var(--wmcolor-select-option-text-disabled)}:host([aria-disabled=true]) .subinfo{color:var(--wmcolor-select-option-text-disabled)}:host(.multi-option){background:unset}:host(.clone.last){border-bottom:12px solid;border-color:var(--wmcolor-select-option-border)}:host(.hassubinfo){display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;gap:16px}:host(.hidden),:host(.filtered-out){display:none}.subinfo{font-style:italic}.option-wrapper{display:-ms-flexbox;display:flex}.option-text{display:inline-block}::slotted{font-family:inherit}::slotted(i){font-size:0.875rem}::slotted(i):before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;margin-right:0.625rem;pointer-events:none}:host(:focus){outline:none;background:var(--wmcolor-select-option-background-hover)}:host(:hover){background:var(--wmcolor-select-option-background-hover);outline:none}";
10
- const WmOptionStyle0 = wmOptionCss;
11
10
 
12
11
  const Option = class {
13
12
  constructor(hostRef) {
@@ -17,6 +16,7 @@ const Option = class {
17
16
  this.intCloneClicked = index.createEvent(this, "intCloneClicked", 7);
18
17
  this.wmKeyUpPressed = index.createEvent(this, "wmKeyUpPressed", 7);
19
18
  this.wmKeyDownPressed = index.createEvent(this, "wmKeyDownPressed", 7);
19
+ this.wmKeyLeftPressed = index.createEvent(this, "wmKeyLeftPressed", 7);
20
20
  this.wmEscKeyPressed = index.createEvent(this, "wmEscKeyPressed", 7);
21
21
  this.wmHomeKeyPressed = index.createEvent(this, "wmHomeKeyPressed", 7);
22
22
  this.wmEndKeyPressed = index.createEvent(this, "wmEndKeyPressed", 7);
@@ -35,7 +35,7 @@ const Option = class {
35
35
  if (this.subinfo) {
36
36
  classes.push("hassubinfo");
37
37
  }
38
- if (this.parentSelectEl.multiple) {
38
+ if (this.parentOptionList.multiple) {
39
39
  classes.push("multi-option");
40
40
  }
41
41
  if (!this.el.textContent.toLowerCase().includes(this.searchTerm)) {
@@ -43,11 +43,13 @@ const Option = class {
43
43
  }
44
44
  return classes.join(" ");
45
45
  }
46
- get parentSelectEl() {
47
- var _a;
48
- return ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.nodeName) !== "WM-SELECT"
49
- ? this.el.getRootNode().host
50
- : this.el.parentElement;
46
+ get parentOptionList() {
47
+ if (this.el.classList.contains("clone")) {
48
+ return this.el.closest("priv-option-list");
49
+ }
50
+ else {
51
+ return this.el.assignedSlot.closest("priv-option-list");
52
+ }
51
53
  }
52
54
  handleKeydown(ev) {
53
55
  switch (ev.key) {
@@ -79,6 +81,10 @@ const Option = class {
79
81
  ev.preventDefault();
80
82
  this.wmEndKeyPressed.emit();
81
83
  break;
84
+ case "ArrowLeft":
85
+ ev.preventDefault();
86
+ this.wmKeyLeftPressed.emit(this.el);
87
+ break;
82
88
  default:
83
89
  if (ev.key.length === 1) {
84
90
  ev.preventDefault();
@@ -94,7 +100,7 @@ const Option = class {
94
100
  this.intCloneClicked.emit(this.el); // used to then emit wmOptionSelected from the "real" wm-option
95
101
  }
96
102
  else {
97
- if (this.parentSelectEl.multiple) {
103
+ if (this.parentOptionList.multiple) {
98
104
  this.selected
99
105
  ? this.wmOptionDeselected.emit(this.el)
100
106
  : this.wmOptionSelected.emit(this.el);
@@ -156,10 +162,10 @@ const Option = class {
156
162
  this.syncAriaSelected();
157
163
  this.syncAriaDisabled();
158
164
  this.updateDisabledOnClick();
159
- this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
165
+ this.parentOptionList.addEventListener("optionListSearchChanged", (ev) => this.handleSearch(ev));
160
166
  }
161
167
  render() {
162
- return (index.h(index.Host, { key: '6d7f92d3b13121ae8ddffb4d8e6028db2171116a', role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, index.h("div", { key: 'd0dccae3c763686b420b0bf16d7bf2880b1cdc67', class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, index.h("span", { key: '6e1fbd0d49be13883048634cd54d19f19256226d', class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), index.h("span", { key: 'f57f7c21e833a1c03f8407eaccb0883ef6b3a79a', class: "sr-only" }, this.el.textContent)), index.h("div", { key: '1256826e0ddc1e3c48141e8c0f6864b3401cacf7', class: "subinfo" }, this.subinfo)));
168
+ return (index.h(index.Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, index.h("div", { class: `option-wrapper ${this.parentOptionList.multiple ? "checkbox" : ""}` }, index.h("span", { class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), index.h("span", { class: "sr-only" }, this.el.textContent)), index.h("div", { class: "subinfo" }, this.subinfo)));
163
169
  }
164
170
  get el() { return index.getElement(this); }
165
171
  static get watchers() { return {
@@ -167,55 +173,22 @@ const Option = class {
167
173
  "disabled": ["syncAriaDisabled", "updateDisabledOnClick"]
168
174
  }; }
169
175
  };
170
- Option.style = WmOptionStyle0;
176
+ Option.style = wmOptionCss;
171
177
 
172
- const wmSelectCss = ":host{--wmcolor-select-background:var(--wmcolor-background);--wmcolor-select-border:var(--wmcolor-input-border);--wmcolor-select-option-background-disabled:var(--wmcolor-option-background-disabled);--wmcolor-select-option-background-focus:var(--wmcolor-option-background-focus);--wmcolor-select-option-background-hover:var(--wmcolor-option-background-hover);--wmcolor-select-option-background-selected:var(--wmcolor-option-background-selected);--wmcolor-select-option-background:var(--wmcolor-option-background);--wmcolor-select-option-border:var(--wmcolor-option-border);--wmcolor-select-option-text-disabled:var(--wmcolor-option-text-disabled);--wmcolor-select-option-text:var(--wmcolor-option-text);--wmcolor-select-search-border:var(--wmcolor-input-border);--wmcolor-select-search-icon:var(--wmcolor-icon-accent);--wmcolor-select-searchresults-text:var(--wmcolor-text);--wmcolor-select-selectall-background:var(--wmcolor-select-option-background);--wmcolor-select-selectall-border:var(--wmcolor-select-option-border);--wmcolor-select-selectall-text:var(--wmcolor-interactive);--wmcolor-select-text:var(--wmcolor-interactive);position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}.wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}.wrapper .label .required{color:var(--wmcolor-text-required)}.wrapper.label-left{-ms-flex-direction:row;flex-direction:row}.wrapper.label-left .label-wrapper{line-height:2.5rem}.wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}.wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper.invalid .label{color:var(--wmcolor-text-error)}.wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f026\";margin-left:0.3125rem}[dir=RTL] .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}.wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}.wrapper .button-wrapper{position:relative;-ms-flex:1;flex:1;font-size:1.125rem;color:var(--wmcolor-select-text);min-width:8.75rem}.wrapper .button-wrapper .displayedoption{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap;background:var(--wmcolor-select-background);width:100%;border:solid 1px;border-color:var(--wmcolor-select-border);padding:0 1.875rem 0 0.9375rem;cursor:pointer;height:2.5rem;line-height:normal;font-family:inherit;color:var(--wmcolor-select-text);font-weight:400;font-size:0.875rem;text-transform:none;text-align:left}@media only screen and (max-width: 768px){.wrapper .button-wrapper .displayedoption{height:2.75rem}}.wrapper .button-wrapper .displayedoption:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f140\";position:absolute;right:0.5625rem;pointer-events:none;font-size:1.12rem}.wrapper .button-wrapper .displayedoption:hover:not(:disabled):not(.-disabled):not(.-raised){background:var(--wmcolor-select-background);text-decoration:none}.wrapper .button-wrapper .displayedoption:active{-ms-transform:scale(1, 1) !important;-webkit-transform:scale(1, 1) !important;transform:scale(1, 1) !important}.wrapper .button-wrapper .displayedoption:focus{outline:none}.wrapper .button-wrapper .displayedoption::-moz-focus-inner{border:0}.wrapper .button-wrapper .displayedoption:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:2px}.wrapper .button-wrapper .displayedoption .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-flex:1;flex:1}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo{display:-ms-flexbox;display:flex}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .button-text{-ms-flex:1;flex:1;text-overflow:ellipsis;overflow:hidden;min-width:0}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .subinfo{-ms-flex:none;flex:none;font-style:italic}.wrapper .button-wrapper .displayedoption .overflow-counter{font-weight:bold;margin-left:0.5rem}.wrapper .button-wrapper>.displayedoption[disabled]{color:#6b6b6b;border-color:#8a8a8a;background:#f0f0f0;cursor:default}.wrapper .button-wrapper>.dropdown{-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-ms-transition:transform 0.25s ease;-webkit-transition:transform 0.25s ease;-moz-transition:transform 0.25s ease;-webkit-transition:-webkit-transform 0.25s ease;transition:-webkit-transform 0.25s ease;transition:transform 0.25s ease;transition:transform 0.25s ease, -webkit-transform 0.25s ease;-ms-transform:scale(1, 0);-webkit-transform:scale(1, 0);-moz-transform:scale(1, 0);transform:scale(1, 0);-ms-transform-origin:center top;-webkit-transform-origin:center top;-moz-transform-origin:center top;transform-origin:center top;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:absolute;top:0;right:0;background:var(--wmcolor-select-option-background);z-index:100;width:100%;font-size:0.875rem}.wrapper .button-wrapper>.dropdown.upwards{top:unset;bottom:calc(100% - 2.5rem);-ms-transform-origin:center bottom;-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}.wrapper .button-wrapper>.dropdown.hidden{visibility:hidden}.wrapper .button-wrapper>.dropdown.open{-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);transform:scale(1, 1)}.wrapper.invalid .button-wrapper .displayedoption{-webkit-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);-moz-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);box-shadow:0 0 0 1px var(--wmcolor-input-border-error);border-color:var(--wmcolor-input-border-error)}.wrapper .error-message{display:block;font-style:italic;color:var(--wmcolor-text-error);font-size:0.875rem;margin-bottom:0.25rem;top:100%;left:0}.wrapper .error-message:not(:empty){margin-top:0.25rem}.options-wrapper{max-height:12.5rem;overflow:auto}.select-all{width:100%;cursor:pointer;padding:1.25rem;border:none;margin:0;border-bottom:2px solid;border-color:var(--wmcolor-select-selectall-border);background:var(--wmcolor-select-selectall-background);font-family:inherit;font-size:inherit;text-align:left;text-align:start;font-weight:500;color:var(--wmcolor-select-selectall-text);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-all:hover,.select-all:focus{outline:none;background:#f4f4f4}.search{-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:2px solid;border-color:var(--wmcolor-select-option-border);padding:1.25rem}.search .searchfield-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:2.75rem;width:100%;padding:0 0.75rem;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;border:1px solid;border-color:var(--wmcolor-select-search-border)}.search .searchfield-wrapper:focus,.search .searchfield-wrapper.focus{outline:2px solid var(--wmcolor-input-border-focus);border-color:var(--wmcolor-input-border-focus)}.search .searchfield{width:100%;border:none;outline:none;font-family:inherit;font-size:0.875rem;margin-left:0.25rem}.search .icon:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f349\";color:var(--wmcolor-select-search-icon);font-size:1.12rem}.search-results-message{padding:1.25rem;color:var(--wmcolor-select-searchresults-text);font-size:0.875rem;font-style:italic}.rtl>.dropdown{-ms-transform-origin:left top;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top;left:0;right:auto}.rtl>.dropdown .option{padding-left:3rem;padding-right:1.25rem}.rtl>.displayedoption{padding:0 0.9375rem 0 1.875rem;text-align:right}.rtl>.displayedoption:before{right:auto;left:0.5625rem}";
173
- const WmSelectStyle0 = wmSelectCss;
178
+ const wmSelectCss = ":host{--wmcolor-select-background:var(--wmcolor-background);--wmcolor-select-border:var(--wmcolor-input-border);--wmcolor-select-option-background-disabled:var(--wmcolor-option-background-disabled);--wmcolor-select-option-background-focus:var(--wmcolor-option-background-focus);--wmcolor-select-option-background-hover:var(--wmcolor-option-background-hover);--wmcolor-select-option-background-selected:var(--wmcolor-option-background-selected);--wmcolor-select-option-background:var(--wmcolor-option-background);--wmcolor-select-option-border:var(--wmcolor-option-border);--wmcolor-select-option-text-disabled:var(--wmcolor-option-text-disabled);--wmcolor-select-option-text:var(--wmcolor-option-text);--wmcolor-select-search-border:var(--wmcolor-input-border);--wmcolor-select-search-icon:var(--wmcolor-icon-accent);--wmcolor-select-searchresults-text:var(--wmcolor-text);--wmcolor-select-selectall-background:var(--wmcolor-select-option-background);--wmcolor-select-selectall-border:var(--wmcolor-select-option-border);--wmcolor-select-selectall-text:var(--wmcolor-interactive);--wmcolor-select-text:var(--wmcolor-interactive);position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}:host .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-size:0.875rem}.wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}.wrapper .label .required{color:var(--wmcolor-text-required)}.wrapper.label-left{-ms-flex-direction:row;flex-direction:row}.wrapper.label-left .label-wrapper{line-height:2.5rem}.wrapper.label-left .label-wrapper .label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}.wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}.wrapper.invalid .label{color:var(--wmcolor-text-error)}.wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f026\";margin-left:0.3125rem}[dir=RTL] .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}.wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}.wrapper .button-wrapper{position:relative;-ms-flex:1;flex:1;font-size:1.125rem;color:var(--wmcolor-select-text);min-width:8.75rem}.wrapper .button-wrapper .displayedoption{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:nowrap;flex-wrap:nowrap;background:var(--wmcolor-select-background);width:100%;border:solid 1px;border-color:var(--wmcolor-select-border);padding:0 1.875rem 0 0.9375rem;cursor:pointer;height:2.5rem;line-height:normal;font-family:inherit;color:var(--wmcolor-select-text);font-weight:400;font-size:0.875rem;text-transform:none;text-align:left}@media only screen and (max-width: 768px){.wrapper .button-wrapper .displayedoption{height:2.75rem}}.wrapper .button-wrapper .displayedoption:before{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\f140\";position:absolute;right:0.5625rem;pointer-events:none;font-size:1.12rem}.wrapper .button-wrapper .displayedoption:hover:not(:disabled):not(.-disabled):not(.-raised){background:var(--wmcolor-select-background);text-decoration:none}.wrapper .button-wrapper .displayedoption:active{-ms-transform:scale(1, 1) !important;-webkit-transform:scale(1, 1) !important;transform:scale(1, 1) !important}.wrapper .button-wrapper .displayedoption:focus{outline:none}.wrapper .button-wrapper .displayedoption::-moz-focus-inner{border:0}.wrapper .button-wrapper .displayedoption:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:2px}.wrapper .button-wrapper .displayedoption .overflowcontrol{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-ms-flex:1;flex:1}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo{display:-ms-flexbox;display:flex}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .button-text{-ms-flex:1;flex:1;text-overflow:ellipsis;overflow:hidden;min-width:0}.wrapper .button-wrapper .displayedoption .overflowcontrol.hassubinfo .subinfo{-ms-flex:none;flex:none;font-style:italic}.wrapper .button-wrapper .displayedoption .overflow-counter{font-weight:bold;margin-left:0.5rem}.wrapper .button-wrapper>.displayedoption[disabled]{color:#6b6b6b;border-color:#8a8a8a;background:#f0f0f0;cursor:default}.wrapper .button-wrapper>.dropdown{-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-moz-box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);box-shadow:0 4px 15px 0 rgba(0, 0, 0, 0.2);-ms-transition:transform 0.25s ease;-webkit-transition:transform 0.25s ease;-moz-transition:transform 0.25s ease;-webkit-transition:-webkit-transform 0.25s ease;transition:-webkit-transform 0.25s ease;transition:transform 0.25s ease;transition:transform 0.25s ease, -webkit-transform 0.25s ease;-ms-transform:scale(1, 0);-webkit-transform:scale(1, 0);-moz-transform:scale(1, 0);transform:scale(1, 0);-ms-transform-origin:center top;-webkit-transform-origin:center top;-moz-transform-origin:center top;transform-origin:center top;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;position:absolute;top:0;right:0;background:var(--wmcolor-select-option-background);z-index:100;width:100%;font-size:0.875rem}.wrapper .button-wrapper>.dropdown.upwards{top:unset;bottom:calc(100% - 2.5rem);-ms-transform-origin:center bottom;-webkit-transform-origin:center bottom;-moz-transform-origin:center bottom;transform-origin:center bottom}.wrapper .button-wrapper>.dropdown.hidden{visibility:hidden}.wrapper .button-wrapper>.dropdown.open{-ms-transform:scale(1, 1);-webkit-transform:scale(1, 1);-moz-transform:scale(1, 1);transform:scale(1, 1)}.wrapper.invalid .button-wrapper .displayedoption{-webkit-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);-moz-box-shadow:0 0 0 1px var(--wmcolor-input-border-error);box-shadow:0 0 0 1px var(--wmcolor-input-border-error);border-color:var(--wmcolor-input-border-error)}.wrapper .error-message{display:block;font-style:italic;color:var(--wmcolor-text-error);font-size:0.875rem;margin-bottom:0.25rem;top:100%;left:0}.wrapper .error-message:not(:empty){margin-top:0.25rem}.options-wrapper{max-height:12.5rem;overflow:auto}.rtl>.dropdown{-ms-transform-origin:left top;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top;left:0;right:auto}.rtl>.dropdown .option{padding-left:3rem;padding-right:1.25rem}.rtl>.displayedoption{padding:0 0.9375rem 0 1.875rem;text-align:right}.rtl>.displayedoption:before{right:auto;left:0.5625rem}";
174
179
 
175
180
  const Select = class {
176
181
  constructor(hostRef) {
177
182
  index.registerInstance(this, hostRef);
178
183
  this.wmSelectDidLoad = index.createEvent(this, "wmSelectDidLoad", 7);
179
184
  this.wmSelectBlurred = index.createEvent(this, "wmSelectBlurred", 7);
180
- this.wmSelectSearchChanged = index.createEvent(this, "wmSelectSearchChanged", 7);
181
185
  this.wmSelectAllSelected = index.createEvent(this, "wmSelectAllSelected", 7);
182
186
  this.wmSelectAllDeselected = index.createEvent(this, "wmSelectAllDeselected", 7);
183
- this.selectAllMessage = functions.intl.formatMessage({
184
- id: "select.selectAll",
185
- defaultMessage: "Select All",
186
- });
187
- this.deselectAllMessage = functions.intl.formatMessage({
188
- id: "select.deselectAll",
189
- defaultMessage: "Deselect All",
190
- });
191
- this.allOptionsSelectedMessage = functions.intl.formatMessage({
192
- id: "select.allOptionsSelected",
193
- defaultMessage: "All options selected",
194
- });
195
- this.allOptionsDeselectedMessage = functions.intl.formatMessage({
196
- id: "select.allOptionsDeselected",
197
- defaultMessage: "All options deselected",
198
- });
199
- this.keysSoFar = "";
200
- this.searchIndex = 0;
201
187
  this.openUp = false;
202
188
  //////////////////////////////////////
203
- //////////////////////////////////////
204
189
  // for multiselect button text
205
190
  this.overflowCount = 0;
206
191
  this.displayedOptions = [];
207
- this.debouncedClearKeysSoFar = functions.debounce(() => {
208
- this.keysSoFar = "";
209
- }, 500);
210
- this.debouncedSearch = functions.debounce(() => {
211
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
212
- if (this.filteredOptions.length) {
213
- this.announce(this.resultsFoundMessage);
214
- }
215
- else {
216
- this.announce(this.noResultsFoundMessage);
217
- }
218
- }, 150);
219
192
  this.disabled = false;
220
193
  this.maxHeight = undefined;
221
194
  this.label = undefined;
@@ -246,85 +219,33 @@ const Select = class {
246
219
  get childOptions() {
247
220
  return Array.from(this.el.querySelectorAll("wm-option"));
248
221
  }
249
- get cloneOptions() {
250
- return Array.from(this.el.shadowRoot.querySelectorAll("wm-option"));
251
- }
252
- get allOptionEls() {
253
- // this includes both slotted wm-options and internally created wm-options
254
- return this.cloneOptions.concat(this.childOptions);
255
- }
256
- get visibleOptionEls() {
257
- return this.allOptionEls.filter((option) => !option.classList.contains("hidden") && !option.classList.contains("filtered-out"));
258
- }
259
222
  get isDisabled() {
260
223
  // string "false" needs to be treated as bool False because react wrappers convert bool to string.
261
224
  return functions.toBool(this.disabled);
262
225
  }
263
- //////////////////////////////////////
264
- // for search variants
265
- get searchTerm() {
266
- return this.searchFieldEl ? this.searchFieldEl.value : "";
267
- }
268
- get filteredOptions() {
269
- return this.childOptions.filter((option) => { var _a; return (_a = option.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(this.searchTerm.toLowerCase()); });
270
- }
271
226
  get selectedOptions() {
272
227
  return Array.from(this.el.querySelectorAll("wm-option")).filter((x) => x.selected);
273
228
  }
274
229
  get allSelected() {
275
230
  return this.childOptions.every((option) => option.selected);
276
231
  }
277
- get visibleSelectAllButton() {
278
- return this.selectAll && this.multiple && this.searchTerm === "";
279
- }
280
232
  //////////////////////////////////////
281
- get resultsFoundMessage() {
282
- return functions.intl.formatMessage({
283
- id: "select.searchResultsFound",
284
- defaultMessage: "{numResults, plural, one {1 option found} other {# options found}}",
285
- description: "The message read by the screen reader, indicating how many results a search returned",
286
- }, { numResults: this.filteredOptions.length });
287
- }
288
- get noResultsFoundMessage() {
289
- return functions.intl.formatMessage({
290
- id: "select.noSearchResults",
291
- defaultMessage: "No results found. Please try your search again.",
292
- description: "The message displayed when no options pass the search filter",
293
- });
294
- }
295
- handleOptionSelection(ev) {
296
- this.focusOption(ev.detail);
233
+ handleOptionSelection() {
297
234
  if (!this.multiple) {
298
235
  this.close();
299
236
  }
300
237
  }
301
- handleOptionCloneSelection(ev) {
302
- const correspondingOption = this.findCorrespondingOption(ev.detail);
303
- correspondingOption.click();
304
- }
305
238
  handleChildEnter() {
306
239
  // only occurs for multiselects. handle the click, then close
307
240
  this.close();
308
241
  }
309
- handleChildUp(ev) {
310
- this.moveUp(ev.detail);
311
- }
312
- handleChildDown(ev) {
313
- this.moveDown(ev.detail);
314
- }
315
- moveToFirstOption() {
316
- this.focusOption(this.visibleOptionEls[0]);
317
- }
318
- moveToLastOption() {
319
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
320
- }
321
242
  closePopupOnEscape() {
322
243
  this.close();
323
244
  }
324
245
  handleOptionBlur(ev) {
325
246
  // if the Option is blurred to something other than the component emit a blur event with the appropriate relatedTarget
326
247
  // keeps our component's blur events accurate, and closes when focusing browser address bar
327
- if (!this.isElOrChild(ev.detail.relatedTarget)) {
248
+ if (!functions.isElOrChild(this.el, ev.detail.relatedTarget)) {
328
249
  const event = new CustomEvent("blur");
329
250
  // @ts-ignore
330
251
  event.relatedTarget = ev.detail.relatedTarget;
@@ -332,34 +253,16 @@ const Select = class {
332
253
  }
333
254
  }
334
255
  handleClick(ev) {
335
- if (!this.isElOrChild(ev.target)) {
256
+ if (!functions.isElOrChild(this.el, ev.target)) {
336
257
  this.close();
337
258
  }
338
259
  }
339
- handleSelectAllClick() {
340
- this.allSelected ? this.deselectAllOptions() : this.selectAllOptions();
341
- }
342
- selectAllOptions() {
343
- this.announce(this.allOptionsSelectedMessage);
344
- this.wmSelectAllSelected.emit();
345
- }
346
- deselectAllOptions() {
347
- this.announce(this.allOptionsDeselectedMessage);
348
- this.wmSelectAllDeselected.emit();
349
- }
350
260
  handleButtonBlur(ev) {
351
- if (this.isElOrChild(ev.relatedTarget)) {
261
+ if (functions.isElOrChild(this.el, ev.relatedTarget)) {
352
262
  // do not emit a blur event when opening the dropdown and focusing the Options
353
263
  ev.stopPropagation();
354
264
  }
355
265
  }
356
- handleSearchFieldBlur(ev) {
357
- this.searchFieldWrapperEl.classList.remove("focus");
358
- if (this.isElOrChild(ev.relatedTarget)) {
359
- // do not emit a blur event when moving from searchfield to options
360
- ev.stopPropagation();
361
- }
362
- }
363
266
  handleKey(ev) {
364
267
  switch (ev.key) {
365
268
  case "ArrowDown":
@@ -396,6 +299,7 @@ const Select = class {
396
299
  // on update of children or children selected state, reset button text and rerender
397
300
  this.setButtonText();
398
301
  index.forceUpdate(this.el);
302
+ this.optionListEl.handleChildChange(_);
399
303
  }
400
304
  componentDidLoad() {
401
305
  this.wmSelectDidLoad.emit();
@@ -403,55 +307,11 @@ const Select = class {
403
307
  index.forceUpdate(this.el);
404
308
  // Dev can overwrite the max-height rule set in the Sass file
405
309
  if (this.maxHeight) {
406
- this.listboxEl.style.maxHeight = this.maxHeight;
407
- }
408
- if (this.multiple) {
409
- this.updateOptionVisibility();
310
+ // this.listboxEl.style.maxHeight = this.maxHeight;
311
+ this.dropdownEl.style.maxHeight = this.maxHeight;
410
312
  }
411
313
  this.setButtonText();
412
314
  }
413
- componentWillUpdate() {
414
- if (this.multiple) {
415
- // find last visible clone option and apply .last class
416
- const visibleCloneOptions = this.visibleOptionEls.filter((option) => option.classList.contains("clone"));
417
- // if all options are clones, nothing to separate from
418
- const allClones = visibleCloneOptions.length === this.visibleOptionEls.length;
419
- visibleCloneOptions.forEach((option, idx) => {
420
- if (!allClones && idx === visibleCloneOptions.length - 1) {
421
- option.classList.add("last");
422
- }
423
- else {
424
- option.classList.remove("last");
425
- }
426
- });
427
- }
428
- }
429
- moveUp(el) {
430
- const focusableEls = this.visibleOptionEls;
431
- if (this.selectAllEl) {
432
- focusableEls.unshift(this.selectAllEl);
433
- }
434
- if (this.searchFieldEl) {
435
- focusableEls.unshift(this.searchFieldEl);
436
- }
437
- const prevEl = focusableEls[focusableEls.indexOf(el) - 1] || focusableEls[focusableEls.length - 1];
438
- if (prevEl) {
439
- this.focusOption(prevEl);
440
- }
441
- }
442
- moveDown(el) {
443
- const focusableEls = this.visibleOptionEls;
444
- if (this.selectAllEl) {
445
- focusableEls.unshift(this.selectAllEl);
446
- }
447
- if (this.searchFieldEl) {
448
- focusableEls.unshift(this.searchFieldEl);
449
- }
450
- const nextEl = focusableEls[focusableEls.indexOf(el) + 1] || focusableEls[0];
451
- if (nextEl) {
452
- this.focusOption(nextEl);
453
- }
454
- }
455
315
  open(optionToSelect) {
456
316
  if (!this.isDisabled) {
457
317
  const elHeight = this.el.clientHeight;
@@ -464,60 +324,22 @@ const Select = class {
464
324
  this.isExpanded = true;
465
325
  this.dropdownEl.classList.remove("hidden");
466
326
  window.requestAnimationFrame(() => {
467
- switch (optionToSelect) {
468
- case "next":
469
- // search variant focuses search field
470
- // all others focus option "after" last selected option (this can be the first option)
471
- if (this.search) {
472
- this.searchFieldEl.focus();
473
- this.listboxEl.scrollTop = 0;
474
- }
475
- else {
476
- this.moveDown(this.visibleOptionEls.filter((x) => x.selected).slice(-1)[0]);
477
- }
478
- break;
479
- case "previous":
480
- // search variant focuses last option
481
- // all others focus option "above" first selected option (this can be the last option)
482
- if (this.search) {
483
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
484
- }
485
- else {
486
- this.moveUp(this.visibleOptionEls.filter((x) => x.selected)[0]);
487
- }
488
- break;
489
- default:
490
- // search variant focuses search field
491
- // all others focus the selected option
492
- // if no option is selected (empty multiselect), focuses first option
493
- if (this.search) {
494
- this.searchFieldEl.focus();
495
- this.listboxEl.scrollTop = 0;
496
- }
497
- else if (this.selectedOptions.length > 0) {
498
- this.focusOption(this.visibleOptionEls.filter((x) => x.selected)[0]);
499
- }
500
- else {
501
- this.focusOption(this.visibleOptionEls[0]);
502
- }
503
- break;
504
- }
327
+ this.optionListEl.handleInitialFocus(optionToSelect);
505
328
  });
506
329
  }
507
330
  }
508
331
  close(returnFocus = true) {
509
332
  if (this.isExpanded) {
510
333
  this.isExpanded = false;
511
- this.allOptionEls.map((i) => (i.focused = false));
334
+ this.optionListEl.unfocusAll();
512
335
  window.setTimeout(() => {
513
336
  this.dropdownEl.classList.add("hidden");
514
- if (this.multiple) {
515
- this.updateOptionVisibility();
337
+ if (this.optionListEl.multiple) {
338
+ this.optionListEl.updateOptionVisibility();
516
339
  }
517
340
  // clear search field, reset filtered / bolded state of wm-options
518
341
  if (this.search) {
519
- this.searchFieldEl.value = "";
520
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
342
+ this.optionListEl.clearSearch();
521
343
  }
522
344
  // Returns focus to button after popup closes (no need if user is tabbing)
523
345
  // Delay is necessary for screenreader to get new expanded state before focus
@@ -529,87 +351,6 @@ const Select = class {
529
351
  }, 150);
530
352
  }
531
353
  }
532
- updateOptionVisibility() {
533
- // this runs for search multiselects, where selected options are rendered at the top of the dropdown list
534
- // slotted wm-options are hidden if selected, and clone wm-options are made visible if selected
535
- this.childOptions.forEach((option, idx) => {
536
- const cloneOption = this.cloneOptions[idx];
537
- if (option.selected) {
538
- option.classList.add("hidden");
539
- cloneOption.classList.remove("hidden");
540
- }
541
- else {
542
- option.classList.remove("hidden");
543
- cloneOption.classList.add("hidden");
544
- }
545
- });
546
- }
547
- focusOption(option) {
548
- this.allOptionEls.forEach((i) => (i.focused = i === option));
549
- // option must be scrolledIntoView before focused
550
- // if focus is called first the option might be positioned incorrectly (in the center of the dropdown) and scrollIntoView will do nothing as the option will already be in view
551
- option.scrollIntoView({ block: "nearest" });
552
- // scrollIntoView does not work when the container of the element it's called on is not rendered to the page (in our case the dropdown is still closed and has transform: scaleY(0))
553
- // when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to
554
- // in Safari in particular, the soonest this seems to happen is 20ms. The longest we can wait before any jumping in the open dropdown is noticeable is 60ms
555
- window.setTimeout(() => option.scrollIntoView({ block: "nearest" }), 60);
556
- option.focus();
557
- }
558
- findAndFocusOption(ev) {
559
- const letterPressed = ev.detail.letter.toLowerCase();
560
- const optionPressed = ev.detail.optionEl;
561
- if (!this.keysSoFar && letterPressed == " ") {
562
- // if the first key entered is space, treat as a click. Otherwise include in
563
- optionPressed.click();
564
- }
565
- else {
566
- if (!this.keysSoFar) {
567
- // if first character entered, set currently focused option as the starting index for the search
568
- this.visibleOptionEls.forEach((option, idx) => {
569
- if (option.focused) {
570
- this.searchIndex = idx;
571
- }
572
- });
573
- }
574
- this.keysSoFar += letterPressed;
575
- let nextMatch = this.findMatchInRange(this.visibleOptionEls, this.searchIndex + 1, this.visibleOptionEls.length);
576
- if (!nextMatch) {
577
- // if match can't be found from starting option downwards, search from top
578
- nextMatch = this.findMatchInRange(this.visibleOptionEls, 0, this.searchIndex);
579
- }
580
- if (nextMatch) {
581
- // findMatchInRange still might have returned null, only focus if match found
582
- this.focusOption(nextMatch);
583
- }
584
- this.debouncedClearKeysSoFar();
585
- }
586
- }
587
- findMatchInRange(list, startIndex, endIndex) {
588
- let match = null;
589
- let optionsInRange = list.slice(startIndex, endIndex);
590
- // Find the first option starting with the keysSoFar substring, searching in
591
- // the specified range of options
592
- optionsInRange.forEach((option) => {
593
- const label = option.textContent;
594
- if (!match && label && label.toLowerCase().startsWith(this.keysSoFar)) {
595
- match = option;
596
- }
597
- });
598
- return match;
599
- }
600
- findCorrespondingOption(el) {
601
- // if clone, returns the child wm-option
602
- // if child wm-option, returns clone
603
- const isClone = el.classList.contains("clone");
604
- return isClone
605
- ? this.childOptions[this.cloneOptions.indexOf(el)]
606
- : this.cloneOptions[this.childOptions.indexOf(el)];
607
- }
608
- isElOrChild(el) {
609
- var _a;
610
- // determines whether or not the element is the component, a child of the component, or exists within the component's shadowroot
611
- return el === this.el || this.el.contains(el) || ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(el));
612
- }
613
354
  announceError() {
614
355
  if (this.errorMessage) {
615
356
  setTimeout(() => this.announce(this.errorMessage), 100);
@@ -625,41 +366,8 @@ const Select = class {
625
366
  this.wmSelectBlurred.emit();
626
367
  }
627
368
  }
628
- // on search field or select all. keydown on options is handled via events.
629
- handleKeyDown(ev) {
630
- const el = ev.target;
631
- switch (ev.key) {
632
- case "ArrowDown":
633
- ev.preventDefault();
634
- this.moveDown(ev.target);
635
- break;
636
- case "ArrowUp":
637
- ev.preventDefault();
638
- this.moveUp(ev.target);
639
- break;
640
- case "Escape":
641
- ev.preventDefault();
642
- this.close();
643
- break;
644
- case "Enter":
645
- if (el === this.selectAllEl) {
646
- ev.preventDefault();
647
- this.handleSelectAllClick();
648
- this.close();
649
- }
650
- break;
651
- case " ":
652
- if (el === this.selectAllEl) {
653
- ev.preventDefault();
654
- this.handleSelectAllClick();
655
- }
656
- break;
657
- }
658
- }
659
369
  setButtonText() {
660
- this.displayedOptions = this.childOptions
661
- .filter((x) => x.selected)
662
- .map((y) => (!y.classList.contains("hidden") ? y : this.findCorrespondingOption(y)));
370
+ this.displayedOptions = this.childOptions.filter((x) => x.selected);
663
371
  // handle overflow + counter for multiselect
664
372
  if (this.multiple) {
665
373
  // this is a fixed measurement accounting for the max width of a 3 character overflow counter
@@ -703,21 +411,6 @@ const Select = class {
703
411
  return (index.h("span", null, index.h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
704
412
  }
705
413
  }
706
- renderSearchField() {
707
- return (index.h("div", { class: "search" }, index.h("div", { class: "searchfield-wrapper", ref: (el) => (this.searchFieldWrapperEl = el) }, index.h("div", { class: "icon" }), index.h("input", { ref: (el) => (this.searchFieldEl = el), class: "searchfield", role: "combobox", "aria-controls": "list", "aria-expanded": this.isExpanded ? "true" : "false", onKeyDown: (ev) => this.handleKeyDown(ev), onFocus: () => this.searchFieldWrapperEl.classList.add("focus"), onBlur: (ev) => this.handleSearchFieldBlur(ev), onInput: () => this.debouncedSearch(), placeholder: this.searchPlaceholder }))));
708
- }
709
- renderSearchFailedMessage() {
710
- return index.h("div", { class: "search-results-message" }, this.noResultsFoundMessage);
711
- }
712
- renderSelectAllButton() {
713
- return (index.h("button", { ref: (el) => (this.selectAllEl = el), class: "select-all", onClick: () => this.handleSelectAllClick(), onKeyDown: (ev) => this.handleKeyDown(ev), tabindex: "-1" }, this.allSelected ? this.deselectAllMessage : this.selectAllMessage));
714
- }
715
- renderCloneOptions() {
716
- return Array.from(this.el.children).map((o) => {
717
- const option = o;
718
- return (index.h("wm-option", { class: "clone", subinfo: option.subinfo, selected: option.selected }, option.textContent));
719
- });
720
- }
721
414
  render() {
722
415
  const showSubinfo = !this.multiple && this.selectedOptions.length > 0 && this.selectedOptions[0].subinfo;
723
416
  const buttonProps = {
@@ -729,9 +422,9 @@ const Select = class {
729
422
  ["aria-expanded"]: this.isExpanded ? "true" : "false",
730
423
  onClick: () => (this.isExpanded ? this.close() : this.open()),
731
424
  };
732
- return (index.h(index.Host, { key: 'f099ef79e70921c17419b2ce8a4e917a0579e44f', onBlur: (ev) => this.handleComponentBlur(ev) }, index.h("div", { key: 'e95c845dd404f5518b69145543113e69a40084a6', class: `wrapper ${functions.getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, index.h("div", { key: '65dfe5aaaa9239efb0553ba1d323f1c5dc93b9fb', class: "label-wrapper" }, index.h("label", { key: 'ff406b387e0cd09e46e239f1c80477fe2ee80f24', class: "label", id: "label", htmlFor: "selectbtn" }, this.label,
425
+ return (index.h(index.Host, { onBlur: (ev) => this.handleComponentBlur(ev) }, index.h("div", { class: `wrapper ${functions.getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, index.h("div", { class: "label-wrapper" }, index.h("label", { class: "label", id: "label", htmlFor: "selectbtn" }, this.label,
733
426
  // we can't use aria-required or required attributes because it's invalid on the elements we're using (button controlling a listbox)
734
- this.requiredField ? (index.h("span", { class: "required" }, index.h("span", { class: "sr-only" }, intl.globalMessages.requiredField), index.h("span", { "aria-hidden": "true" }, "*"))) : (""))), index.h("div", { key: '5537fb10791108ac2bda53d3456ec048bb4cc5c4', class: "button-wrapper" }, index.h("button", Object.assign({ key: '7d54c69839a302ead990f41e961cce05be49f83d' }, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), index.h("span", { key: 'dcb786709b87be95c28bfcd37cc8459607939f2f', class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, index.h("span", { key: 'b04bbeab1666ebd4538c859356f1a3a33658c1c5', class: "button-text" }, this.renderButtonText()), showSubinfo && index.h("span", { key: 'c5e9911d91f34c9b7c5becaa9e1127e658fd4607', class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), index.h("div", { key: '24c47d439f6b131880a8bffe94c40539fc13d78f', class: `dropdown ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, this.search && this.renderSearchField(), this.visibleSelectAllButton && this.renderSelectAllButton(), index.h("div", { key: 'acf189fee5add7d0c6150b44ffd9c0c26e05ade7', id: "list", class: "options-wrapper", tabindex: -1, role: "listbox", "aria-multiselectable": this.multiple ? "true" : null, "aria-labelledby": "label", ref: (el) => (this.listboxEl = el) }, this.search && this.filteredOptions.length === 0 && this.renderSearchFailedMessage(), this.multiple && this.renderCloneOptions(), index.h("slot", { key: 'ff17ced6e94d7b893c407ea00ab7243176973eb5' }))), index.h("div", { key: 'a09f44fdf4a100f8eab7b5094fced276023812aa', id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), index.h("div", { key: '9e55b5fdc2324b77d0a8bcf17650d937760dd941', id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
427
+ this.requiredField ? (index.h("span", { class: "required" }, index.h("span", { class: "sr-only" }, intl.globalMessages.requiredField), index.h("span", { "aria-hidden": "true" }, "*"))) : (""))), index.h("div", { class: "button-wrapper" }, index.h("button", Object.assign({}, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), index.h("span", { class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, index.h("span", { class: "button-text" }, this.renderButtonText()), showSubinfo && index.h("span", { class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), index.h("div", { class: `dropdown ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, index.h("priv-option-list", { ref: (el) => (this.optionListEl = el), multiple: this.multiple, search: this.search, selectAll: this.selectAll, searchPlaceholder: this.searchPlaceholder, onOptionListCloseRequested: () => this.close(), onOptionListAllSelected: () => this.wmSelectAllSelected.emit(), onOptionListAllDeselected: () => this.wmSelectAllDeselected.emit() }, index.h("slot", null))), index.h("div", { id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), index.h("div", { id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
735
428
  }
736
429
  static get delegatesFocus() { return true; }
737
430
  get el() { return index.getElement(this); }
@@ -740,7 +433,7 @@ const Select = class {
740
433
  "disabled": ["handleDisabledChange"]
741
434
  }; }
742
435
  };
743
- Select.style = WmSelectStyle0;
436
+ Select.style = wmSelectCss;
744
437
 
745
438
  exports.wm_option = Option;
746
439
  exports.wm_select = Select;