@refinitiv-ui/elements 5.12.0-alpha.0 → 5.12.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 (513) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +4 -4
  3. package/lib/accordion/index.d.ts +76 -0
  4. package/lib/accordion/index.js +136 -0
  5. package/lib/accordion/themes/halo/dark/index.js +3 -0
  6. package/lib/accordion/themes/halo/light/index.js +3 -0
  7. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  8. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  9. package/lib/appstate-bar/index.d.ts +65 -0
  10. package/lib/appstate-bar/index.js +100 -0
  11. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  12. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  13. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  14. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  15. package/lib/autosuggest/helpers/types.d.ts +54 -0
  16. package/lib/autosuggest/helpers/types.js +1 -0
  17. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  18. package/lib/autosuggest/helpers/utils.js +75 -0
  19. package/lib/autosuggest/index.d.ts +538 -0
  20. package/lib/autosuggest/index.js +1255 -0
  21. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  22. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  23. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  24. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  25. package/lib/button/index.d.ts +138 -0
  26. package/lib/button/index.js +241 -0
  27. package/lib/button/themes/halo/dark/index.js +3 -0
  28. package/lib/button/themes/halo/light/index.js +3 -0
  29. package/lib/button/themes/solar/charcoal/index.js +3 -0
  30. package/lib/button/themes/solar/pearl/index.js +3 -0
  31. package/lib/button-bar/index.d.ts +125 -0
  32. package/lib/button-bar/index.js +295 -0
  33. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  34. package/lib/button-bar/themes/halo/light/index.js +3 -0
  35. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  36. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  37. package/lib/calendar/constants.d.ts +26 -0
  38. package/lib/calendar/constants.js +28 -0
  39. package/lib/calendar/index.d.ts +412 -0
  40. package/lib/calendar/index.js +1274 -0
  41. package/lib/calendar/locales.d.ts +1 -0
  42. package/lib/calendar/locales.js +41 -0
  43. package/lib/calendar/themes/halo/dark/index.js +3 -0
  44. package/lib/calendar/themes/halo/light/index.js +3 -0
  45. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  46. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  47. package/lib/calendar/types.d.ts +32 -0
  48. package/lib/calendar/types.js +1 -0
  49. package/lib/calendar/utils.d.ts +42 -0
  50. package/lib/calendar/utils.js +120 -0
  51. package/lib/canvas/index.d.ts +101 -0
  52. package/lib/canvas/index.js +173 -0
  53. package/lib/canvas/themes/halo/dark/index.js +2 -0
  54. package/lib/canvas/themes/halo/light/index.js +2 -0
  55. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  56. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  57. package/lib/card/helpers/types.d.ts +12 -0
  58. package/lib/card/helpers/types.js +1 -0
  59. package/lib/card/index.d.ts +142 -0
  60. package/lib/card/index.js +248 -0
  61. package/lib/card/themes/halo/dark/index.js +5 -0
  62. package/lib/card/themes/halo/light/index.js +5 -0
  63. package/lib/card/themes/solar/charcoal/index.js +5 -0
  64. package/lib/card/themes/solar/pearl/index.js +5 -0
  65. package/lib/chart/helpers/index.d.ts +2 -0
  66. package/lib/chart/helpers/index.js +2 -0
  67. package/lib/chart/helpers/legend.d.ts +5 -0
  68. package/lib/chart/helpers/legend.js +78 -0
  69. package/lib/chart/helpers/merge.d.ts +15 -0
  70. package/lib/chart/helpers/merge.js +28 -0
  71. package/lib/chart/helpers/types.d.ts +69 -0
  72. package/lib/chart/helpers/types.js +1 -0
  73. package/lib/chart/index.d.ts +187 -0
  74. package/lib/chart/index.js +491 -0
  75. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  76. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  77. package/lib/chart/themes/halo/dark/index.js +4 -0
  78. package/lib/chart/themes/halo/light/index.js +4 -0
  79. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  80. package/lib/chart/themes/solar/pearl/index.js +4 -0
  81. package/lib/checkbox/index.d.ts +97 -0
  82. package/lib/checkbox/index.js +194 -0
  83. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  84. package/lib/checkbox/themes/halo/light/index.js +4 -0
  85. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  86. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  87. package/lib/clock/index.d.ts +321 -0
  88. package/lib/clock/index.js +583 -0
  89. package/lib/clock/themes/halo/dark/index.js +2 -0
  90. package/lib/clock/themes/halo/light/index.js +2 -0
  91. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  92. package/lib/clock/themes/solar/pearl/index.js +2 -0
  93. package/lib/clock/utils/TickManager.d.ts +14 -0
  94. package/lib/clock/utils/TickManager.js +66 -0
  95. package/lib/clock/utils/timestamps.d.ts +6 -0
  96. package/lib/clock/utils/timestamps.js +6 -0
  97. package/lib/collapse/custom-elements.json +4 -2
  98. package/lib/collapse/custom-elements.md +1 -1
  99. package/lib/collapse/index.d.ts +123 -0
  100. package/lib/collapse/index.js +227 -0
  101. package/lib/collapse/themes/halo/dark/index.js +5 -0
  102. package/lib/collapse/themes/halo/light/index.js +5 -0
  103. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  104. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  105. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  106. package/lib/color-dialog/elements/color-palettes.js +101 -0
  107. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  108. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  109. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  110. package/lib/color-dialog/elements/palettes.js +132 -0
  111. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  112. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  113. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  114. package/lib/color-dialog/helpers/value-model.js +141 -0
  115. package/lib/color-dialog/index.d.ts +232 -0
  116. package/lib/color-dialog/index.js +459 -0
  117. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  118. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  119. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  120. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  121. package/lib/combo-box/helpers/filter.d.ts +10 -0
  122. package/lib/combo-box/helpers/filter.js +29 -0
  123. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  124. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  125. package/lib/combo-box/helpers/renderer.d.ts +8 -0
  126. package/lib/combo-box/helpers/renderer.js +24 -0
  127. package/lib/combo-box/helpers/types.d.ts +11 -0
  128. package/lib/combo-box/helpers/types.js +1 -0
  129. package/lib/combo-box/index.d.ts +551 -0
  130. package/lib/combo-box/index.js +1183 -0
  131. package/lib/combo-box/themes/halo/dark/index.js +7 -0
  132. package/lib/combo-box/themes/halo/light/index.js +7 -0
  133. package/lib/combo-box/themes/solar/charcoal/index.js +7 -0
  134. package/lib/combo-box/themes/solar/pearl/index.js +7 -0
  135. package/lib/counter/index.d.ts +91 -0
  136. package/lib/counter/index.js +154 -0
  137. package/lib/counter/themes/halo/dark/index.js +3 -0
  138. package/lib/counter/themes/halo/light/index.js +3 -0
  139. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  140. package/lib/counter/themes/solar/pearl/index.js +3 -0
  141. package/lib/counter/utils.d.ts +13 -0
  142. package/lib/counter/utils.js +52 -0
  143. package/lib/datetime-picker/index.d.ts +509 -0
  144. package/lib/datetime-picker/index.js +1175 -0
  145. package/lib/datetime-picker/locales.d.ts +8 -0
  146. package/lib/datetime-picker/locales.js +57 -0
  147. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  148. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  149. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  150. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  151. package/lib/datetime-picker/types.d.ts +3 -0
  152. package/lib/datetime-picker/types.js +1 -0
  153. package/lib/datetime-picker/utils.d.ts +55 -0
  154. package/lib/datetime-picker/utils.js +92 -0
  155. package/lib/dialog/custom-elements.json +11 -0
  156. package/lib/dialog/custom-elements.md +4 -3
  157. package/lib/dialog/draggable-element.d.ts +14 -0
  158. package/lib/dialog/draggable-element.js +221 -0
  159. package/lib/dialog/index.d.ts +213 -0
  160. package/lib/dialog/index.js +353 -0
  161. package/lib/dialog/themes/halo/dark/index.js +7 -0
  162. package/lib/dialog/themes/halo/light/index.js +7 -0
  163. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  164. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  165. package/lib/email-field/index.d.ts +80 -0
  166. package/lib/email-field/index.js +86 -0
  167. package/lib/email-field/themes/halo/dark/index.js +3 -0
  168. package/lib/email-field/themes/halo/light/index.js +3 -0
  169. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  170. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  171. package/lib/events.d.ts +121 -0
  172. package/lib/events.js +1 -0
  173. package/lib/flag/index.d.ts +96 -0
  174. package/lib/flag/index.js +168 -0
  175. package/lib/flag/themes/halo/dark/index.js +2 -0
  176. package/lib/flag/themes/halo/light/index.js +2 -0
  177. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  178. package/lib/flag/themes/solar/pearl/index.js +2 -0
  179. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  180. package/lib/flag/utils/FlagLoader.js +86 -0
  181. package/lib/header/index.d.ts +46 -0
  182. package/lib/header/index.js +73 -0
  183. package/lib/header/themes/halo/dark/index.js +2 -0
  184. package/lib/header/themes/halo/light/index.js +2 -0
  185. package/lib/header/themes/solar/charcoal/index.js +2 -0
  186. package/lib/header/themes/solar/pearl/index.js +2 -0
  187. package/lib/heatmap/helpers/color.d.ts +30 -0
  188. package/lib/heatmap/helpers/color.js +68 -0
  189. package/lib/heatmap/helpers/text.d.ts +26 -0
  190. package/lib/heatmap/helpers/text.js +91 -0
  191. package/lib/heatmap/helpers/track.d.ts +102 -0
  192. package/lib/heatmap/helpers/track.js +160 -0
  193. package/lib/heatmap/helpers/types.d.ts +40 -0
  194. package/lib/heatmap/helpers/types.js +1 -0
  195. package/lib/heatmap/index.d.ts +453 -0
  196. package/lib/heatmap/index.js +1103 -0
  197. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  198. package/lib/heatmap/themes/halo/light/index.js +4 -0
  199. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  200. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  201. package/lib/icon/index.d.ts +90 -0
  202. package/lib/icon/index.js +171 -0
  203. package/lib/icon/themes/halo/dark/index.js +2 -0
  204. package/lib/icon/themes/halo/light/index.js +2 -0
  205. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  206. package/lib/icon/themes/solar/pearl/index.js +2 -0
  207. package/lib/icon/utils/IconLoader.d.ts +52 -0
  208. package/lib/icon/utils/IconLoader.js +93 -0
  209. package/lib/index.d.ts +3 -0
  210. package/lib/index.js +3 -0
  211. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  212. package/lib/interactive-chart/helpers/merge.js +28 -0
  213. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  214. package/lib/interactive-chart/helpers/types.js +6 -0
  215. package/lib/interactive-chart/index.d.ts +383 -0
  216. package/lib/interactive-chart/index.js +1093 -0
  217. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  218. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  219. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  220. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  221. package/lib/item/helpers/types.d.ts +57 -0
  222. package/lib/item/helpers/types.js +1 -0
  223. package/lib/item/index.d.ts +159 -0
  224. package/lib/item/index.js +272 -0
  225. package/lib/item/themes/halo/dark/index.js +4 -0
  226. package/lib/item/themes/halo/light/index.js +4 -0
  227. package/lib/item/themes/solar/charcoal/index.js +4 -0
  228. package/lib/item/themes/solar/pearl/index.js +4 -0
  229. package/lib/label/index.d.ts +102 -0
  230. package/lib/label/index.js +245 -0
  231. package/lib/label/themes/halo/dark/index.js +3 -0
  232. package/lib/label/themes/halo/light/index.js +3 -0
  233. package/lib/label/themes/solar/charcoal/index.js +3 -0
  234. package/lib/label/themes/solar/pearl/index.js +3 -0
  235. package/lib/layout/index.d.ts +107 -0
  236. package/lib/layout/index.js +212 -0
  237. package/lib/layout/themes/halo/dark/index.js +2 -0
  238. package/lib/layout/themes/halo/light/index.js +2 -0
  239. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  240. package/lib/layout/themes/solar/pearl/index.js +2 -0
  241. package/lib/led-gauge/index.d.ts +144 -0
  242. package/lib/led-gauge/index.js +438 -0
  243. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  244. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  245. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  246. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  247. package/lib/list/extensible-function.d.ts +8 -0
  248. package/lib/list/extensible-function.js +13 -0
  249. package/lib/list/helpers/list-renderer.d.ts +9 -0
  250. package/lib/list/helpers/list-renderer.js +37 -0
  251. package/lib/list/helpers/types.d.ts +3 -0
  252. package/lib/list/helpers/types.js +1 -0
  253. package/lib/list/index.d.ts +313 -0
  254. package/lib/list/index.js +640 -0
  255. package/lib/list/renderer.d.ts +36 -0
  256. package/lib/list/renderer.js +9 -0
  257. package/lib/list/themes/halo/dark/index.js +3 -0
  258. package/lib/list/themes/halo/light/index.js +3 -0
  259. package/lib/list/themes/solar/charcoal/index.js +3 -0
  260. package/lib/list/themes/solar/pearl/index.js +3 -0
  261. package/lib/loader/index.d.ts +41 -0
  262. package/lib/loader/index.js +61 -0
  263. package/lib/loader/themes/halo/dark/index.js +2 -0
  264. package/lib/loader/themes/halo/light/index.js +2 -0
  265. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  266. package/lib/loader/themes/solar/pearl/index.js +2 -0
  267. package/lib/multi-input/helpers/types.d.ts +11 -0
  268. package/lib/multi-input/helpers/types.js +1 -0
  269. package/lib/multi-input/index.d.ts +301 -0
  270. package/lib/multi-input/index.js +594 -0
  271. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  272. package/lib/multi-input/themes/halo/light/index.js +4 -0
  273. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  274. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  275. package/lib/notification/elements/notification-tray.d.ts +97 -0
  276. package/lib/notification/elements/notification-tray.js +167 -0
  277. package/lib/notification/elements/notification.d.ts +90 -0
  278. package/lib/notification/elements/notification.js +154 -0
  279. package/lib/notification/helpers/status.d.ts +30 -0
  280. package/lib/notification/helpers/status.js +130 -0
  281. package/lib/notification/helpers/types.d.ts +10 -0
  282. package/lib/notification/helpers/types.js +1 -0
  283. package/lib/notification/index.d.ts +2 -0
  284. package/lib/notification/index.js +2 -0
  285. package/lib/notification/themes/halo/dark/index.js +5 -0
  286. package/lib/notification/themes/halo/light/index.js +5 -0
  287. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  288. package/lib/notification/themes/solar/pearl/index.js +5 -0
  289. package/lib/number-field/index.d.ts +339 -0
  290. package/lib/number-field/index.js +741 -0
  291. package/lib/number-field/themes/halo/dark/index.js +3 -0
  292. package/lib/number-field/themes/halo/light/index.js +3 -0
  293. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  294. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  295. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  296. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  297. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  298. package/lib/overlay/elements/overlay-viewport.js +52 -0
  299. package/lib/overlay/elements/overlay.d.ts +408 -0
  300. package/lib/overlay/elements/overlay.js +1426 -0
  301. package/lib/overlay/helpers/functions.d.ts +13 -0
  302. package/lib/overlay/helpers/functions.js +16 -0
  303. package/lib/overlay/helpers/types.d.ts +97 -0
  304. package/lib/overlay/helpers/types.js +16 -0
  305. package/lib/overlay/index.d.ts +2 -0
  306. package/lib/overlay/index.js +1 -0
  307. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  308. package/lib/overlay/managers/backdrop-manager.js +96 -0
  309. package/lib/overlay/managers/close-manager.d.ts +54 -0
  310. package/lib/overlay/managers/close-manager.js +138 -0
  311. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  312. package/lib/overlay/managers/focus-manager.js +228 -0
  313. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  314. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  315. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  316. package/lib/overlay/managers/viewport-manager.js +211 -0
  317. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  318. package/lib/overlay/managers/zindex-manager.js +195 -0
  319. package/lib/overlay/themes/halo/dark/index.js +4 -0
  320. package/lib/overlay/themes/halo/light/index.js +4 -0
  321. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  322. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  323. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  324. package/lib/overlay-menu/helpers/types.js +1 -0
  325. package/lib/overlay-menu/index.d.ts +387 -0
  326. package/lib/overlay-menu/index.js +935 -0
  327. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  328. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  329. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  330. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  331. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  332. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  333. package/lib/pagination/index.d.ts +275 -0
  334. package/lib/pagination/index.js +552 -0
  335. package/lib/pagination/themes/halo/dark/index.js +6 -0
  336. package/lib/pagination/themes/halo/light/index.js +6 -0
  337. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  338. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  339. package/lib/panel/index.d.ts +48 -0
  340. package/lib/panel/index.js +74 -0
  341. package/lib/panel/themes/halo/dark/index.js +2 -0
  342. package/lib/panel/themes/halo/light/index.js +2 -0
  343. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  344. package/lib/panel/themes/solar/pearl/index.js +2 -0
  345. package/lib/password-field/index.d.ts +89 -0
  346. package/lib/password-field/index.js +112 -0
  347. package/lib/password-field/themes/halo/dark/index.js +3 -0
  348. package/lib/password-field/themes/halo/light/index.js +3 -0
  349. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  350. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  351. package/lib/pill/index.d.ts +97 -0
  352. package/lib/pill/index.js +160 -0
  353. package/lib/pill/themes/halo/dark/index.js +3 -0
  354. package/lib/pill/themes/halo/light/index.js +3 -0
  355. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  356. package/lib/pill/themes/solar/pearl/index.js +3 -0
  357. package/lib/progress-bar/index.d.ts +82 -0
  358. package/lib/progress-bar/index.js +157 -0
  359. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  360. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  361. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  362. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  363. package/lib/radio-button/index.d.ts +123 -0
  364. package/lib/radio-button/index.js +261 -0
  365. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  366. package/lib/radio-button/radio-button-registry.js +93 -0
  367. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  368. package/lib/radio-button/themes/halo/light/index.js +3 -0
  369. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  370. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  371. package/lib/rating/index.d.ts +91 -0
  372. package/lib/rating/index.js +157 -0
  373. package/lib/rating/themes/halo/dark/index.js +2 -0
  374. package/lib/rating/themes/halo/light/index.js +2 -0
  375. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  376. package/lib/rating/themes/solar/pearl/index.js +2 -0
  377. package/lib/search-field/index.d.ts +77 -0
  378. package/lib/search-field/index.js +84 -0
  379. package/lib/search-field/themes/halo/dark/index.js +3 -0
  380. package/lib/search-field/themes/halo/light/index.js +3 -0
  381. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  382. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  383. package/lib/select/helpers/types.d.ts +3 -0
  384. package/lib/select/helpers/types.js +1 -0
  385. package/lib/select/index.d.ts +396 -0
  386. package/lib/select/index.js +981 -0
  387. package/lib/select/themes/halo/dark/index.js +5 -0
  388. package/lib/select/themes/halo/light/index.js +5 -0
  389. package/lib/select/themes/solar/charcoal/index.js +5 -0
  390. package/lib/select/themes/solar/pearl/index.js +5 -0
  391. package/lib/sidebar-layout/index.d.ts +70 -0
  392. package/lib/sidebar-layout/index.js +134 -0
  393. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  394. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  395. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  396. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  397. package/lib/slider/index.d.ts +409 -0
  398. package/lib/slider/index.js +1197 -0
  399. package/lib/slider/themes/halo/dark/index.js +3 -0
  400. package/lib/slider/themes/halo/light/index.js +3 -0
  401. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  402. package/lib/slider/themes/solar/pearl/index.js +3 -0
  403. package/lib/sparkline/index.d.ts +109 -0
  404. package/lib/sparkline/index.js +188 -0
  405. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  406. package/lib/sparkline/themes/halo/light/index.js +2 -0
  407. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  408. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  409. package/lib/swing-gauge/const.d.ts +22 -0
  410. package/lib/swing-gauge/const.js +26 -0
  411. package/lib/swing-gauge/helpers.d.ts +8 -0
  412. package/lib/swing-gauge/helpers.js +105 -0
  413. package/lib/swing-gauge/index.d.ts +296 -0
  414. package/lib/swing-gauge/index.js +764 -0
  415. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  416. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  417. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  418. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  419. package/lib/swing-gauge/types.d.ts +34 -0
  420. package/lib/swing-gauge/types.js +1 -0
  421. package/lib/tab/custom-elements.json +13 -0
  422. package/lib/tab/custom-elements.md +1 -0
  423. package/lib/tab/index.d.ts +136 -0
  424. package/lib/tab/index.js +236 -0
  425. package/lib/tab/themes/halo/dark/index.js +4 -0
  426. package/lib/tab/themes/halo/light/index.js +4 -0
  427. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  428. package/lib/tab/themes/solar/pearl/index.js +4 -0
  429. package/lib/tab-bar/custom-elements.json +12 -0
  430. package/lib/tab-bar/custom-elements.md +7 -0
  431. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  432. package/lib/tab-bar/helpers/animate.js +53 -0
  433. package/lib/tab-bar/index.d.ts +198 -0
  434. package/lib/tab-bar/index.js +428 -0
  435. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  436. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  437. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  438. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  439. package/lib/text-field/index.d.ts +151 -0
  440. package/lib/text-field/index.js +260 -0
  441. package/lib/text-field/themes/halo/dark/index.js +3 -0
  442. package/lib/text-field/themes/halo/light/index.js +3 -0
  443. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  444. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  445. package/lib/time-picker/index.d.ts +412 -0
  446. package/lib/time-picker/index.js +898 -0
  447. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  448. package/lib/time-picker/themes/halo/light/index.js +4 -0
  449. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  450. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  451. package/lib/toggle/index.d.ts +87 -0
  452. package/lib/toggle/index.js +153 -0
  453. package/lib/toggle/themes/halo/dark/index.js +2 -0
  454. package/lib/toggle/themes/halo/light/index.js +2 -0
  455. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  456. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  457. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  458. package/lib/tooltip/elements/title-tooltip.js +18 -0
  459. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  460. package/lib/tooltip/elements/tooltip-element.js +54 -0
  461. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  462. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  463. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  464. package/lib/tooltip/helpers/renderer.js +11 -0
  465. package/lib/tooltip/helpers/types.d.ts +23 -0
  466. package/lib/tooltip/helpers/types.js +1 -0
  467. package/lib/tooltip/index.d.ts +232 -0
  468. package/lib/tooltip/index.js +477 -0
  469. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  470. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  471. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  472. package/lib/tooltip/themes/halo/light/index.js +3 -0
  473. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  474. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  475. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  476. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  477. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  478. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  479. package/lib/tornado-chart/index.d.ts +2 -0
  480. package/lib/tornado-chart/index.js +2 -0
  481. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  482. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  483. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  484. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  485. package/lib/tree/elements/tree-item.d.ts +129 -0
  486. package/lib/tree/elements/tree-item.js +238 -0
  487. package/lib/tree/elements/tree.d.ts +203 -0
  488. package/lib/tree/elements/tree.js +414 -0
  489. package/lib/tree/helpers/filter.d.ts +8 -0
  490. package/lib/tree/helpers/filter.js +33 -0
  491. package/lib/tree/helpers/renderer.d.ts +5 -0
  492. package/lib/tree/helpers/renderer.js +33 -0
  493. package/lib/tree/helpers/types.d.ts +25 -0
  494. package/lib/tree/helpers/types.js +1 -0
  495. package/lib/tree/index.d.ts +4 -0
  496. package/lib/tree/index.js +3 -0
  497. package/lib/tree/managers/tree-manager.d.ts +248 -0
  498. package/lib/tree/managers/tree-manager.js +395 -0
  499. package/lib/tree/themes/halo/dark/index.js +7 -0
  500. package/lib/tree/themes/halo/light/index.js +7 -0
  501. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  502. package/lib/tree/themes/solar/pearl/index.js +7 -0
  503. package/lib/tree-select/helpers/types.d.ts +4 -0
  504. package/lib/tree-select/helpers/types.js +1 -0
  505. package/lib/tree-select/index.d.ts +404 -0
  506. package/lib/tree-select/index.js +891 -0
  507. package/lib/tree-select/themes/halo/dark/index.js +11 -0
  508. package/lib/tree-select/themes/halo/light/index.js +11 -0
  509. package/lib/tree-select/themes/solar/charcoal/index.js +11 -0
  510. package/lib/tree-select/themes/solar/pearl/index.js +11 -0
  511. package/lib/version.d.ts +1 -0
  512. package/lib/version.js +1 -0
  513. package/package.json +293 -24
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,187 @@
1
+ import { JSXInterface } from '../jsx';
2
+ /// <reference types="chart.js" />
3
+ import { BasicElement, PropertyValues, TemplateResult, CSSResultGroup } from '@refinitiv-ui/core';
4
+ import 'chart.js/dist/Chart.bundle.min.js';
5
+ import type { ChartJS, ChartConfig, ChartUpdateProps, DatasetColors } from './helpers/types';
6
+ import type { Header } from '../header';
7
+ import '../header/index.js';
8
+ import '../layout/index.js';
9
+ declare global {
10
+ interface Window {
11
+ Chart: ChartJS;
12
+ }
13
+ }
14
+ export type { ChartConfig, ChartUpdateProps };
15
+ /**
16
+ * Charting component that use ChartJS library
17
+ */
18
+ export declare class Chart extends BasicElement {
19
+ /**
20
+ * Element version number
21
+ * @returns version number
22
+ */
23
+ static get version(): string;
24
+ /**
25
+ * Chart.js object
26
+ */
27
+ private chart;
28
+ /**
29
+ * Chart configurations. Same configuration as ChartJS
30
+ * @type {ChartConfig}
31
+ */
32
+ config: ChartConfig | null;
33
+ /**
34
+ * Html canvas element
35
+ * @type {HTMLCanvasElement}
36
+ */
37
+ protected canvas: HTMLCanvasElement;
38
+ /**
39
+ * Get canvas element from shadow roots
40
+ */
41
+ protected titleElement: Header;
42
+ /**
43
+ * Required properties, needed for chart to work correctly.
44
+ * @returns config
45
+ */
46
+ protected get requiredConfig(): ChartConfig;
47
+ /**
48
+ * Safely returns the chart title
49
+ * @returns chart title
50
+ */
51
+ protected get chartTitle(): string;
52
+ /**
53
+ * Safely returns a dataset array
54
+ * @returns dataset array
55
+ */
56
+ protected get datasets(): Chart.ChartDataSets[];
57
+ /**
58
+ * List of available chart colors
59
+ * @type {string[]}
60
+ * @returns {string[]} List of available chart colors
61
+ */
62
+ get colors(): string[];
63
+ /**
64
+ * Invoked whenever the element is updated
65
+ * @param {PropertyValues} changedProperties Map of changed properties with old values
66
+ * @returns {void}
67
+ */
68
+ protected updated(changedProperties: PropertyValues): void;
69
+ /**
70
+ * Element connected
71
+ * @returns {void}
72
+ */
73
+ connectedCallback(): void;
74
+ /**
75
+ * Element disconnected
76
+ * @returns {void}
77
+ */
78
+ disconnectedCallback(): void;
79
+ /**
80
+ * Themable parts of the config.
81
+ * This will be merged into the configuration object.
82
+ * @returns {ChartConfig} chart config with theme
83
+ */
84
+ protected get themableConfig(): ChartConfig;
85
+ /**
86
+ * Handles a change of configuration object.
87
+ * This does not fire when a property of the config object changes,
88
+ * for this use this.updateChart() to apply changes.
89
+ * @returns {void}
90
+ */
91
+ protected onConfigChange(): void;
92
+ /**
93
+ * Get as CSS variable and tries to convert it into a usable number
94
+ * @returns {(number|undefined)} The value as a number, or, undefined if NaN.
95
+ */
96
+ protected cssVarAsNumber(...args: string[]): number | undefined;
97
+ /**
98
+ * Generates the legend labels on a given chart
99
+ * @param {ChartJS} chart Chart.js instance
100
+ * @returns {Chart.ChartLegendLabelItem[]} Array of label configurations
101
+ */
102
+ protected generateLegendLabels: (chart: ChartJS) => Chart.ChartLegendLabelItem[];
103
+ /**
104
+ * Merges all the different layers of the config.
105
+ * @returns {void}
106
+ */
107
+ protected mergeConfigs(): void;
108
+ /**
109
+ * Themes the passed-in configuration object
110
+ * @returns {void}
111
+ */
112
+ protected decorateConfig(): void;
113
+ /**
114
+ * Returns usable information about a dataset
115
+ * @param {Chart.ChartDataSets} dataset Chart dataset
116
+ * @returns {Chart.ChartDataSets} Information about the dataset
117
+ */
118
+ protected datasetInfo(dataset: Chart.ChartDataSets): Chart.ChartDataSets;
119
+ /**
120
+ * Generates internal solid and opaque color set for a dataset
121
+ * @param {boolean} isArray Flag to return result in array or not e.g. doughnut, pie, etc
122
+ * @param {number} amount Amount of colors required
123
+ * @param {number} shift Positional shift of the color start point
124
+ * @returns {DatasetColors} Solid and opaque color values
125
+ */
126
+ protected generateColors(isArray: boolean, amount: number, shift: number): DatasetColors;
127
+ /**
128
+ * Manages the custom title element
129
+ * @returns {void}
130
+ */
131
+ private manageTitle;
132
+ /**
133
+ * Creates a chart after config has changed,
134
+ * or, the element has been connected to the DOM
135
+ * @returns {void}
136
+ */
137
+ protected createChart(): void;
138
+ /**
139
+ * Destroys the chart.js object
140
+ * @returns True if a chart object has been destroyed
141
+ */
142
+ protected destroyChart(): boolean;
143
+ /**
144
+ * Re-renders the chart based on its config
145
+ * @param {ChartUpdateProps} config Additional configuration object for the update process.
146
+ * @returns {void}
147
+ */
148
+ private renderChart;
149
+ /**
150
+ * Update all data, title, scales, legends and re-render the chart based on its config
151
+ * @param {ChartUpdateProps=} config Additional configuration for control an animation in the update process.
152
+ * @returns {void}
153
+ */
154
+ updateChart(config?: ChartUpdateProps): void;
155
+ /**
156
+ * A `CSSResultGroup` that will be used
157
+ * to style the host, slotted children
158
+ * and the internal template of the element.
159
+ * @return CSS template
160
+ */
161
+ static get styles(): CSSResultGroup;
162
+ /**
163
+ * Handles resize event of the chart region
164
+ * @returns {void}
165
+ */
166
+ protected onResize(): void;
167
+ /**
168
+ * A `TemplateResult` that will be used
169
+ * to render the updated internal template.
170
+ * @return Render template
171
+ */
172
+ protected render(): TemplateResult;
173
+ }
174
+
175
+ declare global {
176
+ interface HTMLElementTagNameMap {
177
+ 'ef-chart': Chart;
178
+ }
179
+
180
+ namespace JSX {
181
+ interface IntrinsicElements {
182
+ 'ef-chart': Partial<Chart> | JSXInterface.HTMLAttributes<Chart>;
183
+ }
184
+ }
185
+ }
186
+
187
+ export {};
@@ -0,0 +1,491 @@
1
+ import { __decorate } from "tslib";
2
+ import { BasicElement, html, css } 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 { VERSION } from '../version.js';
7
+ import { color as parseColor } from '@refinitiv-ui/utils/lib/color.js';
8
+ import 'chart.js/dist/Chart.bundle.min.js';
9
+ import { legendHelper, merge } from './helpers/index.js';
10
+ import '../header/index.js';
11
+ import '../layout/index.js';
12
+ // Register plugins
13
+ import doughnutCenterPlugin from './plugins/doughnut-center-label.js';
14
+ window.Chart.pluginService.register(doughnutCenterPlugin);
15
+ const CSS_COLOR_PREFIX = '--chart-color-';
16
+ const CHART_TYPE_OPAQUE = ['line', 'bubble', 'radar', 'polarArea'];
17
+ const DEFAULT_CHART_CONFIG = window.Chart.defaults;
18
+ const ELF_CHART_CONFIG = {
19
+ polarArea: {
20
+ scale: {
21
+ ticks: {
22
+ showLabelBackdrop: false
23
+ }
24
+ }
25
+ },
26
+ radar: {
27
+ scale: {
28
+ ticks: {
29
+ showLabelBackdrop: false
30
+ }
31
+ }
32
+ }
33
+ };
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
35
+ window.Chart.helpers.merge(DEFAULT_CHART_CONFIG, ELF_CHART_CONFIG);
36
+ /**
37
+ * Charting component that use ChartJS library
38
+ */
39
+ let Chart = class Chart extends BasicElement {
40
+ constructor() {
41
+ super(...arguments);
42
+ /**
43
+ * Chart.js object
44
+ */
45
+ this.chart = null;
46
+ /**
47
+ * Chart configurations. Same configuration as ChartJS
48
+ * @type {ChartConfig}
49
+ */
50
+ this.config = null;
51
+ /**
52
+ * Generates the legend labels on a given chart
53
+ * @param {ChartJS} chart Chart.js instance
54
+ * @returns {Chart.ChartLegendLabelItem[]} Array of label configurations
55
+ */
56
+ this.generateLegendLabels = (chart) => {
57
+ var _a, _b, _c, _d;
58
+ if (!((_a = this.config) === null || _a === void 0 ? void 0 : _a.type)) {
59
+ return [];
60
+ }
61
+ const chartOption = DEFAULT_CHART_CONFIG[this.config.type];
62
+ if (this.datasets.length
63
+ && chartOption.legend
64
+ && Array.isArray(this.datasets[0].backgroundColor)) {
65
+ let legends = [];
66
+ if ((_b = chartOption.legend.labels) === null || _b === void 0 ? void 0 : _b.generateLabels) {
67
+ legends = (_c = chartOption.legend.labels) === null || _c === void 0 ? void 0 : _c.generateLabels(chart);
68
+ }
69
+ // Customize for doughnut chart change border color to background color
70
+ if (['pie', 'doughnut'].includes((_d = this.config) === null || _d === void 0 ? void 0 : _d.type) && this.datasets.length > 1) {
71
+ legends.forEach((label) => {
72
+ label.strokeStyle = label.fillStyle;
73
+ });
74
+ }
75
+ return legends;
76
+ }
77
+ return this.datasets.map((dataset, i) => {
78
+ var _a, _b, _c;
79
+ const solidFill = !CHART_TYPE_OPAQUE.includes(dataset.type || ((_a = this.config) === null || _a === void 0 ? void 0 : _a.type));
80
+ const usePointStyle = ((_c = (_b = chart.options.legend) === null || _b === void 0 ? void 0 : _b.labels) === null || _c === void 0 ? void 0 : _c.usePointStyle) || false;
81
+ return {
82
+ text: dataset.label,
83
+ fillStyle: legendHelper.getLegendFillStyle(dataset, usePointStyle, solidFill),
84
+ hidden: !chart.isDatasetVisible(i),
85
+ lineCap: dataset.borderCapStyle,
86
+ lineDash: dataset.borderDash,
87
+ lineDashOffset: dataset.borderDashOffset,
88
+ lineJoin: dataset.borderJoinStyle,
89
+ lineWidth: Number(dataset.borderWidth) || 0,
90
+ strokeStyle: legendHelper.getLegendStrokeStyle(dataset, usePointStyle),
91
+ pointStyle: typeof dataset.pointStyle === 'string' ? dataset.pointStyle : undefined,
92
+ // Below is extra data used for toggling the datasets
93
+ datasetIndex: i
94
+ };
95
+ });
96
+ };
97
+ }
98
+ /**
99
+ * Element version number
100
+ * @returns version number
101
+ */
102
+ static get version() {
103
+ return VERSION;
104
+ }
105
+ /**
106
+ * Required properties, needed for chart to work correctly.
107
+ * @returns config
108
+ */
109
+ get requiredConfig() {
110
+ return {
111
+ options: {
112
+ responsive: false,
113
+ maintainAspectRatio: false,
114
+ title: {
115
+ display: false
116
+ }
117
+ }
118
+ };
119
+ }
120
+ /**
121
+ * Safely returns the chart title
122
+ * @returns chart title
123
+ */
124
+ get chartTitle() {
125
+ var _a, _b, _c;
126
+ const title = (_c = (_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.title) === null || _c === void 0 ? void 0 : _c.text;
127
+ if (title) {
128
+ return typeof title === 'string' ? title : title.join();
129
+ }
130
+ return '';
131
+ }
132
+ /**
133
+ * Safely returns a dataset array
134
+ * @returns dataset array
135
+ */
136
+ get datasets() {
137
+ var _a, _b;
138
+ return ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.datasets) || [];
139
+ }
140
+ /**
141
+ * List of available chart colors
142
+ * @type {string[]}
143
+ * @returns {string[]} List of available chart colors
144
+ */
145
+ get colors() {
146
+ let color;
147
+ let index = 0;
148
+ const colors = [];
149
+ while ((color = this.getComputedVariable(`${CSS_COLOR_PREFIX}${++index}`))) {
150
+ colors.push(color);
151
+ }
152
+ return colors;
153
+ }
154
+ /**
155
+ * Invoked whenever the element is updated
156
+ * @param {PropertyValues} changedProperties Map of changed properties with old values
157
+ * @returns {void}
158
+ */
159
+ updated(changedProperties) {
160
+ super.updated(changedProperties);
161
+ if (changedProperties.has('config')) {
162
+ this.onConfigChange();
163
+ }
164
+ }
165
+ /**
166
+ * Element connected
167
+ * @returns {void}
168
+ */
169
+ connectedCallback() {
170
+ super.connectedCallback();
171
+ if (this.canvas) {
172
+ this.createChart();
173
+ }
174
+ }
175
+ /**
176
+ * Element disconnected
177
+ * @returns {void}
178
+ */
179
+ disconnectedCallback() {
180
+ super.disconnectedCallback();
181
+ this.destroyChart();
182
+ }
183
+ /**
184
+ * Themable parts of the config.
185
+ * This will be merged into the configuration object.
186
+ * @returns {ChartConfig} chart config with theme
187
+ */
188
+ get themableConfig() {
189
+ var _a;
190
+ const style = getComputedStyle(this);
191
+ // TODO: Try and remove the need for global object modification.
192
+ // It's easier to cover all areas by modifying the global object,
193
+ // however, if possible, we should look to try and just modify local configs.
194
+ // Set font globals
195
+ window.Chart.defaults.global.defaultFontColor = style.getPropertyValue('color');
196
+ window.Chart.defaults.global.defaultFontFamily = style.getPropertyValue('font-family');
197
+ window.Chart.defaults.global.defaultFontSize = Number(style.getPropertyValue('font-size').replace('px', ''));
198
+ window.Chart.defaults.global.defaultFontStyle = style.getPropertyValue('font-style');
199
+ // Set grid line globals
200
+ window.Chart.defaults.scale.gridLines.color = this.getComputedVariable('--grid-line-color', 'transparent');
201
+ window.Chart.defaults.scale.gridLines.zeroLineColor = this.getComputedVariable('--zero-line-color', 'transparent');
202
+ return {
203
+ options: {
204
+ animation: {
205
+ duration: this.cssVarAsNumber('--animation-duration', '0')
206
+ },
207
+ elements: {
208
+ line: {
209
+ borderWidth: this.cssVarAsNumber('--line-width', '1'),
210
+ tension: this.cssVarAsNumber('--line-tension', '0.5')
211
+ }
212
+ },
213
+ tooltips: {
214
+ backgroundColor: this.getComputedVariable('--tooltip-background-color', 'transparent'),
215
+ titleFontColor: this.getComputedVariable('--tooltip-title-color', 'transparent'),
216
+ bodyFontColor: this.getComputedVariable('--tooltip-body-color', 'transparent'),
217
+ cornerRadius: this.cssVarAsNumber('--tooltip-border-radius', '0'),
218
+ caretSize: this.cssVarAsNumber('--tooltip-caret-size', '0'),
219
+ xPadding: this.cssVarAsNumber('--tooltip-padding-x', '--tooltip-padding', '0'),
220
+ yPadding: this.cssVarAsNumber('--tooltip-padding-y', '--tooltip-padding', '0'),
221
+ titleSpacing: this.cssVarAsNumber('--tooltip-title-spacing', '0'),
222
+ displayColors: false
223
+ },
224
+ legend: {
225
+ position: ['pie', 'doughnut'].includes(((_a = this.config) === null || _a === void 0 ? void 0 : _a.type) || '') ? 'right' : 'top',
226
+ labels: {
227
+ boxWidth: this.cssVarAsNumber('--legend-key-box-width', '10'),
228
+ generateLabels: this.generateLegendLabels
229
+ }
230
+ }
231
+ }
232
+ };
233
+ }
234
+ /**
235
+ * Handles a change of configuration object.
236
+ * This does not fire when a property of the config object changes,
237
+ * for this use this.updateChart() to apply changes.
238
+ * @returns {void}
239
+ */
240
+ onConfigChange() {
241
+ if (this.config) {
242
+ this.createChart();
243
+ }
244
+ }
245
+ /**
246
+ * Get as CSS variable and tries to convert it into a usable number
247
+ * @returns {(number|undefined)} The value as a number, or, undefined if NaN.
248
+ */
249
+ cssVarAsNumber(...args) {
250
+ const result = Number(this.getComputedVariable(...args).replace(/\D+$/, ''));
251
+ return isNaN(result) ? undefined : result;
252
+ }
253
+ /**
254
+ * Merges all the different layers of the config.
255
+ * @returns {void}
256
+ */
257
+ mergeConfigs() {
258
+ if (!this.config) {
259
+ return;
260
+ }
261
+ merge(this.config, this.themableConfig);
262
+ merge(this.config, this.requiredConfig, true);
263
+ }
264
+ /**
265
+ * Themes the passed-in configuration object
266
+ * @returns {void}
267
+ */
268
+ decorateConfig() {
269
+ this.mergeConfigs();
270
+ const extendColorsIfRequired = (currentColors, infoColors) => {
271
+ if (Array.isArray(currentColors) && Array.isArray(infoColors) && currentColors.length < infoColors.length) {
272
+ merge(currentColors, infoColors);
273
+ }
274
+ };
275
+ this.datasets.forEach((dataset) => {
276
+ const info = this.datasetInfo(dataset);
277
+ // make sure that colours are defined for every dataset e.g. when new dataset is added
278
+ extendColorsIfRequired(dataset.borderColor, info.borderColor);
279
+ extendColorsIfRequired(dataset.backgroundColor, info.backgroundColor);
280
+ extendColorsIfRequired(dataset.pointBorderColor, info.pointBorderColor);
281
+ extendColorsIfRequired(dataset.pointBackgroundColor, info.pointBackgroundColor);
282
+ dataset.borderColor = dataset.borderColor || info.borderColor;
283
+ dataset.backgroundColor = dataset.backgroundColor || info.backgroundColor;
284
+ dataset.pointBackgroundColor = dataset.pointBackgroundColor || info.pointBackgroundColor;
285
+ dataset.pointBorderColor = dataset.pointBorderColor || info.pointBorderColor;
286
+ });
287
+ }
288
+ /**
289
+ * Returns usable information about a dataset
290
+ * @param {Chart.ChartDataSets} dataset Chart dataset
291
+ * @returns {Chart.ChartDataSets} Information about the dataset
292
+ */
293
+ datasetInfo(dataset) {
294
+ var _a;
295
+ const type = dataset.type || ((_a = this.config) === null || _a === void 0 ? void 0 : _a.type);
296
+ let index = this.datasets.indexOf(dataset);
297
+ const isColorArray = (!!type && ['pie', 'doughnut', 'polarArea'].includes(type)) || type === 'bar' && this.datasets.length === 1;
298
+ const isSolidFill = !!type && !CHART_TYPE_OPAQUE.includes(type);
299
+ // Doughnut chart using same color sequence for each data in datasets
300
+ let borderColor = null;
301
+ if (['pie', 'doughnut'].includes(type) && this.datasets.length > 1) {
302
+ index = 0;
303
+ borderColor = this.getComputedVariable('--multi-dataset-border-color', '#fff');
304
+ }
305
+ const colors = this.generateColors(isColorArray, isColorArray && dataset.data ? dataset.data.length : 1, index);
306
+ return {
307
+ type,
308
+ borderColor: borderColor || colors.solid,
309
+ backgroundColor: isSolidFill ? colors.solid : colors.opaque,
310
+ pointBorderColor: colors.solid,
311
+ pointBackgroundColor: colors.solid
312
+ };
313
+ }
314
+ /**
315
+ * Generates internal solid and opaque color set for a dataset
316
+ * @param {boolean} isArray Flag to return result in array or not e.g. doughnut, pie, etc
317
+ * @param {number} amount Amount of colors required
318
+ * @param {number} shift Positional shift of the color start point
319
+ * @returns {DatasetColors} Solid and opaque color values
320
+ */
321
+ generateColors(isArray, amount, shift) {
322
+ let color;
323
+ const solid = [];
324
+ const opaque = [];
325
+ const alpha = Number(this.getComputedVariable('--fill-opacity', '0.2'));
326
+ amount = isArray ? amount : 1;
327
+ for (let i = shift; i < amount + shift; i++) {
328
+ color = this.colors[i % this.colors.length];
329
+ solid.push(color);
330
+ const opaqueColor = parseColor(color);
331
+ if (opaqueColor) {
332
+ opaqueColor.opacity = alpha;
333
+ opaque.push(opaqueColor.toString());
334
+ }
335
+ }
336
+ return {
337
+ solid: isArray ? solid : solid[0],
338
+ opaque: isArray ? opaque : opaque[0]
339
+ };
340
+ }
341
+ /**
342
+ * Manages the custom title element
343
+ * @returns {void}
344
+ */
345
+ manageTitle() {
346
+ this.titleElement.textContent = this.chartTitle;
347
+ if (this.chartTitle) {
348
+ this.titleElement.style.removeProperty('display');
349
+ }
350
+ else {
351
+ this.titleElement.style.display = 'none';
352
+ }
353
+ }
354
+ /**
355
+ * Creates a chart after config has changed,
356
+ * or, the element has been connected to the DOM
357
+ * @returns {void}
358
+ */
359
+ createChart() {
360
+ const ctx = this.canvas.getContext('2d');
361
+ if (ctx && this.config) {
362
+ // Are we reusing an old chart canvas?
363
+ const isReusingCanvas = this.destroyChart();
364
+ // Preparing the resources before create chart
365
+ this.decorateConfig();
366
+ this.manageTitle();
367
+ // Create chart
368
+ this.chart = new window.Chart(ctx, this.config);
369
+ if (isReusingCanvas) {
370
+ // If we're reusing an old chart canvas, we need to resize it.
371
+ // Destroying a chart has some strange side-effects on the canvas.
372
+ this.chart.resize();
373
+ }
374
+ }
375
+ }
376
+ /**
377
+ * Destroys the chart.js object
378
+ * @returns True if a chart object has been destroyed
379
+ */
380
+ destroyChart() {
381
+ if (this.chart) {
382
+ // Destroy the chart
383
+ this.chart.destroy();
384
+ this.chart = null;
385
+ return true;
386
+ }
387
+ return false;
388
+ }
389
+ /**
390
+ * Re-renders the chart based on its config
391
+ * @param {ChartUpdateProps} config Additional configuration object for the update process.
392
+ * @returns {void}
393
+ */
394
+ renderChart(config = { duration: this.cssVarAsNumber('--animation-duration', '0') }) {
395
+ if (!this.chart || !this.config) {
396
+ return;
397
+ }
398
+ // Stop any chart.js animations
399
+ this.chart.stop();
400
+ // Decorate the config object
401
+ this.decorateConfig();
402
+ // Update internal layout
403
+ this.manageTitle();
404
+ // Update the chart
405
+ this.chart.update(config);
406
+ }
407
+ /**
408
+ * Update all data, title, scales, legends and re-render the chart based on its config
409
+ * @param {ChartUpdateProps=} config Additional configuration for control an animation in the update process.
410
+ * @returns {void}
411
+ */
412
+ updateChart(config) {
413
+ this.renderChart(config);
414
+ }
415
+ /**
416
+ * A `CSSResultGroup` that will be used
417
+ * to style the host, slotted children
418
+ * and the internal template of the element.
419
+ * @return CSS template
420
+ */
421
+ static get styles() {
422
+ return css `
423
+ :host {
424
+ display: block;
425
+ overflow: hidden;
426
+ position: relative;
427
+ }
428
+ :host::before {
429
+ content: '';
430
+ display: block;
431
+ padding-top: 60%;
432
+ min-height: 300px;
433
+ box-sizing: border-box;
434
+ }
435
+ [container] {
436
+ position: absolute;
437
+ top: 0;
438
+ right: 0;
439
+ bottom: 0;
440
+ left: 0;
441
+ }
442
+ ef-header {
443
+ margin-bottom: 12px;
444
+ }
445
+ canvas {
446
+ position: absolute;
447
+ top: 0;
448
+ right: 0;
449
+ bottom: 0;
450
+ left: 0;
451
+ }
452
+ `;
453
+ }
454
+ /**
455
+ * Handles resize event of the chart region
456
+ * @returns {void}
457
+ */
458
+ onResize() {
459
+ var _a;
460
+ (_a = this.chart) === null || _a === void 0 ? void 0 : _a.resize();
461
+ }
462
+ /**
463
+ * A `TemplateResult` that will be used
464
+ * to render the updated internal template.
465
+ * @return Render template
466
+ */
467
+ render() {
468
+ return html `
469
+ <ef-layout flex container>
470
+ <ef-header></ef-header>
471
+ <ef-layout part="chart" @resize="${this.onResize}">
472
+ <canvas id="canvas"></canvas>
473
+ </ef-layout>
474
+ </ef-layout>`;
475
+ }
476
+ };
477
+ __decorate([
478
+ property({ type: Object })
479
+ ], Chart.prototype, "config", void 0);
480
+ __decorate([
481
+ query('canvas')
482
+ ], Chart.prototype, "canvas", void 0);
483
+ __decorate([
484
+ query('ef-header')
485
+ ], Chart.prototype, "titleElement", void 0);
486
+ Chart = __decorate([
487
+ customElement('ef-chart', {
488
+ alias: 'sapphire-chart'
489
+ })
490
+ ], Chart);
491
+ export { Chart };
@@ -0,0 +1,3 @@
1
+ /// <reference types="chart.js" />
2
+ declare const plugins: Chart.PluginServiceRegistrationOptions;
3
+ export default plugins;