@watermarkinsights/ripple 3.27.0 → 3.27.1

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 (277) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/{chartFunctions-b2e0cb4e.js → chartFunctions-42cfb4d3.js} +596 -596
  3. package/dist/cjs/{functions-9807717e.js → functions-85c3c557.js} +498 -498
  4. package/dist/cjs/{global-42a24725.js → global-9982752f.js} +72 -72
  5. package/dist/cjs/{http-service-9e8c4dd5.js → http-service-494d81de.js} +49 -49
  6. package/dist/cjs/{interfaces-30a74c1f.js → interfaces-a3338581.js} +29 -29
  7. package/dist/cjs/{intl-526c75ec.js → intl-1c36fe38.js} +131 -131
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/priv-chart-popover.cjs.entry.js +91 -91
  10. package/dist/cjs/priv-datepicker.cjs.entry.js +657 -657
  11. package/dist/cjs/priv-navigator-button.cjs.entry.js +19 -19
  12. package/dist/cjs/priv-navigator-item.cjs.entry.js +23 -23
  13. package/dist/cjs/ripple.cjs.js +1 -1
  14. package/dist/cjs/wm-action-menu_2.cjs.entry.js +334 -334
  15. package/dist/cjs/wm-button.cjs.entry.js +189 -189
  16. package/dist/cjs/wm-chart-slice.cjs.entry.js +18 -18
  17. package/dist/cjs/wm-chart.cjs.entry.js +183 -183
  18. package/dist/cjs/wm-datepicker.cjs.entry.js +263 -263
  19. package/dist/cjs/wm-file-list.cjs.entry.js +35 -35
  20. package/dist/cjs/wm-file.cjs.entry.js +181 -181
  21. package/dist/cjs/wm-input.cjs.entry.js +136 -136
  22. package/dist/cjs/wm-modal-footer.cjs.entry.js +33 -33
  23. package/dist/cjs/wm-modal-header.cjs.entry.js +32 -32
  24. package/dist/cjs/wm-modal.cjs.entry.js +152 -152
  25. package/dist/cjs/wm-navigation_3.cjs.entry.js +186 -186
  26. package/dist/cjs/wm-navigator.cjs.entry.js +264 -264
  27. package/dist/cjs/wm-network-uploader.cjs.entry.js +465 -465
  28. package/dist/cjs/wm-option_2.cjs.entry.js +768 -768
  29. package/dist/cjs/wm-pagination.cjs.entry.js +179 -179
  30. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +155 -155
  31. package/dist/cjs/wm-search.cjs.entry.js +184 -184
  32. package/dist/cjs/wm-snackbar.cjs.entry.js +134 -134
  33. package/dist/cjs/wm-tab-item_3.cjs.entry.js +264 -264
  34. package/dist/cjs/wm-tag-input-row.cjs.entry.js +14 -14
  35. package/dist/cjs/wm-tag-input.cjs.entry.js +948 -941
  36. package/dist/cjs/wm-timepicker.cjs.entry.js +385 -385
  37. package/dist/cjs/wm-toggletip.cjs.entry.js +120 -120
  38. package/dist/cjs/wm-uploader.cjs.entry.js +441 -441
  39. package/dist/cjs/wm-wrapper.cjs.entry.js +12 -12
  40. package/dist/collection/components/charts/chartFunctions.js +562 -562
  41. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +267 -267
  42. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +125 -125
  43. package/dist/collection/components/charts/wm-chart/wm-chart.js +450 -450
  44. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +207 -207
  45. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +143 -143
  46. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +121 -121
  47. package/dist/collection/components/wm-action-menu/wm-action-menu.js +472 -472
  48. package/dist/collection/components/wm-button/wm-button.js +486 -486
  49. package/dist/collection/components/wm-datepicker/priv-datepicker/priv-datepicker.js +983 -983
  50. package/dist/collection/components/wm-datepicker/wm-datepicker.js +491 -491
  51. package/dist/collection/components/wm-file/wm-file.js +313 -313
  52. package/dist/collection/components/wm-file-list/wm-file-list.js +152 -152
  53. package/dist/collection/components/wm-input/wm-input.js +509 -509
  54. package/dist/collection/components/wm-menuitem/wm-menuitem.js +454 -454
  55. package/dist/collection/components/wm-modal/wm-modal-footer.js +138 -138
  56. package/dist/collection/components/wm-modal/wm-modal-header.js +82 -82
  57. package/dist/collection/components/wm-modal/wm-modal.js +462 -462
  58. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +119 -119
  59. package/dist/collection/components/wm-navigation/wm-navigation-item.js +130 -130
  60. package/dist/collection/components/wm-navigation/wm-navigation.js +217 -217
  61. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +106 -106
  62. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +123 -123
  63. package/dist/collection/components/wm-navigator/wm-navigator.js +467 -467
  64. package/dist/collection/components/wm-option/wm-option.js +435 -435
  65. package/dist/collection/components/wm-pagination/wm-pagination.js +362 -362
  66. package/dist/collection/components/wm-search/wm-search.js +439 -439
  67. package/dist/collection/components/wm-select/wm-select.js +1054 -1054
  68. package/dist/collection/components/wm-snackbar/wm-snackbar.js +267 -267
  69. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +211 -211
  70. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +327 -327
  71. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +108 -108
  72. package/dist/collection/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.js +122 -122
  73. package/dist/collection/components/wm-tag-input/wm-tag-input.css +21 -17
  74. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1302 -1295
  75. package/dist/collection/components/wm-timepicker/wm-timepicker.js +605 -605
  76. package/dist/collection/components/wm-toggletip/wm-toggletip.js +243 -243
  77. package/dist/collection/components/wm-uploader/wm-network-uploader/wm-network-uploader.js +772 -772
  78. package/dist/collection/components/wm-uploader/wm-uploader.js +964 -964
  79. package/dist/collection/components/wm-wrapper/wm-wrapper.js +28 -28
  80. package/dist/collection/dev/scripts.js +20 -20
  81. package/dist/collection/global/__mocks__/functions.js +6 -6
  82. package/dist/collection/global/functions.js +541 -541
  83. package/dist/collection/global/global.js +79 -79
  84. package/dist/collection/global/interfaces.js +49 -49
  85. package/dist/collection/global/intl.js +132 -132
  86. package/dist/collection/global/services/__mocks__/http-service.js +130 -130
  87. package/dist/collection/global/services/http-service.js +50 -50
  88. package/dist/collection/lang/lang.js +5 -5
  89. package/dist/collection/lang/missing.js +43 -43
  90. package/dist/collection/lang/piglatin.js +93 -93
  91. package/dist/esm/{chartFunctions-dd9eb9ac.js → chartFunctions-0b53b301.js} +596 -596
  92. package/dist/esm/{functions-f32b1ca4.js → functions-cbb19d50.js} +498 -498
  93. package/dist/esm/{global-7ee0d78d.js → global-2c7bbfe6.js} +72 -72
  94. package/dist/esm/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +49 -49
  95. package/dist/esm/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +29 -29
  96. package/dist/esm/{intl-d101e1a9.js → intl-ffbca53d.js} +131 -131
  97. package/dist/esm/loader.js +1 -1
  98. package/dist/esm/polyfills/core-js.js +0 -0
  99. package/dist/esm/polyfills/dom.js +0 -0
  100. package/dist/esm/polyfills/es5-html-element.js +0 -0
  101. package/dist/esm/polyfills/index.js +0 -0
  102. package/dist/esm/polyfills/system.js +0 -0
  103. package/dist/esm/priv-chart-popover.entry.js +91 -91
  104. package/dist/esm/priv-datepicker.entry.js +657 -657
  105. package/dist/esm/priv-navigator-button.entry.js +19 -19
  106. package/dist/esm/priv-navigator-item.entry.js +23 -23
  107. package/dist/esm/ripple.js +1 -1
  108. package/dist/esm/wm-action-menu_2.entry.js +334 -334
  109. package/dist/esm/wm-button.entry.js +189 -189
  110. package/dist/esm/wm-chart-slice.entry.js +18 -18
  111. package/dist/esm/wm-chart.entry.js +183 -183
  112. package/dist/esm/wm-datepicker.entry.js +263 -263
  113. package/dist/esm/wm-file-list.entry.js +35 -35
  114. package/dist/esm/wm-file.entry.js +181 -181
  115. package/dist/esm/wm-input.entry.js +136 -136
  116. package/dist/esm/wm-modal-footer.entry.js +33 -33
  117. package/dist/esm/wm-modal-header.entry.js +32 -32
  118. package/dist/esm/wm-modal.entry.js +152 -152
  119. package/dist/esm/wm-navigation_3.entry.js +186 -186
  120. package/dist/esm/wm-navigator.entry.js +264 -264
  121. package/dist/esm/wm-network-uploader.entry.js +465 -465
  122. package/dist/esm/wm-option_2.entry.js +768 -768
  123. package/dist/esm/wm-pagination.entry.js +179 -179
  124. package/dist/esm/wm-progress-indicator_3.entry.js +155 -155
  125. package/dist/esm/wm-search.entry.js +184 -184
  126. package/dist/esm/wm-snackbar.entry.js +134 -134
  127. package/dist/esm/wm-tab-item_3.entry.js +264 -264
  128. package/dist/esm/wm-tag-input-row.entry.js +14 -14
  129. package/dist/esm/wm-tag-input.entry.js +948 -941
  130. package/dist/esm/wm-timepicker.entry.js +385 -385
  131. package/dist/esm/wm-toggletip.entry.js +120 -120
  132. package/dist/esm/wm-uploader.entry.js +441 -441
  133. package/dist/esm/wm-wrapper.entry.js +12 -12
  134. package/dist/esm-es5/{chartFunctions-dd9eb9ac.js → chartFunctions-0b53b301.js} +1 -1
  135. package/dist/esm-es5/{global-7ee0d78d.js → global-2c7bbfe6.js} +1 -1
  136. package/dist/esm-es5/{intl-d101e1a9.js → intl-ffbca53d.js} +1 -1
  137. package/dist/esm-es5/loader.js +1 -1
  138. package/dist/esm-es5/priv-chart-popover.entry.js +1 -1
  139. package/dist/esm-es5/priv-datepicker.entry.js +1 -1
  140. package/dist/esm-es5/ripple.js +1 -1
  141. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  142. package/dist/esm-es5/wm-button.entry.js +1 -1
  143. package/dist/esm-es5/wm-chart.entry.js +1 -1
  144. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  145. package/dist/esm-es5/wm-file.entry.js +1 -1
  146. package/dist/esm-es5/wm-input.entry.js +1 -1
  147. package/dist/esm-es5/wm-modal-header.entry.js +1 -1
  148. package/dist/esm-es5/wm-modal.entry.js +1 -1
  149. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  150. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  151. package/dist/esm-es5/wm-network-uploader.entry.js +1 -1
  152. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  153. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  154. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  155. package/dist/esm-es5/wm-search.entry.js +1 -1
  156. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  157. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  158. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  159. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  160. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  161. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  162. package/dist/ripple/{p-725c14b0.system.entry.js → p-00022d17.system.entry.js} +1 -1
  163. package/dist/ripple/{p-b97de06f.system.entry.js → p-0450cdbe.system.entry.js} +1 -1
  164. package/dist/ripple/{p-bfe1062d.entry.js → p-05a17658.entry.js} +1 -1
  165. package/dist/ripple/p-0b6a7b77.system.entry.js +1 -0
  166. package/dist/ripple/{p-b6bf2866.entry.js → p-0e789be7.entry.js} +1 -1
  167. package/dist/ripple/{p-b617b64f.system.entry.js → p-15779c22.system.entry.js} +1 -1
  168. package/dist/ripple/{p-04faca6b.entry.js → p-17487f1b.entry.js} +1 -1
  169. package/dist/ripple/{p-122da0d1.system.entry.js → p-197c83de.system.entry.js} +1 -1
  170. package/dist/ripple/{p-11d98b00.system.entry.js → p-1bad4efe.system.entry.js} +1 -1
  171. package/dist/ripple/{p-252ba295.system.entry.js → p-2ff923ee.system.entry.js} +1 -1
  172. package/dist/ripple/{p-a6afe65a.entry.js → p-31712996.entry.js} +1 -1
  173. package/dist/ripple/{p-f69276d5.system.entry.js → p-31c18f5e.system.entry.js} +1 -1
  174. package/dist/ripple/{p-df28f438.system.js → p-32944b70.system.js} +1 -1
  175. package/dist/ripple/{p-73d277ba.system.entry.js → p-36effc40.system.entry.js} +1 -1
  176. package/dist/ripple/{p-0be94e77.entry.js → p-3807bcae.entry.js} +1 -1
  177. package/dist/ripple/{p-88d17f6b.system.entry.js → p-3aa48fad.system.entry.js} +1 -1
  178. package/dist/ripple/{p-82a97531.system.entry.js → p-419f133c.system.entry.js} +1 -1
  179. package/dist/ripple/{p-13ec8ac0.entry.js → p-438a1e8e.entry.js} +1 -1
  180. package/dist/ripple/{p-19689aac.js → p-4698b365.js} +1 -1
  181. package/dist/ripple/{p-f8d45250.system.entry.js → p-54086f7b.system.entry.js} +1 -1
  182. package/dist/ripple/{p-47f53321.entry.js → p-5497694c.entry.js} +1 -1
  183. package/dist/ripple/{p-fb370a69.entry.js → p-58fbf116.entry.js} +1 -1
  184. package/dist/ripple/{p-14dfc4e7.entry.js → p-65a741c1.entry.js} +1 -1
  185. package/dist/ripple/{p-ac63b3aa.entry.js → p-7e74274b.entry.js} +1 -1
  186. package/dist/ripple/{p-81752607.system.js → p-81ad3fe5.system.js} +1 -1
  187. package/dist/ripple/{p-f3e42327.system.entry.js → p-89db9c27.system.entry.js} +1 -1
  188. package/dist/ripple/{p-4753fbfc.system.entry.js → p-947f01e2.system.entry.js} +1 -1
  189. package/dist/ripple/{p-3aee75e7.entry.js → p-978429f9.entry.js} +1 -1
  190. package/dist/ripple/{p-2c8fd902.system.entry.js → p-97d5b4bd.system.entry.js} +1 -1
  191. package/dist/ripple/{p-67c0ad56.system.entry.js → p-9d6a574b.system.entry.js} +1 -1
  192. package/dist/ripple/{p-c545fe1c.entry.js → p-a3ba2bdd.entry.js} +1 -1
  193. package/dist/ripple/{p-c7567fd3.entry.js → p-a42f5231.entry.js} +1 -1
  194. package/dist/ripple/p-a51aec3f.entry.js +1 -0
  195. package/dist/ripple/{p-b831988d.entry.js → p-a5b86b47.entry.js} +1 -1
  196. package/dist/ripple/{p-4cadf985.entry.js → p-a90b8a08.entry.js} +1 -1
  197. package/dist/ripple/{p-d9b66dca.system.entry.js → p-aabe172c.system.entry.js} +1 -1
  198. package/dist/ripple/{p-69121ad1.entry.js → p-ab2a0aee.entry.js} +1 -1
  199. package/dist/ripple/{p-5fb0aa58.js → p-aed93a25.js} +1 -1
  200. package/dist/ripple/{p-f39ee84b.entry.js → p-b2d75e7d.entry.js} +1 -1
  201. package/dist/ripple/{p-19b897ce.js → p-b410c675.js} +1 -1
  202. package/dist/ripple/{p-4809e419.system.entry.js → p-b6f558f7.system.entry.js} +1 -1
  203. package/dist/ripple/p-bb048fe7.entry.js +1 -0
  204. package/dist/ripple/{p-2805fed6.system.entry.js → p-bced37cf.system.entry.js} +1 -1
  205. package/dist/ripple/{p-c9a1834d.system.entry.js → p-bd0c1e7c.system.entry.js} +1 -1
  206. package/dist/ripple/{p-89f1991f.entry.js → p-c0e183f4.entry.js} +1 -1
  207. package/dist/ripple/{p-7eca18bd.system.entry.js → p-c27eda00.system.entry.js} +1 -1
  208. package/dist/ripple/{p-894bc6c4.system.entry.js → p-cd3e0b8b.system.entry.js} +1 -1
  209. package/dist/ripple/{p-f6b2e4ac.system.js → p-d1af63b5.system.js} +1 -1
  210. package/dist/ripple/{p-30572b71.system.js → p-d41ba263.system.js} +1 -1
  211. package/dist/ripple/{p-db7e6e89.entry.js → p-d8993992.entry.js} +1 -1
  212. package/dist/ripple/{p-f13b239c.system.entry.js → p-da525ed1.system.entry.js} +1 -1
  213. package/dist/ripple/{p-33af1eee.entry.js → p-e6f46289.entry.js} +1 -1
  214. package/dist/ripple/{p-e928f350.entry.js → p-fc967b2c.entry.js} +1 -1
  215. package/dist/ripple/ripple.esm.js +1 -1
  216. package/dist/ripple/ripple.js +1 -1
  217. package/dist/types/components/charts/chartFunctions.d.ts +37 -37
  218. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +27 -27
  219. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +11 -11
  220. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +47 -47
  221. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +29 -29
  222. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +20 -20
  223. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +10 -10
  224. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +49 -49
  225. package/dist/types/components/wm-button/wm-button.d.ts +44 -44
  226. package/dist/types/components/wm-datepicker/priv-datepicker/priv-datepicker.d.ts +80 -80
  227. package/dist/types/components/wm-datepicker/wm-datepicker.d.ts +42 -42
  228. package/dist/types/components/wm-file/wm-file.d.ts +40 -40
  229. package/dist/types/components/wm-file-list/wm-file-list.d.ts +16 -16
  230. package/dist/types/components/wm-input/wm-input.d.ts +57 -57
  231. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +34 -34
  232. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +14 -14
  233. package/dist/types/components/wm-modal/wm-modal-header.d.ts +10 -10
  234. package/dist/types/components/wm-modal/wm-modal.d.ts +40 -40
  235. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +16 -16
  236. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +13 -13
  237. package/dist/types/components/wm-navigation/wm-navigation.d.ts +26 -26
  238. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +10 -10
  239. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +13 -13
  240. package/dist/types/components/wm-navigator/wm-navigator.d.ts +61 -61
  241. package/dist/types/components/wm-option/wm-option.d.ts +34 -34
  242. package/dist/types/components/wm-pagination/wm-pagination.d.ts +32 -32
  243. package/dist/types/components/wm-search/wm-search.d.ts +77 -77
  244. package/dist/types/components/wm-select/wm-select.d.ts +101 -101
  245. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +30 -30
  246. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +37 -37
  247. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +52 -52
  248. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +20 -20
  249. package/dist/types/components/wm-tag-input/wm-tag-input-row/wm-tag-input-row.d.ts +11 -11
  250. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +137 -136
  251. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +62 -62
  252. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +25 -25
  253. package/dist/types/components/wm-uploader/wm-network-uploader/wm-network-uploader.d.ts +85 -85
  254. package/dist/types/components/wm-uploader/wm-uploader.d.ts +99 -99
  255. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +7 -7
  256. package/dist/types/components.d.ts +27 -27
  257. package/dist/types/global/__mocks__/functions.d.ts +6 -6
  258. package/dist/types/global/functions.d.ts +40 -40
  259. package/dist/types/global/global.d.ts +1 -1
  260. package/dist/types/global/interfaces.d.ts +74 -74
  261. package/dist/types/global/intl.d.ts +29 -29
  262. package/dist/types/global/services/__mocks__/http-service.d.ts +6 -6
  263. package/dist/types/global/services/http-service.d.ts +4 -4
  264. package/dist/types/lang/lang.d.ts +5 -5
  265. package/package.json +46 -46
  266. package/dist/ripple/p-37de8e2f.entry.js +0 -1
  267. package/dist/ripple/p-b378e064.system.entry.js +0 -1
  268. package/dist/ripple/p-d2037549.entry.js +0 -1
  269. /package/dist/esm-es5/{functions-f32b1ca4.js → functions-cbb19d50.js} +0 -0
  270. /package/dist/esm-es5/{http-service-5d037e16.js → http-service-3dc3b3e7.js} +0 -0
  271. /package/dist/esm-es5/{interfaces-61c6305b.js → interfaces-2b97fab2.js} +0 -0
  272. /package/dist/ripple/{p-888bec42.js → p-43f1298b.js} +0 -0
  273. /package/dist/ripple/{p-cfa80f5b.js → p-91480a89.js} +0 -0
  274. /package/dist/ripple/{p-313b6073.system.js → p-9d02957d.system.js} +0 -0
  275. /package/dist/ripple/{p-9eb5a71e.system.js → p-b267e710.system.js} +0 -0
  276. /package/dist/ripple/{p-08b7ec08.system.js → p-f5df5903.system.js} +0 -0
  277. /package/dist/ripple/{p-a6d6eae7.js → p-fd8070fb.js} +0 -0
@@ -1,467 +1,467 @@
1
- import { h, Host } from "@stencil/core";
2
- import { getWmMode } from "../../global/interfaces";
3
- import { intl, snakeCaseToCamelCase, getNewIndexToFocus } from "../../global/functions";
4
- import { getRequest } from "../../global/services/http-service";
5
- export class Navigator {
6
- constructor() {
7
- // comp can check whether the info was successfully retrieved with:
8
- this.retrievedInfo = !this.loadFromUserinfo; // when in endpoint mode, only render after get request completed
9
- // used either way to store the products
10
- this.parsedProducts = [];
11
- this.openRight = false; // whether the menu should open on the right side
12
- this.userName = undefined;
13
- this.email = undefined;
14
- this.authType = 1;
15
- this.connectionName = undefined;
16
- this.logoutUrl = undefined;
17
- this.products = undefined;
18
- this.loadFromUserinfo = false;
19
- this.isOpen = false;
20
- this.isTabbing = false;
21
- this.itemIndexToFocus = 0;
22
- }
23
- async componentWillLoad() {
24
- if (!this.userName) {
25
- console.error("wm-navigator: user-name is a required property.");
26
- }
27
- await this.parseData();
28
- this.setFocusIndex();
29
- }
30
- // async because we need the http request to complete before proceeding
31
- async parseData() {
32
- if (!!this.loadFromUserinfo) {
33
- await getRequest("/platform/navigator/userinfo")
34
- .then((response) => {
35
- this.email = response.email;
36
- this.currentProductId = response.current_product_id;
37
- this.parsedProducts = this.productKeysToCamelCase(response.products);
38
- this.logoutUrl = this.logoutUrl ? this.logoutUrl : response.logout_url;
39
- this.connectionName = this.connectionName ? this.connectionName : response.connection_name;
40
- if (!!this.email && !!this.currentProductId) {
41
- this.retrievedInfo = true;
42
- }
43
- })
44
- .catch((errStatus) => {
45
- console.error(errStatus);
46
- });
47
- }
48
- else {
49
- this.currentProductId = getWmMode(this.el);
50
- if (!!this.products) {
51
- if (typeof this.products === "string") {
52
- this.parsedProducts = JSON.parse(this.products);
53
- }
54
- else {
55
- this.parsedProducts = this.products;
56
- }
57
- this.parsedProducts = this.productKeysToCamelCase(this.parsedProducts);
58
- }
59
- }
60
- // products is initialized as empty array in case nothing is passed
61
- this.parsedProducts.sort((a, b) => (a.name < b.name ? -1 : 1));
62
- }
63
- productKeysToCamelCase(products) {
64
- products = products.map((product) => {
65
- const keys = Object.keys(product);
66
- let newProduct = {};
67
- keys.forEach((key) => {
68
- newProduct[snakeCaseToCamelCase(key)] = product[key];
69
- });
70
- return newProduct;
71
- });
72
- return products;
73
- }
74
- /**
75
- * Sets index to focus on open to the selected product. This index resets it when the menu closes.
76
- */
77
- setFocusIndex() {
78
- if (this.parsedProducts.length > 1) {
79
- const currentProduct = this.getProduct(this.currentProductId);
80
- if (currentProduct) {
81
- this.itemIndexToFocus = this.parsedProducts.indexOf(currentProduct);
82
- }
83
- }
84
- }
85
- toggleTabbingOn() {
86
- this.isTabbing = true;
87
- }
88
- toggleTabbingOff() {
89
- this.isTabbing = false;
90
- }
91
- handleKeys(ev) {
92
- switch (ev.key) {
93
- case "Escape":
94
- ev.preventDefault();
95
- this.closeMenu();
96
- break;
97
- case "ArrowDown":
98
- case "ArrowUp":
99
- ev.preventDefault();
100
- if (!this.isOpen) {
101
- this.itemIndexToFocus = getNewIndexToFocus(this.itemIndexToFocus, ev.key, this.navigatorItems.length);
102
- this.openMenu();
103
- }
104
- break;
105
- }
106
- }
107
- handleKeydown(ev) {
108
- const key = ev.detail.key;
109
- const item = ev.detail.navItem;
110
- switch (key) {
111
- case "Tab":
112
- this.closeMenu();
113
- break;
114
- case "Enter":
115
- case " ":
116
- item.click();
117
- break;
118
- case "ArrowDown":
119
- case "ArrowUp":
120
- const oldIndex = this.itemIndexToFocus;
121
- this.itemIndexToFocus = getNewIndexToFocus(this.itemIndexToFocus, key, this.navigatorItems.length);
122
- this.focusItem();
123
- this.unfocusItem(oldIndex);
124
- break;
125
- }
126
- }
127
- handleClick(ev) {
128
- const isElOrChild = ev.target === this.el || this.el.contains(ev.target);
129
- if (!isElOrChild && this.isOpen) {
130
- this.closeMenu();
131
- }
132
- }
133
- handleButtonClick() {
134
- this.isOpen ? this.closeMenu() : this.openMenu();
135
- }
136
- openMenu() {
137
- if (this.wrapperEl) {
138
- const wrapperWidth = this.wrapperEl.clientWidth;
139
- const spaceLeft = this.el.getBoundingClientRect().left;
140
- const spaceRight = document.documentElement.clientWidth - this.el.getBoundingClientRect().right;
141
- this.openRight = wrapperWidth > spaceLeft && spaceRight > spaceLeft;
142
- }
143
- this.isOpen = true;
144
- this.focusItem();
145
- }
146
- closeMenu() {
147
- this.isOpen = false;
148
- this.buttonFocusHandler();
149
- this.unfocusItem(this.itemIndexToFocus);
150
- this.setFocusIndex();
151
- }
152
- focusItem() {
153
- const newSelection = this.navigatorItems[this.itemIndexToFocus];
154
- newSelection.tabIndex = 0;
155
- newSelection.focused = true;
156
- window.requestAnimationFrame(() => newSelection.focus());
157
- }
158
- unfocusItem(index) {
159
- const oldSelection = this.navigatorItems[index];
160
- oldSelection.tabIndex = -1;
161
- oldSelection.focused = false;
162
- }
163
- buttonFocusHandler() {
164
- const hostButton = this.el.shadowRoot.querySelector("priv-navigator-button");
165
- const button = hostButton.shadowRoot.querySelector("button");
166
- window.requestAnimationFrame(() => button.focus());
167
- }
168
- /**
169
- * HELPERS FOR RENDER
170
- */
171
- renderUserInfo() {
172
- return (h("div", { class: "user", id: "wm-nav-user", "aria-label": intl.formatMessage({
173
- id: "navigator.userinfoLabel",
174
- defaultMessage: "for {name}, email {email}",
175
- }, { name: this.userName, email: this.email }) }, h("p", null, this.userName), h("p", null, this.email)));
176
- }
177
- setAltText() {
178
- if (this.parsedProducts.length > 1) {
179
- return intl.formatMessage({
180
- id: "navigator.userinfoAndProductNavigator",
181
- defaultMessage: "User information and product navigator",
182
- });
183
- }
184
- else {
185
- return intl.formatMessage({
186
- id: "navigator.userinfo",
187
- defaultMessage: "User information",
188
- });
189
- }
190
- }
191
- renderHeading() {
192
- return (h("h2", null, intl.formatMessage({
193
- id: "navigator.watermarkApps",
194
- defaultMessage: "Watermark Apps",
195
- description: "Applications made by Watermark Insights",
196
- })));
197
- }
198
- renderList() {
199
- return (h("ul", { role: "listbox", "aria-label": `${intl.formatMessage({
200
- id: "navigator.WatermarkAppNavigation",
201
- defaultMessage: "Watermark App Navigation",
202
- description: "list of applications by Watermark Insights",
203
- })}`, "aria-describedby": "wm-nav-user" }, this.parsedProducts.length > 1 && this.renderProductOptions(), this.renderLogoutOption()));
204
- }
205
- renderProductOptions() {
206
- return this.parsedProducts.map((product) => {
207
- let name, icon, isSelected, clickRedirect;
208
- name = product.name;
209
- icon = product.iconUrl;
210
- clickRedirect = this.setProductOnClick(product.id);
211
- if (!!name && !!icon) {
212
- isSelected = this.currentProductId === product.id;
213
- return (h("priv-navigator-item", { selected: isSelected, id: product.id, onClick: clickRedirect, role: "option", "aria-label": name }, h("img", { src: icon, alt: name })));
214
- }
215
- });
216
- }
217
- setProductOnClick(productId) {
218
- const product = this.getProduct(productId);
219
- if (this.currentProductId === productId) {
220
- return () => { };
221
- }
222
- else if (product) {
223
- if (!!this.loadFromUserinfo || this.authType === 2) {
224
- return () => (window.location.href = product.linkUrl);
225
- }
226
- else if (this.authType === 3) {
227
- // products passed as prop, saml
228
- const connName = this.connectionName ? `/?connection_name=${this.connectionName}` : "";
229
- return () => (window.location.href = product.samlLinkUrl + connName);
230
- }
231
- }
232
- }
233
- renderLogoutOption() {
234
- return (h("priv-navigator-item", { class: "logout", selected: !(this.parsedProducts.length > 1), id: "nav-logout", onClick: this.setLogoutOnclick(), role: "option" }, h("span", { class: "logout" }, intl.formatMessage({
235
- id: "navigator.logout",
236
- defaultMessage: "Log Out",
237
- }))));
238
- }
239
- setLogoutOnclick() {
240
- // The logout item will always emit a custom event on click so that the dev can run any business logic specific to the app on logout (e.g., clearing local storage).
241
- // It will only redirect if the dev has set the logoutUrl. If some sort of custom redirect is needed, the logoutUrl should not be set.
242
- return () => {
243
- this.wmNavigatorLogout.emit();
244
- if (this.logoutUrl) {
245
- window.location.href = this.logoutUrl;
246
- }
247
- };
248
- }
249
- get navigatorItems() {
250
- return Array.from(this.el.shadowRoot.querySelectorAll("priv-navigator-item"));
251
- }
252
- getProduct(id) {
253
- return this.parsedProducts.find((product) => product.id === id);
254
- }
255
- render() {
256
- return this.retrievedInfo ? (h(Host, { class: this.isTabbing ? "user-is-tabbing" : "" }, h("priv-navigator-button", { expanded: this.isOpen, altText: this.setAltText(), isTabbing: this.isTabbing }), h("div", { class: `wrapper ${this.isOpen ? "" : "hide"} ${this.openRight ? "right" : ""}`, ref: (el) => (this.wrapperEl = el) }, this.renderUserInfo(), this.parsedProducts.length > 1 && this.renderHeading(), this.renderList()))) : ("");
257
- }
258
- static get is() { return "wm-navigator"; }
259
- static get encapsulation() { return "shadow"; }
260
- static get delegatesFocus() { return true; }
261
- static get originalStyleUrls() {
262
- return {
263
- "$": ["wm-navigator.scss"]
264
- };
265
- }
266
- static get styleUrls() {
267
- return {
268
- "$": ["wm-navigator.css"]
269
- };
270
- }
271
- static get properties() {
272
- return {
273
- "userName": {
274
- "type": "string",
275
- "mutable": false,
276
- "complexType": {
277
- "original": "string",
278
- "resolved": "string | undefined",
279
- "references": {}
280
- },
281
- "required": false,
282
- "optional": true,
283
- "docs": {
284
- "tags": [],
285
- "text": ""
286
- },
287
- "attribute": "user-name",
288
- "reflect": false
289
- },
290
- "email": {
291
- "type": "string",
292
- "mutable": false,
293
- "complexType": {
294
- "original": "string",
295
- "resolved": "string | undefined",
296
- "references": {}
297
- },
298
- "required": false,
299
- "optional": true,
300
- "docs": {
301
- "tags": [],
302
- "text": ""
303
- },
304
- "attribute": "email",
305
- "reflect": false
306
- },
307
- "authType": {
308
- "type": "number",
309
- "mutable": false,
310
- "complexType": {
311
- "original": "number",
312
- "resolved": "number",
313
- "references": {}
314
- },
315
- "required": false,
316
- "optional": false,
317
- "docs": {
318
- "tags": [],
319
- "text": ""
320
- },
321
- "attribute": "auth-type",
322
- "reflect": false,
323
- "defaultValue": "1"
324
- },
325
- "connectionName": {
326
- "type": "string",
327
- "mutable": false,
328
- "complexType": {
329
- "original": "string",
330
- "resolved": "string | undefined",
331
- "references": {}
332
- },
333
- "required": false,
334
- "optional": true,
335
- "docs": {
336
- "tags": [],
337
- "text": ""
338
- },
339
- "attribute": "connection-name",
340
- "reflect": false
341
- },
342
- "logoutUrl": {
343
- "type": "string",
344
- "mutable": false,
345
- "complexType": {
346
- "original": "string",
347
- "resolved": "string | undefined",
348
- "references": {}
349
- },
350
- "required": false,
351
- "optional": true,
352
- "docs": {
353
- "tags": [],
354
- "text": ""
355
- },
356
- "attribute": "logout-url",
357
- "reflect": false
358
- },
359
- "products": {
360
- "type": "string",
361
- "mutable": false,
362
- "complexType": {
363
- "original": "string | []",
364
- "resolved": "[] | string | undefined",
365
- "references": {}
366
- },
367
- "required": false,
368
- "optional": true,
369
- "docs": {
370
- "tags": [],
371
- "text": ""
372
- },
373
- "attribute": "products",
374
- "reflect": false
375
- },
376
- "loadFromUserinfo": {
377
- "type": "boolean",
378
- "mutable": false,
379
- "complexType": {
380
- "original": "boolean",
381
- "resolved": "boolean",
382
- "references": {}
383
- },
384
- "required": false,
385
- "optional": false,
386
- "docs": {
387
- "tags": [],
388
- "text": ""
389
- },
390
- "attribute": "load-from-userinfo",
391
- "reflect": false,
392
- "defaultValue": "false"
393
- }
394
- };
395
- }
396
- static get states() {
397
- return {
398
- "isOpen": {},
399
- "isTabbing": {},
400
- "itemIndexToFocus": {}
401
- };
402
- }
403
- static get events() {
404
- return [{
405
- "method": "wmNavigatorLogout",
406
- "name": "wmNavigatorLogout",
407
- "bubbles": true,
408
- "cancelable": true,
409
- "composed": true,
410
- "docs": {
411
- "tags": [],
412
- "text": ""
413
- },
414
- "complexType": {
415
- "original": "any",
416
- "resolved": "any",
417
- "references": {}
418
- }
419
- }];
420
- }
421
- static get elementRef() { return "el"; }
422
- static get watchers() {
423
- return [{
424
- "propName": "products",
425
- "methodName": "parseData"
426
- }];
427
- }
428
- static get listeners() {
429
- return [{
430
- "name": "wmUserIsTabbing",
431
- "method": "toggleTabbingOn",
432
- "target": "window",
433
- "capture": false,
434
- "passive": false
435
- }, {
436
- "name": "wmUserIsNotTabbing",
437
- "method": "toggleTabbingOff",
438
- "target": "window",
439
- "capture": false,
440
- "passive": false
441
- }, {
442
- "name": "keydown",
443
- "method": "handleKeys",
444
- "target": undefined,
445
- "capture": false,
446
- "passive": false
447
- }, {
448
- "name": "keydownOnNavItem",
449
- "method": "handleKeydown",
450
- "target": undefined,
451
- "capture": false,
452
- "passive": false
453
- }, {
454
- "name": "click",
455
- "method": "handleClick",
456
- "target": "document",
457
- "capture": false,
458
- "passive": false
459
- }, {
460
- "name": "buttonActivated",
461
- "method": "handleButtonClick",
462
- "target": undefined,
463
- "capture": false,
464
- "passive": false
465
- }];
466
- }
467
- }
1
+ import { h, Host } from "@stencil/core";
2
+ import { getWmMode } from "../../global/interfaces";
3
+ import { intl, snakeCaseToCamelCase, getNewIndexToFocus } from "../../global/functions";
4
+ import { getRequest } from "../../global/services/http-service";
5
+ export class Navigator {
6
+ constructor() {
7
+ // comp can check whether the info was successfully retrieved with:
8
+ this.retrievedInfo = !this.loadFromUserinfo; // when in endpoint mode, only render after get request completed
9
+ // used either way to store the products
10
+ this.parsedProducts = [];
11
+ this.openRight = false; // whether the menu should open on the right side
12
+ this.userName = undefined;
13
+ this.email = undefined;
14
+ this.authType = 1;
15
+ this.connectionName = undefined;
16
+ this.logoutUrl = undefined;
17
+ this.products = undefined;
18
+ this.loadFromUserinfo = false;
19
+ this.isOpen = false;
20
+ this.isTabbing = false;
21
+ this.itemIndexToFocus = 0;
22
+ }
23
+ async componentWillLoad() {
24
+ if (!this.userName) {
25
+ console.error("wm-navigator: user-name is a required property.");
26
+ }
27
+ await this.parseData();
28
+ this.setFocusIndex();
29
+ }
30
+ // async because we need the http request to complete before proceeding
31
+ async parseData() {
32
+ if (!!this.loadFromUserinfo) {
33
+ await getRequest("/platform/navigator/userinfo")
34
+ .then((response) => {
35
+ this.email = response.email;
36
+ this.currentProductId = response.current_product_id;
37
+ this.parsedProducts = this.productKeysToCamelCase(response.products);
38
+ this.logoutUrl = this.logoutUrl ? this.logoutUrl : response.logout_url;
39
+ this.connectionName = this.connectionName ? this.connectionName : response.connection_name;
40
+ if (!!this.email && !!this.currentProductId) {
41
+ this.retrievedInfo = true;
42
+ }
43
+ })
44
+ .catch((errStatus) => {
45
+ console.error(errStatus);
46
+ });
47
+ }
48
+ else {
49
+ this.currentProductId = getWmMode(this.el);
50
+ if (!!this.products) {
51
+ if (typeof this.products === "string") {
52
+ this.parsedProducts = JSON.parse(this.products);
53
+ }
54
+ else {
55
+ this.parsedProducts = this.products;
56
+ }
57
+ this.parsedProducts = this.productKeysToCamelCase(this.parsedProducts);
58
+ }
59
+ }
60
+ // products is initialized as empty array in case nothing is passed
61
+ this.parsedProducts.sort((a, b) => (a.name < b.name ? -1 : 1));
62
+ }
63
+ productKeysToCamelCase(products) {
64
+ products = products.map((product) => {
65
+ const keys = Object.keys(product);
66
+ let newProduct = {};
67
+ keys.forEach((key) => {
68
+ newProduct[snakeCaseToCamelCase(key)] = product[key];
69
+ });
70
+ return newProduct;
71
+ });
72
+ return products;
73
+ }
74
+ /**
75
+ * Sets index to focus on open to the selected product. This index resets it when the menu closes.
76
+ */
77
+ setFocusIndex() {
78
+ if (this.parsedProducts.length > 1) {
79
+ const currentProduct = this.getProduct(this.currentProductId);
80
+ if (currentProduct) {
81
+ this.itemIndexToFocus = this.parsedProducts.indexOf(currentProduct);
82
+ }
83
+ }
84
+ }
85
+ toggleTabbingOn() {
86
+ this.isTabbing = true;
87
+ }
88
+ toggleTabbingOff() {
89
+ this.isTabbing = false;
90
+ }
91
+ handleKeys(ev) {
92
+ switch (ev.key) {
93
+ case "Escape":
94
+ ev.preventDefault();
95
+ this.closeMenu();
96
+ break;
97
+ case "ArrowDown":
98
+ case "ArrowUp":
99
+ ev.preventDefault();
100
+ if (!this.isOpen) {
101
+ this.itemIndexToFocus = getNewIndexToFocus(this.itemIndexToFocus, ev.key, this.navigatorItems.length);
102
+ this.openMenu();
103
+ }
104
+ break;
105
+ }
106
+ }
107
+ handleKeydown(ev) {
108
+ const key = ev.detail.key;
109
+ const item = ev.detail.navItem;
110
+ switch (key) {
111
+ case "Tab":
112
+ this.closeMenu();
113
+ break;
114
+ case "Enter":
115
+ case " ":
116
+ item.click();
117
+ break;
118
+ case "ArrowDown":
119
+ case "ArrowUp":
120
+ const oldIndex = this.itemIndexToFocus;
121
+ this.itemIndexToFocus = getNewIndexToFocus(this.itemIndexToFocus, key, this.navigatorItems.length);
122
+ this.focusItem();
123
+ this.unfocusItem(oldIndex);
124
+ break;
125
+ }
126
+ }
127
+ handleClick(ev) {
128
+ const isElOrChild = ev.target === this.el || this.el.contains(ev.target);
129
+ if (!isElOrChild && this.isOpen) {
130
+ this.closeMenu();
131
+ }
132
+ }
133
+ handleButtonClick() {
134
+ this.isOpen ? this.closeMenu() : this.openMenu();
135
+ }
136
+ openMenu() {
137
+ if (this.wrapperEl) {
138
+ const wrapperWidth = this.wrapperEl.clientWidth;
139
+ const spaceLeft = this.el.getBoundingClientRect().left;
140
+ const spaceRight = document.documentElement.clientWidth - this.el.getBoundingClientRect().right;
141
+ this.openRight = wrapperWidth > spaceLeft && spaceRight > spaceLeft;
142
+ }
143
+ this.isOpen = true;
144
+ this.focusItem();
145
+ }
146
+ closeMenu() {
147
+ this.isOpen = false;
148
+ this.buttonFocusHandler();
149
+ this.unfocusItem(this.itemIndexToFocus);
150
+ this.setFocusIndex();
151
+ }
152
+ focusItem() {
153
+ const newSelection = this.navigatorItems[this.itemIndexToFocus];
154
+ newSelection.tabIndex = 0;
155
+ newSelection.focused = true;
156
+ window.requestAnimationFrame(() => newSelection.focus());
157
+ }
158
+ unfocusItem(index) {
159
+ const oldSelection = this.navigatorItems[index];
160
+ oldSelection.tabIndex = -1;
161
+ oldSelection.focused = false;
162
+ }
163
+ buttonFocusHandler() {
164
+ const hostButton = this.el.shadowRoot.querySelector("priv-navigator-button");
165
+ const button = hostButton.shadowRoot.querySelector("button");
166
+ window.requestAnimationFrame(() => button.focus());
167
+ }
168
+ /**
169
+ * HELPERS FOR RENDER
170
+ */
171
+ renderUserInfo() {
172
+ return (h("div", { class: "user", id: "wm-nav-user", "aria-label": intl.formatMessage({
173
+ id: "navigator.userinfoLabel",
174
+ defaultMessage: "for {name}, email {email}",
175
+ }, { name: this.userName, email: this.email }) }, h("p", null, this.userName), h("p", null, this.email)));
176
+ }
177
+ setAltText() {
178
+ if (this.parsedProducts.length > 1) {
179
+ return intl.formatMessage({
180
+ id: "navigator.userinfoAndProductNavigator",
181
+ defaultMessage: "User information and product navigator",
182
+ });
183
+ }
184
+ else {
185
+ return intl.formatMessage({
186
+ id: "navigator.userinfo",
187
+ defaultMessage: "User information",
188
+ });
189
+ }
190
+ }
191
+ renderHeading() {
192
+ return (h("h2", null, intl.formatMessage({
193
+ id: "navigator.watermarkApps",
194
+ defaultMessage: "Watermark Apps",
195
+ description: "Applications made by Watermark Insights",
196
+ })));
197
+ }
198
+ renderList() {
199
+ return (h("ul", { role: "listbox", "aria-label": `${intl.formatMessage({
200
+ id: "navigator.WatermarkAppNavigation",
201
+ defaultMessage: "Watermark App Navigation",
202
+ description: "list of applications by Watermark Insights",
203
+ })}`, "aria-describedby": "wm-nav-user" }, this.parsedProducts.length > 1 && this.renderProductOptions(), this.renderLogoutOption()));
204
+ }
205
+ renderProductOptions() {
206
+ return this.parsedProducts.map((product) => {
207
+ let name, icon, isSelected, clickRedirect;
208
+ name = product.name;
209
+ icon = product.iconUrl;
210
+ clickRedirect = this.setProductOnClick(product.id);
211
+ if (!!name && !!icon) {
212
+ isSelected = this.currentProductId === product.id;
213
+ return (h("priv-navigator-item", { selected: isSelected, id: product.id, onClick: clickRedirect, role: "option", "aria-label": name }, h("img", { src: icon, alt: name })));
214
+ }
215
+ });
216
+ }
217
+ setProductOnClick(productId) {
218
+ const product = this.getProduct(productId);
219
+ if (this.currentProductId === productId) {
220
+ return () => { };
221
+ }
222
+ else if (product) {
223
+ if (!!this.loadFromUserinfo || this.authType === 2) {
224
+ return () => (window.location.href = product.linkUrl);
225
+ }
226
+ else if (this.authType === 3) {
227
+ // products passed as prop, saml
228
+ const connName = this.connectionName ? `/?connection_name=${this.connectionName}` : "";
229
+ return () => (window.location.href = product.samlLinkUrl + connName);
230
+ }
231
+ }
232
+ }
233
+ renderLogoutOption() {
234
+ return (h("priv-navigator-item", { class: "logout", selected: !(this.parsedProducts.length > 1), id: "nav-logout", onClick: this.setLogoutOnclick(), role: "option" }, h("span", { class: "logout" }, intl.formatMessage({
235
+ id: "navigator.logout",
236
+ defaultMessage: "Log Out",
237
+ }))));
238
+ }
239
+ setLogoutOnclick() {
240
+ // The logout item will always emit a custom event on click so that the dev can run any business logic specific to the app on logout (e.g., clearing local storage).
241
+ // It will only redirect if the dev has set the logoutUrl. If some sort of custom redirect is needed, the logoutUrl should not be set.
242
+ return () => {
243
+ this.wmNavigatorLogout.emit();
244
+ if (this.logoutUrl) {
245
+ window.location.href = this.logoutUrl;
246
+ }
247
+ };
248
+ }
249
+ get navigatorItems() {
250
+ return Array.from(this.el.shadowRoot.querySelectorAll("priv-navigator-item"));
251
+ }
252
+ getProduct(id) {
253
+ return this.parsedProducts.find((product) => product.id === id);
254
+ }
255
+ render() {
256
+ return this.retrievedInfo ? (h(Host, { class: this.isTabbing ? "user-is-tabbing" : "" }, h("priv-navigator-button", { expanded: this.isOpen, altText: this.setAltText(), isTabbing: this.isTabbing }), h("div", { class: `wrapper ${this.isOpen ? "" : "hide"} ${this.openRight ? "right" : ""}`, ref: (el) => (this.wrapperEl = el) }, this.renderUserInfo(), this.parsedProducts.length > 1 && this.renderHeading(), this.renderList()))) : ("");
257
+ }
258
+ static get is() { return "wm-navigator"; }
259
+ static get encapsulation() { return "shadow"; }
260
+ static get delegatesFocus() { return true; }
261
+ static get originalStyleUrls() {
262
+ return {
263
+ "$": ["wm-navigator.scss"]
264
+ };
265
+ }
266
+ static get styleUrls() {
267
+ return {
268
+ "$": ["wm-navigator.css"]
269
+ };
270
+ }
271
+ static get properties() {
272
+ return {
273
+ "userName": {
274
+ "type": "string",
275
+ "mutable": false,
276
+ "complexType": {
277
+ "original": "string",
278
+ "resolved": "string | undefined",
279
+ "references": {}
280
+ },
281
+ "required": false,
282
+ "optional": true,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": ""
286
+ },
287
+ "attribute": "user-name",
288
+ "reflect": false
289
+ },
290
+ "email": {
291
+ "type": "string",
292
+ "mutable": false,
293
+ "complexType": {
294
+ "original": "string",
295
+ "resolved": "string | undefined",
296
+ "references": {}
297
+ },
298
+ "required": false,
299
+ "optional": true,
300
+ "docs": {
301
+ "tags": [],
302
+ "text": ""
303
+ },
304
+ "attribute": "email",
305
+ "reflect": false
306
+ },
307
+ "authType": {
308
+ "type": "number",
309
+ "mutable": false,
310
+ "complexType": {
311
+ "original": "number",
312
+ "resolved": "number",
313
+ "references": {}
314
+ },
315
+ "required": false,
316
+ "optional": false,
317
+ "docs": {
318
+ "tags": [],
319
+ "text": ""
320
+ },
321
+ "attribute": "auth-type",
322
+ "reflect": false,
323
+ "defaultValue": "1"
324
+ },
325
+ "connectionName": {
326
+ "type": "string",
327
+ "mutable": false,
328
+ "complexType": {
329
+ "original": "string",
330
+ "resolved": "string | undefined",
331
+ "references": {}
332
+ },
333
+ "required": false,
334
+ "optional": true,
335
+ "docs": {
336
+ "tags": [],
337
+ "text": ""
338
+ },
339
+ "attribute": "connection-name",
340
+ "reflect": false
341
+ },
342
+ "logoutUrl": {
343
+ "type": "string",
344
+ "mutable": false,
345
+ "complexType": {
346
+ "original": "string",
347
+ "resolved": "string | undefined",
348
+ "references": {}
349
+ },
350
+ "required": false,
351
+ "optional": true,
352
+ "docs": {
353
+ "tags": [],
354
+ "text": ""
355
+ },
356
+ "attribute": "logout-url",
357
+ "reflect": false
358
+ },
359
+ "products": {
360
+ "type": "string",
361
+ "mutable": false,
362
+ "complexType": {
363
+ "original": "string | []",
364
+ "resolved": "[] | string | undefined",
365
+ "references": {}
366
+ },
367
+ "required": false,
368
+ "optional": true,
369
+ "docs": {
370
+ "tags": [],
371
+ "text": ""
372
+ },
373
+ "attribute": "products",
374
+ "reflect": false
375
+ },
376
+ "loadFromUserinfo": {
377
+ "type": "boolean",
378
+ "mutable": false,
379
+ "complexType": {
380
+ "original": "boolean",
381
+ "resolved": "boolean",
382
+ "references": {}
383
+ },
384
+ "required": false,
385
+ "optional": false,
386
+ "docs": {
387
+ "tags": [],
388
+ "text": ""
389
+ },
390
+ "attribute": "load-from-userinfo",
391
+ "reflect": false,
392
+ "defaultValue": "false"
393
+ }
394
+ };
395
+ }
396
+ static get states() {
397
+ return {
398
+ "isOpen": {},
399
+ "isTabbing": {},
400
+ "itemIndexToFocus": {}
401
+ };
402
+ }
403
+ static get events() {
404
+ return [{
405
+ "method": "wmNavigatorLogout",
406
+ "name": "wmNavigatorLogout",
407
+ "bubbles": true,
408
+ "cancelable": true,
409
+ "composed": true,
410
+ "docs": {
411
+ "tags": [],
412
+ "text": ""
413
+ },
414
+ "complexType": {
415
+ "original": "any",
416
+ "resolved": "any",
417
+ "references": {}
418
+ }
419
+ }];
420
+ }
421
+ static get elementRef() { return "el"; }
422
+ static get watchers() {
423
+ return [{
424
+ "propName": "products",
425
+ "methodName": "parseData"
426
+ }];
427
+ }
428
+ static get listeners() {
429
+ return [{
430
+ "name": "wmUserIsTabbing",
431
+ "method": "toggleTabbingOn",
432
+ "target": "window",
433
+ "capture": false,
434
+ "passive": false
435
+ }, {
436
+ "name": "wmUserIsNotTabbing",
437
+ "method": "toggleTabbingOff",
438
+ "target": "window",
439
+ "capture": false,
440
+ "passive": false
441
+ }, {
442
+ "name": "keydown",
443
+ "method": "handleKeys",
444
+ "target": undefined,
445
+ "capture": false,
446
+ "passive": false
447
+ }, {
448
+ "name": "keydownOnNavItem",
449
+ "method": "handleKeydown",
450
+ "target": undefined,
451
+ "capture": false,
452
+ "passive": false
453
+ }, {
454
+ "name": "click",
455
+ "method": "handleClick",
456
+ "target": "document",
457
+ "capture": false,
458
+ "passive": false
459
+ }, {
460
+ "name": "buttonActivated",
461
+ "method": "handleButtonClick",
462
+ "target": undefined,
463
+ "capture": false,
464
+ "passive": false
465
+ }];
466
+ }
467
+ }