@watermarkinsights/ripple 0.0.1 → 0.1.0-alpha.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 (460) hide show
  1. package/dist/cjs/app-globals-3db2fdd3.js +103 -0
  2. package/dist/cjs/chartFunctions-0d47b1f4.js +906 -0
  3. package/dist/cjs/functions-761cb9f2.js +10694 -0
  4. package/dist/cjs/index-bb947bd5.js +1843 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-33cd6161.js +82 -0
  7. package/dist/cjs/intl-9e9388a7.js +291 -0
  8. package/dist/cjs/loader.cjs.js +15 -0
  9. package/dist/cjs/priv-calendar.cjs.entry.js +580 -0
  10. package/dist/cjs/priv-chart-popover-old.cjs.entry.js +146 -0
  11. package/dist/cjs/priv-chart-popover_2.cjs.entry.js +204 -0
  12. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  13. package/dist/cjs/priv-navigator-item.cjs.entry.js +35 -0
  14. package/dist/cjs/priv-option-list.cjs.entry.js +391 -0
  15. package/dist/cjs/ripple.cjs.js +25 -0
  16. package/dist/cjs/wm-action-menu_2.cjs.entry.js +525 -0
  17. package/dist/cjs/wm-button.cjs.entry.js +280 -0
  18. package/dist/cjs/wm-chart-bar.cjs.entry.js +444 -0
  19. package/dist/cjs/wm-chart-column.cjs.entry.js +629 -0
  20. package/dist/cjs/wm-chart-slice.cjs.entry.js +27 -0
  21. package/dist/cjs/wm-chart-stack.cjs.entry.js +447 -0
  22. package/dist/cjs/wm-chart.cjs.entry.js +163 -0
  23. package/dist/cjs/wm-date-range.cjs.entry.js +591 -0
  24. package/dist/cjs/wm-datepicker.cjs.entry.js +399 -0
  25. package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-file-list.cjs.entry.js} +15 -24
  26. package/dist/cjs/wm-file.cjs.entry.js +210 -0
  27. package/dist/cjs/wm-flyout.cjs.entry.js +178 -0
  28. package/dist/{ripple/wm-modal.entry.js → cjs/wm-input.cjs.entry.js} +108 -110
  29. package/dist/cjs/wm-line-chart.cjs.entry.js +541 -0
  30. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +220 -0
  31. package/dist/cjs/wm-modal_3.cjs.entry.js +238 -0
  32. package/dist/cjs/wm-navigation_3.cjs.entry.js +188 -0
  33. package/dist/cjs/wm-navigator.cjs.entry.js +334 -0
  34. package/dist/cjs/wm-nested-select.cjs.entry.js +322 -0
  35. package/dist/{ripple/wm-textarea.entry.js → cjs/wm-optgroup.cjs.entry.js} +62 -57
  36. package/dist/cjs/wm-option_2.cjs.entry.js +536 -0
  37. package/dist/{ripple/wm-navigation.entry.js → cjs/wm-pagination.cjs.entry.js} +204 -91
  38. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +204 -0
  39. package/dist/{ripple/wm-flyout.entry.js → cjs/wm-search.cjs.entry.js} +168 -139
  40. package/dist/{ripple/wm-datepicker.entry.js → cjs/wm-snackbar.cjs.entry.js} +152 -223
  41. package/dist/cjs/wm-tab-item_3.cjs.entry.js +357 -0
  42. package/dist/cjs/wm-tag-input.cjs.entry.js +985 -0
  43. package/dist/cjs/wm-tag-option.cjs.entry.js +51 -0
  44. package/dist/{ripple/wm-modal-pss.entry.js → cjs/wm-textarea.cjs.entry.js} +70 -111
  45. package/dist/{ripple/wm-progress-indicator.entry.js → cjs/wm-timepicker.cjs.entry.js} +296 -78
  46. package/dist/cjs/wm-toggletip.cjs.entry.js +252 -0
  47. package/dist/cjs/wm-uploader.cjs.entry.js +341 -0
  48. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  49. package/dist/collection/collection-manifest.json +207 -0
  50. package/dist/collection/components/charts/chartFunctions.js +831 -0
  51. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +995 -0
  52. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +345 -0
  53. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +990 -0
  54. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +268 -0
  55. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +177 -0
  56. package/dist/collection/components/charts/wm-chart/wm-chart.css +1326 -0
  57. package/dist/collection/components/charts/wm-chart/wm-chart.js +549 -0
  58. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1236 -0
  59. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +725 -0
  60. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.css +1335 -0
  61. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +914 -0
  62. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +1006 -0
  63. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +310 -0
  64. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.css +1466 -0
  65. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.js +709 -0
  66. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1208 -0
  67. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +999 -0
  68. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1326 -0
  69. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +320 -0
  70. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +967 -0
  71. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +232 -0
  72. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +167 -0
  73. package/dist/collection/components/datepickers/datepicker.css +1147 -0
  74. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1415 -0
  75. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +857 -0
  76. package/dist/collection/components/datepickers/wm-date-range.js +1158 -0
  77. package/dist/collection/components/datepickers/wm-datepicker.js +875 -0
  78. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +999 -0
  79. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +784 -0
  80. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1259 -0
  81. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +805 -0
  82. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +909 -0
  83. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +363 -0
  84. package/dist/collection/components/selects/wm-option/wm-option.css +1033 -0
  85. package/dist/collection/components/selects/wm-option/wm-option.js +665 -0
  86. package/dist/collection/components/selects/wm-select/wm-select.css +1174 -0
  87. package/dist/collection/components/selects/wm-select/wm-select.js +878 -0
  88. package/dist/collection/components/wm-action-menu/wm-action-menu.css +1690 -0
  89. package/dist/collection/components/wm-action-menu/wm-action-menu.js +932 -0
  90. package/dist/collection/components/wm-button/wm-button.css +1630 -0
  91. package/dist/collection/components/wm-button/wm-button.js +794 -0
  92. package/dist/collection/components/wm-file/wm-file.css +1086 -0
  93. package/dist/collection/components/wm-file/wm-file.js +536 -0
  94. package/dist/collection/components/wm-file-list/wm-file-list.css +899 -0
  95. package/dist/collection/components/wm-file-list/wm-file-list.js +118 -0
  96. package/dist/collection/components/wm-flyout/wm-flyout.css +1091 -0
  97. package/dist/collection/components/wm-flyout/wm-flyout.js +651 -0
  98. package/dist/collection/components/wm-input/wm-input.css +1095 -0
  99. package/dist/collection/components/wm-input/wm-input.js +653 -0
  100. package/dist/collection/components/wm-menuitem/wm-menuitem.css +982 -0
  101. package/dist/collection/components/wm-menuitem/wm-menuitem.js +515 -0
  102. package/dist/collection/components/wm-modal/wm-modal-footer.css +927 -0
  103. package/dist/collection/components/wm-modal/wm-modal-footer.js +199 -0
  104. package/dist/collection/components/wm-modal/wm-modal-header.css +926 -0
  105. package/dist/collection/components/wm-modal/wm-modal-header.js +110 -0
  106. package/dist/collection/components/wm-modal/wm-modal.css +983 -0
  107. package/dist/collection/components/wm-modal/wm-modal.js +534 -0
  108. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +931 -0
  109. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +142 -0
  110. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +925 -0
  111. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
  112. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +1007 -0
  113. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
  114. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +926 -0
  115. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +153 -0
  116. package/dist/collection/components/wm-navigation/wm-navigation-item.css +935 -0
  117. package/dist/collection/components/wm-navigation/wm-navigation-item.js +140 -0
  118. package/dist/collection/components/wm-navigation/wm-navigation.css +977 -0
  119. package/dist/collection/components/wm-navigation/wm-navigation.js +246 -0
  120. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +929 -0
  121. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
  122. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +918 -0
  123. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +128 -0
  124. package/dist/collection/components/wm-navigator/wm-navigator.css +990 -0
  125. package/dist/collection/components/wm-navigator/wm-navigator.js +597 -0
  126. package/dist/collection/components/wm-pagination/wm-pagination.css +1044 -0
  127. package/dist/collection/components/wm-pagination/wm-pagination.js +487 -0
  128. package/dist/collection/components/wm-search/wm-search.css +983 -0
  129. package/dist/collection/components/wm-search/wm-search.js +604 -0
  130. package/dist/collection/components/wm-snackbar/wm-snackbar.css +1150 -0
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.js +363 -0
  132. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +958 -0
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +233 -0
  134. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +966 -0
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +461 -0
  136. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +906 -0
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +132 -0
  138. package/dist/collection/components/wm-tag-input/wm-tag-input.css +1423 -0
  139. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1511 -0
  140. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +328 -0
  141. package/dist/collection/components/wm-textarea/wm-textarea.css +1065 -0
  142. package/dist/collection/components/wm-textarea/wm-textarea.js +423 -0
  143. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1174 -0
  144. package/dist/collection/components/wm-timepicker/wm-timepicker.js +728 -0
  145. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1296 -0
  146. package/dist/collection/components/wm-toggletip/wm-toggletip.js +455 -0
  147. package/dist/collection/components/wm-uploader/wm-uploader.css +1987 -0
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +760 -0
  149. package/dist/collection/components/wm-wrapper/wm-wrapper.js +31 -0
  150. package/dist/collection/dev/action-menu.js +18 -0
  151. package/dist/collection/dev/button.js +12 -0
  152. package/dist/collection/dev/chart-bar.js +430 -0
  153. package/dist/collection/dev/chart-column.js +459 -0
  154. package/dist/collection/dev/chart-small.js +56 -0
  155. package/dist/collection/dev/chart-stack.js +205 -0
  156. package/dist/collection/dev/chart.js +18 -0
  157. package/dist/collection/dev/date-range.js +14 -0
  158. package/dist/collection/dev/datepicker.js +46 -0
  159. package/dist/collection/dev/file-list.js +16 -0
  160. package/dist/collection/dev/file.js +0 -0
  161. package/dist/collection/dev/flyout.js +194 -0
  162. package/dist/collection/dev/input.js +6 -0
  163. package/dist/collection/dev/line-chart.js +45 -0
  164. package/dist/collection/dev/modal.js +48 -0
  165. package/dist/collection/dev/navigation.js +13 -0
  166. package/dist/collection/dev/navigator.js +34 -0
  167. package/dist/collection/dev/nested-select.js +36 -0
  168. package/dist/collection/dev/pagination.js +7 -0
  169. package/dist/collection/dev/progress-monitor.js +0 -0
  170. package/dist/collection/dev/pss-modal.js +8 -0
  171. package/dist/collection/dev/scripts.js +49 -0
  172. package/dist/collection/dev/search.js +72 -0
  173. package/dist/collection/dev/select.js +57 -0
  174. package/dist/collection/dev/snackbar.js +68 -0
  175. package/dist/collection/dev/tabs.js +44 -0
  176. package/dist/collection/dev/tag-input.js +32 -0
  177. package/dist/collection/dev/textarea.js +28 -0
  178. package/dist/collection/dev/timepicker.js +32 -0
  179. package/dist/collection/dev/toggletip.js +9 -0
  180. package/dist/collection/dev/uploader.js +139 -0
  181. package/dist/collection/global/__mocks__/functions.js +6 -0
  182. package/dist/collection/global/functions.js +907 -0
  183. package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +16 -87
  184. package/dist/collection/global/interfaces.js +94 -0
  185. package/dist/collection/global/intl.js +281 -0
  186. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  187. package/dist/collection/global/services/http-service.js +50 -0
  188. package/dist/collection/lang/lang.js +5 -0
  189. package/dist/collection/lang/missing.js +43 -0
  190. package/dist/collection/lang/piglatin.js +101 -0
  191. package/dist/docs/docs.d.ts +435 -0
  192. package/dist/docs/docs.json +14178 -0
  193. package/dist/docs/props-reference.json +2079 -0
  194. package/dist/docs/skill/index.md +33 -0
  195. package/dist/docs/skill/wm-action-menu.md +116 -0
  196. package/dist/docs/skill/wm-button.md +121 -0
  197. package/dist/docs/skill/wm-chart-bar.md +156 -0
  198. package/dist/docs/skill/wm-chart-column.md +122 -0
  199. package/dist/docs/skill/wm-chart-legend.md +91 -0
  200. package/dist/docs/skill/wm-chart-slice.md +101 -0
  201. package/dist/docs/skill/wm-chart-stack.md +147 -0
  202. package/dist/docs/skill/wm-chart.md +139 -0
  203. package/dist/docs/skill/wm-date-range.md +176 -0
  204. package/dist/docs/skill/wm-datepicker.md +153 -0
  205. package/dist/docs/skill/wm-file-list.md +105 -0
  206. package/dist/docs/skill/wm-file.md +91 -0
  207. package/dist/docs/skill/wm-flyout.md +209 -0
  208. package/dist/docs/skill/wm-input.md +134 -0
  209. package/dist/docs/skill/wm-line-chart.md +135 -0
  210. package/dist/docs/skill/wm-menuitem.md +64 -0
  211. package/dist/docs/skill/wm-modal-footer.md +81 -0
  212. package/dist/docs/skill/wm-modal-header.md +71 -0
  213. package/dist/docs/skill/wm-modal.md +172 -0
  214. package/dist/docs/skill/wm-navigation-hamburger.md +61 -0
  215. package/dist/docs/skill/wm-navigation-item.md +78 -0
  216. package/dist/docs/skill/wm-navigation.md +82 -0
  217. package/dist/docs/skill/wm-navigator.md +106 -0
  218. package/dist/docs/skill/wm-nested-select.md +160 -0
  219. package/dist/docs/skill/wm-optgroup.md +72 -0
  220. package/dist/docs/skill/wm-option.md +67 -0
  221. package/dist/docs/skill/wm-pagination.md +114 -0
  222. package/dist/docs/skill/wm-progress-indicator.md +75 -0
  223. package/dist/docs/skill/wm-progress-monitor.md +120 -0
  224. package/dist/docs/skill/wm-progress-slice.md +67 -0
  225. package/dist/docs/skill/wm-search.md +180 -0
  226. package/dist/docs/skill/wm-select.md +169 -0
  227. package/dist/docs/skill/wm-snackbar.md +130 -0
  228. package/dist/docs/skill/wm-tab-item.md +45 -0
  229. package/dist/docs/skill/wm-tab-list.md +139 -0
  230. package/dist/docs/skill/wm-tab-panel.md +39 -0
  231. package/dist/docs/skill/wm-tag-input.md +187 -0
  232. package/dist/docs/skill/wm-tag-option.md +60 -0
  233. package/dist/docs/skill/wm-textarea.md +102 -0
  234. package/dist/docs/skill/wm-timepicker.md +156 -0
  235. package/dist/docs/skill/wm-toggletip.md +98 -0
  236. package/dist/docs/skill/wm-uploader.md +154 -0
  237. package/dist/docs/skill/wm-wrapper.md +5 -0
  238. package/dist/esm/app-globals-a1092590.js +101 -0
  239. package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-58637dc9.js} +159 -3
  240. package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-65f1594c.js} +374 -7830
  241. package/dist/esm/index-3425d80d.js +1813 -0
  242. package/dist/esm/index.js +1 -0
  243. package/dist/esm/interfaces-8778346d.js +77 -0
  244. package/dist/{ripple/intl-7p27BJSM.js → esm/intl-d518f362.js} +11 -4
  245. package/dist/esm/loader.js +11 -0
  246. package/dist/{ripple → esm}/priv-calendar.entry.js +143 -133
  247. package/dist/esm/priv-chart-popover-old.entry.js +142 -0
  248. package/dist/esm/priv-chart-popover_2.entry.js +199 -0
  249. package/dist/{ripple → esm}/priv-navigator-button.entry.js +5 -4
  250. package/dist/{ripple → esm}/priv-navigator-item.entry.js +5 -4
  251. package/dist/{ripple → esm}/priv-option-list.entry.js +18 -16
  252. package/dist/esm/ripple.js +20 -0
  253. package/dist/esm/wm-action-menu_2.entry.js +520 -0
  254. package/dist/{ripple/wm-modal-header.entry.js → esm/wm-button.entry.js} +264 -24
  255. package/dist/esm/wm-chart-bar.entry.js +440 -0
  256. package/dist/esm/wm-chart-column.entry.js +625 -0
  257. package/dist/{ripple → esm}/wm-chart-slice.entry.js +6 -1
  258. package/dist/esm/wm-chart-stack.entry.js +443 -0
  259. package/dist/esm/wm-chart.entry.js +159 -0
  260. package/dist/{ripple → esm}/wm-date-range.entry.js +224 -114
  261. package/dist/esm/wm-datepicker.entry.js +395 -0
  262. package/dist/{ripple → esm}/wm-file-list.entry.js +5 -4
  263. package/dist/{ripple → esm}/wm-file.entry.js +48 -24
  264. package/dist/esm/wm-flyout.entry.js +174 -0
  265. package/dist/{ripple → esm}/wm-input.entry.js +23 -7
  266. package/dist/{ripple → esm}/wm-line-chart.entry.js +182 -94
  267. package/dist/esm/wm-modal-pss_3.entry.js +214 -0
  268. package/dist/esm/wm-modal_3.entry.js +232 -0
  269. package/dist/esm/wm-navigation_3.entry.js +182 -0
  270. package/dist/{ripple → esm}/wm-navigator.entry.js +26 -64
  271. package/dist/{ripple → esm}/wm-nested-select.entry.js +35 -25
  272. package/dist/{ripple → esm}/wm-optgroup.entry.js +17 -5
  273. package/dist/esm/wm-option_2.entry.js +531 -0
  274. package/dist/{ripple → esm}/wm-pagination.entry.js +16 -14
  275. package/dist/esm/wm-progress-indicator_3.entry.js +198 -0
  276. package/dist/{ripple → esm}/wm-search.entry.js +15 -31
  277. package/dist/{ripple → esm}/wm-snackbar.entry.js +32 -45
  278. package/dist/esm/wm-tab-item_3.entry.js +351 -0
  279. package/dist/{ripple → esm}/wm-tag-input.entry.js +169 -65
  280. package/dist/{ripple → esm}/wm-tag-option.entry.js +14 -2
  281. package/dist/{ripple/wm-menuitem.entry.js → esm/wm-textarea.entry.js} +65 -100
  282. package/dist/{ripple → esm}/wm-timepicker.entry.js +33 -12
  283. package/dist/{ripple → esm}/wm-toggletip.entry.js +105 -33
  284. package/dist/esm/wm-uploader.entry.js +337 -0
  285. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  286. package/dist/index.cjs.js +1 -0
  287. package/dist/index.js +1 -0
  288. package/dist/loader/cdn.js +1 -0
  289. package/dist/loader/index.cjs.js +1 -0
  290. package/dist/loader/index.d.ts +24 -0
  291. package/dist/loader/index.es2017.js +1 -0
  292. package/dist/loader/index.js +2 -0
  293. package/dist/loader/package.json +11 -0
  294. package/dist/ripple/index.esm.js +0 -1
  295. package/dist/ripple/p-0d364411.entry.js +1 -0
  296. package/dist/ripple/p-156c4d1d.entry.js +1 -0
  297. package/dist/ripple/{wm-modal-footer.entry.js → p-26d8c356.entry.js} +1 -44
  298. package/dist/ripple/p-2b23ce49.entry.js +1 -0
  299. package/dist/ripple/p-2b7cc2c1.entry.js +1 -0
  300. package/dist/ripple/p-34bde06a.entry.js +1 -0
  301. package/dist/ripple/p-35db9386.entry.js +1 -0
  302. package/dist/ripple/p-38a987ac.entry.js +1 -0
  303. package/dist/ripple/p-38b05894.entry.js +1 -0
  304. package/dist/ripple/p-38dee4ab.entry.js +1 -0
  305. package/dist/ripple/p-3a19d019.entry.js +1 -0
  306. package/dist/ripple/p-451d4de2.js +1 -0
  307. package/dist/ripple/p-507f2cf4.entry.js +1 -0
  308. package/dist/ripple/p-59f74ead.entry.js +1 -0
  309. package/dist/ripple/p-5c2fc42a.entry.js +1 -0
  310. package/dist/ripple/p-680d7606.entry.js +1 -0
  311. package/dist/ripple/p-683264db.js +1 -0
  312. package/dist/ripple/p-6db681c8.entry.js +1 -0
  313. package/dist/ripple/p-6e3c2bbc.js +1 -0
  314. package/dist/ripple/p-6f1cabab.entry.js +1 -0
  315. package/dist/ripple/p-72d135ee.entry.js +1 -0
  316. package/dist/ripple/p-7799953c.entry.js +1 -0
  317. package/dist/ripple/p-83c3db60.js +2 -0
  318. package/dist/ripple/{wm-progress-monitor.entry.js → p-83cdad78.entry.js} +1 -71
  319. package/dist/ripple/p-87ef0cfa.entry.js +1 -0
  320. package/dist/ripple/p-88e44511.entry.js +1 -0
  321. package/dist/ripple/p-8f8e4eb8.entry.js +1 -0
  322. package/dist/ripple/p-936adffb.entry.js +1 -0
  323. package/dist/ripple/p-9755192c.entry.js +1 -0
  324. package/dist/ripple/p-9c5c591b.js +1 -0
  325. package/dist/ripple/p-9ea38d96.entry.js +1 -0
  326. package/dist/ripple/p-be3e4e7c.entry.js +1 -0
  327. package/dist/ripple/p-c9c7df12.entry.js +1 -0
  328. package/dist/ripple/p-d7a1be0b.entry.js +1 -0
  329. package/dist/ripple/p-dab86523.entry.js +1 -0
  330. package/dist/ripple/{wm-tab-list.entry.js → p-e4aa6e27.entry.js} +1 -175
  331. package/dist/ripple/p-ebe9f38c.js +1 -0
  332. package/dist/ripple/p-ed053612.entry.js +1 -0
  333. package/dist/ripple/p-f43f621b.entry.js +1 -0
  334. package/dist/ripple/p-f48d30d6.entry.js +1 -0
  335. package/dist/ripple/{wm-action-menu.entry.js → p-f6aad57c.entry.js} +1 -201
  336. package/dist/ripple/p-f6e1beb5.entry.js +1 -0
  337. package/dist/ripple/p-fc843bb8.entry.js +1 -0
  338. package/dist/ripple/{priv-chart-popover.entry.js → p-fd997764.entry.js} +1 -134
  339. package/dist/ripple/p-fffb46ad.entry.js +1 -0
  340. package/dist/ripple/ripple.esm.js +1 -48
  341. package/dist/types/components/charts/chartFunctions.d.ts +15 -2
  342. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +25 -11
  343. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +31 -0
  344. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
  345. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +113 -1
  346. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +195 -0
  347. package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +184 -0
  348. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +110 -0
  349. package/dist/types/components/charts/wm-chart-stack/wm-chart-stack.d.ts +194 -0
  350. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +156 -11
  351. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +53 -1
  352. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +85 -0
  353. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
  354. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +19 -3
  355. package/dist/types/components/datepickers/wm-date-range.d.ts +205 -14
  356. package/dist/types/components/datepickers/wm-datepicker.d.ts +189 -11
  357. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
  358. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +165 -1
  359. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
  360. package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
  361. package/dist/types/components/selects/wm-select/wm-select.d.ts +193 -12
  362. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +207 -2
  363. package/dist/types/components/wm-button/wm-button.d.ts +191 -0
  364. package/dist/types/components/wm-file/wm-file.d.ts +110 -1
  365. package/dist/types/components/wm-file-list/wm-file-list.d.ts +72 -0
  366. package/dist/types/components/wm-flyout/wm-flyout.d.ts +205 -0
  367. package/dist/types/components/wm-input/wm-input.d.ts +161 -1
  368. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +79 -0
  369. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
  370. package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
  371. package/dist/types/components/wm-modal/wm-modal.d.ts +160 -0
  372. package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
  373. package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
  374. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +6 -0
  375. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
  376. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
  377. package/dist/types/components/wm-navigation/wm-navigation.d.ts +57 -0
  378. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
  379. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
  380. package/dist/types/components/wm-navigator/wm-navigator.d.ts +93 -4
  381. package/dist/types/components/wm-pagination/wm-pagination.d.ts +100 -1
  382. package/dist/types/components/wm-search/wm-search.d.ts +158 -6
  383. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +103 -1
  384. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +55 -3
  385. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +119 -20
  386. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +35 -2
  387. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +199 -5
  388. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
  389. package/dist/types/components/wm-textarea/wm-textarea.d.ts +99 -0
  390. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +147 -0
  391. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +88 -2
  392. package/dist/types/components/wm-uploader/wm-uploader.d.ts +145 -3
  393. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
  394. package/dist/types/components.d.ts +11523 -95
  395. package/dist/types/global/functions.d.ts +7 -2
  396. package/dist/types/global/interfaces.d.ts +92 -2
  397. package/dist/types/global/intl.d.ts +3 -0
  398. package/dist/types/stencil-public-runtime.d.ts +0 -28
  399. package/package.json +4 -33
  400. package/dist/components/index.d.ts +0 -33
  401. package/dist/components/priv-calendar.d.ts +0 -11
  402. package/dist/components/priv-chart-popover.d.ts +0 -11
  403. package/dist/components/priv-navigator-button.d.ts +0 -11
  404. package/dist/components/priv-navigator-item.d.ts +0 -11
  405. package/dist/components/priv-option-list.d.ts +0 -11
  406. package/dist/components/wm-action-menu.d.ts +0 -11
  407. package/dist/components/wm-button.d.ts +0 -11
  408. package/dist/components/wm-chart-slice.d.ts +0 -11
  409. package/dist/components/wm-chart.d.ts +0 -11
  410. package/dist/components/wm-date-range.d.ts +0 -11
  411. package/dist/components/wm-datepicker.d.ts +0 -11
  412. package/dist/components/wm-file-list.d.ts +0 -11
  413. package/dist/components/wm-file.d.ts +0 -11
  414. package/dist/components/wm-flyout.d.ts +0 -11
  415. package/dist/components/wm-input.d.ts +0 -11
  416. package/dist/components/wm-line-chart.d.ts +0 -11
  417. package/dist/components/wm-menuitem.d.ts +0 -11
  418. package/dist/components/wm-modal-footer.d.ts +0 -11
  419. package/dist/components/wm-modal-header.d.ts +0 -11
  420. package/dist/components/wm-modal-pss-footer.d.ts +0 -11
  421. package/dist/components/wm-modal-pss-header.d.ts +0 -11
  422. package/dist/components/wm-modal-pss.d.ts +0 -11
  423. package/dist/components/wm-modal.d.ts +0 -11
  424. package/dist/components/wm-navigation-hamburger.d.ts +0 -11
  425. package/dist/components/wm-navigation-item.d.ts +0 -11
  426. package/dist/components/wm-navigation.d.ts +0 -11
  427. package/dist/components/wm-navigator.d.ts +0 -11
  428. package/dist/components/wm-nested-select.d.ts +0 -11
  429. package/dist/components/wm-optgroup.d.ts +0 -11
  430. package/dist/components/wm-option.d.ts +0 -11
  431. package/dist/components/wm-pagination.d.ts +0 -11
  432. package/dist/components/wm-progress-indicator.d.ts +0 -11
  433. package/dist/components/wm-progress-monitor.d.ts +0 -11
  434. package/dist/components/wm-progress-slice.d.ts +0 -11
  435. package/dist/components/wm-search.d.ts +0 -11
  436. package/dist/components/wm-select.d.ts +0 -11
  437. package/dist/components/wm-snackbar.d.ts +0 -11
  438. package/dist/components/wm-tab-item.d.ts +0 -11
  439. package/dist/components/wm-tab-list.d.ts +0 -11
  440. package/dist/components/wm-tab-panel.d.ts +0 -11
  441. package/dist/components/wm-tag-input.d.ts +0 -11
  442. package/dist/components/wm-tag-option.d.ts +0 -11
  443. package/dist/components/wm-textarea.d.ts +0 -11
  444. package/dist/components/wm-timepicker.d.ts +0 -11
  445. package/dist/components/wm-toggletip.d.ts +0 -11
  446. package/dist/components/wm-uploader.d.ts +0 -11
  447. package/dist/components/wm-wrapper.d.ts +0 -11
  448. package/dist/ripple/index-CU5QNCKv.js +0 -4167
  449. package/dist/ripple/interfaces-CrANcZM9.js +0 -53
  450. package/dist/ripple/wm-button.entry.js +0 -197
  451. package/dist/ripple/wm-chart.entry.js +0 -157
  452. package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
  453. package/dist/ripple/wm-modal-pss-header.entry.js +0 -39
  454. package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
  455. package/dist/ripple/wm-navigation-item.entry.js +0 -18
  456. package/dist/ripple/wm-option.entry.js +0 -171
  457. package/dist/ripple/wm-progress-slice.entry.js +0 -13
  458. package/dist/ripple/wm-select.entry.js +0 -249
  459. package/dist/ripple/wm-tab-item.entry.js +0 -63
  460. package/dist/ripple/wm-uploader.entry.js +0 -313
@@ -0,0 +1,878 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { forceUpdate } from "@stencil/core";
3
+ import { getTextDir, toBool, handleDisabledAttribute, showTooltip, hideTooltip, debounce, findAllScrollableParents, } from "../../../global/functions";
4
+ import { globalMessages, selectMessages } from "../../../global/intl";
5
+ /**
6
+ * Dropdown list of options that allows single or multi-select. Functionally similar to the
7
+ * native HTML `<select>` element but with Ripple styling and richer features including
8
+ * multiselect, search filtering, and a Select All control. Composed of a parent wm-select
9
+ * element and wm-option children.
10
+ *
11
+ * @category Basic Controls
12
+ *
13
+ * @keyboardInteraction
14
+ * - **Closed button**: Space / Enter / Arrow Down opens the dropdown and focuses the first
15
+ * option; Arrow Up opens and focuses the last option.
16
+ * - **Open dropdown**: Arrow Up / Down navigate options; Home / End jump to first / last;
17
+ * typing a letter jumps to the first matching option.
18
+ * - **Single-select**: Enter / Space / click selects and closes.
19
+ * - **Multi-select**: Enter / Space / click toggles selection; Tab or Escape closes.
20
+ * - **Shift+Tab** (from options): Closes and returns focus to the trigger button.
21
+ *
22
+ * @accessibility
23
+ * - `label` is required even when `label-position` is `"none"` — it is used as the dropdown's
24
+ * ARIA accessible name.
25
+ * - The dropdown renders with `role="listbox"`. Each wm-option renders with `role="option"`.
26
+ * - `required-field` renders a visible asterisk; the ARIA required constraint is communicated
27
+ * via the label rather than `aria-required` because the listbox is in a sub-component.
28
+ * - Validation errors are announced via an `aria-live` region when `error-message` changes.
29
+ *
30
+ * @usageNotes
31
+ * - Single-select: has no `placeholder` prop — a selection must always be present, and the
32
+ * component warns in the console if no option is initially selected. Since there's no way
33
+ * to distinguish "the user selected the first option" from "no selection was made," use a
34
+ * null-value first option to represent the unselected state and keep the component
35
+ * revertible to "no option chosen." That option must not be disabled, and for
36
+ * accessibility/consistency its label should be limited to "None", "Select an option", or
37
+ * "--".
38
+ * - Multi-select: all options deselected on load is valid; use `placeholder` for that state.
39
+ * - `search` is best with 50 or fewer options — it filters by visible label text only.
40
+ * - `select-all` requires `multiple` to be set.
41
+ * - Selection state is maintained via the `selected` prop on each wm-option child.
42
+ * - To respond to selection changes, listen for `wmOptionSelected` (declared on wm-option but
43
+ * bubbles to wm-select). `event.detail` is the `HTMLWmOptionElement`; read `.value` or
44
+ * `.textContent` to get the selected value.
45
+ *
46
+ * @example {html} Single-select
47
+ * <wm-select label="Program">
48
+ * <wm-option selected>Select a program</wm-option>
49
+ * <wm-option>Biology</wm-option>
50
+ * <wm-option>English</wm-option>
51
+ * </wm-select>
52
+ *
53
+ * @example {react} Single-select
54
+ * const [program, setProgram] = useState('');
55
+ *
56
+ * // event.detail is the selected HTMLWmOptionElement
57
+ * const handleSelect = (event) => {
58
+ * setProgram(event.detail.value ?? event.detail.textContent);
59
+ * };
60
+ *
61
+ * <WmSelect label="Program" onWmOptionSelected={handleSelect}>
62
+ * <WmOption selected>Select a program</WmOption>
63
+ * <WmOption value="bio">Biology</WmOption>
64
+ * <WmOption value="eng">English</WmOption>
65
+ * </WmSelect>
66
+ *
67
+ * @example {html} Multi-select with search and Select All
68
+ * <wm-select label="Programs" multiple search select-all
69
+ * placeholder="Select programs">
70
+ * <wm-option value="bio">Biology</wm-option>
71
+ * <wm-option value="eng">English</wm-option>
72
+ * </wm-select>
73
+ *
74
+ * @example {react} Multi-select with search and Select All
75
+ * const [selected, setSelected] = useState([]);
76
+ *
77
+ * // event.detail is the HTMLWmOptionElement that was selected or deselected
78
+ * const handleSelect = (event) => {
79
+ * const value = event.detail.value ?? event.detail.textContent;
80
+ * setSelected((prev) => [...prev, value]);
81
+ * };
82
+ *
83
+ * const handleDeselect = (event) => {
84
+ * const value = event.detail.value ?? event.detail.textContent;
85
+ * setSelected((prev) => prev.filter((v) => v !== value));
86
+ * };
87
+ *
88
+ * <WmSelect
89
+ * label="Programs"
90
+ * multiple={true}
91
+ * search={true}
92
+ * selectAll={true}
93
+ * placeholder="Select programs"
94
+ * onWmOptionSelected={handleSelect}
95
+ * onWmOptionDeselected={handleDeselect}
96
+ * >
97
+ * <WmOption value="bio">Biology</WmOption>
98
+ * <WmOption value="eng">English</WmOption>
99
+ * </WmSelect>
100
+ *
101
+ */
102
+ export class Select {
103
+ constructor() {
104
+ this.scrollableParents = [];
105
+ this.returnFocus = false;
106
+ this.hasAnchor = CSS.supports("top", "anchor(bottom)"); // for FF polyfill
107
+ this.displayedOptions = [];
108
+ this.debouncedReposition = debounce(() => {
109
+ this.dropdownPosition();
110
+ }, 100);
111
+ this.disabled = false;
112
+ this.maxHeight = "200px";
113
+ this.label = undefined;
114
+ this.labelPosition = "top";
115
+ this.requiredField = false;
116
+ this.errorMessage = undefined;
117
+ this.multiple = false;
118
+ this.search = false;
119
+ this.selectAll = false;
120
+ this.placeholder = selectMessages.multiPlaceholder;
121
+ this.searchPlaceholder = selectMessages.searchPlaceholder;
122
+ this.allSelectedMessage = selectMessages.allSelected;
123
+ this.info = undefined;
124
+ this.isExpanded = false;
125
+ this.isHidden = false;
126
+ this.openUp = false;
127
+ this.announcement = "";
128
+ }
129
+ get childOptions() {
130
+ return Array.from(this.el.querySelectorAll("wm-option"));
131
+ }
132
+ get isDisabled() {
133
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
134
+ return toBool(this.disabled);
135
+ }
136
+ get displayText() {
137
+ return this.displayedOptions.map((x) => x.textContent).join(", ");
138
+ }
139
+ get selectedOptions() {
140
+ return Array.from(this.el.querySelectorAll("wm-option")).filter((x) => x.selected);
141
+ }
142
+ get allSelected() {
143
+ return this.childOptions.every((option) => option.selected);
144
+ }
145
+ //////////////////////////////////////
146
+ handleOptionSelection() {
147
+ if (!this.multiple) {
148
+ this.returnFocus = true;
149
+ this.dropdownEl.hidePopover();
150
+ }
151
+ }
152
+ handleChildEnter() {
153
+ // only occurs for multiselects. handle the click, then close
154
+ this.returnFocus = true;
155
+ this.dropdownEl.hidePopover();
156
+ }
157
+ closeDropdownOnEscape() {
158
+ this.returnFocus = true;
159
+ this.dropdownEl.hidePopover();
160
+ }
161
+ handleToggle(ev) {
162
+ ev.newState === "open" ? this.onOpen() : this.onClose();
163
+ }
164
+ dropdownPosition() {
165
+ // polyfill for opening up or down + positioning according to screen
166
+ // (must recalculate on scroll, resize)
167
+ // Using transform for better performance - only affects composite layer, no layout recalculation
168
+ const buttonElRect = this.buttonEl.getBoundingClientRect();
169
+ const spaceAbove = buttonElRect.top;
170
+ const spaceBelow = document.documentElement.clientHeight - buttonElRect.bottom;
171
+ const dropdownHeight = this.dropdownEl.clientHeight;
172
+ // Clear any previously set positioning properties
173
+ this.el.style.removeProperty("--dropdown-translate-y");
174
+ this.el.style.removeProperty("--dropdown-max-height");
175
+ this.el.style.removeProperty("--dropdown-left");
176
+ // Set horizontal position and width to match button
177
+ this.el.style.setProperty("--dropdown-left", buttonElRect.left + "px");
178
+ this.el.style.setProperty("--button-width", buttonElRect.width + "px");
179
+ if (dropdownHeight <= spaceBelow) {
180
+ // Case 1: Enough space below - position dropdown below the button
181
+ this.el.style.setProperty("--dropdown-translate-y", buttonElRect.bottom + "px");
182
+ }
183
+ else if (dropdownHeight <= spaceAbove) {
184
+ // Case 2: Not enough space below, but enough above - position dropdown above the button
185
+ this.el.style.setProperty("--dropdown-translate-y", buttonElRect.top - dropdownHeight + "px");
186
+ }
187
+ else {
188
+ // Case 3: Not enough space in either direction - use the larger available space and constrain height
189
+ if (spaceBelow >= spaceAbove) {
190
+ // Use space below and constrain dropdown height
191
+ this.el.style.setProperty("--dropdown-translate-y", buttonElRect.bottom + "px");
192
+ this.el.style.setProperty("--dropdown-max-height", spaceBelow + "px");
193
+ }
194
+ else {
195
+ // Use space above and constrain dropdown height
196
+ this.el.style.setProperty("--dropdown-translate-y", "0px");
197
+ this.el.style.setProperty("--dropdown-max-height", spaceAbove + "px");
198
+ }
199
+ }
200
+ this.isHidden = false;
201
+ }
202
+ onOpen() {
203
+ if (!this.isExpanded && !this.isDisabled) {
204
+ // polyfill for browsers without anchor() support (FF)
205
+ if (!this.hasAnchor) {
206
+ this.dropdownPosition();
207
+ }
208
+ requestAnimationFrame(() => {
209
+ const anchorRect = this.buttonEl.getBoundingClientRect();
210
+ const hasSpaceBelow = this.dropdownEl.offsetHeight <= document.documentElement.clientHeight - anchorRect.bottom;
211
+ const hasSpaceAbove = this.dropdownEl.offsetHeight <= anchorRect.top;
212
+ this.openUp = !hasSpaceBelow && hasSpaceAbove;
213
+ if (!hasSpaceBelow && !hasSpaceAbove) {
214
+ // dropdown will open downwards but doesn't have enough space
215
+ // it needs to be absolutely positioned + html has to have overflow-y auto
216
+ // (the default, but could have been overriden)
217
+ // in order to ensure the options can be scrolled to
218
+ // (would already be possible if the page has content below. this is in case select was at bottom of page)
219
+ this.initialHtmlOverflowY = document.documentElement.style.overflowY;
220
+ document.documentElement.style.overflowY = "auto";
221
+ this.dropdownEl.style.position = "absolute";
222
+ }
223
+ this.isExpanded = true;
224
+ });
225
+ setTimeout(() => {
226
+ // focusing doesn't work when within requestAnimationFrame
227
+ this.optionListEl.handleInitialFocus(this.elToFocus);
228
+ this.elToFocus = undefined;
229
+ }, 50);
230
+ }
231
+ }
232
+ onClose() {
233
+ if (this.isExpanded) {
234
+ this.optionListEl.unfocusAll();
235
+ // see onOpen
236
+ document.documentElement.style.overflowY = this.initialHtmlOverflowY || "";
237
+ this.dropdownEl.style.position = "fixed";
238
+ window.setTimeout(() => {
239
+ if (!this.hasAnchor) {
240
+ this.isHidden = true;
241
+ }
242
+ if (this.optionListEl.multiple) {
243
+ this.optionListEl.updateOptionVisibility();
244
+ }
245
+ // clear search field, reset filtered / bolded state of wm-options
246
+ if (this.search) {
247
+ this.optionListEl.clearSearch();
248
+ }
249
+ this.isExpanded = false;
250
+ }, 150);
251
+ if (this.returnFocus) {
252
+ requestAnimationFrame(() => {
253
+ this.buttonEl.focus();
254
+ this.returnFocus = false;
255
+ });
256
+ }
257
+ }
258
+ }
259
+ handleKey(ev) {
260
+ switch (ev.key) {
261
+ case "Tab":
262
+ // if tabbing backwards, close and return focus to button. Otherwise, close but do not redirect focus.
263
+ if (this.isExpanded && ev.shiftKey) {
264
+ this.returnFocus = true;
265
+ }
266
+ this.dropdownEl.hidePopover();
267
+ break;
268
+ case "ArrowDown":
269
+ if (this.isExpanded === false) {
270
+ ev.preventDefault();
271
+ this.elToFocus = "next";
272
+ this.dropdownEl.showPopover();
273
+ }
274
+ break;
275
+ case "ArrowUp":
276
+ if (this.isExpanded === false) {
277
+ ev.preventDefault();
278
+ this.elToFocus = "previous";
279
+ this.dropdownEl.showPopover();
280
+ }
281
+ break;
282
+ }
283
+ }
284
+ handleResize() {
285
+ if (!this.hasAnchor && this.isExpanded) {
286
+ this.isHidden = true;
287
+ this.debouncedReposition();
288
+ }
289
+ }
290
+ handleScroll() {
291
+ if (this.isExpanded) {
292
+ this.isHidden = true;
293
+ this.debouncedReposition();
294
+ }
295
+ }
296
+ componentWillLoad() {
297
+ if (!this.hasAnchor) {
298
+ // Start hidden to prevent flash on first load
299
+ this.isHidden = true;
300
+ }
301
+ if (!this.label) {
302
+ console.error("For accessibility purposes, this component requires a label (even if `label-position` is set to `none`).");
303
+ }
304
+ if (!this.multiple && this.selectedOptions.length === 0) {
305
+ console.error("wm-select should have one initial option selected");
306
+ }
307
+ handleDisabledAttribute(this.el, this.isDisabled);
308
+ const mutationObserver = new MutationObserver((mutationRecordList) => mutationRecordList.forEach((_mutationRecord) => this.handleChildChange()));
309
+ mutationObserver.observe(this.el, {
310
+ childList: true,
311
+ attributes: true,
312
+ subtree: true,
313
+ attributeFilter: ["selected"],
314
+ });
315
+ }
316
+ handleChildChange() {
317
+ forceUpdate(this.el);
318
+ if (this.multiple) {
319
+ // update state of clone options
320
+ this.optionListEl.handleChildChange();
321
+ }
322
+ }
323
+ componentDidLoad() {
324
+ this.wmSelectDidLoad.emit();
325
+ if (!this.hasAnchor) {
326
+ this.scrollableParents = findAllScrollableParents(this.el);
327
+ // Add scroll listeners to all scrollable parents
328
+ this.scrollableParents.forEach((parent) => {
329
+ if (parent === document.documentElement) {
330
+ // For document element, listen to window scroll event
331
+ window.addEventListener("scroll", () => this.handleScroll());
332
+ }
333
+ else {
334
+ // For regular elements, listen to their scroll event
335
+ parent.addEventListener("scroll", () => this.handleScroll());
336
+ }
337
+ });
338
+ }
339
+ }
340
+ announceError() {
341
+ if (this.errorMessage) {
342
+ setTimeout(() => this.announce(this.errorMessage), 100);
343
+ }
344
+ }
345
+ handleDisabledChange() {
346
+ handleDisabledAttribute(this.el, this.isDisabled);
347
+ }
348
+ handleComponentBlur(ev) {
349
+ // Do not close or emit custom blur event when blurring to an element inside (wm-option)
350
+ if (!this.el.contains(ev.relatedTarget)) {
351
+ this.wmSelectBlurred.emit();
352
+ }
353
+ }
354
+ handleLabelMouseEnter(ev) {
355
+ const labelEl = ev.target;
356
+ if (labelEl.scrollWidth > labelEl.clientWidth) {
357
+ showTooltip("right", ev.target, this.label);
358
+ }
359
+ }
360
+ announce(message) {
361
+ // \u00A0 is a non-breaking space character, which causes the message to be read as a new one
362
+ if (this.liveRegionEl.textContent === message) {
363
+ message += "\u00A0";
364
+ }
365
+ this.announcement = message;
366
+ }
367
+ handleOverflow() {
368
+ if (!this.buttonEl) {
369
+ forceUpdate(this.el);
370
+ }
371
+ else {
372
+ // handle overflow + counter for multiselect
373
+ // this is a fixed measurement accounting for the max width of a 3 character overflow counter
374
+ const overflowCounterWidth = 38;
375
+ const computedStyle = window.getComputedStyle(this.buttonEl);
376
+ // there seems to be no quick way to get an elements width without padding, except for subtracting padding manually
377
+ const paddingLeft = parseInt(computedStyle.getPropertyValue("padding-left").slice(0, -2));
378
+ const paddingRight = parseInt(computedStyle.getPropertyValue("padding-right").slice(0, -2));
379
+ const availableSpace = this.buttonEl.clientWidth - paddingLeft - paddingRight - overflowCounterWidth;
380
+ this.overflowCount = 0;
381
+ this.measurementAreaEl.textContent = this.displayText;
382
+ let optionsTotalWidth = this.measurementAreaEl.clientWidth;
383
+ while (optionsTotalWidth > availableSpace && this.displayedOptions.length > 1) {
384
+ this.overflowCount++;
385
+ this.displayedOptions.pop();
386
+ this.measurementAreaEl.textContent = this.displayText;
387
+ optionsTotalWidth = this.measurementAreaEl.clientWidth;
388
+ }
389
+ }
390
+ }
391
+ setButtonText() {
392
+ if (!this.multiple) {
393
+ const selEl = this.childOptions.filter((x) => x.selected)[0];
394
+ return selEl ? selEl.textContent : "";
395
+ }
396
+ this.displayedOptions = this.childOptions.filter((x) => x.selected);
397
+ const noDisplayedOptions = this.displayedOptions.length < 1;
398
+ if (noDisplayedOptions) {
399
+ this.overflowCount = 0;
400
+ return this.placeholder;
401
+ }
402
+ this.handleOverflow();
403
+ if (this.allSelected) {
404
+ // Consolidated label when every option is selected; do not show the +N overflow badge.
405
+ // On first render, handleOverflow may not have measured yet; we still show this message.
406
+ this.overflowCount = 0;
407
+ this.buttonText = this.allSelectedMessage;
408
+ }
409
+ else {
410
+ // otherwise, if handleOverflow was able to calculate, it set the count and the display text
411
+ // if it wasn't able to calculate, the text of all the selected options will be displayed and may truncate (acceptable as fallback)
412
+ this.buttonText = this.displayText;
413
+ }
414
+ return this.buttonText; // multiselect value
415
+ }
416
+ renderOverflowCount() {
417
+ if (this.overflowCount > 0) {
418
+ return (h("span", null, h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
419
+ }
420
+ }
421
+ render() {
422
+ const showRequired = this.labelPosition !== "none" && this.requiredField;
423
+ return (h(Host, { key: 'f70c523818ecb070061c5750ddd793b4375ca7d7', onBlur: (ev) => this.handleComponentBlur(ev) }, h("div", { key: '2f648b5082ffa541ed1c3d72ef1b5ebb161ea15c', class: `wrapper ${getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, h("div", { key: '83e582f81d749205d72ef33851bb60e471e4b859', class: "label-wrapper" }, h("label", { key: '21c8583c1f5510ed2f93094ef0d22898e298728c', class: "label", id: "label", htmlFor: "selectbtn", onMouseEnter: (ev) => this.handleLabelMouseEnter(ev), onMouseLeave: () => hideTooltip() }, this.label),
424
+ // we can't use aria-required because the listbox is in a sub-component and it is not announced;
425
+ // instead the sr-only text is included in the button's aria-labelledby below
426
+ showRequired && (h("span", { key: '6510b0db8f404b00c5a95b0996aac71917c1ab77', class: "required" }, h("span", { key: 'e39f5c4d7f7b432d4c3b9ff9177cf0dc0a416bb7', class: "sr-only", id: "required" }, globalMessages.requiredField), h("span", { key: '8b3c8e2c934e1faca6db74eaa9b953dad40f3570', "aria-hidden": "true" }, "*")))), h("div", { key: '74a055700ee1622c263206b45a52d19f57648807', class: "button-wrapper" }, h("button", { key: '84cb7ca0dfcb742b34fbf107e59a4859709ba7d1', id: "selectbtn", disabled: this.isDisabled, "aria-labelledby": showRequired ? "label required selectbtn" : "label selectbtn", "aria-describedby": "info error", popoverTarget: "dropdown", popoverTargetAction: "toggle", class: "displayedoption", ref: (el) => (this.buttonEl = el) }, h("span", { key: '03b78ab8e7ea097f344e5d1947387cce6b5f4d27', class: "overflowcontrol" }, h("span", { key: '675ce4e5931d8822e62d8c7eabfda07759ee8720', class: "button-text" }, this.setButtonText())), h("div", { key: '5da2f36c2438cb96a721c6f6e9412ef95a40ef03', class: `expand-icon svg-icon ${this.isExpanded ? "svg-expand-less" : "svg-expand-more"}` }), this.renderOverflowCount(), h("div", { key: '3e9f1140bee3f6825a5b3b10958f446d1b3adb41', ref: (el) => (this.measurementAreaEl = el), class: "measurement-area", "aria-hidden": "true" })), h("div", { key: '17f3c905ba01331b738e322b02cbb0f9789bff7b',
427
+ // is-open is for the CSS transition in modern browsers
428
+ // hidden is to wait for position calculations in Firefox
429
+ class: `dropdown ${this.isExpanded ? "is-open" : ""} ${this.isHidden ? "hidden" : ""} ${this.openUp ? "upward" : ""}`, id: "dropdown", popover: "auto", ref: (el) => (this.dropdownEl = el),
430
+ // @ts-ignore -- don't tell typescript but we're in the future
431
+ onToggle: (ev) => this.handleToggle(ev) }, h("priv-option-list", { key: '99d213da0ba3cd67dfa3da56ed16bbcad18e4cb6', ref: (el) => (this.optionListEl = el), multiple: this.multiple, search: this.search, selectAll: this.selectAll, maxHeight: this.maxHeight, searchPlaceholder: this.searchPlaceholder, onOptionListCloseRequested: () => {
432
+ this.dropdownEl.hidePopover();
433
+ }, onOptionListAllSelected: () => {
434
+ this.returnFocus = true;
435
+ this.wmSelectAllSelected.emit();
436
+ }, onOptionListAllDeselected: () => {
437
+ this.returnFocus = true;
438
+ this.wmSelectAllDeselected.emit();
439
+ } }, h("slot", { key: '989c9f0a96cc70227c497c0cb00cd0104cd71015' }))), this.info && h("div", { key: '184f9893590c433fd0eac7c9d5972dcd6980f31a', class: "info" }, this.info), h("div", { key: '0937d79b083c116e911f0cd5fefc1f6d801ffe95', id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage), h("div", { key: '07e61a5651ef082e844d1e74b2bb4174de5b4abf', id: "announcement", "aria-live": "polite", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
440
+ }
441
+ static get is() { return "wm-select"; }
442
+ static get encapsulation() { return "shadow"; }
443
+ static get delegatesFocus() { return true; }
444
+ static get originalStyleUrls() {
445
+ return {
446
+ "$": ["wm-select.scss"]
447
+ };
448
+ }
449
+ static get styleUrls() {
450
+ return {
451
+ "$": ["wm-select.css"]
452
+ };
453
+ }
454
+ static get properties() {
455
+ return {
456
+ "disabled": {
457
+ "type": "boolean",
458
+ "mutable": false,
459
+ "complexType": {
460
+ "original": "boolean",
461
+ "resolved": "boolean",
462
+ "references": {}
463
+ },
464
+ "required": false,
465
+ "optional": false,
466
+ "docs": {
467
+ "tags": [{
468
+ "name": "description",
469
+ "text": "Disables the entire select component, preventing all interaction."
470
+ }, {
471
+ "name": "default",
472
+ "text": "false"
473
+ }],
474
+ "text": ""
475
+ },
476
+ "attribute": "disabled",
477
+ "reflect": true,
478
+ "defaultValue": "false"
479
+ },
480
+ "maxHeight": {
481
+ "type": "string",
482
+ "mutable": false,
483
+ "complexType": {
484
+ "original": "string",
485
+ "resolved": "string",
486
+ "references": {}
487
+ },
488
+ "required": false,
489
+ "optional": false,
490
+ "docs": {
491
+ "tags": [{
492
+ "name": "description",
493
+ "text": "Overrides the maximum height of the options list. Accepts any valid CSS\nlength value (e.g. `\"20rem\"`, `\"300px\"`)."
494
+ }, {
495
+ "name": "default",
496
+ "text": "\"200px\""
497
+ }],
498
+ "text": ""
499
+ },
500
+ "attribute": "max-height",
501
+ "reflect": false,
502
+ "defaultValue": "\"200px\""
503
+ },
504
+ "label": {
505
+ "type": "string",
506
+ "mutable": true,
507
+ "complexType": {
508
+ "original": "string",
509
+ "resolved": "string | undefined",
510
+ "references": {}
511
+ },
512
+ "required": false,
513
+ "optional": true,
514
+ "docs": {
515
+ "tags": [{
516
+ "name": "description",
517
+ "text": "Accessible label for the dropdown. Required even when `label-position` is\n`\"none\"` \u2014 used as the ARIA accessible name."
518
+ }, {
519
+ "name": "required",
520
+ "text": undefined
521
+ }],
522
+ "text": ""
523
+ },
524
+ "attribute": "label",
525
+ "reflect": false
526
+ },
527
+ "labelPosition": {
528
+ "type": "string",
529
+ "mutable": false,
530
+ "complexType": {
531
+ "original": "\"top\" | \"left\" | \"none\"",
532
+ "resolved": "\"left\" | \"none\" | \"top\"",
533
+ "references": {}
534
+ },
535
+ "required": false,
536
+ "optional": false,
537
+ "docs": {
538
+ "tags": [{
539
+ "name": "description",
540
+ "text": "Position of the label relative to the dropdown button. `\"none\"` hides the\nlabel visually but keeps it accessible via ARIA."
541
+ }, {
542
+ "name": "default",
543
+ "text": "\"top\""
544
+ }],
545
+ "text": ""
546
+ },
547
+ "attribute": "label-position",
548
+ "reflect": false,
549
+ "defaultValue": "\"top\""
550
+ },
551
+ "requiredField": {
552
+ "type": "boolean",
553
+ "mutable": false,
554
+ "complexType": {
555
+ "original": "boolean",
556
+ "resolved": "boolean",
557
+ "references": {}
558
+ },
559
+ "required": false,
560
+ "optional": false,
561
+ "docs": {
562
+ "tags": [{
563
+ "name": "description",
564
+ "text": "Displays a required-field asterisk (*) next to the label."
565
+ }, {
566
+ "name": "default",
567
+ "text": "false"
568
+ }],
569
+ "text": ""
570
+ },
571
+ "attribute": "required-field",
572
+ "reflect": false,
573
+ "defaultValue": "false"
574
+ },
575
+ "errorMessage": {
576
+ "type": "string",
577
+ "mutable": true,
578
+ "complexType": {
579
+ "original": "string",
580
+ "resolved": "string | undefined",
581
+ "references": {}
582
+ },
583
+ "required": false,
584
+ "optional": true,
585
+ "docs": {
586
+ "tags": [{
587
+ "name": "description",
588
+ "text": "Puts the component in an error state and displays this message beneath the\ntrigger button. Use for form validation feedback."
589
+ }],
590
+ "text": ""
591
+ },
592
+ "attribute": "error-message",
593
+ "reflect": false
594
+ },
595
+ "multiple": {
596
+ "type": "boolean",
597
+ "mutable": false,
598
+ "complexType": {
599
+ "original": "boolean",
600
+ "resolved": "boolean",
601
+ "references": {}
602
+ },
603
+ "required": false,
604
+ "optional": false,
605
+ "docs": {
606
+ "tags": [{
607
+ "name": "description",
608
+ "text": "Enables multiselect mode, allowing more than one option to be selected\nsimultaneously."
609
+ }, {
610
+ "name": "default",
611
+ "text": "false"
612
+ }],
613
+ "text": ""
614
+ },
615
+ "attribute": "multiple",
616
+ "reflect": false,
617
+ "defaultValue": "false"
618
+ },
619
+ "search": {
620
+ "type": "boolean",
621
+ "mutable": false,
622
+ "complexType": {
623
+ "original": "boolean",
624
+ "resolved": "boolean",
625
+ "references": {}
626
+ },
627
+ "required": false,
628
+ "optional": false,
629
+ "docs": {
630
+ "tags": [{
631
+ "name": "description",
632
+ "text": "Adds a search input inside the dropdown that filters visible options by label\ntext. Compatible with both single and multiselect modes. Best with 50 or fewer options."
633
+ }, {
634
+ "name": "default",
635
+ "text": "false"
636
+ }],
637
+ "text": ""
638
+ },
639
+ "attribute": "search",
640
+ "reflect": false,
641
+ "defaultValue": "false"
642
+ },
643
+ "selectAll": {
644
+ "type": "boolean",
645
+ "mutable": false,
646
+ "complexType": {
647
+ "original": "boolean",
648
+ "resolved": "boolean",
649
+ "references": {}
650
+ },
651
+ "required": false,
652
+ "optional": false,
653
+ "docs": {
654
+ "tags": [{
655
+ "name": "description",
656
+ "text": "Adds a \"Select All\" / \"Deselect All\" toggle at the top of the dropdown.\nHas no effect unless `multiple` is also set."
657
+ }, {
658
+ "name": "default",
659
+ "text": "false"
660
+ }],
661
+ "text": ""
662
+ },
663
+ "attribute": "select-all",
664
+ "reflect": false,
665
+ "defaultValue": "false"
666
+ },
667
+ "placeholder": {
668
+ "type": "string",
669
+ "mutable": false,
670
+ "complexType": {
671
+ "original": "string",
672
+ "resolved": "string",
673
+ "references": {}
674
+ },
675
+ "required": false,
676
+ "optional": false,
677
+ "docs": {
678
+ "tags": [{
679
+ "name": "description",
680
+ "text": "Text displayed in the trigger button in multiselect mode when no options are\nselected. Not applicable in single-select mode \u2014 use a null-value first option instead."
681
+ }],
682
+ "text": ""
683
+ },
684
+ "attribute": "placeholder",
685
+ "reflect": false,
686
+ "defaultValue": "selectMessages.multiPlaceholder"
687
+ },
688
+ "searchPlaceholder": {
689
+ "type": "string",
690
+ "mutable": false,
691
+ "complexType": {
692
+ "original": "string",
693
+ "resolved": "string",
694
+ "references": {}
695
+ },
696
+ "required": false,
697
+ "optional": false,
698
+ "docs": {
699
+ "tags": [{
700
+ "name": "description",
701
+ "text": "Placeholder text displayed inside the search input when `search` is enabled."
702
+ }],
703
+ "text": ""
704
+ },
705
+ "attribute": "search-placeholder",
706
+ "reflect": false,
707
+ "defaultValue": "selectMessages.searchPlaceholder"
708
+ },
709
+ "allSelectedMessage": {
710
+ "type": "string",
711
+ "mutable": false,
712
+ "complexType": {
713
+ "original": "string",
714
+ "resolved": "string",
715
+ "references": {}
716
+ },
717
+ "required": false,
718
+ "optional": false,
719
+ "docs": {
720
+ "tags": [{
721
+ "name": "description",
722
+ "text": "Text displayed in the trigger button in multiselect mode when every option\nis selected."
723
+ }],
724
+ "text": ""
725
+ },
726
+ "attribute": "all-selected-message",
727
+ "reflect": false,
728
+ "defaultValue": "selectMessages.allSelected"
729
+ },
730
+ "info": {
731
+ "type": "string",
732
+ "mutable": false,
733
+ "complexType": {
734
+ "original": "string",
735
+ "resolved": "string | undefined",
736
+ "references": {}
737
+ },
738
+ "required": false,
739
+ "optional": true,
740
+ "docs": {
741
+ "tags": [{
742
+ "name": "description",
743
+ "text": "Informational hint text rendered beneath the dropdown button. Use for\nsupporting instructions or constraints."
744
+ }],
745
+ "text": ""
746
+ },
747
+ "attribute": "info",
748
+ "reflect": false
749
+ }
750
+ };
751
+ }
752
+ static get states() {
753
+ return {
754
+ "isExpanded": {},
755
+ "isHidden": {},
756
+ "openUp": {},
757
+ "announcement": {}
758
+ };
759
+ }
760
+ static get events() {
761
+ return [{
762
+ "method": "wmSelectDidLoad",
763
+ "name": "wmSelectDidLoad",
764
+ "bubbles": true,
765
+ "cancelable": true,
766
+ "composed": true,
767
+ "docs": {
768
+ "tags": [{
769
+ "name": "description",
770
+ "text": "Fires after the component has finished loading and is ready for interaction.\nUse this to read initial selection state or call methods."
771
+ }],
772
+ "text": ""
773
+ },
774
+ "complexType": {
775
+ "original": "void",
776
+ "resolved": "void",
777
+ "references": {}
778
+ }
779
+ }, {
780
+ "method": "wmSelectBlurred",
781
+ "name": "wmSelectBlurred",
782
+ "bubbles": true,
783
+ "cancelable": true,
784
+ "composed": true,
785
+ "docs": {
786
+ "tags": [{
787
+ "name": "description",
788
+ "text": "Fires when focus leaves the component entirely (not when moving between\nthe trigger and an option within the dropdown)."
789
+ }],
790
+ "text": ""
791
+ },
792
+ "complexType": {
793
+ "original": "void",
794
+ "resolved": "void",
795
+ "references": {}
796
+ }
797
+ }, {
798
+ "method": "wmSelectAllSelected",
799
+ "name": "wmSelectAllSelected",
800
+ "bubbles": true,
801
+ "cancelable": true,
802
+ "composed": true,
803
+ "docs": {
804
+ "tags": [{
805
+ "name": "description",
806
+ "text": "Fires when the user clicks \"Select All\" in multiselect mode and all options\nbecome selected."
807
+ }],
808
+ "text": ""
809
+ },
810
+ "complexType": {
811
+ "original": "any",
812
+ "resolved": "any",
813
+ "references": {}
814
+ }
815
+ }, {
816
+ "method": "wmSelectAllDeselected",
817
+ "name": "wmSelectAllDeselected",
818
+ "bubbles": true,
819
+ "cancelable": true,
820
+ "composed": true,
821
+ "docs": {
822
+ "tags": [{
823
+ "name": "description",
824
+ "text": "Fires when the user clicks \"Deselect All\" in multiselect mode and all\noptions become deselected."
825
+ }],
826
+ "text": ""
827
+ },
828
+ "complexType": {
829
+ "original": "any",
830
+ "resolved": "any",
831
+ "references": {}
832
+ }
833
+ }];
834
+ }
835
+ static get elementRef() { return "el"; }
836
+ static get watchers() {
837
+ return [{
838
+ "propName": "errorMessage",
839
+ "methodName": "announceError"
840
+ }, {
841
+ "propName": "disabled",
842
+ "methodName": "handleDisabledChange"
843
+ }];
844
+ }
845
+ static get listeners() {
846
+ return [{
847
+ "name": "wmOptionSelected",
848
+ "method": "handleOptionSelection",
849
+ "target": undefined,
850
+ "capture": false,
851
+ "passive": false
852
+ }, {
853
+ "name": "wmEnterKeyPressed",
854
+ "method": "handleChildEnter",
855
+ "target": undefined,
856
+ "capture": false,
857
+ "passive": false
858
+ }, {
859
+ "name": "wmEscKeyPressed",
860
+ "method": "closeDropdownOnEscape",
861
+ "target": undefined,
862
+ "capture": false,
863
+ "passive": false
864
+ }, {
865
+ "name": "keydown",
866
+ "method": "handleKey",
867
+ "target": undefined,
868
+ "capture": false,
869
+ "passive": false
870
+ }, {
871
+ "name": "resize",
872
+ "method": "handleResize",
873
+ "target": "window",
874
+ "capture": false,
875
+ "passive": true
876
+ }];
877
+ }
878
+ }