@refinitiv-ui/elements 0.0.0-build.1957399501.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/CHANGELOG.md +412 -0
  2. package/LICENSE +13 -0
  3. package/README.md +70 -0
  4. package/lib/accordion/custom-elements.json +49 -0
  5. package/lib/accordion/custom-elements.md +18 -0
  6. package/lib/accordion/index.d.ts +76 -0
  7. package/lib/accordion/index.js +136 -0
  8. package/lib/accordion/themes/halo/dark/index.js +3 -0
  9. package/lib/accordion/themes/halo/light/index.js +3 -0
  10. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  11. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  12. package/lib/appstate-bar/custom-elements.json +49 -0
  13. package/lib/appstate-bar/custom-elements.md +22 -0
  14. package/lib/appstate-bar/index.d.ts +65 -0
  15. package/lib/appstate-bar/index.js +100 -0
  16. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  17. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  18. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  19. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  20. package/lib/autosuggest/custom-elements.json +243 -0
  21. package/lib/autosuggest/custom-elements.md +54 -0
  22. package/lib/autosuggest/helpers/types.d.ts +54 -0
  23. package/lib/autosuggest/helpers/types.js +1 -0
  24. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  25. package/lib/autosuggest/helpers/utils.js +75 -0
  26. package/lib/autosuggest/index.d.ts +538 -0
  27. package/lib/autosuggest/index.js +1254 -0
  28. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  29. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  30. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  31. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  32. package/lib/button/custom-elements.json +119 -0
  33. package/lib/button/custom-elements.md +23 -0
  34. package/lib/button/index.d.ts +138 -0
  35. package/lib/button/index.js +241 -0
  36. package/lib/button/themes/halo/dark/index.js +3 -0
  37. package/lib/button/themes/halo/light/index.js +3 -0
  38. package/lib/button/themes/solar/charcoal/index.js +3 -0
  39. package/lib/button/themes/solar/pearl/index.js +3 -0
  40. package/lib/button-bar/custom-elements.json +26 -0
  41. package/lib/button-bar/custom-elements.md +9 -0
  42. package/lib/button-bar/index.d.ts +125 -0
  43. package/lib/button-bar/index.js +294 -0
  44. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  45. package/lib/button-bar/themes/halo/light/index.js +3 -0
  46. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  47. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  48. package/lib/calendar/constants.d.ts +26 -0
  49. package/lib/calendar/constants.js +28 -0
  50. package/lib/calendar/custom-elements.json +201 -0
  51. package/lib/calendar/custom-elements.md +35 -0
  52. package/lib/calendar/index.d.ts +412 -0
  53. package/lib/calendar/index.js +1297 -0
  54. package/lib/calendar/locales.d.ts +1 -0
  55. package/lib/calendar/locales.js +41 -0
  56. package/lib/calendar/themes/halo/dark/index.js +3 -0
  57. package/lib/calendar/themes/halo/light/index.js +3 -0
  58. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  59. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  60. package/lib/calendar/types.d.ts +32 -0
  61. package/lib/calendar/types.js +1 -0
  62. package/lib/calendar/utils.d.ts +42 -0
  63. package/lib/calendar/utils.js +120 -0
  64. package/lib/canvas/custom-elements.json +71 -0
  65. package/lib/canvas/custom-elements.md +27 -0
  66. package/lib/canvas/index.d.ts +101 -0
  67. package/lib/canvas/index.js +172 -0
  68. package/lib/canvas/themes/halo/dark/index.js +2 -0
  69. package/lib/canvas/themes/halo/light/index.js +2 -0
  70. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  71. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  72. package/lib/card/custom-elements.json +61 -0
  73. package/lib/card/custom-elements.md +24 -0
  74. package/lib/card/helpers/types.d.ts +12 -0
  75. package/lib/card/helpers/types.js +1 -0
  76. package/lib/card/index.d.ts +142 -0
  77. package/lib/card/index.js +247 -0
  78. package/lib/card/themes/halo/dark/index.js +5 -0
  79. package/lib/card/themes/halo/light/index.js +5 -0
  80. package/lib/card/themes/solar/charcoal/index.js +5 -0
  81. package/lib/card/themes/solar/pearl/index.js +5 -0
  82. package/lib/chart/custom-elements.json +42 -0
  83. package/lib/chart/custom-elements.md +16 -0
  84. package/lib/chart/helpers/index.d.ts +2 -0
  85. package/lib/chart/helpers/index.js +2 -0
  86. package/lib/chart/helpers/legend.d.ts +5 -0
  87. package/lib/chart/helpers/legend.js +78 -0
  88. package/lib/chart/helpers/merge.d.ts +15 -0
  89. package/lib/chart/helpers/merge.js +28 -0
  90. package/lib/chart/helpers/types.d.ts +69 -0
  91. package/lib/chart/helpers/types.js +1 -0
  92. package/lib/chart/index.d.ts +187 -0
  93. package/lib/chart/index.js +484 -0
  94. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  95. package/lib/chart/plugins/doughnut-center-label.js +191 -0
  96. package/lib/chart/themes/halo/dark/index.js +4 -0
  97. package/lib/chart/themes/halo/light/index.js +4 -0
  98. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  99. package/lib/chart/themes/solar/pearl/index.js +4 -0
  100. package/lib/checkbox/custom-elements.json +71 -0
  101. package/lib/checkbox/custom-elements.md +18 -0
  102. package/lib/checkbox/index.d.ts +97 -0
  103. package/lib/checkbox/index.js +194 -0
  104. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  105. package/lib/checkbox/themes/halo/light/index.js +4 -0
  106. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  107. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  108. package/lib/clock/custom-elements.json +125 -0
  109. package/lib/clock/custom-elements.md +28 -0
  110. package/lib/clock/index.d.ts +321 -0
  111. package/lib/clock/index.js +583 -0
  112. package/lib/clock/themes/halo/dark/index.js +2 -0
  113. package/lib/clock/themes/halo/light/index.js +2 -0
  114. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  115. package/lib/clock/themes/solar/pearl/index.js +2 -0
  116. package/lib/clock/utils/TickManager.d.ts +14 -0
  117. package/lib/clock/utils/TickManager.js +66 -0
  118. package/lib/clock/utils/timestamps.d.ts +6 -0
  119. package/lib/clock/utils/timestamps.js +6 -0
  120. package/lib/collapse/custom-elements.json +81 -0
  121. package/lib/collapse/custom-elements.md +27 -0
  122. package/lib/collapse/index.d.ts +123 -0
  123. package/lib/collapse/index.js +225 -0
  124. package/lib/collapse/themes/halo/dark/index.js +5 -0
  125. package/lib/collapse/themes/halo/light/index.js +5 -0
  126. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  127. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  128. package/lib/color-dialog/custom-elements.json +206 -0
  129. package/lib/color-dialog/custom-elements.md +39 -0
  130. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  131. package/lib/color-dialog/elements/color-palettes.js +101 -0
  132. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  133. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  134. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  135. package/lib/color-dialog/elements/palettes.js +131 -0
  136. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  137. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  138. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  139. package/lib/color-dialog/helpers/value-model.js +141 -0
  140. package/lib/color-dialog/index.d.ts +232 -0
  141. package/lib/color-dialog/index.js +459 -0
  142. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  143. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  144. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  145. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  146. package/lib/combo-box/custom-elements.json +241 -0
  147. package/lib/combo-box/custom-elements.md +42 -0
  148. package/lib/combo-box/helpers/filter.d.ts +10 -0
  149. package/lib/combo-box/helpers/filter.js +29 -0
  150. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  151. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  152. package/lib/combo-box/helpers/renderer.d.ts +8 -0
  153. package/lib/combo-box/helpers/renderer.js +24 -0
  154. package/lib/combo-box/helpers/types.d.ts +11 -0
  155. package/lib/combo-box/helpers/types.js +1 -0
  156. package/lib/combo-box/index.d.ts +551 -0
  157. package/lib/combo-box/index.js +1199 -0
  158. package/lib/combo-box/themes/halo/dark/index.js +7 -0
  159. package/lib/combo-box/themes/halo/light/index.js +7 -0
  160. package/lib/combo-box/themes/solar/charcoal/index.js +7 -0
  161. package/lib/combo-box/themes/solar/pearl/index.js +7 -0
  162. package/lib/counter/custom-elements.json +39 -0
  163. package/lib/counter/custom-elements.md +11 -0
  164. package/lib/counter/index.d.ts +91 -0
  165. package/lib/counter/index.js +154 -0
  166. package/lib/counter/themes/halo/dark/index.js +3 -0
  167. package/lib/counter/themes/halo/light/index.js +3 -0
  168. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  169. package/lib/counter/themes/solar/pearl/index.js +3 -0
  170. package/lib/counter/utils.d.ts +13 -0
  171. package/lib/counter/utils.js +52 -0
  172. package/lib/datetime-picker/custom-elements.json +362 -0
  173. package/lib/datetime-picker/custom-elements.md +57 -0
  174. package/lib/datetime-picker/index.d.ts +509 -0
  175. package/lib/datetime-picker/index.js +1174 -0
  176. package/lib/datetime-picker/locales.d.ts +8 -0
  177. package/lib/datetime-picker/locales.js +57 -0
  178. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  179. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  180. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  181. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  182. package/lib/datetime-picker/types.d.ts +3 -0
  183. package/lib/datetime-picker/types.js +1 -0
  184. package/lib/datetime-picker/utils.d.ts +55 -0
  185. package/lib/datetime-picker/utils.js +92 -0
  186. package/lib/dialog/custom-elements.json +169 -0
  187. package/lib/dialog/custom-elements.md +48 -0
  188. package/lib/dialog/draggable-element.d.ts +14 -0
  189. package/lib/dialog/draggable-element.js +220 -0
  190. package/lib/dialog/index.d.ts +213 -0
  191. package/lib/dialog/index.js +353 -0
  192. package/lib/dialog/themes/halo/dark/index.js +7 -0
  193. package/lib/dialog/themes/halo/light/index.js +7 -0
  194. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  195. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  196. package/lib/email-field/custom-elements.json +186 -0
  197. package/lib/email-field/custom-elements.md +37 -0
  198. package/lib/email-field/index.d.ts +80 -0
  199. package/lib/email-field/index.js +91 -0
  200. package/lib/email-field/themes/halo/dark/index.js +3 -0
  201. package/lib/email-field/themes/halo/light/index.js +3 -0
  202. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  203. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  204. package/lib/events.d.ts +121 -0
  205. package/lib/events.js +1 -0
  206. package/lib/flag/custom-elements.json +35 -0
  207. package/lib/flag/custom-elements.md +10 -0
  208. package/lib/flag/index.d.ts +96 -0
  209. package/lib/flag/index.js +168 -0
  210. package/lib/flag/themes/halo/dark/index.js +2 -0
  211. package/lib/flag/themes/halo/light/index.js +2 -0
  212. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  213. package/lib/flag/themes/solar/pearl/index.js +2 -0
  214. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  215. package/lib/flag/utils/FlagLoader.js +86 -0
  216. package/lib/header/custom-elements.json +36 -0
  217. package/lib/header/custom-elements.md +18 -0
  218. package/lib/header/index.d.ts +46 -0
  219. package/lib/header/index.js +73 -0
  220. package/lib/header/themes/halo/dark/index.js +2 -0
  221. package/lib/header/themes/halo/light/index.js +2 -0
  222. package/lib/header/themes/solar/charcoal/index.js +2 -0
  223. package/lib/header/themes/solar/pearl/index.js +2 -0
  224. package/lib/heatmap/custom-elements.json +151 -0
  225. package/lib/heatmap/custom-elements.md +26 -0
  226. package/lib/heatmap/helpers/color.d.ts +30 -0
  227. package/lib/heatmap/helpers/color.js +66 -0
  228. package/lib/heatmap/helpers/text.d.ts +26 -0
  229. package/lib/heatmap/helpers/text.js +91 -0
  230. package/lib/heatmap/helpers/track.d.ts +102 -0
  231. package/lib/heatmap/helpers/track.js +160 -0
  232. package/lib/heatmap/helpers/types.d.ts +40 -0
  233. package/lib/heatmap/helpers/types.js +1 -0
  234. package/lib/heatmap/index.d.ts +453 -0
  235. package/lib/heatmap/index.js +1094 -0
  236. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  237. package/lib/heatmap/themes/halo/light/index.js +4 -0
  238. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  239. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  240. package/lib/icon/custom-elements.json +36 -0
  241. package/lib/icon/custom-elements.md +8 -0
  242. package/lib/icon/index.d.ts +90 -0
  243. package/lib/icon/index.js +171 -0
  244. package/lib/icon/themes/halo/dark/index.js +2 -0
  245. package/lib/icon/themes/halo/light/index.js +2 -0
  246. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  247. package/lib/icon/themes/solar/pearl/index.js +2 -0
  248. package/lib/icon/utils/IconLoader.d.ts +52 -0
  249. package/lib/icon/utils/IconLoader.js +93 -0
  250. package/lib/index.d.ts +3 -0
  251. package/lib/index.js +3 -0
  252. package/lib/interactive-chart/custom-elements.json +82 -0
  253. package/lib/interactive-chart/custom-elements.md +31 -0
  254. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  255. package/lib/interactive-chart/helpers/merge.js +28 -0
  256. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  257. package/lib/interactive-chart/helpers/types.js +6 -0
  258. package/lib/interactive-chart/index.d.ts +383 -0
  259. package/lib/interactive-chart/index.js +1089 -0
  260. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  261. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  262. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  263. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  264. package/lib/item/custom-elements.json +153 -0
  265. package/lib/item/custom-elements.md +29 -0
  266. package/lib/item/helpers/types.d.ts +57 -0
  267. package/lib/item/helpers/types.js +1 -0
  268. package/lib/item/index.d.ts +159 -0
  269. package/lib/item/index.js +269 -0
  270. package/lib/item/themes/halo/dark/index.js +4 -0
  271. package/lib/item/themes/halo/light/index.js +4 -0
  272. package/lib/item/themes/solar/charcoal/index.js +4 -0
  273. package/lib/item/themes/solar/pearl/index.js +4 -0
  274. package/lib/jsx.d.ts +223 -0
  275. package/lib/label/custom-elements.json +52 -0
  276. package/lib/label/custom-elements.md +11 -0
  277. package/lib/label/index.d.ts +102 -0
  278. package/lib/label/index.js +245 -0
  279. package/lib/label/themes/halo/dark/index.js +3 -0
  280. package/lib/label/themes/halo/light/index.js +3 -0
  281. package/lib/label/themes/solar/charcoal/index.js +3 -0
  282. package/lib/label/themes/solar/pearl/index.js +3 -0
  283. package/lib/layout/custom-elements.json +163 -0
  284. package/lib/layout/custom-elements.md +26 -0
  285. package/lib/layout/index.d.ts +107 -0
  286. package/lib/layout/index.js +212 -0
  287. package/lib/layout/themes/halo/dark/index.js +2 -0
  288. package/lib/layout/themes/halo/light/index.js +2 -0
  289. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  290. package/lib/layout/themes/solar/pearl/index.js +2 -0
  291. package/lib/led-gauge/custom-elements.json +113 -0
  292. package/lib/led-gauge/custom-elements.md +17 -0
  293. package/lib/led-gauge/index.d.ts +144 -0
  294. package/lib/led-gauge/index.js +438 -0
  295. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  296. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  297. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  298. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  299. package/lib/list/custom-elements.json +137 -0
  300. package/lib/list/custom-elements.md +33 -0
  301. package/lib/list/extensible-function.d.ts +8 -0
  302. package/lib/list/extensible-function.js +13 -0
  303. package/lib/list/helpers/list-renderer.d.ts +9 -0
  304. package/lib/list/helpers/list-renderer.js +37 -0
  305. package/lib/list/helpers/types.d.ts +3 -0
  306. package/lib/list/helpers/types.js +1 -0
  307. package/lib/list/index.d.ts +313 -0
  308. package/lib/list/index.js +640 -0
  309. package/lib/list/renderer.d.ts +36 -0
  310. package/lib/list/renderer.js +9 -0
  311. package/lib/list/themes/halo/dark/index.js +3 -0
  312. package/lib/list/themes/halo/light/index.js +3 -0
  313. package/lib/list/themes/solar/charcoal/index.js +3 -0
  314. package/lib/list/themes/solar/pearl/index.js +3 -0
  315. package/lib/loader/custom-elements.json +9 -0
  316. package/lib/loader/custom-elements.md +5 -0
  317. package/lib/loader/index.d.ts +41 -0
  318. package/lib/loader/index.js +61 -0
  319. package/lib/loader/themes/halo/dark/index.js +2 -0
  320. package/lib/loader/themes/halo/light/index.js +2 -0
  321. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  322. package/lib/loader/themes/solar/pearl/index.js +2 -0
  323. package/lib/multi-input/custom-elements.json +239 -0
  324. package/lib/multi-input/custom-elements.md +43 -0
  325. package/lib/multi-input/helpers/types.d.ts +11 -0
  326. package/lib/multi-input/helpers/types.js +1 -0
  327. package/lib/multi-input/index.d.ts +301 -0
  328. package/lib/multi-input/index.js +593 -0
  329. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  330. package/lib/multi-input/themes/halo/light/index.js +4 -0
  331. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  332. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  333. package/lib/notification/custom-elements.json +95 -0
  334. package/lib/notification/custom-elements.md +26 -0
  335. package/lib/notification/elements/notification-tray.d.ts +97 -0
  336. package/lib/notification/elements/notification-tray.js +167 -0
  337. package/lib/notification/elements/notification.d.ts +90 -0
  338. package/lib/notification/elements/notification.js +154 -0
  339. package/lib/notification/helpers/status.d.ts +30 -0
  340. package/lib/notification/helpers/status.js +130 -0
  341. package/lib/notification/helpers/types.d.ts +10 -0
  342. package/lib/notification/helpers/types.js +1 -0
  343. package/lib/notification/index.d.ts +2 -0
  344. package/lib/notification/index.js +2 -0
  345. package/lib/notification/themes/halo/dark/index.js +5 -0
  346. package/lib/notification/themes/halo/light/index.js +5 -0
  347. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  348. package/lib/notification/themes/solar/pearl/index.js +5 -0
  349. package/lib/number-field/custom-elements.json +245 -0
  350. package/lib/number-field/custom-elements.md +42 -0
  351. package/lib/number-field/index.d.ts +339 -0
  352. package/lib/number-field/index.js +751 -0
  353. package/lib/number-field/themes/halo/dark/index.js +3 -0
  354. package/lib/number-field/themes/halo/light/index.js +3 -0
  355. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  356. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  357. package/lib/overlay/custom-elements.json +355 -0
  358. package/lib/overlay/custom-elements.md +54 -0
  359. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  360. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  361. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  362. package/lib/overlay/elements/overlay-viewport.js +52 -0
  363. package/lib/overlay/elements/overlay.d.ts +408 -0
  364. package/lib/overlay/elements/overlay.js +1428 -0
  365. package/lib/overlay/helpers/functions.d.ts +13 -0
  366. package/lib/overlay/helpers/functions.js +16 -0
  367. package/lib/overlay/helpers/types.d.ts +97 -0
  368. package/lib/overlay/helpers/types.js +16 -0
  369. package/lib/overlay/index.d.ts +2 -0
  370. package/lib/overlay/index.js +1 -0
  371. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  372. package/lib/overlay/managers/backdrop-manager.js +96 -0
  373. package/lib/overlay/managers/close-manager.d.ts +54 -0
  374. package/lib/overlay/managers/close-manager.js +138 -0
  375. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  376. package/lib/overlay/managers/focus-manager.js +227 -0
  377. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  378. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  379. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  380. package/lib/overlay/managers/viewport-manager.js +210 -0
  381. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  382. package/lib/overlay/managers/zindex-manager.js +195 -0
  383. package/lib/overlay/themes/halo/dark/index.js +4 -0
  384. package/lib/overlay/themes/halo/light/index.js +4 -0
  385. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  386. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  387. package/lib/overlay-menu/custom-elements.json +246 -0
  388. package/lib/overlay-menu/custom-elements.md +44 -0
  389. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  390. package/lib/overlay-menu/helpers/types.js +1 -0
  391. package/lib/overlay-menu/index.d.ts +387 -0
  392. package/lib/overlay-menu/index.js +932 -0
  393. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  394. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  395. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  396. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  397. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  398. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  399. package/lib/pagination/custom-elements.json +76 -0
  400. package/lib/pagination/custom-elements.md +26 -0
  401. package/lib/pagination/index.d.ts +275 -0
  402. package/lib/pagination/index.js +551 -0
  403. package/lib/pagination/themes/halo/dark/index.js +6 -0
  404. package/lib/pagination/themes/halo/light/index.js +6 -0
  405. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  406. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  407. package/lib/panel/custom-elements.json +39 -0
  408. package/lib/panel/custom-elements.md +11 -0
  409. package/lib/panel/index.d.ts +48 -0
  410. package/lib/panel/index.js +74 -0
  411. package/lib/panel/themes/halo/dark/index.js +2 -0
  412. package/lib/panel/themes/halo/light/index.js +2 -0
  413. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  414. package/lib/panel/themes/solar/pearl/index.js +2 -0
  415. package/lib/password-field/custom-elements.json +151 -0
  416. package/lib/password-field/custom-elements.md +39 -0
  417. package/lib/password-field/index.d.ts +89 -0
  418. package/lib/password-field/index.js +115 -0
  419. package/lib/password-field/themes/halo/dark/index.js +3 -0
  420. package/lib/password-field/themes/halo/light/index.js +3 -0
  421. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  422. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  423. package/lib/pill/custom-elements.json +97 -0
  424. package/lib/pill/custom-elements.md +22 -0
  425. package/lib/pill/index.d.ts +113 -0
  426. package/lib/pill/index.js +191 -0
  427. package/lib/pill/themes/halo/dark/index.js +3 -0
  428. package/lib/pill/themes/halo/light/index.js +3 -0
  429. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  430. package/lib/pill/themes/solar/pearl/index.js +3 -0
  431. package/lib/progress-bar/custom-elements.json +58 -0
  432. package/lib/progress-bar/custom-elements.md +18 -0
  433. package/lib/progress-bar/index.d.ts +82 -0
  434. package/lib/progress-bar/index.js +157 -0
  435. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  436. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  437. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  438. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  439. package/lib/radio-button/custom-elements.json +84 -0
  440. package/lib/radio-button/custom-elements.md +19 -0
  441. package/lib/radio-button/index.d.ts +123 -0
  442. package/lib/radio-button/index.js +261 -0
  443. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  444. package/lib/radio-button/radio-button-registry.js +95 -0
  445. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  446. package/lib/radio-button/themes/halo/light/index.js +3 -0
  447. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  448. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  449. package/lib/rating/custom-elements.json +58 -0
  450. package/lib/rating/custom-elements.md +17 -0
  451. package/lib/rating/index.d.ts +91 -0
  452. package/lib/rating/index.js +157 -0
  453. package/lib/rating/themes/halo/dark/index.js +2 -0
  454. package/lib/rating/themes/halo/light/index.js +2 -0
  455. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  456. package/lib/rating/themes/solar/pearl/index.js +2 -0
  457. package/lib/search-field/custom-elements.json +169 -0
  458. package/lib/search-field/custom-elements.md +41 -0
  459. package/lib/search-field/index.d.ts +77 -0
  460. package/lib/search-field/index.js +88 -0
  461. package/lib/search-field/themes/halo/dark/index.js +3 -0
  462. package/lib/search-field/themes/halo/light/index.js +3 -0
  463. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  464. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  465. package/lib/select/custom-elements.json +104 -0
  466. package/lib/select/custom-elements.md +24 -0
  467. package/lib/select/helpers/types.d.ts +3 -0
  468. package/lib/select/helpers/types.js +1 -0
  469. package/lib/select/index.d.ts +396 -0
  470. package/lib/select/index.js +978 -0
  471. package/lib/select/themes/halo/dark/index.js +5 -0
  472. package/lib/select/themes/halo/light/index.js +5 -0
  473. package/lib/select/themes/solar/charcoal/index.js +5 -0
  474. package/lib/select/themes/solar/pearl/index.js +5 -0
  475. package/lib/sidebar-layout/custom-elements.json +68 -0
  476. package/lib/sidebar-layout/custom-elements.md +21 -0
  477. package/lib/sidebar-layout/index.d.ts +70 -0
  478. package/lib/sidebar-layout/index.js +134 -0
  479. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  480. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  481. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  482. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  483. package/lib/slider/custom-elements.json +181 -0
  484. package/lib/slider/custom-elements.md +28 -0
  485. package/lib/slider/index.d.ts +409 -0
  486. package/lib/slider/index.js +1195 -0
  487. package/lib/slider/themes/halo/dark/index.js +3 -0
  488. package/lib/slider/themes/halo/light/index.js +3 -0
  489. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  490. package/lib/slider/themes/solar/pearl/index.js +3 -0
  491. package/lib/sparkline/custom-elements.json +59 -0
  492. package/lib/sparkline/custom-elements.md +16 -0
  493. package/lib/sparkline/index.d.ts +109 -0
  494. package/lib/sparkline/index.js +187 -0
  495. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  496. package/lib/sparkline/themes/halo/light/index.js +2 -0
  497. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  498. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  499. package/lib/swing-gauge/const.d.ts +22 -0
  500. package/lib/swing-gauge/const.js +26 -0
  501. package/lib/swing-gauge/custom-elements.json +111 -0
  502. package/lib/swing-gauge/custom-elements.md +17 -0
  503. package/lib/swing-gauge/helpers.d.ts +8 -0
  504. package/lib/swing-gauge/helpers.js +105 -0
  505. package/lib/swing-gauge/index.d.ts +296 -0
  506. package/lib/swing-gauge/index.js +770 -0
  507. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  508. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  509. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  510. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  511. package/lib/swing-gauge/types.d.ts +34 -0
  512. package/lib/swing-gauge/types.js +1 -0
  513. package/lib/tab/custom-elements.json +136 -0
  514. package/lib/tab/custom-elements.md +23 -0
  515. package/lib/tab/index.d.ts +136 -0
  516. package/lib/tab/index.js +236 -0
  517. package/lib/tab/themes/halo/dark/index.js +4 -0
  518. package/lib/tab/themes/halo/light/index.js +4 -0
  519. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  520. package/lib/tab/themes/solar/pearl/index.js +4 -0
  521. package/lib/tab-bar/custom-elements.json +64 -0
  522. package/lib/tab-bar/custom-elements.md +18 -0
  523. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  524. package/lib/tab-bar/helpers/animate.js +53 -0
  525. package/lib/tab-bar/index.d.ts +198 -0
  526. package/lib/tab-bar/index.js +428 -0
  527. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  528. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  529. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  530. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  531. package/lib/text-field/custom-elements.json +199 -0
  532. package/lib/text-field/custom-elements.md +35 -0
  533. package/lib/text-field/index.d.ts +164 -0
  534. package/lib/text-field/index.js +284 -0
  535. package/lib/text-field/themes/halo/dark/index.js +3 -0
  536. package/lib/text-field/themes/halo/light/index.js +3 -0
  537. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  538. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  539. package/lib/time-picker/custom-elements.json +122 -0
  540. package/lib/time-picker/custom-elements.md +28 -0
  541. package/lib/time-picker/index.d.ts +412 -0
  542. package/lib/time-picker/index.js +897 -0
  543. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  544. package/lib/time-picker/themes/halo/light/index.js +4 -0
  545. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  546. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  547. package/lib/toggle/custom-elements.json +84 -0
  548. package/lib/toggle/custom-elements.md +19 -0
  549. package/lib/toggle/index.d.ts +87 -0
  550. package/lib/toggle/index.js +153 -0
  551. package/lib/toggle/themes/halo/dark/index.js +2 -0
  552. package/lib/toggle/themes/halo/light/index.js +2 -0
  553. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  554. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  555. package/lib/tooltip/custom-elements.json +62 -0
  556. package/lib/tooltip/custom-elements.md +14 -0
  557. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  558. package/lib/tooltip/elements/title-tooltip.js +18 -0
  559. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  560. package/lib/tooltip/elements/tooltip-element.js +54 -0
  561. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  562. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  563. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  564. package/lib/tooltip/helpers/renderer.js +11 -0
  565. package/lib/tooltip/helpers/types.d.ts +23 -0
  566. package/lib/tooltip/helpers/types.js +1 -0
  567. package/lib/tooltip/index.d.ts +232 -0
  568. package/lib/tooltip/index.js +475 -0
  569. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  570. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  571. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  572. package/lib/tooltip/themes/halo/light/index.js +3 -0
  573. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  574. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  575. package/lib/tornado-chart/custom-elements.json +45 -0
  576. package/lib/tornado-chart/custom-elements.md +18 -0
  577. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  578. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  579. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  580. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  581. package/lib/tornado-chart/index.d.ts +2 -0
  582. package/lib/tornado-chart/index.js +2 -0
  583. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  584. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  585. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  586. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  587. package/lib/tree/custom-elements.json +114 -0
  588. package/lib/tree/custom-elements.md +32 -0
  589. package/lib/tree/elements/tree-item.d.ts +129 -0
  590. package/lib/tree/elements/tree-item.js +238 -0
  591. package/lib/tree/elements/tree.d.ts +203 -0
  592. package/lib/tree/elements/tree.js +414 -0
  593. package/lib/tree/helpers/filter.d.ts +8 -0
  594. package/lib/tree/helpers/filter.js +33 -0
  595. package/lib/tree/helpers/renderer.d.ts +5 -0
  596. package/lib/tree/helpers/renderer.js +33 -0
  597. package/lib/tree/helpers/types.d.ts +25 -0
  598. package/lib/tree/helpers/types.js +1 -0
  599. package/lib/tree/index.d.ts +4 -0
  600. package/lib/tree/index.js +3 -0
  601. package/lib/tree/managers/tree-manager.d.ts +248 -0
  602. package/lib/tree/managers/tree-manager.js +395 -0
  603. package/lib/tree/themes/halo/dark/index.js +7 -0
  604. package/lib/tree/themes/halo/light/index.js +7 -0
  605. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  606. package/lib/tree/themes/solar/pearl/index.js +7 -0
  607. package/lib/tree-select/custom-elements.json +111 -0
  608. package/lib/tree-select/custom-elements.md +26 -0
  609. package/lib/tree-select/helpers/types.d.ts +4 -0
  610. package/lib/tree-select/helpers/types.js +1 -0
  611. package/lib/tree-select/index.d.ts +404 -0
  612. package/lib/tree-select/index.js +895 -0
  613. package/lib/tree-select/themes/halo/dark/index.js +11 -0
  614. package/lib/tree-select/themes/halo/light/index.js +11 -0
  615. package/lib/tree-select/themes/solar/charcoal/index.js +11 -0
  616. package/lib/tree-select/themes/solar/pearl/index.js +11 -0
  617. package/lib/version.d.ts +1 -0
  618. package/lib/version.js +1 -0
  619. package/package.json +355 -0
@@ -0,0 +1,484 @@
1
+ import { __decorate } from "tslib";
2
+ import { BasicElement, html, css } from '@refinitiv-ui/core';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/decorators/query.js';
6
+ import { VERSION } from '../version.js';
7
+ import { color as parseColor } from '@refinitiv-ui/utils/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
+ if (!this.config?.type) {
58
+ return [];
59
+ }
60
+ const chartOption = DEFAULT_CHART_CONFIG[this.config.type];
61
+ if (this.datasets.length
62
+ && chartOption.legend
63
+ && Array.isArray(this.datasets[0].backgroundColor)) {
64
+ let legends = [];
65
+ if (chartOption.legend.labels?.generateLabels) {
66
+ legends = chartOption.legend.labels?.generateLabels(chart);
67
+ }
68
+ // Customize for doughnut chart change border color to background color
69
+ if (['pie', 'doughnut'].includes(this.config?.type) && this.datasets.length > 1) {
70
+ legends.forEach((label) => {
71
+ label.strokeStyle = label.fillStyle;
72
+ });
73
+ }
74
+ return legends;
75
+ }
76
+ return this.datasets.map((dataset, i) => {
77
+ const solidFill = !CHART_TYPE_OPAQUE.includes(dataset.type || this.config?.type);
78
+ const usePointStyle = chart.options.legend?.labels?.usePointStyle || false;
79
+ return {
80
+ text: dataset.label,
81
+ fillStyle: legendHelper.getLegendFillStyle(dataset, usePointStyle, solidFill),
82
+ hidden: !chart.isDatasetVisible(i),
83
+ lineCap: dataset.borderCapStyle,
84
+ lineDash: dataset.borderDash,
85
+ lineDashOffset: dataset.borderDashOffset,
86
+ lineJoin: dataset.borderJoinStyle,
87
+ lineWidth: Number(dataset.borderWidth) || 0,
88
+ strokeStyle: legendHelper.getLegendStrokeStyle(dataset, usePointStyle),
89
+ pointStyle: typeof dataset.pointStyle === 'string' ? dataset.pointStyle : undefined,
90
+ // Below is extra data used for toggling the datasets
91
+ datasetIndex: i
92
+ };
93
+ });
94
+ };
95
+ }
96
+ /**
97
+ * Element version number
98
+ * @returns version number
99
+ */
100
+ static get version() {
101
+ return VERSION;
102
+ }
103
+ /**
104
+ * Required properties, needed for chart to work correctly.
105
+ * @returns config
106
+ */
107
+ get requiredConfig() {
108
+ return {
109
+ options: {
110
+ responsive: false,
111
+ maintainAspectRatio: false,
112
+ title: {
113
+ display: false
114
+ }
115
+ }
116
+ };
117
+ }
118
+ /**
119
+ * Safely returns the chart title
120
+ * @returns chart title
121
+ */
122
+ get chartTitle() {
123
+ const title = this.config?.options?.title?.text;
124
+ if (title) {
125
+ return typeof title === 'string' ? title : title.join();
126
+ }
127
+ return '';
128
+ }
129
+ /**
130
+ * Safely returns a dataset array
131
+ * @returns dataset array
132
+ */
133
+ get datasets() {
134
+ return this.config?.data?.datasets || [];
135
+ }
136
+ /**
137
+ * List of available chart colors
138
+ * @type {string[]}
139
+ * @returns {string[]} List of available chart colors
140
+ */
141
+ get colors() {
142
+ let color;
143
+ let index = 0;
144
+ const colors = [];
145
+ while ((color = this.getComputedVariable(`${CSS_COLOR_PREFIX}${++index}`))) {
146
+ colors.push(color);
147
+ }
148
+ return colors;
149
+ }
150
+ /**
151
+ * Invoked whenever the element is updated
152
+ * @param {PropertyValues} changedProperties Map of changed properties with old values
153
+ * @returns {void}
154
+ */
155
+ updated(changedProperties) {
156
+ super.updated(changedProperties);
157
+ if (changedProperties.has('config')) {
158
+ this.onConfigChange();
159
+ }
160
+ }
161
+ /**
162
+ * Element connected
163
+ * @returns {void}
164
+ */
165
+ connectedCallback() {
166
+ super.connectedCallback();
167
+ if (this.canvas) {
168
+ this.createChart();
169
+ }
170
+ }
171
+ /**
172
+ * Element disconnected
173
+ * @returns {void}
174
+ */
175
+ disconnectedCallback() {
176
+ super.disconnectedCallback();
177
+ this.destroyChart();
178
+ }
179
+ /**
180
+ * Themable parts of the config.
181
+ * This will be merged into the configuration object.
182
+ * @returns {ChartConfig} chart config with theme
183
+ */
184
+ get themableConfig() {
185
+ const style = getComputedStyle(this);
186
+ // TODO: Try and remove the need for global object modification.
187
+ // It's easier to cover all areas by modifying the global object,
188
+ // however, if possible, we should look to try and just modify local configs.
189
+ // Set font globals
190
+ window.Chart.defaults.global.defaultFontColor = style.getPropertyValue('color');
191
+ window.Chart.defaults.global.defaultFontFamily = style.getPropertyValue('font-family');
192
+ window.Chart.defaults.global.defaultFontSize = Number(style.getPropertyValue('font-size').replace('px', ''));
193
+ window.Chart.defaults.global.defaultFontStyle = style.getPropertyValue('font-style');
194
+ // Set grid line globals
195
+ window.Chart.defaults.scale.gridLines.color = this.getComputedVariable('--grid-line-color', 'transparent');
196
+ window.Chart.defaults.scale.gridLines.zeroLineColor = this.getComputedVariable('--zero-line-color', 'transparent');
197
+ return {
198
+ options: {
199
+ animation: {
200
+ duration: this.cssVarAsNumber('--animation-duration', '0')
201
+ },
202
+ elements: {
203
+ line: {
204
+ borderWidth: this.cssVarAsNumber('--line-width', '1'),
205
+ tension: this.cssVarAsNumber('--line-tension', '0.5')
206
+ }
207
+ },
208
+ tooltips: {
209
+ backgroundColor: this.getComputedVariable('--tooltip-background-color', 'transparent'),
210
+ titleFontColor: this.getComputedVariable('--tooltip-title-color', 'transparent'),
211
+ bodyFontColor: this.getComputedVariable('--tooltip-body-color', 'transparent'),
212
+ cornerRadius: this.cssVarAsNumber('--tooltip-border-radius', '0'),
213
+ caretSize: this.cssVarAsNumber('--tooltip-caret-size', '0'),
214
+ xPadding: this.cssVarAsNumber('--tooltip-padding-x', '--tooltip-padding', '0'),
215
+ yPadding: this.cssVarAsNumber('--tooltip-padding-y', '--tooltip-padding', '0'),
216
+ titleSpacing: this.cssVarAsNumber('--tooltip-title-spacing', '0'),
217
+ displayColors: false
218
+ },
219
+ legend: {
220
+ position: ['pie', 'doughnut'].includes(this.config?.type || '') ? 'right' : 'top',
221
+ labels: {
222
+ boxWidth: this.cssVarAsNumber('--legend-key-box-width', '10'),
223
+ generateLabels: this.generateLegendLabels
224
+ }
225
+ }
226
+ }
227
+ };
228
+ }
229
+ /**
230
+ * Handles a change of configuration object.
231
+ * This does not fire when a property of the config object changes,
232
+ * for this use this.updateChart() to apply changes.
233
+ * @returns {void}
234
+ */
235
+ onConfigChange() {
236
+ if (this.config) {
237
+ this.createChart();
238
+ }
239
+ }
240
+ /**
241
+ * Get as CSS variable and tries to convert it into a usable number
242
+ * @returns {(number|undefined)} The value as a number, or, undefined if NaN.
243
+ */
244
+ cssVarAsNumber(...args) {
245
+ const result = Number(this.getComputedVariable(...args).replace(/\D+$/, ''));
246
+ return isNaN(result) ? undefined : result;
247
+ }
248
+ /**
249
+ * Merges all the different layers of the config.
250
+ * @returns {void}
251
+ */
252
+ mergeConfigs() {
253
+ if (!this.config) {
254
+ return;
255
+ }
256
+ merge(this.config, this.themableConfig);
257
+ merge(this.config, this.requiredConfig, true);
258
+ }
259
+ /**
260
+ * Themes the passed-in configuration object
261
+ * @returns {void}
262
+ */
263
+ decorateConfig() {
264
+ this.mergeConfigs();
265
+ const extendColorsIfRequired = (currentColors, infoColors) => {
266
+ if (Array.isArray(currentColors) && Array.isArray(infoColors) && currentColors.length < infoColors.length) {
267
+ merge(currentColors, infoColors);
268
+ }
269
+ };
270
+ this.datasets.forEach((dataset) => {
271
+ const info = this.datasetInfo(dataset);
272
+ // make sure that colours are defined for every dataset e.g. when new dataset is added
273
+ extendColorsIfRequired(dataset.borderColor, info.borderColor);
274
+ extendColorsIfRequired(dataset.backgroundColor, info.backgroundColor);
275
+ extendColorsIfRequired(dataset.pointBorderColor, info.pointBorderColor);
276
+ extendColorsIfRequired(dataset.pointBackgroundColor, info.pointBackgroundColor);
277
+ dataset.borderColor = dataset.borderColor || info.borderColor;
278
+ dataset.backgroundColor = dataset.backgroundColor || info.backgroundColor;
279
+ dataset.pointBackgroundColor = dataset.pointBackgroundColor || info.pointBackgroundColor;
280
+ dataset.pointBorderColor = dataset.pointBorderColor || info.pointBorderColor;
281
+ });
282
+ }
283
+ /**
284
+ * Returns usable information about a dataset
285
+ * @param {Chart.ChartDataSets} dataset Chart dataset
286
+ * @returns {Chart.ChartDataSets} Information about the dataset
287
+ */
288
+ datasetInfo(dataset) {
289
+ const type = dataset.type || this.config?.type;
290
+ let index = this.datasets.indexOf(dataset);
291
+ const isColorArray = (!!type && ['pie', 'doughnut', 'polarArea'].includes(type)) || type === 'bar' && this.datasets.length === 1;
292
+ const isSolidFill = !!type && !CHART_TYPE_OPAQUE.includes(type);
293
+ // Doughnut chart using same color sequence for each data in datasets
294
+ let borderColor = null;
295
+ if (['pie', 'doughnut'].includes(type) && this.datasets.length > 1) {
296
+ index = 0;
297
+ borderColor = this.getComputedVariable('--multi-dataset-border-color', '#fff');
298
+ }
299
+ const colors = this.generateColors(isColorArray, isColorArray && dataset.data ? dataset.data.length : 1, index);
300
+ return {
301
+ type,
302
+ borderColor: borderColor || colors.solid,
303
+ backgroundColor: isSolidFill ? colors.solid : colors.opaque,
304
+ pointBorderColor: colors.solid,
305
+ pointBackgroundColor: colors.solid
306
+ };
307
+ }
308
+ /**
309
+ * Generates internal solid and opaque color set for a dataset
310
+ * @param {boolean} isArray Flag to return result in array or not e.g. doughnut, pie, etc
311
+ * @param {number} amount Amount of colors required
312
+ * @param {number} shift Positional shift of the color start point
313
+ * @returns {DatasetColors} Solid and opaque color values
314
+ */
315
+ generateColors(isArray, amount, shift) {
316
+ let color;
317
+ const solid = [];
318
+ const opaque = [];
319
+ const alpha = Number(this.getComputedVariable('--fill-opacity', '0.2'));
320
+ amount = isArray ? amount : 1;
321
+ for (let i = shift; i < amount + shift; i++) {
322
+ color = this.colors[i % this.colors.length];
323
+ solid.push(color);
324
+ const opaqueColor = parseColor(color);
325
+ if (opaqueColor) {
326
+ opaqueColor.opacity = alpha;
327
+ opaque.push(opaqueColor.toString());
328
+ }
329
+ }
330
+ return {
331
+ solid: isArray ? solid : solid[0],
332
+ opaque: isArray ? opaque : opaque[0]
333
+ };
334
+ }
335
+ /**
336
+ * Manages the custom title element
337
+ * @returns {void}
338
+ */
339
+ manageTitle() {
340
+ this.titleElement.textContent = this.chartTitle;
341
+ if (this.chartTitle) {
342
+ this.titleElement.style.removeProperty('display');
343
+ }
344
+ else {
345
+ this.titleElement.style.display = 'none';
346
+ }
347
+ }
348
+ /**
349
+ * Creates a chart after config has changed,
350
+ * or, the element has been connected to the DOM
351
+ * @returns {void}
352
+ */
353
+ createChart() {
354
+ const ctx = this.canvas.getContext('2d');
355
+ if (ctx && this.config) {
356
+ // Are we reusing an old chart canvas?
357
+ const isReusingCanvas = this.destroyChart();
358
+ // Preparing the resources before create chart
359
+ this.decorateConfig();
360
+ this.manageTitle();
361
+ // Create chart
362
+ this.chart = new window.Chart(ctx, this.config);
363
+ if (isReusingCanvas) {
364
+ // If we're reusing an old chart canvas, we need to resize it.
365
+ // Destroying a chart has some strange side-effects on the canvas.
366
+ this.chart.resize();
367
+ }
368
+ }
369
+ }
370
+ /**
371
+ * Destroys the chart.js object
372
+ * @returns True if a chart object has been destroyed
373
+ */
374
+ destroyChart() {
375
+ if (this.chart) {
376
+ // Destroy the chart
377
+ this.chart.destroy();
378
+ this.chart = null;
379
+ return true;
380
+ }
381
+ return false;
382
+ }
383
+ /**
384
+ * Re-renders the chart based on its config
385
+ * @param {ChartUpdateProps} config Additional configuration object for the update process.
386
+ * @returns {void}
387
+ */
388
+ renderChart(config = { duration: this.cssVarAsNumber('--animation-duration', '0') }) {
389
+ if (!this.chart || !this.config) {
390
+ return;
391
+ }
392
+ // Stop any chart.js animations
393
+ this.chart.stop();
394
+ // Decorate the config object
395
+ this.decorateConfig();
396
+ // Update internal layout
397
+ this.manageTitle();
398
+ // Update the chart
399
+ this.chart.update(config);
400
+ }
401
+ /**
402
+ * Update all data, title, scales, legends and re-render the chart based on its config
403
+ * @param {ChartUpdateProps=} config Additional configuration for control an animation in the update process.
404
+ * @returns {void}
405
+ */
406
+ updateChart(config) {
407
+ this.renderChart(config);
408
+ }
409
+ /**
410
+ * A `CSSResultGroup` that will be used
411
+ * to style the host, slotted children
412
+ * and the internal template of the element.
413
+ * @return CSS template
414
+ */
415
+ static get styles() {
416
+ return css `
417
+ :host {
418
+ display: block;
419
+ overflow: hidden;
420
+ position: relative;
421
+ }
422
+ :host::before {
423
+ content: '';
424
+ display: block;
425
+ padding-top: 60%;
426
+ min-height: 300px;
427
+ box-sizing: border-box;
428
+ }
429
+ [container] {
430
+ position: absolute;
431
+ top: 0;
432
+ right: 0;
433
+ bottom: 0;
434
+ left: 0;
435
+ }
436
+ ef-header {
437
+ margin-bottom: 12px;
438
+ }
439
+ canvas {
440
+ position: absolute;
441
+ top: 0;
442
+ right: 0;
443
+ bottom: 0;
444
+ left: 0;
445
+ }
446
+ `;
447
+ }
448
+ /**
449
+ * Handles resize event of the chart region
450
+ * @returns {void}
451
+ */
452
+ onResize() {
453
+ this.chart?.resize();
454
+ }
455
+ /**
456
+ * A `TemplateResult` that will be used
457
+ * to render the updated internal template.
458
+ * @return Render template
459
+ */
460
+ render() {
461
+ return html `
462
+ <ef-layout flex container>
463
+ <ef-header></ef-header>
464
+ <ef-layout part="chart" @resize="${this.onResize}">
465
+ <canvas id="canvas"></canvas>
466
+ </ef-layout>
467
+ </ef-layout>`;
468
+ }
469
+ };
470
+ __decorate([
471
+ property({ type: Object })
472
+ ], Chart.prototype, "config", void 0);
473
+ __decorate([
474
+ query('canvas')
475
+ ], Chart.prototype, "canvas", void 0);
476
+ __decorate([
477
+ query('ef-header')
478
+ ], Chart.prototype, "titleElement", void 0);
479
+ Chart = __decorate([
480
+ customElement('ef-chart', {
481
+ alias: 'sapphire-chart'
482
+ })
483
+ ], Chart);
484
+ export { Chart };
@@ -0,0 +1,3 @@
1
+ /// <reference types="chart.js" />
2
+ declare const plugins: Chart.PluginServiceRegistrationOptions;
3
+ export default plugins;
@@ -0,0 +1,191 @@
1
+ const CHART = window.Chart;
2
+ const getPluginConfig = (chart) => {
3
+ return chart.config.options?.plugins?.centerLabel;
4
+ };
5
+ /**
6
+ * Draw line
7
+ * @param {DoughnutChart} chart doughnut chart
8
+ * @param {MetaData[]} active active data
9
+ * @returns {void}
10
+ */
11
+ const drawItemBorder = function (chart, active) {
12
+ if (!chart.data.datasets) {
13
+ return;
14
+ }
15
+ if (active?.length) {
16
+ const ctx = chart.ctx;
17
+ const chartItem = active[0];
18
+ const vm = chartItem._view;
19
+ const datasets = chart.data.datasets[chartItem._datasetIndex];
20
+ vm.backgroundColor = datasets.backgroundColor[chartItem._index];
21
+ vm.backgroundColor = CHART.helpers.getHoverColor(vm.backgroundColor); // we need to make color bolder
22
+ vm.borderWidth = (datasets.borderWidth || chart.config.options?.elements?.arc?.borderWidth);
23
+ vm.borderColor = (getComputedStyle(chart.canvas).getPropertyValue('--doughnut-border-color') || CHART.defaults.global.defaultFontColor);
24
+ const sA = vm.startAngle;
25
+ const eA = vm.endAngle;
26
+ if (ctx) {
27
+ ctx.beginPath();
28
+ ctx.arc(vm.x, vm.y, vm.outerRadius, sA, eA);
29
+ ctx.arc(vm.x, vm.y, vm.innerRadius, eA, sA, true);
30
+ ctx.closePath();
31
+ ctx.strokeStyle = vm.borderColor;
32
+ ctx.lineWidth = vm.borderWidth;
33
+ ctx.fillStyle = vm.backgroundColor;
34
+ ctx.fill();
35
+ ctx.lineJoin = 'bevel';
36
+ if (vm.borderWidth) {
37
+ ctx.stroke();
38
+ }
39
+ }
40
+ }
41
+ };
42
+ const plugins = {
43
+ beforeEvent: function (chart, event) {
44
+ if (!getPluginConfig(chart)) {
45
+ return;
46
+ }
47
+ switch (event.type) {
48
+ case 'click':
49
+ // chart._select stores a segment that is clicked
50
+ if (!chart._select) {
51
+ chart._select = [];
52
+ }
53
+ if (chart.active.length) {
54
+ if (chart._select.length && chart._select[0]._datasetIndex === chart.active[0]._datasetIndex
55
+ && chart._select[0]._index === chart.active[0]._index) {
56
+ // reset value if user clicked on selected segment
57
+ chart._select = [];
58
+ }
59
+ else {
60
+ // set segment that user clicked
61
+ chart._select = chart.active.slice(0);
62
+ }
63
+ }
64
+ else {
65
+ chart._select = [];
66
+ }
67
+ chart.draw();
68
+ break;
69
+ default:
70
+ break;
71
+ }
72
+ },
73
+ beforeDraw: function (chart) {
74
+ const config = getPluginConfig(chart);
75
+ if (!config) {
76
+ return;
77
+ }
78
+ // Set render hook function
79
+ let active = [];
80
+ if (chart._select) {
81
+ active = chart._select;
82
+ }
83
+ if (chart.active?.length) {
84
+ active = chart.active;
85
+ }
86
+ const renderText = config.onRenderLabel(chart, active);
87
+ // Get Texts
88
+ const centerConfig = config;
89
+ const texts = renderText || centerConfig.defaultText;
90
+ if (!texts) {
91
+ return;
92
+ }
93
+ // Get ctx from param
94
+ const ctx = chart.ctx;
95
+ // Get options from config
96
+ const canvas = chart.canvas;
97
+ const style = window.getComputedStyle(canvas);
98
+ const globalConfig = CHART.defaults.global;
99
+ const defaultFontStyle = globalConfig.defaultFontFamily;
100
+ const defaultColor = style.getPropertyValue('--doughnut-center-text-color') || globalConfig.defaultFontColor;
101
+ const backgroundColor = style.getPropertyValue('--doughnut-center-background-color');
102
+ const customFontSizePercent = parseInt(style.getPropertyValue('--doughnut-center-font-size'), 10) / 100; // font size in percentage
103
+ const centerX = (chart.chartArea.left + chart.chartArea.right) / 2;
104
+ const centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2;
105
+ // Render center background color
106
+ if (backgroundColor) {
107
+ ctx.arc(centerX, centerY, chart.innerRadius, 0, 2 * Math.PI);
108
+ ctx.fillStyle = backgroundColor;
109
+ ctx.fill();
110
+ }
111
+ const textAreaWidth = chart.innerRadius;
112
+ // Base font size is 30% and minus 4% per text lines ( if text has multiple lines ) of text area
113
+ const baseFontSize = textAreaWidth * (0.3 - (0.04 * (texts.length - 1)));
114
+ // Keep minimum font size equal 5% of text area
115
+ const computedFontSize = Math.max(textAreaWidth * 0.05, baseFontSize);
116
+ // Use font size ratio from user if --doughnut-center-font-size CSS variable is provided
117
+ const fontRatio = customFontSizePercent || computedFontSize / textAreaWidth;
118
+ const fontSizeToUse = textAreaWidth * fontRatio;
119
+ // Set font settings to draw it correctly.
120
+ ctx.textAlign = 'center';
121
+ ctx.textBaseline = 'middle';
122
+ ctx.fillStyle = defaultColor;
123
+ // Render texts
124
+ const fontLineHeight = fontSizeToUse * 1.5;
125
+ const fontSizeHeaderRatio = 1.15;
126
+ // Move Y position of text up according to text length
127
+ const offsetY = centerY - (texts.length - 1) * 0.5 * fontLineHeight;
128
+ const containerWidth = chart.innerRadius * 2;
129
+ const circlePadding = containerWidth * (texts.length <= 1 ? 0.4 : 0.5);
130
+ for (let i = 0; i < texts.length; i++) {
131
+ let targetFont;
132
+ if (texts[i].bold) {
133
+ targetFont = `bold ${fontSizeToUse * fontSizeHeaderRatio}px ${defaultFontStyle || ''}`;
134
+ }
135
+ else {
136
+ targetFont = `${fontSizeToUse}px ${defaultFontStyle || ''}`;
137
+ }
138
+ ctx.font = targetFont;
139
+ let targetText = texts[i].label;
140
+ if (ctx.measureText(targetText).width > containerWidth - circlePadding) {
141
+ const numText = targetText.length;
142
+ const numRatio = targetText.length / ctx.measureText(targetText).width;
143
+ const difSize = ctx.measureText(targetText).width - containerWidth + circlePadding;
144
+ let numCharacter = numText - Math.ceil(difSize * numRatio);
145
+ numCharacter = Math.max(1, numCharacter);
146
+ if (numCharacter) {
147
+ targetText = targetText.slice(0, numCharacter);
148
+ targetText += '...';
149
+ }
150
+ }
151
+ ctx.fillText(targetText, centerX, offsetY + (i * fontLineHeight));
152
+ }
153
+ },
154
+ afterDatasetUpdate: function (chart) {
155
+ // Check chart already init selected.
156
+ if (chart.selected !== undefined) {
157
+ return;
158
+ }
159
+ // Check configs are ready to init selected
160
+ const config = getPluginConfig(chart);
161
+ if (!config || !config.selected || !chart.data.datasets) {
162
+ return;
163
+ }
164
+ const selectedIndex = Number(config.selected?.index);
165
+ const datasetIndex = Number(config.selected.datasetIndex || 0);
166
+ const visibleIndexes = chart.getVisibleDatasetCount() - 1;
167
+ // Validate index and datasetIndex
168
+ if (isNaN(selectedIndex) || (isNaN(datasetIndex) || datasetIndex < 0 || datasetIndex > visibleIndexes)) {
169
+ return;
170
+ }
171
+ // Set selected item to the chart
172
+ const items = chart.getDatasetMeta(datasetIndex).data[selectedIndex];
173
+ chart.selected = items ? [items] : [];
174
+ },
175
+ afterDraw: function (chart) {
176
+ if (getPluginConfig(chart)) {
177
+ // Draw active element
178
+ // Note: use logic from chart.js - chart.js/src/elements/element.arc.js :draw()
179
+ // hover
180
+ drawItemBorder(chart, chart.active);
181
+ // selected
182
+ if (chart.selected?.length) {
183
+ chart._select = chart.selected;
184
+ chart.selected = [];
185
+ }
186
+ // active
187
+ drawItemBorder(chart, chart._select);
188
+ }
189
+ }
190
+ };
191
+ export default plugins;
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/header/themes/halo/dark';
2
+ import '@refinitiv-ui/elements/lib/layout/themes/halo/dark';
3
+
4
+ elf.customStyles.define('ef-chart', ':host{--grid-line-color:rgba(51, 51, 51, 0.5);--zero-line-color:rgba(51, 51, 51, 0.5);--animation-duration:1000;--line-width:2px;--line-tension:0;--multi-dataset-border-color:#1A1A1A;--tooltip-background-color:rgba(204, 204, 204, 0.9);--tooltip-title-color:#0D0D0D;--tooltip-body-color:#0D0D0D;--tooltip-border-radius:0px;--tooltip-caret-size:7px;--tooltip-padding-x:7px;--tooltip-padding-y:5px;--tooltip-title-spacing:0;--legend-key-box-width:4px;--chart-color-1:#6678FF;--chart-color-2:#FFFFFF;--chart-color-3:#FFC800;--chart-color-4:#9064CD;--chart-color-5:#00D0D4;--chart-color-6:#FF5000;--chart-color-7:#00C389;--chart-color-8:#EA2E6C;font-size:12rem;--tooltip-background-color:#FFFFFF;--tooltip-title-color:#0D0D0D;--tooltip-body-color:#0D0D0D;--tooltip-padding-x:8px;--tooltip-padding-y:4px;--chart-color-1:#6678FF;--chart-color-2:#FFFFFF;--chart-color-3:#FFC800;--chart-color-4:#9064CD;--chart-color-5:#00D0D4;--chart-color-6:#FF5000;--chart-color-7:#00C389;--chart-color-8:#EA2E6C;--chart-color-9:#999999;--chart-color-10:#3BBAFF;--chart-color-11:#198C8C;--chart-color-12:#C36241;--chart-color-13:#CCD2FF;--chart-color-14:#808080;--chart-color-15:#FFDE66;--chart-color-16:#BCA2E1;--chart-color-17:#59DFE1;--chart-color-18:#FF9666;--chart-color-19:#6CEFC8;--chart-color-20:#F281A7;--chart-color-21:#CCCCCC;--chart-color-22:#89D5FF;--chart-color-23:#75BABA;--chart-color-24:#DBA08D;--chart-color-25:#F6ABC4}');
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/header/themes/halo/light';
2
+ import '@refinitiv-ui/elements/lib/layout/themes/halo/light';
3
+
4
+ elf.customStyles.define('ef-chart', ':host{--grid-line-color:rgba(224, 224, 224, 0.5);--zero-line-color:rgba(224, 224, 224, 0.5);--animation-duration:1000;--line-width:2px;--line-tension:0;--multi-dataset-border-color:#FAFAFA;--tooltip-background-color:rgba(13, 13, 13, 0.9);--tooltip-title-color:#FFFFFF;--tooltip-body-color:#FFFFFF;--tooltip-border-radius:0px;--tooltip-caret-size:7px;--tooltip-padding-x:7px;--tooltip-padding-y:5px;--tooltip-title-spacing:0;--legend-key-box-width:4px;--chart-color-1:#334BFF;--chart-color-2:#000000;--chart-color-3:#7F6400;--chart-color-4:#71549F;--chart-color-5:#007678;--chart-color-6:#CC4000;--chart-color-7:#007653;--chart-color-8:#D22962;font-size:12rem;--tooltip-background-color:#FFF4CC;--tooltip-title-color:#0D0D0D;--tooltip-body-color:#0D0D0D;--tooltip-padding-x:8px;--tooltip-padding-y:4px;--chart-color-1:#334BFF;--chart-color-2:#000000;--chart-color-3:#7F6400;--chart-color-4:#71549F;--chart-color-5:#007678;--chart-color-6:#CC4000;--chart-color-7:#007653;--chart-color-8:#D22962;--chart-color-9:#595959;--chart-color-10:#236F99;--chart-color-11:#147070;--chart-color-12:#AF583A;--chart-color-13:#0F1E8A;--chart-color-14:#737373;--chart-color-15:#4C3C00;--chart-color-16:#563F77;--chart-color-17:#004E4F;--chart-color-18:#993000;--chart-color-19:#00432F;--chart-color-20:#A3204C;--chart-color-21:#404040;--chart-color-22:#174A66;--chart-color-23:#116262;--chart-color-24:#88442D;--chart-color-25:#5D122B}');