@watermarkinsights/ripple 3.0.1-0 → 3.0.2-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 (224) hide show
  1. package/dist/{ripple/functions-316c1b23.js → cjs/functions-e3f5ae65.js} +188 -2391
  2. package/dist/cjs/global-1e540de6.js +38 -0
  3. package/dist/cjs/http-service-9e8c4dd5.js +57 -0
  4. package/dist/cjs/index-d930307d.js +1392 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-30a74c1f.js +35 -0
  7. package/dist/cjs/loader.cjs.js +22 -0
  8. package/dist/cjs/priv-chart-popover.cjs.entry.js +89 -0
  9. package/dist/cjs/priv-datepicker.cjs.entry.js +672 -0
  10. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  11. package/dist/cjs/priv-navigator-item.cjs.entry.js +34 -0
  12. package/dist/cjs/ripple.cjs.js +20 -0
  13. package/dist/cjs/wm-action-menu_2.cjs.entry.js +318 -0
  14. package/dist/cjs/wm-button.cjs.entry.js +152 -0
  15. package/dist/cjs/wm-chart-slice.cjs.entry.js +22 -0
  16. package/dist/cjs/wm-chart.cjs.entry.js +508 -0
  17. package/dist/cjs/wm-datepicker.cjs.entry.js +257 -0
  18. package/dist/cjs/wm-input.cjs.entry.js +110 -0
  19. package/dist/cjs/wm-modal-footer.cjs.entry.js +43 -0
  20. package/dist/cjs/wm-modal-header.cjs.entry.js +45 -0
  21. package/dist/cjs/wm-modal.cjs.entry.js +149 -0
  22. package/dist/cjs/wm-navigator.cjs.entry.js +279 -0
  23. package/dist/cjs/wm-network-uploader.cjs.entry.js +431 -0
  24. package/dist/cjs/wm-option_2.cjs.entry.js +483 -0
  25. package/dist/cjs/wm-pagination.cjs.entry.js +176 -0
  26. package/dist/cjs/wm-search.cjs.entry.js +231 -0
  27. package/dist/cjs/wm-snackbar.cjs.entry.js +160 -0
  28. package/dist/cjs/wm-tab-item_3.cjs.entry.js +316 -0
  29. package/dist/cjs/wm-tag-input.cjs.entry.js +538 -0
  30. package/dist/cjs/wm-timepicker.cjs.entry.js +386 -0
  31. package/dist/cjs/wm-toggletip.cjs.entry.js +128 -0
  32. package/dist/cjs/wm-uploader.cjs.entry.js +342 -0
  33. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  34. package/dist/collection/collection-manifest.json +131 -0
  35. package/dist/{ripple/ripple.css → collection/components/wm-action-menu/wm-action-menu.css} +80 -42
  36. package/dist/collection/components/wm-action-menu/wm-action-menu.js +392 -0
  37. package/dist/collection/components/wm-button/wm-button.css +572 -0
  38. package/dist/collection/components/wm-button/wm-button.js +365 -0
  39. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.css +132 -0
  40. package/dist/collection/components/wm-chart/priv-chart-popover/priv-chart-popover.js +232 -0
  41. package/dist/collection/components/wm-chart/wm-chart-slice.js +64 -0
  42. package/dist/collection/components/wm-chart/wm-chart.css +337 -0
  43. package/dist/collection/components/wm-chart/wm-chart.js +710 -0
  44. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.css +374 -0
  45. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +1003 -0
  46. package/dist/collection/components/wm-datepicker/wm-datepicker.css +211 -0
  47. package/dist/collection/components/wm-datepicker/wm-datepicker.js +439 -0
  48. package/dist/collection/components/wm-input/wm-input.css +220 -0
  49. package/dist/collection/components/wm-input/wm-input.js +302 -0
  50. package/dist/collection/components/wm-menuitem/wm-menuitem.css +118 -0
  51. package/dist/collection/components/wm-menuitem/wm-menuitem.js +411 -0
  52. package/dist/collection/components/wm-modal/wm-modal-footer.css +84 -0
  53. package/dist/collection/components/wm-modal/wm-modal-footer.js +159 -0
  54. package/dist/collection/components/wm-modal/wm-modal-header.css +78 -0
  55. package/dist/collection/components/wm-modal/wm-modal-header.js +109 -0
  56. package/dist/collection/components/wm-modal/wm-modal.css +155 -0
  57. package/dist/collection/components/wm-modal/wm-modal.js +356 -0
  58. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +94 -0
  59. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +97 -0
  60. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +67 -0
  61. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +114 -0
  62. package/dist/collection/components/wm-navigator/wm-navigator.css +137 -0
  63. package/dist/collection/components/wm-navigator/wm-navigator.js +468 -0
  64. package/dist/collection/components/wm-option/wm-option.css +162 -0
  65. package/dist/collection/components/wm-option/wm-option.js +394 -0
  66. package/dist/collection/components/wm-pagination/wm-pagination.css +217 -0
  67. package/dist/collection/components/wm-pagination/wm-pagination.js +348 -0
  68. package/dist/collection/components/wm-search/wm-search.css +155 -0
  69. package/dist/collection/components/wm-search/wm-search.js +439 -0
  70. package/dist/collection/components/wm-select/wm-select.css +315 -0
  71. package/dist/collection/components/wm-select/wm-select.js +676 -0
  72. package/dist/collection/components/wm-snackbar/wm-snackbar.css +331 -0
  73. package/dist/collection/components/wm-snackbar/wm-snackbar.js +240 -0
  74. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +104 -0
  75. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +202 -0
  76. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +73 -0
  77. package/dist/{ripple/wm-tab-list.entry.js → collection/components/wm-tabs/wm-tab-list/wm-tab-list.js} +131 -17
  78. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +57 -0
  79. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +104 -0
  80. package/dist/collection/components/wm-tag-input/wm-tag-input.css +431 -0
  81. package/dist/collection/components/wm-tag-input/wm-tag-input.js +754 -0
  82. package/dist/collection/components/wm-timepicker/wm-timepicker.css +370 -0
  83. package/dist/collection/components/wm-timepicker/wm-timepicker.js +567 -0
  84. package/dist/collection/components/wm-toggletip/wm-toggletip.css +350 -0
  85. package/dist/collection/components/wm-toggletip/wm-toggletip.js +217 -0
  86. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.css +642 -0
  87. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +753 -0
  88. package/dist/collection/components/wm-uploader/wm-uploader.css +666 -0
  89. package/dist/collection/components/wm-uploader/wm-uploader.js +673 -0
  90. package/dist/collection/components/wm-wrapper/wm-wrapper.js +27 -0
  91. package/dist/collection/dev/scripts.js +20 -0
  92. package/dist/collection/global/__mocks__/functions.js +5 -0
  93. package/dist/collection/global/functions.js +420 -0
  94. package/dist/{ripple/app-globals-b5693c90.js → collection/global/global.js} +3 -8
  95. package/dist/{ripple/interfaces-50753346.js → collection/global/interfaces.js} +4 -6
  96. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  97. package/dist/collection/global/services/http-service.js +50 -0
  98. package/dist/collection/lang/lang.js +5 -0
  99. package/dist/collection/lang/piglatin.js +93 -0
  100. package/dist/esm/functions-0deb7f8e.js +6117 -0
  101. package/dist/esm/global-d6b49e98.js +36 -0
  102. package/dist/{ripple → esm}/http-service-5d037e16.js +0 -0
  103. package/dist/esm/index-5a842e48.js +1363 -0
  104. package/dist/esm/index.js +1 -0
  105. package/dist/esm/interfaces-61c6305b.js +32 -0
  106. package/dist/esm/loader.js +18 -0
  107. package/dist/esm/polyfills/core-js.js +11 -0
  108. package/dist/esm/polyfills/css-shim.js +1 -0
  109. package/dist/esm/polyfills/dom.js +79 -0
  110. package/dist/esm/polyfills/es5-html-element.js +1 -0
  111. package/dist/esm/polyfills/index.js +34 -0
  112. package/dist/esm/polyfills/system.js +6 -0
  113. package/dist/{ripple → esm}/priv-chart-popover.entry.js +2 -2
  114. package/dist/{ripple → esm}/priv-datepicker.entry.js +3 -3
  115. package/dist/{ripple → esm}/priv-navigator-button.entry.js +1 -1
  116. package/dist/{ripple → esm}/priv-navigator-item.entry.js +1 -1
  117. package/dist/esm/ripple.js +18 -0
  118. package/dist/{ripple/wm-action-menu.entry.js → esm/wm-action-menu_2.entry.js} +114 -3
  119. package/dist/{ripple → esm}/wm-button.entry.js +3 -3
  120. package/dist/{ripple → esm}/wm-chart-slice.entry.js +1 -1
  121. package/dist/{ripple → esm}/wm-chart.entry.js +2 -2
  122. package/dist/{ripple → esm}/wm-datepicker.entry.js +27 -32
  123. package/dist/{ripple → esm}/wm-input.entry.js +2 -2
  124. package/dist/{ripple → esm}/wm-modal-footer.entry.js +2 -2
  125. package/dist/{ripple → esm}/wm-modal-header.entry.js +2 -2
  126. package/dist/{ripple → esm}/wm-modal.entry.js +2 -2
  127. package/dist/{ripple → esm}/wm-navigator.entry.js +3 -3
  128. package/dist/{ripple → esm}/wm-network-uploader.entry.js +2 -2
  129. package/dist/{ripple/wm-select.entry.js → esm/wm-option_2.entry.js} +119 -3
  130. package/dist/{ripple → esm}/wm-pagination.entry.js +2 -2
  131. package/dist/{ripple → esm}/wm-search.entry.js +2 -2
  132. package/dist/{ripple → esm}/wm-snackbar.entry.js +2 -2
  133. package/dist/esm/wm-tab-item_3.entry.js +310 -0
  134. package/dist/{ripple → esm}/wm-tag-input.entry.js +2 -2
  135. package/dist/{ripple → esm}/wm-timepicker.entry.js +2 -2
  136. package/dist/{ripple → esm}/wm-toggletip.entry.js +2 -2
  137. package/dist/{ripple → esm}/wm-uploader.entry.js +2 -2
  138. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  139. package/dist/index.cjs.js +1 -0
  140. package/dist/index.js +1 -0
  141. package/dist/loader/cdn.js +3 -0
  142. package/dist/loader/index.cjs.js +3 -0
  143. package/dist/loader/index.d.ts +13 -0
  144. package/dist/loader/index.es2017.js +3 -0
  145. package/dist/loader/index.js +4 -0
  146. package/dist/loader/package.json +10 -0
  147. package/dist/ripple/index.esm.js +0 -1
  148. package/dist/ripple/p-103f8cae.entry.js +1 -0
  149. package/dist/ripple/p-129d94fa.entry.js +1 -0
  150. package/dist/ripple/p-139fe143.entry.js +1 -0
  151. package/dist/ripple/p-16367805.entry.js +1 -0
  152. package/dist/ripple/p-1d334060.entry.js +1 -0
  153. package/dist/ripple/p-2562f330.entry.js +1 -0
  154. package/dist/ripple/p-278b26ef.entry.js +1 -0
  155. package/dist/ripple/p-2c21bb72.entry.js +1 -0
  156. package/dist/ripple/p-2f5fda71.entry.js +1 -0
  157. package/dist/ripple/p-3e6f04d5.entry.js +1 -0
  158. package/dist/ripple/p-7185de7f.entry.js +1 -0
  159. package/dist/ripple/p-770d0798.entry.js +1 -0
  160. package/dist/ripple/p-846b4c5f.entry.js +1 -0
  161. package/dist/ripple/p-888bec42.js +1 -0
  162. package/dist/ripple/p-90779d53.entry.js +1 -0
  163. package/dist/ripple/p-934543f2.js +1 -0
  164. package/dist/ripple/p-9a087fee.entry.js +1 -0
  165. package/dist/ripple/p-a6d6eae7.js +1 -0
  166. package/dist/ripple/p-a942ad10.entry.js +1 -0
  167. package/dist/ripple/p-bfb4652d.entry.js +1 -0
  168. package/dist/ripple/p-c0fe5201.entry.js +1 -0
  169. package/dist/ripple/p-c2e27acc.entry.js +1 -0
  170. package/dist/ripple/p-c2edda64.entry.js +1 -0
  171. package/dist/ripple/p-d1fdcbcf.entry.js +1 -0
  172. package/dist/ripple/p-d40b6afb.entry.js +1 -0
  173. package/dist/ripple/p-da73db1c.entry.js +1 -0
  174. package/dist/ripple/p-e3843249.js +1 -0
  175. package/dist/ripple/p-ea5cd8b8.js +16 -0
  176. package/dist/ripple/p-ed0f43f4.entry.js +1 -0
  177. package/dist/ripple/p-ffafd363.entry.js +1 -0
  178. package/dist/ripple/ripple.esm.js +1 -125
  179. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +43 -0
  180. package/dist/types/components/wm-button/wm-button.d.ts +36 -0
  181. package/dist/types/components/wm-chart/priv-chart-popover/priv-chart-popover.d.ts +23 -0
  182. package/dist/types/components/wm-chart/wm-chart-slice.d.ts +8 -0
  183. package/dist/types/components/wm-chart/wm-chart.d.ts +77 -0
  184. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +75 -0
  185. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +39 -0
  186. package/dist/types/components/wm-input/wm-input.d.ts +30 -0
  187. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +30 -0
  188. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +15 -0
  189. package/dist/types/components/wm-modal/wm-modal-header.d.ts +12 -0
  190. package/dist/types/components/wm-modal/wm-modal.d.ts +34 -0
  191. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -0
  192. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -0
  193. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -0
  194. package/dist/types/components/wm-option/wm-option.d.ts +28 -0
  195. package/dist/types/components/wm-pagination/wm-pagination.d.ts +31 -0
  196. package/dist/types/components/wm-search/wm-search.d.ts +78 -0
  197. package/dist/types/components/wm-select/wm-select.d.ts +63 -0
  198. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +32 -0
  199. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +35 -0
  200. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +50 -0
  201. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -0
  202. package/dist/types/components/wm-tag-input/{wm-tag-input.d.ts~ds312_tagInputMaxTags → wm-tag-input.d.ts} +1 -1
  203. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +59 -0
  204. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +25 -0
  205. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -0
  206. package/dist/types/components/wm-uploader/wm-uploader.d.ts +75 -0
  207. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -0
  208. package/dist/types/{components.d.ts~ds312_tagInputMaxTags → components.d.ts} +0 -0
  209. package/dist/types/global/__mocks__/functions.d.ts +5 -0
  210. package/dist/types/global/global.d.ts +1 -0
  211. package/dist/types/global/interfaces.d.ts +33 -0
  212. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -0
  213. package/dist/types/global/services/http-service.d.ts +4 -0
  214. package/dist/types/lang/lang.d.ts +5 -0
  215. package/dist/types/{stencil-public-runtime.d.ts~ds312_tagInputMaxTags → stencil-public-runtime.d.ts} +190 -182
  216. package/package.json +1 -1
  217. package/dist/ripple/css-shim-bbdf0cc6.js +0 -4
  218. package/dist/ripple/dom-1f98a75f.js +0 -73
  219. package/dist/ripple/index-20b65f86.js +0 -2938
  220. package/dist/ripple/shadow-css-67b66845.js +0 -389
  221. package/dist/ripple/wm-menuitem.entry.js +0 -114
  222. package/dist/ripple/wm-option.entry.js +0 -119
  223. package/dist/ripple/wm-tab-item.entry.js +0 -78
  224. package/dist/ripple/wm-tab-panel.entry.js +0 -38
@@ -0,0 +1,350 @@
1
+ @charset "UTF-8";
2
+ /* --------------------------------------
3
+ 1. Box-shadow
4
+ -------------------------------------- */
5
+ /* --------------------------------------
6
+ 2. Border-radius
7
+ -------------------------------------- */
8
+ /* --------------------------------------
9
+ 3. Transforms
10
+ -------------------------------------- */
11
+ /* --------------------------------------
12
+ 4. Button Focus
13
+ -------------------------------------- */
14
+ /* --------------------------------------
15
+ 5. Flex
16
+ -------------------------------------- */
17
+ /* --------------------------------------
18
+ 6. Button Hover
19
+ -------------------------------------- */
20
+ /* --------------------------------------
21
+ 7. Screen Reader Only
22
+ -------------------------------------- */
23
+ /* --------------------------------------
24
+ 8. Label styles
25
+ this mixin includes all the styles for the label
26
+ + flex rules on the parent container to switch between top and left position
27
+ + srOnly when label is hidden
28
+ Assumes the following markup:
29
+ div.wrapper[.label-left.invalid] > div.label-wrapper > label.label > span.required
30
+ .wrapper is for the flex rules
31
+ .label-wrapper is to set the height of the label when positioned left so it's the same height as
32
+ the input. It can't be done directly on .label because of possible line wrapping.
33
+ When the label is on top there's no line wrapping at all to ensure proper alignment of inlined elements
34
+ (they can't be aligned on the baseline because of possible description text and error message)
35
+ -------------------------------------- */
36
+ /********************************************************************************************/
37
+ /* DO NOT USE THESE DIRECTLY, ASSIGN THEM TO VARIABLES NAMED AFTER FUNCTIONALITY, SEE BELOW */
38
+ /********************************************************************************************/
39
+ /* USAGE */
40
+ /* BELOW IS BEFORE WE HAD THE COLOR PALETTE FROM UI */
41
+ /* TODO: replace with vars above whenever possible */
42
+ /* Buttons */
43
+ /* VIA */
44
+ :host,
45
+ wm-toggletip {
46
+ display: inline-block;
47
+ position: relative;
48
+ height: 40px;
49
+ width: 40px;
50
+ }
51
+ :host .button,
52
+ wm-toggletip .button {
53
+ display: flex;
54
+ background: none;
55
+ border: none;
56
+ padding: 0;
57
+ width: inherit;
58
+ height: inherit;
59
+ border-radius: 50%;
60
+ justify-content: center;
61
+ align-items: center;
62
+ position: relative;
63
+ cursor: pointer;
64
+ }
65
+ :host .button:before,
66
+ wm-toggletip .button:before {
67
+ display: inline-block;
68
+ font: normal normal normal 24px/1 "Material Design Icons";
69
+ font-size: inherit;
70
+ text-rendering: auto;
71
+ line-height: inherit;
72
+ -webkit-font-smoothing: antialiased;
73
+ -moz-osx-font-smoothing: grayscale;
74
+ content: "";
75
+ font-size: 16px;
76
+ color: #4a4a4a;
77
+ background: radial-gradient(white 40%, transparent 0%);
78
+ }
79
+ :host .button:focus,
80
+ wm-toggletip .button:focus {
81
+ outline: none;
82
+ }
83
+ :host .button:focus.user-is-tabbing,
84
+ wm-toggletip .button:focus.user-is-tabbing {
85
+ -webkit-box-shadow: 0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;
86
+ -moz-box-shadow: 0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;
87
+ box-shadow: 0 2px 2px 0 rgba(244, 243, 246, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.1), 0 0 4px 3px #61279e;
88
+ }
89
+ :host .button:focus.user-is-tabbing::-moz-focus-inner,
90
+ wm-toggletip .button:focus.user-is-tabbing::-moz-focus-inner {
91
+ border: 0;
92
+ }
93
+ :host .tooltip,
94
+ wm-toggletip .tooltip {
95
+ position: absolute;
96
+ opacity: 0;
97
+ width: 1px;
98
+ height: 1px;
99
+ overflow: hidden;
100
+ clip: rect(0, 0, 0, 0);
101
+ pointer-events: none;
102
+ font-family: inherit;
103
+ font-size: 0.875rem;
104
+ text-transform: none;
105
+ font-weight: normal;
106
+ background: black;
107
+ color: #fff;
108
+ padding: 0.375rem;
109
+ line-height: normal;
110
+ z-index: 30;
111
+ white-space: nowrap;
112
+ }
113
+ :host .tooltip.hover,
114
+ wm-toggletip .tooltip.hover {
115
+ clip: auto;
116
+ width: auto;
117
+ height: auto;
118
+ opacity: 1;
119
+ transition: opacity 500ms 500ms;
120
+ padding: 0.375rem;
121
+ white-space: nowrap;
122
+ }
123
+ :host .toggletip,
124
+ wm-toggletip .toggletip {
125
+ position: absolute;
126
+ max-width: 13.75rem;
127
+ width: max-content;
128
+ padding: 0.5rem 0.75rem;
129
+ border-radius: 0.1875rem;
130
+ background: #4a4a4a;
131
+ color: white;
132
+ font-size: 14px;
133
+ z-index: 30;
134
+ }
135
+ :host .toggletip.top:before,
136
+ wm-toggletip .toggletip.top:before {
137
+ content: "";
138
+ position: absolute;
139
+ border: solid transparent;
140
+ height: 0;
141
+ width: 0;
142
+ pointer-events: none;
143
+ top: 100%;
144
+ border-top-color: #4a4a4a;
145
+ border-top-width: 0.25rem;
146
+ border-left-width: 0.375rem;
147
+ border-right-width: 0.375rem;
148
+ margin-left: -0.375rem;
149
+ left: 50%;
150
+ }
151
+ :host .toggletip.bottom:before,
152
+ wm-toggletip .toggletip.bottom:before {
153
+ content: "";
154
+ position: absolute;
155
+ border: solid transparent;
156
+ height: 0;
157
+ width: 0;
158
+ pointer-events: none;
159
+ bottom: 100%;
160
+ border-bottom-color: #4a4a4a;
161
+ border-bottom-width: 0.25rem;
162
+ border-left-width: 0.375rem;
163
+ border-right-width: 0.375rem;
164
+ margin-left: -0.375rem;
165
+ left: 50%;
166
+ }
167
+ :host .toggletip.right:before,
168
+ wm-toggletip .toggletip.right:before {
169
+ content: "";
170
+ position: absolute;
171
+ border: solid transparent;
172
+ height: 0;
173
+ width: 0;
174
+ pointer-events: none;
175
+ bottom: 100%;
176
+ border-right-color: #4a4a4a;
177
+ border-right-width: 0.25rem;
178
+ border-top-width: 0.375rem;
179
+ border-bottom-width: 0.375rem;
180
+ border-left-width: 0px;
181
+ top: calc(50% - 6px);
182
+ left: -0.1875rem;
183
+ }
184
+ :host .toggletip.left:before,
185
+ wm-toggletip .toggletip.left:before {
186
+ content: "";
187
+ position: absolute;
188
+ border: solid transparent;
189
+ height: 0;
190
+ width: 0;
191
+ pointer-events: none;
192
+ bottom: 100%;
193
+ border-left-color: #4a4a4a;
194
+ border-left-width: 0.25rem;
195
+ border-top-width: 0.375rem;
196
+ border-bottom-width: 0.375rem;
197
+ border-right-width: 0px;
198
+ top: calc(50% - 6px);
199
+ right: -0.1875rem;
200
+ }
201
+ :host .toggletip.bottom-right:before,
202
+ wm-toggletip .toggletip.bottom-right:before {
203
+ content: "";
204
+ position: absolute;
205
+ border: solid transparent;
206
+ height: 0;
207
+ width: 0;
208
+ pointer-events: none;
209
+ bottom: 100%;
210
+ border-bottom-color: #4a4a4a;
211
+ border-bottom-width: 0.25rem;
212
+ border-left-width: 0.375rem;
213
+ border-right-width: 0.375rem;
214
+ margin-left: -0.375rem;
215
+ left: 50%;
216
+ margin-left: unset;
217
+ left: 0.875rem;
218
+ }
219
+ :host .toggletip.bottom-left:before,
220
+ wm-toggletip .toggletip.bottom-left:before {
221
+ content: "";
222
+ position: absolute;
223
+ border: solid transparent;
224
+ height: 0;
225
+ width: 0;
226
+ pointer-events: none;
227
+ bottom: 100%;
228
+ border-bottom-color: #4a4a4a;
229
+ border-bottom-width: 0.25rem;
230
+ border-left-width: 0.375rem;
231
+ border-right-width: 0.375rem;
232
+ margin-left: -0.375rem;
233
+ left: 50%;
234
+ left: unset;
235
+ margin-left: unset;
236
+ right: 0.875rem;
237
+ }
238
+ :host .toggletip.top-right:before,
239
+ wm-toggletip .toggletip.top-right:before {
240
+ content: "";
241
+ position: absolute;
242
+ border: solid transparent;
243
+ height: 0;
244
+ width: 0;
245
+ pointer-events: none;
246
+ top: 100%;
247
+ border-top-color: #4a4a4a;
248
+ border-top-width: 0.25rem;
249
+ border-left-width: 0.375rem;
250
+ border-right-width: 0.375rem;
251
+ margin-left: -0.375rem;
252
+ left: 50%;
253
+ margin-left: unset;
254
+ left: 0.875rem;
255
+ }
256
+ :host .toggletip.top-left:before,
257
+ wm-toggletip .toggletip.top-left:before {
258
+ content: "";
259
+ position: absolute;
260
+ border: solid transparent;
261
+ height: 0;
262
+ width: 0;
263
+ pointer-events: none;
264
+ top: 100%;
265
+ border-top-color: #4a4a4a;
266
+ border-top-width: 0.25rem;
267
+ border-left-width: 0.375rem;
268
+ border-right-width: 0.375rem;
269
+ margin-left: -0.375rem;
270
+ left: 50%;
271
+ left: unset;
272
+ margin-left: unset;
273
+ right: 0.875rem;
274
+ }
275
+ :host .toggletip.hidden,
276
+ wm-toggletip .toggletip.hidden {
277
+ transform: scale(0, 0) !important;
278
+ visibility: hidden;
279
+ }
280
+ :host .toggletip.top,
281
+ :host .tooltip.top,
282
+ wm-toggletip .toggletip.top,
283
+ wm-toggletip .tooltip.top {
284
+ transform: translate(-50%, 0%);
285
+ bottom: 40px;
286
+ left: 20px;
287
+ }
288
+ :host .toggletip.bottom,
289
+ :host .tooltip.bottom,
290
+ wm-toggletip .toggletip.bottom,
291
+ wm-toggletip .tooltip.bottom {
292
+ transform: translate(-50%, 0%);
293
+ top: 40px;
294
+ left: 20px;
295
+ }
296
+ :host .toggletip.right,
297
+ :host .tooltip.right,
298
+ wm-toggletip .toggletip.right,
299
+ wm-toggletip .tooltip.right {
300
+ transform: translate(100%, calc(-50% - 20px));
301
+ right: 0px;
302
+ }
303
+ :host .toggletip.left,
304
+ :host .tooltip.left,
305
+ wm-toggletip .toggletip.left,
306
+ wm-toggletip .tooltip.left {
307
+ transform: translate(-100%, calc(-50% - 20px));
308
+ left: 0px;
309
+ }
310
+ :host .toggletip.bottom-right,
311
+ :host .tooltip.bottom-right,
312
+ wm-toggletip .toggletip.bottom-right,
313
+ wm-toggletip .tooltip.bottom-right {
314
+ top: 40px;
315
+ left: 0px;
316
+ }
317
+ :host .toggletip.bottom-left,
318
+ :host .tooltip.bottom-left,
319
+ wm-toggletip .toggletip.bottom-left,
320
+ wm-toggletip .tooltip.bottom-left {
321
+ top: 40px;
322
+ right: 0px;
323
+ }
324
+ :host .toggletip.top-right,
325
+ :host .tooltip.top-right,
326
+ wm-toggletip .toggletip.top-right,
327
+ wm-toggletip .tooltip.top-right {
328
+ bottom: 40px;
329
+ left: 0px;
330
+ }
331
+ :host .toggletip.top-left,
332
+ :host .tooltip.top-left,
333
+ wm-toggletip .toggletip.top-left,
334
+ wm-toggletip .tooltip.top-left {
335
+ bottom: 40px;
336
+ right: 0px;
337
+ }
338
+ :host .sr-only,
339
+ wm-toggletip .sr-only {
340
+ position: absolute !important;
341
+ width: 1px !important;
342
+ height: 1px !important;
343
+ padding: 0 !important;
344
+ border: 0 !important;
345
+ overflow: hidden !important;
346
+ clip: rect(0, 0, 0, 0) !important;
347
+ clip-path: inset(50%) !important;
348
+ white-space: nowrap !important;
349
+ margin: -1px !important;
350
+ }
@@ -0,0 +1,217 @@
1
+ import { Component, Host, h, Element, Prop, State, Listen } from "@stencil/core";
2
+ import { shouldOpenUp, shouldOpenDown, shouldShiftLeft, shouldShiftRight, intl } from "../../global/functions";
3
+ export class Toggletip {
4
+ constructor() {
5
+ this.tooltipPosition = "bottom-right";
6
+ this.isOpen = false;
7
+ this.isTabbing = false;
8
+ this.tooltipMessage = intl.formatMessage({
9
+ id: "toggletip.moreInformation",
10
+ defaultMessage: "More information",
11
+ });
12
+ }
13
+ componentWillLoad() {
14
+ const validTooltipPositions = [
15
+ "top",
16
+ "right",
17
+ "bottom",
18
+ "left",
19
+ "top-right",
20
+ "top-left",
21
+ "bottom-right",
22
+ "bottom-left",
23
+ ];
24
+ if (!this.label) {
25
+ console.error("wm-toggletip must have a label property");
26
+ }
27
+ if (!this.tooltipText) {
28
+ console.error("wm-toggletip must have a tooltip-text property");
29
+ }
30
+ if (!validTooltipPositions.includes(this.tooltipPosition)) {
31
+ console.error(`wm-toggletip property tooltip-position has an invalid value of "${this.tooltipPosition}", make sure to use one of the following values: ${validTooltipPositions}`);
32
+ }
33
+ this.el.focus = function () {
34
+ this.shadowRoot.querySelector("button").focus();
35
+ };
36
+ }
37
+ handleKeydown(ev) {
38
+ switch (ev.key) {
39
+ case "Escape":
40
+ ev.preventDefault();
41
+ if (this.isOpen) {
42
+ ev.stopPropagation(); // prevent closing modal if within one
43
+ this.close();
44
+ }
45
+ break;
46
+ case "Tab":
47
+ if (this.isOpen) {
48
+ this.close();
49
+ }
50
+ }
51
+ }
52
+ toggleTabbingOn() {
53
+ this.isTabbing = true;
54
+ }
55
+ toggleTabbingOff() {
56
+ this.isTabbing = false;
57
+ }
58
+ handleClick(ev) {
59
+ if (this.isOpen) {
60
+ if (ev.target === this.el || this.el.contains(ev.target)) {
61
+ // Re-announce if clicking any part of the component while open
62
+ this.announceToggletip();
63
+ }
64
+ else {
65
+ this.close();
66
+ }
67
+ }
68
+ }
69
+ open() {
70
+ this.isOpen = true;
71
+ this.announceToggletip();
72
+ }
73
+ close() {
74
+ this.isOpen = false;
75
+ this.hideTooltip();
76
+ }
77
+ showTooltip() {
78
+ // Because a :hover pseudoclass would apply before the tooltip is repositioned, hover styles must be applied through a class
79
+ // Otherwise, the tooltip will flash on-screen and possibly create scrollbars
80
+ this.setToggletipPosition();
81
+ this.tooltipEl.classList.add("hover");
82
+ }
83
+ hideTooltip() {
84
+ this.tooltipEl.classList.remove("hover");
85
+ }
86
+ announceToggletip() {
87
+ this.liveRegionEl.innerHTML = "";
88
+ setTimeout(() => {
89
+ this.liveRegionEl.innerHTML = this.tooltipText;
90
+ }, 10);
91
+ }
92
+ setToggletipPosition() {
93
+ // Vertical
94
+ if (this.tooltipPosition.includes("bottom") && shouldOpenUp(this.el, this.toggletipEl)) {
95
+ this.tooltipPosition = this.tooltipPosition.replace("bottom", "top");
96
+ }
97
+ else if (this.tooltipPosition.includes("top") && shouldOpenDown(this.el, this.toggletipEl)) {
98
+ this.tooltipPosition = this.tooltipPosition.replace("top", "bottom");
99
+ }
100
+ // Horizontal
101
+ if (this.tooltipPosition.includes("left") && shouldShiftRight(this.el, this.toggletipEl)) {
102
+ this.tooltipPosition = this.tooltipPosition.replace("left", "right");
103
+ }
104
+ else if (this.tooltipPosition.includes("right") && shouldShiftLeft(this.el, this.toggletipEl)) {
105
+ this.tooltipPosition = this.tooltipPosition.replace("right", "left");
106
+ }
107
+ }
108
+ render() {
109
+ return (h(Host, null,
110
+ h("button", { class: `button ${this.isTabbing ? "user-is-tabbing" : ""}`, type: "button", "aria-label": this.label, onClick: () => {
111
+ this.setToggletipPosition();
112
+ this.open();
113
+ },
114
+ // In order to position the tooltip identically to the toggletip, it's presence is determined by these four events
115
+ onMouseEnter: () => this.showTooltip(), onMouseLeave: () => this.hideTooltip(), onFocus: () => this.showTooltip(), onBlur: () => this.hideTooltip() }),
116
+ h("div", { ref: (el) => (this.tooltipEl = el), class: `tooltip ${this.tooltipPosition} ${this.isOpen ? "hidden" : ""}`, "aria-hidden": "true" }, this.tooltipMessage),
117
+ h("div", { ref: (el) => (this.toggletipEl = el), class: `toggletip ${this.isOpen ? "" : "hidden"} ${this.tooltipPosition}` }, this.tooltipText),
118
+ h("div", { ref: (el) => (this.liveRegionEl = el), class: "live-region sr-only", role: "status", "aria-live": "polite", "aria-atomic": "true" })));
119
+ }
120
+ static get is() { return "wm-toggletip"; }
121
+ static get encapsulation() { return "shadow"; }
122
+ static get originalStyleUrls() { return {
123
+ "$": ["wm-toggletip.scss"]
124
+ }; }
125
+ static get styleUrls() { return {
126
+ "$": ["wm-toggletip.css"]
127
+ }; }
128
+ static get properties() { return {
129
+ "label": {
130
+ "type": "string",
131
+ "mutable": false,
132
+ "complexType": {
133
+ "original": "string",
134
+ "resolved": "string | undefined",
135
+ "references": {}
136
+ },
137
+ "required": false,
138
+ "optional": true,
139
+ "docs": {
140
+ "tags": [],
141
+ "text": ""
142
+ },
143
+ "attribute": "label",
144
+ "reflect": false
145
+ },
146
+ "tooltipText": {
147
+ "type": "string",
148
+ "mutable": false,
149
+ "complexType": {
150
+ "original": "string",
151
+ "resolved": "string | undefined",
152
+ "references": {}
153
+ },
154
+ "required": false,
155
+ "optional": true,
156
+ "docs": {
157
+ "tags": [],
158
+ "text": ""
159
+ },
160
+ "attribute": "tooltip-text",
161
+ "reflect": false
162
+ },
163
+ "tooltipPosition": {
164
+ "type": "string",
165
+ "mutable": true,
166
+ "complexType": {
167
+ "original": "TooltipPosition",
168
+ "resolved": "\"bottom\" | \"bottom-left\" | \"bottom-right\" | \"left\" | \"right\" | \"top\" | \"top-left\" | \"top-right\"",
169
+ "references": {
170
+ "TooltipPosition": {
171
+ "location": "import",
172
+ "path": "../../global/interfaces"
173
+ }
174
+ }
175
+ },
176
+ "required": false,
177
+ "optional": false,
178
+ "docs": {
179
+ "tags": [],
180
+ "text": ""
181
+ },
182
+ "attribute": "tooltip-position",
183
+ "reflect": true,
184
+ "defaultValue": "\"bottom-right\""
185
+ }
186
+ }; }
187
+ static get states() { return {
188
+ "isOpen": {},
189
+ "isTabbing": {}
190
+ }; }
191
+ static get elementRef() { return "el"; }
192
+ static get listeners() { return [{
193
+ "name": "keydown",
194
+ "method": "handleKeydown",
195
+ "target": undefined,
196
+ "capture": false,
197
+ "passive": false
198
+ }, {
199
+ "name": "wmUserIsTabbing",
200
+ "method": "toggleTabbingOn",
201
+ "target": "window",
202
+ "capture": false,
203
+ "passive": false
204
+ }, {
205
+ "name": "wmUserIsNotTabbing",
206
+ "method": "toggleTabbingOff",
207
+ "target": "window",
208
+ "capture": false,
209
+ "passive": false
210
+ }, {
211
+ "name": "click",
212
+ "method": "handleClick",
213
+ "target": "document",
214
+ "capture": false,
215
+ "passive": false
216
+ }]; }
217
+ }