@watermarkinsights/ripple 3.7.0 → 3.8.0-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 (256) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{functions-13b0e88e.js → functions-f0693632.js} +442 -442
  3. package/dist/cjs/{global-c802d13c.js → global-0d9945cb.js} +65 -65
  4. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
  5. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
  6. package/dist/cjs/loader.cjs.js +2 -2
  7. package/dist/cjs/priv-chart-popover.cjs.entry.js +79 -79
  8. package/dist/cjs/priv-datepicker.cjs.entry.js +673 -668
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  10. package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
  11. package/dist/cjs/ripple.cjs.js +2 -2
  12. package/dist/cjs/wm-action-menu_2.cjs.entry.js +342 -342
  13. package/dist/cjs/wm-button.cjs.entry.js +237 -237
  14. package/dist/cjs/wm-chart-slice.cjs.entry.js +13 -13
  15. package/dist/cjs/wm-chart.cjs.entry.js +475 -475
  16. package/dist/cjs/wm-datepicker.cjs.entry.js +272 -263
  17. package/dist/cjs/wm-input.cjs.entry.js +135 -135
  18. package/dist/cjs/wm-modal-footer.cjs.entry.js +32 -32
  19. package/dist/cjs/wm-modal-header.cjs.entry.js +34 -34
  20. package/dist/cjs/wm-modal.cjs.entry.js +162 -162
  21. package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
  22. package/dist/cjs/wm-network-uploader.cjs.entry.js +421 -421
  23. package/dist/cjs/wm-option_2.cjs.entry.js +496 -496
  24. package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
  25. package/dist/cjs/wm-search.cjs.entry.js +233 -233
  26. package/dist/cjs/wm-snackbar.cjs.entry.js +171 -171
  27. package/dist/cjs/wm-tab-item_3.cjs.entry.js +298 -298
  28. package/dist/cjs/wm-tag-input.cjs.entry.js +580 -571
  29. package/dist/cjs/wm-timepicker.cjs.entry.js +384 -381
  30. package/dist/cjs/wm-toggletip.cjs.entry.js +125 -125
  31. package/dist/cjs/wm-uploader.cjs.entry.js +347 -347
  32. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  33. package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
  34. package/dist/collection/components/wm-button/wm-button.js +503 -503
  35. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -232
  36. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -64
  37. package/dist/collection/components/wm-chart/wm-chart.css +3 -0
  38. package/dist/collection/components/wm-chart/wm-chart.js +718 -718
  39. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1039 -1015
  40. package/dist/collection/components/wm-datepicker/wm-datepicker.js +483 -468
  41. package/dist/collection/components/wm-input/wm-input.js +423 -423
  42. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  43. package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
  44. package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
  45. package/dist/collection/components/wm-modal/wm-modal.js +459 -459
  46. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  47. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  48. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  49. package/dist/collection/components/wm-option/wm-option.js +422 -422
  50. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  51. package/dist/collection/components/wm-search/wm-search.js +480 -480
  52. package/dist/collection/components/wm-select/wm-select.js +720 -720
  53. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  54. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +216 -216
  55. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +330 -330
  56. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  57. package/dist/collection/components/wm-tag-input/wm-tag-input.js +810 -801
  58. package/dist/collection/components/wm-timepicker/wm-timepicker.js +583 -580
  59. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  60. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -753
  61. package/dist/collection/components/wm-uploader/wm-uploader.js +748 -748
  62. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  63. package/dist/collection/dev/scripts.js +20 -20
  64. package/dist/collection/global/__mocks__/functions.js +6 -6
  65. package/dist/collection/global/functions.js +445 -445
  66. package/dist/collection/global/global.js +72 -72
  67. package/dist/collection/global/interfaces.js +49 -49
  68. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  69. package/dist/collection/global/services/http-service.js +50 -50
  70. package/dist/collection/lang/lang.js +5 -5
  71. package/dist/collection/lang/missing.js +39 -39
  72. package/dist/collection/lang/piglatin.js +93 -93
  73. package/dist/esm/{functions-6ddad20e.js → functions-cbfc81d1.js} +442 -442
  74. package/dist/esm/{global-a4da88c7.js → global-6f2aeeeb.js} +65 -65
  75. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  76. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  77. package/dist/esm/loader.js +2 -2
  78. package/dist/esm/polyfills/core-js.js +0 -0
  79. package/dist/esm/polyfills/dom.js +0 -0
  80. package/dist/esm/polyfills/es5-html-element.js +0 -0
  81. package/dist/esm/polyfills/index.js +0 -0
  82. package/dist/esm/polyfills/system.js +0 -0
  83. package/dist/esm/priv-chart-popover.entry.js +79 -79
  84. package/dist/esm/priv-datepicker.entry.js +673 -668
  85. package/dist/esm/priv-navigator-button.entry.js +19 -19
  86. package/dist/esm/priv-navigator-item.entry.js +23 -23
  87. package/dist/esm/ripple.js +2 -2
  88. package/dist/esm/wm-action-menu_2.entry.js +342 -342
  89. package/dist/esm/wm-button.entry.js +237 -237
  90. package/dist/esm/wm-chart-slice.entry.js +13 -13
  91. package/dist/esm/wm-chart.entry.js +475 -475
  92. package/dist/esm/wm-datepicker.entry.js +272 -263
  93. package/dist/esm/wm-input.entry.js +135 -135
  94. package/dist/esm/wm-modal-footer.entry.js +32 -32
  95. package/dist/esm/wm-modal-header.entry.js +34 -34
  96. package/dist/esm/wm-modal.entry.js +162 -162
  97. package/dist/esm/wm-navigator.entry.js +269 -269
  98. package/dist/esm/wm-network-uploader.entry.js +421 -421
  99. package/dist/esm/wm-option_2.entry.js +496 -496
  100. package/dist/esm/wm-pagination.entry.js +168 -168
  101. package/dist/esm/wm-search.entry.js +233 -233
  102. package/dist/esm/wm-snackbar.entry.js +171 -171
  103. package/dist/esm/wm-tab-item_3.entry.js +298 -298
  104. package/dist/esm/wm-tag-input.entry.js +580 -571
  105. package/dist/esm/wm-timepicker.entry.js +384 -381
  106. package/dist/esm/wm-toggletip.entry.js +125 -125
  107. package/dist/esm/wm-uploader.entry.js +347 -347
  108. package/dist/esm/wm-wrapper.entry.js +12 -12
  109. package/dist/esm-es5/functions-cbfc81d1.js +15 -0
  110. package/dist/esm-es5/global-6f2aeeeb.js +1 -0
  111. package/dist/esm-es5/http-service-3dc3b3e7.js +1 -0
  112. package/dist/esm-es5/index-66f8130e.js +1 -0
  113. package/dist/esm-es5/index.js +0 -0
  114. package/dist/esm-es5/interfaces-2b97fab2.js +1 -0
  115. package/dist/esm-es5/loader.js +1 -0
  116. package/dist/esm-es5/priv-chart-popover.entry.js +1 -0
  117. package/dist/esm-es5/priv-datepicker.entry.js +1 -0
  118. package/dist/esm-es5/priv-navigator-button.entry.js +1 -0
  119. package/dist/esm-es5/priv-navigator-item.entry.js +1 -0
  120. package/dist/esm-es5/ripple.js +1 -0
  121. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -0
  122. package/dist/esm-es5/wm-button.entry.js +1 -0
  123. package/dist/esm-es5/wm-chart-slice.entry.js +1 -0
  124. package/dist/esm-es5/wm-chart.entry.js +1 -0
  125. package/dist/esm-es5/wm-datepicker.entry.js +1 -0
  126. package/dist/esm-es5/wm-input.entry.js +1 -0
  127. package/dist/esm-es5/wm-modal-footer.entry.js +1 -0
  128. package/dist/esm-es5/wm-modal-header.entry.js +1 -0
  129. package/dist/esm-es5/wm-modal.entry.js +1 -0
  130. package/dist/esm-es5/wm-navigator.entry.js +1 -0
  131. package/dist/esm-es5/wm-network-uploader.entry.js +1 -0
  132. package/dist/esm-es5/wm-option_2.entry.js +1 -0
  133. package/dist/esm-es5/wm-pagination.entry.js +1 -0
  134. package/dist/esm-es5/wm-search.entry.js +1 -0
  135. package/dist/esm-es5/wm-snackbar.entry.js +1 -0
  136. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -0
  137. package/dist/esm-es5/wm-tag-input.entry.js +1 -0
  138. package/dist/esm-es5/wm-timepicker.entry.js +1 -0
  139. package/dist/esm-es5/wm-toggletip.entry.js +1 -0
  140. package/dist/esm-es5/wm-uploader.entry.js +1 -0
  141. package/dist/esm-es5/wm-wrapper.entry.js +1 -0
  142. package/dist/index.js +1 -1
  143. package/dist/loader/index.js +1 -1
  144. package/dist/ripple/p-0418abd7.system.js +15 -0
  145. package/dist/ripple/p-065e2ca1.entry.js +1 -0
  146. package/dist/ripple/p-06627dcf.entry.js +1 -0
  147. package/dist/ripple/p-08b2262e.system.entry.js +1 -0
  148. package/dist/ripple/p-09432004.system.entry.js +1 -0
  149. package/dist/ripple/{p-bc9ca97b.entry.js → p-0d8bd4ee.entry.js} +1 -1
  150. package/dist/ripple/{p-cfdf1a79.entry.js → p-111f705a.entry.js} +1 -1
  151. package/dist/ripple/p-1d899a2d.system.entry.js +1 -0
  152. package/dist/ripple/p-252e91de.entry.js +1 -0
  153. package/dist/ripple/p-261ea633.system.entry.js +1 -0
  154. package/dist/ripple/p-2cdfb4cc.entry.js +1 -0
  155. package/dist/ripple/p-2d49a016.system.entry.js +1 -0
  156. package/dist/ripple/{p-e43b4eda.entry.js → p-2f91e2a6.entry.js} +1 -1
  157. package/dist/ripple/p-366a3db1.system.entry.js +1 -0
  158. package/dist/ripple/p-3e1dd662.entry.js +1 -0
  159. package/dist/ripple/p-3fb41fe3.system.entry.js +1 -0
  160. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  161. package/dist/ripple/p-50ea2036.system.js +1 -0
  162. package/dist/ripple/{p-d22c957d.entry.js → p-51d2b9a0.entry.js} +1 -1
  163. package/dist/ripple/p-5a528af7.entry.js +1 -0
  164. package/dist/ripple/{p-66513af1.entry.js → p-5ad7afc0.entry.js} +1 -1
  165. package/dist/ripple/p-5bd3aa5a.system.entry.js +1 -0
  166. package/dist/ripple/p-656f8dad.system.js +1 -0
  167. package/dist/ripple/p-67fcdd5d.entry.js +1 -0
  168. package/dist/ripple/p-6b4374e3.system.entry.js +1 -0
  169. package/dist/ripple/p-6bc37009.system.entry.js +1 -0
  170. package/dist/ripple/p-7a9aac92.system.entry.js +1 -0
  171. package/dist/ripple/p-7bc744bf.system.entry.js +1 -0
  172. package/dist/ripple/p-85d12cf2.system.entry.js +1 -0
  173. package/dist/ripple/{p-08b273ba.entry.js → p-8afdc986.entry.js} +1 -1
  174. package/dist/ripple/p-8d97d1d5.system.entry.js +1 -0
  175. package/dist/ripple/p-8f05bc58.system.entry.js +1 -0
  176. package/dist/ripple/p-90aebfd6.system.entry.js +1 -0
  177. package/dist/ripple/p-9276c5e4.entry.js +1 -0
  178. package/dist/ripple/p-92b6bc97.system.entry.js +1 -0
  179. package/dist/ripple/p-99548d58.system.js +1 -0
  180. package/dist/ripple/p-9d02957d.system.js +1 -0
  181. package/dist/ripple/p-ae4e95ce.system.entry.js +1 -0
  182. package/dist/ripple/p-b3ce2033.system.entry.js +1 -0
  183. package/dist/ripple/p-b4e9a8e3.entry.js +1 -0
  184. package/dist/ripple/{p-857a0bc0.js → p-b5edcf38.js} +0 -0
  185. package/dist/ripple/p-b626f3b9.system.entry.js +1 -0
  186. package/dist/ripple/p-b840acea.system.entry.js +1 -0
  187. package/dist/ripple/p-ba30bf08.js +1 -0
  188. package/dist/ripple/p-c10dee71.system.js +1 -0
  189. package/dist/ripple/p-c3a9a5da.system.entry.js +1 -0
  190. package/dist/ripple/p-c730ce74.entry.js +1 -0
  191. package/dist/ripple/p-d0643c9b.entry.js +1 -0
  192. package/dist/ripple/p-da78496a.entry.js +1 -0
  193. package/dist/ripple/{p-b8aa478f.entry.js → p-dc196bc2.entry.js} +1 -1
  194. package/dist/ripple/p-deae1a7a.entry.js +1 -0
  195. package/dist/ripple/p-e06b8ab3.system.entry.js +1 -0
  196. package/dist/ripple/{p-b495e06c.entry.js → p-e3bab713.entry.js} +1 -1
  197. package/dist/ripple/p-e8acac87.system.entry.js +1 -0
  198. package/dist/ripple/p-eed76888.system.entry.js +1 -0
  199. package/dist/ripple/p-f5df5903.system.js +1 -0
  200. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
  201. package/dist/ripple/p-ff5ec153.entry.js +1 -0
  202. package/dist/ripple/ripple.esm.js +1 -1
  203. package/dist/ripple/ripple.js +130 -0
  204. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
  205. package/dist/types/components/wm-button/wm-button.d.ts +44 -44
  206. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -23
  207. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -8
  208. package/dist/types/components/wm-chart/wm-chart.d.ts +82 -82
  209. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -76
  210. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -41
  211. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  212. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  213. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
  214. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
  215. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  216. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  217. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  218. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  219. package/dist/types/components/wm-option/wm-option.d.ts +32 -32
  220. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  221. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  222. package/dist/types/components/wm-select/wm-select.d.ts +66 -66
  223. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  224. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  225. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  226. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  227. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +92 -92
  228. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +61 -61
  229. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  230. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  231. package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
  232. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  233. package/dist/types/components.d.ts +25 -24
  234. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  235. package/dist/types/global/functions.d.ts +40 -40
  236. package/dist/types/global/global.d.ts +1 -1
  237. package/dist/types/global/interfaces.d.ts +34 -34
  238. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  239. package/dist/types/global/services/http-service.d.ts +4 -4
  240. package/dist/types/lang/lang.d.ts +5 -5
  241. package/package.json +47 -47
  242. package/dist/ripple/p-0068e871.entry.js +0 -1
  243. package/dist/ripple/p-00999aeb.entry.js +0 -1
  244. package/dist/ripple/p-11c09317.entry.js +0 -1
  245. package/dist/ripple/p-196b4c55.entry.js +0 -1
  246. package/dist/ripple/p-1a3df227.entry.js +0 -1
  247. package/dist/ripple/p-3590a57f.entry.js +0 -1
  248. package/dist/ripple/p-3a178ac8.entry.js +0 -1
  249. package/dist/ripple/p-46371fad.entry.js +0 -1
  250. package/dist/ripple/p-5548fc7c.js +0 -1
  251. package/dist/ripple/p-5c73fd59.entry.js +0 -1
  252. package/dist/ripple/p-828316d6.entry.js +0 -1
  253. package/dist/ripple/p-9624967f.entry.js +0 -1
  254. package/dist/ripple/p-99e2c5f6.entry.js +0 -1
  255. package/dist/ripple/p-bf985c5d.entry.js +0 -1
  256. package/dist/ripple/p-cd6de442.entry.js +0 -1
@@ -1,444 +1,444 @@
1
- import { h, Component, Element, Event, Listen, Prop, State, Host, Watch } from "@stencil/core";
2
- import { getIconCodeFromName } from "../../global/interfaces";
3
- export class Menuitem {
4
- constructor() {
5
- this.disabled = false;
6
- this.focused = false;
7
- this.icon = undefined;
8
- this.description = undefined;
9
- this.descriptionCharLimit = 100;
10
- this.isKeying = false;
11
- }
12
- toggleKeyingOn() {
13
- this.isKeying = true;
14
- }
15
- toggleKeyingOff() {
16
- this.isKeying = false;
17
- }
18
- handleKeydown(ev) {
19
- const modifierKeyUsed = ev.altKey || ev.ctrlKey || ev.metaKey;
20
- const isSingleCharacter = /^.$/.test(ev.key);
21
- const isCharacterEntry = isSingleCharacter && !modifierKeyUsed;
22
- switch (ev.key) {
23
- case "ArrowUp":
24
- ev.preventDefault();
25
- this.wmKeyUpPressed.emit(this.el);
26
- break;
27
- case "ArrowDown":
28
- ev.preventDefault();
29
- this.wmKeyDownPressed.emit(this.el);
30
- break;
31
- case "Enter":
32
- ev.preventDefault();
33
- if (!this.disabled) {
34
- this.el.click();
35
- }
36
- break;
37
- case "Escape":
38
- ev.preventDefault();
39
- ev.stopPropagation(); // prevents closing of parent modal
40
- this.wmEscKeyPressed.emit();
41
- break;
42
- case "Home":
43
- ev.preventDefault();
44
- this.wmHomeKeyPressed.emit();
45
- break;
46
- case "End":
47
- ev.preventDefault();
48
- this.wmEndKeyPressed.emit();
49
- break;
50
- case "Tab":
51
- this.wmTabKeyPressed.emit();
52
- break;
53
- default:
54
- if (isCharacterEntry) {
55
- ev.preventDefault();
56
- this.wmLetterPressed.emit(ev.key);
57
- }
58
- }
59
- }
60
- handleClick() {
61
- if (!this.disabled) {
62
- this.wmMenuitemClicked.emit();
63
- }
64
- }
65
- handleBlur(ev) {
66
- this.wmMenuitemBlurred.emit({ relatedTarget: ev.relatedTarget });
67
- }
68
- setOnClick() {
69
- if (this.disabled && this.el.onclick) {
70
- this.onClickFunc = this.el.onclick;
71
- this.el.onclick = null;
72
- }
73
- else if (!this.disabled && this.onClickFunc) {
74
- this.el.onclick = this.onClickFunc;
75
- }
76
- }
77
- componentWillLoad() {
78
- if (this.icon) {
79
- // in case a name was passed instead of a code, convert it to code (for backwards compatibility)
80
- this.icon = getIconCodeFromName(this.icon);
81
- }
82
- if (this.description) {
83
- if (this.description.length > this.descriptionCharLimit) {
84
- console.error(`wm-menuitem description is above the character limit of ${this.descriptionCharLimit}`);
85
- }
86
- if (this.icon) {
87
- console.error("wm-menuitems with descriptions do not support the use of icons");
88
- }
89
- }
90
- this.setOnClick();
91
- }
92
- componentDidLoad() {
93
- if (this.icon) {
94
- this.iconEl.classList.add("mdi");
95
- this.iconEl.innerHTML = `&#x${this.icon};`;
96
- }
97
- }
98
- render() {
99
- return (h(Host, { tabindex: -1, role: "menuitem", "aria-disabled": this.disabled ? "true" : null },
100
- h("div", { class: `wrapper ${this.focused && this.isKeying ? "focus" : ""}`, "aria-disabled": this.disabled ? "true" : null },
101
- h("span", { ref: (el) => (this.iconEl = el) }),
102
- h("slot", null),
103
- this.description ? h("div", { class: "description" }, this.description) : "")));
104
- }
105
- static get is() { return "wm-menuitem"; }
106
- static get encapsulation() { return "shadow"; }
107
- static get originalStyleUrls() { return {
108
- "$": ["wm-menuitem.scss"]
109
- }; }
110
- static get styleUrls() { return {
111
- "$": ["wm-menuitem.css"]
112
- }; }
113
- static get properties() { return {
114
- "disabled": {
115
- "type": "boolean",
116
- "mutable": false,
117
- "complexType": {
118
- "original": "boolean",
119
- "resolved": "boolean",
120
- "references": {}
121
- },
122
- "required": false,
123
- "optional": false,
124
- "docs": {
125
- "tags": [],
126
- "text": ""
127
- },
128
- "attribute": "disabled",
129
- "reflect": false,
130
- "defaultValue": "false"
131
- },
132
- "focused": {
133
- "type": "boolean",
134
- "mutable": false,
135
- "complexType": {
136
- "original": "boolean",
137
- "resolved": "boolean",
138
- "references": {}
139
- },
140
- "required": false,
141
- "optional": false,
142
- "docs": {
143
- "tags": [],
144
- "text": ""
145
- },
146
- "attribute": "focused",
147
- "reflect": false,
148
- "defaultValue": "false"
149
- },
150
- "icon": {
151
- "type": "string",
152
- "mutable": true,
153
- "complexType": {
154
- "original": "string",
155
- "resolved": "string | undefined",
156
- "references": {}
157
- },
158
- "required": false,
159
- "optional": true,
160
- "docs": {
161
- "tags": [],
162
- "text": ""
163
- },
164
- "attribute": "icon",
165
- "reflect": false,
166
- "defaultValue": "undefined"
167
- },
168
- "description": {
169
- "type": "string",
170
- "mutable": false,
171
- "complexType": {
172
- "original": "string",
173
- "resolved": "string | undefined",
174
- "references": {}
175
- },
176
- "required": false,
177
- "optional": true,
178
- "docs": {
179
- "tags": [],
180
- "text": ""
181
- },
182
- "attribute": "description",
183
- "reflect": false,
184
- "defaultValue": "undefined"
185
- }
186
- }; }
187
- static get states() { return {
188
- "isKeying": {}
189
- }; }
190
- static get events() { return [{
191
- "method": "wmMenuitemClicked",
192
- "name": "wmMenuitemClicked",
193
- "bubbles": true,
194
- "cancelable": true,
195
- "composed": true,
196
- "docs": {
197
- "tags": [],
198
- "text": ""
199
- },
200
- "complexType": {
201
- "original": "HTMLWmMenuitemElement",
202
- "resolved": "HTMLWmMenuitemElement",
203
- "references": {
204
- "HTMLWmMenuitemElement": {
205
- "location": "global"
206
- }
207
- }
208
- }
209
- }, {
210
- "method": "wmKeyUpPressed",
211
- "name": "wmKeyUpPressed",
212
- "bubbles": true,
213
- "cancelable": true,
214
- "composed": true,
215
- "docs": {
216
- "tags": [],
217
- "text": ""
218
- },
219
- "complexType": {
220
- "original": "HTMLWmMenuitemElement",
221
- "resolved": "HTMLWmMenuitemElement",
222
- "references": {
223
- "HTMLWmMenuitemElement": {
224
- "location": "global"
225
- }
226
- }
227
- }
228
- }, {
229
- "method": "wmKeyDownPressed",
230
- "name": "wmKeyDownPressed",
231
- "bubbles": true,
232
- "cancelable": true,
233
- "composed": true,
234
- "docs": {
235
- "tags": [],
236
- "text": ""
237
- },
238
- "complexType": {
239
- "original": "HTMLWmMenuitemElement",
240
- "resolved": "HTMLWmMenuitemElement",
241
- "references": {
242
- "HTMLWmMenuitemElement": {
243
- "location": "global"
244
- }
245
- }
246
- }
247
- }, {
248
- "method": "wmEscKeyPressed",
249
- "name": "wmEscKeyPressed",
250
- "bubbles": true,
251
- "cancelable": true,
252
- "composed": true,
253
- "docs": {
254
- "tags": [],
255
- "text": ""
256
- },
257
- "complexType": {
258
- "original": "HTMLWmMenuitemElement",
259
- "resolved": "HTMLWmMenuitemElement",
260
- "references": {
261
- "HTMLWmMenuitemElement": {
262
- "location": "global"
263
- }
264
- }
265
- }
266
- }, {
267
- "method": "wmHomeKeyPressed",
268
- "name": "wmHomeKeyPressed",
269
- "bubbles": true,
270
- "cancelable": true,
271
- "composed": true,
272
- "docs": {
273
- "tags": [],
274
- "text": ""
275
- },
276
- "complexType": {
277
- "original": "HTMLWmMenuitemElement",
278
- "resolved": "HTMLWmMenuitemElement",
279
- "references": {
280
- "HTMLWmMenuitemElement": {
281
- "location": "global"
282
- }
283
- }
284
- }
285
- }, {
286
- "method": "wmEndKeyPressed",
287
- "name": "wmEndKeyPressed",
288
- "bubbles": true,
289
- "cancelable": true,
290
- "composed": true,
291
- "docs": {
292
- "tags": [],
293
- "text": ""
294
- },
295
- "complexType": {
296
- "original": "HTMLWmMenuitemElement",
297
- "resolved": "HTMLWmMenuitemElement",
298
- "references": {
299
- "HTMLWmMenuitemElement": {
300
- "location": "global"
301
- }
302
- }
303
- }
304
- }, {
305
- "method": "wmPageDownItems",
306
- "name": "wmPageDownItems",
307
- "bubbles": true,
308
- "cancelable": true,
309
- "composed": true,
310
- "docs": {
311
- "tags": [],
312
- "text": ""
313
- },
314
- "complexType": {
315
- "original": "HTMLWmMenuitemElement",
316
- "resolved": "HTMLWmMenuitemElement",
317
- "references": {
318
- "HTMLWmMenuitemElement": {
319
- "location": "global"
320
- }
321
- }
322
- }
323
- }, {
324
- "method": "wmPageUpItems",
325
- "name": "wmPageUpItems",
326
- "bubbles": true,
327
- "cancelable": true,
328
- "composed": true,
329
- "docs": {
330
- "tags": [],
331
- "text": ""
332
- },
333
- "complexType": {
334
- "original": "HTMLWmMenuitemElement",
335
- "resolved": "HTMLWmMenuitemElement",
336
- "references": {
337
- "HTMLWmMenuitemElement": {
338
- "location": "global"
339
- }
340
- }
341
- }
342
- }, {
343
- "method": "wmTabKeyPressed",
344
- "name": "wmTabKeyPressed",
345
- "bubbles": true,
346
- "cancelable": true,
347
- "composed": true,
348
- "docs": {
349
- "tags": [],
350
- "text": ""
351
- },
352
- "complexType": {
353
- "original": "HTMLWmMenuitemElement",
354
- "resolved": "HTMLWmMenuitemElement",
355
- "references": {
356
- "HTMLWmMenuitemElement": {
357
- "location": "global"
358
- }
359
- }
360
- }
361
- }, {
362
- "method": "wmLetterPressed",
363
- "name": "wmLetterPressed",
364
- "bubbles": true,
365
- "cancelable": true,
366
- "composed": true,
367
- "docs": {
368
- "tags": [],
369
- "text": ""
370
- },
371
- "complexType": {
372
- "original": "any",
373
- "resolved": "any",
374
- "references": {}
375
- }
376
- }, {
377
- "method": "wmMenuitemBlurred",
378
- "name": "wmMenuitemBlurred",
379
- "bubbles": true,
380
- "cancelable": true,
381
- "composed": true,
382
- "docs": {
383
- "tags": [],
384
- "text": ""
385
- },
386
- "complexType": {
387
- "original": "{ relatedTarget: EventTarget | null }",
388
- "resolved": "{ relatedTarget: EventTarget | null; }",
389
- "references": {
390
- "EventTarget": {
391
- "location": "global"
392
- }
393
- }
394
- }
395
- }]; }
396
- static get elementRef() { return "el"; }
397
- static get watchers() { return [{
398
- "propName": "disabled",
399
- "methodName": "setOnClick"
400
- }]; }
401
- static get listeners() { return [{
402
- "name": "wmUserIsKeying",
403
- "method": "toggleKeyingOn",
404
- "target": "window",
405
- "capture": false,
406
- "passive": false
407
- }, {
408
- "name": "wmUserIsTabbing",
409
- "method": "toggleKeyingOn",
410
- "target": "window",
411
- "capture": false,
412
- "passive": false
413
- }, {
414
- "name": "wmUserIsNotKeying",
415
- "method": "toggleKeyingOff",
416
- "target": "window",
417
- "capture": false,
418
- "passive": false
419
- }, {
420
- "name": "wmUserIsNotTabbing",
421
- "method": "toggleKeyingOff",
422
- "target": "window",
423
- "capture": false,
424
- "passive": false
425
- }, {
426
- "name": "keydown",
427
- "method": "handleKeydown",
428
- "target": undefined,
429
- "capture": false,
430
- "passive": false
431
- }, {
432
- "name": "click",
433
- "method": "handleClick",
434
- "target": undefined,
435
- "capture": false,
436
- "passive": false
437
- }, {
438
- "name": "blur",
439
- "method": "handleBlur",
440
- "target": undefined,
441
- "capture": false,
442
- "passive": false
443
- }]; }
444
- }
1
+ import { h, Component, Element, Event, Listen, Prop, State, Host, Watch } from "@stencil/core";
2
+ import { getIconCodeFromName } from "../../global/interfaces";
3
+ export class Menuitem {
4
+ constructor() {
5
+ this.disabled = false;
6
+ this.focused = false;
7
+ this.icon = undefined;
8
+ this.description = undefined;
9
+ this.descriptionCharLimit = 100;
10
+ this.isKeying = false;
11
+ }
12
+ toggleKeyingOn() {
13
+ this.isKeying = true;
14
+ }
15
+ toggleKeyingOff() {
16
+ this.isKeying = false;
17
+ }
18
+ handleKeydown(ev) {
19
+ const modifierKeyUsed = ev.altKey || ev.ctrlKey || ev.metaKey;
20
+ const isSingleCharacter = /^.$/.test(ev.key);
21
+ const isCharacterEntry = isSingleCharacter && !modifierKeyUsed;
22
+ switch (ev.key) {
23
+ case "ArrowUp":
24
+ ev.preventDefault();
25
+ this.wmKeyUpPressed.emit(this.el);
26
+ break;
27
+ case "ArrowDown":
28
+ ev.preventDefault();
29
+ this.wmKeyDownPressed.emit(this.el);
30
+ break;
31
+ case "Enter":
32
+ ev.preventDefault();
33
+ if (!this.disabled) {
34
+ this.el.click();
35
+ }
36
+ break;
37
+ case "Escape":
38
+ ev.preventDefault();
39
+ ev.stopPropagation(); // prevents closing of parent modal
40
+ this.wmEscKeyPressed.emit();
41
+ break;
42
+ case "Home":
43
+ ev.preventDefault();
44
+ this.wmHomeKeyPressed.emit();
45
+ break;
46
+ case "End":
47
+ ev.preventDefault();
48
+ this.wmEndKeyPressed.emit();
49
+ break;
50
+ case "Tab":
51
+ this.wmTabKeyPressed.emit();
52
+ break;
53
+ default:
54
+ if (isCharacterEntry) {
55
+ ev.preventDefault();
56
+ this.wmLetterPressed.emit(ev.key);
57
+ }
58
+ }
59
+ }
60
+ handleClick() {
61
+ if (!this.disabled) {
62
+ this.wmMenuitemClicked.emit();
63
+ }
64
+ }
65
+ handleBlur(ev) {
66
+ this.wmMenuitemBlurred.emit({ relatedTarget: ev.relatedTarget });
67
+ }
68
+ setOnClick() {
69
+ if (this.disabled && this.el.onclick) {
70
+ this.onClickFunc = this.el.onclick;
71
+ this.el.onclick = null;
72
+ }
73
+ else if (!this.disabled && this.onClickFunc) {
74
+ this.el.onclick = this.onClickFunc;
75
+ }
76
+ }
77
+ componentWillLoad() {
78
+ if (this.icon) {
79
+ // in case a name was passed instead of a code, convert it to code (for backwards compatibility)
80
+ this.icon = getIconCodeFromName(this.icon);
81
+ }
82
+ if (this.description) {
83
+ if (this.description.length > this.descriptionCharLimit) {
84
+ console.error(`wm-menuitem description is above the character limit of ${this.descriptionCharLimit}`);
85
+ }
86
+ if (this.icon) {
87
+ console.error("wm-menuitems with descriptions do not support the use of icons");
88
+ }
89
+ }
90
+ this.setOnClick();
91
+ }
92
+ componentDidLoad() {
93
+ if (this.icon) {
94
+ this.iconEl.classList.add("mdi");
95
+ this.iconEl.innerHTML = `&#x${this.icon};`;
96
+ }
97
+ }
98
+ render() {
99
+ return (h(Host, { tabindex: -1, role: "menuitem", "aria-disabled": this.disabled ? "true" : null },
100
+ h("div", { class: `wrapper ${this.focused && this.isKeying ? "focus" : ""}`, "aria-disabled": this.disabled ? "true" : null },
101
+ h("span", { ref: (el) => (this.iconEl = el) }),
102
+ h("slot", null),
103
+ this.description ? h("div", { class: "description" }, this.description) : "")));
104
+ }
105
+ static get is() { return "wm-menuitem"; }
106
+ static get encapsulation() { return "shadow"; }
107
+ static get originalStyleUrls() { return {
108
+ "$": ["wm-menuitem.scss"]
109
+ }; }
110
+ static get styleUrls() { return {
111
+ "$": ["wm-menuitem.css"]
112
+ }; }
113
+ static get properties() { return {
114
+ "disabled": {
115
+ "type": "boolean",
116
+ "mutable": false,
117
+ "complexType": {
118
+ "original": "boolean",
119
+ "resolved": "boolean",
120
+ "references": {}
121
+ },
122
+ "required": false,
123
+ "optional": false,
124
+ "docs": {
125
+ "tags": [],
126
+ "text": ""
127
+ },
128
+ "attribute": "disabled",
129
+ "reflect": false,
130
+ "defaultValue": "false"
131
+ },
132
+ "focused": {
133
+ "type": "boolean",
134
+ "mutable": false,
135
+ "complexType": {
136
+ "original": "boolean",
137
+ "resolved": "boolean",
138
+ "references": {}
139
+ },
140
+ "required": false,
141
+ "optional": false,
142
+ "docs": {
143
+ "tags": [],
144
+ "text": ""
145
+ },
146
+ "attribute": "focused",
147
+ "reflect": false,
148
+ "defaultValue": "false"
149
+ },
150
+ "icon": {
151
+ "type": "string",
152
+ "mutable": true,
153
+ "complexType": {
154
+ "original": "string",
155
+ "resolved": "string | undefined",
156
+ "references": {}
157
+ },
158
+ "required": false,
159
+ "optional": true,
160
+ "docs": {
161
+ "tags": [],
162
+ "text": ""
163
+ },
164
+ "attribute": "icon",
165
+ "reflect": false,
166
+ "defaultValue": "undefined"
167
+ },
168
+ "description": {
169
+ "type": "string",
170
+ "mutable": false,
171
+ "complexType": {
172
+ "original": "string",
173
+ "resolved": "string | undefined",
174
+ "references": {}
175
+ },
176
+ "required": false,
177
+ "optional": true,
178
+ "docs": {
179
+ "tags": [],
180
+ "text": ""
181
+ },
182
+ "attribute": "description",
183
+ "reflect": false,
184
+ "defaultValue": "undefined"
185
+ }
186
+ }; }
187
+ static get states() { return {
188
+ "isKeying": {}
189
+ }; }
190
+ static get events() { return [{
191
+ "method": "wmMenuitemClicked",
192
+ "name": "wmMenuitemClicked",
193
+ "bubbles": true,
194
+ "cancelable": true,
195
+ "composed": true,
196
+ "docs": {
197
+ "tags": [],
198
+ "text": ""
199
+ },
200
+ "complexType": {
201
+ "original": "HTMLWmMenuitemElement",
202
+ "resolved": "HTMLWmMenuitemElement",
203
+ "references": {
204
+ "HTMLWmMenuitemElement": {
205
+ "location": "global"
206
+ }
207
+ }
208
+ }
209
+ }, {
210
+ "method": "wmKeyUpPressed",
211
+ "name": "wmKeyUpPressed",
212
+ "bubbles": true,
213
+ "cancelable": true,
214
+ "composed": true,
215
+ "docs": {
216
+ "tags": [],
217
+ "text": ""
218
+ },
219
+ "complexType": {
220
+ "original": "HTMLWmMenuitemElement",
221
+ "resolved": "HTMLWmMenuitemElement",
222
+ "references": {
223
+ "HTMLWmMenuitemElement": {
224
+ "location": "global"
225
+ }
226
+ }
227
+ }
228
+ }, {
229
+ "method": "wmKeyDownPressed",
230
+ "name": "wmKeyDownPressed",
231
+ "bubbles": true,
232
+ "cancelable": true,
233
+ "composed": true,
234
+ "docs": {
235
+ "tags": [],
236
+ "text": ""
237
+ },
238
+ "complexType": {
239
+ "original": "HTMLWmMenuitemElement",
240
+ "resolved": "HTMLWmMenuitemElement",
241
+ "references": {
242
+ "HTMLWmMenuitemElement": {
243
+ "location": "global"
244
+ }
245
+ }
246
+ }
247
+ }, {
248
+ "method": "wmEscKeyPressed",
249
+ "name": "wmEscKeyPressed",
250
+ "bubbles": true,
251
+ "cancelable": true,
252
+ "composed": true,
253
+ "docs": {
254
+ "tags": [],
255
+ "text": ""
256
+ },
257
+ "complexType": {
258
+ "original": "HTMLWmMenuitemElement",
259
+ "resolved": "HTMLWmMenuitemElement",
260
+ "references": {
261
+ "HTMLWmMenuitemElement": {
262
+ "location": "global"
263
+ }
264
+ }
265
+ }
266
+ }, {
267
+ "method": "wmHomeKeyPressed",
268
+ "name": "wmHomeKeyPressed",
269
+ "bubbles": true,
270
+ "cancelable": true,
271
+ "composed": true,
272
+ "docs": {
273
+ "tags": [],
274
+ "text": ""
275
+ },
276
+ "complexType": {
277
+ "original": "HTMLWmMenuitemElement",
278
+ "resolved": "HTMLWmMenuitemElement",
279
+ "references": {
280
+ "HTMLWmMenuitemElement": {
281
+ "location": "global"
282
+ }
283
+ }
284
+ }
285
+ }, {
286
+ "method": "wmEndKeyPressed",
287
+ "name": "wmEndKeyPressed",
288
+ "bubbles": true,
289
+ "cancelable": true,
290
+ "composed": true,
291
+ "docs": {
292
+ "tags": [],
293
+ "text": ""
294
+ },
295
+ "complexType": {
296
+ "original": "HTMLWmMenuitemElement",
297
+ "resolved": "HTMLWmMenuitemElement",
298
+ "references": {
299
+ "HTMLWmMenuitemElement": {
300
+ "location": "global"
301
+ }
302
+ }
303
+ }
304
+ }, {
305
+ "method": "wmPageDownItems",
306
+ "name": "wmPageDownItems",
307
+ "bubbles": true,
308
+ "cancelable": true,
309
+ "composed": true,
310
+ "docs": {
311
+ "tags": [],
312
+ "text": ""
313
+ },
314
+ "complexType": {
315
+ "original": "HTMLWmMenuitemElement",
316
+ "resolved": "HTMLWmMenuitemElement",
317
+ "references": {
318
+ "HTMLWmMenuitemElement": {
319
+ "location": "global"
320
+ }
321
+ }
322
+ }
323
+ }, {
324
+ "method": "wmPageUpItems",
325
+ "name": "wmPageUpItems",
326
+ "bubbles": true,
327
+ "cancelable": true,
328
+ "composed": true,
329
+ "docs": {
330
+ "tags": [],
331
+ "text": ""
332
+ },
333
+ "complexType": {
334
+ "original": "HTMLWmMenuitemElement",
335
+ "resolved": "HTMLWmMenuitemElement",
336
+ "references": {
337
+ "HTMLWmMenuitemElement": {
338
+ "location": "global"
339
+ }
340
+ }
341
+ }
342
+ }, {
343
+ "method": "wmTabKeyPressed",
344
+ "name": "wmTabKeyPressed",
345
+ "bubbles": true,
346
+ "cancelable": true,
347
+ "composed": true,
348
+ "docs": {
349
+ "tags": [],
350
+ "text": ""
351
+ },
352
+ "complexType": {
353
+ "original": "HTMLWmMenuitemElement",
354
+ "resolved": "HTMLWmMenuitemElement",
355
+ "references": {
356
+ "HTMLWmMenuitemElement": {
357
+ "location": "global"
358
+ }
359
+ }
360
+ }
361
+ }, {
362
+ "method": "wmLetterPressed",
363
+ "name": "wmLetterPressed",
364
+ "bubbles": true,
365
+ "cancelable": true,
366
+ "composed": true,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": ""
370
+ },
371
+ "complexType": {
372
+ "original": "any",
373
+ "resolved": "any",
374
+ "references": {}
375
+ }
376
+ }, {
377
+ "method": "wmMenuitemBlurred",
378
+ "name": "wmMenuitemBlurred",
379
+ "bubbles": true,
380
+ "cancelable": true,
381
+ "composed": true,
382
+ "docs": {
383
+ "tags": [],
384
+ "text": ""
385
+ },
386
+ "complexType": {
387
+ "original": "{ relatedTarget: EventTarget | null }",
388
+ "resolved": "{ relatedTarget: EventTarget | null; }",
389
+ "references": {
390
+ "EventTarget": {
391
+ "location": "global"
392
+ }
393
+ }
394
+ }
395
+ }]; }
396
+ static get elementRef() { return "el"; }
397
+ static get watchers() { return [{
398
+ "propName": "disabled",
399
+ "methodName": "setOnClick"
400
+ }]; }
401
+ static get listeners() { return [{
402
+ "name": "wmUserIsKeying",
403
+ "method": "toggleKeyingOn",
404
+ "target": "window",
405
+ "capture": false,
406
+ "passive": false
407
+ }, {
408
+ "name": "wmUserIsTabbing",
409
+ "method": "toggleKeyingOn",
410
+ "target": "window",
411
+ "capture": false,
412
+ "passive": false
413
+ }, {
414
+ "name": "wmUserIsNotKeying",
415
+ "method": "toggleKeyingOff",
416
+ "target": "window",
417
+ "capture": false,
418
+ "passive": false
419
+ }, {
420
+ "name": "wmUserIsNotTabbing",
421
+ "method": "toggleKeyingOff",
422
+ "target": "window",
423
+ "capture": false,
424
+ "passive": false
425
+ }, {
426
+ "name": "keydown",
427
+ "method": "handleKeydown",
428
+ "target": undefined,
429
+ "capture": false,
430
+ "passive": false
431
+ }, {
432
+ "name": "click",
433
+ "method": "handleClick",
434
+ "target": undefined,
435
+ "capture": false,
436
+ "passive": false
437
+ }, {
438
+ "name": "blur",
439
+ "method": "handleBlur",
440
+ "target": undefined,
441
+ "capture": false,
442
+ "passive": false
443
+ }]; }
444
+ }