@refinitiv-ui/elements 5.3.3 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/lib/accordion/custom-elements.json +49 -0
  3. package/lib/accordion/custom-elements.md +18 -0
  4. package/lib/accordion/index.d.ts +76 -0
  5. package/lib/accordion/index.js +136 -0
  6. package/lib/accordion/themes/halo/dark/index.js +3 -0
  7. package/lib/accordion/themes/halo/light/index.js +3 -0
  8. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  9. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  10. package/lib/appstate-bar/custom-elements.json +49 -0
  11. package/lib/appstate-bar/custom-elements.md +22 -0
  12. package/lib/appstate-bar/index.d.ts +65 -0
  13. package/lib/appstate-bar/index.js +100 -0
  14. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  15. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  16. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  17. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  18. package/lib/autosuggest/custom-elements.json +233 -0
  19. package/lib/autosuggest/custom-elements.md +47 -0
  20. package/lib/autosuggest/helpers/types.d.ts +54 -0
  21. package/lib/autosuggest/helpers/types.js +1 -0
  22. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  23. package/lib/autosuggest/helpers/utils.js +75 -0
  24. package/lib/autosuggest/index.d.ts +534 -0
  25. package/lib/autosuggest/index.js +1251 -0
  26. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  27. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  28. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  29. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  30. package/lib/button/custom-elements.json +119 -0
  31. package/lib/button/custom-elements.md +23 -0
  32. package/lib/button/index.d.ts +132 -0
  33. package/lib/button/index.js +223 -0
  34. package/lib/button/themes/halo/dark/index.js +3 -0
  35. package/lib/button/themes/halo/light/index.js +3 -0
  36. package/lib/button/themes/solar/charcoal/index.js +3 -0
  37. package/lib/button/themes/solar/pearl/index.js +3 -0
  38. package/lib/button-bar/custom-elements.json +26 -0
  39. package/lib/button-bar/custom-elements.md +9 -0
  40. package/lib/button-bar/index.d.ts +76 -0
  41. package/lib/button-bar/index.js +155 -0
  42. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  43. package/lib/button-bar/themes/halo/light/index.js +3 -0
  44. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  45. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  46. package/lib/calendar/constants.d.ts +22 -0
  47. package/lib/calendar/constants.js +23 -0
  48. package/lib/calendar/custom-elements.json +199 -0
  49. package/lib/calendar/custom-elements.md +35 -0
  50. package/lib/calendar/index.d.ts +321 -0
  51. package/lib/calendar/index.js +906 -0
  52. package/lib/calendar/locales.d.ts +1 -0
  53. package/lib/calendar/locales.js +40 -0
  54. package/lib/calendar/themes/halo/dark/index.js +3 -0
  55. package/lib/calendar/themes/halo/light/index.js +3 -0
  56. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  57. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  58. package/lib/calendar/types.d.ts +29 -0
  59. package/lib/calendar/types.js +1 -0
  60. package/lib/calendar/utils.d.ts +42 -0
  61. package/lib/calendar/utils.js +119 -0
  62. package/lib/canvas/custom-elements.json +69 -0
  63. package/lib/canvas/custom-elements.md +27 -0
  64. package/lib/canvas/index.d.ts +100 -0
  65. package/lib/canvas/index.js +172 -0
  66. package/lib/canvas/themes/halo/dark/index.js +2 -0
  67. package/lib/canvas/themes/halo/light/index.js +2 -0
  68. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  69. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  70. package/lib/card/custom-elements.json +59 -0
  71. package/lib/card/custom-elements.md +24 -0
  72. package/lib/card/helpers/types.d.ts +12 -0
  73. package/lib/card/helpers/types.js +1 -0
  74. package/lib/card/index.d.ts +140 -0
  75. package/lib/card/index.js +246 -0
  76. package/lib/card/themes/halo/dark/index.js +5 -0
  77. package/lib/card/themes/halo/light/index.js +5 -0
  78. package/lib/card/themes/solar/charcoal/index.js +5 -0
  79. package/lib/card/themes/solar/pearl/index.js +5 -0
  80. package/lib/chart/custom-elements.json +42 -0
  81. package/lib/chart/custom-elements.md +16 -0
  82. package/lib/chart/helpers/index.d.ts +2 -0
  83. package/lib/chart/helpers/index.js +2 -0
  84. package/lib/chart/helpers/legend.d.ts +5 -0
  85. package/lib/chart/helpers/legend.js +78 -0
  86. package/lib/chart/helpers/merge.d.ts +15 -0
  87. package/lib/chart/helpers/merge.js +28 -0
  88. package/lib/chart/helpers/types.d.ts +69 -0
  89. package/lib/chart/helpers/types.js +1 -0
  90. package/lib/chart/index.d.ts +187 -0
  91. package/lib/chart/index.js +491 -0
  92. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  93. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  94. package/lib/chart/themes/halo/dark/index.js +4 -0
  95. package/lib/chart/themes/halo/light/index.js +4 -0
  96. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  97. package/lib/chart/themes/solar/pearl/index.js +4 -0
  98. package/lib/checkbox/custom-elements.json +67 -0
  99. package/lib/checkbox/custom-elements.md +18 -0
  100. package/lib/checkbox/index.d.ts +95 -0
  101. package/lib/checkbox/index.js +193 -0
  102. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  103. package/lib/checkbox/themes/halo/light/index.js +4 -0
  104. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  105. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  106. package/lib/clock/custom-elements.json +121 -0
  107. package/lib/clock/custom-elements.md +28 -0
  108. package/lib/clock/index.d.ts +319 -0
  109. package/lib/clock/index.js +581 -0
  110. package/lib/clock/themes/halo/dark/index.js +2 -0
  111. package/lib/clock/themes/halo/light/index.js +2 -0
  112. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  113. package/lib/clock/themes/solar/pearl/index.js +2 -0
  114. package/lib/clock/utils/TickManager.d.ts +14 -0
  115. package/lib/clock/utils/TickManager.js +66 -0
  116. package/lib/clock/utils/timestamps.d.ts +6 -0
  117. package/lib/clock/utils/timestamps.js +6 -0
  118. package/lib/collapse/custom-elements.json +79 -0
  119. package/lib/collapse/custom-elements.md +27 -0
  120. package/lib/collapse/index.d.ts +119 -0
  121. package/lib/collapse/index.js +197 -0
  122. package/lib/collapse/themes/halo/dark/index.js +5 -0
  123. package/lib/collapse/themes/halo/light/index.js +5 -0
  124. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  125. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  126. package/lib/color-dialog/custom-elements.json +193 -0
  127. package/lib/color-dialog/custom-elements.md +39 -0
  128. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  129. package/lib/color-dialog/elements/color-palettes.js +101 -0
  130. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  131. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  132. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  133. package/lib/color-dialog/elements/palettes.js +132 -0
  134. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  135. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  136. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  137. package/lib/color-dialog/helpers/value-model.js +141 -0
  138. package/lib/color-dialog/index.d.ts +232 -0
  139. package/lib/color-dialog/index.js +459 -0
  140. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  141. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  142. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  143. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  144. package/lib/combo-box/custom-elements.json +210 -0
  145. package/lib/combo-box/custom-elements.md +35 -0
  146. package/lib/combo-box/helpers/filter.d.ts +10 -0
  147. package/lib/combo-box/helpers/filter.js +29 -0
  148. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  149. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  150. package/lib/combo-box/helpers/types.d.ts +11 -0
  151. package/lib/combo-box/helpers/types.js +1 -0
  152. package/lib/combo-box/index.d.ts +523 -0
  153. package/lib/combo-box/index.js +1146 -0
  154. package/lib/combo-box/themes/halo/dark/index.js +8 -0
  155. package/lib/combo-box/themes/halo/light/index.js +8 -0
  156. package/lib/combo-box/themes/solar/charcoal/index.js +8 -0
  157. package/lib/combo-box/themes/solar/pearl/index.js +8 -0
  158. package/lib/counter/custom-elements.json +35 -0
  159. package/lib/counter/custom-elements.md +11 -0
  160. package/lib/counter/index.d.ts +89 -0
  161. package/lib/counter/index.js +152 -0
  162. package/lib/counter/themes/halo/dark/index.js +3 -0
  163. package/lib/counter/themes/halo/light/index.js +3 -0
  164. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  165. package/lib/counter/themes/solar/pearl/index.js +3 -0
  166. package/lib/counter/utils.d.ts +13 -0
  167. package/lib/counter/utils.js +52 -0
  168. package/lib/datetime-picker/custom-elements.json +333 -0
  169. package/lib/datetime-picker/custom-elements.md +49 -0
  170. package/lib/datetime-picker/index.d.ts +498 -0
  171. package/lib/datetime-picker/index.js +1164 -0
  172. package/lib/datetime-picker/locales.d.ts +8 -0
  173. package/lib/datetime-picker/locales.js +57 -0
  174. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  175. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  176. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  177. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  178. package/lib/datetime-picker/types.d.ts +3 -0
  179. package/lib/datetime-picker/types.js +1 -0
  180. package/lib/datetime-picker/utils.d.ts +55 -0
  181. package/lib/datetime-picker/utils.js +92 -0
  182. package/lib/dialog/custom-elements.json +136 -0
  183. package/lib/dialog/custom-elements.md +47 -0
  184. package/lib/dialog/draggable-element.d.ts +14 -0
  185. package/lib/dialog/draggable-element.js +221 -0
  186. package/lib/dialog/index.d.ts +199 -0
  187. package/lib/dialog/index.js +331 -0
  188. package/lib/dialog/themes/halo/dark/index.js +7 -0
  189. package/lib/dialog/themes/halo/light/index.js +7 -0
  190. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  191. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  192. package/lib/email-field/custom-elements.json +199 -0
  193. package/lib/email-field/custom-elements.md +35 -0
  194. package/lib/email-field/index.d.ts +152 -0
  195. package/lib/email-field/index.js +286 -0
  196. package/lib/email-field/themes/halo/dark/index.js +3 -0
  197. package/lib/email-field/themes/halo/light/index.js +3 -0
  198. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  199. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  200. package/lib/events.d.ts +121 -0
  201. package/lib/events.js +1 -0
  202. package/lib/flag/custom-elements.json +35 -0
  203. package/lib/flag/custom-elements.md +10 -0
  204. package/lib/flag/index.d.ts +94 -0
  205. package/lib/flag/index.js +166 -0
  206. package/lib/flag/themes/halo/dark/index.js +2 -0
  207. package/lib/flag/themes/halo/light/index.js +2 -0
  208. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  209. package/lib/flag/themes/solar/pearl/index.js +2 -0
  210. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  211. package/lib/flag/utils/FlagLoader.js +86 -0
  212. package/lib/header/custom-elements.json +36 -0
  213. package/lib/header/custom-elements.md +18 -0
  214. package/lib/header/index.d.ts +46 -0
  215. package/lib/header/index.js +73 -0
  216. package/lib/header/themes/halo/dark/index.js +2 -0
  217. package/lib/header/themes/halo/light/index.js +2 -0
  218. package/lib/header/themes/solar/charcoal/index.js +2 -0
  219. package/lib/header/themes/solar/pearl/index.js +2 -0
  220. package/lib/heatmap/custom-elements.json +151 -0
  221. package/lib/heatmap/custom-elements.md +26 -0
  222. package/lib/heatmap/helpers/color.d.ts +30 -0
  223. package/lib/heatmap/helpers/color.js +68 -0
  224. package/lib/heatmap/helpers/text.d.ts +26 -0
  225. package/lib/heatmap/helpers/text.js +91 -0
  226. package/lib/heatmap/helpers/track.d.ts +102 -0
  227. package/lib/heatmap/helpers/track.js +160 -0
  228. package/lib/heatmap/helpers/types.d.ts +40 -0
  229. package/lib/heatmap/helpers/types.js +1 -0
  230. package/lib/heatmap/index.d.ts +453 -0
  231. package/lib/heatmap/index.js +1103 -0
  232. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  233. package/lib/heatmap/themes/halo/light/index.js +4 -0
  234. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  235. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  236. package/lib/icon/custom-elements.json +36 -0
  237. package/lib/icon/custom-elements.md +8 -0
  238. package/lib/icon/index.d.ts +88 -0
  239. package/lib/icon/index.js +169 -0
  240. package/lib/icon/themes/halo/dark/index.js +2 -0
  241. package/lib/icon/themes/halo/light/index.js +2 -0
  242. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  243. package/lib/icon/themes/solar/pearl/index.js +2 -0
  244. package/lib/icon/utils/IconLoader.d.ts +52 -0
  245. package/lib/icon/utils/IconLoader.js +93 -0
  246. package/lib/index.d.ts +3 -0
  247. package/lib/index.js +3 -0
  248. package/lib/interactive-chart/custom-elements.json +86 -0
  249. package/lib/interactive-chart/custom-elements.md +32 -0
  250. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  251. package/lib/interactive-chart/helpers/merge.js +28 -0
  252. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  253. package/lib/interactive-chart/helpers/types.js +6 -0
  254. package/lib/interactive-chart/index.d.ts +380 -0
  255. package/lib/interactive-chart/index.js +1090 -0
  256. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  257. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  258. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  259. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  260. package/lib/item/custom-elements.json +151 -0
  261. package/lib/item/custom-elements.md +29 -0
  262. package/lib/item/helpers/types.d.ts +57 -0
  263. package/lib/item/helpers/types.js +1 -0
  264. package/lib/item/index.d.ts +158 -0
  265. package/lib/item/index.js +271 -0
  266. package/lib/item/themes/halo/dark/index.js +4 -0
  267. package/lib/item/themes/halo/light/index.js +4 -0
  268. package/lib/item/themes/solar/charcoal/index.js +4 -0
  269. package/lib/item/themes/solar/pearl/index.js +4 -0
  270. package/lib/jsx.d.ts +223 -0
  271. package/lib/label/custom-elements.json +52 -0
  272. package/lib/label/custom-elements.md +11 -0
  273. package/lib/label/index.d.ts +102 -0
  274. package/lib/label/index.js +244 -0
  275. package/lib/label/themes/halo/dark/index.js +3 -0
  276. package/lib/label/themes/halo/light/index.js +3 -0
  277. package/lib/label/themes/solar/charcoal/index.js +3 -0
  278. package/lib/label/themes/solar/pearl/index.js +3 -0
  279. package/lib/layout/custom-elements.json +163 -0
  280. package/lib/layout/custom-elements.md +26 -0
  281. package/lib/layout/index.d.ts +107 -0
  282. package/lib/layout/index.js +212 -0
  283. package/lib/layout/themes/halo/dark/index.js +2 -0
  284. package/lib/layout/themes/halo/light/index.js +2 -0
  285. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  286. package/lib/layout/themes/solar/pearl/index.js +2 -0
  287. package/lib/led-gauge/custom-elements.json +113 -0
  288. package/lib/led-gauge/custom-elements.md +17 -0
  289. package/lib/led-gauge/index.d.ts +143 -0
  290. package/lib/led-gauge/index.js +437 -0
  291. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  292. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  293. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  294. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  295. package/lib/list/custom-elements.json +111 -0
  296. package/lib/list/custom-elements.md +30 -0
  297. package/lib/list/extensible-function.d.ts +8 -0
  298. package/lib/list/extensible-function.js +13 -0
  299. package/lib/list/helpers/list-renderer.d.ts +9 -0
  300. package/lib/list/helpers/list-renderer.js +35 -0
  301. package/lib/list/helpers/types.d.ts +3 -0
  302. package/lib/list/helpers/types.js +1 -0
  303. package/lib/list/index.d.ts +292 -0
  304. package/lib/list/index.js +600 -0
  305. package/lib/list/renderer.d.ts +36 -0
  306. package/lib/list/renderer.js +9 -0
  307. package/lib/list/themes/halo/dark/index.js +3 -0
  308. package/lib/list/themes/halo/light/index.js +3 -0
  309. package/lib/list/themes/solar/charcoal/index.js +3 -0
  310. package/lib/list/themes/solar/pearl/index.js +3 -0
  311. package/lib/loader/custom-elements.json +9 -0
  312. package/lib/loader/custom-elements.md +5 -0
  313. package/lib/loader/index.d.ts +41 -0
  314. package/lib/loader/index.js +61 -0
  315. package/lib/loader/themes/halo/dark/index.js +2 -0
  316. package/lib/loader/themes/halo/light/index.js +2 -0
  317. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  318. package/lib/loader/themes/solar/pearl/index.js +2 -0
  319. package/lib/multi-input/custom-elements.json +238 -0
  320. package/lib/multi-input/custom-elements.md +43 -0
  321. package/lib/multi-input/helpers/types.d.ts +11 -0
  322. package/lib/multi-input/helpers/types.js +1 -0
  323. package/lib/multi-input/index.d.ts +297 -0
  324. package/lib/multi-input/index.js +590 -0
  325. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  326. package/lib/multi-input/themes/halo/light/index.js +4 -0
  327. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  328. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  329. package/lib/notification/custom-elements.json +95 -0
  330. package/lib/notification/custom-elements.md +26 -0
  331. package/lib/notification/elements/notification-tray.d.ts +97 -0
  332. package/lib/notification/elements/notification-tray.js +167 -0
  333. package/lib/notification/elements/notification.d.ts +90 -0
  334. package/lib/notification/elements/notification.js +154 -0
  335. package/lib/notification/helpers/status.d.ts +30 -0
  336. package/lib/notification/helpers/status.js +130 -0
  337. package/lib/notification/helpers/types.d.ts +10 -0
  338. package/lib/notification/helpers/types.js +1 -0
  339. package/lib/notification/index.d.ts +2 -0
  340. package/lib/notification/index.js +2 -0
  341. package/lib/notification/themes/halo/dark/index.js +5 -0
  342. package/lib/notification/themes/halo/light/index.js +5 -0
  343. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  344. package/lib/notification/themes/solar/pearl/index.js +5 -0
  345. package/lib/number-field/custom-elements.json +200 -0
  346. package/lib/number-field/custom-elements.md +37 -0
  347. package/lib/number-field/index.d.ts +294 -0
  348. package/lib/number-field/index.js +707 -0
  349. package/lib/number-field/themes/halo/dark/index.js +3 -0
  350. package/lib/number-field/themes/halo/light/index.js +3 -0
  351. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  352. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  353. package/lib/overlay/custom-elements.json +345 -0
  354. package/lib/overlay/custom-elements.md +54 -0
  355. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  356. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  357. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  358. package/lib/overlay/elements/overlay-viewport.js +52 -0
  359. package/lib/overlay/elements/overlay.d.ts +403 -0
  360. package/lib/overlay/elements/overlay.js +1426 -0
  361. package/lib/overlay/helpers/functions.d.ts +13 -0
  362. package/lib/overlay/helpers/functions.js +16 -0
  363. package/lib/overlay/helpers/types.d.ts +97 -0
  364. package/lib/overlay/helpers/types.js +16 -0
  365. package/lib/overlay/index.d.ts +2 -0
  366. package/lib/overlay/index.js +1 -0
  367. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  368. package/lib/overlay/managers/backdrop-manager.js +96 -0
  369. package/lib/overlay/managers/close-manager.d.ts +54 -0
  370. package/lib/overlay/managers/close-manager.js +138 -0
  371. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  372. package/lib/overlay/managers/focus-manager.js +228 -0
  373. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  374. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  375. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  376. package/lib/overlay/managers/viewport-manager.js +211 -0
  377. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  378. package/lib/overlay/managers/zindex-manager.js +195 -0
  379. package/lib/overlay/themes/halo/dark/index.js +4 -0
  380. package/lib/overlay/themes/halo/light/index.js +4 -0
  381. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  382. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  383. package/lib/overlay-menu/custom-elements.json +194 -0
  384. package/lib/overlay-menu/custom-elements.md +44 -0
  385. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  386. package/lib/overlay-menu/helpers/types.js +1 -0
  387. package/lib/overlay-menu/index.d.ts +385 -0
  388. package/lib/overlay-menu/index.js +933 -0
  389. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  390. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  391. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  392. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  393. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  394. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  395. package/lib/pagination/custom-elements.json +93 -0
  396. package/lib/pagination/custom-elements.md +27 -0
  397. package/lib/pagination/helpers/types.d.ts +9 -0
  398. package/lib/pagination/helpers/types.js +1 -0
  399. package/lib/pagination/index.d.ts +207 -0
  400. package/lib/pagination/index.js +398 -0
  401. package/lib/pagination/themes/halo/dark/index.js +6 -0
  402. package/lib/pagination/themes/halo/light/index.js +6 -0
  403. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  404. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  405. package/lib/panel/custom-elements.json +39 -0
  406. package/lib/panel/custom-elements.md +11 -0
  407. package/lib/panel/index.d.ts +48 -0
  408. package/lib/panel/index.js +74 -0
  409. package/lib/panel/themes/halo/dark/index.js +2 -0
  410. package/lib/panel/themes/halo/light/index.js +2 -0
  411. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  412. package/lib/panel/themes/solar/pearl/index.js +2 -0
  413. package/lib/password-field/custom-elements.json +156 -0
  414. package/lib/password-field/custom-elements.md +31 -0
  415. package/lib/password-field/index.d.ts +141 -0
  416. package/lib/password-field/index.js +258 -0
  417. package/lib/password-field/themes/halo/dark/index.js +3 -0
  418. package/lib/password-field/themes/halo/light/index.js +3 -0
  419. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  420. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  421. package/lib/pill/custom-elements.json +95 -0
  422. package/lib/pill/custom-elements.md +22 -0
  423. package/lib/pill/index.d.ts +97 -0
  424. package/lib/pill/index.js +160 -0
  425. package/lib/pill/themes/halo/dark/index.js +3 -0
  426. package/lib/pill/themes/halo/light/index.js +3 -0
  427. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  428. package/lib/pill/themes/solar/pearl/index.js +3 -0
  429. package/lib/progress-bar/custom-elements.json +58 -0
  430. package/lib/progress-bar/custom-elements.md +18 -0
  431. package/lib/progress-bar/index.d.ts +82 -0
  432. package/lib/progress-bar/index.js +157 -0
  433. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  434. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  435. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  436. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  437. package/lib/radio-button/custom-elements.json +82 -0
  438. package/lib/radio-button/custom-elements.md +19 -0
  439. package/lib/radio-button/index.d.ts +122 -0
  440. package/lib/radio-button/index.js +257 -0
  441. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  442. package/lib/radio-button/radio-button-registry.js +93 -0
  443. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  444. package/lib/radio-button/themes/halo/light/index.js +3 -0
  445. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  446. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  447. package/lib/rating/custom-elements.json +58 -0
  448. package/lib/rating/custom-elements.md +17 -0
  449. package/lib/rating/index.d.ts +91 -0
  450. package/lib/rating/index.js +157 -0
  451. package/lib/rating/themes/halo/dark/index.js +2 -0
  452. package/lib/rating/themes/halo/light/index.js +2 -0
  453. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  454. package/lib/rating/themes/solar/pearl/index.js +2 -0
  455. package/lib/search-field/custom-elements.json +173 -0
  456. package/lib/search-field/custom-elements.md +33 -0
  457. package/lib/search-field/index.d.ts +134 -0
  458. package/lib/search-field/index.js +253 -0
  459. package/lib/search-field/themes/halo/dark/index.js +3 -0
  460. package/lib/search-field/themes/halo/light/index.js +3 -0
  461. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  462. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  463. package/lib/select/custom-elements.json +103 -0
  464. package/lib/select/custom-elements.md +24 -0
  465. package/lib/select/helpers/types.d.ts +3 -0
  466. package/lib/select/helpers/types.js +1 -0
  467. package/lib/select/index.d.ts +388 -0
  468. package/lib/select/index.js +942 -0
  469. package/lib/select/themes/halo/dark/index.js +5 -0
  470. package/lib/select/themes/halo/light/index.js +5 -0
  471. package/lib/select/themes/solar/charcoal/index.js +5 -0
  472. package/lib/select/themes/solar/pearl/index.js +5 -0
  473. package/lib/sidebar-layout/custom-elements.json +72 -0
  474. package/lib/sidebar-layout/custom-elements.md +22 -0
  475. package/lib/sidebar-layout/index.d.ts +69 -0
  476. package/lib/sidebar-layout/index.js +134 -0
  477. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  478. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  479. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  480. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  481. package/lib/slider/custom-elements.json +181 -0
  482. package/lib/slider/custom-elements.md +28 -0
  483. package/lib/slider/index.d.ts +409 -0
  484. package/lib/slider/index.js +1187 -0
  485. package/lib/slider/themes/halo/dark/index.js +3 -0
  486. package/lib/slider/themes/halo/light/index.js +3 -0
  487. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  488. package/lib/slider/themes/solar/pearl/index.js +3 -0
  489. package/lib/sparkline/custom-elements.json +59 -0
  490. package/lib/sparkline/custom-elements.md +16 -0
  491. package/lib/sparkline/index.d.ts +107 -0
  492. package/lib/sparkline/index.js +186 -0
  493. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  494. package/lib/sparkline/themes/halo/light/index.js +2 -0
  495. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  496. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  497. package/lib/swing-gauge/const.d.ts +22 -0
  498. package/lib/swing-gauge/const.js +26 -0
  499. package/lib/swing-gauge/custom-elements.json +109 -0
  500. package/lib/swing-gauge/custom-elements.md +17 -0
  501. package/lib/swing-gauge/helpers.d.ts +8 -0
  502. package/lib/swing-gauge/helpers.js +105 -0
  503. package/lib/swing-gauge/index.d.ts +294 -0
  504. package/lib/swing-gauge/index.js +762 -0
  505. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  506. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  507. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  508. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  509. package/lib/swing-gauge/types.d.ts +34 -0
  510. package/lib/swing-gauge/types.js +1 -0
  511. package/lib/tab/custom-elements.json +123 -0
  512. package/lib/tab/custom-elements.md +22 -0
  513. package/lib/tab/index.d.ts +118 -0
  514. package/lib/tab/index.js +208 -0
  515. package/lib/tab/themes/halo/dark/index.js +4 -0
  516. package/lib/tab/themes/halo/light/index.js +4 -0
  517. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  518. package/lib/tab/themes/solar/pearl/index.js +4 -0
  519. package/lib/tab-bar/custom-elements.json +52 -0
  520. package/lib/tab-bar/custom-elements.md +11 -0
  521. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  522. package/lib/tab-bar/helpers/animate.js +53 -0
  523. package/lib/tab-bar/index.d.ts +108 -0
  524. package/lib/tab-bar/index.js +218 -0
  525. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  526. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  527. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  528. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  529. package/lib/text-field/custom-elements.json +210 -0
  530. package/lib/text-field/custom-elements.md +37 -0
  531. package/lib/text-field/index.d.ts +193 -0
  532. package/lib/text-field/index.js +409 -0
  533. package/lib/text-field/themes/halo/dark/index.js +3 -0
  534. package/lib/text-field/themes/halo/light/index.js +3 -0
  535. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  536. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  537. package/lib/time-picker/custom-elements.json +124 -0
  538. package/lib/time-picker/custom-elements.md +28 -0
  539. package/lib/time-picker/index.d.ts +379 -0
  540. package/lib/time-picker/index.js +775 -0
  541. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  542. package/lib/time-picker/themes/halo/light/index.js +4 -0
  543. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  544. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  545. package/lib/toggle/custom-elements.json +82 -0
  546. package/lib/toggle/custom-elements.md +19 -0
  547. package/lib/toggle/index.d.ts +86 -0
  548. package/lib/toggle/index.js +152 -0
  549. package/lib/toggle/themes/halo/dark/index.js +2 -0
  550. package/lib/toggle/themes/halo/light/index.js +2 -0
  551. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  552. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  553. package/lib/tooltip/custom-elements.json +62 -0
  554. package/lib/tooltip/custom-elements.md +14 -0
  555. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  556. package/lib/tooltip/elements/title-tooltip.js +18 -0
  557. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  558. package/lib/tooltip/elements/tooltip-element.js +54 -0
  559. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  560. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  561. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  562. package/lib/tooltip/helpers/renderer.js +11 -0
  563. package/lib/tooltip/helpers/types.d.ts +23 -0
  564. package/lib/tooltip/helpers/types.js +1 -0
  565. package/lib/tooltip/index.d.ts +232 -0
  566. package/lib/tooltip/index.js +477 -0
  567. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  568. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  569. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  570. package/lib/tooltip/themes/halo/light/index.js +3 -0
  571. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  572. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  573. package/lib/tornado-chart/custom-elements.json +45 -0
  574. package/lib/tornado-chart/custom-elements.md +18 -0
  575. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  576. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  577. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  578. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  579. package/lib/tornado-chart/index.d.ts +2 -0
  580. package/lib/tornado-chart/index.js +2 -0
  581. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  582. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  583. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  584. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  585. package/lib/tree/custom-elements.json +113 -0
  586. package/lib/tree/custom-elements.md +32 -0
  587. package/lib/tree/elements/tree-item.d.ts +96 -0
  588. package/lib/tree/elements/tree-item.js +179 -0
  589. package/lib/tree/elements/tree.d.ts +201 -0
  590. package/lib/tree/elements/tree.js +412 -0
  591. package/lib/tree/helpers/filter.d.ts +8 -0
  592. package/lib/tree/helpers/filter.js +33 -0
  593. package/lib/tree/helpers/renderer.d.ts +5 -0
  594. package/lib/tree/helpers/renderer.js +33 -0
  595. package/lib/tree/helpers/types.d.ts +25 -0
  596. package/lib/tree/helpers/types.js +1 -0
  597. package/lib/tree/index.d.ts +4 -0
  598. package/lib/tree/index.js +3 -0
  599. package/lib/tree/managers/tree-manager.d.ts +248 -0
  600. package/lib/tree/managers/tree-manager.js +395 -0
  601. package/lib/tree/themes/halo/dark/index.js +7 -0
  602. package/lib/tree/themes/halo/light/index.js +7 -0
  603. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  604. package/lib/tree/themes/solar/pearl/index.js +7 -0
  605. package/lib/tree-select/custom-elements.json +107 -0
  606. package/lib/tree-select/custom-elements.md +26 -0
  607. package/lib/tree-select/helpers/types.d.ts +4 -0
  608. package/lib/tree-select/helpers/types.js +1 -0
  609. package/lib/tree-select/index.d.ts +402 -0
  610. package/lib/tree-select/index.js +890 -0
  611. package/lib/tree-select/themes/halo/dark/index.js +12 -0
  612. package/lib/tree-select/themes/halo/light/index.js +12 -0
  613. package/lib/tree-select/themes/solar/charcoal/index.js +12 -0
  614. package/lib/tree-select/themes/solar/pearl/index.js +12 -0
  615. package/lib/version.d.ts +1 -0
  616. package/lib/version.js +1 -0
  617. package/package.json +298 -15
@@ -0,0 +1,707 @@
1
+ import { __decorate } from "tslib";
2
+ import { ControlElement, html, css, FocusedPropertyKey } from '@refinitiv-ui/core';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
6
+ import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
7
+ import { VERSION } from '../version.js';
8
+ import '../icon/index.js';
9
+ const NUMBER_PATTERN = '^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$';
10
+ const DEFAULT_STEP_BASE = 1;
11
+ const ANY_STEP = 'any';
12
+ var Direction;
13
+ (function (Direction) {
14
+ Direction[Direction["Up"] = 1] = "Up";
15
+ Direction[Direction["Down"] = -1] = "Down";
16
+ })(Direction || (Direction = {}));
17
+ /**
18
+ * Form control element for numbers
19
+ *
20
+ * @fires value-changed - Dispatched when value changes
21
+ * @fires error-changed - Dispatched when error state changes
22
+ *
23
+ * @attr {string} value - Input's default value
24
+ * @prop {string} [value=] - Input's value
25
+ *
26
+ * @attr {boolean} readonly - Set readonly state
27
+ * @prop {boolean} [readonly=false] - Set readonly state
28
+ *
29
+ * @attr {boolean} disabled - Set disabled state
30
+ * @prop {boolean} [disabled=false] - Set disabled state
31
+ */
32
+ let NumberField = class NumberField extends ControlElement {
33
+ constructor() {
34
+ super(...arguments);
35
+ /**
36
+ * Set placeholder text
37
+ */
38
+ this.placeholder = null;
39
+ /**
40
+ * Set spinner's visibility
41
+ */
42
+ this.noSpinner = false;
43
+ /**
44
+ * Set step value
45
+ */
46
+ this.step = null;
47
+ /**
48
+ * Set minimum value.
49
+ * This value must be less than or equal to the value of the `max` attribute
50
+ */
51
+ this.min = null;
52
+ /**
53
+ * Set maximum value.
54
+ * This value must be greater than or equal to the value of the `min` attribute
55
+ */
56
+ this.max = null;
57
+ /**
58
+ * Set state to transparent
59
+ */
60
+ this.transparent = false;
61
+ /**
62
+ * Set state to error
63
+ */
64
+ this.error = false;
65
+ /**
66
+ * Set state to warning
67
+ */
68
+ this.warning = false;
69
+ this.interimValueState = false; // make sure that internal input field value is updated only on external value change
70
+ }
71
+ /**
72
+ * Element version number
73
+ * @returns version number
74
+ */
75
+ static get version() {
76
+ return VERSION;
77
+ }
78
+ /**
79
+ * A `CSSResultGroup` that will be used
80
+ * to style the host, slotted children
81
+ * and the internal template of the element.
82
+ * @return CSS template
83
+ */
84
+ static get styles() {
85
+ return css `
86
+ :host {
87
+ display: inline-block;
88
+ }
89
+ :host(:focus), :host input:focus {
90
+ outline: none;
91
+ }
92
+ :host([transparent]) {
93
+ background: none !important;
94
+ border: none !important;
95
+ }
96
+ [part=input] {
97
+ font: inherit;
98
+ background: none;
99
+ color: currentColor;
100
+ border: none;
101
+ text-align: inherit;
102
+ }
103
+ [part=spinner]{
104
+ display: flex;
105
+ flex-direction: column;
106
+ }
107
+ [part=spinner-up], [part=spinner-down] {
108
+ display: flex;
109
+ height: 50%;
110
+ cursor: pointer;
111
+ user-select: none;
112
+ }
113
+ [part^=spinner][disabled],
114
+ [part^=spinner][readonly] {
115
+ cursor: default;
116
+ }
117
+ `;
118
+ }
119
+ /**
120
+ * The value of the number entered into the input.
121
+ * @param value number-field value
122
+ */
123
+ set value(value) {
124
+ this.interimValueState = true;
125
+ super.value = value;
126
+ }
127
+ get value() {
128
+ return this.valueAsNumberString(this.internalValue);
129
+ }
130
+ /**
131
+ * Returns the value of the element, interpreted as double number
132
+ */
133
+ get valueAsNumber() {
134
+ return this.stringToNumber(this.internalValue);
135
+ }
136
+ /**
137
+ * Updates the element
138
+ * @param changedProperties Properties that has changed
139
+ * @returns {void}
140
+ */
141
+ update(changedProperties) {
142
+ // This code probably should not be here, as validation must be instantiated by the app developer
143
+ // Keep the element inline with others for now
144
+ if (changedProperties.has(FocusedPropertyKey) && !this.focused) {
145
+ this.reportValidity();
146
+ }
147
+ super.update(changedProperties);
148
+ }
149
+ /**
150
+ * Called when the element’s DOM has been updated and rendered
151
+ * @param changedProperties Properties that has changed
152
+ * @returns {void}
153
+ */
154
+ updated(changedProperties) {
155
+ // cannot use property binding on value as it may override the current input of the control
156
+ // set it manually only if value has been updated externally
157
+ // all internal input changes should not update input value
158
+ if (changedProperties.has('value') && this.interimValueState) {
159
+ this.inputValue = this.value;
160
+ this.interimValueState = false;
161
+ }
162
+ }
163
+ /**
164
+ * Convert string to number
165
+ * @param value value to convert
166
+ * @returns NaN if string is an invalid number or Infinity or empty string;
167
+ */
168
+ stringToNumber(value) {
169
+ return value && this.isValidValue(value) ? Number(value) : NaN;
170
+ }
171
+ /**
172
+ * Convert a float number to a fixed number
173
+ * @param value Value to convert
174
+ * @param [decimals] optional decimals. Default is based on step base and allowed value step
175
+ * @returns fixed number
176
+ */
177
+ toFixedNumber(value, decimals = this.stepDecimals) {
178
+ return Number(value.toFixed(decimals));
179
+ }
180
+ /**
181
+ * Convert step value from string to number or 'any'
182
+ * @returns step value of input as a number or 'any'
183
+ */
184
+ get stepValue() {
185
+ // special value as defined by HTML specs
186
+ if (String(this.step).toLowerCase() === ANY_STEP) {
187
+ return ANY_STEP;
188
+ }
189
+ const step = this.stringToNumber(this.step);
190
+ return isNaN(step) || step <= 0 ? DEFAULT_STEP_BASE : step;
191
+ }
192
+ /**
193
+ * Get the number of decimal places
194
+ * @param value Value to check
195
+ * @returns the number of decimal places
196
+ */
197
+ getDecimalPlace(value) {
198
+ if (Math.floor(value) === value || isNaN(value) || !isFinite(value)) {
199
+ return 0;
200
+ }
201
+ return value.toString().split('.')[1].length || 0;
202
+ }
203
+ /**
204
+ * Get number of decimals based on step base and allowed value step
205
+ * @returns decimals
206
+ */
207
+ get stepDecimals() {
208
+ return Math.max(this.getDecimalPlace(this.stepBase), this.getDecimalPlace(this.getAllowedValueStep()));
209
+ }
210
+ /**
211
+ * Check if passed value is a valid value
212
+ * @override
213
+ * @param value Value to check
214
+ * @returns {boolean} false if value is invalid
215
+ */
216
+ isValidValue(value) {
217
+ const number = Number(value);
218
+ return !isNaN(number) && isFinite(number);
219
+ }
220
+ /**
221
+ * Get value as valid number string.
222
+ * @param value A value to convert
223
+ * @returns string value
224
+ */
225
+ valueAsNumberString(value) {
226
+ return this.isValidValue(value) ? value : '';
227
+ }
228
+ /**
229
+ * Get either inputValue or actual value dependant on control state
230
+ * @returns string of input value
231
+ */
232
+ get internalValue() {
233
+ // cover the case when value getter is called before first render or in interim state
234
+ return this.interimValueState || !this.inputEl ? super.value : this.inputValue;
235
+ }
236
+ /**
237
+ * Get native input value
238
+ * @returns string of input value
239
+ */
240
+ get inputValue() {
241
+ return this.inputEl.value;
242
+ }
243
+ /**
244
+ * Set native input value
245
+ * @param value input's value
246
+ */
247
+ set inputValue(value) {
248
+ this.inputEl.value = value;
249
+ }
250
+ /**
251
+ * Handles key down input event
252
+ * @param event Key down event object
253
+ * @returns {void}
254
+ */
255
+ onNativeInputKeyDown(event) {
256
+ if (this.readonly || this.disabled || event.defaultPrevented) {
257
+ return;
258
+ }
259
+ switch (event.key) {
260
+ case 'Up':
261
+ case 'ArrowUp':
262
+ this.onApplyStep(Direction.Up);
263
+ break;
264
+ case 'Down':
265
+ case 'ArrowDown':
266
+ this.onApplyStep(Direction.Down);
267
+ break;
268
+ default:
269
+ return;
270
+ }
271
+ event.preventDefault();
272
+ }
273
+ /**
274
+ * Run when spinner has been tapped
275
+ * @param event tap event
276
+ * @returns {void}
277
+ */
278
+ onSpinnerTap(event) {
279
+ if (this.disabled || this.readonly || event.defaultPrevented) {
280
+ return;
281
+ }
282
+ const target = event.target;
283
+ if (target === this.spinnerDownEl) {
284
+ this.onApplyStep(Direction.Down);
285
+ }
286
+ else if (target === this.spinnerUpEl) {
287
+ this.onApplyStep(Direction.Up);
288
+ }
289
+ }
290
+ /**
291
+ * Step down or up and notify value change
292
+ * @param direction Up or Down
293
+ * @returns {void}
294
+ */
295
+ onApplyStep(direction) {
296
+ try {
297
+ this.applyStepDirection(undefined, direction);
298
+ this.setSilentlyValueAndNotify();
299
+ }
300
+ catch (error) {
301
+ // According to specs stepDown/stepUp may fail for some invalid inputs
302
+ // do nothing and report nothing in that case
303
+ }
304
+ }
305
+ /**
306
+ * Run before input changes
307
+ * Prevent invalid characters
308
+ * @param event before input event
309
+ * @returns {void}
310
+ */
311
+ /* istanbul ignore next */
312
+ onNativeBeforeInputChange(event) {
313
+ // The event is not supported in IE11 and old browsers
314
+ // Therefore just try to prevent some of invalid characters to be entered
315
+ // but still do full validation on actual `input` and `change` events
316
+ const inputType = event.inputType;
317
+ // cover all insert types, such as type, paste, drag&drop and others
318
+ if (inputType.startsWith('insert')) {
319
+ const data = event.data || '';
320
+ const inputEl = this.inputEl;
321
+ const oldInput = this.inputValue;
322
+ // Calculate what could be the new input
323
+ const selectionStart = inputEl.selectionStart || 0;
324
+ const selectionEnd = inputEl.selectionEnd || 0;
325
+ const newInput = `${oldInput.substring(0, selectionStart)}${data}${oldInput.substring(selectionEnd)}`;
326
+ const validatedInput = this.stripeInvalidCharacters(newInput, oldInput, data);
327
+ const insertionData = validatedInput.slice(0, validatedInput.length - (oldInput.length - selectionEnd)).substring(selectionStart);
328
+ // Invalid characters or sequence of characters
329
+ if (!insertionData.length) {
330
+ event.preventDefault();
331
+ return;
332
+ }
333
+ if (insertionData !== data) {
334
+ // In theory here we should emulate the new input
335
+ // in practice we cannot as there is no API (apart of deprecated execCommand), so do nothing
336
+ // invalid input will be stripped out on `input` event handler, but that will break Undo logic
337
+ }
338
+ }
339
+ }
340
+ /**
341
+ * Triggers when native input value change with input event or change event
342
+ * @param event Input event
343
+ * @returns {void}
344
+ */
345
+ onNativeInputChange(event) {
346
+ const currentInput = this.inputValue;
347
+ const inputValue = this.stripeInvalidCharacters(currentInput, this.value, event.data || '');
348
+ if (inputValue !== currentInput) {
349
+ const inputEl = this.inputEl;
350
+ // we can only stripe the characters, so try to make the best guess where the cursor should be
351
+ const selectionStart = inputEl.selectionStart || 0;
352
+ const selectionEnd = inputEl.selectionEnd || 0;
353
+ this.inputValue = inputValue;
354
+ const diff = currentInput.length - inputValue.length;
355
+ inputEl.selectionStart = Math.max(selectionStart - diff, 0);
356
+ inputEl.selectionEnd = Math.max(selectionEnd - diff, 0);
357
+ }
358
+ this.setSilentlyValueAndNotify();
359
+ }
360
+ /**
361
+ * Stripe characters from input text based on previous input and data
362
+ * @param input The new input to process
363
+ * @param oldInput Previous input
364
+ * @param data The data that has been inserted
365
+ * @returns the input where characters are striped away
366
+ */
367
+ stripeInvalidCharacters(input = '', oldInput = '', data = '') {
368
+ // all these actions depends on new value and previous value trying to guess the best action
369
+ const dataHasDot = data.includes('.');
370
+ const dataHasE = data.search(/e/i) !== -1;
371
+ const dotIndex = input.indexOf('.');
372
+ const eIndex = input.search(/e/i);
373
+ const valueHasDot = dotIndex !== -1 && !dataHasDot;
374
+ const valueHasE = eIndex !== -1 && !dataHasE;
375
+ // filter . and e/E keystrokes. Note: paste is not covered by this
376
+ if (data !== input && ((valueHasDot && data === '.') || (valueHasE && (data === 'e' || data === 'E')))) {
377
+ input = oldInput;
378
+ }
379
+ // stripe all e before dot and multiple . occurrences
380
+ if (dotIndex !== -1) {
381
+ input = `${input.substring(0, dotIndex + 1)}${input.substring(dotIndex + 1).replace(/\./g, '')}`;
382
+ if (!valueHasE) {
383
+ input = `${input.substring(0, dotIndex).replace(/e/ig, '')}${input.substring(dotIndex)}`;
384
+ }
385
+ }
386
+ // stripe all dots after e and multiple e occurrences
387
+ if (eIndex !== -1) {
388
+ input = `${input.substring(0, eIndex + 1)}${input.substring(eIndex + 1).replace(/e/ig, '')}`;
389
+ if (!valueHasDot) {
390
+ input = `${input.substring(0, eIndex)}${input.substring(eIndex).replace(/\./g, '')}`;
391
+ }
392
+ }
393
+ // stripe all other invalid characters and make sure that + and - signs are correct
394
+ return input.replace(/(^[-+]|[e][-+])|[-+]|[^0-9e.+-]/ig, '$1');
395
+ }
396
+ /**
397
+ * On *user-interaction* set the value and notify.
398
+ * This function will not call request update, but will fire value-changed event
399
+ * @returns {void}
400
+ */
401
+ setSilentlyValueAndNotify() {
402
+ // Nobody likes to see a red border
403
+ this.resetError();
404
+ const value = this.valueAsNumberString(this.inputValue);
405
+ if (super.value !== value) {
406
+ // here we must set the value silently to avoid re-rendering of input
407
+ super.value = value;
408
+ this.notifyPropertyChange('value', value);
409
+ }
410
+ }
411
+ /**
412
+ * Reset error state on input
413
+ * @returns {void}
414
+ */
415
+ resetError() {
416
+ if (this.error && this.checkValidity()) {
417
+ this.reportValidity();
418
+ }
419
+ }
420
+ /**
421
+ * Get the allowed step value
422
+ * @returns allowed step
423
+ */
424
+ getAllowedValueStep() {
425
+ let stepValue = this.stepValue;
426
+ if (stepValue === ANY_STEP) {
427
+ // By algorithm, this should throw an error
428
+ // however keep the default value as we use same method for stepping up and down
429
+ stepValue = DEFAULT_STEP_BASE;
430
+ }
431
+ return stepValue;
432
+ }
433
+ /**
434
+ * Get the step base as per HTML5 specs
435
+ * @returns step base
436
+ */
437
+ get stepBase() {
438
+ // If the element has a min content attribute, and the result of applying the algorithm to convert a string to a number
439
+ // to the value of the min content attribute is not an error, then return that result.
440
+ const min = this.stringToNumber(this.min);
441
+ if (!isNaN(min)) {
442
+ return min;
443
+ }
444
+ // If the element has a value content attribute, and the result of applying the algorithm to convert a string to a number
445
+ // to the value of the value content attribute is not an error, then return that result.
446
+ const valueAttribute = this.stringToNumber(this.getAttribute('value') || '');
447
+ if (!isNaN(valueAttribute)) {
448
+ return valueAttribute;
449
+ }
450
+ return 0;
451
+ }
452
+ /**
453
+ * Check if value subtracted from the step base is not an integral multiple of the allowed value step
454
+ * @param value value to check
455
+ * @returns true if value is integral
456
+ */
457
+ isValueIntegralMultipleOfStep(value) {
458
+ const decimals = Math.max(this.getDecimalPlace(value), this.stepDecimals);
459
+ const division = (this.stepBase - value) / this.getAllowedValueStep();
460
+ const number = decimals ? this.toFixedNumber(division, decimals) : division;
461
+ // (2 - 1.01) % 0.33 needs to give 0. So we cannot use % directly as it is intended for integers
462
+ return number % 1 === 0;
463
+ }
464
+ /**
465
+ * Find the nearest value that, when subtracted from the `stepBase`
466
+ * is an integral multiple of the `allowedValueStep`,
467
+ * and that is less than `value` if the `direction` was `Down`, and more than value otherwise.
468
+ * @param value the value to operate on
469
+ * @param stepBase base to start calculation
470
+ * @param allowedValueStep a step to go Down or Up
471
+ * @param direction Direction, either -1 for Down or 1 for Up
472
+ * @returns nearest number
473
+ */
474
+ findNearestSteppedValue(value, stepBase, allowedValueStep, direction) {
475
+ // TODO: there is probably much better way on how to implement this function
476
+ let newValue = this.toFixedNumber(value + (stepBase - value) % allowedValueStep);
477
+ if (direction === Direction.Up) {
478
+ // with float number rounding this may need to run more than once to find the valid value
479
+ while (newValue <= value) {
480
+ const steppedValue = this.toFixedNumber(newValue + allowedValueStep);
481
+ if (steppedValue <= newValue) {
482
+ // Non safe integers might behave incorrectly
483
+ // Avoid any potential infinitive loops
484
+ break;
485
+ }
486
+ newValue = steppedValue;
487
+ }
488
+ }
489
+ else if (direction === Direction.Down) {
490
+ while (newValue >= value) {
491
+ const steppedValue = this.toFixedNumber(newValue - allowedValueStep);
492
+ if (steppedValue >= newValue) {
493
+ break;
494
+ }
495
+ newValue = steppedValue;
496
+ }
497
+ }
498
+ return newValue;
499
+ }
500
+ /**
501
+ * Apply step up or step down on the input
502
+ * @param stepIncrement step increment factor
503
+ * @param direction either go up or down
504
+ * @returns {void}
505
+ */
506
+ applyStepDirection(stepIncrement = 1, direction) {
507
+ const min = this.stringToNumber(this.min);
508
+ const max = this.stringToNumber(this.max);
509
+ // If the element has a minimum and a maximum and the minimum is greater than the maximum, then return.
510
+ if (min > max) {
511
+ return;
512
+ }
513
+ // passing floats to step increment does not make sense as this potentially leads to incorrect results
514
+ stepIncrement = stepIncrement < 0 ? Math.ceil(stepIncrement) : Math.floor(stepIncrement);
515
+ if (stepIncrement < 0) {
516
+ direction = direction === Direction.Up ? Direction.Down : Direction.Up;
517
+ stepIncrement = Math.abs(stepIncrement);
518
+ }
519
+ const stepBase = this.stepBase;
520
+ const allowedValueStep = this.getAllowedValueStep();
521
+ // If applying the algorithm to convert a string to a number to the string given by the element's value
522
+ // does not result in an error, then let value be the result of that algorithm. Otherwise, let value be zero.
523
+ const inputValue = this.stringToNumber(this.inputValue);
524
+ const valueBeforeStepping = isNaN(inputValue) ? 0 : inputValue;
525
+ let value = valueBeforeStepping;
526
+ // step-up or step-down
527
+ if (this.isValueIntegralMultipleOfStep(value)) {
528
+ const delta = allowedValueStep * stepIncrement * direction;
529
+ value += delta;
530
+ }
531
+ else {
532
+ value = this.findNearestSteppedValue(valueBeforeStepping, stepBase, allowedValueStep, direction);
533
+ }
534
+ // If the element has a minimum, and value is less than that minimum,
535
+ // then set value to the smallest value that, when subtracted from the step base,
536
+ // is an integral multiple of the allowed value step, and that is more than or equal to minimum.
537
+ if (value < min) {
538
+ value = this.findNearestSteppedValue(min + allowedValueStep, stepBase, allowedValueStep, Direction.Down);
539
+ }
540
+ // If the element has a maximum, and value is greater than that maximum,
541
+ // then set value to the largest value that, when subtracted from the step base,
542
+ // is an integral multiple of the allowed value step, and that is less than or equal to maximum.
543
+ if (value > max) {
544
+ value = this.findNearestSteppedValue(max - allowedValueStep, stepBase, allowedValueStep, Direction.Up);
545
+ }
546
+ // If either the method invoked was the stepDown() method and value is greater than valueBeforeStepping
547
+ // or the method invoked was the stepUp() method and value is less than valueBeforeStepping, then return.
548
+ if (!isNaN(inputValue) && ((direction === Direction.Up && value < valueBeforeStepping) || (direction === Direction.Down && value > valueBeforeStepping))) {
549
+ return;
550
+ }
551
+ this.inputValue = `${this.toFixedNumber(value)}`;
552
+ }
553
+ /**
554
+ * Increases the input value by amount of step
555
+ * @param [stepIncrement] The stepIncrement parameter is a numeric value. If no parameter is passed, stepIncrement defaults to 1.
556
+ * @returns {void}
557
+ */
558
+ stepUp(stepIncrement) {
559
+ this.applyStepDirection(stepIncrement, Direction.Up);
560
+ }
561
+ /**
562
+ * Decreases the input value by amount of step
563
+ * @param [stepIncrement] The stepIncrement parameter is a numeric value. If no parameter is passed, stepIncrement defaults to 1.
564
+ * @returns {void}
565
+ */
566
+ stepDown(stepIncrement) {
567
+ this.applyStepDirection(stepIncrement, Direction.Down);
568
+ }
569
+ /**
570
+ * Returns true if an input element contains valid data.
571
+ * @returns true if input is valid
572
+ */
573
+ checkValidity() {
574
+ const value = this.internalValue;
575
+ // No support for required
576
+ if (value === '') {
577
+ return true;
578
+ }
579
+ if (!this.isValidValue(value)) {
580
+ return false;
581
+ }
582
+ // Check min and max numbers
583
+ const numberValue = Number(value);
584
+ const max = this.stringToNumber(this.max);
585
+ const min = this.stringToNumber(this.min);
586
+ if (numberValue < min || numberValue > max) {
587
+ return false;
588
+ }
589
+ // Check step for an integral step
590
+ const stepValue = this.stepValue;
591
+ if (stepValue !== ANY_STEP && !this.isValueIntegralMultipleOfStep(numberValue)) {
592
+ return false;
593
+ }
594
+ return true;
595
+ }
596
+ /**
597
+ * Validate input. Mark as error if input is invalid
598
+ * @returns false if there is an error
599
+ */
600
+ reportValidity() {
601
+ const hasError = !this.checkValidity();
602
+ if (this.error !== hasError) {
603
+ this.error = hasError;
604
+ this.notifyPropertyChange('error', this.error);
605
+ }
606
+ return !hasError;
607
+ }
608
+ /**
609
+ * Select the contents of input
610
+ * @returns void
611
+ */
612
+ select() {
613
+ if (!this.disabled) {
614
+ this.inputEl && this.inputEl.select();
615
+ }
616
+ }
617
+ /**
618
+ * Renders spinner
619
+ * @returns {TemplateResult} spinner part template
620
+ */
621
+ renderSpinner() {
622
+ return html `
623
+ <div
624
+ part="spinner"
625
+ @tap=${this.onSpinnerTap}>
626
+ <ef-icon
627
+ icon="up"
628
+ part="spinner-up"
629
+ ?readonly=${this.readonly}
630
+ ?disabled=${this.disabled}>
631
+ </ef-icon>
632
+ <ef-icon
633
+ icon="down"
634
+ part="spinner-down"
635
+ ?readonly=${this.readonly}
636
+ ?disabled=${this.disabled}>
637
+ </ef-icon>
638
+ </div>
639
+ `;
640
+ }
641
+ /**
642
+ * A `TemplateResult` that will be used
643
+ * to render the updated internal template.
644
+ * @return {TemplateResult} Render template
645
+ */
646
+ render() {
647
+ return html `
648
+ <input
649
+ part="input"
650
+ type="text"
651
+ inputmode="decimal"
652
+ pattern="${NUMBER_PATTERN}"
653
+ ?readonly=${this.readonly}
654
+ ?disabled=${this.disabled}
655
+ placeholder=${ifDefined(this.placeholder ? this.placeholder : undefined)}
656
+ @input="${this.onNativeInputChange}"
657
+ @keydown="${this.onNativeInputKeyDown}"
658
+ @beforeinput="${this.onNativeBeforeInputChange}"
659
+ @change="${this.onNativeInputChange}"
660
+ autocomplete="off"
661
+ >
662
+ ${this.noSpinner ? null : this.renderSpinner()}
663
+ `;
664
+ }
665
+ };
666
+ __decorate([
667
+ property({ type: String, reflect: true })
668
+ ], NumberField.prototype, "placeholder", void 0);
669
+ __decorate([
670
+ property({ type: Boolean, attribute: 'no-spinner', reflect: true })
671
+ ], NumberField.prototype, "noSpinner", void 0);
672
+ __decorate([
673
+ property({ type: String, reflect: true })
674
+ ], NumberField.prototype, "step", void 0);
675
+ __decorate([
676
+ property({ type: String, reflect: true })
677
+ ], NumberField.prototype, "min", void 0);
678
+ __decorate([
679
+ property({ type: String, reflect: true })
680
+ ], NumberField.prototype, "max", void 0);
681
+ __decorate([
682
+ property({ type: Boolean, reflect: true })
683
+ ], NumberField.prototype, "transparent", void 0);
684
+ __decorate([
685
+ property({ type: Boolean, reflect: true })
686
+ ], NumberField.prototype, "error", void 0);
687
+ __decorate([
688
+ property({ type: Boolean, reflect: true })
689
+ ], NumberField.prototype, "warning", void 0);
690
+ __decorate([
691
+ property({ type: String })
692
+ ], NumberField.prototype, "value", null);
693
+ __decorate([
694
+ query('[part=input]')
695
+ ], NumberField.prototype, "inputEl", void 0);
696
+ __decorate([
697
+ query('[part=spinner-up]')
698
+ ], NumberField.prototype, "spinnerUpEl", void 0);
699
+ __decorate([
700
+ query('[part=spinner-down]')
701
+ ], NumberField.prototype, "spinnerDownEl", void 0);
702
+ NumberField = __decorate([
703
+ customElement('ef-number-field', {
704
+ alias: 'coral-number-field'
705
+ })
706
+ ], NumberField);
707
+ export { NumberField };