@watermarkinsights/ripple 5.6.0 → 5.7.0-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/dist/cjs/{chartFunctions-6fd43417.js → chartFunctions-995023b1.js} +1 -1
  2. package/dist/cjs/{functions-04149f6d.js → functions-e24249e6.js} +6 -0
  3. package/dist/cjs/{global-4a315ae6.js → global-d996c674.js} +1 -1
  4. package/dist/cjs/index-e86c28b6.js +12 -0
  5. package/dist/cjs/{intl-b1e99809.js → intl-5aeba788.js} +1 -1
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/priv-calendar.cjs.entry.js +1 -1
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +1 -1
  9. package/dist/cjs/priv-option-list.cjs.entry.js +410 -0
  10. package/dist/cjs/ripple.cjs.js +2 -2
  11. package/dist/cjs/wm-action-menu_2.cjs.entry.js +1 -1
  12. package/dist/cjs/wm-button.cjs.entry.js +1 -1
  13. package/dist/cjs/wm-chart.cjs.entry.js +3 -3
  14. package/dist/cjs/wm-date-range.cjs.entry.js +1 -1
  15. package/dist/cjs/wm-datepicker.cjs.entry.js +1 -1
  16. package/dist/cjs/wm-file.cjs.entry.js +1 -1
  17. package/dist/cjs/wm-input.cjs.entry.js +2 -2
  18. package/dist/cjs/wm-line-chart.cjs.entry.js +3 -3
  19. package/dist/cjs/wm-modal-header.cjs.entry.js +2 -2
  20. package/dist/cjs/wm-modal.cjs.entry.js +2 -2
  21. package/dist/cjs/wm-navigation_3.cjs.entry.js +2 -2
  22. package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
  23. package/dist/cjs/wm-nested-select.cjs.entry.js +308 -0
  24. package/dist/cjs/wm-optgroup.cjs.entry.js +67 -0
  25. package/dist/cjs/wm-option_2.cjs.entry.js +38 -343
  26. package/dist/cjs/wm-pagination.cjs.entry.js +1 -1
  27. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +2 -2
  28. package/dist/cjs/wm-search.cjs.entry.js +2 -2
  29. package/dist/cjs/wm-snackbar.cjs.entry.js +2 -2
  30. package/dist/cjs/wm-tab-item_3.cjs.entry.js +1 -1
  31. package/dist/cjs/wm-tag-input.cjs.entry.js +2 -2
  32. package/dist/cjs/wm-tag-option.cjs.entry.js +1 -1
  33. package/dist/cjs/wm-textarea.cjs.entry.js +2 -2
  34. package/dist/cjs/wm-timepicker.cjs.entry.js +1 -1
  35. package/dist/cjs/wm-toggletip.cjs.entry.js +1 -1
  36. package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
  37. package/dist/collection/collection-manifest.json +5 -2
  38. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +131 -0
  39. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +785 -0
  40. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +420 -0
  41. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +588 -0
  42. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +51 -0
  43. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +235 -0
  44. package/dist/collection/components/{wm-option → selects/wm-option}/wm-option.css +1 -1
  45. package/dist/collection/components/{wm-option → selects/wm-option}/wm-option.js +30 -9
  46. package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.css +5 -72
  47. package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.js +20 -387
  48. package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.spec.js +61 -61
  49. package/dist/collection/components/wm-modal/wm-modal.js +1 -1
  50. package/dist/collection/dev/nested-select.js +36 -0
  51. package/dist/collection/global/functions.js +5 -0
  52. package/dist/esm/{chartFunctions-f5eb7f59.js → chartFunctions-dfcb1edf.js} +1 -1
  53. package/dist/esm/{functions-cf37f81f.js → functions-b791a892.js} +6 -1
  54. package/dist/esm/{global-016b76a8.js → global-dcf80bdb.js} +1 -1
  55. package/dist/esm/index-558b5a82.js +12 -0
  56. package/dist/esm/{intl-c72b75dc.js → intl-f2f7ce8b.js} +1 -1
  57. package/dist/esm/loader.js +2 -2
  58. package/dist/esm/priv-calendar.entry.js +1 -1
  59. package/dist/esm/priv-chart-popover.entry.js +1 -1
  60. package/dist/esm/priv-option-list.entry.js +406 -0
  61. package/dist/esm/ripple.js +2 -2
  62. package/dist/esm/wm-action-menu_2.entry.js +1 -1
  63. package/dist/esm/wm-button.entry.js +1 -1
  64. package/dist/esm/wm-chart.entry.js +3 -3
  65. package/dist/esm/wm-date-range.entry.js +1 -1
  66. package/dist/esm/wm-datepicker.entry.js +1 -1
  67. package/dist/esm/wm-file.entry.js +1 -1
  68. package/dist/esm/wm-input.entry.js +2 -2
  69. package/dist/esm/wm-line-chart.entry.js +3 -3
  70. package/dist/esm/wm-modal-header.entry.js +2 -2
  71. package/dist/esm/wm-modal.entry.js +2 -2
  72. package/dist/esm/wm-navigation_3.entry.js +2 -2
  73. package/dist/esm/wm-navigator.entry.js +1 -1
  74. package/dist/esm/wm-nested-select.entry.js +304 -0
  75. package/dist/esm/wm-optgroup.entry.js +63 -0
  76. package/dist/esm/wm-option_2.entry.js +38 -343
  77. package/dist/esm/wm-pagination.entry.js +1 -1
  78. package/dist/esm/wm-progress-indicator_3.entry.js +2 -2
  79. package/dist/esm/wm-search.entry.js +2 -2
  80. package/dist/esm/wm-snackbar.entry.js +2 -2
  81. package/dist/esm/wm-tab-item_3.entry.js +1 -1
  82. package/dist/esm/wm-tag-input.entry.js +2 -2
  83. package/dist/esm/wm-tag-option.entry.js +1 -1
  84. package/dist/esm/wm-textarea.entry.js +2 -2
  85. package/dist/esm/wm-timepicker.entry.js +1 -1
  86. package/dist/esm/wm-toggletip.entry.js +1 -1
  87. package/dist/esm/wm-uploader.entry.js +2 -2
  88. package/dist/esm-es5/{chartFunctions-f5eb7f59.js → chartFunctions-dfcb1edf.js} +1 -1
  89. package/dist/esm-es5/{functions-cf37f81f.js → functions-b791a892.js} +1 -1
  90. package/dist/esm-es5/global-dcf80bdb.js +1 -0
  91. package/dist/esm-es5/index-558b5a82.js +1 -1
  92. package/dist/esm-es5/{intl-c72b75dc.js → intl-f2f7ce8b.js} +1 -1
  93. package/dist/esm-es5/loader.js +1 -1
  94. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  95. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  96. package/dist/esm-es5/priv-option-list.entry.js +1 -0
  97. package/dist/esm-es5/ripple.js +1 -1
  98. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  99. package/dist/esm-es5/wm-button.entry.js +1 -1
  100. package/dist/esm-es5/wm-chart.entry.js +1 -1
  101. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  102. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  103. package/dist/esm-es5/wm-file.entry.js +1 -1
  104. package/dist/esm-es5/wm-input.entry.js +1 -1
  105. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  106. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  107. package/dist/esm-es5/wm-modal.entry.js +1 -1
  108. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  109. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  110. package/dist/esm-es5/wm-nested-select.entry.js +1 -0
  111. package/dist/esm-es5/wm-optgroup.entry.js +1 -0
  112. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  113. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  114. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  115. package/dist/esm-es5/wm-search.entry.js +1 -1
  116. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  117. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  118. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  119. package/dist/esm-es5/wm-tag-option.entry.js +1 -1
  120. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  121. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  122. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  123. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  124. package/dist/ripple/{p-2d0e4020.system.entry.js → p-0b1c6965.system.entry.js} +1 -1
  125. package/dist/ripple/p-0c259c1a.system.entry.js +1 -0
  126. package/dist/ripple/{p-2ccf8450.system.entry.js → p-1389302e.system.entry.js} +1 -1
  127. package/dist/ripple/{p-20a800a7.entry.js → p-13f51c06.entry.js} +1 -1
  128. package/dist/ripple/{p-f4b64ded.entry.js → p-149a22bf.entry.js} +1 -1
  129. package/dist/ripple/{p-76825602.js → p-16f65bf4.js} +1 -1
  130. package/dist/ripple/p-1c170fb3.entry.js +1 -0
  131. package/dist/ripple/{p-3ea0e27c.entry.js → p-1e625a5e.entry.js} +1 -1
  132. package/dist/ripple/{p-31094930.entry.js → p-215793a4.entry.js} +1 -1
  133. package/dist/ripple/{p-fb229776.js → p-21d372ed.js} +1 -1
  134. package/dist/ripple/{p-24103be5.entry.js → p-236af552.entry.js} +1 -1
  135. package/dist/ripple/{p-f177d841.entry.js → p-2e79fa49.entry.js} +1 -1
  136. package/dist/ripple/{p-ed1971ff.system.entry.js → p-30b905eb.system.entry.js} +1 -1
  137. package/dist/ripple/{p-86d81e42.entry.js → p-3d50db36.entry.js} +1 -1
  138. package/dist/ripple/{p-53519eed.system.entry.js → p-3deaf4d9.system.entry.js} +1 -1
  139. package/dist/ripple/{p-5f793375.system.entry.js → p-3e415c49.system.entry.js} +1 -1
  140. package/dist/ripple/{p-0b570b66.entry.js → p-41550baa.entry.js} +1 -1
  141. package/dist/ripple/p-45dc49e8.entry.js +1 -0
  142. package/dist/ripple/{p-508362c5.entry.js → p-45f9ad09.entry.js} +1 -1
  143. package/dist/ripple/p-50388b6f.system.entry.js +1 -0
  144. package/dist/ripple/{p-dc7a6037.system.entry.js → p-505eca1c.system.entry.js} +1 -1
  145. package/dist/ripple/{p-762429a8.entry.js → p-5284791c.entry.js} +1 -1
  146. package/dist/ripple/{p-0d05b4a9.entry.js → p-5300b15d.entry.js} +1 -1
  147. package/dist/ripple/p-54d9e467.system.entry.js +1 -0
  148. package/dist/ripple/p-54f7d3d4.system.entry.js +1 -0
  149. package/dist/ripple/{p-5db92638.system.entry.js → p-5a9e3108.system.entry.js} +1 -1
  150. package/dist/ripple/p-618300c1.entry.js +1 -0
  151. package/dist/ripple/{p-2d0bcc88.system.entry.js → p-6cc07645.system.entry.js} +1 -1
  152. package/dist/ripple/{p-cd51ee87.system.entry.js → p-6d129ef8.system.entry.js} +1 -1
  153. package/dist/ripple/{p-451433a6.entry.js → p-72165bd2.entry.js} +1 -1
  154. package/dist/ripple/{p-5967bd2a.system.entry.js → p-725230dd.system.entry.js} +1 -1
  155. package/dist/ripple/{p-984287f7.system.entry.js → p-749597da.system.entry.js} +1 -1
  156. package/dist/ripple/p-76ff5d91.entry.js +1 -0
  157. package/dist/ripple/{p-fb751343.system.js → p-81c2df85.system.js} +1 -1
  158. package/dist/ripple/{p-74032162.system.js → p-828adbf1.system.js} +1 -1
  159. package/dist/ripple/{p-db8917e4.entry.js → p-83be63f6.entry.js} +1 -1
  160. package/dist/ripple/{p-ce8c6180.system.entry.js → p-84603f1f.system.entry.js} +1 -1
  161. package/dist/ripple/{p-d0387d35.entry.js → p-84ba5b74.entry.js} +1 -1
  162. package/dist/ripple/p-99058787.entry.js +1 -0
  163. package/dist/ripple/{p-9df3574d.system.entry.js → p-a0ecb6d7.system.entry.js} +1 -1
  164. package/dist/ripple/{p-7fdcce90.system.entry.js → p-a3c01e10.system.entry.js} +1 -1
  165. package/dist/ripple/p-ae82b3d2.system.js +1 -0
  166. package/dist/ripple/{p-c61366fd.entry.js → p-aea13873.entry.js} +1 -1
  167. package/dist/ripple/{p-120dbdc8.system.entry.js → p-b01f9998.system.entry.js} +1 -1
  168. package/dist/ripple/p-b176c143.system.entry.js +1 -0
  169. package/dist/ripple/{p-bd142645.entry.js → p-b9dbf1f4.entry.js} +1 -1
  170. package/dist/ripple/{p-04f9a60a.entry.js → p-c1e3c2fb.entry.js} +1 -1
  171. package/dist/ripple/{p-8b272d80.system.entry.js → p-c2e00d4a.system.entry.js} +1 -1
  172. package/dist/ripple/{p-76d53189.entry.js → p-c47fab48.entry.js} +1 -1
  173. package/dist/ripple/p-c6a336d6.system.js +1 -0
  174. package/dist/ripple/{p-ffa15c47.system.entry.js → p-c853e185.system.entry.js} +1 -1
  175. package/dist/ripple/{p-c9200deb.system.entry.js → p-ca971eac.system.entry.js} +1 -1
  176. package/dist/ripple/{p-8008f0f2.system.entry.js → p-cad0c5f9.system.entry.js} +1 -1
  177. package/dist/ripple/{p-446e0b2c.system.entry.js → p-db9657eb.system.entry.js} +1 -1
  178. package/dist/ripple/{p-e3899e1f.entry.js → p-df157138.entry.js} +1 -1
  179. package/dist/ripple/{p-ae4460f2.system.entry.js → p-e081fdc2.system.entry.js} +1 -1
  180. package/dist/ripple/p-e209a933.js +1 -0
  181. package/dist/ripple/{p-dfd1b720.entry.js → p-e687176d.entry.js} +1 -1
  182. package/dist/ripple/{p-d8994408.system.entry.js → p-ed1f6b8d.system.entry.js} +1 -1
  183. package/dist/ripple/{p-db190563.js → p-eddbcb21.js} +1 -1
  184. package/dist/ripple/p-ee4fee7d.system.js +1 -0
  185. package/dist/ripple/{p-8a11ee6f.entry.js → p-f2101a0d.entry.js} +1 -1
  186. package/dist/ripple/{p-1aef4b40.entry.js → p-f24572f5.entry.js} +1 -1
  187. package/dist/ripple/{p-97f276aa.system.entry.js → p-f40e1468.system.entry.js} +1 -1
  188. package/dist/ripple/{p-6f4c4231.entry.js → p-f90e4094.entry.js} +1 -1
  189. package/dist/ripple/{p-7f483c55.system.entry.js → p-fa4f1030.system.entry.js} +1 -1
  190. package/dist/ripple/{p-9b75d56c.entry.js → p-ff1ed90f.entry.js} +1 -1
  191. package/dist/ripple/ripple.esm.js +1 -1
  192. package/dist/ripple/ripple.js +1 -1
  193. package/dist/types/components/{wm-select/wm-select.d.ts → selects/priv-option-list/priv-option-list.d.ts} +42 -65
  194. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +58 -0
  195. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +20 -0
  196. package/dist/types/components/{wm-option → selects/wm-option}/wm-option.d.ts +3 -2
  197. package/dist/types/components/selects/wm-select/wm-select.d.ts +54 -0
  198. package/dist/types/components.d.ts +156 -2
  199. package/dist/types/global/functions.d.ts +1 -0
  200. package/package.json +1 -1
  201. package/dist/esm-es5/global-016b76a8.js +0 -1
  202. package/dist/ripple/p-11aaef56.system.entry.js +0 -1
  203. package/dist/ripple/p-481a9e2f.system.js +0 -1
  204. package/dist/ripple/p-55668879.system.js +0 -1
  205. package/dist/ripple/p-6636a40b.system.entry.js +0 -1
  206. package/dist/ripple/p-9603168d.entry.js +0 -1
  207. package/dist/ripple/p-a40b0af9.system.js +0 -1
  208. package/dist/ripple/p-a895f1ef.entry.js +0 -1
  209. package/dist/ripple/p-f9494a9d.js +0 -1
  210. /package/dist/collection/components/{wm-option → selects/wm-option}/wm-option.e2e.js +0 -0
  211. /package/dist/collection/components/{wm-option → selects/wm-option}/wm-option.spec.js +0 -0
  212. /package/dist/collection/components/{wm-select → selects/wm-select}/wm-select.e2e.js +0 -0
@@ -1,8 +1,8 @@
1
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, d as debounce, t as toBool, a as handleDisabledAttribute, k as shouldOpenUp, y as getTextDir } from './functions-cf37f81f.js';
3
- import { g as globalMessages } from './intl-c72b75dc.js';
2
+ import { i as intl, t as toBool, z as isElOrChild, a as handleDisabledAttribute, k as shouldOpenUp, y as getTextDir } from './functions-b791a892.js';
3
+ import { g as globalMessages } from './intl-f2f7ce8b.js';
4
4
 
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}";
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-focus)}:host(:hover){background:var(--wmcolor-select-option-background-hover);outline:none}";
6
6
 
7
7
  const Option = class {
8
8
  constructor(hostRef) {
@@ -12,6 +12,7 @@ const Option = class {
12
12
  this.intCloneClicked = createEvent(this, "intCloneClicked", 7);
13
13
  this.wmKeyUpPressed = createEvent(this, "wmKeyUpPressed", 7);
14
14
  this.wmKeyDownPressed = createEvent(this, "wmKeyDownPressed", 7);
15
+ this.wmKeyLeftPressed = createEvent(this, "wmKeyLeftPressed", 7);
15
16
  this.wmEscKeyPressed = createEvent(this, "wmEscKeyPressed", 7);
16
17
  this.wmHomeKeyPressed = createEvent(this, "wmHomeKeyPressed", 7);
17
18
  this.wmEndKeyPressed = createEvent(this, "wmEndKeyPressed", 7);
@@ -30,7 +31,7 @@ const Option = class {
30
31
  if (this.subinfo) {
31
32
  classes.push("hassubinfo");
32
33
  }
33
- if (this.parentSelectEl.multiple) {
34
+ if (this.parentOptionList.multiple) {
34
35
  classes.push("multi-option");
35
36
  }
36
37
  if (!this.el.textContent.toLowerCase().includes(this.searchTerm)) {
@@ -38,11 +39,13 @@ const Option = class {
38
39
  }
39
40
  return classes.join(" ");
40
41
  }
41
- get parentSelectEl() {
42
- var _a;
43
- return ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.nodeName) !== "WM-SELECT"
44
- ? this.el.getRootNode().host
45
- : 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
+ }
46
49
  }
47
50
  handleKeydown(ev) {
48
51
  switch (ev.key) {
@@ -74,6 +77,10 @@ const Option = class {
74
77
  ev.preventDefault();
75
78
  this.wmEndKeyPressed.emit();
76
79
  break;
80
+ case "ArrowLeft":
81
+ ev.preventDefault();
82
+ this.wmKeyLeftPressed.emit();
83
+ break;
77
84
  default:
78
85
  if (ev.key.length === 1) {
79
86
  ev.preventDefault();
@@ -89,7 +96,7 @@ const Option = class {
89
96
  this.intCloneClicked.emit(this.el); // used to then emit wmOptionSelected from the "real" wm-option
90
97
  }
91
98
  else {
92
- if (this.parentSelectEl.multiple) {
99
+ if (this.parentOptionList.multiple) {
93
100
  this.selected
94
101
  ? this.wmOptionDeselected.emit(this.el)
95
102
  : this.wmOptionSelected.emit(this.el);
@@ -151,10 +158,10 @@ const Option = class {
151
158
  this.syncAriaSelected();
152
159
  this.syncAriaDisabled();
153
160
  this.updateDisabledOnClick();
154
- this.parentSelectEl.addEventListener("wmSelectSearchChanged", (ev) => this.handleSearch(ev));
161
+ this.parentOptionList.addEventListener("optionListSearchChanged", (ev) => this.handleSearch(ev));
155
162
  }
156
163
  render() {
157
- return (h(Host, { role: "option", tabindex: this.focused ? 0 : -1, class: this.hostClasses }, h("div", { class: `option-wrapper ${this.parentSelectEl.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)));
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)));
158
165
  }
159
166
  get el() { return getElement(this); }
160
167
  static get watchers() { return {
@@ -164,52 +171,20 @@ const Option = class {
164
171
  };
165
172
  Option.style = wmOptionCss;
166
173
 
167
- 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}";
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}.measurement-area{position:absolute;visibility:hidden;height:0px;pointer-events:none}.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}";
168
175
 
169
176
  const Select = class {
170
177
  constructor(hostRef) {
171
178
  registerInstance(this, hostRef);
172
179
  this.wmSelectDidLoad = createEvent(this, "wmSelectDidLoad", 7);
173
180
  this.wmSelectBlurred = createEvent(this, "wmSelectBlurred", 7);
174
- this.wmSelectSearchChanged = createEvent(this, "wmSelectSearchChanged", 7);
175
181
  this.wmSelectAllSelected = createEvent(this, "wmSelectAllSelected", 7);
176
182
  this.wmSelectAllDeselected = createEvent(this, "wmSelectAllDeselected", 7);
177
- this.selectAllMessage = intl.formatMessage({
178
- id: "select.selectAll",
179
- defaultMessage: "Select All",
180
- });
181
- this.deselectAllMessage = intl.formatMessage({
182
- id: "select.deselectAll",
183
- defaultMessage: "Deselect All",
184
- });
185
- this.allOptionsSelectedMessage = intl.formatMessage({
186
- id: "select.allOptionsSelected",
187
- defaultMessage: "All options selected",
188
- });
189
- this.allOptionsDeselectedMessage = intl.formatMessage({
190
- id: "select.allOptionsDeselected",
191
- defaultMessage: "All options deselected",
192
- });
193
- this.keysSoFar = "";
194
- this.searchIndex = 0;
195
183
  this.openUp = false;
196
184
  //////////////////////////////////////
197
- //////////////////////////////////////
198
185
  // for multiselect button text
199
186
  this.overflowCount = 0;
200
187
  this.displayedOptions = [];
201
- this.debouncedClearKeysSoFar = debounce(() => {
202
- this.keysSoFar = "";
203
- }, 500);
204
- this.debouncedSearch = debounce(() => {
205
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
206
- if (this.filteredOptions.length) {
207
- this.announce(this.resultsFoundMessage);
208
- }
209
- else {
210
- this.announce(this.noResultsFoundMessage);
211
- }
212
- }, 150);
213
188
  this.disabled = false;
214
189
  this.maxHeight = undefined;
215
190
  this.label = undefined;
@@ -240,85 +215,33 @@ const Select = class {
240
215
  get childOptions() {
241
216
  return Array.from(this.el.querySelectorAll("wm-option"));
242
217
  }
243
- get cloneOptions() {
244
- return Array.from(this.el.shadowRoot.querySelectorAll("wm-option"));
245
- }
246
- get allOptionEls() {
247
- // this includes both slotted wm-options and internally created wm-options
248
- return this.cloneOptions.concat(this.childOptions);
249
- }
250
- get visibleOptionEls() {
251
- return this.allOptionEls.filter((option) => !option.classList.contains("hidden") && !option.classList.contains("filtered-out"));
252
- }
253
218
  get isDisabled() {
254
219
  // string "false" needs to be treated as bool False because react wrappers convert bool to string.
255
220
  return toBool(this.disabled);
256
221
  }
257
- //////////////////////////////////////
258
- // for search variants
259
- get searchTerm() {
260
- return this.searchFieldEl ? this.searchFieldEl.value : "";
261
- }
262
- get filteredOptions() {
263
- return this.childOptions.filter((option) => { var _a; return (_a = option.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(this.searchTerm.toLowerCase()); });
264
- }
265
222
  get selectedOptions() {
266
223
  return Array.from(this.el.querySelectorAll("wm-option")).filter((x) => x.selected);
267
224
  }
268
225
  get allSelected() {
269
226
  return this.childOptions.every((option) => option.selected);
270
227
  }
271
- get visibleSelectAllButton() {
272
- return this.selectAll && this.multiple && this.searchTerm === "";
273
- }
274
228
  //////////////////////////////////////
275
- get resultsFoundMessage() {
276
- return intl.formatMessage({
277
- id: "select.searchResultsFound",
278
- defaultMessage: "{numResults, plural, one {1 option found} other {# options found}}",
279
- description: "The message read by the screen reader, indicating how many results a search returned",
280
- }, { numResults: this.filteredOptions.length });
281
- }
282
- get noResultsFoundMessage() {
283
- return intl.formatMessage({
284
- id: "select.noSearchResults",
285
- defaultMessage: "No results found. Please try your search again.",
286
- description: "The message displayed when no options pass the search filter",
287
- });
288
- }
289
- handleOptionSelection(ev) {
290
- this.focusOption(ev.detail);
229
+ handleOptionSelection() {
291
230
  if (!this.multiple) {
292
231
  this.close();
293
232
  }
294
233
  }
295
- handleOptionCloneSelection(ev) {
296
- const correspondingOption = this.findCorrespondingOption(ev.detail);
297
- correspondingOption.click();
298
- }
299
234
  handleChildEnter() {
300
235
  // only occurs for multiselects. handle the click, then close
301
236
  this.close();
302
237
  }
303
- handleChildUp(ev) {
304
- this.moveUp(ev.detail);
305
- }
306
- handleChildDown(ev) {
307
- this.moveDown(ev.detail);
308
- }
309
- moveToFirstOption() {
310
- this.focusOption(this.visibleOptionEls[0]);
311
- }
312
- moveToLastOption() {
313
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
314
- }
315
238
  closePopupOnEscape() {
316
239
  this.close();
317
240
  }
318
241
  handleOptionBlur(ev) {
319
242
  // if the Option is blurred to something other than the component emit a blur event with the appropriate relatedTarget
320
243
  // keeps our component's blur events accurate, and closes when focusing browser address bar
321
- if (!this.isElOrChild(ev.detail.relatedTarget)) {
244
+ if (!isElOrChild(this.el, ev.detail.relatedTarget)) {
322
245
  const event = new CustomEvent("blur");
323
246
  // @ts-ignore
324
247
  event.relatedTarget = ev.detail.relatedTarget;
@@ -326,34 +249,16 @@ const Select = class {
326
249
  }
327
250
  }
328
251
  handleClick(ev) {
329
- if (!this.isElOrChild(ev.target)) {
252
+ if (!isElOrChild(this.el, ev.target)) {
330
253
  this.close();
331
254
  }
332
255
  }
333
- handleSelectAllClick() {
334
- this.allSelected ? this.deselectAllOptions() : this.selectAllOptions();
335
- }
336
- selectAllOptions() {
337
- this.announce(this.allOptionsSelectedMessage);
338
- this.wmSelectAllSelected.emit();
339
- }
340
- deselectAllOptions() {
341
- this.announce(this.allOptionsDeselectedMessage);
342
- this.wmSelectAllDeselected.emit();
343
- }
344
256
  handleButtonBlur(ev) {
345
- if (this.isElOrChild(ev.relatedTarget)) {
257
+ if (isElOrChild(this.el, ev.relatedTarget)) {
346
258
  // do not emit a blur event when opening the dropdown and focusing the Options
347
259
  ev.stopPropagation();
348
260
  }
349
261
  }
350
- handleSearchFieldBlur(ev) {
351
- this.searchFieldWrapperEl.classList.remove("focus");
352
- if (this.isElOrChild(ev.relatedTarget)) {
353
- // do not emit a blur event when moving from searchfield to options
354
- ev.stopPropagation();
355
- }
356
- }
357
262
  handleKey(ev) {
358
263
  switch (ev.key) {
359
264
  case "ArrowDown":
@@ -389,6 +294,7 @@ const Select = class {
389
294
  handleChildChange(_) {
390
295
  // on update of children or children selected state, reset button text and rerender
391
296
  this.setButtonText();
297
+ this.optionListEl.handleChildChange(_);
392
298
  forceUpdate(this.el);
393
299
  }
394
300
  componentDidLoad() {
@@ -397,55 +303,11 @@ const Select = class {
397
303
  forceUpdate(this.el);
398
304
  // Dev can overwrite the max-height rule set in the Sass file
399
305
  if (this.maxHeight) {
400
- this.listboxEl.style.maxHeight = this.maxHeight;
401
- }
402
- if (this.multiple) {
403
- this.updateOptionVisibility();
306
+ // this.listboxEl.style.maxHeight = this.maxHeight;
307
+ this.dropdownEl.style.maxHeight = this.maxHeight;
404
308
  }
405
309
  this.setButtonText();
406
310
  }
407
- componentWillUpdate() {
408
- if (this.multiple) {
409
- // find last visible clone option and apply .last class
410
- const visibleCloneOptions = this.visibleOptionEls.filter((option) => option.classList.contains("clone"));
411
- // if all options are clones, nothing to separate from
412
- const allClones = visibleCloneOptions.length === this.visibleOptionEls.length;
413
- visibleCloneOptions.forEach((option, idx) => {
414
- if (!allClones && idx === visibleCloneOptions.length - 1) {
415
- option.classList.add("last");
416
- }
417
- else {
418
- option.classList.remove("last");
419
- }
420
- });
421
- }
422
- }
423
- moveUp(el) {
424
- const focusableEls = this.visibleOptionEls;
425
- if (this.selectAllEl) {
426
- focusableEls.unshift(this.selectAllEl);
427
- }
428
- if (this.searchFieldEl) {
429
- focusableEls.unshift(this.searchFieldEl);
430
- }
431
- const prevEl = focusableEls[focusableEls.indexOf(el) - 1] || focusableEls[focusableEls.length - 1];
432
- if (prevEl) {
433
- this.focusOption(prevEl);
434
- }
435
- }
436
- moveDown(el) {
437
- const focusableEls = this.visibleOptionEls;
438
- if (this.selectAllEl) {
439
- focusableEls.unshift(this.selectAllEl);
440
- }
441
- if (this.searchFieldEl) {
442
- focusableEls.unshift(this.searchFieldEl);
443
- }
444
- const nextEl = focusableEls[focusableEls.indexOf(el) + 1] || focusableEls[0];
445
- if (nextEl) {
446
- this.focusOption(nextEl);
447
- }
448
- }
449
311
  open(optionToSelect) {
450
312
  if (!this.isDisabled) {
451
313
  const elHeight = this.el.clientHeight;
@@ -458,60 +320,22 @@ const Select = class {
458
320
  this.isExpanded = true;
459
321
  this.dropdownEl.classList.remove("hidden");
460
322
  window.requestAnimationFrame(() => {
461
- switch (optionToSelect) {
462
- case "next":
463
- // search variant focuses search field
464
- // all others focus option "after" last selected option (this can be the first option)
465
- if (this.search) {
466
- this.searchFieldEl.focus();
467
- this.listboxEl.scrollTop = 0;
468
- }
469
- else {
470
- this.moveDown(this.visibleOptionEls.filter((x) => x.selected).slice(-1)[0]);
471
- }
472
- break;
473
- case "previous":
474
- // search variant focuses last option
475
- // all others focus option "above" first selected option (this can be the last option)
476
- if (this.search) {
477
- this.focusOption(this.visibleOptionEls[this.visibleOptionEls.length - 1]);
478
- }
479
- else {
480
- this.moveUp(this.visibleOptionEls.filter((x) => x.selected)[0]);
481
- }
482
- break;
483
- default:
484
- // search variant focuses search field
485
- // all others focus the selected option
486
- // if no option is selected (empty multiselect), focuses first option
487
- if (this.search) {
488
- this.searchFieldEl.focus();
489
- this.listboxEl.scrollTop = 0;
490
- }
491
- else if (this.selectedOptions.length > 0) {
492
- this.focusOption(this.visibleOptionEls.filter((x) => x.selected)[0]);
493
- }
494
- else {
495
- this.focusOption(this.visibleOptionEls[0]);
496
- }
497
- break;
498
- }
323
+ this.optionListEl.handleInitialFocus(optionToSelect);
499
324
  });
500
325
  }
501
326
  }
502
327
  close(returnFocus = true) {
503
328
  if (this.isExpanded) {
504
329
  this.isExpanded = false;
505
- this.allOptionEls.map((i) => (i.focused = false));
330
+ this.optionListEl.unfocusAll();
506
331
  window.setTimeout(() => {
507
332
  this.dropdownEl.classList.add("hidden");
508
- if (this.multiple) {
509
- this.updateOptionVisibility();
333
+ if (this.optionListEl.multiple) {
334
+ this.optionListEl.updateOptionVisibility();
510
335
  }
511
336
  // clear search field, reset filtered / bolded state of wm-options
512
337
  if (this.search) {
513
- this.searchFieldEl.value = "";
514
- this.wmSelectSearchChanged.emit({ searchTerm: this.searchTerm });
338
+ this.optionListEl.clearSearch();
515
339
  }
516
340
  // Returns focus to button after popup closes (no need if user is tabbing)
517
341
  // Delay is necessary for screenreader to get new expanded state before focus
@@ -523,87 +347,6 @@ const Select = class {
523
347
  }, 150);
524
348
  }
525
349
  }
526
- updateOptionVisibility() {
527
- // this runs for search multiselects, where selected options are rendered at the top of the dropdown list
528
- // slotted wm-options are hidden if selected, and clone wm-options are made visible if selected
529
- this.childOptions.forEach((option, idx) => {
530
- const cloneOption = this.cloneOptions[idx];
531
- if (option.selected) {
532
- option.classList.add("hidden");
533
- cloneOption.classList.remove("hidden");
534
- }
535
- else {
536
- option.classList.remove("hidden");
537
- cloneOption.classList.add("hidden");
538
- }
539
- });
540
- }
541
- focusOption(option) {
542
- this.allOptionEls.forEach((i) => (i.focused = i === option));
543
- // option must be scrolledIntoView before focused
544
- // 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
545
- option.scrollIntoView({ block: "nearest" });
546
- // 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))
547
- // when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to
548
- // 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
549
- window.setTimeout(() => option.scrollIntoView({ block: "nearest" }), 60);
550
- option.focus();
551
- }
552
- findAndFocusOption(ev) {
553
- const letterPressed = ev.detail.letter.toLowerCase();
554
- const optionPressed = ev.detail.optionEl;
555
- if (!this.keysSoFar && letterPressed == " ") {
556
- // if the first key entered is space, treat as a click. Otherwise include in
557
- optionPressed.click();
558
- }
559
- else {
560
- if (!this.keysSoFar) {
561
- // if first character entered, set currently focused option as the starting index for the search
562
- this.visibleOptionEls.forEach((option, idx) => {
563
- if (option.focused) {
564
- this.searchIndex = idx;
565
- }
566
- });
567
- }
568
- this.keysSoFar += letterPressed;
569
- let nextMatch = this.findMatchInRange(this.visibleOptionEls, this.searchIndex + 1, this.visibleOptionEls.length);
570
- if (!nextMatch) {
571
- // if match can't be found from starting option downwards, search from top
572
- nextMatch = this.findMatchInRange(this.visibleOptionEls, 0, this.searchIndex);
573
- }
574
- if (nextMatch) {
575
- // findMatchInRange still might have returned null, only focus if match found
576
- this.focusOption(nextMatch);
577
- }
578
- this.debouncedClearKeysSoFar();
579
- }
580
- }
581
- findMatchInRange(list, startIndex, endIndex) {
582
- let match = null;
583
- let optionsInRange = list.slice(startIndex, endIndex);
584
- // Find the first option starting with the keysSoFar substring, searching in
585
- // the specified range of options
586
- optionsInRange.forEach((option) => {
587
- const label = option.textContent;
588
- if (!match && label && label.toLowerCase().startsWith(this.keysSoFar)) {
589
- match = option;
590
- }
591
- });
592
- return match;
593
- }
594
- findCorrespondingOption(el) {
595
- // if clone, returns the child wm-option
596
- // if child wm-option, returns clone
597
- const isClone = el.classList.contains("clone");
598
- return isClone
599
- ? this.childOptions[this.cloneOptions.indexOf(el)]
600
- : this.cloneOptions[this.childOptions.indexOf(el)];
601
- }
602
- isElOrChild(el) {
603
- var _a;
604
- // determines whether or not the element is the component, a child of the component, or exists within the component's shadowroot
605
- return el === this.el || this.el.contains(el) || ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.contains(el));
606
- }
607
350
  announceError() {
608
351
  if (this.errorMessage) {
609
352
  setTimeout(() => this.announce(this.errorMessage), 100);
@@ -619,41 +362,8 @@ const Select = class {
619
362
  this.wmSelectBlurred.emit();
620
363
  }
621
364
  }
622
- // on search field or select all. keydown on options is handled via events.
623
- handleKeyDown(ev) {
624
- const el = ev.target;
625
- switch (ev.key) {
626
- case "ArrowDown":
627
- ev.preventDefault();
628
- this.moveDown(ev.target);
629
- break;
630
- case "ArrowUp":
631
- ev.preventDefault();
632
- this.moveUp(ev.target);
633
- break;
634
- case "Escape":
635
- ev.preventDefault();
636
- this.close();
637
- break;
638
- case "Enter":
639
- if (el === this.selectAllEl) {
640
- ev.preventDefault();
641
- this.handleSelectAllClick();
642
- this.close();
643
- }
644
- break;
645
- case " ":
646
- if (el === this.selectAllEl) {
647
- ev.preventDefault();
648
- this.handleSelectAllClick();
649
- }
650
- break;
651
- }
652
- }
653
365
  setButtonText() {
654
- this.displayedOptions = this.childOptions
655
- .filter((x) => x.selected)
656
- .map((y) => (!y.classList.contains("hidden") ? y : this.findCorrespondingOption(y)));
366
+ this.displayedOptions = this.childOptions.filter((x) => x.selected);
657
367
  // handle overflow + counter for multiselect
658
368
  if (this.multiple) {
659
369
  // this is a fixed measurement accounting for the max width of a 3 character overflow counter
@@ -663,14 +373,14 @@ const Select = class {
663
373
  const paddingLeft = parseInt(computedStyle.getPropertyValue("padding-left").slice(0, -2));
664
374
  const paddingRight = parseInt(computedStyle.getPropertyValue("padding-right").slice(0, -2));
665
375
  const availableSpace = this.buttonEl.clientWidth - paddingLeft - paddingRight - overflowCounterWidth;
666
- let optionsWidths = this.displayedOptions.map((x) => x.shadowRoot.querySelector(".option-text").clientWidth);
667
- let optionsTotalWidth = optionsWidths.reduce((acc, x) => acc + x, 0);
668
376
  this.overflowCount = 0;
377
+ this.measurementAreaEl.textContent = this.displayedOptions.map((x) => x.textContent).join(", ");
378
+ let optionsTotalWidth = this.measurementAreaEl.clientWidth;
669
379
  while (optionsTotalWidth > availableSpace && this.displayedOptions.length > 1) {
670
380
  this.overflowCount++;
671
- optionsTotalWidth -= optionsWidths[optionsWidths.length - 1];
672
- optionsWidths.pop();
673
381
  this.displayedOptions.pop();
382
+ this.measurementAreaEl.textContent = this.displayedOptions.map((x) => x.textContent).join(", ");
383
+ optionsTotalWidth = this.measurementAreaEl.clientWidth;
674
384
  }
675
385
  }
676
386
  }
@@ -697,21 +407,6 @@ const Select = class {
697
407
  return (h("span", null, h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
698
408
  }
699
409
  }
700
- renderSearchField() {
701
- 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 }))));
702
- }
703
- renderSearchFailedMessage() {
704
- return h("div", { class: "search-results-message" }, this.noResultsFoundMessage);
705
- }
706
- renderSelectAllButton() {
707
- 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));
708
- }
709
- renderCloneOptions() {
710
- return Array.from(this.el.children).map((o) => {
711
- const option = o;
712
- return (h("wm-option", { class: "clone", subinfo: option.subinfo, selected: option.selected }, option.textContent));
713
- });
714
- }
715
410
  render() {
716
411
  const showSubinfo = !this.multiple && this.selectedOptions.length > 0 && this.selectedOptions[0].subinfo;
717
412
  const buttonProps = {
@@ -725,7 +420,7 @@ const Select = class {
725
420
  };
726
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,
727
422
  // we can't use aria-required or required attributes because it's invalid on the elements we're using (button controlling a listbox)
728
- 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) }, this.search && this.renderSearchField(), this.visibleSelectAllButton && this.renderSelectAllButton(), h("div", { 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", 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)))));
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", { ref: (el) => (this.measurementAreaEl = el), class: "measurement-area", "aria-hidden": "true" })), 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)))));
729
424
  }
730
425
  static get delegatesFocus() { return true; }
731
426
  get el() { return getElement(this); }
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-558b5a82.js';
2
- import { d as debounce } from './functions-cf37f81f.js';
2
+ import { d as debounce } from './functions-b791a892.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
5