@refinitiv-ui/elements 5.3.3 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/lib/accordion/custom-elements.json +49 -0
  3. package/lib/accordion/custom-elements.md +18 -0
  4. package/lib/accordion/index.d.ts +76 -0
  5. package/lib/accordion/index.js +136 -0
  6. package/lib/accordion/themes/halo/dark/index.js +3 -0
  7. package/lib/accordion/themes/halo/light/index.js +3 -0
  8. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  9. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  10. package/lib/appstate-bar/custom-elements.json +49 -0
  11. package/lib/appstate-bar/custom-elements.md +22 -0
  12. package/lib/appstate-bar/index.d.ts +65 -0
  13. package/lib/appstate-bar/index.js +100 -0
  14. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  15. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  16. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  17. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  18. package/lib/autosuggest/custom-elements.json +233 -0
  19. package/lib/autosuggest/custom-elements.md +47 -0
  20. package/lib/autosuggest/helpers/types.d.ts +54 -0
  21. package/lib/autosuggest/helpers/types.js +1 -0
  22. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  23. package/lib/autosuggest/helpers/utils.js +75 -0
  24. package/lib/autosuggest/index.d.ts +534 -0
  25. package/lib/autosuggest/index.js +1251 -0
  26. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  27. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  28. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  29. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  30. package/lib/button/custom-elements.json +119 -0
  31. package/lib/button/custom-elements.md +23 -0
  32. package/lib/button/index.d.ts +132 -0
  33. package/lib/button/index.js +223 -0
  34. package/lib/button/themes/halo/dark/index.js +3 -0
  35. package/lib/button/themes/halo/light/index.js +3 -0
  36. package/lib/button/themes/solar/charcoal/index.js +3 -0
  37. package/lib/button/themes/solar/pearl/index.js +3 -0
  38. package/lib/button-bar/custom-elements.json +26 -0
  39. package/lib/button-bar/custom-elements.md +9 -0
  40. package/lib/button-bar/index.d.ts +76 -0
  41. package/lib/button-bar/index.js +155 -0
  42. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  43. package/lib/button-bar/themes/halo/light/index.js +3 -0
  44. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  45. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  46. package/lib/calendar/constants.d.ts +22 -0
  47. package/lib/calendar/constants.js +23 -0
  48. package/lib/calendar/custom-elements.json +199 -0
  49. package/lib/calendar/custom-elements.md +35 -0
  50. package/lib/calendar/index.d.ts +321 -0
  51. package/lib/calendar/index.js +906 -0
  52. package/lib/calendar/locales.d.ts +1 -0
  53. package/lib/calendar/locales.js +40 -0
  54. package/lib/calendar/themes/halo/dark/index.js +3 -0
  55. package/lib/calendar/themes/halo/light/index.js +3 -0
  56. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  57. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  58. package/lib/calendar/types.d.ts +29 -0
  59. package/lib/calendar/types.js +1 -0
  60. package/lib/calendar/utils.d.ts +42 -0
  61. package/lib/calendar/utils.js +119 -0
  62. package/lib/canvas/custom-elements.json +69 -0
  63. package/lib/canvas/custom-elements.md +27 -0
  64. package/lib/canvas/index.d.ts +100 -0
  65. package/lib/canvas/index.js +172 -0
  66. package/lib/canvas/themes/halo/dark/index.js +2 -0
  67. package/lib/canvas/themes/halo/light/index.js +2 -0
  68. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  69. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  70. package/lib/card/custom-elements.json +59 -0
  71. package/lib/card/custom-elements.md +24 -0
  72. package/lib/card/helpers/types.d.ts +12 -0
  73. package/lib/card/helpers/types.js +1 -0
  74. package/lib/card/index.d.ts +140 -0
  75. package/lib/card/index.js +246 -0
  76. package/lib/card/themes/halo/dark/index.js +5 -0
  77. package/lib/card/themes/halo/light/index.js +5 -0
  78. package/lib/card/themes/solar/charcoal/index.js +5 -0
  79. package/lib/card/themes/solar/pearl/index.js +5 -0
  80. package/lib/chart/custom-elements.json +42 -0
  81. package/lib/chart/custom-elements.md +16 -0
  82. package/lib/chart/helpers/index.d.ts +2 -0
  83. package/lib/chart/helpers/index.js +2 -0
  84. package/lib/chart/helpers/legend.d.ts +5 -0
  85. package/lib/chart/helpers/legend.js +78 -0
  86. package/lib/chart/helpers/merge.d.ts +15 -0
  87. package/lib/chart/helpers/merge.js +28 -0
  88. package/lib/chart/helpers/types.d.ts +69 -0
  89. package/lib/chart/helpers/types.js +1 -0
  90. package/lib/chart/index.d.ts +187 -0
  91. package/lib/chart/index.js +491 -0
  92. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  93. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  94. package/lib/chart/themes/halo/dark/index.js +4 -0
  95. package/lib/chart/themes/halo/light/index.js +4 -0
  96. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  97. package/lib/chart/themes/solar/pearl/index.js +4 -0
  98. package/lib/checkbox/custom-elements.json +67 -0
  99. package/lib/checkbox/custom-elements.md +18 -0
  100. package/lib/checkbox/index.d.ts +95 -0
  101. package/lib/checkbox/index.js +193 -0
  102. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  103. package/lib/checkbox/themes/halo/light/index.js +4 -0
  104. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  105. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  106. package/lib/clock/custom-elements.json +121 -0
  107. package/lib/clock/custom-elements.md +28 -0
  108. package/lib/clock/index.d.ts +319 -0
  109. package/lib/clock/index.js +581 -0
  110. package/lib/clock/themes/halo/dark/index.js +2 -0
  111. package/lib/clock/themes/halo/light/index.js +2 -0
  112. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  113. package/lib/clock/themes/solar/pearl/index.js +2 -0
  114. package/lib/clock/utils/TickManager.d.ts +14 -0
  115. package/lib/clock/utils/TickManager.js +66 -0
  116. package/lib/clock/utils/timestamps.d.ts +6 -0
  117. package/lib/clock/utils/timestamps.js +6 -0
  118. package/lib/collapse/custom-elements.json +79 -0
  119. package/lib/collapse/custom-elements.md +27 -0
  120. package/lib/collapse/index.d.ts +119 -0
  121. package/lib/collapse/index.js +197 -0
  122. package/lib/collapse/themes/halo/dark/index.js +5 -0
  123. package/lib/collapse/themes/halo/light/index.js +5 -0
  124. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  125. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  126. package/lib/color-dialog/custom-elements.json +193 -0
  127. package/lib/color-dialog/custom-elements.md +39 -0
  128. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  129. package/lib/color-dialog/elements/color-palettes.js +101 -0
  130. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  131. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  132. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  133. package/lib/color-dialog/elements/palettes.js +132 -0
  134. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  135. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  136. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  137. package/lib/color-dialog/helpers/value-model.js +141 -0
  138. package/lib/color-dialog/index.d.ts +232 -0
  139. package/lib/color-dialog/index.js +459 -0
  140. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  141. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  142. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  143. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  144. package/lib/combo-box/custom-elements.json +210 -0
  145. package/lib/combo-box/custom-elements.md +35 -0
  146. package/lib/combo-box/helpers/filter.d.ts +10 -0
  147. package/lib/combo-box/helpers/filter.js +29 -0
  148. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  149. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  150. package/lib/combo-box/helpers/types.d.ts +11 -0
  151. package/lib/combo-box/helpers/types.js +1 -0
  152. package/lib/combo-box/index.d.ts +523 -0
  153. package/lib/combo-box/index.js +1146 -0
  154. package/lib/combo-box/themes/halo/dark/index.js +8 -0
  155. package/lib/combo-box/themes/halo/light/index.js +8 -0
  156. package/lib/combo-box/themes/solar/charcoal/index.js +8 -0
  157. package/lib/combo-box/themes/solar/pearl/index.js +8 -0
  158. package/lib/counter/custom-elements.json +35 -0
  159. package/lib/counter/custom-elements.md +11 -0
  160. package/lib/counter/index.d.ts +89 -0
  161. package/lib/counter/index.js +152 -0
  162. package/lib/counter/themes/halo/dark/index.js +3 -0
  163. package/lib/counter/themes/halo/light/index.js +3 -0
  164. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  165. package/lib/counter/themes/solar/pearl/index.js +3 -0
  166. package/lib/counter/utils.d.ts +13 -0
  167. package/lib/counter/utils.js +52 -0
  168. package/lib/datetime-picker/custom-elements.json +333 -0
  169. package/lib/datetime-picker/custom-elements.md +49 -0
  170. package/lib/datetime-picker/index.d.ts +498 -0
  171. package/lib/datetime-picker/index.js +1164 -0
  172. package/lib/datetime-picker/locales.d.ts +8 -0
  173. package/lib/datetime-picker/locales.js +57 -0
  174. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  175. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  176. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  177. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  178. package/lib/datetime-picker/types.d.ts +3 -0
  179. package/lib/datetime-picker/types.js +1 -0
  180. package/lib/datetime-picker/utils.d.ts +55 -0
  181. package/lib/datetime-picker/utils.js +92 -0
  182. package/lib/dialog/custom-elements.json +136 -0
  183. package/lib/dialog/custom-elements.md +47 -0
  184. package/lib/dialog/draggable-element.d.ts +14 -0
  185. package/lib/dialog/draggable-element.js +221 -0
  186. package/lib/dialog/index.d.ts +199 -0
  187. package/lib/dialog/index.js +331 -0
  188. package/lib/dialog/themes/halo/dark/index.js +7 -0
  189. package/lib/dialog/themes/halo/light/index.js +7 -0
  190. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  191. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  192. package/lib/email-field/custom-elements.json +199 -0
  193. package/lib/email-field/custom-elements.md +35 -0
  194. package/lib/email-field/index.d.ts +152 -0
  195. package/lib/email-field/index.js +286 -0
  196. package/lib/email-field/themes/halo/dark/index.js +3 -0
  197. package/lib/email-field/themes/halo/light/index.js +3 -0
  198. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  199. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  200. package/lib/events.d.ts +121 -0
  201. package/lib/events.js +1 -0
  202. package/lib/flag/custom-elements.json +35 -0
  203. package/lib/flag/custom-elements.md +10 -0
  204. package/lib/flag/index.d.ts +94 -0
  205. package/lib/flag/index.js +166 -0
  206. package/lib/flag/themes/halo/dark/index.js +2 -0
  207. package/lib/flag/themes/halo/light/index.js +2 -0
  208. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  209. package/lib/flag/themes/solar/pearl/index.js +2 -0
  210. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  211. package/lib/flag/utils/FlagLoader.js +86 -0
  212. package/lib/header/custom-elements.json +36 -0
  213. package/lib/header/custom-elements.md +18 -0
  214. package/lib/header/index.d.ts +46 -0
  215. package/lib/header/index.js +73 -0
  216. package/lib/header/themes/halo/dark/index.js +2 -0
  217. package/lib/header/themes/halo/light/index.js +2 -0
  218. package/lib/header/themes/solar/charcoal/index.js +2 -0
  219. package/lib/header/themes/solar/pearl/index.js +2 -0
  220. package/lib/heatmap/custom-elements.json +151 -0
  221. package/lib/heatmap/custom-elements.md +26 -0
  222. package/lib/heatmap/helpers/color.d.ts +30 -0
  223. package/lib/heatmap/helpers/color.js +68 -0
  224. package/lib/heatmap/helpers/text.d.ts +26 -0
  225. package/lib/heatmap/helpers/text.js +91 -0
  226. package/lib/heatmap/helpers/track.d.ts +102 -0
  227. package/lib/heatmap/helpers/track.js +160 -0
  228. package/lib/heatmap/helpers/types.d.ts +40 -0
  229. package/lib/heatmap/helpers/types.js +1 -0
  230. package/lib/heatmap/index.d.ts +453 -0
  231. package/lib/heatmap/index.js +1103 -0
  232. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  233. package/lib/heatmap/themes/halo/light/index.js +4 -0
  234. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  235. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  236. package/lib/icon/custom-elements.json +36 -0
  237. package/lib/icon/custom-elements.md +8 -0
  238. package/lib/icon/index.d.ts +88 -0
  239. package/lib/icon/index.js +169 -0
  240. package/lib/icon/themes/halo/dark/index.js +2 -0
  241. package/lib/icon/themes/halo/light/index.js +2 -0
  242. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  243. package/lib/icon/themes/solar/pearl/index.js +2 -0
  244. package/lib/icon/utils/IconLoader.d.ts +52 -0
  245. package/lib/icon/utils/IconLoader.js +93 -0
  246. package/lib/index.d.ts +3 -0
  247. package/lib/index.js +3 -0
  248. package/lib/interactive-chart/custom-elements.json +86 -0
  249. package/lib/interactive-chart/custom-elements.md +32 -0
  250. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  251. package/lib/interactive-chart/helpers/merge.js +28 -0
  252. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  253. package/lib/interactive-chart/helpers/types.js +6 -0
  254. package/lib/interactive-chart/index.d.ts +380 -0
  255. package/lib/interactive-chart/index.js +1090 -0
  256. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  257. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  258. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  259. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  260. package/lib/item/custom-elements.json +151 -0
  261. package/lib/item/custom-elements.md +29 -0
  262. package/lib/item/helpers/types.d.ts +57 -0
  263. package/lib/item/helpers/types.js +1 -0
  264. package/lib/item/index.d.ts +158 -0
  265. package/lib/item/index.js +271 -0
  266. package/lib/item/themes/halo/dark/index.js +4 -0
  267. package/lib/item/themes/halo/light/index.js +4 -0
  268. package/lib/item/themes/solar/charcoal/index.js +4 -0
  269. package/lib/item/themes/solar/pearl/index.js +4 -0
  270. package/lib/jsx.d.ts +223 -0
  271. package/lib/label/custom-elements.json +52 -0
  272. package/lib/label/custom-elements.md +11 -0
  273. package/lib/label/index.d.ts +102 -0
  274. package/lib/label/index.js +244 -0
  275. package/lib/label/themes/halo/dark/index.js +3 -0
  276. package/lib/label/themes/halo/light/index.js +3 -0
  277. package/lib/label/themes/solar/charcoal/index.js +3 -0
  278. package/lib/label/themes/solar/pearl/index.js +3 -0
  279. package/lib/layout/custom-elements.json +163 -0
  280. package/lib/layout/custom-elements.md +26 -0
  281. package/lib/layout/index.d.ts +107 -0
  282. package/lib/layout/index.js +212 -0
  283. package/lib/layout/themes/halo/dark/index.js +2 -0
  284. package/lib/layout/themes/halo/light/index.js +2 -0
  285. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  286. package/lib/layout/themes/solar/pearl/index.js +2 -0
  287. package/lib/led-gauge/custom-elements.json +113 -0
  288. package/lib/led-gauge/custom-elements.md +17 -0
  289. package/lib/led-gauge/index.d.ts +143 -0
  290. package/lib/led-gauge/index.js +437 -0
  291. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  292. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  293. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  294. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  295. package/lib/list/custom-elements.json +111 -0
  296. package/lib/list/custom-elements.md +30 -0
  297. package/lib/list/extensible-function.d.ts +8 -0
  298. package/lib/list/extensible-function.js +13 -0
  299. package/lib/list/helpers/list-renderer.d.ts +9 -0
  300. package/lib/list/helpers/list-renderer.js +35 -0
  301. package/lib/list/helpers/types.d.ts +3 -0
  302. package/lib/list/helpers/types.js +1 -0
  303. package/lib/list/index.d.ts +292 -0
  304. package/lib/list/index.js +600 -0
  305. package/lib/list/renderer.d.ts +36 -0
  306. package/lib/list/renderer.js +9 -0
  307. package/lib/list/themes/halo/dark/index.js +3 -0
  308. package/lib/list/themes/halo/light/index.js +3 -0
  309. package/lib/list/themes/solar/charcoal/index.js +3 -0
  310. package/lib/list/themes/solar/pearl/index.js +3 -0
  311. package/lib/loader/custom-elements.json +9 -0
  312. package/lib/loader/custom-elements.md +5 -0
  313. package/lib/loader/index.d.ts +41 -0
  314. package/lib/loader/index.js +61 -0
  315. package/lib/loader/themes/halo/dark/index.js +2 -0
  316. package/lib/loader/themes/halo/light/index.js +2 -0
  317. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  318. package/lib/loader/themes/solar/pearl/index.js +2 -0
  319. package/lib/multi-input/custom-elements.json +238 -0
  320. package/lib/multi-input/custom-elements.md +43 -0
  321. package/lib/multi-input/helpers/types.d.ts +11 -0
  322. package/lib/multi-input/helpers/types.js +1 -0
  323. package/lib/multi-input/index.d.ts +297 -0
  324. package/lib/multi-input/index.js +590 -0
  325. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  326. package/lib/multi-input/themes/halo/light/index.js +4 -0
  327. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  328. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  329. package/lib/notification/custom-elements.json +95 -0
  330. package/lib/notification/custom-elements.md +26 -0
  331. package/lib/notification/elements/notification-tray.d.ts +97 -0
  332. package/lib/notification/elements/notification-tray.js +167 -0
  333. package/lib/notification/elements/notification.d.ts +90 -0
  334. package/lib/notification/elements/notification.js +154 -0
  335. package/lib/notification/helpers/status.d.ts +30 -0
  336. package/lib/notification/helpers/status.js +130 -0
  337. package/lib/notification/helpers/types.d.ts +10 -0
  338. package/lib/notification/helpers/types.js +1 -0
  339. package/lib/notification/index.d.ts +2 -0
  340. package/lib/notification/index.js +2 -0
  341. package/lib/notification/themes/halo/dark/index.js +5 -0
  342. package/lib/notification/themes/halo/light/index.js +5 -0
  343. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  344. package/lib/notification/themes/solar/pearl/index.js +5 -0
  345. package/lib/number-field/custom-elements.json +200 -0
  346. package/lib/number-field/custom-elements.md +37 -0
  347. package/lib/number-field/index.d.ts +294 -0
  348. package/lib/number-field/index.js +707 -0
  349. package/lib/number-field/themes/halo/dark/index.js +3 -0
  350. package/lib/number-field/themes/halo/light/index.js +3 -0
  351. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  352. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  353. package/lib/overlay/custom-elements.json +345 -0
  354. package/lib/overlay/custom-elements.md +54 -0
  355. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  356. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  357. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  358. package/lib/overlay/elements/overlay-viewport.js +52 -0
  359. package/lib/overlay/elements/overlay.d.ts +403 -0
  360. package/lib/overlay/elements/overlay.js +1426 -0
  361. package/lib/overlay/helpers/functions.d.ts +13 -0
  362. package/lib/overlay/helpers/functions.js +16 -0
  363. package/lib/overlay/helpers/types.d.ts +97 -0
  364. package/lib/overlay/helpers/types.js +16 -0
  365. package/lib/overlay/index.d.ts +2 -0
  366. package/lib/overlay/index.js +1 -0
  367. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  368. package/lib/overlay/managers/backdrop-manager.js +96 -0
  369. package/lib/overlay/managers/close-manager.d.ts +54 -0
  370. package/lib/overlay/managers/close-manager.js +138 -0
  371. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  372. package/lib/overlay/managers/focus-manager.js +228 -0
  373. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  374. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  375. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  376. package/lib/overlay/managers/viewport-manager.js +211 -0
  377. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  378. package/lib/overlay/managers/zindex-manager.js +195 -0
  379. package/lib/overlay/themes/halo/dark/index.js +4 -0
  380. package/lib/overlay/themes/halo/light/index.js +4 -0
  381. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  382. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  383. package/lib/overlay-menu/custom-elements.json +194 -0
  384. package/lib/overlay-menu/custom-elements.md +44 -0
  385. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  386. package/lib/overlay-menu/helpers/types.js +1 -0
  387. package/lib/overlay-menu/index.d.ts +385 -0
  388. package/lib/overlay-menu/index.js +933 -0
  389. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  390. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  391. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  392. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  393. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  394. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  395. package/lib/pagination/custom-elements.json +93 -0
  396. package/lib/pagination/custom-elements.md +27 -0
  397. package/lib/pagination/helpers/types.d.ts +9 -0
  398. package/lib/pagination/helpers/types.js +1 -0
  399. package/lib/pagination/index.d.ts +207 -0
  400. package/lib/pagination/index.js +398 -0
  401. package/lib/pagination/themes/halo/dark/index.js +6 -0
  402. package/lib/pagination/themes/halo/light/index.js +6 -0
  403. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  404. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  405. package/lib/panel/custom-elements.json +39 -0
  406. package/lib/panel/custom-elements.md +11 -0
  407. package/lib/panel/index.d.ts +48 -0
  408. package/lib/panel/index.js +74 -0
  409. package/lib/panel/themes/halo/dark/index.js +2 -0
  410. package/lib/panel/themes/halo/light/index.js +2 -0
  411. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  412. package/lib/panel/themes/solar/pearl/index.js +2 -0
  413. package/lib/password-field/custom-elements.json +156 -0
  414. package/lib/password-field/custom-elements.md +31 -0
  415. package/lib/password-field/index.d.ts +141 -0
  416. package/lib/password-field/index.js +258 -0
  417. package/lib/password-field/themes/halo/dark/index.js +3 -0
  418. package/lib/password-field/themes/halo/light/index.js +3 -0
  419. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  420. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  421. package/lib/pill/custom-elements.json +95 -0
  422. package/lib/pill/custom-elements.md +22 -0
  423. package/lib/pill/index.d.ts +97 -0
  424. package/lib/pill/index.js +160 -0
  425. package/lib/pill/themes/halo/dark/index.js +3 -0
  426. package/lib/pill/themes/halo/light/index.js +3 -0
  427. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  428. package/lib/pill/themes/solar/pearl/index.js +3 -0
  429. package/lib/progress-bar/custom-elements.json +58 -0
  430. package/lib/progress-bar/custom-elements.md +18 -0
  431. package/lib/progress-bar/index.d.ts +82 -0
  432. package/lib/progress-bar/index.js +157 -0
  433. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  434. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  435. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  436. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  437. package/lib/radio-button/custom-elements.json +82 -0
  438. package/lib/radio-button/custom-elements.md +19 -0
  439. package/lib/radio-button/index.d.ts +122 -0
  440. package/lib/radio-button/index.js +257 -0
  441. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  442. package/lib/radio-button/radio-button-registry.js +93 -0
  443. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  444. package/lib/radio-button/themes/halo/light/index.js +3 -0
  445. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  446. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  447. package/lib/rating/custom-elements.json +58 -0
  448. package/lib/rating/custom-elements.md +17 -0
  449. package/lib/rating/index.d.ts +91 -0
  450. package/lib/rating/index.js +157 -0
  451. package/lib/rating/themes/halo/dark/index.js +2 -0
  452. package/lib/rating/themes/halo/light/index.js +2 -0
  453. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  454. package/lib/rating/themes/solar/pearl/index.js +2 -0
  455. package/lib/search-field/custom-elements.json +173 -0
  456. package/lib/search-field/custom-elements.md +33 -0
  457. package/lib/search-field/index.d.ts +134 -0
  458. package/lib/search-field/index.js +253 -0
  459. package/lib/search-field/themes/halo/dark/index.js +3 -0
  460. package/lib/search-field/themes/halo/light/index.js +3 -0
  461. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  462. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  463. package/lib/select/custom-elements.json +103 -0
  464. package/lib/select/custom-elements.md +24 -0
  465. package/lib/select/helpers/types.d.ts +3 -0
  466. package/lib/select/helpers/types.js +1 -0
  467. package/lib/select/index.d.ts +388 -0
  468. package/lib/select/index.js +942 -0
  469. package/lib/select/themes/halo/dark/index.js +5 -0
  470. package/lib/select/themes/halo/light/index.js +5 -0
  471. package/lib/select/themes/solar/charcoal/index.js +5 -0
  472. package/lib/select/themes/solar/pearl/index.js +5 -0
  473. package/lib/sidebar-layout/custom-elements.json +72 -0
  474. package/lib/sidebar-layout/custom-elements.md +22 -0
  475. package/lib/sidebar-layout/index.d.ts +69 -0
  476. package/lib/sidebar-layout/index.js +134 -0
  477. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  478. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  479. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  480. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  481. package/lib/slider/custom-elements.json +181 -0
  482. package/lib/slider/custom-elements.md +28 -0
  483. package/lib/slider/index.d.ts +409 -0
  484. package/lib/slider/index.js +1187 -0
  485. package/lib/slider/themes/halo/dark/index.js +3 -0
  486. package/lib/slider/themes/halo/light/index.js +3 -0
  487. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  488. package/lib/slider/themes/solar/pearl/index.js +3 -0
  489. package/lib/sparkline/custom-elements.json +59 -0
  490. package/lib/sparkline/custom-elements.md +16 -0
  491. package/lib/sparkline/index.d.ts +107 -0
  492. package/lib/sparkline/index.js +186 -0
  493. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  494. package/lib/sparkline/themes/halo/light/index.js +2 -0
  495. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  496. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  497. package/lib/swing-gauge/const.d.ts +22 -0
  498. package/lib/swing-gauge/const.js +26 -0
  499. package/lib/swing-gauge/custom-elements.json +109 -0
  500. package/lib/swing-gauge/custom-elements.md +17 -0
  501. package/lib/swing-gauge/helpers.d.ts +8 -0
  502. package/lib/swing-gauge/helpers.js +105 -0
  503. package/lib/swing-gauge/index.d.ts +294 -0
  504. package/lib/swing-gauge/index.js +762 -0
  505. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  506. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  507. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  508. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  509. package/lib/swing-gauge/types.d.ts +34 -0
  510. package/lib/swing-gauge/types.js +1 -0
  511. package/lib/tab/custom-elements.json +123 -0
  512. package/lib/tab/custom-elements.md +22 -0
  513. package/lib/tab/index.d.ts +118 -0
  514. package/lib/tab/index.js +208 -0
  515. package/lib/tab/themes/halo/dark/index.js +4 -0
  516. package/lib/tab/themes/halo/light/index.js +4 -0
  517. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  518. package/lib/tab/themes/solar/pearl/index.js +4 -0
  519. package/lib/tab-bar/custom-elements.json +52 -0
  520. package/lib/tab-bar/custom-elements.md +11 -0
  521. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  522. package/lib/tab-bar/helpers/animate.js +53 -0
  523. package/lib/tab-bar/index.d.ts +108 -0
  524. package/lib/tab-bar/index.js +218 -0
  525. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  526. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  527. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  528. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  529. package/lib/text-field/custom-elements.json +210 -0
  530. package/lib/text-field/custom-elements.md +37 -0
  531. package/lib/text-field/index.d.ts +193 -0
  532. package/lib/text-field/index.js +409 -0
  533. package/lib/text-field/themes/halo/dark/index.js +3 -0
  534. package/lib/text-field/themes/halo/light/index.js +3 -0
  535. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  536. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  537. package/lib/time-picker/custom-elements.json +124 -0
  538. package/lib/time-picker/custom-elements.md +28 -0
  539. package/lib/time-picker/index.d.ts +379 -0
  540. package/lib/time-picker/index.js +775 -0
  541. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  542. package/lib/time-picker/themes/halo/light/index.js +4 -0
  543. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  544. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  545. package/lib/toggle/custom-elements.json +82 -0
  546. package/lib/toggle/custom-elements.md +19 -0
  547. package/lib/toggle/index.d.ts +86 -0
  548. package/lib/toggle/index.js +152 -0
  549. package/lib/toggle/themes/halo/dark/index.js +2 -0
  550. package/lib/toggle/themes/halo/light/index.js +2 -0
  551. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  552. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  553. package/lib/tooltip/custom-elements.json +62 -0
  554. package/lib/tooltip/custom-elements.md +14 -0
  555. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  556. package/lib/tooltip/elements/title-tooltip.js +18 -0
  557. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  558. package/lib/tooltip/elements/tooltip-element.js +54 -0
  559. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  560. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  561. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  562. package/lib/tooltip/helpers/renderer.js +11 -0
  563. package/lib/tooltip/helpers/types.d.ts +23 -0
  564. package/lib/tooltip/helpers/types.js +1 -0
  565. package/lib/tooltip/index.d.ts +232 -0
  566. package/lib/tooltip/index.js +477 -0
  567. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  568. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  569. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  570. package/lib/tooltip/themes/halo/light/index.js +3 -0
  571. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  572. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  573. package/lib/tornado-chart/custom-elements.json +45 -0
  574. package/lib/tornado-chart/custom-elements.md +18 -0
  575. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  576. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  577. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  578. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  579. package/lib/tornado-chart/index.d.ts +2 -0
  580. package/lib/tornado-chart/index.js +2 -0
  581. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  582. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  583. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  584. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  585. package/lib/tree/custom-elements.json +113 -0
  586. package/lib/tree/custom-elements.md +32 -0
  587. package/lib/tree/elements/tree-item.d.ts +96 -0
  588. package/lib/tree/elements/tree-item.js +179 -0
  589. package/lib/tree/elements/tree.d.ts +201 -0
  590. package/lib/tree/elements/tree.js +412 -0
  591. package/lib/tree/helpers/filter.d.ts +8 -0
  592. package/lib/tree/helpers/filter.js +33 -0
  593. package/lib/tree/helpers/renderer.d.ts +5 -0
  594. package/lib/tree/helpers/renderer.js +33 -0
  595. package/lib/tree/helpers/types.d.ts +25 -0
  596. package/lib/tree/helpers/types.js +1 -0
  597. package/lib/tree/index.d.ts +4 -0
  598. package/lib/tree/index.js +3 -0
  599. package/lib/tree/managers/tree-manager.d.ts +248 -0
  600. package/lib/tree/managers/tree-manager.js +395 -0
  601. package/lib/tree/themes/halo/dark/index.js +7 -0
  602. package/lib/tree/themes/halo/light/index.js +7 -0
  603. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  604. package/lib/tree/themes/solar/pearl/index.js +7 -0
  605. package/lib/tree-select/custom-elements.json +107 -0
  606. package/lib/tree-select/custom-elements.md +26 -0
  607. package/lib/tree-select/helpers/types.d.ts +4 -0
  608. package/lib/tree-select/helpers/types.js +1 -0
  609. package/lib/tree-select/index.d.ts +402 -0
  610. package/lib/tree-select/index.js +890 -0
  611. package/lib/tree-select/themes/halo/dark/index.js +12 -0
  612. package/lib/tree-select/themes/halo/light/index.js +12 -0
  613. package/lib/tree-select/themes/solar/charcoal/index.js +12 -0
  614. package/lib/tree-select/themes/solar/pearl/index.js +12 -0
  615. package/lib/version.d.ts +1 -0
  616. package/lib/version.js +1 -0
  617. package/package.json +298 -15
@@ -0,0 +1,477 @@
1
+ var Tooltip_1;
2
+ import { __decorate } from "tslib";
3
+ import { BasicElement, html, css, matches } from '@refinitiv-ui/core';
4
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
5
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
6
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
7
+ import { VERSION } from '../version.js';
8
+ import { isSlotEmpty } from '@refinitiv-ui/utils/lib/is-slot-empty.js';
9
+ import '../overlay/index.js';
10
+ import './elements/title-tooltip.js';
11
+ import { register, deregister } from './managers/tooltip-manager.js';
12
+ import { tooltipRenderer } from './helpers/renderer.js';
13
+ import { register as registerOverflowTooltip } from './helpers/overflow-tooltip.js';
14
+ const TooltipPositionMap = {
15
+ 'auto': ['bottom-start', 'top-start'],
16
+ 'above': ['top-middle'],
17
+ 'right': ['right-middle'],
18
+ 'below': ['bottom-middle'],
19
+ 'left': ['left-middle']
20
+ };
21
+ /**
22
+ * Tooltip displays extra information when the
23
+ * user hovers the pointer over an item.
24
+ */
25
+ let Tooltip = Tooltip_1 = class Tooltip extends BasicElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.matchTarget = null;
29
+ this.matchTargetRect = null;
30
+ this.showDelay = 300;
31
+ this.hideDelay = 150;
32
+ this.clicked = false;
33
+ /**
34
+ * CSS selector to match the tooltip
35
+ */
36
+ this.selector = '';
37
+ /**
38
+ * The position of the tooltip. Use the following values:
39
+ * `auto` (default) - display based on mouse enter coordinates
40
+ * `above` - display above the element
41
+ * `right` - display to the right of the element
42
+ * `below` - display beneath the element
43
+ * `left` - display to the left of the element
44
+ */
45
+ this.position = 'auto';
46
+ /**
47
+ * Set the transition style.
48
+ * Value can be `fade`, `zoom`, `slide-down`, `slide-up`, `slide-right`,
49
+ * `slide-left`, `slide-right-down`, `slide-right-up`, `slide-left-down`, `slide-left-up`, or null in case of no transition
50
+ * @type {TooltipTransitionStyle}
51
+ */
52
+ this.transitionStyle = 'fade';
53
+ this._x = 0;
54
+ this._y = 0;
55
+ this._positionTarget = null;
56
+ this._opened = false;
57
+ /**
58
+ * Clear all timers
59
+ * @returns {void}
60
+ */
61
+ this.reset = () => {
62
+ window.clearTimeout(this.timerTimeout);
63
+ };
64
+ /**
65
+ * Reset tooltip
66
+ * @returns {void}
67
+ */
68
+ this.resetTooltip = () => {
69
+ this.hideTooltip();
70
+ };
71
+ /**
72
+ * Run when mouse is moving over the document
73
+ * @param event Mouse move event
74
+ * @param paths Event paths
75
+ * @returns {void}
76
+ */
77
+ this.onMouseMove = (event, paths) => {
78
+ this.showTooltip(paths, event.clientX, event.clientY);
79
+ };
80
+ /**
81
+ * Run when document click or contextmenu event happens
82
+ * @returns {void}
83
+ */
84
+ this.onClick = () => {
85
+ this.clicked = true;
86
+ this.hideTooltip();
87
+ };
88
+ /**
89
+ * Run when document mouse out event happens
90
+ * @returns {void}
91
+ */
92
+ this.onMouseOut = ({ relatedTarget }) => {
93
+ // document mouesemove, mouseleave and blur are not fired over iframe
94
+ // therefore create a special case for iframe to hide the tooltip
95
+ /* istanbul ignore next */
96
+ if (Tooltip_1.isIframe(relatedTarget)) {
97
+ this.resetTooltip();
98
+ }
99
+ };
100
+ }
101
+ /**
102
+ * Element version number
103
+ * @returns version number
104
+ */
105
+ static get version() {
106
+ return VERSION;
107
+ }
108
+ /**
109
+ * A `CSSResultGroup` that will be used
110
+ * to style the host, slotted children
111
+ * and the internal template of the element.
112
+ * @return CSS template
113
+ */
114
+ static get styles() {
115
+ return css `
116
+ :host {
117
+ display: contents;
118
+ position: absolute;
119
+ max-width: 0;
120
+ max-height: 0;
121
+ min-width: 0;
122
+ min-height: 0;
123
+ flex: none;
124
+ visibility: hidden;
125
+ }
126
+ [part=tooltip] {
127
+ visibility: visible;
128
+ overflow: visible;
129
+ }
130
+ [part=position-adjuster] {
131
+ position: fixed;
132
+ z-index: -1;
133
+ top: 0;
134
+ left: 0;
135
+ visibility: hidden;
136
+ }
137
+ `;
138
+ }
139
+ /**
140
+ * True if an element is an iframe
141
+ * @param relatedTarget Element to check
142
+ * @returns isIframe
143
+ */
144
+ static isIframe(relatedTarget) {
145
+ return relatedTarget !== null && relatedTarget.localName === 'iframe';
146
+ }
147
+ /**
148
+ * Check if the match target has moved position
149
+ * @param matchTargetRect Match target rect
150
+ * @param lastMatchTarget Previous match target
151
+ * @returns matches
152
+ */
153
+ static elementHasMoved(matchTargetRect, lastMatchTarget) {
154
+ if (lastMatchTarget === null) {
155
+ return true;
156
+ }
157
+ return lastMatchTarget.top !== matchTargetRect.top || lastMatchTarget.left !== matchTargetRect.left;
158
+ }
159
+ /**
160
+ * Set tooltip y coordinate
161
+ * @param x X coordinate
162
+ */
163
+ set x(x) {
164
+ const oldX = this._x;
165
+ if (oldX !== x) {
166
+ this._x = x;
167
+ this.requestUpdate('x', oldX);
168
+ }
169
+ }
170
+ /**
171
+ * Set tooltip y coordinate
172
+ * @param y Y coordinate
173
+ */
174
+ set y(y) {
175
+ const oldY = this._y;
176
+ if (oldY !== y) {
177
+ this._y = y;
178
+ this.requestUpdate('y', oldY);
179
+ }
180
+ }
181
+ /**
182
+ * Set tooltip position target
183
+ * @param positionTarget Position target
184
+ */
185
+ set positionTarget(positionTarget) {
186
+ const oldPositionTarget = this._positionTarget;
187
+ if (positionTarget !== oldPositionTarget) {
188
+ this._positionTarget = positionTarget;
189
+ this.requestUpdate('positionTarget', oldPositionTarget);
190
+ }
191
+ }
192
+ /**
193
+ * Run when opened attribute has changed. Map to popup window
194
+ * @param opened True if popup should be opened
195
+ * @returns {void}
196
+ */
197
+ setOpened(opened) {
198
+ const oldOpened = this._opened;
199
+ if (oldOpened !== opened) {
200
+ this._opened = opened;
201
+ this.requestUpdate('opened', oldOpened);
202
+ }
203
+ }
204
+ connectedCallback() {
205
+ super.connectedCallback();
206
+ register(this, {
207
+ mousemove: this.reset,
208
+ mousemoveThrottled: this.onMouseMove,
209
+ click: this.onClick,
210
+ mouseout: this.onMouseOut,
211
+ mouseleave: this.resetTooltip,
212
+ wheel: this.resetTooltip,
213
+ keydown: this.resetTooltip,
214
+ blur: this.resetTooltip
215
+ });
216
+ }
217
+ disconnectedCallback() {
218
+ deregister(this);
219
+ this.setOpened(false);
220
+ this.reset();
221
+ this.matchTarget = null;
222
+ this.matchTargetRect = null;
223
+ this.positionTarget = null;
224
+ super.disconnectedCallback();
225
+ }
226
+ firstUpdated(changedProperties) {
227
+ super.firstUpdated(changedProperties);
228
+ this.showDelay = parseInt(this.getComputedVariable('--show-delay', '300'), 10);
229
+ this.hideDelay = parseInt(this.getComputedVariable('--hide-delay', '150'), 10);
230
+ }
231
+ /**
232
+ * Check whether an element matches by condition
233
+ * If condition is not defined, checks by CSS selector
234
+ * @param element Element to check
235
+ * @param paths Event paths
236
+ * @returns true if element matches
237
+ */
238
+ isMatchElement(element, paths) {
239
+ if (this.condition) {
240
+ return this.condition(element, paths);
241
+ }
242
+ if (this.selector) {
243
+ return matches(element, this.selector);
244
+ }
245
+ return false;
246
+ }
247
+ /**
248
+ * Return true if the target matches condition. False otherwise
249
+ * @param paths Target to match against
250
+ * @returns matched element or null
251
+ */
252
+ getMatchedElement(paths) {
253
+ if (!this.condition && !this.selector) {
254
+ return null;
255
+ }
256
+ const l = paths.length;
257
+ for (let i = 0; i < l; i += 1) {
258
+ const node = paths[i];
259
+ if (node.nodeType !== Node.ELEMENT_NODE) {
260
+ continue;
261
+ }
262
+ if (node === document.body || node === document.documentElement) {
263
+ return null;
264
+ }
265
+ const element = node;
266
+ if (this.isMatchElement(element, paths)) {
267
+ return element;
268
+ }
269
+ }
270
+ return null;
271
+ }
272
+ /**
273
+ * Check if the autosuggest has content
274
+ * @returns {Boolean} content exists
275
+ * @private
276
+ */
277
+ hasSlotContent() {
278
+ if (this.contentNodes) {
279
+ /* show the slot. Default slotted content cannot work with tooltip or renderer */
280
+ return false;
281
+ }
282
+ return isSlotEmpty(this.contentSlot);
283
+ }
284
+ /**
285
+ * Get content off the target element
286
+ * @param target Target to check against
287
+ * @returns contentNode or null
288
+ */
289
+ getContentNode(target) {
290
+ let content;
291
+ if (typeof this.renderer === 'function') {
292
+ content = this.renderer(target);
293
+ }
294
+ else {
295
+ content = tooltipRenderer(target);
296
+ }
297
+ if (typeof content === 'string' && content) {
298
+ return document.createTextNode(content);
299
+ }
300
+ if (content instanceof HTMLElement) {
301
+ return content.cloneNode(true);
302
+ }
303
+ if (content instanceof DocumentFragment) {
304
+ return content.cloneNode(true);
305
+ }
306
+ return null;
307
+ }
308
+ /**
309
+ * Render content based on render to tooltip
310
+ * @param contentNode Content node to set
311
+ * @returns {void}
312
+ */
313
+ renderContentNode(contentNode) {
314
+ var _a;
315
+ if (contentNode instanceof Text && this.textContent === contentNode.textContent) {
316
+ return; /* Do not re-render the same text. Due to IE11 limitation we have to operate with text nodes */
317
+ }
318
+ if ((_a = this.contentNodes) === null || _a === void 0 ? void 0 : _a.length) {
319
+ this.contentNodes.forEach((node) => {
320
+ var _a;
321
+ (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(node);
322
+ });
323
+ }
324
+ if (contentNode instanceof DocumentFragment) {
325
+ this.contentNodes = [...contentNode.childNodes];
326
+ }
327
+ else {
328
+ this.contentNodes = [contentNode];
329
+ }
330
+ this.appendChild(contentNode);
331
+ }
332
+ /**
333
+ * Hide tooltip
334
+ * @returns {void}
335
+ */
336
+ hideTooltip() {
337
+ this.reset();
338
+ this.matchTarget = null;
339
+ this.matchTargetRect = null;
340
+ this.positionTarget = null;
341
+ this.setOpened(false);
342
+ }
343
+ /**
344
+ * Try to show the tooltip if it matches the target
345
+ * @param paths The paths leading to target
346
+ * @param x X mouse coordinate
347
+ * @param y Y mouse coordinate
348
+ * @returns {void}
349
+ */
350
+ showTooltip(paths, x, y) {
351
+ // composedPath is only available on the direct event
352
+ this.timerTimeout = window.setTimeout(() => {
353
+ const lastMatchTarget = this.matchTarget;
354
+ const matchTarget = this.getMatchedElement(paths);
355
+ this.matchTarget = matchTarget;
356
+ if (!matchTarget) {
357
+ this.setOpened(false);
358
+ return;
359
+ }
360
+ const matchTargetRect = matchTarget.getBoundingClientRect();
361
+ if (lastMatchTarget === matchTarget && !Tooltip_1.elementHasMoved(matchTargetRect, this.matchTargetRect)) {
362
+ return;
363
+ }
364
+ this.matchTargetRect = matchTargetRect;
365
+ this.clicked = false;
366
+ // adjust tooltip x & y vs clientX and clientY
367
+ const adjusterRect = this.positionAdjusterEl.getBoundingClientRect();
368
+ x = adjusterRect.left >= 0 ? x - adjusterRect.left : x;
369
+ y = adjusterRect.top >= 0 ? y - adjusterRect.top : y;
370
+ if (this.hasSlotContent()) {
371
+ this.showTooltipAtPosition(matchTarget, x, y);
372
+ return;
373
+ }
374
+ const contentNode = this.getContentNode(matchTarget);
375
+ if (contentNode) {
376
+ this.renderContentNode(contentNode);
377
+ this.showTooltipAtPosition(matchTarget, x, y);
378
+ return;
379
+ }
380
+ this.setOpened(false);
381
+ }, this.getTooltipShowDelay);
382
+ }
383
+ /**
384
+ * Get the delay to show tooltip
385
+ */
386
+ get getTooltipShowDelay() {
387
+ return this.clicked ? Math.round(this.hideDelay / 2) : this.opened ? this.hideDelay : this.showDelay;
388
+ }
389
+ /**
390
+ * Show the tooltip corresponding to the correct position
391
+ * @param matchTarget Target to show the tooltip against
392
+ * @param x X coordinate
393
+ * @param y Y coordinate
394
+ * @returns {void}
395
+ */
396
+ showTooltipAtPosition(matchTarget, x, y) {
397
+ switch (this.position) {
398
+ case 'above':
399
+ case 'right':
400
+ case 'below':
401
+ case 'left':
402
+ this.x = 0;
403
+ this.y = 0;
404
+ this.positionTarget = matchTarget;
405
+ break;
406
+ default:
407
+ this.positionTarget = null;
408
+ this.x = x;
409
+ this.y = y;
410
+ }
411
+ this.setOpened(true);
412
+ }
413
+ /**
414
+ * Get popup position based on tooltip position
415
+ */
416
+ get tipPosition() {
417
+ return TooltipPositionMap[this.position];
418
+ }
419
+ /**
420
+ * A `TemplateResult` that will be used
421
+ * to render the updated internal template.
422
+ * @returns Render template
423
+ */
424
+ render() {
425
+ return html `<ef-overlay
426
+ part="tooltip"
427
+ .noCancelOnEscKey=${true}
428
+ .noCancelOnOutsideClick=${true}
429
+ .withShadow=${true}
430
+ .noInteractionLock=${true}
431
+ .noFocusManagement=${true}
432
+ ?opened=${this._opened}
433
+ .position=${this.tipPosition}
434
+ .transitionStyle=${this.transitionStyle}
435
+ .positionTarget=${this._positionTarget}
436
+ .x=${this._x}
437
+ .y=${this._y}><slot id="contentSlot"></slot></ef-overlay><div part="position-adjuster"></div>`;
438
+ }
439
+ /**
440
+ * true if tooltip is opened, false otherwise
441
+ * @returns opened
442
+ */
443
+ get opened() {
444
+ return this._opened;
445
+ }
446
+ };
447
+ __decorate([
448
+ property({ type: String })
449
+ ], Tooltip.prototype, "selector", void 0);
450
+ __decorate([
451
+ property({ type: Function, attribute: false })
452
+ ], Tooltip.prototype, "condition", void 0);
453
+ __decorate([
454
+ property({ type: Function, attribute: false })
455
+ ], Tooltip.prototype, "renderer", void 0);
456
+ __decorate([
457
+ property({ type: String })
458
+ ], Tooltip.prototype, "position", void 0);
459
+ __decorate([
460
+ property({ type: String, attribute: 'transition-style' })
461
+ ], Tooltip.prototype, "transitionStyle", void 0);
462
+ __decorate([
463
+ query('[part=tooltip]')
464
+ ], Tooltip.prototype, "tooltip", void 0);
465
+ __decorate([
466
+ query('[part=position-adjuster]')
467
+ ], Tooltip.prototype, "positionAdjusterEl", void 0);
468
+ __decorate([
469
+ query('#contentSlot')
470
+ ], Tooltip.prototype, "contentSlot", void 0);
471
+ Tooltip = Tooltip_1 = __decorate([
472
+ customElement('ef-tooltip', {
473
+ alias: 'coral-tooltip'
474
+ })
475
+ ], Tooltip);
476
+ export * from './elements/tooltip-element.js';
477
+ export { registerOverflowTooltip, Tooltip };
@@ -0,0 +1,15 @@
1
+ import type { Tooltip } from '../index.js';
2
+ import type { DocumentCallbacks } from '../helpers/types';
3
+ /**
4
+ * Register the new tooltip
5
+ * @param tooltip Tooltip
6
+ * @param documentCallbacks Callback to attach on document and body
7
+ * @returns {void}
8
+ */
9
+ export declare const register: (tooltip: Tooltip, documentCallbacks: DocumentCallbacks) => void;
10
+ /**
11
+ * Deregister the tooltip
12
+ * @param tooltip Tooltip
13
+ * @returns {void}
14
+ */
15
+ export declare const deregister: (tooltip: Tooltip) => void;
@@ -0,0 +1,140 @@
1
+ import { TimeoutTaskRunner } from '@refinitiv-ui/utils/lib/async.js';
2
+ import { isIE } from '@refinitiv-ui/utils/lib/browser.js';
3
+ /**
4
+ * Tooltip manager is here to avoid setting multiple
5
+ * events on document and do expensive pre-processing
6
+ * in a common way
7
+ */
8
+ class TooltipManager {
9
+ constructor() {
10
+ this.registry = new Map();
11
+ /* 5 is chosen randomly to give long enough delay to avoid performance issues, but
12
+ short enough for not showing the default title
13
+ */
14
+ this.titleThrottler = new TimeoutTaskRunner(5);
15
+ /**
16
+ * @param event Mouse move event
17
+ * @returns {void}
18
+ */
19
+ this.onMouseMove = (event) => {
20
+ const paths = event.composedPath(); /* paths may be lost if used in schedule */
21
+ this.registry.forEach(({ mousemove }) => mousemove(event, paths));
22
+ this.titleThrottler.schedule(() => {
23
+ TooltipManager.overrideTitle(paths);
24
+ this.registry.forEach(({ mousemoveThrottled }) => mousemoveThrottled(event, paths));
25
+ });
26
+ };
27
+ /**
28
+ * @param event Mouse click or contextmenu event
29
+ * @returns {void}
30
+ */
31
+ this.onClick = (event) => {
32
+ this.registry.forEach(({ click }) => click(event));
33
+ };
34
+ /**
35
+ * @param event Mouse out event
36
+ * @returns {void}
37
+ */
38
+ this.onMouseOut = (event) => {
39
+ this.registry.forEach(({ mouseout }) => mouseout(event));
40
+ };
41
+ /**
42
+ * @param event Mouse leave event
43
+ * @returns {void}
44
+ */
45
+ this.onMouseLeave = (event) => {
46
+ this.registry.forEach(({ mouseleave }) => mouseleave(event));
47
+ };
48
+ /**
49
+ * @param event Wheel event
50
+ * @returns {void}
51
+ */
52
+ this.onWheel = (event) => {
53
+ this.registry.forEach(({ wheel }) => wheel(event));
54
+ };
55
+ /**
56
+ * @param event Keyboard event
57
+ * @returns {void}
58
+ */
59
+ this.onKeyDown = (event) => {
60
+ this.registry.forEach(({ keydown }) => keydown(event));
61
+ };
62
+ /**
63
+ * @param event Focus event
64
+ * @returns {void}
65
+ */
66
+ this.onBlur = (event) => {
67
+ this.registry.forEach(({ blur }) => blur(event));
68
+ };
69
+ }
70
+ /**
71
+ * Override default title attribute
72
+ * @param paths Event paths
73
+ * @returns {void}
74
+ */
75
+ static overrideTitle(paths) {
76
+ const l = paths.length;
77
+ for (let i = 0; i < l; i += 1) {
78
+ const node = paths[i];
79
+ if (node.nodeType !== Node.ELEMENT_NODE) {
80
+ continue;
81
+ }
82
+ if (node === document.body || node === document.documentElement) {
83
+ break;
84
+ }
85
+ const element = node;
86
+ const title = element.getAttribute('title');
87
+ if (title) {
88
+ element.title = title;
89
+ }
90
+ }
91
+ }
92
+ register(tooltip, documentCallbacks) {
93
+ if (!this.registry.size) {
94
+ // IE11 does not support event options
95
+ const supportOptions = !isIE;
96
+ const eventOptions = supportOptions ? { passive: true } : undefined;
97
+ document.addEventListener('mousemove', this.onMouseMove, eventOptions);
98
+ document.addEventListener('mouseout', this.onMouseOut, eventOptions);
99
+ document.addEventListener('mouseleave', this.onMouseLeave, eventOptions);
100
+ document.addEventListener('wheel', this.onWheel, eventOptions);
101
+ document.addEventListener('keydown', this.onKeyDown, eventOptions);
102
+ document.body.addEventListener('blur', this.onBlur, eventOptions);
103
+ const clickEventOptions = supportOptions ? { passive: true, capture: true } : true;
104
+ document.addEventListener('click', this.onClick, clickEventOptions);
105
+ document.addEventListener('contextmenu', this.onClick, clickEventOptions);
106
+ }
107
+ this.registry.set(tooltip, documentCallbacks);
108
+ }
109
+ deregister(tooltip) {
110
+ this.registry.delete(tooltip);
111
+ if (!this.registry.size) {
112
+ document.removeEventListener('mousemove', this.onMouseMove);
113
+ document.removeEventListener('mouseout', this.onMouseOut);
114
+ document.removeEventListener('mouseleave', this.onMouseLeave);
115
+ document.removeEventListener('wheel', this.onWheel);
116
+ document.removeEventListener('keydown', this.onKeyDown);
117
+ document.body.removeEventListener('blur', this.onBlur);
118
+ document.removeEventListener('click', this.onClick, true);
119
+ document.removeEventListener('contextmenu', this.onClick, true);
120
+ }
121
+ }
122
+ }
123
+ const tooltipManager = new TooltipManager();
124
+ /**
125
+ * Register the new tooltip
126
+ * @param tooltip Tooltip
127
+ * @param documentCallbacks Callback to attach on document and body
128
+ * @returns {void}
129
+ */
130
+ export const register = (tooltip, documentCallbacks) => {
131
+ tooltipManager.register(tooltip, documentCallbacks);
132
+ };
133
+ /**
134
+ * Deregister the tooltip
135
+ * @param tooltip Tooltip
136
+ * @returns {void}
137
+ */
138
+ export const deregister = (tooltip) => {
139
+ tooltipManager.deregister(tooltip);
140
+ };
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/overlay/themes/halo/dark';
2
+
3
+ elf.customStyles.define('ef-tooltip', ':host [part=tooltip]{--panel-background-color:#FFFFFF;pointer-events:none;border:1px solid hsla(220,12%,75%,.15);padding:4px 8px;background-color:#fff;border-radius:0;overflow:hidden;max-width:320px;overflow-wrap:break-word;word-wrap:break-word;margin:4px;border:none;min-height:18px;line-height:18px;color:#0d0d0d}:host(:not([position])) [part=tooltip],:host([position=auto]) [part=tooltip]{margin-top:20px;margin-left:0}');
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/overlay/themes/halo/light';
2
+
3
+ elf.customStyles.define('ef-tooltip', ':host [part=tooltip]{--panel-background-color:#FFF4CC;pointer-events:none;border:1px solid hsla(220,12%,75%,.15);padding:4px 8px;background-color:#fff4cc;border-radius:0;overflow:hidden;max-width:320px;overflow-wrap:break-word;word-wrap:break-word;margin:4px;border:none;min-height:18px;line-height:18px;color:#0d0d0d}:host(:not([position])) [part=tooltip],:host([position=auto]) [part=tooltip]{margin-top:20px;margin-left:0}');
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/overlay/themes/solar/charcoal';
2
+
3
+ elf.customStyles.define('ef-tooltip', ':host [part=tooltip]{--panel-background-color:#3C3C42;pointer-events:none;border:1px solid #000;padding:5px 8px;background-color:#3c3c42;border-radius:0;overflow:hidden;max-width:250px;overflow-wrap:break-word;word-wrap:break-word;margin:7px}:host(:not([position])) [part=tooltip],:host([position=auto]) [part=tooltip]{margin-top:20px;margin-left:0}');
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/overlay/themes/solar/pearl';
2
+
3
+ elf.customStyles.define('ef-tooltip', ':host [part=tooltip]{--panel-background-color:#FFFFFF;pointer-events:none;border:1px solid #a9afba;padding:5px 8px;background-color:#fff;border-radius:0;overflow:hidden;max-width:250px;overflow-wrap:break-word;word-wrap:break-word;margin:7px}:host(:not([position])) [part=tooltip],:host([position=auto]) [part=tooltip]{margin-top:20px;margin-left:0}');
@@ -0,0 +1,45 @@
1
+ {
2
+ "version": "experimental",
3
+ "tags": [
4
+ {
5
+ "name": "ef-tornado-chart",
6
+ "description": "A data visualization that helps to\nshow the differences or similarities between values",
7
+ "attributes": [
8
+ {
9
+ "name": "primary",
10
+ "description": "Primary bar chart legend text",
11
+ "type": "string | null"
12
+ },
13
+ {
14
+ "name": "secondary",
15
+ "description": "Secondary bar chart legend text",
16
+ "type": "string | null"
17
+ }
18
+ ],
19
+ "properties": [
20
+ {
21
+ "name": "primary",
22
+ "attribute": "primary",
23
+ "description": "Primary bar chart legend text",
24
+ "type": "string | null"
25
+ },
26
+ {
27
+ "name": "secondary",
28
+ "attribute": "secondary",
29
+ "description": "Secondary bar chart legend text",
30
+ "type": "string | null"
31
+ }
32
+ ],
33
+ "slots": [
34
+ {
35
+ "name": "header",
36
+ "description": "Any HTML contents to display at chart header section"
37
+ },
38
+ {
39
+ "name": "footer",
40
+ "description": "Any HTML contents to display at chart footer section"
41
+ }
42
+ ]
43
+ }
44
+ ]
45
+ }