@watermarkinsights/ripple 5.12.0 → 5.14.0-alpha.0

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 (482) hide show
  1. package/LICENSE +21 -0
  2. package/dist/{esm/chartFunctions-9099c7e9.js → components/chartFunctions.js} +4 -4
  3. package/dist/components/functions.js +17465 -0
  4. package/dist/components/index.d.ts +33 -0
  5. package/dist/{collection/global/global.js → components/index.js} +52 -2
  6. package/dist/{collection/global → components}/interfaces.js +6 -4
  7. package/dist/{esm/intl-a6f16883.js → components/intl.js} +1 -1
  8. package/dist/components/priv-calendar.d.ts +11 -0
  9. package/dist/components/priv-calendar.js +6 -0
  10. package/dist/{esm/priv-calendar.entry.js → components/priv-calendar2.js} +40 -17
  11. package/dist/components/priv-chart-popover.d.ts +11 -0
  12. package/dist/components/priv-chart-popover.js +6 -0
  13. package/dist/{esm/priv-chart-popover.entry.js → components/priv-chart-popover2.js} +32 -13
  14. package/dist/components/priv-navigator-button.d.ts +11 -0
  15. package/dist/components/priv-navigator-button.js +6 -0
  16. package/dist/{esm/priv-navigator-button.entry.js → components/priv-navigator-button2.js} +27 -9
  17. package/dist/components/priv-navigator-item.d.ts +11 -0
  18. package/dist/components/priv-navigator-item.js +6 -0
  19. package/dist/{esm/priv-navigator-item.entry.js → components/priv-navigator-item2.js} +28 -9
  20. package/dist/components/priv-option-list.d.ts +11 -0
  21. package/dist/components/priv-option-list.js +6 -0
  22. package/dist/{esm/priv-option-list.entry.js → components/priv-option-list2.js} +54 -21
  23. package/dist/components/wm-action-menu.d.ts +11 -0
  24. package/dist/components/wm-action-menu.js +6 -0
  25. package/dist/{cjs/wm-pagination.cjs.entry.js → components/wm-action-menu2.js} +216 -212
  26. package/dist/components/wm-button.d.ts +11 -0
  27. package/dist/components/wm-button.js +6 -0
  28. package/dist/{esm/wm-button.entry.js → components/wm-button2.js} +49 -20
  29. package/dist/components/wm-chart-slice.d.ts +11 -0
  30. package/dist/components/wm-chart-slice.js +41 -0
  31. package/dist/components/wm-chart.d.ts +11 -0
  32. package/dist/{esm/wm-chart.entry.js → components/wm-chart.js} +61 -22
  33. package/dist/components/wm-date-range.d.ts +11 -0
  34. package/dist/{esm/wm-date-range.entry.js → components/wm-date-range.js} +66 -23
  35. package/dist/components/wm-datepicker.d.ts +11 -0
  36. package/dist/{esm/wm-datepicker.entry.js → components/wm-datepicker.js} +58 -20
  37. package/dist/components/wm-file-list.d.ts +11 -0
  38. package/dist/{cjs/wm-file-list.cjs.entry.js → components/wm-file-list.js} +29 -13
  39. package/dist/components/wm-file.d.ts +11 -0
  40. package/dist/{esm/wm-file.entry.js → components/wm-file.js} +59 -20
  41. package/dist/components/wm-input.d.ts +11 -0
  42. package/dist/{esm/wm-input.entry.js → components/wm-input.js} +54 -22
  43. package/dist/components/wm-line-chart.d.ts +11 -0
  44. package/dist/{esm/wm-line-chart.entry.js → components/wm-line-chart.js} +80 -39
  45. package/dist/components/wm-menuitem.d.ts +11 -0
  46. package/dist/components/wm-menuitem.js +6 -0
  47. package/dist/{cjs/wm-optgroup.cjs.entry.js → components/wm-menuitem2.js} +130 -57
  48. package/dist/components/wm-modal-footer.d.ts +11 -0
  49. package/dist/components/wm-modal-footer.js +73 -0
  50. package/dist/components/wm-modal-header.d.ts +11 -0
  51. package/dist/components/wm-modal-header.js +61 -0
  52. package/dist/components/wm-modal-pss-footer.d.ts +11 -0
  53. package/dist/{cjs/priv-chart-popover.cjs.entry.js → components/wm-modal-pss-footer.js} +58 -128
  54. package/dist/components/wm-modal-pss-header.d.ts +11 -0
  55. package/dist/components/wm-modal-pss-header.js +64 -0
  56. package/dist/components/wm-modal-pss.d.ts +11 -0
  57. package/dist/{cjs/wm-textarea.cjs.entry.js → components/wm-modal-pss.js} +141 -66
  58. package/dist/components/wm-modal.d.ts +11 -0
  59. package/dist/{cjs/wm-input.cjs.entry.js → components/wm-modal.js} +140 -103
  60. package/dist/components/wm-navigation-hamburger.d.ts +11 -0
  61. package/dist/{ripple/p-f9cade98.entry.js → components/wm-navigation-hamburger.js} +70 -1
  62. package/dist/components/wm-navigation-item.d.ts +11 -0
  63. package/dist/components/wm-navigation-item.js +40 -0
  64. package/dist/components/wm-navigation.d.ts +11 -0
  65. package/dist/{ripple/p-1a71d867.system.entry.js → components/wm-navigation.js} +144 -1
  66. package/dist/components/wm-navigator.d.ts +11 -0
  67. package/dist/{esm/wm-navigator.entry.js → components/wm-navigator.js} +106 -18
  68. package/dist/components/wm-nested-select.d.ts +11 -0
  69. package/dist/{esm/wm-nested-select.entry.js → components/wm-nested-select.js} +56 -23
  70. package/dist/components/wm-optgroup.d.ts +11 -0
  71. package/dist/{esm/wm-optgroup.entry.js → components/wm-optgroup.js} +49 -11
  72. package/dist/components/wm-option.d.ts +11 -0
  73. package/dist/components/wm-option.js +6 -0
  74. package/dist/{cjs/wm-search.cjs.entry.js → components/wm-option2.js} +168 -165
  75. package/dist/components/wm-pagination.d.ts +11 -0
  76. package/dist/{esm/wm-pagination.entry.js → components/wm-pagination.js} +45 -17
  77. package/dist/components/wm-progress-indicator.d.ts +11 -0
  78. package/dist/{esm/wm-progress-indicator_3.entry.js → components/wm-progress-indicator.js} +52 -104
  79. package/dist/components/wm-progress-monitor.d.ts +11 -0
  80. package/dist/components/wm-progress-monitor.js +93 -0
  81. package/dist/components/wm-progress-slice.d.ts +11 -0
  82. package/dist/components/wm-progress-slice.js +37 -0
  83. package/dist/components/wm-search.d.ts +11 -0
  84. package/dist/{esm/wm-search.entry.js → components/wm-search.js} +76 -15
  85. package/dist/components/wm-select.d.ts +11 -0
  86. package/dist/components/wm-select.js +6 -0
  87. package/dist/components/wm-select2.js +294 -0
  88. package/dist/components/wm-snackbar.d.ts +11 -0
  89. package/dist/{esm/wm-snackbar.entry.js → components/wm-snackbar.js} +41 -16
  90. package/dist/components/wm-tab-item.d.ts +11 -0
  91. package/dist/components/wm-tab-item.js +85 -0
  92. package/dist/components/wm-tab-list.d.ts +11 -0
  93. package/dist/{cjs/wm-uploader.cjs.entry.js → components/wm-tab-list.js} +174 -281
  94. package/dist/components/wm-tab-panel.d.ts +11 -0
  95. package/dist/{esm/wm-file-list.entry.js → components/wm-tab-panel.js} +46 -12
  96. package/dist/components/wm-tag-input.d.ts +11 -0
  97. package/dist/{esm/wm-tag-input.entry.js → components/wm-tag-input.js} +64 -32
  98. package/dist/components/wm-tag-option.d.ts +11 -0
  99. package/dist/components/wm-tag-option.js +63 -0
  100. package/dist/components/wm-textarea.d.ts +11 -0
  101. package/dist/{esm/wm-textarea.entry.js → components/wm-textarea.js} +47 -17
  102. package/dist/components/wm-timepicker.d.ts +11 -0
  103. package/dist/{esm/wm-timepicker.entry.js → components/wm-timepicker.js} +51 -20
  104. package/dist/components/wm-toggletip.d.ts +11 -0
  105. package/dist/{esm/wm-toggletip.entry.js → components/wm-toggletip.js} +38 -16
  106. package/dist/components/wm-uploader.d.ts +11 -0
  107. package/dist/{esm/wm-uploader.entry.js → components/wm-uploader.js} +52 -24
  108. package/dist/components/wm-wrapper.d.ts +11 -0
  109. package/dist/components/wm-wrapper.js +34 -0
  110. package/dist/types/stencil-public-runtime.d.ts +31 -10
  111. package/package.json +4 -8
  112. package/dist/cjs/chartFunctions-a1981e06.js +0 -732
  113. package/dist/cjs/functions-4b187487.js +0 -9679
  114. package/dist/cjs/global-4e034486.js +0 -85
  115. package/dist/cjs/index-e86c28b6.js +0 -2649
  116. package/dist/cjs/index.cjs.js +0 -2
  117. package/dist/cjs/interfaces-85d78ae9.js +0 -37
  118. package/dist/cjs/intl-7fd0760e.js +0 -283
  119. package/dist/cjs/loader.cjs.js +0 -14
  120. package/dist/cjs/priv-calendar.cjs.entry.js +0 -573
  121. package/dist/cjs/priv-navigator-button.cjs.entry.js +0 -28
  122. package/dist/cjs/priv-navigator-item.cjs.entry.js +0 -34
  123. package/dist/cjs/priv-option-list.cjs.entry.js +0 -392
  124. package/dist/cjs/ripple.cjs.js +0 -24
  125. package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -333
  126. package/dist/cjs/wm-button.cjs.entry.js +0 -206
  127. package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -27
  128. package/dist/cjs/wm-chart.cjs.entry.js +0 -162
  129. package/dist/cjs/wm-date-range.cjs.entry.js +0 -483
  130. package/dist/cjs/wm-datepicker.cjs.entry.js +0 -253
  131. package/dist/cjs/wm-file.cjs.entry.js +0 -193
  132. package/dist/cjs/wm-line-chart.cjs.entry.js +0 -460
  133. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +0 -214
  134. package/dist/cjs/wm-modal_3.cjs.entry.js +0 -212
  135. package/dist/cjs/wm-navigation_3.cjs.entry.js +0 -185
  136. package/dist/cjs/wm-navigator.cjs.entry.js +0 -326
  137. package/dist/cjs/wm-nested-select.cjs.entry.js +0 -314
  138. package/dist/cjs/wm-option_2.cjs.entry.js +0 -425
  139. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +0 -202
  140. package/dist/cjs/wm-snackbar.cjs.entry.js +0 -181
  141. package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -260
  142. package/dist/cjs/wm-tag-input.cjs.entry.js +0 -891
  143. package/dist/cjs/wm-tag-option.cjs.entry.js +0 -43
  144. package/dist/cjs/wm-timepicker.cjs.entry.js +0 -306
  145. package/dist/cjs/wm-toggletip.cjs.entry.js +0 -182
  146. package/dist/cjs/wm-wrapper.cjs.entry.js +0 -21
  147. package/dist/collection/collection-manifest.json +0 -191
  148. package/dist/collection/components/charts/chartFunctions.js +0 -665
  149. package/dist/collection/components/charts/chartFunctions.spec.js +0 -16
  150. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +0 -908
  151. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.e2e.js +0 -81
  152. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +0 -257
  153. package/dist/collection/components/charts/screenshots.e2e.js +0 -96
  154. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +0 -125
  155. package/dist/collection/components/charts/wm-chart/wm-chart.css +0 -1274
  156. package/dist/collection/components/charts/wm-chart/wm-chart.e2e.js +0 -213
  157. package/dist/collection/components/charts/wm-chart/wm-chart.js +0 -422
  158. package/dist/collection/components/charts/wm-chart/wm-chart.spec.js +0 -37
  159. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +0 -1067
  160. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.e2e.js +0 -176
  161. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +0 -723
  162. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.spec.js +0 -163
  163. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +0 -1274
  164. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +0 -264
  165. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +0 -909
  166. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.e2e.js +0 -69
  167. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +0 -151
  168. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.spec.js +0 -79
  169. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +0 -121
  170. package/dist/collection/components/datepickers/datepicker.css +0 -1043
  171. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +0 -1279
  172. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +0 -840
  173. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.spec.js +0 -89
  174. package/dist/collection/components/datepickers/wm-date-range.e2e.js +0 -443
  175. package/dist/collection/components/datepickers/wm-date-range.js +0 -845
  176. package/dist/collection/components/datepickers/wm-date-range.spec.js +0 -22
  177. package/dist/collection/components/datepickers/wm-datepicker.e2e.js +0 -382
  178. package/dist/collection/components/datepickers/wm-datepicker.js +0 -520
  179. package/dist/collection/components/datepickers/wm-datepicker.spec.js +0 -21
  180. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +0 -918
  181. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +0 -778
  182. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +0 -1181
  183. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +0 -620
  184. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +0 -830
  185. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +0 -258
  186. package/dist/collection/components/selects/wm-option/wm-option.css +0 -931
  187. package/dist/collection/components/selects/wm-option/wm-option.e2e.js +0 -22
  188. package/dist/collection/components/selects/wm-option/wm-option.js +0 -530
  189. package/dist/collection/components/selects/wm-option/wm-option.spec.js +0 -63
  190. package/dist/collection/components/selects/wm-select/wm-select.css +0 -1104
  191. package/dist/collection/components/selects/wm-select/wm-select.e2e.js +0 -521
  192. package/dist/collection/components/selects/wm-select/wm-select.js +0 -584
  193. package/dist/collection/components/selects/wm-select/wm-select.spec.js +0 -271
  194. package/dist/collection/components/wm-action-menu/wm-action-menu.css +0 -891
  195. package/dist/collection/components/wm-action-menu/wm-action-menu.e2e.js +0 -200
  196. package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -435
  197. package/dist/collection/components/wm-action-menu/wm-action-menu.spec.js +0 -48
  198. package/dist/collection/components/wm-button/wm-button.css +0 -1261
  199. package/dist/collection/components/wm-button/wm-button.e2e.js +0 -55
  200. package/dist/collection/components/wm-button/wm-button.js +0 -489
  201. package/dist/collection/components/wm-button/wm-button.spec.js +0 -74
  202. package/dist/collection/components/wm-file/wm-file.css +0 -927
  203. package/dist/collection/components/wm-file/wm-file.js +0 -412
  204. package/dist/collection/components/wm-file/wm-file.spec.js +0 -194
  205. package/dist/collection/components/wm-file-list/wm-file-list.css +0 -820
  206. package/dist/collection/components/wm-file-list/wm-file-list.js +0 -45
  207. package/dist/collection/components/wm-file-list/wm-file-list.spec.js +0 -69
  208. package/dist/collection/components/wm-input/wm-input.css +0 -992
  209. package/dist/collection/components/wm-input/wm-input.e2e.js +0 -32
  210. package/dist/collection/components/wm-input/wm-input.js +0 -471
  211. package/dist/collection/components/wm-input/wm-input.spec.js +0 -173
  212. package/dist/collection/components/wm-menuitem/wm-menuitem.css +0 -891
  213. package/dist/collection/components/wm-menuitem/wm-menuitem.e2e.js +0 -23
  214. package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -419
  215. package/dist/collection/components/wm-menuitem/wm-menuitem.spec.js +0 -54
  216. package/dist/collection/components/wm-modal/wm-modal-footer.css +0 -845
  217. package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -141
  218. package/dist/collection/components/wm-modal/wm-modal-footer.spec.js +0 -11
  219. package/dist/collection/components/wm-modal/wm-modal-header.css +0 -844
  220. package/dist/collection/components/wm-modal/wm-modal-header.js +0 -78
  221. package/dist/collection/components/wm-modal/wm-modal-header.spec.js +0 -8
  222. package/dist/collection/components/wm-modal/wm-modal.css +0 -891
  223. package/dist/collection/components/wm-modal/wm-modal.e2e.js +0 -104
  224. package/dist/collection/components/wm-modal/wm-modal.js +0 -350
  225. package/dist/collection/components/wm-modal/wm-modal.spec.js +0 -30
  226. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +0 -852
  227. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +0 -138
  228. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +0 -846
  229. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +0 -82
  230. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +0 -927
  231. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +0 -362
  232. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -847
  233. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +0 -119
  234. package/dist/collection/components/wm-navigation/wm-navigation-item.css +0 -856
  235. package/dist/collection/components/wm-navigation/wm-navigation-item.js +0 -98
  236. package/dist/collection/components/wm-navigation/wm-navigation.css +0 -898
  237. package/dist/collection/components/wm-navigation/wm-navigation.e2e.js +0 -102
  238. package/dist/collection/components/wm-navigation/wm-navigation.js +0 -190
  239. package/dist/collection/components/wm-navigation/wm-navigation.spec.js +0 -91
  240. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +0 -849
  241. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.e2e.js +0 -50
  242. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -86
  243. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +0 -830
  244. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -124
  245. package/dist/collection/components/wm-navigator/wm-navigator.css +0 -903
  246. package/dist/collection/components/wm-navigator/wm-navigator.e2e.js +0 -209
  247. package/dist/collection/components/wm-navigator/wm-navigator.js +0 -496
  248. package/dist/collection/components/wm-navigator/wm-navigator.spec.js +0 -177
  249. package/dist/collection/components/wm-pagination/wm-pagination.css +0 -971
  250. package/dist/collection/components/wm-pagination/wm-pagination.e2e.js +0 -312
  251. package/dist/collection/components/wm-pagination/wm-pagination.js +0 -363
  252. package/dist/collection/components/wm-search/wm-search.css +0 -895
  253. package/dist/collection/components/wm-search/wm-search.e2e.js +0 -76
  254. package/dist/collection/components/wm-search/wm-search.js +0 -426
  255. package/dist/collection/components/wm-search/wm-search.spec.js +0 -71
  256. package/dist/collection/components/wm-snackbar/wm-snackbar.css +0 -1077
  257. package/dist/collection/components/wm-snackbar/wm-snackbar.e2e.js +0 -112
  258. package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -269
  259. package/dist/collection/components/wm-snackbar/wm-snackbar.spec.js +0 -9
  260. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +0 -868
  261. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -175
  262. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +0 -840
  263. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -273
  264. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +0 -825
  265. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -87
  266. package/dist/collection/components/wm-tabs/wm-tabs.e2e.js +0 -91
  267. package/dist/collection/components/wm-tabs/wm-tabs.spec.js +0 -12
  268. package/dist/collection/components/wm-tag-input/wm-tag-input.css +0 -1275
  269. package/dist/collection/components/wm-tag-input/wm-tag-input.e2e.js +0 -204
  270. package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -1227
  271. package/dist/collection/components/wm-tag-input/wm-tag-input.spec.js +0 -195
  272. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +0 -243
  273. package/dist/collection/components/wm-textarea/wm-textarea.css +0 -979
  274. package/dist/collection/components/wm-textarea/wm-textarea.e2e.js +0 -41
  275. package/dist/collection/components/wm-textarea/wm-textarea.js +0 -313
  276. package/dist/collection/components/wm-textarea/wm-textarea.spec.js +0 -79
  277. package/dist/collection/components/wm-timepicker/wm-timepicker.css +0 -1093
  278. package/dist/collection/components/wm-timepicker/wm-timepicker.e2e.js +0 -163
  279. package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -544
  280. package/dist/collection/components/wm-timepicker/wm-timepicker.spec.js +0 -147
  281. package/dist/collection/components/wm-toggletip/wm-toggletip.css +0 -1152
  282. package/dist/collection/components/wm-toggletip/wm-toggletip.e2e.js +0 -69
  283. package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -289
  284. package/dist/collection/components/wm-toggletip/wm-toggletip.spec.js +0 -21
  285. package/dist/collection/components/wm-uploader/wm-uploader.css +0 -1563
  286. package/dist/collection/components/wm-uploader/wm-uploader.e2e.js +0 -70
  287. package/dist/collection/components/wm-uploader/wm-uploader.js +0 -603
  288. package/dist/collection/components/wm-uploader/wm-uploader.spec.js +0 -234
  289. package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -28
  290. package/dist/collection/dev/button.js +0 -0
  291. package/dist/collection/dev/chart-small.js +0 -56
  292. package/dist/collection/dev/chart.js +0 -18
  293. package/dist/collection/dev/date-range.js +0 -6
  294. package/dist/collection/dev/datepicker.js +0 -46
  295. package/dist/collection/dev/file-list.js +0 -16
  296. package/dist/collection/dev/file.js +0 -0
  297. package/dist/collection/dev/input.js +0 -6
  298. package/dist/collection/dev/line-chart.js +0 -0
  299. package/dist/collection/dev/modal.js +0 -48
  300. package/dist/collection/dev/navigation.js +0 -13
  301. package/dist/collection/dev/navigator.js +0 -34
  302. package/dist/collection/dev/nested-select.js +0 -36
  303. package/dist/collection/dev/pagination.js +0 -7
  304. package/dist/collection/dev/progress-monitor.js +0 -0
  305. package/dist/collection/dev/pss-modal.js +0 -8
  306. package/dist/collection/dev/scripts.js +0 -49
  307. package/dist/collection/dev/search.js +0 -72
  308. package/dist/collection/dev/select.js +0 -57
  309. package/dist/collection/dev/snackbar.js +0 -54
  310. package/dist/collection/dev/tabs.js +0 -44
  311. package/dist/collection/dev/tag-input.js +0 -32
  312. package/dist/collection/dev/textarea.js +0 -28
  313. package/dist/collection/dev/timepicker.js +0 -32
  314. package/dist/collection/dev/toggletip.js +0 -9
  315. package/dist/collection/dev/uploader.js +0 -139
  316. package/dist/collection/global/__mocks__/functions.js +0 -6
  317. package/dist/collection/global/functions.js +0 -825
  318. package/dist/collection/global/functions.spec.js +0 -126
  319. package/dist/collection/global/intl.js +0 -274
  320. package/dist/collection/global/services/__mocks__/http-service.js +0 -130
  321. package/dist/collection/global/services/http-service.js +0 -50
  322. package/dist/collection/lang/lang.js +0 -5
  323. package/dist/collection/lang/lang.spec.js +0 -20
  324. package/dist/collection/lang/missing.js +0 -43
  325. package/dist/collection/lang/piglatin.js +0 -101
  326. package/dist/esm/functions-00e1916b.js +0 -9639
  327. package/dist/esm/global-c76064cb.js +0 -83
  328. package/dist/esm/index-558b5a82.js +0 -2618
  329. package/dist/esm/index.js +0 -1
  330. package/dist/esm/interfaces-cc5b177f.js +0 -34
  331. package/dist/esm/loader.js +0 -10
  332. package/dist/esm/polyfills/core-js.js +0 -11
  333. package/dist/esm/polyfills/dom.js +0 -79
  334. package/dist/esm/polyfills/es5-html-element.js +0 -1
  335. package/dist/esm/polyfills/index.js +0 -34
  336. package/dist/esm/polyfills/system.js +0 -6
  337. package/dist/esm/ripple.js +0 -19
  338. package/dist/esm/wm-action-menu_2.entry.js +0 -328
  339. package/dist/esm/wm-chart-slice.entry.js +0 -23
  340. package/dist/esm/wm-modal-pss_3.entry.js +0 -208
  341. package/dist/esm/wm-modal_3.entry.js +0 -206
  342. package/dist/esm/wm-navigation_3.entry.js +0 -179
  343. package/dist/esm/wm-option_2.entry.js +0 -420
  344. package/dist/esm/wm-tab-item_3.entry.js +0 -254
  345. package/dist/esm/wm-tag-option.entry.js +0 -39
  346. package/dist/esm/wm-wrapper.entry.js +0 -17
  347. package/dist/esm-es5/chartFunctions-9099c7e9.js +0 -1
  348. package/dist/esm-es5/functions-00e1916b.js +0 -1
  349. package/dist/esm-es5/global-c76064cb.js +0 -1
  350. package/dist/esm-es5/index-558b5a82.js +0 -1
  351. package/dist/esm-es5/index.js +0 -0
  352. package/dist/esm-es5/interfaces-cc5b177f.js +0 -1
  353. package/dist/esm-es5/intl-a6f16883.js +0 -1
  354. package/dist/esm-es5/loader.js +0 -1
  355. package/dist/esm-es5/priv-calendar.entry.js +0 -1
  356. package/dist/esm-es5/priv-chart-popover.entry.js +0 -1
  357. package/dist/esm-es5/priv-navigator-button.entry.js +0 -1
  358. package/dist/esm-es5/priv-navigator-item.entry.js +0 -1
  359. package/dist/esm-es5/priv-option-list.entry.js +0 -1
  360. package/dist/esm-es5/ripple.js +0 -1
  361. package/dist/esm-es5/wm-action-menu_2.entry.js +0 -1
  362. package/dist/esm-es5/wm-button.entry.js +0 -1
  363. package/dist/esm-es5/wm-chart-slice.entry.js +0 -1
  364. package/dist/esm-es5/wm-chart.entry.js +0 -1
  365. package/dist/esm-es5/wm-date-range.entry.js +0 -1
  366. package/dist/esm-es5/wm-datepicker.entry.js +0 -1
  367. package/dist/esm-es5/wm-file-list.entry.js +0 -1
  368. package/dist/esm-es5/wm-file.entry.js +0 -1
  369. package/dist/esm-es5/wm-input.entry.js +0 -1
  370. package/dist/esm-es5/wm-line-chart.entry.js +0 -1
  371. package/dist/esm-es5/wm-modal-pss_3.entry.js +0 -1
  372. package/dist/esm-es5/wm-modal_3.entry.js +0 -1
  373. package/dist/esm-es5/wm-navigation_3.entry.js +0 -1
  374. package/dist/esm-es5/wm-navigator.entry.js +0 -1
  375. package/dist/esm-es5/wm-nested-select.entry.js +0 -1
  376. package/dist/esm-es5/wm-optgroup.entry.js +0 -1
  377. package/dist/esm-es5/wm-option_2.entry.js +0 -1
  378. package/dist/esm-es5/wm-pagination.entry.js +0 -1
  379. package/dist/esm-es5/wm-progress-indicator_3.entry.js +0 -1
  380. package/dist/esm-es5/wm-search.entry.js +0 -1
  381. package/dist/esm-es5/wm-snackbar.entry.js +0 -1
  382. package/dist/esm-es5/wm-tab-item_3.entry.js +0 -1
  383. package/dist/esm-es5/wm-tag-input.entry.js +0 -1
  384. package/dist/esm-es5/wm-tag-option.entry.js +0 -1
  385. package/dist/esm-es5/wm-textarea.entry.js +0 -1
  386. package/dist/esm-es5/wm-timepicker.entry.js +0 -1
  387. package/dist/esm-es5/wm-toggletip.entry.js +0 -1
  388. package/dist/esm-es5/wm-uploader.entry.js +0 -1
  389. package/dist/esm-es5/wm-wrapper.entry.js +0 -1
  390. package/dist/index.cjs.js +0 -1
  391. package/dist/index.js +0 -1
  392. package/dist/loader/cdn.js +0 -3
  393. package/dist/loader/index.cjs.js +0 -3
  394. package/dist/loader/index.d.ts +0 -21
  395. package/dist/loader/index.es2017.js +0 -3
  396. package/dist/loader/index.js +0 -4
  397. package/dist/loader/package.json +0 -11
  398. package/dist/ripple/index.esm.js +0 -0
  399. package/dist/ripple/p-05ae54d7.entry.js +0 -1
  400. package/dist/ripple/p-0d89d63c.system.entry.js +0 -1
  401. package/dist/ripple/p-118c47eb.system.entry.js +0 -1
  402. package/dist/ripple/p-1a4b6b02.system.entry.js +0 -1
  403. package/dist/ripple/p-1a4b7504.system.entry.js +0 -1
  404. package/dist/ripple/p-1a951dfb.entry.js +0 -1
  405. package/dist/ripple/p-1c8f550f.system.entry.js +0 -1
  406. package/dist/ripple/p-1f751b87.js +0 -1
  407. package/dist/ripple/p-1fac5bf9.js +0 -1
  408. package/dist/ripple/p-20a8f732.system.entry.js +0 -1
  409. package/dist/ripple/p-249b56fb.entry.js +0 -1
  410. package/dist/ripple/p-249d13a1.system.entry.js +0 -1
  411. package/dist/ripple/p-26906899.entry.js +0 -1
  412. package/dist/ripple/p-2732bddd.js +0 -1
  413. package/dist/ripple/p-28119645.system.entry.js +0 -1
  414. package/dist/ripple/p-2f37f3ee.system.js +0 -1
  415. package/dist/ripple/p-32bf3f5b.system.entry.js +0 -1
  416. package/dist/ripple/p-335c03d3.system.entry.js +0 -1
  417. package/dist/ripple/p-363b534b.entry.js +0 -1
  418. package/dist/ripple/p-393e4636.js +0 -1
  419. package/dist/ripple/p-39f79d71.system.entry.js +0 -1
  420. package/dist/ripple/p-3a231f4b.system.entry.js +0 -1
  421. package/dist/ripple/p-3d4bb85f.entry.js +0 -1
  422. package/dist/ripple/p-4228de00.entry.js +0 -1
  423. package/dist/ripple/p-42fa7a77.system.js +0 -1
  424. package/dist/ripple/p-48e09589.entry.js +0 -1
  425. package/dist/ripple/p-4f8fe1d1.system.js +0 -1
  426. package/dist/ripple/p-50ea2036.system.js +0 -1
  427. package/dist/ripple/p-522ecb7d.system.entry.js +0 -1
  428. package/dist/ripple/p-54d6f0f9.entry.js +0 -1
  429. package/dist/ripple/p-568c595f.js +0 -2
  430. package/dist/ripple/p-56aeee6e.system.entry.js +0 -1
  431. package/dist/ripple/p-5e6a4f70.system.js +0 -1
  432. package/dist/ripple/p-5f082360.system.entry.js +0 -1
  433. package/dist/ripple/p-5f5fe905.js +0 -1
  434. package/dist/ripple/p-617c2c75.entry.js +0 -1
  435. package/dist/ripple/p-6524c53e.system.entry.js +0 -1
  436. package/dist/ripple/p-65d26233.system.entry.js +0 -1
  437. package/dist/ripple/p-6834a6d3.entry.js +0 -1
  438. package/dist/ripple/p-68e04222.entry.js +0 -1
  439. package/dist/ripple/p-68fddfaa.system.entry.js +0 -1
  440. package/dist/ripple/p-694903e6.system.entry.js +0 -1
  441. package/dist/ripple/p-73ca2f26.system.js +0 -1
  442. package/dist/ripple/p-7b6a65f8.system.entry.js +0 -1
  443. package/dist/ripple/p-7b7e1eb5.system.entry.js +0 -1
  444. package/dist/ripple/p-88ebddd7.entry.js +0 -1
  445. package/dist/ripple/p-8c1d27a7.entry.js +0 -1
  446. package/dist/ripple/p-8e9c24f3.entry.js +0 -1
  447. package/dist/ripple/p-8f836507.system.entry.js +0 -1
  448. package/dist/ripple/p-94495341.entry.js +0 -1
  449. package/dist/ripple/p-958331bf.entry.js +0 -1
  450. package/dist/ripple/p-9872623b.entry.js +0 -1
  451. package/dist/ripple/p-9ab3c088.system.entry.js +0 -1
  452. package/dist/ripple/p-9aedd599.entry.js +0 -1
  453. package/dist/ripple/p-9b848151.entry.js +0 -1
  454. package/dist/ripple/p-a04ef164.system.entry.js +0 -1
  455. package/dist/ripple/p-a78bb423.system.entry.js +0 -1
  456. package/dist/ripple/p-a880d9a0.system.entry.js +0 -1
  457. package/dist/ripple/p-ab8d78cc.system.js +0 -2
  458. package/dist/ripple/p-adc254e6.entry.js +0 -1
  459. package/dist/ripple/p-b165d61a.entry.js +0 -1
  460. package/dist/ripple/p-b39377c7.entry.js +0 -1
  461. package/dist/ripple/p-b9bca547.entry.js +0 -1
  462. package/dist/ripple/p-bae2c236.entry.js +0 -1
  463. package/dist/ripple/p-c53f3704.system.entry.js +0 -1
  464. package/dist/ripple/p-c56ff16f.entry.js +0 -1
  465. package/dist/ripple/p-c8cf09a2.system.entry.js +0 -1
  466. package/dist/ripple/p-cbdceb6e.entry.js +0 -1
  467. package/dist/ripple/p-cc813406.system.js +0 -1
  468. package/dist/ripple/p-d20a0f0c.system.entry.js +0 -1
  469. package/dist/ripple/p-d6111226.entry.js +0 -1
  470. package/dist/ripple/p-da68c87c.entry.js +0 -1
  471. package/dist/ripple/p-ddef82fa.system.entry.js +0 -1
  472. package/dist/ripple/p-dee6d5a3.entry.js +0 -1
  473. package/dist/ripple/p-e55d5371.entry.js +0 -1
  474. package/dist/ripple/p-e8c22f01.system.entry.js +0 -1
  475. package/dist/ripple/p-f555831b.entry.js +0 -1
  476. package/dist/ripple/p-f5c40e9e.system.entry.js +0 -1
  477. package/dist/ripple/p-fa09191b.system.entry.js +0 -1
  478. package/dist/ripple/p-fdfca58b.entry.js +0 -1
  479. package/dist/ripple/ripple.css +0 -1
  480. package/dist/ripple/ripple.esm.js +0 -1
  481. package/dist/ripple/ripple.js +0 -127
  482. /package/dist/{collection/dev/action-menu.js → types/test-setup.d.ts} +0 -0
@@ -1,200 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- import { AxePuppeteer } from "@axe-core/puppeteer";
3
- describe("wm-action-menu", () => {
4
- let page;
5
- beforeEach(async () => {
6
- page = await newE2EPage();
7
- await page.setContent("<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1><wm-action-menu id='test' tooltip='menu name'><wm-menuitem id='first' onClick='action()'>First action</wm-menuitem><wm-menuitem id='second'>Second action</wm-menuitem><wm-menuitem id='third'>Third action</wm-menuitem></wm-action-menu><script>function action() {document.getElementById('first').innerHTML = 'Changed text'}</script></main></body></html>");
8
- });
9
- it("passes Axe checks", async () => {
10
- const results = await new AxePuppeteer(page).analyze();
11
- expect(results.violations.length).toBe(0);
12
- });
13
- //ATTRIBUTES;
14
- it("has the right WAI_ARIA roles, states and properties", async () => {
15
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
16
- const menu = await page.find("wm-action-menu >>> #menu-test");
17
- const second = await page.find("#second");
18
- const third = await page.find("#third");
19
- await page.waitForChanges();
20
- // check aria-expanded attribute
21
- expect(wmbtn).toEqualAttribute("aria-expanded", "false");
22
- // If the element with the aria-expanded attribute controls the expansion of another grouping container that is not 'owned by' the element, the author SHOULD reference the container by using the aria-controls attribute.
23
- // src: https://www.w3.org/WAI/PF/aria/states_and_properties#aria-expanded
24
- expect(wmbtn).toEqualAttribute("aria-controls", "menu-test");
25
- // An element that contains or owns all the menu items has role menu.
26
- expect(menu).toEqualAttribute("role", "menu");
27
- expect(menu).toEqualAttribute("tabindex", "-1");
28
- // Each menuitem in the menu has role menuitem.
29
- expect(second).toEqualAttribute("role", "menuitem"); // just checking one randomly
30
- expect(third).toEqualAttribute("tabindex", "-1");
31
- });
32
- // Down Arrow: Moves focus to the first menuitem. If the dropdown is collapsed, it also expands the list.
33
- // Up Arrow: Moves focus to the last menuitem. If the dropdown is collapsed, it also expands the list.
34
- it("handles Up and Down Arrow keys", async () => {
35
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
36
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
37
- await page.keyboard.press("Tab");
38
- await page.waitForChanges();
39
- await page.keyboard.press("ArrowDown");
40
- await page.waitForChanges();
41
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
42
- const first = await page.find("wm-menuitem#first >>> div");
43
- const second = await page.find("wm-menuitem#second >>> div");
44
- expect(first).toHaveClass("focus");
45
- await page.keyboard.press("ArrowDown");
46
- await page.waitForChanges();
47
- expect(second).toHaveClass("focus");
48
- await page.keyboard.press("ArrowUp");
49
- await page.waitForChanges();
50
- expect(first).toHaveClass("focus");
51
- await page.keyboard.press("Enter");
52
- await page.waitForChanges();
53
- await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
54
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
55
- await page.keyboard.press("ArrowUp");
56
- await page.waitForChanges();
57
- // after the action runs the dropdown close and the dev should focus the relevant element.
58
- // in case they don't, focus will return to the body. The component checks that and brings focus
59
- // back to the button when that's the case.
60
- // Things seem to happen differently with headless chrome / puppeteer. Focus stays on the menuitem even after
61
- // it has become unable to have focus in normal browsers (after dropdown closes). Focus never gets to body.
62
- // So here we simply test that the active el is not the body
63
- const activeEl = await page.evaluate(() => document.activeElement.tagName);
64
- expect(activeEl).not.toEqual("BODY");
65
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
66
- await page.keyboard.press("ArrowUp");
67
- await page.waitForChanges();
68
- expect(second).toHaveClass("focus");
69
- });
70
- // Home: If the dropdown is displayed, moves focus to first menuitem.
71
- // End: If the dropdown is displayed, moves focus to last menuitem.
72
- it("handles Home and End keys", async () => {
73
- await page.keyboard.press("Tab");
74
- await page.keyboard.press("Enter");
75
- await page.waitForTimeout(40);
76
- await page.keyboard.press("ArrowDown");
77
- await page.keyboard.press("ArrowDown");
78
- await page.waitForChanges();
79
- const focusedEl = await page.find("wm-menuitem#third >>> div");
80
- expect(focusedEl).toHaveClass("focus");
81
- await page.keyboard.press("Home");
82
- await page.waitForChanges();
83
- const homefocusedEl = await page.find("wm-menuitem#first >>> div");
84
- expect(focusedEl).not.toHaveClass("focus");
85
- expect(homefocusedEl).toHaveClass("focus");
86
- await page.keyboard.press("End");
87
- await page.waitForChanges();
88
- const endfocusedEl = await page.find("wm-menuitem#third >>> div");
89
- expect(endfocusedEl).toHaveClass("focus");
90
- });
91
- // - Type a character: focus moves to the next menuitem with a name that starts with the typed character.
92
- // - Type multiple characters in rapid succession: focus moves to the next menuitem with a name that starts with the string of characters typed
93
- it("handles typing", async () => {
94
- await page.keyboard.press("Tab");
95
- await page.keyboard.press("Enter");
96
- await page.waitForChanges();
97
- await page.keyboard.press("t");
98
- await page.waitForChanges();
99
- const focusedEl = await page.find("wm-menuitem#third >>> div");
100
- expect(focusedEl).toHaveClass("focus");
101
- });
102
- // OPEN / CLOSE
103
- // Spacebar: Should open the popup (we didn't implement, comes for free. Test is to make sure we don't break it)
104
- it("handles the Spacebar key", async () => {
105
- await page.keyboard.press("Tab");
106
- await page.keyboard.press("Space");
107
- await page.waitForChanges();
108
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
109
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
110
- });
111
- // Escape: If the menu is displayed, closes the popup and returns focus to the button.
112
- it("handles the Escape key", async () => {
113
- await page.keyboard.press("Tab");
114
- await page.keyboard.press("Enter");
115
- await page.waitForChanges();
116
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
117
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
118
- await page.keyboard.press("ArrowDown");
119
- await page.keyboard.press("Escape");
120
- await page.waitForChanges();
121
- await page.waitForTimeout(500); //allow closing animation and setTimeout to finish
122
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
123
- const activeElId = await page.evaluate(() => document.activeElement.id);
124
- expect(activeElId).toEqual("test");
125
- //When dropdown reopens, focus returns to first element
126
- await page.keyboard.press("Enter");
127
- await page.waitForChanges();
128
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
129
- const focusedEl = await page.find("wm-menuitem#first >>> div");
130
- expect(focusedEl).toHaveClass("focus"); //
131
- });
132
- // Enter:
133
- // - If the focus is on the button, it expands the dropdown and places focuses on the first menuitem.
134
- // - If the dropdown is open, it closes the dropdown.
135
- it("opens and closes the dropdown when enter key is pressed", async () => {
136
- await page.keyboard.press("Tab");
137
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
138
- await page.keyboard.press("Enter");
139
- await page.waitForChanges();
140
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("true");
141
- await page.keyboard.press("Enter");
142
- await page.waitForChanges();
143
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
144
- });
145
- it("runs the onClick function passed to the menuitem when clicked or key pressed", async () => {
146
- page = await newE2EPage();
147
- await page.setContent(`<html lang='en'><head><title>Page</title></head><body><main><h1>Title</h1>
148
- <wm-action-menu id='test' tooltip='menu name'>
149
- <wm-menuitem id='first' onClick='action()'>First action</wm-menuitem>
150
- </wm-action-menu>
151
- <div id='changeMe'>default</div>
152
- <script>
153
- function action() {
154
- document.getElementById('changeMe').textContent += "&"
155
- }
156
- </script></main></body></html>`);
157
- const div = await page.find("#changeMe");
158
- await page.keyboard.press("Tab");
159
- await page.waitForChanges();
160
- await page.keyboard.press("Enter");
161
- await page.waitForChanges();
162
- await page.keyboard.press("Enter");
163
- await page.waitForChanges();
164
- expect(div.textContent).toBe("default&");
165
- await page.waitForTimeout(300); // make sure menu is closed before reopening (closes after the 250ms animation)
166
- await page.keyboard.press("Enter");
167
- await page.waitForChanges();
168
- await page.click("#first");
169
- await page.waitForChanges();
170
- expect(div.textContent).toBe("default&&");
171
- });
172
- it("doesn't open the dropdown if the dropdown is disabled", async () => {
173
- await page.evaluate(() => document.querySelector("wm-action-menu").setAttribute("disabled", "true"));
174
- await page.keyboard.press("Tab");
175
- await page.keyboard.press("Enter");
176
- await page.waitForChanges();
177
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
178
- await page.waitForChanges();
179
- expect(wmbtn.getAttribute("aria-expanded")).toEqual("false");
180
- });
181
- // TOOLTIP
182
- it("renders a tooltip when type is icon", async () => {
183
- await page.keyboard.press("Tab");
184
- await page.waitForChanges();
185
- const tooltipEl = await page.find("#wm-tooltip");
186
- expect(tooltipEl.textContent).toBe("menu name");
187
- });
188
- it("uses the label instead of tooltip text", async () => {
189
- page = await newE2EPage();
190
- await page.setContent("<wm-action-menu icon='f1c0' action-menu-type='icon' tooltip='delete' label-for-identical-buttons='delete this particular thing'><wm-menuitem>1</wm-menuitem></wm-action-menu>");
191
- // use case: when the tooltip is something like "edit" and there are several buttons on a page, the aria label should be more specific than the tooltip
192
- const wmbtn = await page.find("wm-action-menu >>> wm-button");
193
- const btn = wmbtn.shadowRoot.querySelector("button");
194
- await page.keyboard.press("Tab");
195
- await page.waitForChanges();
196
- const tooltipEl = await page.find("#wm-tooltip");
197
- expect(tooltipEl.textContent).toEqual("delete");
198
- expect(btn).toEqualAttribute("aria-label", "delete this particular thing");
199
- });
200
- });
@@ -1,435 +0,0 @@
1
- import { h, Host } from "@stencil/core";
2
- import { debounce, getTextDir, shouldOpenUp, shouldShiftRight } from "../../global/functions";
3
- export class ActionMenu {
4
- constructor() {
5
- this.openUp = false;
6
- this.keysSoFar = "";
7
- this.searchIndex = 0;
8
- this.debouncedClearKeysSoFar = debounce(() => {
9
- this.keysSoFar = "";
10
- }, 500);
11
- this.isExpanded = false;
12
- this.tooltipPosition = undefined;
13
- this.actionMenuType = "icon";
14
- this.buttonText = undefined;
15
- this.disabled = false;
16
- this.tooltip = undefined;
17
- this.labelForIdenticalButtons = undefined;
18
- this.darkMode = undefined;
19
- }
20
- get horizontalPosition() {
21
- return !!this.el && !!this.itemsEl && shouldShiftRight(this.el, this.itemsEl.clientWidth) ? "right" : "left";
22
- }
23
- get childItems() {
24
- return Array.from(this.el.querySelectorAll("wm-menuitem"));
25
- }
26
- get internalButtonType() {
27
- return this.actionMenuType === "icon" || this.actionMenuType === "text"
28
- ? this.actionMenuType + "only"
29
- : this.actionMenuType;
30
- }
31
- handleClickedItem() {
32
- this.close();
33
- }
34
- handleKeyUp(ev) {
35
- this.moveUp(ev.target);
36
- }
37
- handleKeyDown(ev) {
38
- this.moveDown(ev.detail);
39
- }
40
- handleHomeKey() {
41
- this.focusFirstItem();
42
- }
43
- handleEndKey() {
44
- this.focusLastItem();
45
- }
46
- handleTabKey() {
47
- if (this.isExpanded) {
48
- this.close();
49
- }
50
- }
51
- handleEscKey() {
52
- this.close();
53
- this.wmButtonEl.focus();
54
- }
55
- handleKey(ev) {
56
- switch (ev.key) {
57
- case "ArrowDown":
58
- if (!this.isExpanded) {
59
- ev.preventDefault();
60
- this.open();
61
- window.requestAnimationFrame(() => this.focusFirstItem());
62
- }
63
- break;
64
- case "ArrowUp":
65
- if (!this.isExpanded) {
66
- ev.preventDefault();
67
- this.open();
68
- window.requestAnimationFrame(() => this.focusLastItem());
69
- }
70
- break;
71
- }
72
- }
73
- handleMenuitemBlur(ev) {
74
- const toElOrChild = ev.detail.relatedTarget === this.el || this.el.contains(ev.detail.relatedTarget);
75
- // if the Menuitem is blurred to something other than the component, emit a blur event with the appropriate relatedTarget
76
- // keeps our component's blur events accurate, and closes when focusing browser address bar
77
- if (!toElOrChild) {
78
- const event = new CustomEvent("blur");
79
- // @ts-ignore
80
- event.relatedTarget = ev.detail.relatedTarget;
81
- this.el.dispatchEvent(event);
82
- }
83
- }
84
- handleButtonBlur(ev) {
85
- const toElOrChild = ev.relatedTarget === this.el || this.el.contains(ev.relatedTarget);
86
- if (toElOrChild) {
87
- // do not emit a blur event when opening the dropdown and focusing the Menuitems
88
- ev.stopPropagation();
89
- }
90
- }
91
- componentDidLoad() {
92
- if (this.actionMenuType !== "icon" && !this.buttonText) {
93
- console.error("wm-action-menu should have a valid button-text property when action-menu-type is set to 'text' or 'selector'");
94
- }
95
- if (this.actionMenuType === "icon" && !this.tooltip) {
96
- console.error("wm-action-menu should have a valid tooltip when action-menu-type is set to 'icon'");
97
- }
98
- this.wmActionMenuLoaded.emit();
99
- this.menuLoaded.emit(); // deprecated
100
- }
101
- moveUp(el) {
102
- const index = this.childItems.indexOf(el);
103
- if (index === 0) {
104
- this.focusLastItem();
105
- }
106
- else {
107
- this.childItems[index - 1].focus();
108
- }
109
- }
110
- moveDown(el) {
111
- const index = this.childItems.indexOf(el);
112
- if (index === this.childItems.length - 1) {
113
- this.focusFirstItem();
114
- }
115
- else {
116
- this.childItems[index + 1].focus();
117
- }
118
- }
119
- open() {
120
- if (!this.disabled) {
121
- this.openUp = shouldOpenUp(this.el, this.itemsEl.clientHeight);
122
- // action menu usually is on the right side of the screen,
123
- // so dropdown opens to the left (is anchored on the right corner)
124
- // if there is not enough space on the left and enough on the right though,
125
- // it will open on the right side
126
- this.isExpanded = true;
127
- this.itemsEl.classList.remove("hidden");
128
- window.requestAnimationFrame(() => this.focusFirstItem());
129
- }
130
- }
131
- close(returnFocus = true) {
132
- this.isExpanded = false;
133
- window.setTimeout(() => {
134
- this.itemsEl.classList.add("hidden");
135
- }, 150);
136
- window.setTimeout(() => {
137
- // if dev omits to assign focus after an action is triggered,
138
- // the component brings the focus back on the button
139
- // Focus will only be lost (and go to the body) once the menuitem
140
- // is not visible anymore, so we need to wait for the transition to
141
- // finish and the hidden class to be applied.
142
- // also checking if focus stayed on the menuitem
143
- if (returnFocus &&
144
- (document.activeElement.tagName === "BODY" || document.activeElement.tagName === "WM-MENUITEM")) {
145
- this.wmButtonEl.focus();
146
- }
147
- }, 250);
148
- }
149
- focusFirstItem() {
150
- this.childItems[0].focus();
151
- }
152
- focusLastItem() {
153
- this.childItems[this.childItems.length - 1].focus();
154
- }
155
- findAndFocusItem(ev) {
156
- if (!this.keysSoFar && ev.detail == " ") {
157
- // if the first key entered is space, treat as a click. Otherwise include in
158
- ev.target.click();
159
- }
160
- else {
161
- const character = ev.detail.toLowerCase();
162
- this.focusFirstItem();
163
- if (!this.keysSoFar) {
164
- this.childItems.forEach((item, idx) => {
165
- if (item === document.activeElement) {
166
- this.searchIndex = idx;
167
- }
168
- });
169
- }
170
- this.keysSoFar += character;
171
- let nextMatch = this.findMatchInRange(this.childItems, this.searchIndex + 1, this.childItems.length);
172
- if (!nextMatch) {
173
- nextMatch = this.findMatchInRange(this.childItems, 0, this.searchIndex);
174
- }
175
- if (nextMatch) {
176
- nextMatch.focus();
177
- }
178
- this.debouncedClearKeysSoFar();
179
- }
180
- }
181
- findMatchInRange(list, startIndex, endIndex) {
182
- // Find the first item starting with the keysSoFar substring, searching in
183
- // the specified range of items
184
- for (var n = startIndex; n < endIndex; n++) {
185
- var label = list[n].textContent;
186
- if (label && label.toLowerCase().indexOf(this.keysSoFar) === 0) {
187
- return list[n];
188
- }
189
- }
190
- return null;
191
- }
192
- render() {
193
- return (h(Host, { onBlur: () => this.close(false) }, h("div", { class: getTextDir() }, h("wm-button", { "button-type": this.internalButtonType, tooltip: this.tooltip, "custom-background": this.darkMode ? "dark" : undefined, "label-for-identical-buttons": this.labelForIdenticalButtons, icon: this.actionMenuType === "icon" ? "#more-options" : "", iconSize: this.actionMenuType === "icon" ? "24px" : undefined, id: "menubtn", onClick: () => (this.isExpanded ? this.close() : this.open()), onBlur: (ev) => this.handleButtonBlur(ev), disabled: this.disabled, ref: (el) => (this.wmButtonEl = el), "tooltip-position": this.tooltipPosition || this.horizontalPosition, "aria-haspopup": "true", "aria-expanded": this.isExpanded ? "true" : "false", "aria-controls": "menu" }, this.buttonText), h("div", { class: `dropdown ${this.openUp ? "open-up" : ""} ${this.horizontalPosition} ${this.isExpanded ? "open" : ""} hidden`, id: "menu", tabindex: -1, role: "menu", ref: (el) => (this.itemsEl = el) }, h("slot", null)))));
194
- }
195
- static get is() { return "wm-action-menu"; }
196
- static get encapsulation() { return "shadow"; }
197
- static get delegatesFocus() { return true; }
198
- static get originalStyleUrls() {
199
- return {
200
- "$": ["wm-action-menu.scss"]
201
- };
202
- }
203
- static get styleUrls() {
204
- return {
205
- "$": ["wm-action-menu.css"]
206
- };
207
- }
208
- static get properties() {
209
- return {
210
- "tooltipPosition": {
211
- "type": "string",
212
- "mutable": false,
213
- "complexType": {
214
- "original": "| \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-right\"\n | \"top-left\"",
215
- "resolved": "\"bottom\" | \"bottom-left\" | \"bottom-right\" | \"left\" | \"right\" | \"top\" | \"top-left\" | \"top-right\" | undefined",
216
- "references": {}
217
- },
218
- "required": false,
219
- "optional": true,
220
- "docs": {
221
- "tags": [],
222
- "text": ""
223
- },
224
- "attribute": "tooltip-position",
225
- "reflect": false
226
- },
227
- "actionMenuType": {
228
- "type": "string",
229
- "mutable": false,
230
- "complexType": {
231
- "original": "\"icon\" | \"text\" | \"selector\" | \"selector-primary\"",
232
- "resolved": "\"icon\" | \"selector\" | \"selector-primary\" | \"text\"",
233
- "references": {}
234
- },
235
- "required": false,
236
- "optional": false,
237
- "docs": {
238
- "tags": [],
239
- "text": ""
240
- },
241
- "attribute": "action-menu-type",
242
- "reflect": false,
243
- "defaultValue": "\"icon\""
244
- },
245
- "buttonText": {
246
- "type": "string",
247
- "mutable": false,
248
- "complexType": {
249
- "original": "string",
250
- "resolved": "string | undefined",
251
- "references": {}
252
- },
253
- "required": false,
254
- "optional": true,
255
- "docs": {
256
- "tags": [],
257
- "text": ""
258
- },
259
- "attribute": "button-text",
260
- "reflect": false
261
- },
262
- "disabled": {
263
- "type": "boolean",
264
- "mutable": false,
265
- "complexType": {
266
- "original": "boolean",
267
- "resolved": "boolean",
268
- "references": {}
269
- },
270
- "required": false,
271
- "optional": false,
272
- "docs": {
273
- "tags": [],
274
- "text": ""
275
- },
276
- "attribute": "disabled",
277
- "reflect": true,
278
- "defaultValue": "false"
279
- },
280
- "tooltip": {
281
- "type": "string",
282
- "mutable": false,
283
- "complexType": {
284
- "original": "string",
285
- "resolved": "string | undefined",
286
- "references": {}
287
- },
288
- "required": false,
289
- "optional": true,
290
- "docs": {
291
- "tags": [],
292
- "text": ""
293
- },
294
- "attribute": "tooltip",
295
- "reflect": false
296
- },
297
- "labelForIdenticalButtons": {
298
- "type": "string",
299
- "mutable": false,
300
- "complexType": {
301
- "original": "string",
302
- "resolved": "string | undefined",
303
- "references": {}
304
- },
305
- "required": false,
306
- "optional": true,
307
- "docs": {
308
- "tags": [],
309
- "text": ""
310
- },
311
- "attribute": "label-for-identical-buttons",
312
- "reflect": false
313
- },
314
- "darkMode": {
315
- "type": "boolean",
316
- "mutable": false,
317
- "complexType": {
318
- "original": "boolean",
319
- "resolved": "boolean | undefined",
320
- "references": {}
321
- },
322
- "required": false,
323
- "optional": true,
324
- "docs": {
325
- "tags": [],
326
- "text": ""
327
- },
328
- "attribute": "dark-mode",
329
- "reflect": false
330
- }
331
- };
332
- }
333
- static get states() {
334
- return {
335
- "isExpanded": {}
336
- };
337
- }
338
- static get events() {
339
- return [{
340
- "method": "wmActionMenuLoaded",
341
- "name": "wmActionMenuLoaded",
342
- "bubbles": true,
343
- "cancelable": true,
344
- "composed": true,
345
- "docs": {
346
- "tags": [],
347
- "text": ""
348
- },
349
- "complexType": {
350
- "original": "any",
351
- "resolved": "any",
352
- "references": {}
353
- }
354
- }, {
355
- "method": "menuLoaded",
356
- "name": "menuLoaded",
357
- "bubbles": true,
358
- "cancelable": true,
359
- "composed": true,
360
- "docs": {
361
- "tags": [],
362
- "text": ""
363
- },
364
- "complexType": {
365
- "original": "any",
366
- "resolved": "any",
367
- "references": {}
368
- }
369
- }];
370
- }
371
- static get elementRef() { return "el"; }
372
- static get listeners() {
373
- return [{
374
- "name": "wmMenuitemClicked",
375
- "method": "handleClickedItem",
376
- "target": undefined,
377
- "capture": false,
378
- "passive": false
379
- }, {
380
- "name": "wmKeyUpPressed",
381
- "method": "handleKeyUp",
382
- "target": undefined,
383
- "capture": false,
384
- "passive": false
385
- }, {
386
- "name": "wmKeyDownPressed",
387
- "method": "handleKeyDown",
388
- "target": undefined,
389
- "capture": false,
390
- "passive": false
391
- }, {
392
- "name": "wmHomeKeyPressed",
393
- "method": "handleHomeKey",
394
- "target": undefined,
395
- "capture": false,
396
- "passive": false
397
- }, {
398
- "name": "wmEndKeyPressed",
399
- "method": "handleEndKey",
400
- "target": undefined,
401
- "capture": false,
402
- "passive": false
403
- }, {
404
- "name": "wmTabKeyPressed",
405
- "method": "handleTabKey",
406
- "target": undefined,
407
- "capture": false,
408
- "passive": false
409
- }, {
410
- "name": "wmEscKeyPressed",
411
- "method": "handleEscKey",
412
- "target": undefined,
413
- "capture": false,
414
- "passive": false
415
- }, {
416
- "name": "keydown",
417
- "method": "handleKey",
418
- "target": undefined,
419
- "capture": false,
420
- "passive": false
421
- }, {
422
- "name": "wmMenuitemBlurred",
423
- "method": "handleMenuitemBlur",
424
- "target": undefined,
425
- "capture": false,
426
- "passive": false
427
- }, {
428
- "name": "wmLetterPressed",
429
- "method": "findAndFocusItem",
430
- "target": undefined,
431
- "capture": false,
432
- "passive": false
433
- }];
434
- }
435
- }