@watermarkinsights/ripple 3.4.0 → 3.5.0-3

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 (203) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/functions-653e695c.js +6164 -0
  3. package/dist/cjs/{global-caec45e5.js → global-ee710089.js} +65 -65
  4. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
  5. package/dist/cjs/{index-921ef454.js → index-cd179539.js} +157 -103
  6. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
  7. package/dist/cjs/loader.cjs.js +3 -3
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +79 -79
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +668 -668
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +24 -24
  12. package/dist/cjs/ripple.cjs.js +5 -5
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +342 -342
  14. package/dist/cjs/wm-button.cjs.entry.js +219 -219
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +14 -14
  16. package/dist/cjs/wm-chart.cjs.entry.js +475 -517
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +257 -257
  18. package/dist/cjs/wm-input.cjs.entry.js +134 -134
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +32 -32
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +35 -35
  21. package/dist/cjs/wm-modal.cjs.entry.js +162 -162
  22. package/dist/cjs/wm-navigator.cjs.entry.js +269 -269
  23. package/dist/cjs/wm-network-uploader.cjs.entry.js +421 -421
  24. package/dist/cjs/wm-option_2.cjs.entry.js +492 -492
  25. package/dist/cjs/wm-pagination.cjs.entry.js +168 -168
  26. package/dist/cjs/wm-search.cjs.entry.js +232 -232
  27. package/dist/cjs/wm-snackbar.cjs.entry.js +171 -171
  28. package/dist/cjs/wm-tab-item_3.cjs.entry.js +301 -301
  29. package/dist/cjs/wm-tag-input.cjs.entry.js +557 -557
  30. package/dist/cjs/wm-timepicker.cjs.entry.js +384 -384
  31. package/dist/cjs/wm-toggletip.cjs.entry.js +125 -125
  32. package/dist/cjs/wm-uploader.cjs.entry.js +347 -347
  33. package/dist/cjs/wm-wrapper.cjs.entry.js +13 -13
  34. package/dist/collection/collection-manifest.json +2 -2
  35. package/dist/collection/components/wm-action-menu/wm-action-menu.js +460 -460
  36. package/dist/collection/components/wm-button/wm-button.js +485 -485
  37. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -232
  38. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -64
  39. package/dist/collection/components/wm-chart/wm-chart.css +71 -84
  40. package/dist/collection/components/wm-chart/wm-chart.js +718 -765
  41. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1015 -1015
  42. package/dist/collection/components/wm-datepicker/wm-datepicker.js +462 -462
  43. package/dist/collection/components/wm-input/wm-input.js +423 -423
  44. package/dist/collection/components/wm-menuitem/wm-menuitem.js +444 -444
  45. package/dist/collection/components/wm-modal/wm-modal-footer.js +141 -141
  46. package/dist/collection/components/wm-modal/wm-modal-header.js +92 -92
  47. package/dist/collection/components/wm-modal/wm-modal.js +459 -459
  48. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -97
  49. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -114
  50. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -468
  51. package/dist/collection/components/wm-option/wm-option.js +422 -422
  52. package/dist/collection/components/wm-pagination/wm-pagination.js +368 -368
  53. package/dist/collection/components/wm-search/wm-search.js +479 -479
  54. package/dist/collection/components/wm-select/wm-select.js +717 -717
  55. package/dist/collection/components/wm-snackbar/wm-snackbar.js +297 -297
  56. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +219 -219
  57. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +331 -331
  58. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -104
  59. package/dist/collection/components/wm-tag-input/wm-tag-input.js +787 -787
  60. package/dist/collection/components/wm-timepicker/wm-timepicker.js +589 -589
  61. package/dist/collection/components/wm-toggletip/wm-toggletip.js +241 -241
  62. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -753
  63. package/dist/collection/components/wm-uploader/wm-uploader.js +748 -748
  64. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -27
  65. package/dist/collection/dev/scripts.js +20 -20
  66. package/dist/collection/global/__mocks__/functions.js +6 -6
  67. package/dist/collection/global/functions.js +445 -445
  68. package/dist/collection/global/global.js +72 -72
  69. package/dist/collection/global/interfaces.js +49 -49
  70. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  71. package/dist/collection/global/services/http-service.js +50 -50
  72. package/dist/collection/lang/lang.js +5 -5
  73. package/dist/collection/lang/piglatin.js +93 -93
  74. package/dist/esm/functions-e528c934.js +6144 -0
  75. package/dist/esm/{global-08ca269c.js → global-b94f59e6.js} +65 -65
  76. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  77. package/dist/esm/{index-f8b130b6.js → index-66f8130e.js} +157 -103
  78. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  79. package/dist/esm/loader.js +3 -3
  80. package/dist/esm/polyfills/core-js.js +0 -0
  81. package/dist/esm/polyfills/dom.js +0 -0
  82. package/dist/esm/polyfills/es5-html-element.js +0 -0
  83. package/dist/esm/polyfills/index.js +2 -2
  84. package/dist/esm/polyfills/system.js +0 -0
  85. package/dist/esm/priv-chart-popover.entry.js +79 -79
  86. package/dist/esm/priv-datepicker.entry.js +668 -668
  87. package/dist/esm/priv-navigator-button.entry.js +19 -19
  88. package/dist/esm/priv-navigator-item.entry.js +24 -24
  89. package/dist/esm/ripple.js +5 -5
  90. package/dist/esm/wm-action-menu_2.entry.js +342 -342
  91. package/dist/esm/wm-button.entry.js +219 -219
  92. package/dist/esm/wm-chart-slice.entry.js +14 -14
  93. package/dist/esm/wm-chart.entry.js +475 -517
  94. package/dist/esm/wm-datepicker.entry.js +257 -257
  95. package/dist/esm/wm-input.entry.js +134 -134
  96. package/dist/esm/wm-modal-footer.entry.js +32 -32
  97. package/dist/esm/wm-modal-header.entry.js +35 -35
  98. package/dist/esm/wm-modal.entry.js +162 -162
  99. package/dist/esm/wm-navigator.entry.js +269 -269
  100. package/dist/esm/wm-network-uploader.entry.js +421 -421
  101. package/dist/esm/wm-option_2.entry.js +492 -492
  102. package/dist/esm/wm-pagination.entry.js +168 -168
  103. package/dist/esm/wm-search.entry.js +232 -232
  104. package/dist/esm/wm-snackbar.entry.js +171 -171
  105. package/dist/esm/wm-tab-item_3.entry.js +301 -301
  106. package/dist/esm/wm-tag-input.entry.js +557 -557
  107. package/dist/esm/wm-timepicker.entry.js +384 -384
  108. package/dist/esm/wm-toggletip.entry.js +125 -125
  109. package/dist/esm/wm-uploader.entry.js +347 -347
  110. package/dist/esm/wm-wrapper.entry.js +13 -13
  111. package/dist/ripple/p-092b01f3.entry.js +1 -0
  112. package/dist/ripple/{p-c995acbc.entry.js → p-0c58f50d.entry.js} +1 -1
  113. package/dist/ripple/p-11c09317.entry.js +1 -0
  114. package/dist/ripple/p-1e0c41a9.entry.js +1 -0
  115. package/dist/ripple/p-3003d26d.entry.js +1 -0
  116. package/dist/ripple/p-33524565.entry.js +1 -0
  117. package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  118. package/dist/ripple/{p-5e49aba7.entry.js → p-4cc71463.entry.js} +1 -1
  119. package/dist/ripple/p-588b4475.js +16 -0
  120. package/dist/ripple/p-65e3a656.entry.js +1 -0
  121. package/dist/ripple/p-7a96bb97.js +1 -0
  122. package/dist/ripple/p-83b8aaaf.entry.js +1 -0
  123. package/dist/ripple/p-8923b7d0.entry.js +1 -0
  124. package/dist/ripple/{p-d52033d5.entry.js → p-8b0eb05e.entry.js} +1 -1
  125. package/dist/ripple/p-8cd1396e.entry.js +1 -0
  126. package/dist/ripple/{p-22a1a636.entry.js → p-99db8501.entry.js} +1 -1
  127. package/dist/ripple/p-9baa3039.js +1 -0
  128. package/dist/ripple/p-aa973691.entry.js +1 -0
  129. package/dist/ripple/{p-a61977b2.entry.js → p-b3d5ea85.entry.js} +1 -1
  130. package/dist/ripple/{p-7d009793.entry.js → p-b5189f72.entry.js} +1 -1
  131. package/dist/ripple/p-bc27b604.entry.js +1 -0
  132. package/dist/ripple/p-bc9ca97b.entry.js +1 -0
  133. package/dist/ripple/{p-bba99fcd.entry.js → p-cd58a15c.entry.js} +1 -1
  134. package/dist/ripple/p-dc9c9fda.entry.js +1 -0
  135. package/dist/ripple/p-e7616311.entry.js +1 -0
  136. package/dist/ripple/p-e9e8334e.entry.js +1 -0
  137. package/dist/ripple/p-ec9697db.entry.js +1 -0
  138. package/dist/ripple/p-efdaf3b6.entry.js +1 -0
  139. package/dist/ripple/p-fcdc6395.entry.js +1 -0
  140. package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
  141. package/dist/ripple/ripple.esm.js +1 -1
  142. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +48 -48
  143. package/dist/types/components/wm-button/wm-button.d.ts +44 -44
  144. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -23
  145. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -8
  146. package/dist/types/components/wm-chart/wm-chart.d.ts +81 -80
  147. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +76 -76
  148. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +41 -41
  149. package/dist/types/components/wm-input/wm-input.d.ts +46 -46
  150. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  151. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -15
  152. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -12
  153. package/dist/types/components/wm-modal/wm-modal.d.ts +41 -41
  154. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  155. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  156. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  157. package/dist/types/components/wm-option/wm-option.d.ts +32 -32
  158. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  159. package/dist/types/components/wm-search/wm-search.d.ts +86 -86
  160. package/dist/types/components/wm-select/wm-select.d.ts +66 -66
  161. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +35 -35
  162. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +38 -38
  163. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +53 -53
  164. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  165. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +91 -91
  166. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
  167. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +27 -27
  168. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  169. package/dist/types/components/wm-uploader/wm-uploader.d.ts +80 -80
  170. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  171. package/dist/types/components.d.ts +24 -24
  172. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  173. package/dist/types/global/functions.d.ts +40 -0
  174. package/dist/types/global/global.d.ts +1 -1
  175. package/dist/types/global/interfaces.d.ts +34 -34
  176. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  177. package/dist/types/global/services/http-service.d.ts +4 -4
  178. package/dist/types/lang/lang.d.ts +5 -5
  179. package/dist/types/stencil-public-runtime.d.ts +194 -186
  180. package/package.json +46 -46
  181. package/dist/cjs/functions-a6491ba8.js +0 -7943
  182. package/dist/esm/functions-5aebd578.js +0 -7923
  183. package/dist/ripple/p-0865e7cf.js +0 -16
  184. package/dist/ripple/p-0f663e59.entry.js +0 -1
  185. package/dist/ripple/p-1b790a7d.entry.js +0 -1
  186. package/dist/ripple/p-3b4c01b8.entry.js +0 -1
  187. package/dist/ripple/p-54c1f704.entry.js +0 -1
  188. package/dist/ripple/p-76c615e9.entry.js +0 -1
  189. package/dist/ripple/p-7d993d52.js +0 -1
  190. package/dist/ripple/p-8198cc9c.entry.js +0 -1
  191. package/dist/ripple/p-839d35bd.entry.js +0 -1
  192. package/dist/ripple/p-8708b8cb.entry.js +0 -1
  193. package/dist/ripple/p-8bd66955.entry.js +0 -1
  194. package/dist/ripple/p-957e3a05.entry.js +0 -1
  195. package/dist/ripple/p-af6eb4d5.entry.js +0 -1
  196. package/dist/ripple/p-b3f9f575.entry.js +0 -1
  197. package/dist/ripple/p-cd30198d.entry.js +0 -1
  198. package/dist/ripple/p-d9d6bf11.js +0 -1
  199. package/dist/ripple/p-e097c562.entry.js +0 -1
  200. package/dist/ripple/p-e9db6122.entry.js +0 -1
  201. package/dist/ripple/p-eabbd1e9.entry.js +0 -1
  202. package/dist/ripple/p-ec496b8b.entry.js +0 -1
  203. package/dist/ripple/p-fc8ec142.entry.js +0 -1
@@ -2,143 +2,143 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-921ef454.js');
6
- const functions = require('./functions-a6491ba8.js');
5
+ const index = require('./index-cd179539.js');
6
+ const functions = require('./functions-653e695c.js');
7
7
 
8
8
  const wmInputCss = "@charset \"UTF-8\";:host,wm-input{font-family:inherit;width:100%}:host *,wm-input *{box-sizing:border-box}:host .wrapper,wm-input .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;flex-direction:column;font-size:0.875rem}:host .wrapper .label,wm-input .wrapper .label{display:block;line-height:normal;font-weight:600;white-space:nowrap;margin-bottom:0.25rem}:host .wrapper .label .required,wm-input .wrapper .label .required{color:#c0392b}:host .wrapper.label-left,wm-input .wrapper.label-left{flex-direction:row}:host .wrapper.label-left .label-wrapper,wm-input .wrapper.label-left .label-wrapper{line-height:2.5rem}:host .wrapper.label-left .label-wrapper .label,wm-input .wrapper.label-left .label-wrapper .label{display:flex;align-items:center;min-height:2.5rem;white-space:normal;margin-bottom:0;margin-right:0.75rem}:host .wrapper.label-none label,wm-input .wrapper.label-none label{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}:host .wrapper.invalid .label,wm-input .wrapper.invalid .label{color:#c0392b}:host .wrapper.invalid .label:after,wm-input .wrapper.invalid .label:after{display:inline-block;font:normal normal normal 24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\";margin-left:0.3125rem}[dir=RTL] :host .wrapper.invalid .label:after,[dir=RTL] wm-input .wrapper.invalid .label:after{margin-left:0;margin-right:0.3125rem}:host .wrapper.rtl.label-left .label,wm-input .wrapper.rtl.label-left .label{margin-right:0;margin-left:0.75rem}:host .wrapper .inner-wrapper,wm-input .wrapper .inner-wrapper{width:100%}:host .wrapper .inputfield-wrapper,wm-input .wrapper .inputfield-wrapper{height:2.5rem;border:1px solid #4a4a4a;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;display:flex}:host .wrapper .character-count,wm-input .wrapper .character-count{display:flex;align-items:center;justify-content:center;min-width:5rem;background-color:rgba(74, 74, 74, 0.05);font-size:0.875rem;font-weight:500;align-self:stretch}:host .wrapper input,wm-input .wrapper input{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;border-radius:3px;border:none;font-family:inherit;font-size:0.875rem;height:100%;flex:1;padding:0.75rem 1rem;width:100%}:host .wrapper input:disabled,wm-input .wrapper input:disabled{background-color:#f0f0f0;color:#737373}:host .wrapper input:focus,wm-input .wrapper input:focus{outline:none}:host .wrapper .info,wm-input .wrapper .info{font-style:italic;line-height:100%;margin:4px 0}:host .wrapper.invalid .inputfield-wrapper,wm-input .wrapper.invalid .inputfield-wrapper{-webkit-box-shadow:0 0 0 1px #c0392b;-moz-box-shadow:0 0 0 1px #c0392b;box-shadow:0 0 0 1px #c0392b;border-color:#c0392b}:host .wrapper.invalid .error-message,wm-input .wrapper.invalid .error-message{color:#c0392b;margin:4px 0;display:block;font-style:italic;line-height:100%}:host .wrapper:focus .inputfield-wrapper,:host .wrapper.focus .inputfield-wrapper,wm-input .wrapper:focus .inputfield-wrapper,wm-input .wrapper.focus .inputfield-wrapper{-webkit-box-shadow:0 0 0 1px #20cbd4;-moz-box-shadow:0 0 0 1px #20cbd4;box-shadow:0 0 0 1px #20cbd4;outline:none;border-color:#20cbd4}:host .sr-only,wm-input .sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;border:0 !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;margin:-1px !important}";
9
9
 
10
- const Input = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.wmInputValueChanged = index.createEvent(this, "wmInputValueChanged", 7);
14
- this.labelPosition = "top";
15
- this.value = "";
16
- this.disabled = false;
17
- this.placeholder = "";
18
- this.requiredField = false;
19
- this.type = "text";
20
- this.step = 1;
21
- this.announcement = "";
22
- this.previousBlurredValue = "";
23
- this.displayedErrorMessage = "";
24
- this.uid = "";
25
- this.requiredErrorMessage = functions.intl.formatMessage({
26
- id: "global.requiredError",
27
- defaultMessage: "This field is required.",
28
- });
29
- this.numberErrorMessage = functions.intl.formatMessage({
30
- id: "input.numberError",
31
- defaultMessage: "Please enter a valid number.",
32
- });
33
- }
34
- get charCount() {
35
- return this.value.length;
36
- }
37
- componentWillLoad() {
38
- this.uid = this.el.id ? this.el.id : functions.generateId();
39
- this.el.focus = function () {
40
- if (!this.disabled) {
41
- this.shadowRoot.querySelector("input").focus();
42
- }
43
- };
44
- if (!this.label) {
45
- console.error("wm-input requires the label property");
46
- }
47
- }
48
- componentDidLoad() {
49
- if (this.value) {
50
- this.inputEl.value = this.value;
51
- this.previousBlurredValue = this.inputEl.value;
52
- }
53
- }
54
- handleErrorMessage() {
55
- this.displayedErrorMessage = this.validate();
56
- }
57
- handleKeyDown(ev) {
58
- // in most browsers, onInput doesn't fire if the input's maxLength is reached
59
- // to handle the case where a user continues to type after reaching the character limit, the keyDown event must be used
60
- const isModifierKey = ev.ctrlKey || ev.metaKey || ev.altKey;
61
- const isCharacter = /^.$/.test(ev.key) && !isModifierKey;
62
- const hasReachedCharacterLimit = isCharacter && this.characterLimit && this.inputEl.value.length >= this.characterLimit;
63
- if (hasReachedCharacterLimit) {
64
- this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
65
- }
66
- }
67
- handleBlur(ev) {
68
- if (this.value !== this.previousBlurredValue) {
69
- this.wmInputValueChanged.emit({ value: this.value });
70
- }
71
- this.previousBlurredValue = this.value;
72
- // do not validate if clicking to an element that should prevent validation (e.g. close button on modal)
73
- const shouldPreventValidation = this.preventValidation && functions.isRelatedTarget(ev, this.preventValidation);
74
- if (!shouldPreventValidation) {
75
- this.displayedErrorMessage = this.validate();
76
- }
77
- this.inputWrapperEl.classList.remove("focus");
78
- }
79
- handleInput(ev) {
80
- this.value = ev.target.value;
81
- if (this.characterLimit && this.charCount >= this.characterLimit - 5) {
82
- this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
83
- }
84
- }
85
- handleFocus() {
86
- this.inputWrapperEl.classList.add("focus");
87
- }
88
- validate() {
89
- // These rules are in priority order
90
- // i.e. an input that is triggering both required and number errors will only show the number one but it's first
91
- const validationRules = [this.validateNumber.bind(this), this.validateRequired.bind(this)];
92
- if (this.errorMessage) {
93
- return this.errorMessage;
94
- }
95
- else {
96
- // sets newError to first rule that returns an error
97
- return validationRules.reduce((prev, current) => (prev ? prev : current()), "");
98
- }
99
- }
100
- validateRequired() {
101
- return this.requiredField && this.value === "" ? this.requiredErrorMessage : "";
102
- }
103
- validateNumber() {
104
- return this.type === "number" && this.inputEl.validity.badInput ? this.numberErrorMessage : "";
105
- }
106
- announce(message) {
107
- if (this.liveRegionEl.textContent === message) {
108
- message += "\u00A0";
109
- }
110
- this.announcement = message;
111
- }
112
- generateCharacterLimitWarning(charCount, charLimit) {
113
- const charactersEnteredMessage = functions.intl.formatMessage({
114
- id: "input.charactersEntered",
115
- defaultMessage: "{x, number} of {y, number} characters entered.",
116
- }, { x: charCount, y: charLimit });
117
- const characterLimitReachedMessage = functions.intl.formatMessage({
118
- id: "input.characterLimitReached",
119
- defaultMessage: "No additional characters will be entered.",
120
- });
121
- return `${charactersEnteredMessage}${charCount >= charLimit ? " " + characterLimitReachedMessage : ""}`;
122
- }
123
- generateCharacterLimitLabel(characterLimit) {
124
- return functions.intl.formatMessage({
125
- id: "input.characterLimit",
126
- defaultMessage: "{limit, number} characters allowed.",
127
- }, {
128
- limit: characterLimit,
129
- });
130
- }
131
- renderErrorMessage() {
132
- return this.errorMessage || this.displayedErrorMessage;
133
- }
134
- render() {
135
- return (index.h(index.Host, { id: this.uid }, index.h("div", { class: `wrapper label-${this.labelPosition} ${this.errorMessage || this.displayedErrorMessage ? "invalid" : ""}`, ref: (el) => (this.inputWrapperEl = el) }, index.h("div", { class: "label-wrapper" }, this.labelPosition !== "none" && (index.h("label", { htmlFor: `inputfield-${this.uid}`, class: "label" }, this.label, this.requiredField && (index.h("span", { class: "required", "aria-hidden": "true" }, "*"))))), index.h("div", { class: "inner-wrapper" }, index.h("div", { class: "inputfield-wrapper" }, index.h("input", { ref: (el) => (this.inputEl = el), id: `inputfield-${this.uid}`, disabled: this.disabled, "aria-label": `${this.label}${this.characterLimit ? " " + this.generateCharacterLimitLabel(this.characterLimit) : ""}`, "aria-describedby": `info-${this.uid} error-${this.uid}`, onInput: (ev) => this.handleInput(ev), onKeyDown: (ev) => this.handleKeyDown(ev), onBlur: (ev) => this.handleBlur(ev), onFocus: this.handleFocus.bind(this), placeholder: this.placeholder, autocomplete: "off", required: this.requiredField, maxLength: this.characterLimit || undefined, type: this.type, step: this.step, max: this.max, min: this.min }), this.characterLimit && typeof this.characterLimit === "number" ? (index.h("div", { class: "character-count" }, this.charCount, "/", this.characterLimit)) : ("")), this.info && (index.h("div", { id: `info-${this.uid}`, class: "info" }, this.info)), index.h("div", { id: `error-${this.uid}`, "aria-live": "assertive", class: "error-message", "aria-atomic": "true" }, this.renderErrorMessage()), index.h("div", { class: "sr-only", "aria-live": "polite", "aria-atomic": "true", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
136
- }
137
- get el() { return index.getElement(this); }
138
- static get watchers() { return {
139
- "errorMessage": ["handleErrorMessage"]
140
- }; }
141
- };
10
+ const Input = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.wmInputValueChanged = index.createEvent(this, "wmInputValueChanged", 7);
14
+ this.labelPosition = "top";
15
+ this.value = "";
16
+ this.disabled = false;
17
+ this.placeholder = "";
18
+ this.requiredField = false;
19
+ this.type = "text";
20
+ this.step = 1;
21
+ this.announcement = "";
22
+ this.previousBlurredValue = "";
23
+ this.displayedErrorMessage = "";
24
+ this.uid = "";
25
+ this.requiredErrorMessage = functions.intl.formatMessage({
26
+ id: "global.requiredError",
27
+ defaultMessage: "This field is required.",
28
+ });
29
+ this.numberErrorMessage = functions.intl.formatMessage({
30
+ id: "input.numberError",
31
+ defaultMessage: "Please enter a valid number.",
32
+ });
33
+ }
34
+ get charCount() {
35
+ return this.value.length;
36
+ }
37
+ componentWillLoad() {
38
+ this.uid = this.el.id ? this.el.id : functions.generateId();
39
+ this.el.focus = function () {
40
+ if (!this.disabled) {
41
+ this.shadowRoot.querySelector("input").focus();
42
+ }
43
+ };
44
+ if (!this.label) {
45
+ console.error("wm-input requires the label property");
46
+ }
47
+ }
48
+ componentDidLoad() {
49
+ if (this.value) {
50
+ this.inputEl.value = this.value;
51
+ this.previousBlurredValue = this.inputEl.value;
52
+ }
53
+ }
54
+ handleErrorMessage() {
55
+ this.displayedErrorMessage = this.validate();
56
+ }
57
+ handleKeyDown(ev) {
58
+ // in most browsers, onInput doesn't fire if the input's maxLength is reached
59
+ // to handle the case where a user continues to type after reaching the character limit, the keyDown event must be used
60
+ const isModifierKey = ev.ctrlKey || ev.metaKey || ev.altKey;
61
+ const isCharacter = /^.$/.test(ev.key) && !isModifierKey;
62
+ const hasReachedCharacterLimit = isCharacter && this.characterLimit && this.inputEl.value.length >= this.characterLimit;
63
+ if (hasReachedCharacterLimit) {
64
+ this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
65
+ }
66
+ }
67
+ handleBlur(ev) {
68
+ if (this.value !== this.previousBlurredValue) {
69
+ this.wmInputValueChanged.emit({ value: this.value });
70
+ }
71
+ this.previousBlurredValue = this.value;
72
+ // do not validate if clicking to an element that should prevent validation (e.g. close button on modal)
73
+ const shouldPreventValidation = this.preventValidation && functions.isRelatedTarget(ev, this.preventValidation);
74
+ if (!shouldPreventValidation) {
75
+ this.displayedErrorMessage = this.validate();
76
+ }
77
+ this.inputWrapperEl.classList.remove("focus");
78
+ }
79
+ handleInput(ev) {
80
+ this.value = ev.target.value;
81
+ if (this.characterLimit && this.charCount >= this.characterLimit - 5) {
82
+ this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
83
+ }
84
+ }
85
+ handleFocus() {
86
+ this.inputWrapperEl.classList.add("focus");
87
+ }
88
+ validate() {
89
+ // These rules are in priority order
90
+ // i.e. an input that is triggering both required and number errors will only show the number one but it's first
91
+ const validationRules = [this.validateNumber.bind(this), this.validateRequired.bind(this)];
92
+ if (this.errorMessage) {
93
+ return this.errorMessage;
94
+ }
95
+ else {
96
+ // sets newError to first rule that returns an error
97
+ return validationRules.reduce((prev, current) => (prev ? prev : current()), "");
98
+ }
99
+ }
100
+ validateRequired() {
101
+ return this.requiredField && this.value === "" ? this.requiredErrorMessage : "";
102
+ }
103
+ validateNumber() {
104
+ return this.type === "number" && this.inputEl.validity.badInput ? this.numberErrorMessage : "";
105
+ }
106
+ announce(message) {
107
+ if (this.liveRegionEl.textContent === message) {
108
+ message += "\u00A0";
109
+ }
110
+ this.announcement = message;
111
+ }
112
+ generateCharacterLimitWarning(charCount, charLimit) {
113
+ const charactersEnteredMessage = functions.intl.formatMessage({
114
+ id: "input.charactersEntered",
115
+ defaultMessage: "{x, number} of {y, number} characters entered.",
116
+ }, { x: charCount, y: charLimit });
117
+ const characterLimitReachedMessage = functions.intl.formatMessage({
118
+ id: "input.characterLimitReached",
119
+ defaultMessage: "No additional characters will be entered.",
120
+ });
121
+ return `${charactersEnteredMessage}${charCount >= charLimit ? " " + characterLimitReachedMessage : ""}`;
122
+ }
123
+ generateCharacterLimitLabel(characterLimit) {
124
+ return functions.intl.formatMessage({
125
+ id: "input.characterLimit",
126
+ defaultMessage: "{limit, number} characters allowed.",
127
+ }, {
128
+ limit: characterLimit,
129
+ });
130
+ }
131
+ renderErrorMessage() {
132
+ return this.errorMessage || this.displayedErrorMessage;
133
+ }
134
+ render() {
135
+ return (index.h(index.Host, { id: this.uid }, index.h("div", { class: `wrapper label-${this.labelPosition} ${this.errorMessage || this.displayedErrorMessage ? "invalid" : ""}`, ref: (el) => (this.inputWrapperEl = el) }, index.h("div", { class: "label-wrapper" }, this.labelPosition !== "none" && (index.h("label", { htmlFor: `inputfield-${this.uid}`, class: "label" }, this.label, this.requiredField && (index.h("span", { class: "required", "aria-hidden": "true" }, "*"))))), index.h("div", { class: "inner-wrapper" }, index.h("div", { class: "inputfield-wrapper" }, index.h("input", { ref: (el) => (this.inputEl = el), id: `inputfield-${this.uid}`, disabled: this.disabled, "aria-label": `${this.label}${this.characterLimit ? " " + this.generateCharacterLimitLabel(this.characterLimit) : ""}`, "aria-describedby": `info-${this.uid} error-${this.uid}`, onInput: (ev) => this.handleInput(ev), onKeyDown: (ev) => this.handleKeyDown(ev), onBlur: (ev) => this.handleBlur(ev), onFocus: this.handleFocus.bind(this), placeholder: this.placeholder, autocomplete: "off", required: this.requiredField, maxLength: this.characterLimit || undefined, type: this.type, step: this.step, max: this.max, min: this.min }), this.characterLimit && typeof this.characterLimit === "number" ? (index.h("div", { class: "character-count" }, this.charCount, "/", this.characterLimit)) : ("")), this.info && (index.h("div", { id: `info-${this.uid}`, class: "info" }, this.info)), index.h("div", { id: `error-${this.uid}`, "aria-live": "assertive", class: "error-message", "aria-atomic": "true" }, this.renderErrorMessage()), index.h("div", { class: "sr-only", "aria-live": "polite", "aria-atomic": "true", ref: (el) => (this.liveRegionEl = el) }, this.announcement)))));
136
+ }
137
+ get el() { return index.getElement(this); }
138
+ static get watchers() { return {
139
+ "errorMessage": ["handleErrorMessage"]
140
+ }; }
141
+ };
142
142
  Input.style = wmInputCss;
143
143
 
144
144
  exports.wm_input = Input;
@@ -2,41 +2,41 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-921ef454.js');
5
+ const index = require('./index-cd179539.js');
6
6
 
7
7
  const wmModalFooterCss = "wm-modal-footer{-webkit-border-radius:0px 0px 5px 5px;-moz-border-radius:0px 0px 5px 5px;-ms-border-radius:0px 0px 5px 5px;border-radius:0px 0px 5px 5px;margin-top:-1px}wm-modal-footer .wm-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}@media only screen and (max-width: 650px){wm-modal-footer .wm-wrapper.footer-text{flex-direction:column;align-items:flex-start}}wm-modal-footer .wm-wrapper wm-button+wm-button{margin-left:1rem}wm-modal-footer .wm-wrapper .wm-info{font-size:0.875rem;font-style:italic}@media only screen and (max-width: 650px){wm-modal-footer .wm-wrapper .wm-info{padding-bottom:0.625rem}}wm-modal-footer .wm-wrapper .wm-info:focus{outline:none}";
8
8
 
9
- const ModalFooter = class {
10
- constructor(hostRef) {
11
- index.registerInstance(this, hostRef);
12
- this.secondaryText = "";
13
- this.primaryText = "";
14
- this.infoText = "";
15
- this.primaryActionDisabled = false;
16
- this.deleteStyle = false;
17
- }
18
- //Trap focus when user tabs past first element in modal
19
- focusLastEl() {
20
- this.lastElement.focus();
21
- }
22
- componentWillLoad() {
23
- this.uid = this.el.parentElement.uid;
24
- }
25
- emitParentPrimaryEvent() {
26
- const parentModal = this.el.parentElement;
27
- //@ts-ignore
28
- parentModal.emitPrimaryEvent();
29
- }
30
- emitParentSecondaryEvent() {
31
- const parentModal = this.el.parentElement;
32
- //@ts-ignore
33
- parentModal.emitSecondaryEvent();
34
- }
35
- render() {
36
- return (index.h("div", { class: `wm-wrapper ${this.infoText ? " footer-text" : ""}` }, index.h("div", { class: "wm-info" }, this.infoText), index.h("div", { class: "wm-button-collection" }, this.secondaryText && (index.h("wm-button", { onClick: () => this.emitParentSecondaryEvent(), id: `wm-secondary-${this.uid}`, ref: (el) => (this.primaryActionDisabled ? (this.lastElement = el) : null) }, this.secondaryText)), index.h("wm-button", { "button-type": this.deleteStyle ? "secondary" : "primary", "permanently-delete": this.deleteStyle, onClick: () => this.emitParentPrimaryEvent(), disabled: this.primaryActionDisabled, id: `wm-primary-${this.uid}`, ref: (el) => (!this.primaryActionDisabled ? (this.lastElement = el) : null) }, this.primaryText))));
37
- }
38
- get el() { return index.getElement(this); }
39
- };
9
+ const ModalFooter = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.secondaryText = "";
13
+ this.primaryText = "";
14
+ this.infoText = "";
15
+ this.primaryActionDisabled = false;
16
+ this.deleteStyle = false;
17
+ }
18
+ //Trap focus when user tabs past first element in modal
19
+ focusLastEl() {
20
+ this.lastElement.focus();
21
+ }
22
+ componentWillLoad() {
23
+ this.uid = this.el.parentElement.uid;
24
+ }
25
+ emitParentPrimaryEvent() {
26
+ const parentModal = this.el.parentElement;
27
+ //@ts-ignore
28
+ parentModal.emitPrimaryEvent();
29
+ }
30
+ emitParentSecondaryEvent() {
31
+ const parentModal = this.el.parentElement;
32
+ //@ts-ignore
33
+ parentModal.emitSecondaryEvent();
34
+ }
35
+ render() {
36
+ return (index.h("div", { class: `wm-wrapper ${this.infoText ? " footer-text" : ""}` }, index.h("div", { class: "wm-info" }, this.infoText), index.h("div", { class: "wm-button-collection" }, this.secondaryText && (index.h("wm-button", { onClick: () => this.emitParentSecondaryEvent(), id: `wm-secondary-${this.uid}`, ref: (el) => (this.primaryActionDisabled ? (this.lastElement = el) : null) }, this.secondaryText)), index.h("wm-button", { "button-type": this.deleteStyle ? "secondary" : "primary", "permanently-delete": this.deleteStyle, onClick: () => this.emitParentPrimaryEvent(), disabled: this.primaryActionDisabled, id: `wm-primary-${this.uid}`, ref: (el) => (!this.primaryActionDisabled ? (this.lastElement = el) : null) }, this.primaryText))));
37
+ }
38
+ get el() { return index.getElement(this); }
39
+ };
40
40
  ModalFooter.style = wmModalFooterCss;
41
41
 
42
42
  exports.wm_modal_footer = ModalFooter;
@@ -2,44 +2,44 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index = require('./index-921ef454.js');
6
- const functions = require('./functions-a6491ba8.js');
5
+ const index = require('./index-cd179539.js');
6
+ const functions = require('./functions-653e695c.js');
7
7
 
8
8
  const wmModalHeaderCss = "wm-modal-header{-webkit-border-radius:5px 5px 0 0px;-moz-border-radius:5px 5px 0 0px;-ms-border-radius:5px 5px 0 0px;border-radius:5px 5px 0 0px;margin-bottom:-1px}wm-modal-header .wm-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}wm-modal-header .wm-wrapper .title{margin:0;font-weight:600;font-size:1.125rem;color:#4a4a4a;line-height:normal}wm-modal-header .wm-wrapper .title .subtitle{display:block;font-size:0.875rem;font-weight:normal}wm-modal-header .wm-wrapper .title:focus{outline:none}";
9
9
 
10
- const ModalHeader = class {
11
- constructor(hostRef) {
12
- index.registerInstance(this, hostRef);
13
- this.heading = "";
14
- this.subheading = "";
15
- this.closeTooltipMessage = functions.intl.formatMessage({
16
- id: "global.closeVerb",
17
- defaultMessage: "Close",
18
- description: "For a button, to close a user interface element",
19
- });
20
- }
21
- //Trap focus when user tabs past last element in modal
22
- focusFirstEl() {
23
- this.closeButtonEl.focus();
24
- }
25
- componentWillLoad() {
26
- this.uid = this.el.parentElement.uid;
27
- }
28
- emitParentCloseEvent() {
29
- const parentModal = this.el.parentElement;
30
- //@ts-ignore
31
- parentModal.emitCloseEvent();
32
- }
33
- // @Listen("click")
34
- // directFocusOnClick() {
35
- // this.headingElement.tabIndex = 0;
36
- // this.headingElement.focus();
37
- // }
38
- render() {
39
- return (index.h(index.Host, null, index.h("div", { class: "wm-wrapper" }, index.h("div", null, index.h("h2", { class: "title", id: `wm-modal-heading-text-${this.uid}` }, this.heading, index.h("span", { class: "subtitle" }, this.subheading))), index.h("wm-button", { "button-type": "navigational", icon: "f156", tooltip: this.closeTooltipMessage, "tooltip-position": "left", id: `wm-modal-close-${this.uid}`, ref: (el) => (this.closeButtonEl = el), onClick: () => this.emitParentCloseEvent() }))));
40
- }
41
- get el() { return index.getElement(this); }
42
- };
10
+ const ModalHeader = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.heading = "";
14
+ this.subheading = "";
15
+ this.closeTooltipMessage = functions.intl.formatMessage({
16
+ id: "global.closeVerb",
17
+ defaultMessage: "Close",
18
+ description: "For a button, to close a user interface element",
19
+ });
20
+ }
21
+ //Trap focus when user tabs past last element in modal
22
+ focusFirstEl() {
23
+ this.closeButtonEl.focus();
24
+ }
25
+ componentWillLoad() {
26
+ this.uid = this.el.parentElement.uid;
27
+ }
28
+ emitParentCloseEvent() {
29
+ const parentModal = this.el.parentElement;
30
+ //@ts-ignore
31
+ parentModal.emitCloseEvent();
32
+ }
33
+ // @Listen("click")
34
+ // directFocusOnClick() {
35
+ // this.headingElement.tabIndex = 0;
36
+ // this.headingElement.focus();
37
+ // }
38
+ render() {
39
+ return (index.h(index.Host, null, index.h("div", { class: "wm-wrapper" }, index.h("div", null, index.h("h2", { class: "title", id: `wm-modal-heading-text-${this.uid}` }, this.heading, index.h("span", { class: "subtitle" }, this.subheading))), index.h("wm-button", { "button-type": "navigational", icon: "f156", tooltip: this.closeTooltipMessage, "tooltip-position": "left", id: `wm-modal-close-${this.uid}`, ref: (el) => (this.closeButtonEl = el), onClick: () => this.emitParentCloseEvent() }))));
40
+ }
41
+ get el() { return index.getElement(this); }
42
+ };
43
43
  ModalHeader.style = wmModalHeaderCss;
44
44
 
45
45
  exports.wm_modal_header = ModalHeader;