@watermarkinsights/ripple 3.3.0-0 → 3.3.0-2

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 (176) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{functions-8fb310fe.js → functions-653e695c.js} +442 -442
  3. package/dist/cjs/{global-9bd085c7.js → global-45888f19.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 +78 -78
  8. package/dist/cjs/priv-datepicker.cjs.entry.js +661 -661
  9. package/dist/cjs/priv-navigator-button.cjs.entry.js +18 -18
  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 +340 -313
  13. package/dist/cjs/wm-button.cjs.entry.js +218 -219
  14. package/dist/cjs/wm-chart-slice.cjs.entry.js +13 -13
  15. package/dist/cjs/wm-chart.cjs.entry.js +514 -505
  16. package/dist/cjs/wm-datepicker.cjs.entry.js +256 -256
  17. package/dist/cjs/wm-input.cjs.entry.js +125 -125
  18. package/dist/cjs/wm-modal-footer.cjs.entry.js +31 -31
  19. package/dist/cjs/wm-modal-header.cjs.entry.js +34 -34
  20. package/dist/cjs/wm-modal.cjs.entry.js +161 -161
  21. package/dist/cjs/wm-navigator.cjs.entry.js +268 -268
  22. package/dist/cjs/wm-network-uploader.cjs.entry.js +420 -420
  23. package/dist/cjs/wm-option_2.cjs.entry.js +497 -469
  24. package/dist/cjs/wm-pagination.cjs.entry.js +167 -167
  25. package/dist/cjs/wm-search.cjs.entry.js +231 -231
  26. package/dist/cjs/wm-snackbar.cjs.entry.js +170 -170
  27. package/dist/cjs/wm-tab-item_3.cjs.entry.js +300 -300
  28. package/dist/cjs/wm-tag-input.cjs.entry.js +556 -556
  29. package/dist/cjs/wm-timepicker.cjs.entry.js +386 -381
  30. package/dist/cjs/wm-toggletip.cjs.entry.js +124 -124
  31. package/dist/cjs/wm-uploader.cjs.entry.js +346 -346
  32. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  33. package/dist/collection/components/wm-action-menu/wm-action-menu.js +465 -435
  34. package/dist/collection/components/wm-button/wm-button.js +485 -486
  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 +13 -0
  38. package/dist/collection/components/wm-chart/wm-chart.js +761 -734
  39. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1003 -1003
  40. package/dist/collection/components/wm-datepicker/wm-datepicker.js +462 -462
  41. package/dist/collection/components/wm-input/wm-input.js +415 -415
  42. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -411
  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 -394
  50. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  51. package/dist/collection/components/wm-search/wm-search.js +479 -479
  52. package/dist/collection/components/wm-select/wm-select.js +728 -692
  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 +219 -219
  55. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +331 -331
  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 +787 -787
  58. package/dist/collection/components/wm-timepicker/wm-timepicker.js +598 -587
  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 -5
  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/piglatin.js +93 -93
  72. package/dist/esm/{functions-c315390d.js → functions-e528c934.js} +442 -442
  73. package/dist/esm/{global-11e6d295.js → global-1e13ed17.js} +65 -65
  74. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  75. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  76. package/dist/esm/loader.js +2 -2
  77. package/dist/esm/polyfills/core-js.js +0 -0
  78. package/dist/esm/polyfills/dom.js +0 -0
  79. package/dist/esm/polyfills/es5-html-element.js +0 -0
  80. package/dist/esm/polyfills/index.js +0 -0
  81. package/dist/esm/polyfills/system.js +0 -0
  82. package/dist/esm/priv-chart-popover.entry.js +78 -78
  83. package/dist/esm/priv-datepicker.entry.js +661 -661
  84. package/dist/esm/priv-navigator-button.entry.js +18 -18
  85. package/dist/esm/priv-navigator-item.entry.js +23 -23
  86. package/dist/esm/ripple.js +2 -2
  87. package/dist/esm/wm-action-menu_2.entry.js +340 -313
  88. package/dist/esm/wm-button.entry.js +218 -219
  89. package/dist/esm/wm-chart-slice.entry.js +13 -13
  90. package/dist/esm/wm-chart.entry.js +514 -505
  91. package/dist/esm/wm-datepicker.entry.js +256 -256
  92. package/dist/esm/wm-input.entry.js +125 -125
  93. package/dist/esm/wm-modal-footer.entry.js +31 -31
  94. package/dist/esm/wm-modal-header.entry.js +34 -34
  95. package/dist/esm/wm-modal.entry.js +161 -161
  96. package/dist/esm/wm-navigator.entry.js +268 -268
  97. package/dist/esm/wm-network-uploader.entry.js +420 -420
  98. package/dist/esm/wm-option_2.entry.js +497 -469
  99. package/dist/esm/wm-pagination.entry.js +167 -167
  100. package/dist/esm/wm-search.entry.js +231 -231
  101. package/dist/esm/wm-snackbar.entry.js +170 -170
  102. package/dist/esm/wm-tab-item_3.entry.js +300 -300
  103. package/dist/esm/wm-tag-input.entry.js +556 -556
  104. package/dist/esm/wm-timepicker.entry.js +386 -381
  105. package/dist/esm/wm-toggletip.entry.js +124 -124
  106. package/dist/esm/wm-uploader.entry.js +346 -346
  107. package/dist/esm/wm-wrapper.entry.js +12 -12
  108. package/dist/ripple/{p-c5e44367.entry.js → p-092b01f3.entry.js} +1 -1
  109. package/dist/ripple/p-0d138e91.entry.js +1 -0
  110. package/dist/ripple/{p-5ffa983b.entry.js → p-1e0c41a9.entry.js} +1 -1
  111. package/dist/ripple/{p-d5fafa9c.entry.js → p-3003d26d.entry.js} +1 -1
  112. package/dist/ripple/p-301b67a3.entry.js +1 -0
  113. package/dist/ripple/{p-374b4fa6.entry.js → p-33524565.entry.js} +1 -1
  114. package/dist/ripple/{p-73ebc395.js → p-40d42d65.js} +1 -1
  115. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  116. package/dist/ripple/{p-dea72d46.entry.js → p-4cc71463.entry.js} +1 -1
  117. package/dist/ripple/{p-e60fe2f5.js → p-588b4475.js} +0 -0
  118. package/dist/ripple/p-65e3a656.entry.js +1 -0
  119. package/dist/ripple/p-6b96b3d4.entry.js +1 -0
  120. package/dist/ripple/{p-7bbd123c.entry.js → p-8923b7d0.entry.js} +1 -1
  121. package/dist/ripple/{p-ba9d3069.entry.js → p-8cd1396e.entry.js} +1 -1
  122. package/dist/ripple/{p-e574fb73.entry.js → p-aa973691.entry.js} +1 -1
  123. package/dist/ripple/{p-b4a8c8d3.entry.js → p-b3d5ea85.entry.js} +1 -1
  124. package/dist/ripple/{p-27d5255f.entry.js → p-cd58a15c.entry.js} +1 -1
  125. package/dist/ripple/{p-589f8195.entry.js → p-d613130d.entry.js} +1 -1
  126. package/dist/ripple/{p-2689c3ff.entry.js → p-dc7ba72a.entry.js} +1 -1
  127. package/dist/ripple/{p-41f39509.entry.js → p-dc9c9fda.entry.js} +1 -1
  128. package/dist/ripple/p-df6da757.entry.js +1 -0
  129. package/dist/ripple/{p-36da5d4a.entry.js → p-e9e8334e.entry.js} +1 -1
  130. package/dist/ripple/p-ec9697db.entry.js +1 -0
  131. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
  132. package/dist/ripple/ripple.esm.js +1 -1
  133. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -46
  134. package/dist/types/components/wm-button/wm-button.d.ts +44 -43
  135. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -23
  136. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -8
  137. package/dist/types/components/wm-chart/wm-chart.d.ts +80 -79
  138. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +75 -75
  139. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  140. package/dist/types/components/wm-input/wm-input.d.ts +45 -45
  141. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -30
  142. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
  143. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
  144. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  145. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  146. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  147. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  148. package/dist/types/components/wm-option/wm-option.d.ts +32 -28
  149. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  150. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  151. package/dist/types/components/wm-select/wm-select.d.ts +67 -64
  152. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  153. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  154. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  155. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  156. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +91 -91
  157. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +63 -62
  158. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  159. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  160. package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
  161. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  162. package/dist/types/components.d.ts +28 -24
  163. package/dist/types/global/__mocks__/functions.d.ts +6 -5
  164. package/dist/types/global/functions.d.ts +40 -40
  165. package/dist/types/global/global.d.ts +1 -1
  166. package/dist/types/global/interfaces.d.ts +34 -34
  167. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  168. package/dist/types/global/services/http-service.d.ts +4 -4
  169. package/dist/types/lang/lang.d.ts +5 -5
  170. package/package.json +46 -46
  171. package/dist/ripple/p-14b37f79.entry.js +0 -1
  172. package/dist/ripple/p-27c6abf9.entry.js +0 -1
  173. package/dist/ripple/p-336c0ed7.entry.js +0 -1
  174. package/dist/ripple/p-6933edc6.entry.js +0 -1
  175. package/dist/ripple/p-c31c4d52.entry.js +0 -1
  176. package/dist/ripple/p-d079df21.entry.js +0 -1
@@ -1,411 +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
- switch (ev.key) {
20
- case "ArrowUp":
21
- ev.preventDefault();
22
- this.wmKeyUpPressed.emit(this.el);
23
- break;
24
- case "ArrowDown":
25
- ev.preventDefault();
26
- this.wmKeyDownPressed.emit(this.el);
27
- break;
28
- case "Enter":
29
- ev.preventDefault();
30
- if (!this.disabled) {
31
- this.el.click();
32
- }
33
- break;
34
- case "Escape":
35
- ev.preventDefault();
36
- ev.stopPropagation(); // prevents closing of parent modal
37
- this.wmEscKeyPressed.emit();
38
- break;
39
- case "Home":
40
- ev.preventDefault();
41
- this.wmHomeKeyPressed.emit();
42
- break;
43
- case "End":
44
- ev.preventDefault();
45
- this.wmEndKeyPressed.emit();
46
- break;
47
- case "Tab":
48
- this.wmTabKeyPressed.emit();
49
- break;
50
- default:
51
- ev.preventDefault();
52
- this.wmLetterPressed.emit(ev.key);
53
- }
54
- }
55
- handleClick() {
56
- if (!this.disabled) {
57
- this.wmMenuitemClicked.emit();
58
- }
59
- }
60
- setOnClick() {
61
- if (this.disabled && this.el.onclick) {
62
- this.onClickFunc = this.el.onclick;
63
- this.el.onclick = null;
64
- }
65
- else if (!this.disabled && this.onClickFunc) {
66
- this.el.onclick = this.onClickFunc;
67
- }
68
- }
69
- componentWillLoad() {
70
- if (this.icon) {
71
- // in case a name was passed instead of a code, convert it to code (for backwards compatibility)
72
- this.icon = getIconCodeFromName(this.icon);
73
- }
74
- if (this.description) {
75
- if (this.description.length > this.descriptionCharLimit) {
76
- console.error(`wm-menuitem description is above the character limit of ${this.descriptionCharLimit}`);
77
- }
78
- if (this.icon) {
79
- console.error("wm-menuitems with descriptions do not support the use of icons");
80
- }
81
- }
82
- this.setOnClick();
83
- }
84
- componentDidLoad() {
85
- if (this.icon) {
86
- this.iconEl.classList.add("mdi");
87
- this.iconEl.innerHTML = `&#x${this.icon};`;
88
- }
89
- }
90
- render() {
91
- return (h(Host, { tabindex: -1, role: "menuitem", "aria-disabled": this.disabled ? "true" : null },
92
- h("div", { class: `wrapper ${this.focused && this.isKeying ? "focus" : ""}`, "aria-disabled": this.disabled ? "true" : null },
93
- h("span", { ref: (el) => (this.iconEl = el) }),
94
- h("slot", null),
95
- this.description ? h("div", { class: "description" }, this.description) : "")));
96
- }
97
- static get is() { return "wm-menuitem"; }
98
- static get encapsulation() { return "shadow"; }
99
- static get originalStyleUrls() { return {
100
- "$": ["wm-menuitem.scss"]
101
- }; }
102
- static get styleUrls() { return {
103
- "$": ["wm-menuitem.css"]
104
- }; }
105
- static get properties() { return {
106
- "disabled": {
107
- "type": "boolean",
108
- "mutable": false,
109
- "complexType": {
110
- "original": "boolean",
111
- "resolved": "boolean",
112
- "references": {}
113
- },
114
- "required": false,
115
- "optional": false,
116
- "docs": {
117
- "tags": [],
118
- "text": ""
119
- },
120
- "attribute": "disabled",
121
- "reflect": false,
122
- "defaultValue": "false"
123
- },
124
- "focused": {
125
- "type": "boolean",
126
- "mutable": false,
127
- "complexType": {
128
- "original": "boolean",
129
- "resolved": "boolean",
130
- "references": {}
131
- },
132
- "required": false,
133
- "optional": false,
134
- "docs": {
135
- "tags": [],
136
- "text": ""
137
- },
138
- "attribute": "focused",
139
- "reflect": false,
140
- "defaultValue": "false"
141
- },
142
- "icon": {
143
- "type": "string",
144
- "mutable": true,
145
- "complexType": {
146
- "original": "string",
147
- "resolved": "string | undefined",
148
- "references": {}
149
- },
150
- "required": false,
151
- "optional": true,
152
- "docs": {
153
- "tags": [],
154
- "text": ""
155
- },
156
- "attribute": "icon",
157
- "reflect": false,
158
- "defaultValue": "undefined"
159
- },
160
- "description": {
161
- "type": "string",
162
- "mutable": false,
163
- "complexType": {
164
- "original": "string",
165
- "resolved": "string | undefined",
166
- "references": {}
167
- },
168
- "required": false,
169
- "optional": true,
170
- "docs": {
171
- "tags": [],
172
- "text": ""
173
- },
174
- "attribute": "description",
175
- "reflect": false,
176
- "defaultValue": "undefined"
177
- }
178
- }; }
179
- static get states() { return {
180
- "isKeying": {}
181
- }; }
182
- static get events() { return [{
183
- "method": "wmMenuitemClicked",
184
- "name": "wmMenuitemClicked",
185
- "bubbles": true,
186
- "cancelable": true,
187
- "composed": true,
188
- "docs": {
189
- "tags": [],
190
- "text": ""
191
- },
192
- "complexType": {
193
- "original": "HTMLWmMenuitemElement",
194
- "resolved": "HTMLWmMenuitemElement",
195
- "references": {
196
- "HTMLWmMenuitemElement": {
197
- "location": "global"
198
- }
199
- }
200
- }
201
- }, {
202
- "method": "wmKeyUpPressed",
203
- "name": "wmKeyUpPressed",
204
- "bubbles": true,
205
- "cancelable": true,
206
- "composed": true,
207
- "docs": {
208
- "tags": [],
209
- "text": ""
210
- },
211
- "complexType": {
212
- "original": "HTMLWmMenuitemElement",
213
- "resolved": "HTMLWmMenuitemElement",
214
- "references": {
215
- "HTMLWmMenuitemElement": {
216
- "location": "global"
217
- }
218
- }
219
- }
220
- }, {
221
- "method": "wmKeyDownPressed",
222
- "name": "wmKeyDownPressed",
223
- "bubbles": true,
224
- "cancelable": true,
225
- "composed": true,
226
- "docs": {
227
- "tags": [],
228
- "text": ""
229
- },
230
- "complexType": {
231
- "original": "HTMLWmMenuitemElement",
232
- "resolved": "HTMLWmMenuitemElement",
233
- "references": {
234
- "HTMLWmMenuitemElement": {
235
- "location": "global"
236
- }
237
- }
238
- }
239
- }, {
240
- "method": "wmEscKeyPressed",
241
- "name": "wmEscKeyPressed",
242
- "bubbles": true,
243
- "cancelable": true,
244
- "composed": true,
245
- "docs": {
246
- "tags": [],
247
- "text": ""
248
- },
249
- "complexType": {
250
- "original": "HTMLWmMenuitemElement",
251
- "resolved": "HTMLWmMenuitemElement",
252
- "references": {
253
- "HTMLWmMenuitemElement": {
254
- "location": "global"
255
- }
256
- }
257
- }
258
- }, {
259
- "method": "wmHomeKeyPressed",
260
- "name": "wmHomeKeyPressed",
261
- "bubbles": true,
262
- "cancelable": true,
263
- "composed": true,
264
- "docs": {
265
- "tags": [],
266
- "text": ""
267
- },
268
- "complexType": {
269
- "original": "HTMLWmMenuitemElement",
270
- "resolved": "HTMLWmMenuitemElement",
271
- "references": {
272
- "HTMLWmMenuitemElement": {
273
- "location": "global"
274
- }
275
- }
276
- }
277
- }, {
278
- "method": "wmEndKeyPressed",
279
- "name": "wmEndKeyPressed",
280
- "bubbles": true,
281
- "cancelable": true,
282
- "composed": true,
283
- "docs": {
284
- "tags": [],
285
- "text": ""
286
- },
287
- "complexType": {
288
- "original": "HTMLWmMenuitemElement",
289
- "resolved": "HTMLWmMenuitemElement",
290
- "references": {
291
- "HTMLWmMenuitemElement": {
292
- "location": "global"
293
- }
294
- }
295
- }
296
- }, {
297
- "method": "wmPageDownItems",
298
- "name": "wmPageDownItems",
299
- "bubbles": true,
300
- "cancelable": true,
301
- "composed": true,
302
- "docs": {
303
- "tags": [],
304
- "text": ""
305
- },
306
- "complexType": {
307
- "original": "HTMLWmMenuitemElement",
308
- "resolved": "HTMLWmMenuitemElement",
309
- "references": {
310
- "HTMLWmMenuitemElement": {
311
- "location": "global"
312
- }
313
- }
314
- }
315
- }, {
316
- "method": "wmPageUpItems",
317
- "name": "wmPageUpItems",
318
- "bubbles": true,
319
- "cancelable": true,
320
- "composed": true,
321
- "docs": {
322
- "tags": [],
323
- "text": ""
324
- },
325
- "complexType": {
326
- "original": "HTMLWmMenuitemElement",
327
- "resolved": "HTMLWmMenuitemElement",
328
- "references": {
329
- "HTMLWmMenuitemElement": {
330
- "location": "global"
331
- }
332
- }
333
- }
334
- }, {
335
- "method": "wmTabKeyPressed",
336
- "name": "wmTabKeyPressed",
337
- "bubbles": true,
338
- "cancelable": true,
339
- "composed": true,
340
- "docs": {
341
- "tags": [],
342
- "text": ""
343
- },
344
- "complexType": {
345
- "original": "HTMLWmMenuitemElement",
346
- "resolved": "HTMLWmMenuitemElement",
347
- "references": {
348
- "HTMLWmMenuitemElement": {
349
- "location": "global"
350
- }
351
- }
352
- }
353
- }, {
354
- "method": "wmLetterPressed",
355
- "name": "wmLetterPressed",
356
- "bubbles": true,
357
- "cancelable": true,
358
- "composed": true,
359
- "docs": {
360
- "tags": [],
361
- "text": ""
362
- },
363
- "complexType": {
364
- "original": "any",
365
- "resolved": "any",
366
- "references": {}
367
- }
368
- }]; }
369
- static get elementRef() { return "el"; }
370
- static get watchers() { return [{
371
- "propName": "disabled",
372
- "methodName": "setOnClick"
373
- }]; }
374
- static get listeners() { return [{
375
- "name": "wmUserIsKeying",
376
- "method": "toggleKeyingOn",
377
- "target": "window",
378
- "capture": false,
379
- "passive": false
380
- }, {
381
- "name": "wmUserIsTabbing",
382
- "method": "toggleKeyingOn",
383
- "target": "window",
384
- "capture": false,
385
- "passive": false
386
- }, {
387
- "name": "wmUserIsNotKeying",
388
- "method": "toggleKeyingOff",
389
- "target": "window",
390
- "capture": false,
391
- "passive": false
392
- }, {
393
- "name": "wmUserIsNotTabbing",
394
- "method": "toggleKeyingOff",
395
- "target": "window",
396
- "capture": false,
397
- "passive": false
398
- }, {
399
- "name": "keydown",
400
- "method": "handleKeydown",
401
- "target": undefined,
402
- "capture": false,
403
- "passive": false
404
- }, {
405
- "name": "click",
406
- "method": "handleClick",
407
- "target": undefined,
408
- "capture": false,
409
- "passive": false
410
- }]; }
411
- }
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
+ }