@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,805 @@
1
+ import { h, Host, forceUpdate } from "@stencil/core";
2
+ import { getContextMeasurements, getTextDir, isElOrChild, shouldOpenUp, toBool, showTooltip, hideTooltip, } from "../../../global/functions";
3
+ import { globalMessages, selectMessages } from "../../../global/intl";
4
+ /**
5
+ * Dropdown list of grouped options that allows single or multi-select. Like wm-select but
6
+ * options are organized into labeled categories via a two-level hierarchy. Composed of a
7
+ * parent wm-nested-select, one or more wm-optgroup children, and wm-option elements inside
8
+ * each group.
9
+ *
10
+ * @category Basic Controls
11
+ *
12
+ * @keyboardInteraction
13
+ * - **Closed button**: Space / Enter / Arrow Down opens the dropdown and focuses the first
14
+ * group; Arrow Up opens and focuses the last group.
15
+ * - **Group level**: Arrow Up / Down navigate group buttons; Arrow Right / Enter enters the
16
+ * group; Escape closes the dropdown.
17
+ * - **Option level (inside a group)**: Arrow Up / Down navigate options; Arrow Left returns
18
+ * to the group list; Home / End jump to first / last option; typing a letter jumps to the
19
+ * first matching option.
20
+ * - **Tab** (anywhere in dropdown): Closes the dropdown.
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
+ * - Group buttons render with `role="menuitem"` inside a `role="menu"`. The option level
26
+ * renders as a `role="listbox"` with `role="option"` items.
27
+ * - Validation errors are announced via an `aria-live` region when `error-message` changes.
28
+ *
29
+ * @usageNotes
30
+ * - Selection state is maintained via the `selected` prop on each wm-option child.
31
+ * - To respond to selection changes, listen for `wmOptionSelected` (declared on wm-option but
32
+ * bubbles to wm-nested-select). `event.detail` is the `HTMLWmOptionElement`; read `.value`
33
+ * or `.textContent` to get the selected value.
34
+ * - `select-all` adds a "Select All / Deselect All" toggle at the top of each group; it
35
+ * requires `multiple` to be set.
36
+ * - `search` filters options within the currently open group only.
37
+ *
38
+ * @example {html} Single-select nested select
39
+ * <wm-nested-select label="Department">
40
+ * <wm-optgroup label="Sciences">
41
+ * <wm-option selected>Select a department</wm-option>
42
+ * <wm-option>Biology</wm-option>
43
+ * </wm-optgroup>
44
+ * <wm-optgroup label="Humanities">
45
+ * <wm-option>English</wm-option>
46
+ * </wm-optgroup>
47
+ * </wm-nested-select>
48
+ *
49
+ * @example {react} Single-select nested select
50
+ * const [department, setDepartment] = useState('');
51
+ *
52
+ * // event.detail is the selected HTMLWmOptionElement
53
+ * const handleSelect = (event) => {
54
+ * setDepartment(event.detail.value ?? event.detail.textContent);
55
+ * };
56
+ *
57
+ * <WmNestedSelect label="Department" onWmOptionSelected={handleSelect}>
58
+ * <WmOptgroup label="Sciences">
59
+ * <WmOption selected>Select a department</WmOption>
60
+ * <WmOption value="bio">Biology</WmOption>
61
+ * </WmOptgroup>
62
+ * <WmOptgroup label="Humanities">
63
+ * <WmOption value="eng">English</WmOption>
64
+ * </WmOptgroup>
65
+ * </WmNestedSelect>
66
+ *
67
+ * @example {html} Multi-select with Select All
68
+ * <wm-nested-select label="Programs" multiple select-all>
69
+ * <wm-optgroup label="Sciences">
70
+ * <wm-option value="bio">Biology</wm-option>
71
+ * <wm-option value="chem">Chemistry</wm-option>
72
+ * </wm-optgroup>
73
+ * </wm-nested-select>
74
+ *
75
+ * @example {react} Multi-select with Select All
76
+ * const [selected, setSelected] = useState([]);
77
+ *
78
+ * // event.detail is the HTMLWmOptionElement that was selected or deselected
79
+ * const handleSelect = (event) => {
80
+ * const value = event.detail.value ?? event.detail.textContent;
81
+ * setSelected((prev) => [...prev, value]);
82
+ * };
83
+ *
84
+ * const handleDeselect = (event) => {
85
+ * const value = event.detail.value ?? event.detail.textContent;
86
+ * setSelected((prev) => prev.filter((v) => v !== value));
87
+ * };
88
+ *
89
+ * <WmNestedSelect
90
+ * label="Programs"
91
+ * multiple={true}
92
+ * selectAll={true}
93
+ * onWmOptionSelected={handleSelect}
94
+ * onWmOptionDeselected={handleDeselect}
95
+ * >
96
+ * <WmOptgroup label="Sciences">
97
+ * <WmOption value="bio">Biology</WmOption>
98
+ * <WmOption value="chem">Chemistry</WmOption>
99
+ * </WmOptgroup>
100
+ * </WmNestedSelect>
101
+ *
102
+ */
103
+ export class NestedSelect {
104
+ constructor() {
105
+ this.openUp = false;
106
+ this.overflowCount = 0;
107
+ this.displayedOptions = [];
108
+ this.clearSelectionMessage = this.multiple
109
+ ? selectMessages.multiClearSelection
110
+ : selectMessages.singleClearSelection;
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 = this.multiple ? selectMessages.multiPlaceholder : selectMessages.singlePlaceholder;
121
+ this.searchPlaceholder = selectMessages.searchPlaceholder;
122
+ this.allSelectedMessage = selectMessages.allSelected;
123
+ this.isExpanded = false;
124
+ this.isGroupExpanded = false;
125
+ this.showClearSelectionButton = false;
126
+ this.announcement = "";
127
+ this.constrainedMaxHeight = this.maxHeight;
128
+ }
129
+ get isDisabled() {
130
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
131
+ return toBool(this.disabled);
132
+ }
133
+ get childOptions() {
134
+ return Array.from(this.el.querySelectorAll("wm-option"));
135
+ }
136
+ get optgroupEls() {
137
+ return Array.from(this.el.querySelectorAll("wm-optgroup"));
138
+ }
139
+ get menuitemEls() {
140
+ return Array.from(this.el.shadowRoot.querySelectorAll(".menuitem"));
141
+ }
142
+ get allSelected() {
143
+ return this.childOptions.every((option) => option.selected);
144
+ }
145
+ componentWillLoad() {
146
+ const mutationObserver = new MutationObserver((mutationRecordList) => mutationRecordList.forEach((_mutationRecord) => this.handleChildChange()));
147
+ mutationObserver.observe(this.el, {
148
+ childList: true,
149
+ attributes: true,
150
+ subtree: true,
151
+ attributeFilter: ["selected"],
152
+ });
153
+ }
154
+ handleChildChange() {
155
+ // on update of children or children selected state, reset button text and rerender
156
+ this.setButtonText();
157
+ forceUpdate(this.el);
158
+ if (this.multiple) {
159
+ // update state of clone options
160
+ this.optgroupEls.forEach((optgroupEl) => optgroupEl.handleChildChange());
161
+ }
162
+ }
163
+ setButtonText() {
164
+ this.displayedOptions = this.childOptions.filter((x) => x.selected);
165
+ // handle overflow + counter for multiselect
166
+ if (this.multiple) {
167
+ // this is a fixed measurement accounting for the max width of a 3 character overflow counter
168
+ const overflowCounterWidth = 38;
169
+ const computedStyle = window.getComputedStyle(this.buttonEl);
170
+ // there seems to be no quick way to get an elements width without padding, except for subtracting padding manually
171
+ const paddingLeft = parseInt(computedStyle.getPropertyValue("padding-left").slice(0, -2));
172
+ const paddingRight = parseInt(computedStyle.getPropertyValue("padding-right").slice(0, -2));
173
+ const availableSpace = this.buttonEl.clientWidth - paddingLeft - paddingRight - overflowCounterWidth;
174
+ this.overflowCount = 0;
175
+ this.measurementAreaEl.textContent = this.displayedOptions.map((x) => x.textContent).join(", ");
176
+ let optionsTotalWidth = this.measurementAreaEl.clientWidth;
177
+ while (optionsTotalWidth > availableSpace && this.displayedOptions.length > 1) {
178
+ this.overflowCount++;
179
+ this.displayedOptions.pop();
180
+ this.measurementAreaEl.textContent = this.displayedOptions.map((x) => x.textContent).join(", ");
181
+ optionsTotalWidth = this.measurementAreaEl.clientWidth;
182
+ }
183
+ }
184
+ }
185
+ countOptgroupSelected(optgroupEl) {
186
+ let selectedOptions = Array.from(optgroupEl.querySelectorAll("wm-option")).filter((option) => option.selected);
187
+ return selectedOptions.length;
188
+ }
189
+ handleOptionSelection() {
190
+ if (!this.multiple) {
191
+ this.close();
192
+ }
193
+ }
194
+ handleChildEnter() {
195
+ // only occurs for multiselects. handle the click, then close
196
+ this.close();
197
+ }
198
+ closePopupOnEscape() {
199
+ this.close();
200
+ }
201
+ handleKeyDown(ev) {
202
+ switch (ev.key) {
203
+ case "Tab":
204
+ // if tabbing backwards, close and return focus to button. Otherwise, close but do not redirect focus.
205
+ this.close(ev.shiftKey ? true : false);
206
+ break;
207
+ case "ArrowDown":
208
+ if (this.isExpanded === false) {
209
+ ev.preventDefault();
210
+ this.open();
211
+ }
212
+ break;
213
+ case "ArrowUp":
214
+ if (this.isExpanded === false) {
215
+ ev.preventDefault();
216
+ this.open(true);
217
+ }
218
+ break;
219
+ }
220
+ }
221
+ close(returnFocus = true) {
222
+ if (this.isExpanded) {
223
+ this.isExpanded = false;
224
+ this.dropdownEl.classList.remove("open");
225
+ window.setTimeout(() => {
226
+ this.optgroupEls.forEach((optgroupEl) => (optgroupEl.isExpanded = false));
227
+ if (returnFocus) {
228
+ this.buttonEl.focus();
229
+ }
230
+ }, 150);
231
+ }
232
+ }
233
+ open(focusLast = false) {
234
+ if (!this.isDisabled) {
235
+ this.showClearSelectionButton = this.childOptions.some((o) => o.selected);
236
+ this.dropdownEl.scrollTop = 0;
237
+ this.isExpanded = true;
238
+ this.dropdownEl.classList.add("open");
239
+ const elHeight = this.el.clientHeight;
240
+ this.openUp = shouldOpenUp(this.el, this.dropdownEl.clientHeight, elHeight, 0);
241
+ this.constrainedMaxHeight = this.maxHeight;
242
+ const spaceAbove = getContextMeasurements(this.el).spaceAbove;
243
+ if (this.openUp) {
244
+ if (parseInt(getComputedStyle(this.menuEl).getPropertyValue("--max-height").replace("px", "")) > spaceAbove) {
245
+ this.constrainedMaxHeight = spaceAbove.toString() + "px";
246
+ }
247
+ }
248
+ // if opening upwards, set an upwards height limit for the optgroup level
249
+ this.optgroupEls.forEach((o) => {
250
+ o.shadowRoot.querySelector("priv-option-list").upwardsHeightLimit = this.openUp
251
+ ? spaceAbove
252
+ : null;
253
+ });
254
+ // 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))
255
+ // when opening the dropdown, scrollIntoView must be delayed to a point where the browser recognizes content within it as able to be scrolled to
256
+ // 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
257
+ window.setTimeout(() => {
258
+ if (this.menuitemEls.length > 0) {
259
+ const menuitemToFocus = this.menuitemEls[focusLast ? this.menuitemEls.length - 1 : 0];
260
+ menuitemToFocus.scrollIntoView({ block: "nearest" });
261
+ menuitemToFocus.focus();
262
+ }
263
+ }, 60);
264
+ }
265
+ }
266
+ moveDown(menuitemEl) {
267
+ const currentIndex = this.menuitemEls.indexOf(menuitemEl);
268
+ const menuitemToFocus = this.menuitemEls[currentIndex == this.menuitemEls.length - 1 ? 0 : currentIndex + 1];
269
+ menuitemToFocus.scrollIntoView({ block: "nearest" });
270
+ menuitemToFocus.focus();
271
+ }
272
+ moveUp(menuitemEl) {
273
+ const currentIndex = this.menuitemEls.indexOf(menuitemEl);
274
+ const menuitemToFocus = this.menuitemEls[currentIndex == 0 ? this.menuitemEls.length - 1 : currentIndex - 1];
275
+ menuitemToFocus.scrollIntoView({ block: "nearest" });
276
+ menuitemToFocus.focus();
277
+ }
278
+ handleButtonBlur(ev) {
279
+ if (isElOrChild(this.el, ev.relatedTarget)) {
280
+ // do not emit a blur event when opening the dropdown and focusing the Options
281
+ ev.stopPropagation();
282
+ }
283
+ }
284
+ handleClick(ev) {
285
+ if (!isElOrChild(this.el, ev.target)) {
286
+ this.close();
287
+ }
288
+ }
289
+ handleMenuitemKeydown(ev) {
290
+ switch (ev.key) {
291
+ case "ArrowDown":
292
+ ev.preventDefault();
293
+ // focus next
294
+ this.moveDown(ev.target);
295
+ break;
296
+ case "ArrowUp":
297
+ ev.preventDefault();
298
+ this.moveUp(ev.target);
299
+ // focus previous
300
+ break;
301
+ case "ArrowRight":
302
+ if (ev.target.classList.contains("group-btn")) {
303
+ ev.preventDefault();
304
+ ev.target.click();
305
+ }
306
+ break;
307
+ case "Escape":
308
+ ev.preventDefault();
309
+ this.close();
310
+ break;
311
+ }
312
+ }
313
+ handleComponentBlur(ev) {
314
+ // Do not close or emit custom blur event when blurring to an element inside (wm-option)
315
+ if (!this.el.contains(ev.relatedTarget)) {
316
+ this.close(false);
317
+ this.wmNestedSelectBlurred.emit();
318
+ }
319
+ }
320
+ handleLabelMouseEnter(ev) {
321
+ const labelEl = ev.target;
322
+ if (labelEl.scrollWidth > labelEl.clientWidth) {
323
+ showTooltip("right", ev.target, this.label);
324
+ }
325
+ }
326
+ handleOptgroupExpanded() {
327
+ this.isGroupExpanded = true;
328
+ }
329
+ handleOptgroupHidden(ev) {
330
+ this.showClearSelectionButton = this.childOptions.some((o) => o.selected);
331
+ this.isGroupExpanded = false;
332
+ // focus back to nested select's optgroup menuitem
333
+ if (this.isExpanded) {
334
+ const elToFocus = this.el.shadowRoot.querySelector(`button[data-label=${ev.detail}]`);
335
+ elToFocus.focus();
336
+ }
337
+ }
338
+ announce(message) {
339
+ // \u00A0 is a non-breaking space character, which causes the message to be read as a new one
340
+ if (this.liveRegionEl.textContent === message) {
341
+ message += "\u00A0";
342
+ }
343
+ this.announcement = message;
344
+ }
345
+ renderButtonText() {
346
+ if (this.displayedOptions.length < 1) {
347
+ return h("span", null, this.placeholder);
348
+ }
349
+ else if (this.multiple && this.allSelected && this.overflowCount > 0) {
350
+ return this.allSelectedMessage;
351
+ }
352
+ else {
353
+ return this.displayedOptions.map((x, idx) => (h("span", null, idx > 0 ? ", " : "", x.textContent)));
354
+ }
355
+ }
356
+ renderOverflowCount() {
357
+ if (this.overflowCount > 0 && !this.allSelected) {
358
+ return (h("span", null, h("span", { class: "overflow-counter" }, "+", this.overflowCount)));
359
+ }
360
+ }
361
+ handleClearSelection() {
362
+ this.optgroupEls.forEach((optgroupEl) => optgroupEl.emitDeselection());
363
+ this.announce(selectMessages.selectionCleared);
364
+ if (!this.multiple) {
365
+ this.close();
366
+ }
367
+ }
368
+ renderClearSelectionButton() {
369
+ if (this.showClearSelectionButton && !this.isGroupExpanded) {
370
+ return (h("button", { class: "menuitem clear-selection", onClick: () => this.handleClearSelection(), tabindex: -1, onKeyDown: (ev) => this.handleMenuitemKeydown(ev) }, h("div", { class: "svg-icon svg-close" }), this.clearSelectionMessage));
371
+ }
372
+ }
373
+ renderSelectionCount(optgroupEl) {
374
+ const selectionCount = this.countOptgroupSelected(optgroupEl);
375
+ if (selectionCount) {
376
+ return (h("div", { class: "selection-count" }, h("span", null, this.multiple
377
+ ? selectMessages.getOptgroupMultipleSelectionCount(selectionCount)
378
+ : selectMessages.optgroupSingleSelectionCount())));
379
+ }
380
+ }
381
+ render() {
382
+ const showRequired = this.labelPosition !== "none" && this.requiredField;
383
+ const buttonProps = {
384
+ id: "selectbtn",
385
+ ["disabled"]: this.isDisabled,
386
+ ["aria-controls"]: "menu",
387
+ ["aria-labelledby"]: showRequired ? "label required selectbtn" : "label selectbtn",
388
+ ["aria-describedby"]: "error",
389
+ ["aria-expanded"]: this.isExpanded ? "true" : "false",
390
+ onClick: () => {
391
+ this.isExpanded ? this.close() : this.open();
392
+ },
393
+ };
394
+ return (h(Host, { key: 'a68883c4b91d5657bf4205e5e4eea583f7b27da7', onBlur: (ev) => this.handleComponentBlur(ev) }, h("div", { key: '208fe8e9504e1f5ac3c02b889b55690c16fd5579', class: `wrapper ${getTextDir()} label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, h("div", { key: 'ae05c832f67ae6fb126cc0a1d0e8c8b4e3e50fda', class: "label-wrapper" }, h("label", { key: '7251caee0c1dd0575b64746e3ca9bc8702796be2', class: "label", id: "label", htmlFor: "selectbtn", onMouseEnter: (ev) => this.handleLabelMouseEnter(ev), onMouseLeave: () => hideTooltip() }, this.label),
395
+ // we can't use aria-required because the listbox is in a sub-component and it is not announced;
396
+ // instead the sr-only text is included in the button's aria-labelledby above
397
+ showRequired && (h("span", { key: 'e2a5d5a08880f83d0280df8527b46c60fc8f9db6', class: "required" }, h("span", { key: 'eccbd981c72ac77b46b0810f9652b5156eb6340c', class: "sr-only", id: "required" }, globalMessages.requiredField), h("span", { key: '5ed448d3ef22f085bcff6cd70d2e9091ef2ffdb5', "aria-hidden": "true" }, "*")))), h("div", { key: '68c8510b8f441c3b2d3fb607332230d2ae8d6b81', class: "button-wrapper" }, h("button", Object.assign({ key: '996ee1b67e4e6b08ffffc97b47e0fafae2442298' }, buttonProps, { class: "displayedoption", ref: (el) => (this.buttonEl = el), onBlur: (ev) => this.handleButtonBlur(ev) }), h("span", { key: '3efb4b2135bdf475cc1c802264e2d1ce58c54700', class: "overflowcontrol" }, h("span", { key: 'ae40108a455f58eccc927c5e6dd7c81fca2ca588', class: "button-text" }, this.renderButtonText())), h("div", { key: 'e9db75cdde3506248394b20b49e70355e44318fa', class: `expand-icon svg-icon ${this.isExpanded ? "svg-expand-less" : "svg-expand-more"}` }), this.renderOverflowCount(), h("div", { key: '2467344271355d03712b5a1d182cc78590e9e9b3', ref: (el) => (this.measurementAreaEl = el), class: "measurement-area", "aria-hidden": "true" })), h("div", { key: '4d90abd5757a5c76de2d7d0e3cecf16977806ba7', class: `dropdown ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, this.renderClearSelectionButton(), h("div", { key: '549d7d18a18d175e23e50d4978f0f53a1eb16d27', ref: (el) => (this.menuEl = el), id: "menu", role: "menu", class: this.isGroupExpanded ? "hidden" : "", style: { "--max-height": this.constrainedMaxHeight }, tabIndex: -1 }, this.optgroupEls.map((optgroupEl) => {
398
+ return (h("button", { class: `menuitem group-btn ${optgroupEl.disabled ? "disabled" : ""}`, role: "menuitem", "data-label": optgroupEl.label, tabindex: -1, "aria-disabled": optgroupEl.disabled, onClick: () => {
399
+ if (!optgroupEl.disabled) {
400
+ optgroupEl.isExpanded = !optgroupEl.isExpanded;
401
+ forceUpdate(this.el);
402
+ }
403
+ }, onKeyDown: (ev) => this.handleMenuitemKeydown(ev) }, h("div", { class: "option-text" }, h("span", null, optgroupEl.label), this.renderSelectionCount(optgroupEl), optgroupEl.disabled && h("div", { class: "disabled-indication" }, "Disabled")), h("div", { class: "svg-icon svg-next" })));
404
+ })), h("div", { key: '016cecd76a346cada56d6c78e67f69e9a9e3c3f4', class: `option-list-wrapper ${this.isGroupExpanded ? "" : "hidden"}` }, h("slot", { key: 'dacc4ad67dee6da1495c927bf6640017b53be05f' }))), h("div", { key: '4fe7d19ef2b4ff86b6a8efbb7314af8ed3d7ddca', id: "error", class: this.errorMessage ? "error-message" : "" }, this.errorMessage))), h("div", { key: '8eef1af6ecb84d46a52ead6573ccf119e00314b5', id: "nestedselect-announcement", "aria-live": "assertive", "aria-atomic": "true", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement)));
405
+ }
406
+ static get is() { return "wm-nested-select"; }
407
+ static get encapsulation() { return "shadow"; }
408
+ static get delegatesFocus() { return true; }
409
+ static get originalStyleUrls() {
410
+ return {
411
+ "$": ["wm-nested-select.scss"]
412
+ };
413
+ }
414
+ static get styleUrls() {
415
+ return {
416
+ "$": ["wm-nested-select.css"]
417
+ };
418
+ }
419
+ static get properties() {
420
+ return {
421
+ "disabled": {
422
+ "type": "boolean",
423
+ "mutable": false,
424
+ "complexType": {
425
+ "original": "boolean",
426
+ "resolved": "boolean",
427
+ "references": {}
428
+ },
429
+ "required": false,
430
+ "optional": false,
431
+ "docs": {
432
+ "tags": [{
433
+ "name": "description",
434
+ "text": "Disables the entire nested select component, preventing any interaction."
435
+ }, {
436
+ "name": "default",
437
+ "text": "false"
438
+ }],
439
+ "text": ""
440
+ },
441
+ "attribute": "disabled",
442
+ "reflect": true,
443
+ "defaultValue": "false"
444
+ },
445
+ "maxHeight": {
446
+ "type": "string",
447
+ "mutable": false,
448
+ "complexType": {
449
+ "original": "string",
450
+ "resolved": "string",
451
+ "references": {}
452
+ },
453
+ "required": false,
454
+ "optional": false,
455
+ "docs": {
456
+ "tags": [{
457
+ "name": "description",
458
+ "text": "Overrides the maximum height of the options dropdown. Accepts any valid CSS\nlength value (e.g. `\"300px\"`)."
459
+ }, {
460
+ "name": "default",
461
+ "text": "\"200px\""
462
+ }],
463
+ "text": ""
464
+ },
465
+ "attribute": "max-height",
466
+ "reflect": false,
467
+ "defaultValue": "\"200px\""
468
+ },
469
+ "label": {
470
+ "type": "string",
471
+ "mutable": true,
472
+ "complexType": {
473
+ "original": "string",
474
+ "resolved": "string | undefined",
475
+ "references": {}
476
+ },
477
+ "required": false,
478
+ "optional": true,
479
+ "docs": {
480
+ "tags": [{
481
+ "name": "description",
482
+ "text": "Accessible label describing the dropdown's purpose. Required even when\n`label-position` is `\"none\"` \u2014 it is used as the ARIA accessible name for the button."
483
+ }, {
484
+ "name": "required",
485
+ "text": undefined
486
+ }],
487
+ "text": ""
488
+ },
489
+ "attribute": "label",
490
+ "reflect": false
491
+ },
492
+ "labelPosition": {
493
+ "type": "string",
494
+ "mutable": false,
495
+ "complexType": {
496
+ "original": "\"top\" | \"left\" | \"none\"",
497
+ "resolved": "\"left\" | \"none\" | \"top\"",
498
+ "references": {}
499
+ },
500
+ "required": false,
501
+ "optional": false,
502
+ "docs": {
503
+ "tags": [{
504
+ "name": "description",
505
+ "text": "Controls where the label is rendered relative to the dropdown button.\n`\"none\"` hides the label visually but keeps it accessible."
506
+ }, {
507
+ "name": "default",
508
+ "text": "\"top\""
509
+ }],
510
+ "text": ""
511
+ },
512
+ "attribute": "label-position",
513
+ "reflect": false,
514
+ "defaultValue": "\"top\""
515
+ },
516
+ "requiredField": {
517
+ "type": "boolean",
518
+ "mutable": false,
519
+ "complexType": {
520
+ "original": "boolean",
521
+ "resolved": "boolean",
522
+ "references": {}
523
+ },
524
+ "required": false,
525
+ "optional": false,
526
+ "docs": {
527
+ "tags": [{
528
+ "name": "description",
529
+ "text": "Renders a required-field asterisk (*) next to the label."
530
+ }, {
531
+ "name": "default",
532
+ "text": "false"
533
+ }],
534
+ "text": ""
535
+ },
536
+ "attribute": "required-field",
537
+ "reflect": false,
538
+ "defaultValue": "false"
539
+ },
540
+ "errorMessage": {
541
+ "type": "string",
542
+ "mutable": true,
543
+ "complexType": {
544
+ "original": "string",
545
+ "resolved": "string | undefined",
546
+ "references": {}
547
+ },
548
+ "required": false,
549
+ "optional": true,
550
+ "docs": {
551
+ "tags": [{
552
+ "name": "description",
553
+ "text": "Displays the component in an error state with the provided message shown\nbeneath the button."
554
+ }],
555
+ "text": ""
556
+ },
557
+ "attribute": "error-message",
558
+ "reflect": false
559
+ },
560
+ "multiple": {
561
+ "type": "boolean",
562
+ "mutable": false,
563
+ "complexType": {
564
+ "original": "boolean",
565
+ "resolved": "boolean",
566
+ "references": {}
567
+ },
568
+ "required": false,
569
+ "optional": false,
570
+ "docs": {
571
+ "tags": [{
572
+ "name": "description",
573
+ "text": "Enables multiselect mode, allowing more than one option to be selected at\na time."
574
+ }, {
575
+ "name": "default",
576
+ "text": "false"
577
+ }],
578
+ "text": ""
579
+ },
580
+ "attribute": "multiple",
581
+ "reflect": false,
582
+ "defaultValue": "false"
583
+ },
584
+ "search": {
585
+ "type": "boolean",
586
+ "mutable": false,
587
+ "complexType": {
588
+ "original": "boolean",
589
+ "resolved": "boolean",
590
+ "references": {}
591
+ },
592
+ "required": false,
593
+ "optional": false,
594
+ "docs": {
595
+ "tags": [{
596
+ "name": "description",
597
+ "text": "Adds a search input that filters visible options within the currently open\ngroup."
598
+ }, {
599
+ "name": "default",
600
+ "text": "false"
601
+ }],
602
+ "text": ""
603
+ },
604
+ "attribute": "search",
605
+ "reflect": false,
606
+ "defaultValue": "false"
607
+ },
608
+ "selectAll": {
609
+ "type": "boolean",
610
+ "mutable": false,
611
+ "complexType": {
612
+ "original": "boolean",
613
+ "resolved": "boolean",
614
+ "references": {}
615
+ },
616
+ "required": false,
617
+ "optional": false,
618
+ "docs": {
619
+ "tags": [{
620
+ "name": "description",
621
+ "text": "Adds a \"Select All / Deselect All\" toggle at the top of each group. Requires\n`multiple` to be set."
622
+ }, {
623
+ "name": "default",
624
+ "text": "false"
625
+ }],
626
+ "text": ""
627
+ },
628
+ "attribute": "select-all",
629
+ "reflect": false,
630
+ "defaultValue": "false"
631
+ },
632
+ "placeholder": {
633
+ "type": "string",
634
+ "mutable": false,
635
+ "complexType": {
636
+ "original": "string",
637
+ "resolved": "string",
638
+ "references": {}
639
+ },
640
+ "required": false,
641
+ "optional": false,
642
+ "docs": {
643
+ "tags": [{
644
+ "name": "description",
645
+ "text": "Text displayed in the trigger button when no options are selected."
646
+ }, {
647
+ "name": "default",
648
+ "text": "Locale-specific placeholder string"
649
+ }],
650
+ "text": ""
651
+ },
652
+ "attribute": "placeholder",
653
+ "reflect": false,
654
+ "defaultValue": "this.multiple ? selectMessages.multiPlaceholder : selectMessages.singlePlaceholder"
655
+ },
656
+ "searchPlaceholder": {
657
+ "type": "string",
658
+ "mutable": false,
659
+ "complexType": {
660
+ "original": "string",
661
+ "resolved": "string",
662
+ "references": {}
663
+ },
664
+ "required": false,
665
+ "optional": false,
666
+ "docs": {
667
+ "tags": [{
668
+ "name": "description",
669
+ "text": "Placeholder text displayed inside the search input when `search` is enabled."
670
+ }, {
671
+ "name": "default",
672
+ "text": "Locale-specific search placeholder string"
673
+ }],
674
+ "text": ""
675
+ },
676
+ "attribute": "search-placeholder",
677
+ "reflect": false,
678
+ "defaultValue": "selectMessages.searchPlaceholder"
679
+ },
680
+ "allSelectedMessage": {
681
+ "type": "string",
682
+ "mutable": false,
683
+ "complexType": {
684
+ "original": "string",
685
+ "resolved": "string",
686
+ "references": {}
687
+ },
688
+ "required": false,
689
+ "optional": false,
690
+ "docs": {
691
+ "tags": [{
692
+ "name": "description",
693
+ "text": "Text displayed in the trigger button when all options across all groups are\nselected (multiselect mode)."
694
+ }, {
695
+ "name": "default",
696
+ "text": "Locale-specific \"all selected\" string"
697
+ }],
698
+ "text": ""
699
+ },
700
+ "attribute": "all-selected-message",
701
+ "reflect": false,
702
+ "defaultValue": "selectMessages.allSelected"
703
+ },
704
+ "constrainedMaxHeight": {
705
+ "type": "string",
706
+ "mutable": true,
707
+ "complexType": {
708
+ "original": "string",
709
+ "resolved": "string",
710
+ "references": {}
711
+ },
712
+ "required": false,
713
+ "optional": false,
714
+ "docs": {
715
+ "tags": [{
716
+ "name": "internal",
717
+ "text": undefined
718
+ }, {
719
+ "name": "description",
720
+ "text": "Constrains the dropdown height when it opens upward and available space above\nis less than maxHeight. Set programmatically \u2014 not for application use."
721
+ }],
722
+ "text": ""
723
+ },
724
+ "attribute": "constrained-max-height",
725
+ "reflect": false,
726
+ "defaultValue": "this.maxHeight"
727
+ }
728
+ };
729
+ }
730
+ static get states() {
731
+ return {
732
+ "isExpanded": {},
733
+ "isGroupExpanded": {},
734
+ "showClearSelectionButton": {},
735
+ "announcement": {}
736
+ };
737
+ }
738
+ static get events() {
739
+ return [{
740
+ "method": "wmNestedSelectBlurred",
741
+ "name": "wmNestedSelectBlurred",
742
+ "bubbles": true,
743
+ "cancelable": true,
744
+ "composed": true,
745
+ "docs": {
746
+ "tags": [{
747
+ "name": "description",
748
+ "text": "Fires when focus leaves the component entirely (not when moving between\ninternal elements such as options or group buttons)."
749
+ }],
750
+ "text": ""
751
+ },
752
+ "complexType": {
753
+ "original": "void",
754
+ "resolved": "void",
755
+ "references": {}
756
+ }
757
+ }];
758
+ }
759
+ static get elementRef() { return "el"; }
760
+ static get listeners() {
761
+ return [{
762
+ "name": "wmOptionSelected",
763
+ "method": "handleOptionSelection",
764
+ "target": undefined,
765
+ "capture": false,
766
+ "passive": false
767
+ }, {
768
+ "name": "wmEnterKeyPressed",
769
+ "method": "handleChildEnter",
770
+ "target": undefined,
771
+ "capture": false,
772
+ "passive": false
773
+ }, {
774
+ "name": "wmEscKeyPressed",
775
+ "method": "closePopupOnEscape",
776
+ "target": undefined,
777
+ "capture": false,
778
+ "passive": false
779
+ }, {
780
+ "name": "keydown",
781
+ "method": "handleKeyDown",
782
+ "target": undefined,
783
+ "capture": false,
784
+ "passive": false
785
+ }, {
786
+ "name": "click",
787
+ "method": "handleClick",
788
+ "target": "document",
789
+ "capture": true,
790
+ "passive": false
791
+ }, {
792
+ "name": "optgroupExpanded",
793
+ "method": "handleOptgroupExpanded",
794
+ "target": undefined,
795
+ "capture": false,
796
+ "passive": false
797
+ }, {
798
+ "name": "optgroupHidden",
799
+ "method": "handleOptgroupHidden",
800
+ "target": undefined,
801
+ "capture": false,
802
+ "passive": false
803
+ }];
804
+ }
805
+ }