@watermarkinsights/ripple 5.16.0-alpha.1 → 5.16.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/dist/{collection/global/global.js → ripple/app-globals-a0922f84.js} +60 -2
  2. package/dist/{esm/chartFunctions-6749593d.js → ripple/chartFunctions-021607da.js} +3 -3
  3. package/dist/{esm/functions-dabfd76f.js → ripple/functions-3eaaa7c4.js} +7766 -147
  4. package/dist/ripple/index-3d0f1864.js +3017 -0
  5. package/dist/ripple/index.esm.js +1 -0
  6. package/dist/{collection/global/interfaces.js → ripple/interfaces-382e0566.js} +6 -4
  7. package/dist/{esm/intl-43676e71.js → ripple/intl-14fae6dd.js} +1 -1
  8. package/dist/ripple/priv-calendar.entry.js +569 -0
  9. package/dist/ripple/{p-30236be3.system.entry.js → priv-chart-popover.entry.js} +140 -1
  10. package/dist/{esm-es5/priv-chart-popover.entry.js → ripple/priv-navigator-button.entry.js} +24 -1
  11. package/dist/ripple/{p-97ffaa7d.entry.js → priv-navigator-item.entry.js} +30 -1
  12. package/dist/ripple/{p-b01f9572.system.entry.js → priv-option-list.entry.js} +388 -1
  13. package/dist/ripple/ripple.esm.js +47 -1
  14. package/dist/ripple/shadow-css-7ad5caf8.js +332 -0
  15. package/dist/{cjs/wm-button.cjs.entry.js → ripple/wm-action-menu.entry.js} +162 -229
  16. package/dist/{esm-es5/priv-option-list.entry.js → ripple/wm-button.entry.js} +268 -1
  17. package/dist/{esm → ripple}/wm-chart-slice.entry.js +1 -1
  18. package/dist/{esm/wm-file.entry.js → ripple/wm-chart.entry.js} +137 -169
  19. package/dist/ripple/wm-date-range.entry.js +479 -0
  20. package/dist/ripple/wm-datepicker.entry.js +249 -0
  21. package/dist/ripple/{p-c53f5914.entry.js → wm-file-list.entry.js} +18 -1
  22. package/dist/ripple/{p-f9fa1506.system.entry.js → wm-file.entry.js} +189 -1
  23. package/dist/ripple/{p-89479d02.system.entry.js → wm-flyout.entry.js} +175 -1
  24. package/dist/{esm-es5/wm-flyout.entry.js → ripple/wm-input.entry.js} +120 -1
  25. package/dist/ripple/wm-line-chart.entry.js +456 -0
  26. package/dist/{esm/priv-chart-popover.entry.js → ripple/wm-menuitem.entry.js} +98 -114
  27. package/dist/{cjs/priv-navigator-button.cjs.entry.js → ripple/wm-modal-footer.entry.js} +35 -20
  28. package/dist/{esm/priv-navigator-button.entry.js → ripple/wm-modal-header.entry.js} +25 -14
  29. package/dist/ripple/{p-091fbc50.system.entry.js → wm-modal-pss-footer.entry.js} +40 -1
  30. package/dist/ripple/{p-92cb12d3.entry.js → wm-modal-pss-header.entry.js} +39 -1
  31. package/dist/ripple/wm-modal-pss.entry.js +136 -0
  32. package/dist/ripple/{p-1955c66a.system.entry.js → wm-modal.entry.js} +135 -1
  33. package/dist/ripple/wm-navigation-hamburger.entry.js +49 -0
  34. package/dist/ripple/{p-8f987f71.entry.js → wm-navigation-item.entry.js} +21 -1
  35. package/dist/ripple/wm-navigation.entry.js +116 -0
  36. package/dist/{esm/priv-navigator-item.entry.js → ripple/wm-navigator.entry.js} +351 -19
  37. package/dist/ripple/{p-fe93b6b9.system.entry.js → wm-nested-select.entry.js} +310 -1
  38. package/dist/ripple/wm-optgroup.entry.js +69 -0
  39. package/dist/{esm/priv-option-list.entry.js → ripple/wm-option.entry.js} +130 -347
  40. package/dist/ripple/wm-pagination.entry.js +223 -0
  41. package/dist/ripple/wm-progress-indicator.entry.js +112 -0
  42. package/dist/{esm-es5/priv-navigator-item.entry.js → ripple/wm-progress-monitor.entry.js} +74 -1
  43. package/dist/ripple/wm-progress-slice.entry.js +18 -0
  44. package/dist/{cjs/priv-option-list.cjs.entry.js → ripple/wm-search.entry.js} +162 -364
  45. package/dist/{esm/wm-nested-select.entry.js → ripple/wm-select.entry.js} +134 -194
  46. package/dist/ripple/wm-snackbar.entry.js +184 -0
  47. package/dist/{esm-es5/wm-file-list.entry.js → ripple/wm-tab-item.entry.js} +57 -1
  48. package/dist/ripple/wm-tab-list.entry.js +178 -0
  49. package/dist/ripple/wm-tab-panel.entry.js +26 -0
  50. package/dist/ripple/wm-tag-input.entry.js +947 -0
  51. package/dist/{esm → ripple}/wm-tag-option.entry.js +2 -2
  52. package/dist/{cjs/priv-chart-popover.cjs.entry.js → ripple/wm-textarea.entry.js} +60 -122
  53. package/dist/{esm/wm-button.entry.js → ripple/wm-timepicker.entry.js} +251 -218
  54. package/dist/{cjs/priv-navigator-item.cjs.entry.js → ripple/wm-toggletip.entry.js} +227 -25
  55. package/dist/ripple/wm-uploader.entry.js +320 -0
  56. package/dist/{esm → ripple}/wm-wrapper.entry.js +1 -1
  57. package/package.json +2 -2
  58. package/dist/cjs/app-globals-f56991b7.js +0 -92
  59. package/dist/cjs/chartFunctions-439c6fd4.js +0 -742
  60. package/dist/cjs/functions-dd27bda3.js +0 -10618
  61. package/dist/cjs/index-788526f5.js +0 -1863
  62. package/dist/cjs/index.cjs.js +0 -2
  63. package/dist/cjs/interfaces-85d78ae9.js +0 -37
  64. package/dist/cjs/intl-6d72b4a0.js +0 -283
  65. package/dist/cjs/loader.cjs.js +0 -15
  66. package/dist/cjs/priv-calendar.cjs.entry.js +0 -574
  67. package/dist/cjs/ripple.cjs.js +0 -25
  68. package/dist/cjs/wm-action-menu_2.cjs.entry.js +0 -335
  69. package/dist/cjs/wm-chart-slice.cjs.entry.js +0 -27
  70. package/dist/cjs/wm-chart.cjs.entry.js +0 -163
  71. package/dist/cjs/wm-date-range.cjs.entry.js +0 -484
  72. package/dist/cjs/wm-datepicker.cjs.entry.js +0 -254
  73. package/dist/cjs/wm-file-list.cjs.entry.js +0 -23
  74. package/dist/cjs/wm-file.cjs.entry.js +0 -194
  75. package/dist/cjs/wm-flyout.cjs.entry.js +0 -180
  76. package/dist/cjs/wm-input.cjs.entry.js +0 -125
  77. package/dist/cjs/wm-line-chart.cjs.entry.js +0 -461
  78. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +0 -217
  79. package/dist/cjs/wm-modal_3.cjs.entry.js +0 -217
  80. package/dist/cjs/wm-navigation_3.cjs.entry.js +0 -188
  81. package/dist/cjs/wm-navigator.cjs.entry.js +0 -327
  82. package/dist/cjs/wm-nested-select.cjs.entry.js +0 -315
  83. package/dist/cjs/wm-optgroup.cjs.entry.js +0 -74
  84. package/dist/cjs/wm-option_2.cjs.entry.js +0 -427
  85. package/dist/cjs/wm-pagination.cjs.entry.js +0 -228
  86. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +0 -204
  87. package/dist/cjs/wm-search.cjs.entry.js +0 -196
  88. package/dist/cjs/wm-snackbar.cjs.entry.js +0 -189
  89. package/dist/cjs/wm-tab-item_3.cjs.entry.js +0 -263
  90. package/dist/cjs/wm-tag-input.cjs.entry.js +0 -947
  91. package/dist/cjs/wm-tag-option.cjs.entry.js +0 -43
  92. package/dist/cjs/wm-textarea.cjs.entry.js +0 -88
  93. package/dist/cjs/wm-timepicker.cjs.entry.js +0 -307
  94. package/dist/cjs/wm-toggletip.cjs.entry.js +0 -242
  95. package/dist/cjs/wm-uploader.cjs.entry.js +0 -325
  96. package/dist/cjs/wm-wrapper.cjs.entry.js +0 -21
  97. package/dist/collection/collection-manifest.json +0 -197
  98. package/dist/collection/components/charts/chartFunctions.js +0 -675
  99. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +0 -948
  100. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +0 -262
  101. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +0 -125
  102. package/dist/collection/components/charts/wm-chart/wm-chart.css +0 -1314
  103. package/dist/collection/components/charts/wm-chart/wm-chart.js +0 -422
  104. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +0 -1106
  105. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +0 -723
  106. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +0 -1314
  107. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +0 -264
  108. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +0 -948
  109. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +0 -151
  110. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +0 -121
  111. package/dist/collection/components/datepickers/datepicker.css +0 -1083
  112. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +0 -1318
  113. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +0 -840
  114. package/dist/collection/components/datepickers/wm-date-range.js +0 -849
  115. package/dist/collection/components/datepickers/wm-datepicker.js +0 -524
  116. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +0 -958
  117. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +0 -780
  118. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +0 -1229
  119. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +0 -620
  120. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +0 -869
  121. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +0 -258
  122. package/dist/collection/components/selects/wm-option/wm-option.css +0 -970
  123. package/dist/collection/components/selects/wm-option/wm-option.js +0 -530
  124. package/dist/collection/components/selects/wm-select/wm-select.css +0 -1143
  125. package/dist/collection/components/selects/wm-select/wm-select.js +0 -584
  126. package/dist/collection/components/wm-action-menu/wm-action-menu.css +0 -930
  127. package/dist/collection/components/wm-action-menu/wm-action-menu.js +0 -435
  128. package/dist/collection/components/wm-button/wm-button.css +0 -1580
  129. package/dist/collection/components/wm-button/wm-button.js +0 -555
  130. package/dist/collection/components/wm-file/wm-file.css +0 -966
  131. package/dist/collection/components/wm-file/wm-file.js +0 -412
  132. package/dist/collection/components/wm-file-list/wm-file-list.css +0 -859
  133. package/dist/collection/components/wm-file-list/wm-file-list.js +0 -45
  134. package/dist/collection/components/wm-flyout/wm-flyout.css +0 -1053
  135. package/dist/collection/components/wm-flyout/wm-flyout.js +0 -448
  136. package/dist/collection/components/wm-input/wm-input.css +0 -1043
  137. package/dist/collection/components/wm-input/wm-input.js +0 -471
  138. package/dist/collection/components/wm-menuitem/wm-menuitem.css +0 -930
  139. package/dist/collection/components/wm-menuitem/wm-menuitem.js +0 -419
  140. package/dist/collection/components/wm-modal/wm-modal-footer.css +0 -884
  141. package/dist/collection/components/wm-modal/wm-modal-footer.js +0 -142
  142. package/dist/collection/components/wm-modal/wm-modal-header.css +0 -883
  143. package/dist/collection/components/wm-modal/wm-modal-header.js +0 -79
  144. package/dist/collection/components/wm-modal/wm-modal.css +0 -931
  145. package/dist/collection/components/wm-modal/wm-modal.js +0 -350
  146. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +0 -891
  147. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +0 -138
  148. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +0 -885
  149. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +0 -82
  150. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +0 -967
  151. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +0 -362
  152. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +0 -886
  153. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +0 -119
  154. package/dist/collection/components/wm-navigation/wm-navigation-item.css +0 -895
  155. package/dist/collection/components/wm-navigation/wm-navigation-item.js +0 -98
  156. package/dist/collection/components/wm-navigation/wm-navigation.css +0 -937
  157. package/dist/collection/components/wm-navigation/wm-navigation.js +0 -190
  158. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +0 -889
  159. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +0 -86
  160. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +0 -869
  161. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +0 -124
  162. package/dist/collection/components/wm-navigator/wm-navigator.css +0 -942
  163. package/dist/collection/components/wm-navigator/wm-navigator.js +0 -496
  164. package/dist/collection/components/wm-pagination/wm-pagination.css +0 -1010
  165. package/dist/collection/components/wm-pagination/wm-pagination.js +0 -363
  166. package/dist/collection/components/wm-search/wm-search.css +0 -935
  167. package/dist/collection/components/wm-search/wm-search.js +0 -429
  168. package/dist/collection/components/wm-snackbar/wm-snackbar.css +0 -1117
  169. package/dist/collection/components/wm-snackbar/wm-snackbar.js +0 -276
  170. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +0 -908
  171. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +0 -175
  172. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +0 -880
  173. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +0 -273
  174. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +0 -864
  175. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +0 -87
  176. package/dist/collection/components/wm-tag-input/wm-tag-input.css +0 -1318
  177. package/dist/collection/components/wm-tag-input/wm-tag-input.js +0 -1282
  178. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +0 -243
  179. package/dist/collection/components/wm-textarea/wm-textarea.css +0 -1019
  180. package/dist/collection/components/wm-textarea/wm-textarea.js +0 -313
  181. package/dist/collection/components/wm-timepicker/wm-timepicker.css +0 -1133
  182. package/dist/collection/components/wm-timepicker/wm-timepicker.js +0 -547
  183. package/dist/collection/components/wm-toggletip/wm-toggletip.css +0 -1256
  184. package/dist/collection/components/wm-toggletip/wm-toggletip.js +0 -366
  185. package/dist/collection/components/wm-uploader/wm-uploader.css +0 -1882
  186. package/dist/collection/components/wm-uploader/wm-uploader.js +0 -603
  187. package/dist/collection/components/wm-wrapper/wm-wrapper.js +0 -28
  188. package/dist/collection/dev/action-menu.js +0 -0
  189. package/dist/collection/dev/button.js +0 -0
  190. package/dist/collection/dev/chart-small.js +0 -56
  191. package/dist/collection/dev/chart.js +0 -18
  192. package/dist/collection/dev/date-range.js +0 -6
  193. package/dist/collection/dev/datepicker.js +0 -46
  194. package/dist/collection/dev/file-list.js +0 -16
  195. package/dist/collection/dev/file.js +0 -0
  196. package/dist/collection/dev/flyout.js +0 -194
  197. package/dist/collection/dev/input.js +0 -6
  198. package/dist/collection/dev/line-chart.js +0 -0
  199. package/dist/collection/dev/modal.js +0 -48
  200. package/dist/collection/dev/navigation.js +0 -13
  201. package/dist/collection/dev/navigator.js +0 -34
  202. package/dist/collection/dev/nested-select.js +0 -36
  203. package/dist/collection/dev/pagination.js +0 -7
  204. package/dist/collection/dev/progress-monitor.js +0 -0
  205. package/dist/collection/dev/pss-modal.js +0 -8
  206. package/dist/collection/dev/scripts.js +0 -49
  207. package/dist/collection/dev/search.js +0 -72
  208. package/dist/collection/dev/select.js +0 -57
  209. package/dist/collection/dev/snackbar.js +0 -60
  210. package/dist/collection/dev/tabs.js +0 -44
  211. package/dist/collection/dev/tag-input.js +0 -32
  212. package/dist/collection/dev/textarea.js +0 -28
  213. package/dist/collection/dev/timepicker.js +0 -32
  214. package/dist/collection/dev/toggletip.js +0 -9
  215. package/dist/collection/dev/uploader.js +0 -139
  216. package/dist/collection/global/__mocks__/functions.js +0 -6
  217. package/dist/collection/global/functions.js +0 -927
  218. package/dist/collection/global/intl.js +0 -274
  219. package/dist/collection/global/services/__mocks__/http-service.js +0 -130
  220. package/dist/collection/global/services/http-service.js +0 -50
  221. package/dist/collection/lang/lang.js +0 -5
  222. package/dist/collection/lang/missing.js +0 -43
  223. package/dist/collection/lang/piglatin.js +0 -101
  224. package/dist/esm/app-globals-cc7a1bd5.js +0 -90
  225. package/dist/esm/index-130e07bb.js +0 -1832
  226. package/dist/esm/index.js +0 -1
  227. package/dist/esm/interfaces-cc5b177f.js +0 -34
  228. package/dist/esm/loader.js +0 -11
  229. package/dist/esm/polyfills/core-js.js +0 -11
  230. package/dist/esm/polyfills/dom.js +0 -79
  231. package/dist/esm/polyfills/es5-html-element.js +0 -1
  232. package/dist/esm/polyfills/index.js +0 -34
  233. package/dist/esm/polyfills/system.js +0 -6
  234. package/dist/esm/priv-calendar.entry.js +0 -570
  235. package/dist/esm/ripple.js +0 -20
  236. package/dist/esm/wm-action-menu_2.entry.js +0 -330
  237. package/dist/esm/wm-chart.entry.js +0 -159
  238. package/dist/esm/wm-date-range.entry.js +0 -480
  239. package/dist/esm/wm-datepicker.entry.js +0 -250
  240. package/dist/esm/wm-file-list.entry.js +0 -19
  241. package/dist/esm/wm-flyout.entry.js +0 -176
  242. package/dist/esm/wm-input.entry.js +0 -121
  243. package/dist/esm/wm-line-chart.entry.js +0 -457
  244. package/dist/esm/wm-modal-pss_3.entry.js +0 -211
  245. package/dist/esm/wm-modal_3.entry.js +0 -211
  246. package/dist/esm/wm-navigation_3.entry.js +0 -182
  247. package/dist/esm/wm-navigator.entry.js +0 -323
  248. package/dist/esm/wm-optgroup.entry.js +0 -70
  249. package/dist/esm/wm-option_2.entry.js +0 -422
  250. package/dist/esm/wm-pagination.entry.js +0 -224
  251. package/dist/esm/wm-progress-indicator_3.entry.js +0 -198
  252. package/dist/esm/wm-search.entry.js +0 -192
  253. package/dist/esm/wm-snackbar.entry.js +0 -185
  254. package/dist/esm/wm-tab-item_3.entry.js +0 -257
  255. package/dist/esm/wm-tag-input.entry.js +0 -943
  256. package/dist/esm/wm-textarea.entry.js +0 -84
  257. package/dist/esm/wm-timepicker.entry.js +0 -303
  258. package/dist/esm/wm-toggletip.entry.js +0 -238
  259. package/dist/esm/wm-uploader.entry.js +0 -321
  260. package/dist/esm-es5/app-globals-cc7a1bd5.js +0 -1
  261. package/dist/esm-es5/chartFunctions-6749593d.js +0 -1
  262. package/dist/esm-es5/functions-dabfd76f.js +0 -1
  263. package/dist/esm-es5/index-130e07bb.js +0 -1
  264. package/dist/esm-es5/index.js +0 -0
  265. package/dist/esm-es5/interfaces-cc5b177f.js +0 -1
  266. package/dist/esm-es5/intl-43676e71.js +0 -1
  267. package/dist/esm-es5/loader.js +0 -1
  268. package/dist/esm-es5/priv-calendar.entry.js +0 -1
  269. package/dist/esm-es5/priv-navigator-button.entry.js +0 -1
  270. package/dist/esm-es5/ripple.js +0 -1
  271. package/dist/esm-es5/wm-action-menu_2.entry.js +0 -1
  272. package/dist/esm-es5/wm-button.entry.js +0 -1
  273. package/dist/esm-es5/wm-chart-slice.entry.js +0 -1
  274. package/dist/esm-es5/wm-chart.entry.js +0 -1
  275. package/dist/esm-es5/wm-date-range.entry.js +0 -1
  276. package/dist/esm-es5/wm-datepicker.entry.js +0 -1
  277. package/dist/esm-es5/wm-file.entry.js +0 -1
  278. package/dist/esm-es5/wm-input.entry.js +0 -1
  279. package/dist/esm-es5/wm-line-chart.entry.js +0 -1
  280. package/dist/esm-es5/wm-modal-pss_3.entry.js +0 -1
  281. package/dist/esm-es5/wm-modal_3.entry.js +0 -1
  282. package/dist/esm-es5/wm-navigation_3.entry.js +0 -1
  283. package/dist/esm-es5/wm-navigator.entry.js +0 -1
  284. package/dist/esm-es5/wm-nested-select.entry.js +0 -1
  285. package/dist/esm-es5/wm-optgroup.entry.js +0 -1
  286. package/dist/esm-es5/wm-option_2.entry.js +0 -1
  287. package/dist/esm-es5/wm-pagination.entry.js +0 -1
  288. package/dist/esm-es5/wm-progress-indicator_3.entry.js +0 -1
  289. package/dist/esm-es5/wm-search.entry.js +0 -1
  290. package/dist/esm-es5/wm-snackbar.entry.js +0 -1
  291. package/dist/esm-es5/wm-tab-item_3.entry.js +0 -1
  292. package/dist/esm-es5/wm-tag-input.entry.js +0 -1
  293. package/dist/esm-es5/wm-tag-option.entry.js +0 -1
  294. package/dist/esm-es5/wm-textarea.entry.js +0 -1
  295. package/dist/esm-es5/wm-timepicker.entry.js +0 -1
  296. package/dist/esm-es5/wm-toggletip.entry.js +0 -1
  297. package/dist/esm-es5/wm-uploader.entry.js +0 -1
  298. package/dist/esm-es5/wm-wrapper.entry.js +0 -1
  299. package/dist/index.cjs.js +0 -1
  300. package/dist/index.js +0 -1
  301. package/dist/loader/cdn.js +0 -2
  302. package/dist/loader/index.cjs.js +0 -2
  303. package/dist/loader/index.d.ts +0 -24
  304. package/dist/loader/index.es2017.js +0 -2
  305. package/dist/loader/index.js +0 -3
  306. package/dist/loader/package.json +0 -11
  307. package/dist/ripple/p-0189929d.entry.js +0 -1
  308. package/dist/ripple/p-043901ab.system.entry.js +0 -1
  309. package/dist/ripple/p-0bb576c5.system.entry.js +0 -1
  310. package/dist/ripple/p-0c89b82c.entry.js +0 -1
  311. package/dist/ripple/p-12ac8f93.js +0 -1
  312. package/dist/ripple/p-12d6ab73.system.entry.js +0 -1
  313. package/dist/ripple/p-13b1d775.entry.js +0 -1
  314. package/dist/ripple/p-144ce232.entry.js +0 -1
  315. package/dist/ripple/p-1497ccfc.entry.js +0 -1
  316. package/dist/ripple/p-1a3037aa.entry.js +0 -1
  317. package/dist/ripple/p-22b55b6f.entry.js +0 -1
  318. package/dist/ripple/p-257d2d5c.entry.js +0 -1
  319. package/dist/ripple/p-2732bddd.js +0 -1
  320. package/dist/ripple/p-2823d02b.system.entry.js +0 -1
  321. package/dist/ripple/p-2f7ca1a7.system.entry.js +0 -1
  322. package/dist/ripple/p-30201dc9.entry.js +0 -1
  323. package/dist/ripple/p-36d2b888.entry.js +0 -1
  324. package/dist/ripple/p-36fd8aed.system.entry.js +0 -1
  325. package/dist/ripple/p-3f98056c.js +0 -1
  326. package/dist/ripple/p-41120a33.system.js +0 -1
  327. package/dist/ripple/p-42fa7a77.system.js +0 -1
  328. package/dist/ripple/p-492aa9fe.system.entry.js +0 -1
  329. package/dist/ripple/p-49a347e1.js +0 -1
  330. package/dist/ripple/p-4a29bb8c.entry.js +0 -1
  331. package/dist/ripple/p-4c2a044d.system.entry.js +0 -1
  332. package/dist/ripple/p-4cebf2d7.entry.js +0 -1
  333. package/dist/ripple/p-4e6b0a6e.system.entry.js +0 -1
  334. package/dist/ripple/p-4fb4deb9.entry.js +0 -1
  335. package/dist/ripple/p-50ea2036.system.js +0 -1
  336. package/dist/ripple/p-56d54fe6.system.entry.js +0 -1
  337. package/dist/ripple/p-57c25b63.entry.js +0 -1
  338. package/dist/ripple/p-59591401.entry.js +0 -1
  339. package/dist/ripple/p-5cff41e0.entry.js +0 -1
  340. package/dist/ripple/p-5ef786db.system.entry.js +0 -1
  341. package/dist/ripple/p-61f9987d.system.entry.js +0 -1
  342. package/dist/ripple/p-6a03a172.entry.js +0 -1
  343. package/dist/ripple/p-6a082957.entry.js +0 -1
  344. package/dist/ripple/p-6abc1227.entry.js +0 -1
  345. package/dist/ripple/p-6d12cfb7.system.entry.js +0 -1
  346. package/dist/ripple/p-72ed488e.system.entry.js +0 -1
  347. package/dist/ripple/p-74f103dd.entry.js +0 -1
  348. package/dist/ripple/p-81ce2697.entry.js +0 -1
  349. package/dist/ripple/p-823d7b4e.system.entry.js +0 -1
  350. package/dist/ripple/p-89316785.system.js +0 -1
  351. package/dist/ripple/p-8a569d3b.entry.js +0 -1
  352. package/dist/ripple/p-8ec2e944.system.entry.js +0 -1
  353. package/dist/ripple/p-92a50b38.system.entry.js +0 -1
  354. package/dist/ripple/p-9328023c.entry.js +0 -1
  355. package/dist/ripple/p-94f776eb.entry.js +0 -1
  356. package/dist/ripple/p-9b2281e2.system.entry.js +0 -1
  357. package/dist/ripple/p-a2c8937d.js +0 -1
  358. package/dist/ripple/p-a5fb4171.system.entry.js +0 -1
  359. package/dist/ripple/p-b23c6351.system.entry.js +0 -1
  360. package/dist/ripple/p-b34552b0.system.entry.js +0 -1
  361. package/dist/ripple/p-b39ab477.entry.js +0 -1
  362. package/dist/ripple/p-ba399879.system.js +0 -1
  363. package/dist/ripple/p-bb9f6920.entry.js +0 -1
  364. package/dist/ripple/p-bc4976e6.entry.js +0 -1
  365. package/dist/ripple/p-bd48c50a.entry.js +0 -1
  366. package/dist/ripple/p-c1aa877a.system.js +0 -1
  367. package/dist/ripple/p-c31e1379.entry.js +0 -1
  368. package/dist/ripple/p-c4896784.system.entry.js +0 -1
  369. package/dist/ripple/p-c699aec8.system.entry.js +0 -1
  370. package/dist/ripple/p-c7d71181.system.entry.js +0 -1
  371. package/dist/ripple/p-cd0cc88d.entry.js +0 -1
  372. package/dist/ripple/p-ceac4dea.system.entry.js +0 -1
  373. package/dist/ripple/p-cef8a45b.system.js +0 -2
  374. package/dist/ripple/p-d333d851.system.entry.js +0 -1
  375. package/dist/ripple/p-d9da0502.js +0 -2
  376. package/dist/ripple/p-e59a48a6.system.js +0 -1
  377. package/dist/ripple/p-f3df715f.entry.js +0 -1
  378. package/dist/ripple/p-f8995a5e.system.entry.js +0 -1
  379. package/dist/ripple/p-fe71ec64.system.entry.js +0 -1
  380. package/dist/ripple/ripple.js +0 -127
@@ -1,1282 +0,0 @@
1
- import { h, forceUpdate } from "@stencil/core";
2
- import { csvToArray, debounce, hideTooltip, intl, measureText, shouldOpenUp, showTooltip, truncateText, findPrev, findNext, } from "../../global/functions";
3
- import { globalMessages } from "../../global/intl";
4
- export class TagInput {
5
- constructor() {
6
- this.addNewHelpText = intl.formatMessage({
7
- id: "tagInput.addNewHelpText",
8
- defaultMessage: "Press the Enter or Comma key to add a new tag.",
9
- description: "Instructional text, where tag refers to a tag UI element that can be added to a list. Use imperative",
10
- });
11
- this.selectionHelpText = intl.formatMessage({
12
- id: "tagInput.selectionHelpText",
13
- defaultMessage: "Search and select a tag.",
14
- description: "Instructional text, where tag refers to a tag UI element that can be added to a list. Use imperative",
15
- });
16
- this.maxTagsReachedMessage = intl.formatMessage({
17
- id: "tagInput.maxTagsReached",
18
- defaultMessage: "No more tags can be added because the limit has been reached.",
19
- description: "Tag refers to a tag UI element that can be added to a list.",
20
- });
21
- this.tagAreaInstructions = intl.formatMessage({
22
- id: "tagInput.tagAreaInstructions",
23
- defaultMessage: "tag selection. Press Backspace or Delete to remove a tag.",
24
- description: "Label for a UI element where a user can select from a list of tags.",
25
- });
26
- this.tagsAddedMessage = intl.formatMessage({
27
- id: "tagInput.tagsAdded",
28
- defaultMessage: "Tags added",
29
- description: "Tag refers to a tag UI element that can be added to a list. Full message for context: 'Tags added: x/y",
30
- });
31
- this.noResultsMessage = intl.formatMessage({
32
- id: "tagInput.noResults",
33
- defaultMessage: "No results match your search.",
34
- });
35
- this.openUp = false;
36
- this.inModal = false;
37
- this.debouncedUpdate = debounce(() => forceUpdate(this.el), 30);
38
- this.label = undefined;
39
- this.errorMessage = undefined;
40
- this.info = undefined;
41
- this.labelPosition = "top";
42
- this.maxTags = undefined;
43
- this.placeholder = undefined;
44
- this.requiredField = false;
45
- this.tagInputType = "dropdown";
46
- this.helpText = undefined;
47
- this.addNew = true;
48
- this.characterLimit = 50;
49
- this.colHeaders = undefined;
50
- this.colWidths = undefined;
51
- this.colWrap = undefined;
52
- this.isKeying = false;
53
- this.isExpanded = false;
54
- this.liveRegionMessage = "";
55
- this.focusedOption = undefined;
56
- this.focusedColumn = 0;
57
- this.focusedTagIndex = undefined;
58
- this.tagsList = [];
59
- }
60
- addNewTagMessage(newTagName) {
61
- return intl.formatMessage({
62
- id: "tagInput.addNewTag",
63
- defaultMessage: "Add {newTagName}",
64
- description: "Button text to add a new tag to a list of tags",
65
- }, { newTagName: newTagName });
66
- }
67
- toggleKeyingOn() {
68
- this.isKeying = true;
69
- }
70
- toggleKeyingOff() {
71
- this.isKeying = false;
72
- }
73
- get isDropdown() {
74
- return this.tagInputType === "dropdown";
75
- }
76
- get isTable() {
77
- return this.tagInputType === "table";
78
- }
79
- get charCount() {
80
- return this.inputEl ? this.inputEl.value.length : 0;
81
- }
82
- get tooltipVisible() {
83
- return document.getElementById("wm-tooltip").classList.contains("show");
84
- }
85
- get optionEls() {
86
- return Array.from(this.el.querySelectorAll("wm-tag-option"));
87
- }
88
- // list of options matching user query
89
- get filteredOptionEls() {
90
- const query = this.inputEl ? this.inputEl.value.toLowerCase() : "";
91
- const list = Array.from(this.optionEls).filter((o) => {
92
- let values = "";
93
- if (this.isDropdown) {
94
- values = o.textContent.toLowerCase();
95
- }
96
- else if (this.isTable) {
97
- values = [o.col1, o.col2, o.col3, o.col4].join("").toLowerCase();
98
- }
99
- return values.includes(query);
100
- });
101
- return list;
102
- }
103
- // the ones that should be rendered as tags
104
- get taggedOptions() {
105
- return this.optionEls.filter((o) => o.selected || o.locked);
106
- }
107
- // for visual stuff (measuring, truncating...)
108
- get _tagEls() {
109
- return this.tagAreaEl ? Array.from(this.tagAreaEl.querySelectorAll(".tag")) : [];
110
- }
111
- get focusedTag() {
112
- if (this.focusedTagIndex !== undefined && this.focusedTagIndex >= 0) {
113
- return this._tagEls[this.focusedTagIndex];
114
- }
115
- }
116
- // get the wm-tag-option, given the internal representation (dropdown li or table tr)
117
- tagOptionFromEl(el) {
118
- return el.id === "add-new-btn" ? undefined : this.el.querySelector("#" + el.id);
119
- }
120
- // get the wm-tag-option, given the internal representation of a tag
121
- tagOptionFromTag(el) {
122
- const id = el.id.replace("tag-", "");
123
- return this.el.querySelector("#" + id);
124
- }
125
- // get the internal representation of a wm-tag-option
126
- elFromTagOption(el) {
127
- return this.el.shadowRoot.querySelector("#" + el.id);
128
- }
129
- // focusedOption state refers to the wm-tag-option. This gets the corresponding element in the shadow DOM, or the "Add New" button.
130
- get _focusedOption() {
131
- if (!!this.focusedOption) {
132
- return this.elFromTagOption(this.focusedOption);
133
- }
134
- else if (this.addNewButton && this.addNewButton.classList.contains("focused")) {
135
- return this.addNewButton;
136
- }
137
- }
138
- get _focusedCell() {
139
- if (!!this._focusedOption) {
140
- const allCells = Array.from(this._focusedOption.querySelectorAll("td"));
141
- const index = this.focusedColumn || 0;
142
- return allCells[index];
143
- }
144
- }
145
- get inputActiveDescendantId() {
146
- if (this._focusedOption) {
147
- if (this.isTable) {
148
- const cells = Array.from(this._focusedOption.querySelectorAll("td"));
149
- return cells[this.focusedColumn].id;
150
- }
151
- return this._focusedOption.id;
152
- }
153
- return null;
154
- }
155
- get tagLimitReached() {
156
- return !!(this.maxTags && this.taggedOptions.length >= this.maxTags);
157
- }
158
- get inputMinimumWidth() {
159
- if (this._tagEls) {
160
- // 150px is the minimum width of the input field, or the length of the placeholder text
161
- const inputElStyles = getComputedStyle(this.inputEl);
162
- const tagElStyles = getComputedStyle(this._tagEls[this._tagEls.length - 1]);
163
- const inputElBuffer = [
164
- inputElStyles.paddingLeft,
165
- inputElStyles.paddingRight,
166
- inputElStyles.marginLeft,
167
- inputElStyles.marginRight,
168
- tagElStyles.marginRight,
169
- ].reduce((prev, curr) => prev + parseInt(curr.replace("px", "")), 0);
170
- const minimumWidth = Math.max(150, measureText(this.inputEl, this.placeholder).width + inputElBuffer);
171
- return minimumWidth;
172
- }
173
- else {
174
- return 150;
175
- }
176
- }
177
- getTagName(o) {
178
- // when the user is typing and adding a new option, all we can pass is the text typed. so for the dropdown type the tag name is the identifier. It also takes care of duplicates. Table variant requires an id as the tag name is the first column but we want to allow duplicates here (e.g. people with the same name)
179
- return this.isDropdown ? o.textContent : o.col1;
180
- }
181
- isExistingTag(tag) {
182
- const list = this.optionEls.map((o) => this.getTagName(o).toLowerCase());
183
- return list.includes(tag.toLowerCase());
184
- }
185
- tagAddedMessage(tag) {
186
- return intl.formatMessage({
187
- id: "tagInput.tagAdded",
188
- defaultMessage: "{tagName} added.",
189
- description: "Confirmation for adding a tag UI element to a list of tags.",
190
- }, { tagName: tag });
191
- }
192
- tagRemovedMessage(tag) {
193
- return intl.formatMessage({
194
- id: "tagInput.tagRemoved",
195
- defaultMessage: "{tagName} removed.",
196
- description: "Confirmation for removing a tag UI element from a list of tags.",
197
- }, { tagName: tag });
198
- }
199
- tagAlreadyAddedMessage(tag) {
200
- return intl.formatMessage({
201
- id: "tagInput.tagAlreadyAdded",
202
- defaultMessage: "{tagName} has already been added.",
203
- description: "Alert for adding a tag UI element that is already included in the list.",
204
- }, { tagName: tag });
205
- }
206
- tagLockedMessage(tag) {
207
- return intl.formatMessage({
208
- id: "tagInput.tagLocked",
209
- defaultMessage: "{tagName} is locked and cannot be removed.",
210
- description: "Alert indicating a tag UI element cannot be removed from its list.",
211
- }, { tagName: tag });
212
- }
213
- isElOrChild(el) {
214
- return el === this.el || this.el.shadowRoot.contains(el) || this.el.contains(el);
215
- }
216
- componentWillLoad() {
217
- if (!this.placeholder) {
218
- this.placeholder = this.createPlaceholderDefault(this.addNew, this.optionEls.length > 0);
219
- }
220
- if (!this.label) {
221
- console.error("wm-tag-input must have a label property");
222
- }
223
- this.el.focus = () => {
224
- const firstFocusableTag = this._tagEls[0];
225
- if (firstFocusableTag) {
226
- this.tagAreaEl.focus();
227
- this.focusTag(firstFocusableTag);
228
- }
229
- else {
230
- this.inputEl.focus();
231
- }
232
- };
233
- // on resize of component, trigger componentDidRender -> positionInput
234
- const resizeObserver = new ResizeObserver(() => this.debouncedUpdate());
235
- resizeObserver.observe(this.el);
236
- // if within wm-modal, change max-height to vh unit
237
- if (this.el.closest("wm-modal")) {
238
- this.inModal = true;
239
- }
240
- const lockedTags = [];
241
- const regularTags = [];
242
- this.optionEls.forEach((o) => {
243
- if (o.locked) {
244
- lockedTags.push(o);
245
- }
246
- else if (o.selected) {
247
- regularTags.push(o);
248
- }
249
- });
250
- this.tagsList = [...lockedTags, ...regularTags];
251
- }
252
- componentDidLoad() {
253
- // Set up observer to announce changes in selected tags, or removed user-added tags
254
- const observerAnnouncer = new MutationObserver((optionListMutations) => optionListMutations.forEach((mutationRecord) => this.handleChangeAnnouncement(mutationRecord)));
255
- observerAnnouncer.observe(this.el, {
256
- subtree: true,
257
- attributes: true,
258
- attributeFilter: ["selected"],
259
- childList: true,
260
- });
261
- // Set up observer that ensures parent reload
262
- // when children wm-tag-options are removed
263
- const optionListObserver = new MutationObserver((optionListMutations) => optionListMutations.forEach((mutationRecord) => this.handleOptionListChange(mutationRecord)));
264
- optionListObserver.observe(this.el, {
265
- childList: true,
266
- });
267
- // Set up the observer that will handle focus
268
- // when tag list changes
269
- if (!!this.tagAreaEl) {
270
- const tagListObserver = new MutationObserver((tagListMutations) => tagListMutations.forEach((mutationRecord) => this.handleTagListChange(mutationRecord)));
271
- tagListObserver.observe(this.tagAreaEl, {
272
- childList: true,
273
- });
274
- }
275
- }
276
- handleChangeAnnouncement(mutationRecord) {
277
- const tagOptionEl = mutationRecord.target;
278
- if (mutationRecord.type == "childList" && mutationRecord.removedNodes.length > 0) {
279
- // announce deselection of user-added tag, whose element removal is picked up
280
- this.announce(this.tagRemovedMessage(mutationRecord.removedNodes[0].textContent));
281
- }
282
- else if (mutationRecord.type == "attributes") {
283
- const tagName = this.getTagName(tagOptionEl);
284
- // announce selection or deselection of all kinds of tags
285
- if (tagOptionEl.selected) {
286
- let changeAnnouncement = this.tagAddedMessage(tagName);
287
- if (this.tagLimitReached) {
288
- changeAnnouncement += ` ${this.maxTagsReachedMessage}`;
289
- }
290
- this.announce(changeAnnouncement);
291
- }
292
- else {
293
- this.announce(this.tagRemovedMessage(tagName));
294
- }
295
- }
296
- }
297
- handleOptionListChange(record) {
298
- const addedNodes = Array.from(record.addedNodes);
299
- if (addedNodes.length > 0) {
300
- addedNodes.forEach((n) => !this.tagsList.includes(n) && this.tagsList.push(n));
301
- }
302
- const removedNodes = Array.from(record.removedNodes);
303
- if (removedNodes.length > 0) {
304
- this.tagsList = this.tagsList.filter((t) => !removedNodes.includes(t));
305
- }
306
- }
307
- handleTagOptionSelected(ev) {
308
- const selOption = ev.target;
309
- this.tagsList = this.tagsList.concat(selOption);
310
- }
311
- handleTagOptionDeselected(ev) {
312
- const deselOption = ev.target;
313
- this.tagsList = this.tagsList.filter((t) => t != deselOption);
314
- }
315
- handleTagListChange(mutationRecord) {
316
- const addedTags = Array.from(mutationRecord.addedNodes);
317
- if (!!addedTags) {
318
- addedTags.forEach((t) => {
319
- t.classList.add("highlight");
320
- });
321
- }
322
- // there are 2 cases: the option still exists but is no longer selected,
323
- // or it was removed altogether
324
- const removedTag = mutationRecord.removedNodes[0];
325
- if (!!removedTag) {
326
- removedTag.classList.remove("highlight");
327
- // this is a trick. focusedTag gets the ref from an index. When an element
328
- // is removed it will fall back on the new element with that index if it exists
329
- if (this.focusedTag) {
330
- this.focusTag(this.focusedTag);
331
- }
332
- else if (this._tagEls.length > 0) {
333
- // Otherwise the last tag was deleted and we reassign to the new last tag.
334
- const tagToFocus = this._tagEls[this._tagEls.length - 1];
335
- this.focusTag(tagToFocus);
336
- }
337
- else {
338
- // unless there are no more tags...
339
- this.inputEl.focus();
340
- }
341
- }
342
- }
343
- componentDidRender() {
344
- this.positionInput();
345
- // check each tag if truncation is needed
346
- this._tagEls.forEach((tag) => {
347
- const textEl = tag.querySelector(".tag-text");
348
- const wrapper = this.el.shadowRoot.querySelector(".tags-and-input-wrapper");
349
- const leftBound = textEl.getBoundingClientRect().left;
350
- // the numbers represent spacing values for padding, margin, and delete icon
351
- const rightBound = wrapper.getBoundingClientRect().right - 10 - 8 - 28;
352
- const id = tag.id.replace("tag-", "");
353
- const optionEl = id && this.el.querySelector("#" + id);
354
- if (optionEl) {
355
- // tag text for table variant is first column text
356
- textEl.textContent = truncateText(textEl, this.getTagName(optionEl), rightBound - leftBound, 5);
357
- }
358
- });
359
- }
360
- createPlaceholderDefault(addNew, hasOptions) {
361
- const addAndSearchPlaceholder = intl.formatMessage({
362
- id: "tagInput.placeholderAddAndSearch",
363
- defaultMessage: "Add or search for a tag",
364
- description: "Placeholder text. Use imperative",
365
- });
366
- const searchPlaceholder = intl.formatMessage({
367
- id: "tagInput.placeholderSearch",
368
- defaultMessage: "Search and select a tag",
369
- description: "Placeholder text. Use imperative",
370
- });
371
- const addPlaceholder = intl.formatMessage({
372
- id: "tagInput.placeholderAdd",
373
- defaultMessage: "Add a new tag",
374
- description: "Placeholder text. Use imperative",
375
- });
376
- let placeholder = "";
377
- if (addNew && hasOptions) {
378
- placeholder = addAndSearchPlaceholder;
379
- }
380
- else if (!addNew && hasOptions) {
381
- placeholder = searchPlaceholder;
382
- }
383
- else if (addNew) {
384
- placeholder = addPlaceholder;
385
- }
386
- return placeholder;
387
- }
388
- handleClick(ev) {
389
- const el = ev.target;
390
- if (this.isDropdown && !this.el.contains(el) && this.isExpanded) {
391
- this.closeDropdown();
392
- }
393
- }
394
- announceError() {
395
- if (this.errorMessage) {
396
- setTimeout(() => this.announce(this.errorMessage), 100);
397
- }
398
- }
399
- handleOptionClick(ev) {
400
- ev.preventDefault();
401
- this.resetInput();
402
- let option;
403
- if (this.isTable) {
404
- option = ev.target;
405
- option = this.tagOptionFromEl(option.closest("tr"));
406
- }
407
- else {
408
- option = this.tagOptionFromEl(ev.target);
409
- }
410
- // if someone wants to attach a click event listener on wm-tag-option
411
- option.click();
412
- if (option.locked) {
413
- this.announce(this.tagLockedMessage(this.getTagName(option)));
414
- }
415
- else {
416
- option.selected
417
- ? this.isTable && option.emitDeselectedEvent() // dropdown doesn't deselect on option click
418
- : option.emitSelectedEvent();
419
- }
420
- }
421
- // From wm-button
422
- // we need to listen for scroll events during the capture phase because they do not bubble up
423
- // there can be layouts where the main content has 100vh and overflows
424
- // in these cases window will register no scroll events unless we catch on they way down
425
- dismissTooltip() {
426
- if (this.tooltipVisible) {
427
- hideTooltip();
428
- }
429
- }
430
- handleInputKeyDown(ev) {
431
- if (/^.$/.test(ev.key) && this.charCount >= this.characterLimit) {
432
- this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
433
- }
434
- switch (ev.key) {
435
- case "Enter":
436
- ev.preventDefault();
437
- this.handleInputEnter();
438
- break;
439
- case "ArrowDown":
440
- ev.preventDefault();
441
- this.handleInputArrowDown();
442
- break;
443
- case "ArrowUp":
444
- ev.preventDefault();
445
- this.handleInputArrowUp();
446
- break;
447
- case "ArrowLeft":
448
- if (this.isTable) {
449
- ev.preventDefault();
450
- this.focusPrevCell();
451
- }
452
- break;
453
- case "ArrowRight":
454
- if (this.isTable) {
455
- ev.preventDefault();
456
- this.focusNextCell();
457
- }
458
- break;
459
- case "Escape":
460
- if (this.isDropdown && this.isExpanded) {
461
- ev.preventDefault();
462
- this.closeDropdown();
463
- }
464
- break;
465
- case "ArrowLeft":
466
- case "Backspace":
467
- this.handleInputBackspace();
468
- break;
469
- }
470
- }
471
- handleInputFocus() {
472
- this.clearOptionFocus();
473
- if (this.isDropdown) {
474
- this.openDropdown();
475
- }
476
- }
477
- handleInputChanged(ev) {
478
- this.clearOptionFocus();
479
- if (this.isDropdown) {
480
- if (this.charCount >= this.characterLimit - 5) {
481
- this.announce(this.generateCharacterLimitWarning(this.charCount, this.characterLimit));
482
- }
483
- if (!this.isExpanded) {
484
- this.openDropdown();
485
- }
486
- }
487
- const val = ev.target.value;
488
- if (val.includes(",") && this.addNew) {
489
- this.addTags(val);
490
- }
491
- else {
492
- this.announceExistingOptions();
493
- }
494
- }
495
- handleInputEnter() {
496
- // user has selected an option in the list
497
- if (this.focusedOption) {
498
- if (this.focusedOption.locked) {
499
- this.announce(this.tagLockedMessage(this.getTagName(this.focusedOption)));
500
- }
501
- else {
502
- this.focusedOption.click();
503
- this.focusedOption.selected
504
- ? this.isTable && this.focusedOption.emitDeselectedEvent()
505
- : this.focusedOption.emitSelectedEvent();
506
- this.resetInput();
507
- }
508
- }
509
- else if (this.isDropdown) {
510
- // user is adding a new tag
511
- const tagName = this.inputEl.value;
512
- if (!!tagName) {
513
- this.isExistingTag(tagName) ? this.announce(this.tagAlreadyAddedMessage(tagName)) : this.addTags(tagName);
514
- this.resetInput();
515
- }
516
- }
517
- }
518
- handleInputArrowDown() {
519
- if (this.isDropdown) {
520
- if (!this.isExpanded) {
521
- this.openDropdown();
522
- }
523
- else {
524
- let items = [];
525
- // the id check prevents a bug where the ref is reassigned to the first option causing it to be added twice (after adding a new user option)
526
- if (this.addNewButton && this.addNewButton.id === "add-new-btn") {
527
- items.push(this.addNewButton);
528
- }
529
- this.filteredOptionEls.forEach((o) => {
530
- items.push(this.elFromTagOption(o));
531
- });
532
- const next = findNext(items, this._focusedOption, true);
533
- this.focusOption(next);
534
- }
535
- }
536
- else {
537
- const items = this.filteredOptionEls.map((o) => this.elFromTagOption(o));
538
- const next = findNext(items, this._focusedOption, true);
539
- this.focusOption(next);
540
- }
541
- }
542
- handleInputArrowUp() {
543
- if (this.isDropdown) {
544
- if (!this.isExpanded) {
545
- this.openDropdown();
546
- }
547
- else {
548
- let items = [];
549
- if (this.addNewButton) {
550
- items.push(this.addNewButton);
551
- }
552
- this.filteredOptionEls.forEach((o) => {
553
- items.push(this.elFromTagOption(o));
554
- });
555
- const prev = findPrev(items, this._focusedOption, true);
556
- this.focusOption(prev);
557
- }
558
- }
559
- else {
560
- const items = this.filteredOptionEls.map((o) => this.elFromTagOption(o));
561
- const prev = findPrev(items, this._focusedOption, true);
562
- this.focusOption(prev);
563
- }
564
- }
565
- handleInputBackspace() {
566
- if (this.inputEl.value === "" && this._tagEls.length > 0) {
567
- this.isKeying = true;
568
- // wait for events to finish firing before redirecting focus
569
- // prevents double input in input area and tag area
570
- window.requestAnimationFrame(() => {
571
- this.tagAreaEl.focus();
572
- this.focusTag(this._tagEls[this._tagEls.length - 1]);
573
- });
574
- }
575
- }
576
- handleTagAreaKeyDown(ev) {
577
- switch (ev.key) {
578
- case "ArrowLeft":
579
- case "ArrowUp":
580
- ev.preventDefault();
581
- if (this.focusedTag) {
582
- const prev = findPrev(this._tagEls, this.focusedTag, true);
583
- this.focusTag(prev);
584
- }
585
- break;
586
- case "ArrowRight":
587
- case "ArrowDown":
588
- ev.preventDefault();
589
- if (this.focusedTag) {
590
- const next = findNext(this._tagEls, this.focusedTag, true);
591
- this.focusTag(next);
592
- }
593
- break;
594
- case "Backspace":
595
- case "Delete":
596
- if (this.focusedTag) {
597
- const option = this.tagOptionFromTag(this.focusedTag);
598
- if (option.locked) {
599
- this.announce(this.tagLockedMessage(this.getTagName(option)));
600
- }
601
- else {
602
- option.emitDeselectedEvent();
603
- }
604
- }
605
- break;
606
- }
607
- }
608
- handleBlur(ev) {
609
- this.dismissTooltip();
610
- this.clearOptionFocus();
611
- const relTarget = ev.relatedTarget;
612
- if (!this.isElOrChild(relTarget)) {
613
- this.fieldWrapperEl.classList.remove("focused");
614
- if (this.isDropdown) {
615
- this.closeDropdown();
616
- }
617
- }
618
- }
619
- handleTagAreaFocus(ev) {
620
- if (this.isDropdown) {
621
- this.closeDropdown();
622
- }
623
- if (this._tagEls.length > 0) {
624
- const relTarget = ev.relatedTarget;
625
- if (relTarget && relTarget.id === "input") {
626
- const lastFocusableTag = this._tagEls[this._tagEls.length - 1];
627
- this.focusTag(lastFocusableTag);
628
- }
629
- else {
630
- const firstFocusableTag = this._tagEls[0];
631
- this.focusTag(firstFocusableTag);
632
- }
633
- }
634
- }
635
- handleTableWrapperFocus() {
636
- // Forward focus to first focusable table row when container receives focus
637
- if (this.isTable) {
638
- // First try filtered options, then fall back to all options
639
- let targetOptions = this.filteredOptionEls;
640
- if (targetOptions.length === 0) {
641
- targetOptions = this.optionEls;
642
- }
643
- if (targetOptions.length > 0) {
644
- const firstOption = targetOptions[0];
645
- const firstRow = this.elFromTagOption(firstOption);
646
- if (firstRow) {
647
- this.focusOption(firstRow);
648
- return; // Successfully handled focus
649
- }
650
- }
651
- // Fallback: if we can't find any options or rows, keep focus on input
652
- // This prevents focus from going to body
653
- if (this.inputEl) {
654
- this.inputEl.focus();
655
- }
656
- }
657
- }
658
- handleTableWrapperKeyDown(ev) {
659
- // Override browser's default scrolling behavior and delegate to our navigation
660
- switch (ev.key) {
661
- case "ArrowDown":
662
- ev.preventDefault();
663
- this.handleInputArrowDown();
664
- break;
665
- case "ArrowUp":
666
- ev.preventDefault();
667
- this.handleInputArrowUp();
668
- break;
669
- case "ArrowLeft":
670
- ev.preventDefault();
671
- this.focusPrevCell();
672
- break;
673
- case "ArrowRight":
674
- ev.preventDefault();
675
- this.focusNextCell();
676
- break;
677
- case "Enter":
678
- ev.preventDefault();
679
- this.handleInputEnter();
680
- break;
681
- case "Escape":
682
- ev.preventDefault();
683
- // Focus back to input as a safe fallback
684
- if (this.inputEl) {
685
- this.inputEl.focus();
686
- }
687
- break;
688
- }
689
- }
690
- focusPrevCell() {
691
- if (this.focusedOption) {
692
- if (this.focusedColumn > 0) {
693
- this.focusedColumn -= 1;
694
- }
695
- }
696
- }
697
- focusNextCell() {
698
- if (this._focusedOption) {
699
- const lastCellIdx = this._focusedOption.querySelectorAll("td").length - 1;
700
- if (this.focusedColumn < lastCellIdx) {
701
- this.focusedColumn += 1;
702
- }
703
- }
704
- }
705
- focusOption(optionToFocus) {
706
- if (optionToFocus) {
707
- // will be undefined for the "Add New" button
708
- this.focusedOption = this.tagOptionFromEl(optionToFocus);
709
- if (optionToFocus === this.addNewButton) {
710
- this.addNewButton.classList.add("focused");
711
- }
712
- else {
713
- this.addNewButton && this.addNewButton.classList.remove("focused");
714
- }
715
- if (this.isTable) {
716
- // tooltip
717
- const contentWrapper = this._focusedOption.querySelector(".cell-content-wrapper");
718
- const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;
719
- this.dismissTooltip();
720
- if (isTruncated) {
721
- // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text
722
- showTooltip("bottom", this._focusedOption, this._focusedOption.innerText);
723
- }
724
- }
725
- optionToFocus.scrollIntoView({ block: "nearest" });
726
- }
727
- }
728
- showTooltipIfTruncated(el) {
729
- const displayedText = el.querySelector(".tag-text").textContent;
730
- const id = el.id.replace("tag-", "");
731
- if (id) {
732
- const tagEl = this.el.querySelector("#" + id);
733
- const fullText = this.getTagName(tagEl);
734
- if (displayedText !== fullText && displayedText.includes("...")) {
735
- showTooltip("bottom", el, fullText);
736
- }
737
- }
738
- }
739
- focusTag(element) {
740
- // technically it's the tag area that has focus. This function handles the aria-activedescendant value within that parent
741
- this.focusedTagIndex = this._tagEls.indexOf(element);
742
- element.scrollIntoView({ block: "nearest" });
743
- window.requestAnimationFrame(() => {
744
- hideTooltip();
745
- this.showTooltipIfTruncated(element);
746
- });
747
- }
748
- clearOptionFocus() {
749
- this.focusedOption = undefined;
750
- this.focusedColumn = 0;
751
- }
752
- openDropdown() {
753
- // offset of -2px to avoid overlapping the focus border
754
- this.openUp = shouldOpenUp(this.el, this.dropdownEl.clientHeight, this.el.clientHeight, -2);
755
- this.isExpanded = true;
756
- }
757
- closeDropdown() {
758
- this.clearOptionFocus();
759
- this.isExpanded = false;
760
- }
761
- resetInput() {
762
- this.inputEl.value = "";
763
- }
764
- announce(message) {
765
- // \u00A0 is a non-breaking space character, which causes the message to be read as a new one
766
- if (this.liveRegionEl.textContent === message) {
767
- message += "\u00A0";
768
- }
769
- this.liveRegionMessage = message;
770
- }
771
- addTags(tagNames) {
772
- // covers both typing "," and pasting in text that includes ","
773
- // if tag added without "," (typing enter), split puts the whole string in an array
774
- const addedTags = tagNames.split(",").filter((t) => t.match(/\S/));
775
- addedTags.forEach((tag) => {
776
- this.wmTagInputTagAdded.emit(tag);
777
- });
778
- this.announce(this.tagAddedMessage(addedTags.join(", ")));
779
- this.resetInput();
780
- }
781
- announceExistingOptions() {
782
- // request animation frame to wait for re-rendering of filtered options
783
- window.requestAnimationFrame(() => {
784
- const numResults = this.filteredOptionEls.length;
785
- const existingOptionsMessage = intl.formatMessage({
786
- id: "tagInput.existingOptions",
787
- defaultMessage: "{num, plural, one {1 existing option.} other {# existing options.}}",
788
- }, { num: numResults });
789
- this.announce(existingOptionsMessage);
790
- });
791
- }
792
- generateCharacterLimitWarning(charCount, charLimit) {
793
- let message = globalMessages.getCharactersEntered(charCount, charLimit);
794
- if (charCount >= charLimit) {
795
- message += ` ${globalMessages.characterLimitReached}`;
796
- }
797
- return message;
798
- }
799
- positionInput() {
800
- if (this.tagAreaEl) {
801
- const lastTag = this._tagEls[this._tagEls.length - 1];
802
- // default placement to fall back to when no tags are present, or not enough space is available
803
- this.inputEl.style.position = "static";
804
- this.inputEl.style.width = "100%";
805
- this.inputEl.classList.add("extended");
806
- if (lastTag) {
807
- const spaceAvailable = this.tagAreaEl.getBoundingClientRect().right - lastTag.getBoundingClientRect().right;
808
- if (spaceAvailable >= this.inputMinimumWidth) {
809
- // because the input has right: 0px
810
- // all thats needed to properly place it is setting position: absolute, top, and width
811
- this.inputEl.style.position = "absolute";
812
- this.inputEl.style.top = lastTag.offsetTop.toString() + "px";
813
- this.inputEl.style.width = (spaceAvailable - 8).toString() + "px";
814
- this.inputEl.classList.remove("extended");
815
- }
816
- }
817
- }
818
- }
819
- handleTagMouseEnter(ev) {
820
- this.showTooltipIfTruncated(ev.target);
821
- }
822
- renderDropdown() {
823
- return (h("div", { class: `dropdown-wrapper ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, ref: (el) => (this.dropdownEl = el) }, h("div", { id: "help-text", class: "help-text" }, this.renderHelpText()), h("ul", { class: "dropdown", id: "dropdown", role: "listbox", "aria-multiselectable": "true", "aria-expanded": this.isExpanded ? "true" : "false", "aria-label": this.label, tabindex: -1 }, this.inputEl && this.renderAddNewButton(), this.filteredOptionEls.map((o) => this.renderListItem(o)))));
824
- }
825
- renderHelpText() {
826
- if (this.helpText)
827
- return this.helpText;
828
- let helpText = "";
829
- if (this.optionEls.length > 0) {
830
- helpText = this.selectionHelpText;
831
- }
832
- if (this.addNew) {
833
- helpText += " " + this.addNewHelpText;
834
- }
835
- return helpText;
836
- }
837
- renderAddNewButton() {
838
- const inputValue = this.inputEl.value.trim();
839
- const hasNonWhiteSpaceCharacters = this.inputEl.value.match(/\S/);
840
- const optionAlreadyExists = this.isExistingTag(this.inputEl.value.trim());
841
- return (this.addNew &&
842
- hasNonWhiteSpaceCharacters &&
843
- !optionAlreadyExists && (h("li", { ref: (el) => (this.addNewButton = el), id: "add-new-btn", class: "add-new-btn", onClick: () => this.addTags(inputValue) }, this.addNewTagMessage(inputValue))));
844
- }
845
- renderTable() {
846
- return (h("div", { class: "table-wrapper", onScroll: () => this.dismissTooltip(), onFocus: () => this.handleTableWrapperFocus(), onKeyDown: (ev) => this.handleTableWrapperKeyDown(ev) }, h("table", { id: "table", role: "grid", class: `${this.colWidths ? "fixed-widths" : ""}`, "aria-label": this.label, "aria-multiselectable": "true" }, this.renderTableHeaders(), this.filteredOptionEls.length ? (this.filteredOptionEls.map((o) => this.renderTableRow(o))) : (h("div", { class: "no-results" }, this.noResultsMessage)))));
847
- }
848
- renderTableHeaders() {
849
- return (h("tr", { class: "headers", role: "row" }, csvToArray(this.colHeaders).map((header, idx) => {
850
- let overflowRule = "wrap";
851
- if (this.colWrap && csvToArray(this.colWrap)[idx]) {
852
- overflowRule = csvToArray(this.colWrap)[idx];
853
- }
854
- return (h("th", { class: `header-cell ${overflowRule}`, role: "columnheader",
855
- // @ts-ignore
856
- width: this.colWidths ? csvToArray(this.colWidths)[idx] : "" }, header));
857
- })));
858
- }
859
- renderTag(o) {
860
- const focused = this.focusedTag && this.focusedTag.id === "tag-" + o.id ? "focused" : "";
861
- const tagName = this.getTagName(o);
862
- return (h("li", { id: "tag-" + o.id, role: "option", class: `tag ${focused} ${o.locked ? "locked" : ""}`, "aria-describedby": `tag-${o.id}-description`, onMouseEnter: (ev) => this.handleTagMouseEnter(ev), onMouseLeave: hideTooltip }, h("span", { class: "sr-only" }, tagName), h("div", { class: "description", id: `tag-${o.id}-description` }, o.locked ? "locked" : ""), h("span", { class: "tag-text", "aria-hidden": "true" }, tagName), o.locked ? (h("div", { class: "svg-icon svg-locked" })) : (h("button", { class: "icon remove-btn", tabIndex: -1, onClick: () => o.emitDeselectedEvent() }, h("div", { class: "svg-icon svg-close" })))));
863
- }
864
- renderTags() {
865
- return this.tagsList.map((o) => this.renderTag(o));
866
- }
867
- renderTagCounter() {
868
- if (this.maxTags) {
869
- return (h("div", { class: "lower-row" }, h("div", { id: "max-tags" }, this.renderMaxTags())));
870
- }
871
- }
872
- renderMaxTags() {
873
- if (this.helpText) {
874
- return this.helpText;
875
- }
876
- else {
877
- let msg = `${this.tagsAddedMessage}: ${this.taggedOptions.length}/${this.maxTags}`;
878
- if (this.tagLimitReached) {
879
- msg += `- ${this.maxTagsReachedMessage}`;
880
- }
881
- return msg;
882
- }
883
- }
884
- handleCellMouseEnter(ev) {
885
- const cell = ev.target;
886
- const contentWrapper = cell.querySelector(".cell-content-wrapper");
887
- const isTruncated = contentWrapper.scrollWidth > contentWrapper.clientWidth;
888
- if (isTruncated) {
889
- // innerText is necessary vs textContent, as innerText ignores sr-only / display: none text
890
- showTooltip("bottom", cell, cell.innerText);
891
- }
892
- }
893
- renderTableCells(o) {
894
- const colValues = [o.col1, o.col2, o.col3, o.col4].filter((val) => !!val);
895
- return colValues.map((val, idx) => {
896
- const cellId = `${o.id}-col${idx + 1}`;
897
- let overflowRule = "wrap";
898
- if (this.colWrap && csvToArray(this.colWrap)[idx]) {
899
- overflowRule = csvToArray(this.colWrap)[idx];
900
- }
901
- const classes = {
902
- focused: !!this._focusedCell && cellId === this._focusedCell.id,
903
- };
904
- return (h("td", { id: cellId, class: classes, role: "gridcell", "aria-describedby": `${cellId}-description`, "aria-selected": o.selected ? "true" : "false", "aria-readonly": o.locked ? "true" : null, onMouseEnter: (ev) => this.handleCellMouseEnter(ev), onMouseLeave: () => hideTooltip() }, h("div", { class: `cell-content-wrapper ${overflowRule}` }, o.locked && idx == 0 && h("div", { class: "svg-icon svg-locked" }), val), h("div", { class: "description", id: `${cellId}-description` }, o.locked ? globalMessages.locked : "")));
905
- });
906
- }
907
- renderTableRow(o) {
908
- const classes = {
909
- selected: o.selected,
910
- locked: o.locked,
911
- focused: this.focusedOption && o === this.focusedOption ? true : false,
912
- };
913
- return (h("tr", { id: o.id, class: classes, onClick: (ev) => this.handleOptionClick(ev) }, this.renderTableCells(o)));
914
- }
915
- renderListItem(o) {
916
- if (!!this.inputEl) {
917
- const isFocused = this.focusedOption && o === this.focusedOption;
918
- return (h("li", { id: o.id, role: "option", class: `option ${isFocused ? "focused" : ""}`, "aria-selected": o.selected ? "true" : "false", onClick: (ev) => this.handleOptionClick(ev) }, o.textContent));
919
- }
920
- }
921
- render() {
922
- return (h("div", { key: '01e06180a6a01df582f810c719445fbeed00fe4a', class: `wrapper label-${this.labelPosition} ${this.errorMessage ? "invalid" : ""}` }, h("div", { key: 'f6afeda4ee70df39da5d27bf785f4fc2fd0d72c0', class: "label-wrapper" }, h("label", { key: 'c2c81afa191d66c6d33f1b717844b947200e86e0', class: "label", htmlFor: "input" }, this.label, this.requiredField && (h("span", { key: '1da48d6c19e59a014f1aedc0ab33554e64756576', class: "required", "aria-hidden": "true" }, "*")))), h("div", { key: 'ddf3c89a5af6c8c734e537be9f01fd1b306a7b49', class: `field-wrapper ${this.el.shadowRoot.activeElement === this.inputEl ? "focused" : ""} ${this.errorMessage ? "invalid" : ""}`, ref: (el) => (this.fieldWrapperEl = el) }, h("div", { key: 'c332f024838f3b710abe7721a1761d917f4cc34e', class: "upper-row" }, h("div", { key: 'bc81483ffa3695189828215c79ab362b8374f4a7', class: "svg-icon svg-search" }), h("div", { key: '668bdcfc8a6b06e14469fc0f977f79f444773b3f', class: `tags-and-input-wrapper ${this.inModal ? "in-modal" : ""}` }, h("ul", { key: '6ea2700c19f37305e2ae8e067eea61bff23b8dc8', ref: (el) => (this.tagAreaEl = el), class: `tag-area ${this.taggedOptions.length === 0 && "empty"} ${this.isKeying ? "user-is-keying" : ""}`, role: "listbox", "aria-activedescendant": this.focusedTag ? this.focusedTag.id : null, "aria-orientation": "horizontal", "aria-label": `${this.label} ${this.tagAreaInstructions}`, tabindex: this._tagEls.length > 0 ? 0 : -1, "aria-describedby": `info max-tags`, onFocus: (ev) => this.handleTagAreaFocus(ev), onBlur: (ev) => {
923
- this.focusedTagIndex = undefined;
924
- this.handleBlur(ev);
925
- }, onKeyDown: (ev) => this.handleTagAreaKeyDown(ev) }, this.renderTags()), h("input", { key: 'b99ca40b61d052f9fe7a30881f1479abf22925b6', id: "input", class: "input", role: "combobox", ref: (el) => (this.inputEl = el), autocomplete: "off", "aria-required": this.requiredField ? "true" : null, "aria-controls": this.tagInputType, "aria-describedby": `help-text${this.errorMessage ? " error " : ""} max-tags`, "aria-label": `${this.label} ${this.isDropdown ? globalMessages.getCharacterLimit(this.characterLimit) : ""}`, "aria-expanded": this.isDropdown ? this.isExpanded.toString() : null, "aria-activedescendant": this.inputActiveDescendantId, placeholder: this.placeholder, maxLength: this.isDropdown ? this.characterLimit : undefined, onInput: (ev) => this.handleInputChanged(ev), onBlur: (ev) => {
926
- this.handleBlur(ev);
927
- }, onFocus: () => this.handleInputFocus(), onKeyDown: (ev) => this.handleInputKeyDown(ev) })), this.isDropdown && (h("div", { key: 'a2f6daf9eab25e6dcd9ead5a70dc66b0afe1ede9', class: "character-count" }, this.charCount, "/", this.characterLimit))), this.renderTagCounter(), this.isDropdown && this.renderDropdown()), this.info && (h("div", { key: '3a733a7064be0b93ece1c7f0ed2cb3165184b3c3', id: "info", class: "info-text" }, this.info)), h("div", { key: '2d8435c9aa077e8902a9cccf1c1057e48926240a', id: "error" }, this.errorMessage), h("div", { key: 'd9a7d93201d0d7ef4ec5f7ee708ddfe41dad7da4', class: "sr-only", "aria-live": "polite", ref: (el) => (this.liveRegionEl = el), "aria-atomic": "true" }, this.liveRegionMessage), this.isTable && this.renderTable()));
928
- }
929
- static get is() { return "wm-tag-input"; }
930
- static get encapsulation() { return "shadow"; }
931
- static get delegatesFocus() { return true; }
932
- static get originalStyleUrls() {
933
- return {
934
- "$": ["wm-tag-input.scss"]
935
- };
936
- }
937
- static get styleUrls() {
938
- return {
939
- "$": ["wm-tag-input.css"]
940
- };
941
- }
942
- static get properties() {
943
- return {
944
- "label": {
945
- "type": "string",
946
- "mutable": false,
947
- "complexType": {
948
- "original": "string",
949
- "resolved": "string",
950
- "references": {}
951
- },
952
- "required": true,
953
- "optional": false,
954
- "docs": {
955
- "tags": [],
956
- "text": ""
957
- },
958
- "attribute": "label",
959
- "reflect": false
960
- },
961
- "errorMessage": {
962
- "type": "string",
963
- "mutable": false,
964
- "complexType": {
965
- "original": "string",
966
- "resolved": "string | undefined",
967
- "references": {}
968
- },
969
- "required": false,
970
- "optional": true,
971
- "docs": {
972
- "tags": [],
973
- "text": ""
974
- },
975
- "attribute": "error-message",
976
- "reflect": false
977
- },
978
- "info": {
979
- "type": "string",
980
- "mutable": false,
981
- "complexType": {
982
- "original": "string",
983
- "resolved": "string | undefined",
984
- "references": {}
985
- },
986
- "required": false,
987
- "optional": true,
988
- "docs": {
989
- "tags": [],
990
- "text": ""
991
- },
992
- "attribute": "info",
993
- "reflect": false
994
- },
995
- "labelPosition": {
996
- "type": "string",
997
- "mutable": false,
998
- "complexType": {
999
- "original": "\"top\" | \"left\" | \"none\"",
1000
- "resolved": "\"left\" | \"none\" | \"top\"",
1001
- "references": {}
1002
- },
1003
- "required": false,
1004
- "optional": false,
1005
- "docs": {
1006
- "tags": [],
1007
- "text": ""
1008
- },
1009
- "attribute": "label-position",
1010
- "reflect": false,
1011
- "defaultValue": "\"top\""
1012
- },
1013
- "maxTags": {
1014
- "type": "number",
1015
- "mutable": false,
1016
- "complexType": {
1017
- "original": "number",
1018
- "resolved": "number | undefined",
1019
- "references": {}
1020
- },
1021
- "required": false,
1022
- "optional": true,
1023
- "docs": {
1024
- "tags": [],
1025
- "text": ""
1026
- },
1027
- "attribute": "max-tags",
1028
- "reflect": false
1029
- },
1030
- "placeholder": {
1031
- "type": "string",
1032
- "mutable": true,
1033
- "complexType": {
1034
- "original": "string",
1035
- "resolved": "string | undefined",
1036
- "references": {}
1037
- },
1038
- "required": false,
1039
- "optional": true,
1040
- "docs": {
1041
- "tags": [],
1042
- "text": ""
1043
- },
1044
- "attribute": "placeholder",
1045
- "reflect": false
1046
- },
1047
- "requiredField": {
1048
- "type": "boolean",
1049
- "mutable": false,
1050
- "complexType": {
1051
- "original": "boolean",
1052
- "resolved": "boolean",
1053
- "references": {}
1054
- },
1055
- "required": false,
1056
- "optional": false,
1057
- "docs": {
1058
- "tags": [],
1059
- "text": ""
1060
- },
1061
- "attribute": "required-field",
1062
- "reflect": false,
1063
- "defaultValue": "false"
1064
- },
1065
- "tagInputType": {
1066
- "type": "string",
1067
- "mutable": false,
1068
- "complexType": {
1069
- "original": "\"dropdown\" | \"table\"",
1070
- "resolved": "\"dropdown\" | \"table\"",
1071
- "references": {}
1072
- },
1073
- "required": false,
1074
- "optional": false,
1075
- "docs": {
1076
- "tags": [],
1077
- "text": ""
1078
- },
1079
- "attribute": "tag-input-type",
1080
- "reflect": false,
1081
- "defaultValue": "\"dropdown\""
1082
- },
1083
- "helpText": {
1084
- "type": "string",
1085
- "mutable": false,
1086
- "complexType": {
1087
- "original": "string",
1088
- "resolved": "string | undefined",
1089
- "references": {}
1090
- },
1091
- "required": false,
1092
- "optional": true,
1093
- "docs": {
1094
- "tags": [],
1095
- "text": ""
1096
- },
1097
- "attribute": "help-text",
1098
- "reflect": false
1099
- },
1100
- "addNew": {
1101
- "type": "boolean",
1102
- "mutable": false,
1103
- "complexType": {
1104
- "original": "boolean",
1105
- "resolved": "boolean",
1106
- "references": {}
1107
- },
1108
- "required": false,
1109
- "optional": false,
1110
- "docs": {
1111
- "tags": [],
1112
- "text": ""
1113
- },
1114
- "attribute": "add-new",
1115
- "reflect": false,
1116
- "defaultValue": "true"
1117
- },
1118
- "characterLimit": {
1119
- "type": "number",
1120
- "mutable": false,
1121
- "complexType": {
1122
- "original": "number",
1123
- "resolved": "number",
1124
- "references": {}
1125
- },
1126
- "required": false,
1127
- "optional": false,
1128
- "docs": {
1129
- "tags": [],
1130
- "text": ""
1131
- },
1132
- "attribute": "character-limit",
1133
- "reflect": false,
1134
- "defaultValue": "50"
1135
- },
1136
- "colHeaders": {
1137
- "type": "string",
1138
- "mutable": false,
1139
- "complexType": {
1140
- "original": "string",
1141
- "resolved": "string",
1142
- "references": {}
1143
- },
1144
- "required": true,
1145
- "optional": false,
1146
- "docs": {
1147
- "tags": [],
1148
- "text": ""
1149
- },
1150
- "attribute": "col-headers",
1151
- "reflect": false
1152
- },
1153
- "colWidths": {
1154
- "type": "string",
1155
- "mutable": false,
1156
- "complexType": {
1157
- "original": "string",
1158
- "resolved": "string | undefined",
1159
- "references": {}
1160
- },
1161
- "required": false,
1162
- "optional": true,
1163
- "docs": {
1164
- "tags": [],
1165
- "text": ""
1166
- },
1167
- "attribute": "col-widths",
1168
- "reflect": false
1169
- },
1170
- "colWrap": {
1171
- "type": "string",
1172
- "mutable": false,
1173
- "complexType": {
1174
- "original": "string",
1175
- "resolved": "string | undefined",
1176
- "references": {}
1177
- },
1178
- "required": false,
1179
- "optional": true,
1180
- "docs": {
1181
- "tags": [],
1182
- "text": ""
1183
- },
1184
- "attribute": "col-wrap",
1185
- "reflect": false
1186
- }
1187
- };
1188
- }
1189
- static get states() {
1190
- return {
1191
- "isKeying": {},
1192
- "isExpanded": {},
1193
- "liveRegionMessage": {},
1194
- "focusedOption": {},
1195
- "focusedColumn": {},
1196
- "focusedTagIndex": {},
1197
- "tagsList": {}
1198
- };
1199
- }
1200
- static get events() {
1201
- return [{
1202
- "method": "wmTagInputTagAdded",
1203
- "name": "wmTagInputTagAdded",
1204
- "bubbles": true,
1205
- "cancelable": true,
1206
- "composed": true,
1207
- "docs": {
1208
- "tags": [],
1209
- "text": ""
1210
- },
1211
- "complexType": {
1212
- "original": "any",
1213
- "resolved": "any",
1214
- "references": {}
1215
- }
1216
- }];
1217
- }
1218
- static get elementRef() { return "el"; }
1219
- static get watchers() {
1220
- return [{
1221
- "propName": "errorMessage",
1222
- "methodName": "announceError"
1223
- }];
1224
- }
1225
- static get listeners() {
1226
- return [{
1227
- "name": "wmUserIsKeying",
1228
- "method": "toggleKeyingOn",
1229
- "target": "window",
1230
- "capture": false,
1231
- "passive": false
1232
- }, {
1233
- "name": "wmUserIsTabbing",
1234
- "method": "toggleKeyingOn",
1235
- "target": "window",
1236
- "capture": false,
1237
- "passive": false
1238
- }, {
1239
- "name": "wmUserIsNotKeying",
1240
- "method": "toggleKeyingOff",
1241
- "target": "window",
1242
- "capture": false,
1243
- "passive": false
1244
- }, {
1245
- "name": "wmUserIsNotTabbing",
1246
- "method": "toggleKeyingOff",
1247
- "target": "window",
1248
- "capture": false,
1249
- "passive": false
1250
- }, {
1251
- "name": "privTagOptionSelected",
1252
- "method": "handleTagOptionSelected",
1253
- "target": undefined,
1254
- "capture": false,
1255
- "passive": false
1256
- }, {
1257
- "name": "privTagOptionDeselected",
1258
- "method": "handleTagOptionDeselected",
1259
- "target": undefined,
1260
- "capture": false,
1261
- "passive": false
1262
- }, {
1263
- "name": "click",
1264
- "method": "handleClick",
1265
- "target": "document",
1266
- "capture": false,
1267
- "passive": false
1268
- }, {
1269
- "name": "scroll",
1270
- "method": "dismissTooltip",
1271
- "target": "window",
1272
- "capture": true,
1273
- "passive": true
1274
- }, {
1275
- "name": "blur",
1276
- "method": "handleBlur",
1277
- "target": undefined,
1278
- "capture": false,
1279
- "passive": false
1280
- }];
1281
- }
1282
- }