@watermarkinsights/ripple 0.0.1 → 0.1.0-alpha.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 (460) hide show
  1. package/dist/cjs/app-globals-3db2fdd3.js +103 -0
  2. package/dist/cjs/chartFunctions-0d47b1f4.js +906 -0
  3. package/dist/cjs/functions-761cb9f2.js +10694 -0
  4. package/dist/cjs/index-bb947bd5.js +1843 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-33cd6161.js +82 -0
  7. package/dist/cjs/intl-9e9388a7.js +291 -0
  8. package/dist/cjs/loader.cjs.js +15 -0
  9. package/dist/cjs/priv-calendar.cjs.entry.js +580 -0
  10. package/dist/cjs/priv-chart-popover-old.cjs.entry.js +146 -0
  11. package/dist/cjs/priv-chart-popover_2.cjs.entry.js +204 -0
  12. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  13. package/dist/cjs/priv-navigator-item.cjs.entry.js +35 -0
  14. package/dist/cjs/priv-option-list.cjs.entry.js +391 -0
  15. package/dist/cjs/ripple.cjs.js +25 -0
  16. package/dist/cjs/wm-action-menu_2.cjs.entry.js +525 -0
  17. package/dist/cjs/wm-button.cjs.entry.js +280 -0
  18. package/dist/cjs/wm-chart-bar.cjs.entry.js +444 -0
  19. package/dist/cjs/wm-chart-column.cjs.entry.js +629 -0
  20. package/dist/cjs/wm-chart-slice.cjs.entry.js +27 -0
  21. package/dist/cjs/wm-chart-stack.cjs.entry.js +447 -0
  22. package/dist/cjs/wm-chart.cjs.entry.js +163 -0
  23. package/dist/cjs/wm-date-range.cjs.entry.js +591 -0
  24. package/dist/cjs/wm-datepicker.cjs.entry.js +399 -0
  25. package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-file-list.cjs.entry.js} +15 -24
  26. package/dist/cjs/wm-file.cjs.entry.js +210 -0
  27. package/dist/cjs/wm-flyout.cjs.entry.js +178 -0
  28. package/dist/{ripple/wm-modal.entry.js → cjs/wm-input.cjs.entry.js} +108 -110
  29. package/dist/cjs/wm-line-chart.cjs.entry.js +541 -0
  30. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +220 -0
  31. package/dist/cjs/wm-modal_3.cjs.entry.js +238 -0
  32. package/dist/cjs/wm-navigation_3.cjs.entry.js +188 -0
  33. package/dist/cjs/wm-navigator.cjs.entry.js +334 -0
  34. package/dist/cjs/wm-nested-select.cjs.entry.js +322 -0
  35. package/dist/{ripple/wm-textarea.entry.js → cjs/wm-optgroup.cjs.entry.js} +62 -57
  36. package/dist/cjs/wm-option_2.cjs.entry.js +536 -0
  37. package/dist/{ripple/wm-navigation.entry.js → cjs/wm-pagination.cjs.entry.js} +204 -91
  38. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +204 -0
  39. package/dist/{ripple/wm-flyout.entry.js → cjs/wm-search.cjs.entry.js} +168 -139
  40. package/dist/{ripple/wm-datepicker.entry.js → cjs/wm-snackbar.cjs.entry.js} +152 -223
  41. package/dist/cjs/wm-tab-item_3.cjs.entry.js +357 -0
  42. package/dist/cjs/wm-tag-input.cjs.entry.js +985 -0
  43. package/dist/cjs/wm-tag-option.cjs.entry.js +51 -0
  44. package/dist/{ripple/wm-modal-pss.entry.js → cjs/wm-textarea.cjs.entry.js} +70 -111
  45. package/dist/{ripple/wm-progress-indicator.entry.js → cjs/wm-timepicker.cjs.entry.js} +296 -78
  46. package/dist/cjs/wm-toggletip.cjs.entry.js +252 -0
  47. package/dist/cjs/wm-uploader.cjs.entry.js +341 -0
  48. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  49. package/dist/collection/collection-manifest.json +207 -0
  50. package/dist/collection/components/charts/chartFunctions.js +831 -0
  51. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +995 -0
  52. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +345 -0
  53. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +990 -0
  54. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +268 -0
  55. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +177 -0
  56. package/dist/collection/components/charts/wm-chart/wm-chart.css +1326 -0
  57. package/dist/collection/components/charts/wm-chart/wm-chart.js +549 -0
  58. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1236 -0
  59. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +725 -0
  60. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.css +1335 -0
  61. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +914 -0
  62. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +1006 -0
  63. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +310 -0
  64. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.css +1466 -0
  65. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.js +709 -0
  66. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1208 -0
  67. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +999 -0
  68. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1326 -0
  69. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +320 -0
  70. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +967 -0
  71. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +232 -0
  72. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +167 -0
  73. package/dist/collection/components/datepickers/datepicker.css +1147 -0
  74. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1415 -0
  75. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +857 -0
  76. package/dist/collection/components/datepickers/wm-date-range.js +1158 -0
  77. package/dist/collection/components/datepickers/wm-datepicker.js +875 -0
  78. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +999 -0
  79. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +784 -0
  80. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1259 -0
  81. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +805 -0
  82. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +909 -0
  83. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +363 -0
  84. package/dist/collection/components/selects/wm-option/wm-option.css +1033 -0
  85. package/dist/collection/components/selects/wm-option/wm-option.js +665 -0
  86. package/dist/collection/components/selects/wm-select/wm-select.css +1174 -0
  87. package/dist/collection/components/selects/wm-select/wm-select.js +878 -0
  88. package/dist/collection/components/wm-action-menu/wm-action-menu.css +1690 -0
  89. package/dist/collection/components/wm-action-menu/wm-action-menu.js +932 -0
  90. package/dist/collection/components/wm-button/wm-button.css +1630 -0
  91. package/dist/collection/components/wm-button/wm-button.js +794 -0
  92. package/dist/collection/components/wm-file/wm-file.css +1086 -0
  93. package/dist/collection/components/wm-file/wm-file.js +536 -0
  94. package/dist/collection/components/wm-file-list/wm-file-list.css +899 -0
  95. package/dist/collection/components/wm-file-list/wm-file-list.js +118 -0
  96. package/dist/collection/components/wm-flyout/wm-flyout.css +1091 -0
  97. package/dist/collection/components/wm-flyout/wm-flyout.js +651 -0
  98. package/dist/collection/components/wm-input/wm-input.css +1095 -0
  99. package/dist/collection/components/wm-input/wm-input.js +653 -0
  100. package/dist/collection/components/wm-menuitem/wm-menuitem.css +982 -0
  101. package/dist/collection/components/wm-menuitem/wm-menuitem.js +515 -0
  102. package/dist/collection/components/wm-modal/wm-modal-footer.css +927 -0
  103. package/dist/collection/components/wm-modal/wm-modal-footer.js +199 -0
  104. package/dist/collection/components/wm-modal/wm-modal-header.css +926 -0
  105. package/dist/collection/components/wm-modal/wm-modal-header.js +110 -0
  106. package/dist/collection/components/wm-modal/wm-modal.css +983 -0
  107. package/dist/collection/components/wm-modal/wm-modal.js +534 -0
  108. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +931 -0
  109. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +142 -0
  110. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +925 -0
  111. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
  112. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +1007 -0
  113. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
  114. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +926 -0
  115. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +153 -0
  116. package/dist/collection/components/wm-navigation/wm-navigation-item.css +935 -0
  117. package/dist/collection/components/wm-navigation/wm-navigation-item.js +140 -0
  118. package/dist/collection/components/wm-navigation/wm-navigation.css +977 -0
  119. package/dist/collection/components/wm-navigation/wm-navigation.js +246 -0
  120. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +929 -0
  121. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
  122. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +918 -0
  123. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +128 -0
  124. package/dist/collection/components/wm-navigator/wm-navigator.css +990 -0
  125. package/dist/collection/components/wm-navigator/wm-navigator.js +597 -0
  126. package/dist/collection/components/wm-pagination/wm-pagination.css +1044 -0
  127. package/dist/collection/components/wm-pagination/wm-pagination.js +487 -0
  128. package/dist/collection/components/wm-search/wm-search.css +983 -0
  129. package/dist/collection/components/wm-search/wm-search.js +604 -0
  130. package/dist/collection/components/wm-snackbar/wm-snackbar.css +1150 -0
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.js +363 -0
  132. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +958 -0
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +233 -0
  134. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +966 -0
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +461 -0
  136. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +906 -0
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +132 -0
  138. package/dist/collection/components/wm-tag-input/wm-tag-input.css +1423 -0
  139. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1511 -0
  140. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +328 -0
  141. package/dist/collection/components/wm-textarea/wm-textarea.css +1065 -0
  142. package/dist/collection/components/wm-textarea/wm-textarea.js +423 -0
  143. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1174 -0
  144. package/dist/collection/components/wm-timepicker/wm-timepicker.js +728 -0
  145. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1296 -0
  146. package/dist/collection/components/wm-toggletip/wm-toggletip.js +455 -0
  147. package/dist/collection/components/wm-uploader/wm-uploader.css +1987 -0
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +760 -0
  149. package/dist/collection/components/wm-wrapper/wm-wrapper.js +31 -0
  150. package/dist/collection/dev/action-menu.js +18 -0
  151. package/dist/collection/dev/button.js +12 -0
  152. package/dist/collection/dev/chart-bar.js +430 -0
  153. package/dist/collection/dev/chart-column.js +459 -0
  154. package/dist/collection/dev/chart-small.js +56 -0
  155. package/dist/collection/dev/chart-stack.js +205 -0
  156. package/dist/collection/dev/chart.js +18 -0
  157. package/dist/collection/dev/date-range.js +14 -0
  158. package/dist/collection/dev/datepicker.js +46 -0
  159. package/dist/collection/dev/file-list.js +16 -0
  160. package/dist/collection/dev/file.js +0 -0
  161. package/dist/collection/dev/flyout.js +194 -0
  162. package/dist/collection/dev/input.js +6 -0
  163. package/dist/collection/dev/line-chart.js +45 -0
  164. package/dist/collection/dev/modal.js +48 -0
  165. package/dist/collection/dev/navigation.js +13 -0
  166. package/dist/collection/dev/navigator.js +34 -0
  167. package/dist/collection/dev/nested-select.js +36 -0
  168. package/dist/collection/dev/pagination.js +7 -0
  169. package/dist/collection/dev/progress-monitor.js +0 -0
  170. package/dist/collection/dev/pss-modal.js +8 -0
  171. package/dist/collection/dev/scripts.js +49 -0
  172. package/dist/collection/dev/search.js +72 -0
  173. package/dist/collection/dev/select.js +57 -0
  174. package/dist/collection/dev/snackbar.js +68 -0
  175. package/dist/collection/dev/tabs.js +44 -0
  176. package/dist/collection/dev/tag-input.js +32 -0
  177. package/dist/collection/dev/textarea.js +28 -0
  178. package/dist/collection/dev/timepicker.js +32 -0
  179. package/dist/collection/dev/toggletip.js +9 -0
  180. package/dist/collection/dev/uploader.js +139 -0
  181. package/dist/collection/global/__mocks__/functions.js +6 -0
  182. package/dist/collection/global/functions.js +907 -0
  183. package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +16 -87
  184. package/dist/collection/global/interfaces.js +94 -0
  185. package/dist/collection/global/intl.js +281 -0
  186. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  187. package/dist/collection/global/services/http-service.js +50 -0
  188. package/dist/collection/lang/lang.js +5 -0
  189. package/dist/collection/lang/missing.js +43 -0
  190. package/dist/collection/lang/piglatin.js +101 -0
  191. package/dist/docs/docs.d.ts +435 -0
  192. package/dist/docs/docs.json +14178 -0
  193. package/dist/docs/props-reference.json +2079 -0
  194. package/dist/docs/skill/index.md +33 -0
  195. package/dist/docs/skill/wm-action-menu.md +116 -0
  196. package/dist/docs/skill/wm-button.md +121 -0
  197. package/dist/docs/skill/wm-chart-bar.md +156 -0
  198. package/dist/docs/skill/wm-chart-column.md +122 -0
  199. package/dist/docs/skill/wm-chart-legend.md +91 -0
  200. package/dist/docs/skill/wm-chart-slice.md +101 -0
  201. package/dist/docs/skill/wm-chart-stack.md +147 -0
  202. package/dist/docs/skill/wm-chart.md +139 -0
  203. package/dist/docs/skill/wm-date-range.md +176 -0
  204. package/dist/docs/skill/wm-datepicker.md +153 -0
  205. package/dist/docs/skill/wm-file-list.md +105 -0
  206. package/dist/docs/skill/wm-file.md +91 -0
  207. package/dist/docs/skill/wm-flyout.md +209 -0
  208. package/dist/docs/skill/wm-input.md +134 -0
  209. package/dist/docs/skill/wm-line-chart.md +135 -0
  210. package/dist/docs/skill/wm-menuitem.md +64 -0
  211. package/dist/docs/skill/wm-modal-footer.md +81 -0
  212. package/dist/docs/skill/wm-modal-header.md +71 -0
  213. package/dist/docs/skill/wm-modal.md +172 -0
  214. package/dist/docs/skill/wm-navigation-hamburger.md +61 -0
  215. package/dist/docs/skill/wm-navigation-item.md +78 -0
  216. package/dist/docs/skill/wm-navigation.md +82 -0
  217. package/dist/docs/skill/wm-navigator.md +106 -0
  218. package/dist/docs/skill/wm-nested-select.md +160 -0
  219. package/dist/docs/skill/wm-optgroup.md +72 -0
  220. package/dist/docs/skill/wm-option.md +67 -0
  221. package/dist/docs/skill/wm-pagination.md +114 -0
  222. package/dist/docs/skill/wm-progress-indicator.md +75 -0
  223. package/dist/docs/skill/wm-progress-monitor.md +120 -0
  224. package/dist/docs/skill/wm-progress-slice.md +67 -0
  225. package/dist/docs/skill/wm-search.md +180 -0
  226. package/dist/docs/skill/wm-select.md +169 -0
  227. package/dist/docs/skill/wm-snackbar.md +130 -0
  228. package/dist/docs/skill/wm-tab-item.md +45 -0
  229. package/dist/docs/skill/wm-tab-list.md +139 -0
  230. package/dist/docs/skill/wm-tab-panel.md +39 -0
  231. package/dist/docs/skill/wm-tag-input.md +187 -0
  232. package/dist/docs/skill/wm-tag-option.md +60 -0
  233. package/dist/docs/skill/wm-textarea.md +102 -0
  234. package/dist/docs/skill/wm-timepicker.md +156 -0
  235. package/dist/docs/skill/wm-toggletip.md +98 -0
  236. package/dist/docs/skill/wm-uploader.md +154 -0
  237. package/dist/docs/skill/wm-wrapper.md +5 -0
  238. package/dist/esm/app-globals-a1092590.js +101 -0
  239. package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-58637dc9.js} +159 -3
  240. package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-65f1594c.js} +374 -7830
  241. package/dist/esm/index-3425d80d.js +1813 -0
  242. package/dist/esm/index.js +1 -0
  243. package/dist/esm/interfaces-8778346d.js +77 -0
  244. package/dist/{ripple/intl-7p27BJSM.js → esm/intl-d518f362.js} +11 -4
  245. package/dist/esm/loader.js +11 -0
  246. package/dist/{ripple → esm}/priv-calendar.entry.js +143 -133
  247. package/dist/esm/priv-chart-popover-old.entry.js +142 -0
  248. package/dist/esm/priv-chart-popover_2.entry.js +199 -0
  249. package/dist/{ripple → esm}/priv-navigator-button.entry.js +5 -4
  250. package/dist/{ripple → esm}/priv-navigator-item.entry.js +5 -4
  251. package/dist/{ripple → esm}/priv-option-list.entry.js +18 -16
  252. package/dist/esm/ripple.js +20 -0
  253. package/dist/esm/wm-action-menu_2.entry.js +520 -0
  254. package/dist/{ripple/wm-modal-header.entry.js → esm/wm-button.entry.js} +264 -24
  255. package/dist/esm/wm-chart-bar.entry.js +440 -0
  256. package/dist/esm/wm-chart-column.entry.js +625 -0
  257. package/dist/{ripple → esm}/wm-chart-slice.entry.js +6 -1
  258. package/dist/esm/wm-chart-stack.entry.js +443 -0
  259. package/dist/esm/wm-chart.entry.js +159 -0
  260. package/dist/{ripple → esm}/wm-date-range.entry.js +224 -114
  261. package/dist/esm/wm-datepicker.entry.js +395 -0
  262. package/dist/{ripple → esm}/wm-file-list.entry.js +5 -4
  263. package/dist/{ripple → esm}/wm-file.entry.js +48 -24
  264. package/dist/esm/wm-flyout.entry.js +174 -0
  265. package/dist/{ripple → esm}/wm-input.entry.js +23 -7
  266. package/dist/{ripple → esm}/wm-line-chart.entry.js +182 -94
  267. package/dist/esm/wm-modal-pss_3.entry.js +214 -0
  268. package/dist/esm/wm-modal_3.entry.js +232 -0
  269. package/dist/esm/wm-navigation_3.entry.js +182 -0
  270. package/dist/{ripple → esm}/wm-navigator.entry.js +26 -64
  271. package/dist/{ripple → esm}/wm-nested-select.entry.js +35 -25
  272. package/dist/{ripple → esm}/wm-optgroup.entry.js +17 -5
  273. package/dist/esm/wm-option_2.entry.js +531 -0
  274. package/dist/{ripple → esm}/wm-pagination.entry.js +16 -14
  275. package/dist/esm/wm-progress-indicator_3.entry.js +198 -0
  276. package/dist/{ripple → esm}/wm-search.entry.js +15 -31
  277. package/dist/{ripple → esm}/wm-snackbar.entry.js +32 -45
  278. package/dist/esm/wm-tab-item_3.entry.js +351 -0
  279. package/dist/{ripple → esm}/wm-tag-input.entry.js +169 -65
  280. package/dist/{ripple → esm}/wm-tag-option.entry.js +14 -2
  281. package/dist/{ripple/wm-menuitem.entry.js → esm/wm-textarea.entry.js} +65 -100
  282. package/dist/{ripple → esm}/wm-timepicker.entry.js +33 -12
  283. package/dist/{ripple → esm}/wm-toggletip.entry.js +105 -33
  284. package/dist/esm/wm-uploader.entry.js +337 -0
  285. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  286. package/dist/index.cjs.js +1 -0
  287. package/dist/index.js +1 -0
  288. package/dist/loader/cdn.js +1 -0
  289. package/dist/loader/index.cjs.js +1 -0
  290. package/dist/loader/index.d.ts +24 -0
  291. package/dist/loader/index.es2017.js +1 -0
  292. package/dist/loader/index.js +2 -0
  293. package/dist/loader/package.json +11 -0
  294. package/dist/ripple/index.esm.js +0 -1
  295. package/dist/ripple/p-0d364411.entry.js +1 -0
  296. package/dist/ripple/p-156c4d1d.entry.js +1 -0
  297. package/dist/ripple/{wm-modal-footer.entry.js → p-26d8c356.entry.js} +1 -44
  298. package/dist/ripple/p-2b23ce49.entry.js +1 -0
  299. package/dist/ripple/p-2b7cc2c1.entry.js +1 -0
  300. package/dist/ripple/p-34bde06a.entry.js +1 -0
  301. package/dist/ripple/p-35db9386.entry.js +1 -0
  302. package/dist/ripple/p-38a987ac.entry.js +1 -0
  303. package/dist/ripple/p-38b05894.entry.js +1 -0
  304. package/dist/ripple/p-38dee4ab.entry.js +1 -0
  305. package/dist/ripple/p-3a19d019.entry.js +1 -0
  306. package/dist/ripple/p-451d4de2.js +1 -0
  307. package/dist/ripple/p-507f2cf4.entry.js +1 -0
  308. package/dist/ripple/p-59f74ead.entry.js +1 -0
  309. package/dist/ripple/p-5c2fc42a.entry.js +1 -0
  310. package/dist/ripple/p-680d7606.entry.js +1 -0
  311. package/dist/ripple/p-683264db.js +1 -0
  312. package/dist/ripple/p-6db681c8.entry.js +1 -0
  313. package/dist/ripple/p-6e3c2bbc.js +1 -0
  314. package/dist/ripple/p-6f1cabab.entry.js +1 -0
  315. package/dist/ripple/p-72d135ee.entry.js +1 -0
  316. package/dist/ripple/p-7799953c.entry.js +1 -0
  317. package/dist/ripple/p-83c3db60.js +2 -0
  318. package/dist/ripple/{wm-progress-monitor.entry.js → p-83cdad78.entry.js} +1 -71
  319. package/dist/ripple/p-87ef0cfa.entry.js +1 -0
  320. package/dist/ripple/p-88e44511.entry.js +1 -0
  321. package/dist/ripple/p-8f8e4eb8.entry.js +1 -0
  322. package/dist/ripple/p-936adffb.entry.js +1 -0
  323. package/dist/ripple/p-9755192c.entry.js +1 -0
  324. package/dist/ripple/p-9c5c591b.js +1 -0
  325. package/dist/ripple/p-9ea38d96.entry.js +1 -0
  326. package/dist/ripple/p-be3e4e7c.entry.js +1 -0
  327. package/dist/ripple/p-c9c7df12.entry.js +1 -0
  328. package/dist/ripple/p-d7a1be0b.entry.js +1 -0
  329. package/dist/ripple/p-dab86523.entry.js +1 -0
  330. package/dist/ripple/{wm-tab-list.entry.js → p-e4aa6e27.entry.js} +1 -175
  331. package/dist/ripple/p-ebe9f38c.js +1 -0
  332. package/dist/ripple/p-ed053612.entry.js +1 -0
  333. package/dist/ripple/p-f43f621b.entry.js +1 -0
  334. package/dist/ripple/p-f48d30d6.entry.js +1 -0
  335. package/dist/ripple/{wm-action-menu.entry.js → p-f6aad57c.entry.js} +1 -201
  336. package/dist/ripple/p-f6e1beb5.entry.js +1 -0
  337. package/dist/ripple/p-fc843bb8.entry.js +1 -0
  338. package/dist/ripple/{priv-chart-popover.entry.js → p-fd997764.entry.js} +1 -134
  339. package/dist/ripple/p-fffb46ad.entry.js +1 -0
  340. package/dist/ripple/ripple.esm.js +1 -48
  341. package/dist/types/components/charts/chartFunctions.d.ts +15 -2
  342. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +25 -11
  343. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +31 -0
  344. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
  345. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +113 -1
  346. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +195 -0
  347. package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +184 -0
  348. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +110 -0
  349. package/dist/types/components/charts/wm-chart-stack/wm-chart-stack.d.ts +194 -0
  350. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +156 -11
  351. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +53 -1
  352. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +85 -0
  353. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
  354. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +19 -3
  355. package/dist/types/components/datepickers/wm-date-range.d.ts +205 -14
  356. package/dist/types/components/datepickers/wm-datepicker.d.ts +189 -11
  357. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
  358. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +165 -1
  359. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
  360. package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
  361. package/dist/types/components/selects/wm-select/wm-select.d.ts +193 -12
  362. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +207 -2
  363. package/dist/types/components/wm-button/wm-button.d.ts +191 -0
  364. package/dist/types/components/wm-file/wm-file.d.ts +110 -1
  365. package/dist/types/components/wm-file-list/wm-file-list.d.ts +72 -0
  366. package/dist/types/components/wm-flyout/wm-flyout.d.ts +205 -0
  367. package/dist/types/components/wm-input/wm-input.d.ts +161 -1
  368. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +79 -0
  369. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
  370. package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
  371. package/dist/types/components/wm-modal/wm-modal.d.ts +160 -0
  372. package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
  373. package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
  374. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +6 -0
  375. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
  376. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
  377. package/dist/types/components/wm-navigation/wm-navigation.d.ts +57 -0
  378. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
  379. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
  380. package/dist/types/components/wm-navigator/wm-navigator.d.ts +93 -4
  381. package/dist/types/components/wm-pagination/wm-pagination.d.ts +100 -1
  382. package/dist/types/components/wm-search/wm-search.d.ts +158 -6
  383. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +103 -1
  384. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +55 -3
  385. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +119 -20
  386. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +35 -2
  387. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +199 -5
  388. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
  389. package/dist/types/components/wm-textarea/wm-textarea.d.ts +99 -0
  390. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +147 -0
  391. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +88 -2
  392. package/dist/types/components/wm-uploader/wm-uploader.d.ts +145 -3
  393. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
  394. package/dist/types/components.d.ts +11523 -95
  395. package/dist/types/global/functions.d.ts +7 -2
  396. package/dist/types/global/interfaces.d.ts +92 -2
  397. package/dist/types/global/intl.d.ts +3 -0
  398. package/dist/types/stencil-public-runtime.d.ts +0 -28
  399. package/package.json +4 -33
  400. package/dist/components/index.d.ts +0 -33
  401. package/dist/components/priv-calendar.d.ts +0 -11
  402. package/dist/components/priv-chart-popover.d.ts +0 -11
  403. package/dist/components/priv-navigator-button.d.ts +0 -11
  404. package/dist/components/priv-navigator-item.d.ts +0 -11
  405. package/dist/components/priv-option-list.d.ts +0 -11
  406. package/dist/components/wm-action-menu.d.ts +0 -11
  407. package/dist/components/wm-button.d.ts +0 -11
  408. package/dist/components/wm-chart-slice.d.ts +0 -11
  409. package/dist/components/wm-chart.d.ts +0 -11
  410. package/dist/components/wm-date-range.d.ts +0 -11
  411. package/dist/components/wm-datepicker.d.ts +0 -11
  412. package/dist/components/wm-file-list.d.ts +0 -11
  413. package/dist/components/wm-file.d.ts +0 -11
  414. package/dist/components/wm-flyout.d.ts +0 -11
  415. package/dist/components/wm-input.d.ts +0 -11
  416. package/dist/components/wm-line-chart.d.ts +0 -11
  417. package/dist/components/wm-menuitem.d.ts +0 -11
  418. package/dist/components/wm-modal-footer.d.ts +0 -11
  419. package/dist/components/wm-modal-header.d.ts +0 -11
  420. package/dist/components/wm-modal-pss-footer.d.ts +0 -11
  421. package/dist/components/wm-modal-pss-header.d.ts +0 -11
  422. package/dist/components/wm-modal-pss.d.ts +0 -11
  423. package/dist/components/wm-modal.d.ts +0 -11
  424. package/dist/components/wm-navigation-hamburger.d.ts +0 -11
  425. package/dist/components/wm-navigation-item.d.ts +0 -11
  426. package/dist/components/wm-navigation.d.ts +0 -11
  427. package/dist/components/wm-navigator.d.ts +0 -11
  428. package/dist/components/wm-nested-select.d.ts +0 -11
  429. package/dist/components/wm-optgroup.d.ts +0 -11
  430. package/dist/components/wm-option.d.ts +0 -11
  431. package/dist/components/wm-pagination.d.ts +0 -11
  432. package/dist/components/wm-progress-indicator.d.ts +0 -11
  433. package/dist/components/wm-progress-monitor.d.ts +0 -11
  434. package/dist/components/wm-progress-slice.d.ts +0 -11
  435. package/dist/components/wm-search.d.ts +0 -11
  436. package/dist/components/wm-select.d.ts +0 -11
  437. package/dist/components/wm-snackbar.d.ts +0 -11
  438. package/dist/components/wm-tab-item.d.ts +0 -11
  439. package/dist/components/wm-tab-list.d.ts +0 -11
  440. package/dist/components/wm-tab-panel.d.ts +0 -11
  441. package/dist/components/wm-tag-input.d.ts +0 -11
  442. package/dist/components/wm-tag-option.d.ts +0 -11
  443. package/dist/components/wm-textarea.d.ts +0 -11
  444. package/dist/components/wm-timepicker.d.ts +0 -11
  445. package/dist/components/wm-toggletip.d.ts +0 -11
  446. package/dist/components/wm-uploader.d.ts +0 -11
  447. package/dist/components/wm-wrapper.d.ts +0 -11
  448. package/dist/ripple/index-CU5QNCKv.js +0 -4167
  449. package/dist/ripple/interfaces-CrANcZM9.js +0 -53
  450. package/dist/ripple/wm-button.entry.js +0 -197
  451. package/dist/ripple/wm-chart.entry.js +0 -157
  452. package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
  453. package/dist/ripple/wm-modal-pss-header.entry.js +0 -39
  454. package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
  455. package/dist/ripple/wm-navigation-item.entry.js +0 -18
  456. package/dist/ripple/wm-option.entry.js +0 -171
  457. package/dist/ripple/wm-progress-slice.entry.js +0 -13
  458. package/dist/ripple/wm-select.entry.js +0 -249
  459. package/dist/ripple/wm-tab-item.entry.js +0 -63
  460. package/dist/ripple/wm-uploader.entry.js +0 -313
@@ -0,0 +1,728 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { intl, shouldOpenUp, toBool, handleDisabledAttribute, showTooltip, hideTooltip } from "../../global/functions";
3
+ /**
4
+ * Time input that lets users type a time or pick one from a dropdown list of 15-minute
5
+ * intervals. Supports 12-hour and 24-hour display and provides `reformatTime` and
6
+ * `isValidTime` utility methods. Use instead of native `<input type="time">`.
7
+ *
8
+ * @category Form Inputs
9
+ *
10
+ * @keyboardInteraction
11
+ * **Input field:**
12
+ * - **Arrow Down / Arrow Up**: Open the dropdown focused on the nearest time interval.
13
+ *
14
+ * **Dropdown button:**
15
+ * - **Enter / Space**: Open the dropdown.
16
+ *
17
+ * **Dropdown list:**
18
+ * - **Arrow Down / Arrow Up**: Move focus to the next/previous option; wraps at both ends.
19
+ * - **Home / End**: Move focus to the first/last option.
20
+ * - **Enter / Space**: Select the focused time and close the dropdown.
21
+ * - **Tab**: Close the dropdown and advance focus (without selecting).
22
+ * - **Escape**: Close the dropdown without selecting.
23
+ *
24
+ * @accessibility
25
+ * - `label` sets the accessible name on the input; required even when `label-position="none"`.
26
+ * - Error messages are announced via an `aria-live` region.
27
+ *
28
+ * @usageNotes
29
+ * - The dropdown displays 15-minute intervals (00:00–23:45) in 12-hour format; typed input
30
+ * is accepted in both 12-hour and 24-hour formats.
31
+ * - `wmTimepickerTimeSelected` emits `{ time: string }` in 24-hour `hh:mm` format. Always
32
+ * call `reformatTime("12", ...)` on the result and write it back to `value` so the input
33
+ * displays the formatted string.
34
+ * - Use `reformatTime` and `isValidTime` via an imperative ref — they are async component
35
+ * methods, not props.
36
+ * - When writing a curried event-handler factory, the outer function must NOT be async;
37
+ * only the inner handler should be async, otherwise the factory returns a Promise instead
38
+ * of a function.
39
+ *
40
+ * @example {html} Basic timepicker
41
+ * <wm-timepicker label="Start time"></wm-timepicker>
42
+ *
43
+ * @example {react} Basic timepicker
44
+ * // wmTimepickerTimeSelected emits { time } in 24hr format.
45
+ * // Call reformatTime and write back to value so the input displays the result.
46
+ * // handleInputBlur validates free-form typed input on blur using isValidTime.
47
+ * // NOTE: the outer factory function must NOT be async — only the inner handler should be.
48
+ * const startRef = useRef(null);
49
+ * const [startValue, setStartValue] = useState("");
50
+ * const [startError, setStartError] = useState("");
51
+ *
52
+ * const handleTimeSelected = (ref, setValue, setError) => async (e) => {
53
+ * const time12 = await ref.current.reformatTime("12", e.detail.time);
54
+ * setError("");
55
+ * setValue(time12);
56
+ * };
57
+ *
58
+ * const handleInputBlur = (ref, value, setValue, setError) => async () => {
59
+ * if (!value) return;
60
+ * const valid = await ref.current.isValidTime(value);
61
+ * if (valid) {
62
+ * const time12 = await ref.current.reformatTime("12", value);
63
+ * setError("");
64
+ * setValue(time12);
65
+ * } else {
66
+ * setError("Please enter a valid time.");
67
+ * }
68
+ * };
69
+ *
70
+ * <WmTimepicker
71
+ * ref={startRef}
72
+ * label="Start time"
73
+ * value={startValue}
74
+ * errorMessage={startError}
75
+ * onWmTimepickerTimeSelected={handleTimeSelected(startRef, setStartValue, setStartError)}
76
+ * onWmTimepickerInputBlurred={handleInputBlur(startRef, startValue, setStartValue, setStartError)}
77
+ * />
78
+ *
79
+ * @example {html} With pre-selected time
80
+ * <wm-timepicker label="Meeting time" preselected="14:30" value="2:30 PM"></wm-timepicker>
81
+ *
82
+ * @example {react} With pre-selected time
83
+ * // preselected (24hr) controls where the dropdown focuses on open.
84
+ * // value sets the initial display string in the input.
85
+ * const meetingRef = useRef(null);
86
+ * const [meetingValue, setMeetingValue] = useState("2:30 PM");
87
+ * const [meetingError, setMeetingError] = useState("");
88
+ *
89
+ * <WmTimepicker
90
+ * ref={meetingRef}
91
+ * label="Meeting time"
92
+ * preselected="14:30"
93
+ * value={meetingValue}
94
+ * errorMessage={meetingError}
95
+ * onWmTimepickerTimeSelected={handleTimeSelected(meetingRef, setMeetingValue, setMeetingError)}
96
+ * onWmTimepickerInputBlurred={handleInputBlur(meetingRef, meetingValue, setMeetingValue, setMeetingError)}
97
+ * />
98
+ *
99
+ */
100
+ export class Timepicker {
101
+ constructor() {
102
+ this.twelveHrValid = /^(0?[0-9]|1[0-2])\s*:?\s*([0-5][0-9])?\s?(a|p|am|pm)?$/i;
103
+ this.twentyFourHrValid = /^(0?[0-9]|1[0-9]|2[0-4])\s*:?\s*([0-5][0-9])?$/;
104
+ this.timeFormat = "hh:mm";
105
+ this.times = this.generateTimeIntervals();
106
+ this.openUp = false;
107
+ this.buttonAriaLabel = intl.formatMessage({
108
+ id: "time.selectTime",
109
+ defaultMessage: "Select time",
110
+ description: "Button text for screen readers.",
111
+ });
112
+ this.disabled = false;
113
+ this.value = "";
114
+ this.errorMessage = undefined;
115
+ this.label = "";
116
+ this.labelPosition = "top";
117
+ this.requiredField = false;
118
+ this.preselected = undefined;
119
+ this.isExpanded = false;
120
+ }
121
+ get selectedOption() {
122
+ return this.optionsList.filter((option) => option.tabIndex === 0)[0];
123
+ }
124
+ get optionsList() {
125
+ return Array.from(this.optionsEl.querySelectorAll("li"));
126
+ }
127
+ get isDisabled() {
128
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
129
+ return toBool(this.disabled);
130
+ }
131
+ /**
132
+ * @description Validates a time string against both 12-hour and 24-hour formats.
133
+ * @param input The time string to validate.
134
+ * @returns `true` if the string is a valid time, `false` otherwise.
135
+ */
136
+ async isValidTime(input) {
137
+ return this.isValidTimeInternal(input);
138
+ }
139
+ isValidTimeInternal(input) {
140
+ return this.twelveHrValid.test(input) || this.twentyFourHrValid.test(input);
141
+ }
142
+ /**
143
+ * @description Converts a time string between 12-hour and 24-hour formats.
144
+ * @param format The target format: `"12"` for 12-hour (e.g. `"02:30 PM"`), `"24"` for
145
+ * 24-hour (e.g. `"14:30"`).
146
+ * @param time The time string to convert. Accepts both 12-hour and 24-hour input.
147
+ * @returns The reformatted time string.
148
+ */
149
+ async reformatTime(format, time) {
150
+ return this.reformatTimeInternal(format, time);
151
+ }
152
+ announce(message) {
153
+ if (this.liveRegionEl.textContent === message) {
154
+ message += "\u00A0";
155
+ }
156
+ this.liveRegionEl.textContent = message;
157
+ }
158
+ reformatTimeInternal(format, time) {
159
+ let [hours, minutes, amPm] = this.splitTime(time);
160
+ if (format === "12") {
161
+ if (hours === 12 && !amPm) {
162
+ amPm = "PM";
163
+ }
164
+ if (hours === 0 || hours === 24) {
165
+ hours = 12;
166
+ }
167
+ if (hours > 12) {
168
+ hours -= 12;
169
+ amPm = "PM";
170
+ }
171
+ if (amPm && amPm.toUpperCase().includes("P")) {
172
+ amPm = "PM";
173
+ }
174
+ else {
175
+ amPm = "AM";
176
+ }
177
+ return `${hours.toString().padStart(2, "0")}:${minutes} ${amPm}`;
178
+ }
179
+ else if (format === "24") {
180
+ if (hours === 24) {
181
+ hours = 0;
182
+ }
183
+ if (hours === 12 && amPm && amPm.toUpperCase().includes("A")) {
184
+ hours -= 12;
185
+ }
186
+ if (amPm && amPm.toUpperCase().includes("P") && hours !== 12) {
187
+ hours += 12;
188
+ }
189
+ return `${hours.toString().padStart(2, "0")}:${minutes}`;
190
+ }
191
+ else {
192
+ return time;
193
+ }
194
+ }
195
+ handleKey(ev) {
196
+ switch (ev.key) {
197
+ case "ArrowDown":
198
+ ev.preventDefault();
199
+ if (this.isExpanded === false) {
200
+ this.open("next");
201
+ }
202
+ else {
203
+ this.moveNext(this.selectedOption);
204
+ }
205
+ break;
206
+ case "ArrowUp":
207
+ ev.preventDefault();
208
+ if (this.isExpanded === false) {
209
+ this.open("previous");
210
+ }
211
+ else {
212
+ this.movePrevious(this.selectedOption);
213
+ }
214
+ break;
215
+ case "Enter":
216
+ case " ":
217
+ if (this.isExpanded) {
218
+ ev.preventDefault();
219
+ this.handleOptionClick(this.selectedOption.dataset.time);
220
+ }
221
+ break;
222
+ case "Escape":
223
+ ev.preventDefault();
224
+ if (this.isExpanded) {
225
+ ev.stopPropagation(); // for instance if select is in a modal, esc should close the select but not the modal
226
+ this.close();
227
+ }
228
+ break;
229
+ case "Tab":
230
+ if (this.isExpanded) {
231
+ this.close(false);
232
+ }
233
+ break;
234
+ case "Home":
235
+ ev.preventDefault();
236
+ if (this.isExpanded) {
237
+ this.focusOption(this.optionsList[0]);
238
+ }
239
+ break;
240
+ case "End":
241
+ ev.preventDefault();
242
+ if (this.isExpanded) {
243
+ this.focusOption(this.optionsList[this.optionsList.length - 1]);
244
+ }
245
+ break;
246
+ }
247
+ }
248
+ handleDisabledChange() {
249
+ handleDisabledAttribute(this.el, this.isDisabled);
250
+ }
251
+ handleValueChange() {
252
+ this.inputEl.value = this.value ? this.value : "";
253
+ }
254
+ announceError() {
255
+ if (this.errorMessage) {
256
+ setTimeout(() => this.announce(this.errorMessage), 100);
257
+ }
258
+ }
259
+ componentWillLoad() {
260
+ if (this.label === "") {
261
+ console.error("You must include a label prop for the timepicker (for accessibility reasons), even if the label position is none.");
262
+ }
263
+ this.timeFormat = intl.formatMessage({
264
+ id: "time.timeFormat",
265
+ defaultMessage: "hh:mm",
266
+ });
267
+ handleDisabledAttribute(this.el, this.isDisabled);
268
+ }
269
+ componentDidLoad() {
270
+ this.optionsEl.classList.add("hidden");
271
+ }
272
+ handleOptionClick(time) {
273
+ this.close();
274
+ this.wmTimepickerTimeSelected.emit({ time: time });
275
+ }
276
+ handleInputBlur() {
277
+ this.wmTimepickerInputBlurred.emit();
278
+ this.tpWrapper.classList.remove("focus");
279
+ }
280
+ handleLabelMouseEnter(ev) {
281
+ const labelEl = ev.target;
282
+ if (labelEl.scrollWidth > labelEl.clientWidth) {
283
+ showTooltip("right", ev.target, this.label);
284
+ }
285
+ }
286
+ generateTimeIntervals() {
287
+ let timeIntervals = [];
288
+ let startTime = 0;
289
+ for (let i = 0; startTime < 24 * 60; i++) {
290
+ const h = Math.floor(startTime / 60);
291
+ const hour = h.toString().padStart(2, "0");
292
+ const m = (startTime % 60).toString();
293
+ const min = m.padStart(2, "0");
294
+ timeIntervals[i] = `${hour}:${min}`;
295
+ startTime = startTime + 15;
296
+ }
297
+ return timeIntervals;
298
+ }
299
+ splitTime(time) {
300
+ const splitTime = this.twelveHrValid.exec(time) || this.twentyFourHrValid.exec(time);
301
+ let hours = parseInt(splitTime[1]);
302
+ let minutes = splitTime[2] || "00";
303
+ let amPm = splitTime ? splitTime[3] : undefined;
304
+ // handles edge case uncaught by regex '0pm'
305
+ if (hours === 0 && (amPm === null || amPm === void 0 ? void 0 : amPm.toUpperCase().includes("P"))) {
306
+ // if user types '0pm' we change it to midnight
307
+ amPm = "AM";
308
+ }
309
+ return [hours, minutes, amPm];
310
+ }
311
+ open(itemToSelect) {
312
+ this.openUp = shouldOpenUp(this.el, this.optionsEl.clientHeight);
313
+ this.isExpanded = true;
314
+ this.optionsEl.classList.remove("hidden");
315
+ // focus hierarchy: preselected prop -> parsed time -> 09:00
316
+ let focusOnOpenEl = this.optionsList[36]; // 09:00
317
+ if (this.preselected) {
318
+ focusOnOpenEl = this.optionsList.filter((option) => option.dataset.time == this.preselected)[0];
319
+ }
320
+ else if (this.isValidTimeInternal(this.value)) {
321
+ const nearestTime = this.findNearestTimeInterval(this.reformatTimeInternal("24", this.value));
322
+ focusOnOpenEl = this.optionsList.filter((option) => option.dataset.time == nearestTime)[0];
323
+ }
324
+ // position option in center of dropdown
325
+ this.optionsEl.scrollTop =
326
+ (this.optionsList.findIndex((x) => x.textContent === (focusOnOpenEl === null || focusOnOpenEl === void 0 ? void 0 : focusOnOpenEl.textContent)) - 2) *
327
+ focusOnOpenEl.offsetHeight;
328
+ this.focusOption(focusOnOpenEl);
329
+ window.requestAnimationFrame(() => {
330
+ if (itemToSelect === "next") {
331
+ this.moveNext(this.selectedOption);
332
+ }
333
+ else if (itemToSelect === "previous") {
334
+ this.movePrevious(this.selectedOption);
335
+ }
336
+ });
337
+ }
338
+ close(returnFocus = true) {
339
+ this.isExpanded = false;
340
+ window.setTimeout(() => {
341
+ this.optionsEl.classList.add("hidden");
342
+ // Returns focus to button after popup closes (no need if user is tabbing)
343
+ // Delay is necessary for screenreader to get new expanded state before focus
344
+ // window.requestAnimationFrame is probably enough, but since we are already using setTimeout it may as well be here
345
+ // also UX wise, it makes sense for the button to only be focused after the animation is complete
346
+ if (returnFocus) {
347
+ this.buttonEl.focus();
348
+ }
349
+ }, 150);
350
+ }
351
+ focusOption(item) {
352
+ this.optionsList.forEach((option) => {
353
+ option.tabIndex = -1;
354
+ });
355
+ item.tabIndex = 0;
356
+ item.scrollIntoView({ block: "nearest" });
357
+ item.focus();
358
+ }
359
+ movePrevious(optionEl) {
360
+ this.focusOption(optionEl.previousElementSibling
361
+ ? optionEl.previousElementSibling
362
+ : this.optionsList[this.optionsList.length - 1]);
363
+ }
364
+ moveNext(optionEl) {
365
+ this.focusOption(optionEl.nextElementSibling ? optionEl.nextElementSibling : this.optionsList[0]);
366
+ }
367
+ findNearestTimeInterval(time) {
368
+ // accepts time in 24hr format
369
+ const minutes = parseInt(time.slice(3, 5));
370
+ // first find the closest 15 min increment
371
+ if (minutes % 15 !== 0) {
372
+ const hour = parseInt(time.slice(0, 2));
373
+ let roundedMinutes = (Math.round(minutes / 15) * 15).toString().padStart(2, "0");
374
+ if (roundedMinutes === "60") {
375
+ roundedMinutes = "00";
376
+ let roundedHour = hour + 1;
377
+ if (roundedHour === 24) {
378
+ roundedHour = 0;
379
+ }
380
+ time = time.replace(`${hour.toString().padStart(2, "0")}:`, `${roundedHour.toString().padStart(2, "0")}:`);
381
+ }
382
+ if (parseInt(roundedMinutes) < 8) {
383
+ roundedMinutes = "00";
384
+ }
385
+ time = time.replace(`:${minutes.toString().padStart(2, "0")}`, `:${roundedMinutes}`);
386
+ }
387
+ return time;
388
+ }
389
+ renderOptions() {
390
+ return this.times.map((time, index) => (h("li", { id: `option${index + 1}`, "data-time": time, role: "option", onClick: () => this.handleOptionClick(time) }, this.reformatTimeInternal("12", time))));
391
+ }
392
+ render() {
393
+ return (h(Host, { key: '465a66ad7ca35812ed08210a1314e9045ce9d132', onBlur: () => this.close(false) }, h("div", { key: 'd47ce73ca7efcfd7f23b0db03b4a451a2dac4446', class: `wrapper label-${this.labelPosition} ${!!this.errorMessage ? "invalid" : ""}`, ref: (t) => (this.tpWrapper = t) }, h("div", { key: '9f28f2d4604301c40a1546c972e8063c6d8d3866', class: "label-wrapper" }, this.labelPosition !== "none" && (h("label", { key: '302946f368394139d04de0837cc0f5a9dc9f5d01', id: "label", class: "label", htmlFor: "time-input", onMouseEnter: (ev) => this.handleLabelMouseEnter(ev), onMouseLeave: () => hideTooltip() }, this.label)), this.labelPosition !== "none" && this.requiredField && (h("div", { key: 'a13ad11e096383e3f54fe4e9c058a72f4f1f23d8', "aria-hidden": "true", class: "required" }, "*"))), h("div", { key: 'e2505ced2cd45326f1d66de36aceebf177a1a159' }, h("div", { key: '838fa98f05e0fa033f10fec973eba5cbb64cfb84', class: "inner-wrapper" }, h("input", { key: '6e11818266217669281b105b38a746cee3add730', id: "time-input", "aria-label": this.label, "aria-describedby": "error", ref: (el) => (this.inputEl = el), onBlur: () => this.handleInputBlur(), onInput: () => (this.value = this.inputEl.value), disabled: this.isDisabled, "aria-required": this.requiredField ? "true" : null, placeholder: this.timeFormat, autocomplete: "off", value: this.value, onFocus: () => this.tpWrapper.classList.add("focus") }), h("button", { key: '4be47c23c8929847bd36289b103d14a52893e8ff', id: "btn", ref: (el) => (this.buttonEl = el), disabled: this.isDisabled, "aria-controls": "list", "aria-expanded": this.isExpanded ? "true" : "false", "aria-label": this.buttonAriaLabel, "aria-describedby": "time-input", onClick: () => (this.isExpanded ? this.close() : this.open()),
394
+ // This addresses an issue in Safari, where clicking buttons does not focus them
395
+ // if the button does not receive focus when clicked, Timepicker incorrectly emits a blur event
396
+ onMouseDown: (ev) => {
397
+ ev.preventDefault();
398
+ this.buttonEl.focus();
399
+ } }, h("span", { key: '584530b0cd9714d70fbfcaa4ea8e2eece6b35492', class: "svg-icon svg-time" })), h("ul", { key: 'de8dece352fe83eb8107d5f98af3f6e9a4085e88', class: `options ${this.isExpanded ? "open" : ""} ${this.openUp ? "upwards" : ""}`, id: "list", role: "listbox", "aria-labelledby": "label", "aria-describedby": this.isExpanded ? "collapsed" : null, tabindex: -1, ref: (el) => (this.optionsEl = el) }, this.renderOptions())), h("div", { key: '951d548bdc145d5902b8ec30dbf5342207408bec', id: "error", class: "error" }, this.errorMessage)), h("div", { key: '820b447b0fa475bce5ed5a5d661e19d8ed9203d8', id: "live-polite", class: "sr-only", "aria-live": "polite", "aria-atomic": "true", ref: (el) => (this.liveRegionEl = el) }))));
400
+ }
401
+ static get is() { return "wm-timepicker"; }
402
+ static get encapsulation() { return "shadow"; }
403
+ static get delegatesFocus() { return true; }
404
+ static get originalStyleUrls() {
405
+ return {
406
+ "$": ["wm-timepicker.scss"]
407
+ };
408
+ }
409
+ static get styleUrls() {
410
+ return {
411
+ "$": ["wm-timepicker.css"]
412
+ };
413
+ }
414
+ static get properties() {
415
+ return {
416
+ "disabled": {
417
+ "type": "boolean",
418
+ "mutable": false,
419
+ "complexType": {
420
+ "original": "boolean",
421
+ "resolved": "boolean",
422
+ "references": {}
423
+ },
424
+ "required": false,
425
+ "optional": false,
426
+ "docs": {
427
+ "tags": [{
428
+ "name": "description",
429
+ "text": "Disables the timepicker, preventing all interaction."
430
+ }, {
431
+ "name": "default",
432
+ "text": "false"
433
+ }],
434
+ "text": ""
435
+ },
436
+ "attribute": "disabled",
437
+ "reflect": false,
438
+ "defaultValue": "false"
439
+ },
440
+ "value": {
441
+ "type": "string",
442
+ "mutable": true,
443
+ "complexType": {
444
+ "original": "string",
445
+ "resolved": "string",
446
+ "references": {}
447
+ },
448
+ "required": false,
449
+ "optional": false,
450
+ "docs": {
451
+ "tags": [{
452
+ "name": "description",
453
+ "text": "The time displayed in the input field. Updated as the user types. Can also\nbe set programmatically by the application."
454
+ }, {
455
+ "name": "default",
456
+ "text": "\"\""
457
+ }],
458
+ "text": ""
459
+ },
460
+ "attribute": "value",
461
+ "reflect": false,
462
+ "defaultValue": "\"\""
463
+ },
464
+ "errorMessage": {
465
+ "type": "string",
466
+ "mutable": false,
467
+ "complexType": {
468
+ "original": "string",
469
+ "resolved": "string | undefined",
470
+ "references": {}
471
+ },
472
+ "required": false,
473
+ "optional": true,
474
+ "docs": {
475
+ "tags": [{
476
+ "name": "description",
477
+ "text": "Puts the component in an error state and displays this message below the\ninput."
478
+ }],
479
+ "text": ""
480
+ },
481
+ "attribute": "error-message",
482
+ "reflect": false
483
+ },
484
+ "label": {
485
+ "type": "string",
486
+ "mutable": false,
487
+ "complexType": {
488
+ "original": "string",
489
+ "resolved": "string",
490
+ "references": {}
491
+ },
492
+ "required": false,
493
+ "optional": false,
494
+ "docs": {
495
+ "tags": [{
496
+ "name": "description",
497
+ "text": "Accessible label for the input. Required even when `label-position=\"none\"`."
498
+ }, {
499
+ "name": "required",
500
+ "text": undefined
501
+ }],
502
+ "text": ""
503
+ },
504
+ "attribute": "label",
505
+ "reflect": false,
506
+ "defaultValue": "\"\""
507
+ },
508
+ "labelPosition": {
509
+ "type": "string",
510
+ "mutable": false,
511
+ "complexType": {
512
+ "original": "\"top\" | \"left\" | \"none\"",
513
+ "resolved": "\"left\" | \"none\" | \"top\"",
514
+ "references": {}
515
+ },
516
+ "required": false,
517
+ "optional": false,
518
+ "docs": {
519
+ "tags": [{
520
+ "name": "description",
521
+ "text": "Controls label placement. `'none'` hides the label visually but keeps it\naccessible."
522
+ }, {
523
+ "name": "default",
524
+ "text": "\"top\""
525
+ }],
526
+ "text": ""
527
+ },
528
+ "attribute": "label-position",
529
+ "reflect": false,
530
+ "defaultValue": "\"top\""
531
+ },
532
+ "requiredField": {
533
+ "type": "boolean",
534
+ "mutable": false,
535
+ "complexType": {
536
+ "original": "boolean",
537
+ "resolved": "boolean",
538
+ "references": {}
539
+ },
540
+ "required": false,
541
+ "optional": false,
542
+ "docs": {
543
+ "tags": [{
544
+ "name": "description",
545
+ "text": "Displays a required-field asterisk next to the label."
546
+ }, {
547
+ "name": "default",
548
+ "text": "false"
549
+ }],
550
+ "text": ""
551
+ },
552
+ "attribute": "required-field",
553
+ "reflect": false,
554
+ "defaultValue": "false"
555
+ },
556
+ "preselected": {
557
+ "type": "string",
558
+ "mutable": false,
559
+ "complexType": {
560
+ "original": "string",
561
+ "resolved": "string | undefined",
562
+ "references": {}
563
+ },
564
+ "required": false,
565
+ "optional": true,
566
+ "docs": {
567
+ "tags": [{
568
+ "name": "description",
569
+ "text": "The time the dropdown scrolls to and focuses when opened, in 24-hour format\n(e.g. `'14:30'`). Falls back to parsing `value`; defaults to `'09:00'` if unparseable."
570
+ }],
571
+ "text": ""
572
+ },
573
+ "attribute": "preselected",
574
+ "reflect": false
575
+ }
576
+ };
577
+ }
578
+ static get states() {
579
+ return {
580
+ "isExpanded": {}
581
+ };
582
+ }
583
+ static get events() {
584
+ return [{
585
+ "method": "wmTimepickerInputBlurred",
586
+ "name": "wmTimepickerInputBlurred",
587
+ "bubbles": true,
588
+ "cancelable": true,
589
+ "composed": true,
590
+ "docs": {
591
+ "tags": [{
592
+ "name": "description",
593
+ "text": "Fires when the input field loses focus."
594
+ }],
595
+ "text": ""
596
+ },
597
+ "complexType": {
598
+ "original": "any",
599
+ "resolved": "any",
600
+ "references": {}
601
+ }
602
+ }, {
603
+ "method": "wmTimepickerTimeSelected",
604
+ "name": "wmTimepickerTimeSelected",
605
+ "bubbles": true,
606
+ "cancelable": true,
607
+ "composed": true,
608
+ "docs": {
609
+ "tags": [{
610
+ "name": "description",
611
+ "text": "Fires when the user selects a time from the dropdown list."
612
+ }, {
613
+ "name": "eventDetails",
614
+ "text": "{{ time: string }} time \u2014 the selected time in 24-hour `hh:mm` format."
615
+ }],
616
+ "text": ""
617
+ },
618
+ "complexType": {
619
+ "original": "any",
620
+ "resolved": "any",
621
+ "references": {}
622
+ }
623
+ }];
624
+ }
625
+ static get methods() {
626
+ return {
627
+ "isValidTime": {
628
+ "complexType": {
629
+ "signature": "(input: string) => Promise<boolean>",
630
+ "parameters": [{
631
+ "name": "input",
632
+ "type": "string",
633
+ "docs": "The time string to validate."
634
+ }],
635
+ "references": {
636
+ "Promise": {
637
+ "location": "global",
638
+ "id": "global::Promise"
639
+ }
640
+ },
641
+ "return": "Promise<boolean>"
642
+ },
643
+ "docs": {
644
+ "text": "",
645
+ "tags": [{
646
+ "name": "description",
647
+ "text": "Validates a time string against both 12-hour and 24-hour formats."
648
+ }, {
649
+ "name": "param",
650
+ "text": "input The time string to validate."
651
+ }, {
652
+ "name": "returns",
653
+ "text": "`true` if the string is a valid time, `false` otherwise."
654
+ }]
655
+ }
656
+ },
657
+ "reformatTime": {
658
+ "complexType": {
659
+ "signature": "(format: \"12\" | \"24\", time: TimeFormat12 | TimeFormat24) => Promise<string>",
660
+ "parameters": [{
661
+ "name": "format",
662
+ "type": "\"12\" | \"24\"",
663
+ "docs": "The target format: `\"12\"` for 12-hour (e.g. `\"02:30 PM\"`), `\"24\"` for\n24-hour (e.g. `\"14:30\"`)."
664
+ }, {
665
+ "name": "time",
666
+ "type": "string",
667
+ "docs": "The time string to convert. Accepts both 12-hour and 24-hour input."
668
+ }],
669
+ "references": {
670
+ "Promise": {
671
+ "location": "global",
672
+ "id": "global::Promise"
673
+ },
674
+ "TimeFormat12": {
675
+ "location": "import",
676
+ "path": "../../global/interfaces",
677
+ "id": "src/global/interfaces.ts::TimeFormat12"
678
+ },
679
+ "TimeFormat24": {
680
+ "location": "import",
681
+ "path": "../../global/interfaces",
682
+ "id": "src/global/interfaces.ts::TimeFormat24"
683
+ }
684
+ },
685
+ "return": "Promise<string>"
686
+ },
687
+ "docs": {
688
+ "text": "",
689
+ "tags": [{
690
+ "name": "description",
691
+ "text": "Converts a time string between 12-hour and 24-hour formats."
692
+ }, {
693
+ "name": "param",
694
+ "text": "format The target format: `\"12\"` for 12-hour (e.g. `\"02:30 PM\"`), `\"24\"` for\n24-hour (e.g. `\"14:30\"`)."
695
+ }, {
696
+ "name": "param",
697
+ "text": "time The time string to convert. Accepts both 12-hour and 24-hour input."
698
+ }, {
699
+ "name": "returns",
700
+ "text": "The reformatted time string."
701
+ }]
702
+ }
703
+ }
704
+ };
705
+ }
706
+ static get elementRef() { return "el"; }
707
+ static get watchers() {
708
+ return [{
709
+ "propName": "disabled",
710
+ "methodName": "handleDisabledChange"
711
+ }, {
712
+ "propName": "value",
713
+ "methodName": "handleValueChange"
714
+ }, {
715
+ "propName": "errorMessage",
716
+ "methodName": "announceError"
717
+ }];
718
+ }
719
+ static get listeners() {
720
+ return [{
721
+ "name": "keydown",
722
+ "method": "handleKey",
723
+ "target": undefined,
724
+ "capture": false,
725
+ "passive": false
726
+ }];
727
+ }
728
+ }