@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
@@ -1,9 +1,8 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, f as forceUpdate } from './index-130e07bb.js';
2
- import { i as intl, d as debounce, t as toBool, a as handleDisabledAttribute, k as shouldOpenUp, y as getTextDir } from './functions-25781571.js';
3
- import { g as globalMessages } from './intl-df3d34d1.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, f as forceUpdate } from './index-558b5a82.js';
2
+ import { i as intl, t as toBool, z as isElOrChild, a as handleDisabledAttribute, k as shouldOpenUp, y as getTextDir } from './functions-dea8b0f6.js';
3
+ import { g as globalMessages } from './intl-417d8b33.js';
4
4
 
5
5
  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}";
6
- const WmOptionStyle0 = wmOptionCss;
7
6
 
8
7
  const Option = class {
9
8
  constructor(hostRef) {
@@ -13,6 +12,7 @@ const Option = class {
13
12
  this.intCloneClicked = createEvent(this, "intCloneClicked", 7);
14
13
  this.wmKeyUpPressed = createEvent(this, "wmKeyUpPressed", 7);
15
14
  this.wmKeyDownPressed = createEvent(this, "wmKeyDownPressed", 7);
15
+ this.wmKeyLeftPressed = createEvent(this, "wmKeyLeftPressed", 7);
16
16
  this.wmEscKeyPressed = createEvent(this, "wmEscKeyPressed", 7);
17
17
  this.wmHomeKeyPressed = createEvent(this, "wmHomeKeyPressed", 7);
18
18
  this.wmEndKeyPressed = createEvent(this, "wmEndKeyPressed", 7);
@@ -31,7 +31,7 @@ const Option = class {
31
31
  if (this.subinfo) {
32
32
  classes.push("hassubinfo");
33
33
  }
34
- if (this.parentSelectEl.multiple) {
34
+ if (this.parentOptionList.multiple) {
35
35
  classes.push("multi-option");
36
36
  }
37
37
  if (!this.el.textContent.toLowerCase().includes(this.searchTerm)) {
@@ -39,11 +39,13 @@ const Option = class {
39
39
  }
40
40
  return classes.join(" ");
41
41
  }
42
- get parentSelectEl() {
43
- var _a;
44
- return ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.nodeName) !== "WM-SELECT"
45
- ? this.el.getRootNode().host
46
- : this.el.parentElement;
42
+ get parentOptionList() {
43
+ if (this.el.classList.contains("clone")) {
44
+ return this.el.closest("priv-option-list");
45
+ }
46
+ else {
47
+ return this.el.assignedSlot.closest("priv-option-list");
48
+ }
47
49
  }
48
50
  handleKeydown(ev) {
49
51
  switch (ev.key) {
@@ -75,6 +77,10 @@ const Option = class {
75
77
  ev.preventDefault();
76
78
  this.wmEndKeyPressed.emit();
77
79
  break;
80
+ case "ArrowLeft":
81
+ ev.preventDefault();
82
+ this.wmKeyLeftPressed.emit(this.el);
83
+ break;
78
84
  default:
79
85
  if (ev.key.length === 1) {
80
86
  ev.preventDefault();
@@ -90,7 +96,7 @@ const Option = class {
90
96
  this.intCloneClicked.emit(this.el); // used to then emit wmOptionSelected from the "real" wm-option
91
97
  }
92
98
  else {
93
- if (this.parentSelectEl.multiple) {
99
+ if (this.parentOptionList.multiple) {
94
100
  this.selected
95
101
  ? this.wmOptionDeselected.emit(this.el)
96
102
  : this.wmOptionSelected.emit(this.el);
@@ -152,10 +158,10 @@ const Option = class {
152
158
  this.syncAriaSelected();
153
159
  this.syncAriaDisabled();
154
160
  this.updateDisabledOnClick();
155
- this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
161
+ this.parentOptionList.addEventListener("optionListSearchChanged", (ev) => this.handleSearch(ev));
156
162
  }
157
163
  render() {
158
- return (h(Host, { key: '6d7f92d3b13121ae8ddffb4d8e6028db2171116a', role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { key: 'd0dccae3c763686b420b0bf16d7bf2880b1cdc67', class: `option-wrapper ${this.parentSelectEl.multiple ? "checkbox" : ""}` }, h("span", { key: '6e1fbd0d49be13883048634cd54d19f19256226d', class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), h("span", { key: 'f57f7c21e833a1c03f8407eaccb0883ef6b3a79a', class: "sr-only" }, this.el.textContent)), h("div", { key: '1256826e0ddc1e3c48141e8c0f6864b3401cacf7', class: "subinfo" }, this.subinfo)));
164
+ return (h(Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { class: `option-wrapper ${this.parentOptionList.multiple ? "checkbox" : ""}` }, h("span", { class: "option-text", "aria-hidden": "true", ref: (el) => (this.textEl = el) }, this.el.textContent), h("span", { class: "sr-only" }, this.el.textContent)), h("div", { class: "subinfo" }, this.subinfo)));
159
165
  }
160
166
  get el() { return getElement(this); }
161
167
  static get watchers() { return {
@@ -163,55 +169,22 @@ const Option = class {
163
169
  "disabled": ["syncAriaDisabled", "updateDisabledOnClick"]
164
170
  }; }
165
171
  };
166
- Option.style = WmOptionStyle0;
172
+ Option.style = wmOptionCss;
167
173
 
168
- 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}";
169
- const WmSelectStyle0 = wmSelectCss;
174
+ 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}";
170
175
 
171
176
  const Select = class {
172
177
  constructor(hostRef) {
173
178
  registerInstance(this, hostRef);
174
179
  this.wmSelectDidLoad = createEvent(this, "wmSelectDidLoad", 7);
175
180
  this.wmSelectBlurred = createEvent(this, "wmSelectBlurred", 7);
176
- this.wmSelectSearchChanged = createEvent(this, "wmSelectSearchChanged", 7);
177
181
  this.wmSelectAllSelected = createEvent(this, "wmSelectAllSelected", 7);
178
182
  this.wmSelectAllDeselected = createEvent(this, "wmSelectAllDeselected", 7);
179
- this.selectAllMessage = intl.formatMessage({
180
- id: "select.selectAll",
181
- defaultMessage: "Select All",
182
- });
183
- this.deselectAllMessage = intl.formatMessage({
184
- id: "select.deselectAll",
185
- defaultMessage: "Deselect All",
186
- });
187
- this.allOptionsSelectedMessage = intl.formatMessage({
188
- id: "select.allOptionsSelected",
189
- defaultMessage: "All options selected",
190
- });
191
- this.allOptionsDeselectedMessage = intl.formatMessage({
192
- id: "select.allOptionsDeselected",
193
- defaultMessage: "All options deselected",
194
- });
195
- this.keysSoFar = "";
196
- this.searchIndex = 0;
197
183
  this.openUp = false;
198
184
  //////////////////////////////////////
199
- //////////////////////////////////////
200
185
  // for multiselect button text
201
186
  this.overflowCount = 0;
202
187
  this.displayedOptions = [];
203
- this.debouncedClearKeysSoFar = debounce(() => {
204
- this.keysSoFar = "";
205
- }, 500);
206
- this.debouncedSearch = debounce(() => {
207
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
208
- if (this.filteredOptions.length) {
209
- this.announce(this.resultsFoundMessage);
210
- }
211
- else {
212
- this.announce(this.noResultsFoundMessage);
213
- }
214
- }, 150);
215
188
  this.disabled = false;
216
189
  this.maxHeight = undefined;
217
190
  this.label = undefined;
@@ -242,85 +215,33 @@ const Select = class {
242
215
  get childOptions() {
243
216
  return Array.from(this.el.querySelectorAll("wm-option"));
244
217
  }
245
- get cloneOptions() {
246
- return Array.from(this.el.shadowRoot.querySelectorAll("wm-option"));
247
- }
248
- get allOptionEls() {
249
- // this includes both slotted wm-options and internally created wm-options
250
- return this.cloneOptions.concat(this.childOptions);
251
- }
252
- get visibleOptionEls() {
253
- return this.allOptionEls.filter((option) => !option.classList.contains("hidden") && !option.classList.contains("filtered-out"));
254
- }
255
218
  get isDisabled() {
256
219
  // string "false" needs to be treated as bool False because react wrappers convert bool to string.
257
220
  return toBool(this.disabled);
258
221
  }
259
- //////////////////////////////////////
260
- // for search variants
261
- get searchTerm() {
262
- return this.searchFieldEl ? this.searchFieldEl.value : "";
263
- }
264
- get filteredOptions() {
265
- return this.childOptions.filter((option) => { var _a; return (_a = option.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(this.searchTerm.toLowerCase()); });
266
- }
267
222
  get selectedOptions() {
268
223
  return Array.from(this.el.querySelectorAll("wm-option")).filter((x) => x.selected);
269
224
  }
270
225
  get allSelected() {
271
226
  return this.childOptions.every((option) => option.selected);
272
227
  }
273
- get visibleSelectAllButton() {
274
- return this.selectAll && this.multiple && this.searchTerm === "";
275
- }
276
228
  //////////////////////////////////////
277
- get resultsFoundMessage() {
278
- return intl.formatMessage({
279
- id: "select.searchResultsFound",
280
- defaultMessage: "{numResults, plural, one {1 option found} other {# options found}}",
281
- description: "The message read by the screen reader, indicating how many results a search returned",
282
- }, { numResults: this.filteredOptions.length });
283
- }
284
- get noResultsFoundMessage() {
285
- return intl.formatMessage({
286
- id: "select.noSearchResults",
287
- defaultMessage: "No results found. Please try your search again.",
288
- description: "The message displayed when no options pass the search filter",
289
- });
290
- }
291
- handleOptionSelection(ev) {
292
- this.focusOption(ev.detail);
229
+ handleOptionSelection() {
293
230
  if (!this.multiple) {
294
231
  this.close();
295
232
  }
296
233
  }
297
- handleOptionCloneSelection(ev) {
298
- const correspondingOption = this.findCorrespondingOption(ev.detail);
299
- correspondingOption.click();
300
- }
301
234
  handleChildEnter() {
302
235
  // only occurs for multiselects. handle the click, then close
303
236
  this.close();
304
237
  }
305
- handleChildUp(ev) {
306
- this.moveUp(ev.detail);
307
- }
308
- handleChildDown(ev) {
309
- this.moveDown(ev.detail);
310
- }
311
- moveToFirstOption() {
312
- this.focusOption(this.visibleOptionEls[0]);
313
- }
314
- moveToLastOption() {
315
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
316
- }
317
238
  closePopupOnEscape() {
318
239
  this.close();
319
240
  }
320
241
  handleOptionBlur(ev) {
321
242
  // if the Option is blurred to something other than the component emit a blur event with the appropriate relatedTarget
322
243
  // keeps our component's blur events accurate, and closes when focusing browser address bar
323
- if (!this.isElOrChild(ev.detail.relatedTarget)) {
244
+ if (!isElOrChild(this.el, ev.detail.relatedTarget)) {
324
245
  const event = new CustomEvent("blur");
325
246
  // @ts-ignore
326
247
  event.relatedTarget = ev.detail.relatedTarget;
@@ -328,34 +249,16 @@ const Select = class {
328
249
  }
329
250
  }
330
251
  handleClick(ev) {
331
- if (!this.isElOrChild(ev.target)) {
252
+ if (!isElOrChild(this.el, ev.target)) {
332
253
  this.close();
333
254
  }
334
255
  }
335
- handleSelectAllClick() {
336
- this.allSelected ? this.deselectAllOptions() : this.selectAllOptions();
337
- }
338
- selectAllOptions() {
339
- this.announce(this.allOptionsSelectedMessage);
340
- this.wmSelectAllSelected.emit();
341
- }
342
- deselectAllOptions() {
343
- this.announce(this.allOptionsDeselectedMessage);
344
- this.wmSelectAllDeselected.emit();
345
- }
346
256
  handleButtonBlur(ev) {
347
- if (this.isElOrChild(ev.relatedTarget)) {
257
+ if (isElOrChild(this.el, ev.relatedTarget)) {
348
258
  // do not emit a blur event when opening the dropdown and focusing the Options
349
259
  ev.stopPropagation();
350
260
  }
351
261
  }
352
- handleSearchFieldBlur(ev) {
353
- this.searchFieldWrapperEl.classList.remove("focus");
354
- if (this.isElOrChild(ev.relatedTarget)) {
355
- // do not emit a blur event when moving from searchfield to options
356
- ev.stopPropagation();
357
- }
358
- }
359
262
  handleKey(ev) {
360
263
  switch (ev.key) {
361
264
  case "ArrowDown":
@@ -392,6 +295,7 @@ const Select = class {
392
295
  // on update of children or children selected state, reset button text and rerender
393
296
  this.setButtonText();
394
297
  forceUpdate(this.el);
298
+ this.optionListEl.handleChildChange(_);
395
299
  }
396
300
  componentDidLoad() {
397
301
  this.wmSelectDidLoad.emit();
@@ -399,55 +303,11 @@ const Select = class {
399
303
  forceUpdate(this.el);
400
304
  // Dev can overwrite the max-height rule set in the Sass file
401
305
  if (this.maxHeight) {
402
- this.listboxEl.style.maxHeight = this.maxHeight;
403
- }
404
- if (this.multiple) {
405
- this.updateOptionVisibility();
306
+ // this.listboxEl.style.maxHeight = this.maxHeight;
307
+ this.dropdownEl.style.maxHeight = this.maxHeight;
406
308
  }
407
309
  this.setButtonText();
408
310
  }
409
- componentWillUpdate() {
410
- if (this.multiple) {
411
- // find last visible clone option and apply .last class
412
- const visibleCloneOptions = this.visibleOptionEls.filter((option) => option.classList.contains("clone"));
413
- // if all options are clones, nothing to separate from
414
- const allClones = visibleCloneOptions.length === this.visibleOptionEls.length;
415
- visibleCloneOptions.forEach((option, idx) => {
416
- if (!allClones && idx === visibleCloneOptions.length - 1) {
417
- option.classList.add("last");
418
- }
419
- else {
420
- option.classList.remove("last");
421
- }
422
- });
423
- }
424
- }
425
- moveUp(el) {
426
- const focusableEls = this.visibleOptionEls;
427
- if (this.selectAllEl) {
428
- focusableEls.unshift(this.selectAllEl);
429
- }
430
- if (this.searchFieldEl) {
431
- focusableEls.unshift(this.searchFieldEl);
432
- }
433
- const prevEl = focusableEls[focusableEls.indexOf(el) - 1] || focusableEls[focusableEls.length - 1];
434
- if (prevEl) {
435
- this.focusOption(prevEl);
436
- }
437
- }
438
- moveDown(el) {
439
- const focusableEls = this.visibleOptionEls;
440
- if (this.selectAllEl) {
441
- focusableEls.unshift(this.selectAllEl);
442
- }
443
- if (this.searchFieldEl) {
444
- focusableEls.unshift(this.searchFieldEl);
445
- }
446
- const nextEl = focusableEls[focusableEls.indexOf(el) + 1] || focusableEls[0];
447
- if (nextEl) {
448
- this.focusOption(nextEl);
449
- }
450
- }
451
311
  open(optionToSelect) {
452
312
  if (!this.isDisabled) {
453
313
  const elHeight = this.el.clientHeight;
@@ -460,60 +320,22 @@ const Select = class {
460
320
  this.isExpanded = true;
461
321
  this.dropdownEl.classList.remove("hidden");
462
322
  window.requestAnimationFrame(() => {
463
- switch (optionToSelect) {
464
- case "next":
465
- // search variant focuses search field
466
- // all others focus option "after" last selected option (this can be the first option)
467
- if (this.search) {
468
- this.searchFieldEl.focus();
469
- this.listboxEl.scrollTop = 0;
470
- }
471
- else {
472
- this.moveDown(this.visibleOptionEls.filter((x) => x.selected).slice(-1)[0]);
473
- }
474
- break;
475
- case "previous":
476
- // search variant focuses last option
477
- // all others focus option "above" first selected option (this can be the last option)
478
- if (this.search) {
479
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
480
- }
481
- else {
482
- this.moveUp(this.visibleOptionEls.filter((x) => x.selected)[0]);
483
- }
484
- break;
485
- default:
486
- // search variant focuses search field
487
- // all others focus the selected option
488
- // if no option is selected (empty multiselect), focuses first option
489
- if (this.search) {
490
- this.searchFieldEl.focus();
491
- this.listboxEl.scrollTop = 0;
492
- }
493
- else if (this.selectedOptions.length > 0) {
494
- this.focusOption(this.visibleOptionEls.filter((x) => x.selected)[0]);
495
- }
496
- else {
497
- this.focusOption(this.visibleOptionEls[0]);
498
- }
499
- break;
500
- }
323
+ this.optionListEl.handleInitialFocus(optionToSelect);
501
324
  });
502
325
  }
503
326
  }
504
327
  close(returnFocus = true) {
505
328
  if (this.isExpanded) {
506
329
  this.isExpanded = false;
507
- this.allOptionEls.map((i) => (i.focused = false));
330
+ this.optionListEl.unfocusAll();
508
331
  window.setTimeout(() => {
509
332
  this.dropdownEl.classList.add("hidden");
510
- if (this.multiple) {
511
- this.updateOptionVisibility();
333
+ if (this.optionListEl.multiple) {
334
+ this.optionListEl.updateOptionVisibility();
512
335
  }
513
336
  // clear search field, reset filtered / bolded state of wm-options
514
337
  if (this.search) {
515
- this.searchFieldEl.value = "";
516
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
338
+ this.optionListEl.clearSearch();
517
339
  }
518
340
  // Returns focus to button after popup closes (no need if user is tabbing)
519
341
  // Delay is necessary for screenreader to get new expanded state before focus
@@ -525,87 +347,6 @@ const Select = class {
525
347
  }, 150);
526
348
  }
527
349
  }
528
- updateOptionVisibility() {
529
- // this runs for search multiselects, where selected options are rendered at the top of the dropdown list
530
- // slotted wm-options are hidden if selected, and clone wm-options are made visible if selected
531
- this.childOptions.forEach((option, idx) => {
532
- const cloneOption = this.cloneOptions[idx];
533
- if (option.selected) {
534
- option.classList.add("hidden");
535
- cloneOption.classList.remove("hidden");
536
- }
537
- else {
538
- option.classList.remove("hidden");
539
- cloneOption.classList.add("hidden");
540
- }
541
- });
542
- }
543
- focusOption(option) {
544
- this.allOptionEls.forEach((i) => (i.focused = i === option));
545
- // option must be scrolledIntoView before focused
546
- // 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
547
- option.scrollIntoView({ block: "nearest" });
548
- // 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))
549
- // when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to
550
- // 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
551
- window.setTimeout(() => option.scrollIntoView({ block: "nearest" }), 60);
552
- option.focus();
553
- }
554
- findAndFocusOption(ev) {
555
- const letterPressed = ev.detail.letter.toLowerCase();
556
- const optionPressed = ev.detail.optionEl;
557
- if (!this.keysSoFar && letterPressed == " ") {
558
- // if the first key entered is space, treat as a click. Otherwise include in
559
- optionPressed.click();
560
- }
561
- else {
562
- if (!this.keysSoFar) {
563
- // if first character entered, set currently focused option as the starting index for the search
564
- this.visibleOptionEls.forEach((option, idx) => {
565
- if (option.focused) {
566
- this.searchIndex = idx;
567
- }
568
- });
569
- }
570
- this.keysSoFar += letterPressed;
571
- let nextMatch = this.findMatchInRange(this.visibleOptionEls, this.searchIndex + 1, this.visibleOptionEls.length);
572
- if (!nextMatch) {
573
- // if match can't be found from starting option downwards, search from top
574
- nextMatch = this.findMatchInRange(this.visibleOptionEls, 0, this.searchIndex);
575
- }
576
- if (nextMatch) {
577
- // findMatchInRange still might have returned null, only focus if match found
578
- this.focusOption(nextMatch);
579
- }
580
- this.debouncedClearKeysSoFar();
581
- }
582
- }
583
- findMatchInRange(list, startIndex, endIndex) {
584
- let match = null;
585
- let optionsInRange = list.slice(startIndex, endIndex);
586
- // Find the first option starting with the keysSoFar substring, searching in
587
- // the specified range of options
588
- optionsInRange.forEach((option) => {
589
- const label = option.textContent;
590
- if (!match && label && label.toLowerCase().startsWith(this.keysSoFar)) {
591
- match = option;
592
- }
593
- });
594
- return match;
595
- }
596
- findCorrespondingOption(el) {
597
- // if clone, returns the child wm-option
598
- // if child wm-option, returns clone
599
- const isClone = el.classList.contains("clone");
600
- return isClone
601
- ? this.childOptions[this.cloneOptions.indexOf(el)]
602
- : this.cloneOptions[this.childOptions.indexOf(el)];
603
- }
604
- isElOrChild(el) {
605
- var _a;
606
- // determines whether or not the element is the component, a child of the component, or exists within the component's shadowroot
607
- return el === this.el || this.el.contains(el) || ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(el));
608
- }
609
350
  announceError() {
610
351
  if (this.errorMessage) {
611
352
  setTimeout(() => this.announce(this.errorMessage), 100);
@@ -621,41 +362,8 @@ const Select = class {
621
362
  this.wmSelectBlurred.emit();
622
363
  }
623
364
  }
624
- // on search field or select all. keydown on options is handled via events.
625
- handleKeyDown(ev) {
626
- const el = ev.target;
627
- switch (ev.key) {
628
- case "ArrowDown":
629
- ev.preventDefault();
630
- this.moveDown(ev.target);
631
- break;
632
- case "ArrowUp":
633
- ev.preventDefault();
634
- this.moveUp(ev.target);
635
- break;
636
- case "Escape":
637
- ev.preventDefault();
638
- this.close();
639
- break;
640
- case "Enter":
641
- if (el === this.selectAllEl) {
642
- ev.preventDefault();
643
- this.handleSelectAllClick();
644
- this.close();
645
- }
646
- break;
647
- case " ":
648
- if (el === this.selectAllEl) {
649
- ev.preventDefault();
650
- this.handleSelectAllClick();
651
- }
652
- break;
653
- }
654
- }
655
365
  setButtonText() {
656
- this.displayedOptions = this.childOptions
657
- .filter((x) => x.selected)
658
- .map((y) => (!y.classList.contains("hidden") ? y : this.findCorrespondingOption(y)));
366
+ this.displayedOptions = this.childOptions.filter((x) => x.selected);
659
367
  // handle overflow + counter for multiselect
660
368
  if (this.multiple) {
661
369
  // this is a fixed measurement accounting for the max width of a 3 character overflow counter
@@ -699,21 +407,6 @@ const Select = class {
699
407
  return (h("span", null, h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
700
408
  }
701
409
  }
702
- renderSearchField() {
703
- return (h("div", { class: "search" }, h("div", { class: "searchfield-wrapper", ref: (el) => (this.searchFieldWrapperEl = el) }, h("div", { class: "icon" }), 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 }))));
704
- }
705
- renderSearchFailedMessage() {
706
- return h("div", { class: "search-results-message" }, this.noResultsFoundMessage);
707
- }
708
- renderSelectAllButton() {
709
- return (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));
710
- }
711
- renderCloneOptions() {
712
- return Array.from(this.el.children).map((o) => {
713
- const option = o;
714
- return (h("wm-option", { class: "clone", subinfo: option.subinfo, selected: option.selected }, option.textContent));
715
- });
716
- }
717
410
  render() {
718
411
  const showSubinfo = !this.multiple && this.selectedOptions.length > 0 && this.selectedOptions[0].subinfo;
719
412
  const buttonProps = {
@@ -725,9 +418,9 @@ const Select = class {
725
418
  ["aria-expanded"]: this.isExpanded ? "true" : "false",
726
419
  onClick: () => (this.isExpanded ? this.close() : this.open()),
727
420
  };
728
- return (h(Host, { key: 'f099ef79e70921c17419b2ce8a4e917a0579e44f', onBlur: (ev) => this.handleComponentBlur(ev) }, h("div", { key: 'e95c845dd404f5518b69145543113e69a40084a6', class: `wrapper ${getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, h("div", { key: '65dfe5aaaa9239efb0553ba1d323f1c5dc93b9fb', class: "label-wrapper" }, h("label", { key: 'ff406b387e0cd09e46e239f1c80477fe2ee80f24', class: "label", id: "label", htmlFor: "selectbtn" }, this.label,
421
+ return (h(Host, { onBlur: (ev) => this.handleComponentBlur(ev) }, h("div", { class: `wrapper ${getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, h("div", { class: "label-wrapper" }, h("label", { class: "label", id: "label", htmlFor: "selectbtn" }, this.label,
729
422
  // we can't use aria-required or required attributes because it's invalid on the elements we're using (button controlling a listbox)
730
- this.requiredField ? (h("span", { class: "required" }, h("span", { class: "sr-only" }, globalMessages.requiredField), h("span", { "aria-hidden": "true" }, "*"))) : (""))), h("div", { key: '5537fb10791108ac2bda53d3456ec048bb4cc5c4', class: "button-wrapper" }, h("button", Object.assign({ key: '7d54c69839a302ead990f41e961cce05be49f83d' }, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), h("span", { key: 'dcb786709b87be95c28bfcd37cc8459607939f2f', class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, h("span", { key: 'b04bbeab1666ebd4538c859356f1a3a33658c1c5', class: "button-text" }, this.renderButtonText()), showSubinfo && h("span", { key: 'c5e9911d91f34c9b7c5becaa9e1127e658fd4607', class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), 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(), 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(), h("slot", { key: 'ff17ced6e94d7b893c407ea00ab7243176973eb5' }))), h("div", { key: 'a09f44fdf4a100f8eab7b5094fced276023812aa', id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), h("div", { key: '9e55b5fdc2324b77d0a8bcf17650d937760dd941', id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
423
+ this.requiredField ? (h("span", { class: "required" }, h("span", { class: "sr-only" }, globalMessages.requiredField), h("span", { "aria-hidden": "true" }, "*"))) : (""))), h("div", { class: "button-wrapper" }, h("button", Object.assign({}, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev), onFocus: () => this.close() }), h("span", { class: `overflowcontrol ${showSubinfo ? "hassubinfo" : ""}` }, h("span", { class: "button-text" }, this.renderButtonText()), showSubinfo && h("span", { class: "subinfo" }, this.selectedOptions[0].subinfo)), this.renderOverflowCount()), h("div", { class: `dropdown ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, 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() }, h("slot", null))), h("div", { id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), h("div", { id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
731
424
  }
732
425
  static get delegatesFocus() { return true; }
733
426
  get el() { return getElement(this); }
@@ -736,6 +429,6 @@ const Select = class {
736
429
  "disabled": ["handleDisabledChange"]
737
430
  }; }
738
431
  };
739
- Select.style = WmSelectStyle0;
432
+ Select.style = wmSelectCss;
740
433
 
741
434
  export { Option as wm_option, Select as wm_select };
@@ -1,8 +1,7 @@
1
- import { r as registerInstance, c as createEvent, h, g as getElement } from './index-130e07bb.js';
2
- import { d as debounce } from './functions-25781571.js';
1
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-558b5a82.js';
2
+ import { d as debounce } from './functions-dea8b0f6.js';
3
3
 
4
4
  const wmPaginationCss = ":host,wm-pagination{--wmcolor-pagination-arrow-disabled:var(--wmcolor-interactive-disabled);--wmcolor-pagination-arrow:var(--wmcolor-interactive);--wmcolor-pagination-arrow:var(--wmcolor-interactive);--wmcolor-pagination-button-text-disabled:var(--wmcolor-interactive-disabled);--wmcolor-pagination-button-text:var(--wmcolor-interactive);--wmcolor-pagination-current-background-hover:var(--wmcolor-interactive-hover);--wmcolor-pagination-current-background:var(--wmcolor-interactive);--wmcolor-pagination-current-text:var(--wmcolor-interactive-text);--wmcolor-pagination-focus:var(--wmcolor-interactive-focus);display:block}nav .largescreen,nav .smallscreen{margin-bottom:0.625rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-ms-flex-pack:flex-end;-webkit-justify-content:flex-end;justify-content:flex-end;font-size:0.875rem}nav .largescreen .pageview,nav .smallscreen .pageview{font-size:0.875rem;margin:0 0.625rem}nav .largescreen .paginationbtn,nav .smallscreen .paginationbtn{position:relative;-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none;border:none;color:var(--wmcolor-pagination-button-text);background-color:transparent;margin:0;padding:0;height:2.5rem;width:2.5rem;font-family:inherit;letter-spacing:0.3px;font-size:0.875rem;font-weight:500;cursor:pointer;text-transform:none;border-radius:50%}nav .largescreen .paginationbtn svg *,nav .smallscreen .paginationbtn svg *{fill:var(--wmcolor-pagination-arrow)}nav .largescreen .paginationbtn:hover:not([aria-current=page]):not([disabled]),nav .smallscreen .paginationbtn:hover:not([aria-current=page]):not([disabled]){text-decoration:underline}nav .largescreen .paginationbtn:focus,nav .smallscreen .paginationbtn:focus{outline:none}nav .largescreen .paginationbtn::-moz-focus-inner,nav .smallscreen .paginationbtn::-moz-focus-inner{border:0;outline:none}nav .largescreen .paginationbtn[disabled],nav .smallscreen .paginationbtn[disabled]{color:var(--wmcolor-pagination-button-text-disabled);pointer-events:none}nav .largescreen .paginationbtn[disabled] svg *,nav .smallscreen .paginationbtn[disabled] svg *{fill:var(--wmcolor-pagination-arrow-disabled)}nav .largescreen .previousbtn,nav .smallscreen .previousbtn{margin-right:0.625rem}nav .largescreen .nextbtn,nav .smallscreen .nextbtn{margin-left:0.625rem;margin-right:0}nav .largescreen .previousbtn,nav .largescreen .nextbtn,nav .smallscreen .previousbtn,nav .smallscreen .nextbtn{width:auto !important;border-radius:unset;-ms-transition:none;-webkit-transition:none;-moz-transition:none;transition:none}nav .largescreen .ellipsis,nav .smallscreen .ellipsis{display:inline-block;width:2.5rem;text-align:center}nav .largescreen .paginationbtn:focus-visible,nav .smallscreen .paginationbtn:focus-visible{outline:3px solid var(--wmcolor-interactive-focus);outline-offset:-2px}nav .largescreen .paginationbtn:focus-visible.previousbtn:before,nav .smallscreen .paginationbtn:focus-visible.previousbtn:before{left:0 !important}nav .largescreen .paginationbtn:focus-visible.nextbtn:before,nav .smallscreen .paginationbtn:focus-visible.nextbtn:before{left:0 !important}nav .largescreen .paginationbtn:focus-visible[aria-current=page],nav .largescreen .paginationbtn:focus-visible.previousbtn,nav .largescreen .paginationbtn:focus-visible.nextbtn,nav .smallscreen .paginationbtn:focus-visible[aria-current=page],nav .smallscreen .paginationbtn:focus-visible.previousbtn,nav .smallscreen .paginationbtn:focus-visible.nextbtn{outline-offset:2px}nav .largescreen :focus-visible:not([aria-current=page]).previousbtn:focus:before{width:56px !important}nav .largescreen :focus-visible:not([aria-current=page]).nextbtn:focus:before{width:32px !important}nav .largescreen .paginationbtn[aria-current=page]{-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;border-radius:50%;-webkit-box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);box-shadow:0 0 4px 0 rgba(0, 0, 0, 0.14), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);background:var(--wmcolor-pagination-current-background);color:var(--wmcolor-pagination-current-text)}nav .largescreen .paginationbtn[aria-current=page]:hover{background:var(--wmcolor-pagination-current-background-hover)}.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}";
5
- const WmPaginationStyle0 = wmPaginationCss;
6
5
 
7
6
  const Pagination = class {
8
7
  constructor(hostRef) {
@@ -158,7 +157,7 @@ const Pagination = class {
158
157
  render() {
159
158
  return (
160
159
  // do not render the component if there's only one page
161
- this.totalItems > this.itemsPerPage && (h("nav", { key: '5c750d2aa90adcbb709fb5007862401e11e8d23d', "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { key: 'be58da3d786e0ed7455b762f4273bbad08755196', id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
160
+ this.totalItems > this.itemsPerPage && (h("nav", { "aria-label": `Pagination Navigation. ${this.getCurrentPagesInView()}. Current page, ${this.currentPage}.` }, this.isLargeSize ? this.renderLarge() : this.renderSmall(), h("div", { id: "status", class: "sr-only", "aria-live": "polite", "aria-relevant": "text", "aria-atomic": "true" }, this.srAnnouncement))));
162
161
  }
163
162
  static get delegatesFocus() { return true; }
164
163
  get el() { return getElement(this); }
@@ -167,6 +166,6 @@ const Pagination = class {
167
166
  "itemsPerPage": ["calculateTotalPages"]
168
167
  }; }
169
168
  };
170
- Pagination.style = WmPaginationStyle0;
169
+ Pagination.style = wmPaginationCss;
171
170
 
172
171
  export { Pagination as wm_pagination };