@refinitiv-ui/elements 5.0.0-beta.3 → 5.0.0-dev.204

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 (596) hide show
  1. package/CHANGELOG.md +325 -73
  2. package/README.md +13 -2
  3. package/lib/accordion/custom-elements.json +0 -13
  4. package/lib/accordion/custom-elements.md +18 -0
  5. package/lib/accordion/index.d.ts +13 -10
  6. package/lib/accordion/index.js +15 -18
  7. package/lib/appstate-bar/custom-elements.json +1 -1
  8. package/lib/appstate-bar/custom-elements.md +22 -0
  9. package/lib/appstate-bar/index.d.ts +15 -6
  10. package/lib/appstate-bar/index.js +17 -11
  11. package/lib/autosuggest/custom-elements.json +24 -4
  12. package/lib/autosuggest/custom-elements.md +54 -0
  13. package/lib/autosuggest/helpers/types.d.ts +22 -1
  14. package/lib/autosuggest/helpers/types.js +0 -1
  15. package/lib/autosuggest/helpers/utils.d.ts +2 -2
  16. package/lib/autosuggest/helpers/utils.js +1 -3
  17. package/lib/autosuggest/index.d.ts +21 -9
  18. package/lib/autosuggest/index.js +45 -31
  19. package/lib/button/custom-elements.json +3 -3
  20. package/lib/button/custom-elements.md +23 -0
  21. package/lib/button/index.d.ts +27 -20
  22. package/lib/button/index.js +92 -74
  23. package/lib/button/themes/halo/dark/index.js +1 -1
  24. package/lib/button/themes/halo/light/index.js +1 -1
  25. package/lib/button/themes/solar/charcoal/index.js +1 -1
  26. package/lib/button/themes/solar/pearl/index.js +1 -1
  27. package/lib/button-bar/custom-elements.md +9 -0
  28. package/lib/button-bar/index.d.ts +60 -4
  29. package/lib/button-bar/index.js +164 -19
  30. package/lib/calendar/constants.d.ts +26 -0
  31. package/lib/calendar/constants.js +28 -0
  32. package/lib/calendar/custom-elements.json +8 -6
  33. package/lib/calendar/custom-elements.md +35 -0
  34. package/lib/calendar/index.d.ts +119 -21
  35. package/lib/calendar/index.js +512 -157
  36. package/lib/calendar/locales.d.ts +1 -31
  37. package/lib/calendar/locales.js +3 -107
  38. package/lib/calendar/themes/halo/dark/index.js +1 -1
  39. package/lib/calendar/themes/halo/light/index.js +1 -1
  40. package/lib/calendar/themes/solar/charcoal/index.js +1 -1
  41. package/lib/calendar/themes/solar/pearl/index.js +1 -1
  42. package/lib/calendar/types.d.ts +12 -13
  43. package/lib/calendar/types.js +1 -7
  44. package/lib/calendar/utils.d.ts +31 -1
  45. package/lib/calendar/utils.js +105 -3
  46. package/lib/canvas/custom-elements.json +9 -7
  47. package/lib/canvas/custom-elements.md +27 -0
  48. package/lib/canvas/index.d.ts +14 -6
  49. package/lib/canvas/index.js +17 -12
  50. package/lib/card/custom-elements.json +21 -9
  51. package/lib/card/custom-elements.md +24 -0
  52. package/lib/card/helpers/types.d.ts +1 -1
  53. package/lib/card/helpers/types.js +0 -1
  54. package/lib/card/index.d.ts +67 -20
  55. package/lib/card/index.js +132 -35
  56. package/lib/card/themes/halo/dark/index.js +1 -1
  57. package/lib/card/themes/halo/light/index.js +1 -1
  58. package/lib/card/themes/solar/charcoal/index.js +1 -1
  59. package/lib/card/themes/solar/pearl/index.js +1 -1
  60. package/lib/chart/custom-elements.json +3 -3
  61. package/lib/chart/custom-elements.md +16 -0
  62. package/lib/chart/helpers/index.d.ts +2 -0
  63. package/lib/chart/helpers/index.js +2 -0
  64. package/lib/chart/helpers/legend.d.ts +2 -2
  65. package/lib/chart/helpers/legend.js +2 -3
  66. package/lib/chart/helpers/merge.d.ts +15 -0
  67. package/lib/chart/helpers/merge.js +28 -0
  68. package/lib/chart/helpers/types.d.ts +40 -12
  69. package/lib/chart/helpers/types.js +0 -1
  70. package/lib/chart/index.d.ts +34 -26
  71. package/lib/chart/index.js +58 -55
  72. package/lib/chart/plugins/doughnut-center-label.js +4 -5
  73. package/lib/checkbox/custom-elements.json +4 -4
  74. package/lib/checkbox/custom-elements.md +18 -0
  75. package/lib/checkbox/index.d.ts +29 -14
  76. package/lib/checkbox/index.js +65 -34
  77. package/lib/checkbox/themes/halo/dark/index.js +1 -1
  78. package/lib/checkbox/themes/halo/light/index.js +1 -1
  79. package/lib/clock/custom-elements.json +21 -4
  80. package/lib/clock/custom-elements.md +28 -0
  81. package/lib/clock/index.d.ts +25 -6
  82. package/lib/clock/index.js +44 -18
  83. package/lib/clock/themes/halo/dark/index.js +1 -1
  84. package/lib/clock/themes/halo/light/index.js +1 -1
  85. package/lib/clock/themes/solar/charcoal/index.js +1 -1
  86. package/lib/clock/themes/solar/pearl/index.js +1 -1
  87. package/lib/clock/utils/TickManager.js +2 -3
  88. package/lib/clock/utils/timestamps.js +0 -1
  89. package/lib/collapse/custom-elements.md +27 -0
  90. package/lib/collapse/index.d.ts +15 -8
  91. package/lib/collapse/index.js +18 -13
  92. package/lib/color-dialog/custom-elements.json +29 -16
  93. package/lib/color-dialog/custom-elements.md +39 -0
  94. package/lib/color-dialog/elements/color-palettes.d.ts +13 -6
  95. package/lib/color-dialog/elements/color-palettes.js +16 -13
  96. package/lib/color-dialog/elements/grayscale-palettes.d.ts +13 -6
  97. package/lib/color-dialog/elements/grayscale-palettes.js +17 -13
  98. package/lib/color-dialog/elements/palettes.d.ts +15 -3
  99. package/lib/color-dialog/elements/palettes.js +65 -45
  100. package/lib/color-dialog/helpers/color-helpers.d.ts +7 -53
  101. package/lib/color-dialog/helpers/color-helpers.js +12 -110
  102. package/lib/color-dialog/helpers/value-model.d.ts +1 -1
  103. package/lib/color-dialog/helpers/value-model.js +18 -17
  104. package/lib/color-dialog/index.d.ts +27 -20
  105. package/lib/color-dialog/index.js +54 -45
  106. package/lib/combo-box/custom-elements.json +51 -17
  107. package/lib/combo-box/custom-elements.md +42 -0
  108. package/lib/combo-box/helpers/filter.d.ts +4 -4
  109. package/lib/combo-box/helpers/filter.js +0 -1
  110. package/lib/combo-box/helpers/keyboard-event.js +0 -1
  111. package/lib/combo-box/helpers/renderer.d.ts +8 -0
  112. package/lib/combo-box/helpers/renderer.js +24 -0
  113. package/lib/combo-box/helpers/types.d.ts +2 -2
  114. package/lib/combo-box/helpers/types.js +0 -1
  115. package/lib/combo-box/index.d.ts +63 -32
  116. package/lib/combo-box/index.js +102 -60
  117. package/lib/combo-box/themes/halo/dark/index.js +2 -3
  118. package/lib/combo-box/themes/halo/light/index.js +2 -3
  119. package/lib/combo-box/themes/solar/charcoal/index.js +2 -3
  120. package/lib/combo-box/themes/solar/pearl/index.js +2 -3
  121. package/lib/counter/custom-elements.json +39 -0
  122. package/lib/counter/custom-elements.md +11 -0
  123. package/lib/counter/index.d.ts +91 -0
  124. package/lib/counter/index.js +154 -0
  125. package/lib/counter/themes/halo/dark/index.js +3 -0
  126. package/lib/counter/themes/halo/light/index.js +3 -0
  127. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  128. package/lib/counter/themes/solar/pearl/index.js +3 -0
  129. package/lib/counter/utils.d.ts +13 -0
  130. package/lib/counter/utils.js +52 -0
  131. package/lib/datetime-picker/custom-elements.json +53 -24
  132. package/lib/datetime-picker/custom-elements.md +57 -0
  133. package/lib/datetime-picker/index.d.ts +34 -16
  134. package/lib/datetime-picker/index.js +56 -38
  135. package/lib/datetime-picker/locales.d.ts +1 -1
  136. package/lib/datetime-picker/locales.js +12 -2
  137. package/lib/datetime-picker/themes/solar/charcoal/index.js +1 -1
  138. package/lib/datetime-picker/themes/solar/pearl/index.js +1 -1
  139. package/lib/datetime-picker/types.d.ts +1 -1
  140. package/lib/datetime-picker/types.js +0 -1
  141. package/lib/datetime-picker/utils.js +1 -2
  142. package/lib/dialog/custom-elements.json +34 -12
  143. package/lib/dialog/custom-elements.md +47 -0
  144. package/lib/dialog/draggable-element.js +25 -16
  145. package/lib/dialog/index.d.ts +25 -21
  146. package/lib/dialog/index.js +36 -32
  147. package/lib/email-field/custom-elements.json +81 -94
  148. package/lib/email-field/custom-elements.md +37 -0
  149. package/lib/email-field/index.d.ts +47 -112
  150. package/lib/email-field/index.js +48 -241
  151. package/lib/email-field/themes/halo/dark/index.js +1 -1
  152. package/lib/email-field/themes/halo/light/index.js +1 -1
  153. package/lib/email-field/themes/solar/charcoal/index.js +1 -1
  154. package/lib/email-field/themes/solar/pearl/index.js +1 -1
  155. package/lib/events.d.ts +121 -0
  156. package/lib/events.js +1 -0
  157. package/lib/flag/custom-elements.md +10 -0
  158. package/lib/flag/index.d.ts +14 -5
  159. package/lib/flag/index.js +19 -12
  160. package/lib/flag/utils/FlagLoader.d.ts +1 -1
  161. package/lib/flag/utils/FlagLoader.js +1 -2
  162. package/lib/header/custom-elements.md +18 -0
  163. package/lib/header/index.d.ts +10 -3
  164. package/lib/header/index.js +12 -8
  165. package/lib/heatmap/custom-elements.json +13 -0
  166. package/lib/heatmap/custom-elements.md +26 -0
  167. package/lib/heatmap/helpers/color.d.ts +1 -1
  168. package/lib/heatmap/helpers/color.js +1 -2
  169. package/lib/heatmap/helpers/text.d.ts +1 -1
  170. package/lib/heatmap/helpers/text.js +0 -1
  171. package/lib/heatmap/helpers/track.js +2 -3
  172. package/lib/heatmap/helpers/types.js +0 -1
  173. package/lib/heatmap/index.d.ts +32 -13
  174. package/lib/heatmap/index.js +61 -35
  175. package/lib/icon/custom-elements.json +6 -4
  176. package/lib/icon/custom-elements.md +8 -0
  177. package/lib/icon/index.d.ts +17 -7
  178. package/lib/icon/index.js +36 -18
  179. package/lib/icon/utils/IconLoader.d.ts +6 -1
  180. package/lib/icon/utils/IconLoader.js +24 -18
  181. package/lib/index.d.ts +2 -0
  182. package/lib/index.js +2 -1
  183. package/lib/interactive-chart/custom-elements.json +5 -11
  184. package/lib/interactive-chart/custom-elements.md +31 -0
  185. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  186. package/lib/interactive-chart/helpers/merge.js +28 -0
  187. package/lib/interactive-chart/helpers/types.d.ts +10 -9
  188. package/lib/interactive-chart/helpers/types.js +6 -2
  189. package/lib/interactive-chart/index.d.ts +37 -18
  190. package/lib/interactive-chart/index.js +61 -51
  191. package/lib/item/custom-elements.json +4 -4
  192. package/lib/item/custom-elements.md +29 -0
  193. package/lib/item/helpers/types.d.ts +1 -1
  194. package/lib/item/helpers/types.js +0 -1
  195. package/lib/item/index.d.ts +26 -9
  196. package/lib/item/index.js +43 -16
  197. package/lib/label/custom-elements.json +7 -16
  198. package/lib/label/custom-elements.md +11 -0
  199. package/lib/label/index.d.ts +41 -73
  200. package/lib/label/index.js +150 -187
  201. package/lib/layout/custom-elements.md +26 -0
  202. package/lib/layout/index.d.ts +11 -4
  203. package/lib/layout/index.js +13 -9
  204. package/lib/led-gauge/custom-elements.json +4 -4
  205. package/lib/led-gauge/custom-elements.md +17 -0
  206. package/lib/led-gauge/index.d.ts +13 -5
  207. package/lib/led-gauge/index.js +16 -11
  208. package/lib/list/custom-elements.json +37 -5
  209. package/lib/list/custom-elements.md +33 -0
  210. package/lib/list/extensible-function.js +2 -1
  211. package/lib/list/helpers/list-renderer.d.ts +2 -2
  212. package/lib/list/helpers/list-renderer.js +4 -3
  213. package/lib/list/helpers/types.d.ts +2 -2
  214. package/lib/list/helpers/types.js +0 -1
  215. package/lib/list/index.d.ts +47 -12
  216. package/lib/list/index.js +100 -39
  217. package/lib/list/renderer.d.ts +2 -2
  218. package/lib/list/renderer.js +1 -2
  219. package/lib/loader/custom-elements.md +5 -0
  220. package/lib/loader/index.d.ts +8 -1
  221. package/lib/loader/index.js +11 -8
  222. package/lib/multi-input/custom-elements.json +7 -6
  223. package/lib/multi-input/custom-elements.md +43 -0
  224. package/lib/multi-input/helpers/types.d.ts +1 -1
  225. package/lib/multi-input/helpers/types.js +0 -1
  226. package/lib/multi-input/index.d.ts +19 -8
  227. package/lib/multi-input/index.js +28 -18
  228. package/lib/multi-input/themes/solar/charcoal/index.js +1 -1
  229. package/lib/multi-input/themes/solar/pearl/index.js +1 -1
  230. package/lib/notification/custom-elements.md +26 -0
  231. package/lib/notification/elements/notification-tray.d.ts +10 -4
  232. package/lib/notification/elements/notification-tray.js +15 -11
  233. package/lib/notification/elements/notification.d.ts +19 -7
  234. package/lib/notification/elements/notification.js +25 -13
  235. package/lib/notification/helpers/status.d.ts +1 -1
  236. package/lib/notification/helpers/status.js +1 -2
  237. package/lib/notification/helpers/types.d.ts +1 -1
  238. package/lib/notification/helpers/types.js +0 -1
  239. package/lib/notification/index.d.ts +2 -2
  240. package/lib/notification/index.js +2 -3
  241. package/lib/number-field/custom-elements.json +99 -54
  242. package/lib/number-field/custom-elements.md +42 -0
  243. package/lib/number-field/index.d.ts +104 -52
  244. package/lib/number-field/index.js +129 -88
  245. package/lib/number-field/themes/halo/dark/index.js +1 -1
  246. package/lib/number-field/themes/halo/light/index.js +1 -1
  247. package/lib/number-field/themes/solar/charcoal/index.js +1 -1
  248. package/lib/number-field/themes/solar/pearl/index.js +1 -1
  249. package/lib/overlay/custom-elements.json +26 -13
  250. package/lib/overlay/custom-elements.md +54 -0
  251. package/lib/overlay/elements/overlay-backdrop.d.ts +12 -5
  252. package/lib/overlay/elements/overlay-backdrop.js +13 -9
  253. package/lib/overlay/elements/overlay-viewport.d.ts +11 -4
  254. package/lib/overlay/elements/overlay-viewport.js +12 -9
  255. package/lib/overlay/elements/overlay.d.ts +18 -6
  256. package/lib/overlay/elements/overlay.js +35 -28
  257. package/lib/overlay/helpers/functions.js +0 -1
  258. package/lib/overlay/helpers/types.js +0 -1
  259. package/lib/overlay/index.d.ts +2 -2
  260. package/lib/overlay/index.js +1 -2
  261. package/lib/overlay/managers/backdrop-manager.d.ts +2 -2
  262. package/lib/overlay/managers/backdrop-manager.js +2 -3
  263. package/lib/overlay/managers/close-manager.d.ts +1 -1
  264. package/lib/overlay/managers/close-manager.js +1 -2
  265. package/lib/overlay/managers/focus-manager.d.ts +1 -1
  266. package/lib/overlay/managers/focus-manager.js +3 -5
  267. package/lib/overlay/managers/interaction-lock-manager.js +2 -3
  268. package/lib/overlay/managers/viewport-manager.d.ts +3 -3
  269. package/lib/overlay/managers/viewport-manager.js +6 -3
  270. package/lib/overlay/managers/zindex-manager.d.ts +1 -1
  271. package/lib/overlay/managers/zindex-manager.js +1 -4
  272. package/lib/overlay-menu/custom-elements.json +126 -12
  273. package/lib/overlay-menu/custom-elements.md +44 -0
  274. package/lib/overlay-menu/helpers/types.d.ts +3 -3
  275. package/lib/overlay-menu/helpers/types.js +0 -1
  276. package/lib/overlay-menu/index.d.ts +44 -12
  277. package/lib/overlay-menu/index.js +66 -35
  278. package/lib/overlay-menu/managers/menu-manager.d.ts +2 -2
  279. package/lib/overlay-menu/managers/menu-manager.js +8 -8
  280. package/lib/pagination/custom-elements.json +16 -33
  281. package/lib/pagination/custom-elements.md +26 -0
  282. package/lib/pagination/index.d.ts +156 -81
  283. package/lib/pagination/index.js +373 -214
  284. package/lib/pagination/themes/halo/dark/index.js +1 -1
  285. package/lib/pagination/themes/halo/light/index.js +1 -1
  286. package/lib/pagination/themes/solar/charcoal/index.js +1 -1
  287. package/lib/pagination/themes/solar/pearl/index.js +1 -1
  288. package/lib/panel/custom-elements.md +11 -0
  289. package/lib/panel/index.d.ts +11 -4
  290. package/lib/panel/index.js +13 -9
  291. package/lib/password-field/custom-elements.json +62 -67
  292. package/lib/password-field/custom-elements.md +39 -0
  293. package/lib/password-field/index.d.ts +46 -90
  294. package/lib/password-field/index.js +52 -190
  295. package/lib/password-field/themes/halo/dark/index.js +1 -1
  296. package/lib/password-field/themes/halo/light/index.js +1 -1
  297. package/lib/password-field/themes/solar/charcoal/index.js +1 -1
  298. package/lib/password-field/themes/solar/pearl/index.js +1 -1
  299. package/lib/pill/custom-elements.json +9 -7
  300. package/lib/pill/custom-elements.md +22 -0
  301. package/lib/pill/index.d.ts +15 -7
  302. package/lib/pill/index.js +21 -27
  303. package/lib/pill/themes/halo/dark/index.js +1 -1
  304. package/lib/pill/themes/halo/light/index.js +1 -1
  305. package/lib/progress-bar/custom-elements.md +18 -0
  306. package/lib/progress-bar/index.d.ts +11 -15
  307. package/lib/progress-bar/index.js +14 -25
  308. package/lib/radio-button/custom-elements.json +4 -4
  309. package/lib/radio-button/custom-elements.md +19 -0
  310. package/lib/radio-button/index.d.ts +33 -9
  311. package/lib/radio-button/index.js +97 -24
  312. package/lib/radio-button/radio-button-registry.d.ts +3 -2
  313. package/lib/radio-button/radio-button-registry.js +57 -5
  314. package/lib/radio-button/themes/halo/dark/index.js +1 -1
  315. package/lib/radio-button/themes/halo/light/index.js +1 -1
  316. package/lib/rating/custom-elements.md +17 -0
  317. package/lib/rating/index.d.ts +11 -4
  318. package/lib/rating/index.js +16 -10
  319. package/lib/search-field/custom-elements.json +70 -74
  320. package/lib/search-field/custom-elements.md +41 -0
  321. package/lib/search-field/index.d.ts +47 -97
  322. package/lib/search-field/index.js +50 -212
  323. package/lib/search-field/themes/halo/dark/index.js +1 -1
  324. package/lib/search-field/themes/halo/light/index.js +1 -1
  325. package/lib/search-field/themes/solar/charcoal/index.js +1 -1
  326. package/lib/search-field/themes/solar/pearl/index.js +1 -1
  327. package/lib/select/custom-elements.json +5 -4
  328. package/lib/select/custom-elements.md +24 -0
  329. package/lib/select/helpers/types.d.ts +1 -1
  330. package/lib/select/helpers/types.js +0 -1
  331. package/lib/select/index.d.ts +26 -11
  332. package/lib/select/index.js +93 -52
  333. package/lib/select/themes/halo/dark/index.js +1 -1
  334. package/lib/select/themes/halo/light/index.js +1 -1
  335. package/lib/sidebar-layout/custom-elements.json +2 -6
  336. package/lib/sidebar-layout/custom-elements.md +21 -0
  337. package/lib/sidebar-layout/index.d.ts +15 -7
  338. package/lib/sidebar-layout/index.js +16 -10
  339. package/lib/slider/custom-elements.json +4 -4
  340. package/lib/slider/custom-elements.md +28 -0
  341. package/lib/slider/index.d.ts +18 -5
  342. package/lib/slider/index.js +69 -16
  343. package/lib/sparkline/custom-elements.json +4 -4
  344. package/lib/sparkline/custom-elements.md +16 -0
  345. package/lib/sparkline/index.d.ts +14 -5
  346. package/lib/sparkline/index.js +17 -10
  347. package/lib/swing-gauge/const.d.ts +22 -0
  348. package/lib/swing-gauge/const.js +26 -0
  349. package/lib/swing-gauge/custom-elements.json +51 -22
  350. package/lib/swing-gauge/custom-elements.md +17 -0
  351. package/lib/swing-gauge/helpers.d.ts +8 -0
  352. package/lib/swing-gauge/helpers.js +105 -0
  353. package/lib/swing-gauge/index.d.ts +220 -72
  354. package/lib/swing-gauge/index.js +648 -168
  355. package/lib/swing-gauge/themes/halo/dark/index.js +1 -1
  356. package/lib/swing-gauge/themes/halo/light/index.js +1 -1
  357. package/lib/swing-gauge/themes/solar/charcoal/index.js +1 -1
  358. package/lib/swing-gauge/themes/solar/pearl/index.js +1 -1
  359. package/lib/swing-gauge/types.d.ts +34 -0
  360. package/lib/swing-gauge/types.js +1 -0
  361. package/lib/tab/custom-elements.json +10 -21
  362. package/lib/tab/custom-elements.md +22 -0
  363. package/lib/tab/index.d.ts +19 -14
  364. package/lib/tab/index.js +31 -40
  365. package/lib/tab/themes/halo/dark/index.js +1 -1
  366. package/lib/tab/themes/halo/light/index.js +1 -1
  367. package/lib/tab/themes/solar/charcoal/index.js +1 -1
  368. package/lib/tab/themes/solar/pearl/index.js +1 -1
  369. package/lib/tab-bar/custom-elements.json +0 -6
  370. package/lib/tab-bar/custom-elements.md +11 -0
  371. package/lib/tab-bar/helpers/animate.d.ts +1 -1
  372. package/lib/tab-bar/helpers/animate.js +5 -2
  373. package/lib/tab-bar/index.d.ts +12 -5
  374. package/lib/tab-bar/index.js +18 -21
  375. package/lib/tab-bar/themes/solar/charcoal/index.js +1 -1
  376. package/lib/tab-bar/themes/solar/pearl/index.js +1 -1
  377. package/lib/text-field/custom-elements.json +78 -89
  378. package/lib/text-field/custom-elements.md +35 -0
  379. package/lib/text-field/index.d.ts +67 -80
  380. package/lib/text-field/index.js +106 -157
  381. package/lib/text-field/themes/halo/dark/index.js +1 -1
  382. package/lib/text-field/themes/halo/light/index.js +1 -1
  383. package/lib/text-field/themes/solar/charcoal/index.js +1 -1
  384. package/lib/text-field/themes/solar/pearl/index.js +1 -1
  385. package/lib/time-picker/custom-elements.json +6 -8
  386. package/lib/time-picker/custom-elements.md +28 -0
  387. package/lib/time-picker/index.d.ts +105 -65
  388. package/lib/time-picker/index.js +297 -169
  389. package/lib/time-picker/themes/solar/charcoal/index.js +1 -1
  390. package/lib/time-picker/themes/solar/pearl/index.js +1 -1
  391. package/lib/toggle/custom-elements.json +4 -4
  392. package/lib/toggle/custom-elements.md +19 -0
  393. package/lib/toggle/index.d.ts +22 -5
  394. package/lib/toggle/index.js +58 -13
  395. package/lib/toggle/themes/halo/dark/index.js +1 -1
  396. package/lib/toggle/themes/halo/light/index.js +1 -1
  397. package/lib/toggle/themes/solar/charcoal/index.js +1 -1
  398. package/lib/toggle/themes/solar/pearl/index.js +1 -1
  399. package/lib/tooltip/custom-elements.md +14 -0
  400. package/lib/tooltip/elements/title-tooltip.js +2 -3
  401. package/lib/tooltip/elements/tooltip-element.d.ts +2 -3
  402. package/lib/tooltip/elements/tooltip-element.js +0 -2
  403. package/lib/tooltip/helpers/overflow-tooltip.d.ts +1 -1
  404. package/lib/tooltip/helpers/overflow-tooltip.js +1 -2
  405. package/lib/tooltip/helpers/renderer.d.ts +1 -1
  406. package/lib/tooltip/helpers/renderer.js +0 -1
  407. package/lib/tooltip/helpers/types.d.ts +1 -1
  408. package/lib/tooltip/helpers/types.js +0 -1
  409. package/lib/tooltip/index.d.ts +18 -11
  410. package/lib/tooltip/index.js +27 -23
  411. package/lib/tooltip/managers/tooltip-manager.d.ts +2 -2
  412. package/lib/tooltip/managers/tooltip-manager.js +17 -11
  413. package/lib/tornado-chart/custom-elements.md +18 -0
  414. package/lib/tornado-chart/elements/tornado-chart.d.ts +12 -5
  415. package/lib/tornado-chart/elements/tornado-chart.js +15 -11
  416. package/lib/tornado-chart/elements/tornado-item.d.ts +13 -6
  417. package/lib/tornado-chart/elements/tornado-item.js +17 -12
  418. package/lib/tornado-chart/index.d.ts +2 -2
  419. package/lib/tornado-chart/index.js +2 -3
  420. package/lib/tree/custom-elements.json +30 -2
  421. package/lib/tree/custom-elements.md +32 -0
  422. package/lib/tree/elements/tree-item.d.ts +53 -5
  423. package/lib/tree/elements/tree-item.js +114 -34
  424. package/lib/tree/elements/tree.d.ts +65 -20
  425. package/lib/tree/elements/tree.js +151 -34
  426. package/lib/tree/helpers/filter.d.ts +8 -0
  427. package/lib/tree/helpers/filter.js +33 -0
  428. package/lib/tree/helpers/renderer.d.ts +2 -2
  429. package/lib/tree/helpers/renderer.js +4 -4
  430. package/lib/tree/helpers/types.d.ts +13 -1
  431. package/lib/tree/helpers/types.js +0 -1
  432. package/lib/tree/index.d.ts +4 -4
  433. package/lib/tree/index.js +3 -4
  434. package/lib/tree/managers/tree-manager.d.ts +22 -10
  435. package/lib/tree/managers/tree-manager.js +56 -41
  436. package/lib/tree/themes/halo/dark/index.js +1 -1
  437. package/lib/tree/themes/halo/light/index.js +1 -1
  438. package/lib/tree/themes/solar/charcoal/index.js +1 -1
  439. package/lib/tree/themes/solar/pearl/index.js +1 -1
  440. package/lib/tree-select/custom-elements.json +14 -5
  441. package/lib/tree-select/custom-elements.md +26 -0
  442. package/lib/tree-select/helpers/types.d.ts +2 -2
  443. package/lib/tree-select/helpers/types.js +0 -1
  444. package/lib/tree-select/index.d.ts +55 -27
  445. package/lib/tree-select/index.js +107 -45
  446. package/lib/tree-select/themes/halo/dark/index.js +3 -2
  447. package/lib/tree-select/themes/halo/light/index.js +3 -2
  448. package/lib/tree-select/themes/solar/charcoal/index.js +3 -2
  449. package/lib/tree-select/themes/solar/pearl/index.js +3 -2
  450. package/lib/version.d.ts +1 -0
  451. package/lib/version.js +1 -0
  452. package/package.json +601 -25
  453. package/lib/accordion/index.js.map +0 -1
  454. package/lib/appstate-bar/index.js.map +0 -1
  455. package/lib/autosuggest/helpers/const.d.ts +0 -2
  456. package/lib/autosuggest/helpers/const.js +0 -4
  457. package/lib/autosuggest/helpers/const.js.map +0 -1
  458. package/lib/autosuggest/helpers/types.js.map +0 -1
  459. package/lib/autosuggest/helpers/utils.js.map +0 -1
  460. package/lib/autosuggest/index.js.map +0 -1
  461. package/lib/button/index.js.map +0 -1
  462. package/lib/button-bar/index.js.map +0 -1
  463. package/lib/calendar/index.js.map +0 -1
  464. package/lib/calendar/locales.js.map +0 -1
  465. package/lib/calendar/types.js.map +0 -1
  466. package/lib/calendar/utils.js.map +0 -1
  467. package/lib/canvas/index.js.map +0 -1
  468. package/lib/card/helpers/types.js.map +0 -1
  469. package/lib/card/index.js.map +0 -1
  470. package/lib/chart/helpers/legend.js.map +0 -1
  471. package/lib/chart/helpers/types.js.map +0 -1
  472. package/lib/chart/index.js.map +0 -1
  473. package/lib/chart/plugins/doughnut-center-label.js.map +0 -1
  474. package/lib/checkbox/index.js.map +0 -1
  475. package/lib/clock/index.js.map +0 -1
  476. package/lib/clock/utils/TickManager.js.map +0 -1
  477. package/lib/clock/utils/timestamps.js.map +0 -1
  478. package/lib/collapse/index.js.map +0 -1
  479. package/lib/color-dialog/elements/color-palettes.js.map +0 -1
  480. package/lib/color-dialog/elements/grayscale-palettes.js.map +0 -1
  481. package/lib/color-dialog/elements/palettes.js.map +0 -1
  482. package/lib/color-dialog/helpers/color-helpers.js.map +0 -1
  483. package/lib/color-dialog/helpers/value-model.js.map +0 -1
  484. package/lib/color-dialog/index.js.map +0 -1
  485. package/lib/combo-box/helpers/filter.js.map +0 -1
  486. package/lib/combo-box/helpers/keyboard-event.js.map +0 -1
  487. package/lib/combo-box/helpers/types.js.map +0 -1
  488. package/lib/combo-box/index.js.map +0 -1
  489. package/lib/datetime-picker/index.js.map +0 -1
  490. package/lib/datetime-picker/locales.js.map +0 -1
  491. package/lib/datetime-picker/types.js.map +0 -1
  492. package/lib/datetime-picker/utils.js.map +0 -1
  493. package/lib/dialog/draggable-element.js.map +0 -1
  494. package/lib/dialog/index.js.map +0 -1
  495. package/lib/email-field/index.js.map +0 -1
  496. package/lib/flag/index.js.map +0 -1
  497. package/lib/flag/utils/FlagLoader.js.map +0 -1
  498. package/lib/header/index.js.map +0 -1
  499. package/lib/heatmap/helpers/color.js.map +0 -1
  500. package/lib/heatmap/helpers/text.js.map +0 -1
  501. package/lib/heatmap/helpers/track.js.map +0 -1
  502. package/lib/heatmap/helpers/types.js.map +0 -1
  503. package/lib/heatmap/index.js.map +0 -1
  504. package/lib/icon/index.js.map +0 -1
  505. package/lib/icon/utils/IconLoader.js.map +0 -1
  506. package/lib/index.js.map +0 -1
  507. package/lib/interactive-chart/helpers/types.js.map +0 -1
  508. package/lib/interactive-chart/index.js.map +0 -1
  509. package/lib/item/helpers/types.js.map +0 -1
  510. package/lib/item/index.js.map +0 -1
  511. package/lib/label/helpers/text.d.ts +0 -35
  512. package/lib/label/helpers/text.js +0 -57
  513. package/lib/label/helpers/text.js.map +0 -1
  514. package/lib/label/index.js.map +0 -1
  515. package/lib/layout/index.js.map +0 -1
  516. package/lib/led-gauge/index.js.map +0 -1
  517. package/lib/list/extensible-function.js.map +0 -1
  518. package/lib/list/helpers/list-renderer.js.map +0 -1
  519. package/lib/list/helpers/types.js.map +0 -1
  520. package/lib/list/index.js.map +0 -1
  521. package/lib/list/renderer.js.map +0 -1
  522. package/lib/loader/index.js.map +0 -1
  523. package/lib/multi-input/helpers/types.js.map +0 -1
  524. package/lib/multi-input/index.js.map +0 -1
  525. package/lib/notification/elements/notification-tray.js.map +0 -1
  526. package/lib/notification/elements/notification.js.map +0 -1
  527. package/lib/notification/helpers/status.js.map +0 -1
  528. package/lib/notification/helpers/types.js.map +0 -1
  529. package/lib/notification/index.js.map +0 -1
  530. package/lib/number-field/index.js.map +0 -1
  531. package/lib/overlay/elements/overlay-backdrop.js.map +0 -1
  532. package/lib/overlay/elements/overlay-viewport.js.map +0 -1
  533. package/lib/overlay/elements/overlay.js.map +0 -1
  534. package/lib/overlay/helpers/functions.js.map +0 -1
  535. package/lib/overlay/helpers/types.js.map +0 -1
  536. package/lib/overlay/index.js.map +0 -1
  537. package/lib/overlay/managers/backdrop-manager.js.map +0 -1
  538. package/lib/overlay/managers/close-manager.js.map +0 -1
  539. package/lib/overlay/managers/focus-manager.js.map +0 -1
  540. package/lib/overlay/managers/interaction-lock-manager.js.map +0 -1
  541. package/lib/overlay/managers/viewport-manager.js.map +0 -1
  542. package/lib/overlay/managers/zindex-manager.js.map +0 -1
  543. package/lib/overlay-menu/helpers/types.js.map +0 -1
  544. package/lib/overlay-menu/helpers/uuid.d.ts +0 -7
  545. package/lib/overlay-menu/helpers/uuid.js +0 -14
  546. package/lib/overlay-menu/helpers/uuid.js.map +0 -1
  547. package/lib/overlay-menu/index.js.map +0 -1
  548. package/lib/overlay-menu/managers/menu-manager.js.map +0 -1
  549. package/lib/pagination/helpers/types.d.ts +0 -9
  550. package/lib/pagination/helpers/types.js +0 -2
  551. package/lib/pagination/helpers/types.js.map +0 -1
  552. package/lib/pagination/index.js.map +0 -1
  553. package/lib/panel/index.js.map +0 -1
  554. package/lib/password-field/index.js.map +0 -1
  555. package/lib/pill/index.js.map +0 -1
  556. package/lib/progress-bar/index.js.map +0 -1
  557. package/lib/radio-button/index.js.map +0 -1
  558. package/lib/radio-button/radio-button-registry.js.map +0 -1
  559. package/lib/rating/index.js.map +0 -1
  560. package/lib/search-field/index.js.map +0 -1
  561. package/lib/select/helpers/types.js.map +0 -1
  562. package/lib/select/index.js.map +0 -1
  563. package/lib/sidebar-layout/index.js.map +0 -1
  564. package/lib/slider/index.js.map +0 -1
  565. package/lib/sparkline/index.js.map +0 -1
  566. package/lib/swing-gauge/helpers/canvas.d.ts +0 -8
  567. package/lib/swing-gauge/helpers/canvas.js +0 -115
  568. package/lib/swing-gauge/helpers/canvas.js.map +0 -1
  569. package/lib/swing-gauge/helpers/types.d.ts +0 -33
  570. package/lib/swing-gauge/helpers/types.js +0 -2
  571. package/lib/swing-gauge/helpers/types.js.map +0 -1
  572. package/lib/swing-gauge/index.js.map +0 -1
  573. package/lib/tab/index.js.map +0 -1
  574. package/lib/tab-bar/helpers/animate.js.map +0 -1
  575. package/lib/tab-bar/index.js.map +0 -1
  576. package/lib/text-field/index.js.map +0 -1
  577. package/lib/time-picker/index.js.map +0 -1
  578. package/lib/toggle/index.js.map +0 -1
  579. package/lib/tooltip/elements/title-tooltip.js.map +0 -1
  580. package/lib/tooltip/elements/tooltip-element.js.map +0 -1
  581. package/lib/tooltip/helpers/overflow-tooltip.js.map +0 -1
  582. package/lib/tooltip/helpers/renderer.js.map +0 -1
  583. package/lib/tooltip/helpers/types.js.map +0 -1
  584. package/lib/tooltip/index.js.map +0 -1
  585. package/lib/tooltip/managers/tooltip-manager.js.map +0 -1
  586. package/lib/tornado-chart/elements/tornado-chart.js.map +0 -1
  587. package/lib/tornado-chart/elements/tornado-item.js.map +0 -1
  588. package/lib/tornado-chart/index.js.map +0 -1
  589. package/lib/tree/elements/tree-item.js.map +0 -1
  590. package/lib/tree/elements/tree.js.map +0 -1
  591. package/lib/tree/helpers/renderer.js.map +0 -1
  592. package/lib/tree/helpers/types.js.map +0 -1
  593. package/lib/tree/index.js.map +0 -1
  594. package/lib/tree/managers/tree-manager.js.map +0 -1
  595. package/lib/tree-select/helpers/types.js.map +0 -1
  596. package/lib/tree-select/index.js.map +0 -1
@@ -1,14 +1,12 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { customElement, html, property, ControlElement } from '@refinitiv-ui/core';
8
- import '../../icon';
9
- import { preload } from '../../icon';
10
- import '../../checkbox';
11
- import { CheckedState } from '../managers/tree-manager';
1
+ import { __decorate } from "tslib";
2
+ import { html, ControlElement } from '@refinitiv-ui/core';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { VERSION } from '../../version.js';
6
+ import '../../icon/index.js';
7
+ import { preload } from '../../icon/index.js';
8
+ import '../../checkbox/index.js';
9
+ import { CheckedState } from '../managers/tree-manager.js';
12
10
  preload('right');
13
11
  const emptyTemplate = html ``;
14
12
  /**
@@ -18,6 +16,7 @@ const emptyTemplate = html ``;
18
16
  let TreeItem = class TreeItem extends ControlElement {
19
17
  constructor() {
20
18
  super(...arguments);
19
+ this.defaultRole = 'treeitem';
21
20
  /**
22
21
  * Checked state of the item
23
22
  */
@@ -42,12 +41,23 @@ let TreeItem = class TreeItem extends ControlElement {
42
41
  * Label of the item
43
42
  */
44
43
  this.label = '';
44
+ /**
45
+ * Icon of the item
46
+ */
47
+ this.icon = '';
45
48
  /**
46
49
  * Highlighted state of the item.
47
50
  * This is for showing which item is currently being interacted with.
48
51
  */
49
52
  this.highlighted = false;
50
53
  }
54
+ /**
55
+ * Element version number
56
+ * @returns version number
57
+ */
58
+ static get version() {
59
+ return VERSION;
60
+ }
51
61
  /**
52
62
  * Template for rendering the indentation element
53
63
  */
@@ -61,10 +71,7 @@ let TreeItem = class TreeItem extends ControlElement {
61
71
  */
62
72
  get toggleTemplate() {
63
73
  return html `
64
- <div
65
- expand-toggle
66
- part="toggle"
67
- style="pointer-events:all;visibility:${this.parent ? 'visible' : 'hidden'}">
74
+ <div expand-toggle part="toggle" style="pointer-events:all;visibility:${this.parent ? 'visible' : 'hidden'}">
68
75
  <ef-icon part="toggle-icon${this.expanded ? ' toggle-icon-expanded' : ''}" icon="right"></ef-icon>
69
76
  </div>
70
77
  `;
@@ -78,15 +85,25 @@ let TreeItem = class TreeItem extends ControlElement {
78
85
  }
79
86
  return html `
80
87
  <ef-checkbox
81
- part="checkbox"
82
- tabindex="-1"
83
- .disabled="${this.disabled}"
84
- .readonly="${this.readonly}"
85
- .indeterminate="${this.indeterminate}"
86
- .checked="${this.checked}"
87
- style="pointer-events:none"></ef-checkbox>
88
+ part="checkbox"
89
+ tabindex="-1"
90
+ .disabled="${this.disabled}"
91
+ .readonly="${this.readonly}"
92
+ .indeterminate="${this.indeterminate}"
93
+ .checked="${this.checked}"
94
+ style="pointer-events:none">
95
+ </ef-checkbox>
88
96
  `;
89
97
  }
98
+ /**
99
+ * Template for rendering the icon
100
+ */
101
+ get iconTemplate() {
102
+ if (typeof this.icon === 'undefined') {
103
+ return emptyTemplate;
104
+ }
105
+ return html `<ef-icon part="label-icon" icon="${this.icon}"></ef-icon>`;
106
+ }
90
107
  /**
91
108
  * Is the item fully checked?
92
109
  */
@@ -99,26 +116,87 @@ let TreeItem = class TreeItem extends ControlElement {
99
116
  get indeterminate() {
100
117
  return this.checkedState === CheckedState.INDETERMINATE;
101
118
  }
119
+ /**
120
+ * Handles aria-checked and aria-selected when mode changes
121
+ * aria-checked is used for multiple mode due to tri-state support
122
+ * @returns {void}
123
+ **/
124
+ multipleChanged() {
125
+ this.removeAttribute(this.multiple ? 'aria-selected' : 'aria-checked');
126
+ this.checkedChanged();
127
+ }
128
+ /**
129
+ * Handles selected and aria attribute changes
130
+ * @returns {void}
131
+ */
132
+ checkedChanged() {
133
+ switch (this.checkedState) {
134
+ case CheckedState.CHECKED:
135
+ this.setAttribute('selected', '');
136
+ this.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', 'true');
137
+ break;
138
+ case CheckedState.INDETERMINATE:
139
+ this.setAttribute('selected', 'indeterminate');
140
+ this.setAttribute('aria-checked', 'mixed');
141
+ break;
142
+ default:
143
+ this.removeAttribute('selected');
144
+ // In single mode, only children nodes are selectable
145
+ if (this.parent && !this.multiple) {
146
+ this.removeAttribute('aria-selected');
147
+ }
148
+ else {
149
+ this.setAttribute(this.multiple ? 'aria-checked' : 'aria-selected', 'false');
150
+ }
151
+ break;
152
+ }
153
+ }
154
+ /**
155
+ * Handles aria-expanded when expanded state changes
156
+ * @returns {void}
157
+ */
158
+ expandedChanged() {
159
+ if (this.parent) {
160
+ this.setAttribute('aria-expanded', this.expanded ? 'true' : 'false');
161
+ }
162
+ }
163
+ /**
164
+ * Called after the component is first rendered
165
+ * @param changedProperties Properties which have changed
166
+ * @returns {void}
167
+ */
168
+ firstUpdated(changedProperties) {
169
+ super.firstUpdated(changedProperties);
170
+ this.setAttribute('aria-level', String(this.depth + 1));
171
+ }
172
+ /**
173
+ * Invoked whenever the element is updated
174
+ * @param changedProperties Map of changed properties with old values
175
+ * @returns {void}
176
+ */
102
177
  update(changedProperties) {
103
178
  super.update(changedProperties);
104
179
  if (changedProperties.has('checkedState')) {
105
- switch (this.checkedState) {
106
- case CheckedState.CHECKED:
107
- this.setAttribute('selected', '');
108
- break;
109
- case CheckedState.INDETERMINATE:
110
- this.setAttribute('selected', 'indeterminate');
111
- break;
112
- default:
113
- this.removeAttribute('selected');
114
- }
180
+ this.checkedChanged();
181
+ }
182
+ if (changedProperties.has('multiple') && changedProperties.get('multiple') !== undefined) {
183
+ this.multipleChanged();
184
+ }
185
+ if (changedProperties.has('expanded')) {
186
+ this.expandedChanged();
115
187
  }
116
188
  }
189
+ /**
190
+ * A `TemplateResult` that will be used
191
+ * to render the updated internal template.
192
+ * @returns Render template
193
+ */
117
194
  render() {
118
195
  return html `
119
196
  ${this.indentTemplate}
120
197
  ${this.toggleTemplate}
121
198
  ${this.checkboxTemplate}
199
+ ${this.iconTemplate}
122
200
  <div part="label">
123
201
  <slot>${this.label}</slot>
124
202
  </div>
@@ -138,11 +216,14 @@ __decorate([
138
216
  property({ type: Boolean })
139
217
  ], TreeItem.prototype, "expanded", void 0);
140
218
  __decorate([
141
- property({ reflect: true, type: Number })
219
+ property({ type: Number, reflect: true })
142
220
  ], TreeItem.prototype, "depth", void 0);
143
221
  __decorate([
144
222
  property({ type: String })
145
223
  ], TreeItem.prototype, "label", void 0);
224
+ __decorate([
225
+ property({ type: String })
226
+ ], TreeItem.prototype, "icon", void 0);
146
227
  __decorate([
147
228
  property({ attribute: false })
148
229
  ], TreeItem.prototype, "item", void 0);
@@ -155,4 +236,3 @@ TreeItem = __decorate([
155
236
  })
156
237
  ], TreeItem);
157
238
  export { TreeItem };
158
- //# sourceMappingURL=tree-item.js.map
@@ -1,17 +1,28 @@
1
1
  import { JSXInterface } from '../../jsx';
2
2
  import { PropertyValues, TapEvent } from '@refinitiv-ui/core';
3
- import { CollectionComposer } from '@refinitiv-ui/utils';
4
- import { List } from '../../list';
5
- import { TreeRenderer } from '../helpers/renderer';
6
- import { TreeData, TreeDataItem } from '../helpers/types';
7
- import { TreeManagerMode } from '../managers/tree-manager';
3
+ import { CollectionComposer } from '@refinitiv-ui/utils/lib/collection.js';
4
+ import { List } from '../../list/index.js';
5
+ import { TreeRenderer } from '../helpers/renderer.js';
6
+ import type { TreeData, TreeDataItem, TreeFilter } from '../helpers/types';
7
+ import { TreeManagerMode } from '../managers/tree-manager.js';
8
8
  /**
9
9
  * Displays a tree structure
10
10
  * to be used for menus and group selections
11
11
  *
12
12
  * @fires value-changed - Fired when the users changed selection item.
13
+ * @fires expanded-changed - Fired when an item's expanded state has changed.
14
+ *
15
+ * @attr {boolean} [stateless=false] - Disable selections
16
+ * @prop {boolean} [stateless=false] - Disable selections
17
+ *
13
18
  */
14
19
  export declare class Tree<T extends TreeDataItem = TreeDataItem> extends List<T> {
20
+ /**
21
+ * Element version number
22
+ * @returns version number
23
+ */
24
+ static get version(): string;
25
+ protected readonly defaultRole: string | null;
15
26
  /**
16
27
  * Tree manager used for manipulation
17
28
  */
@@ -25,6 +36,16 @@ export declare class Tree<T extends TreeDataItem = TreeDataItem> extends List<T>
25
36
  * selection mode is enabled
26
37
  */
27
38
  noRelation: boolean;
39
+ /**
40
+ * Query string applied to tree
41
+ */
42
+ query: string;
43
+ /**
44
+ * Custom filter for static data
45
+ * @type {TreeFilter<T> | null}
46
+ * @ignore set to protected for now and need to discuss before set to public API
47
+ */
48
+ protected filter: TreeFilter<T> | null;
28
49
  /**
29
50
  * Renderer used for generating tree items
30
51
  * @type {TreeRenderer}
@@ -45,25 +66,11 @@ export declare class Tree<T extends TreeDataItem = TreeDataItem> extends List<T>
45
66
  * @returns {void}
46
67
  */
47
68
  checkAll(): void;
48
- /**
49
- * Checks all editable items
50
- * @returns {void}
51
- * @deprecated
52
- * @ignore
53
- */
54
- selectAll(): void;
55
69
  /**
56
70
  * Unchecks all editable items
57
71
  * @returns {void}
58
72
  */
59
73
  uncheckAll(): void;
60
- /**
61
- * Unchecks all editable items
62
- * @returns {void}
63
- * @deprecated
64
- * @ignore
65
- */
66
- deselectAll(): void;
67
74
  /**
68
75
  * @override
69
76
  * @ignore
@@ -121,10 +128,46 @@ export declare class Tree<T extends TreeDataItem = TreeDataItem> extends List<T>
121
128
  * @override
122
129
  */
123
130
  protected update(changedProperties: PropertyValues): void;
131
+ /**
132
+ * Filter the internal items by query changes items' hidden state
133
+ * @returns {void}
134
+ */
135
+ protected filterItems(): void;
136
+ /**
137
+ * Utility method
138
+ * Adds descendants for each item passed
139
+ * @param items List of child items
140
+ * @returns {void}
141
+ */
142
+ protected addItemDescendantsToRender(items: T[]): void;
143
+ /**
144
+ * Utility method
145
+ * Add nested children of item list
146
+ * @param items List of items
147
+ * @param excludeItems List of exclude items
148
+ * @param [includeHidden=false] Include hidden items
149
+ * @returns {void}
150
+ */
151
+ protected addNestedItemsToRender(items: readonly T[], excludeItems: readonly T[], includeHidden?: boolean): void;
152
+ /**
153
+ * Utility method
154
+ * Adds ancestors for each item passed and expand
155
+ * @param items List of child items
156
+ * @returns {void}
157
+ */
158
+ protected addExpandedAncestorsToRender(items: T[]): void;
159
+ /**
160
+ * Utility method
161
+ * Adds parent and expands
162
+ * @param ancestor parent item
163
+ * @returns {void}
164
+ */
165
+ protected addExpandedAncestorToRender(ancestor: T): void;
124
166
  /**
125
167
  * Selected items in tree
126
168
  * @override
127
169
  * @type {string[]}
170
+ * @default []
128
171
  */
129
172
  get values(): string[];
130
173
  set values(value: string[]);
@@ -155,4 +198,6 @@ declare global {
155
198
  'ef-tree': Partial<Tree> | JSXInterface.HTMLAttributes<Tree>;
156
199
  }
157
200
  }
158
- }
201
+ }
202
+
203
+ export {};
@@ -1,25 +1,27 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { customElement, property, DeprecationNotice } from '@refinitiv-ui/core';
8
- import { List } from '../../list';
9
- import { TreeRenderer } from '../helpers/renderer';
10
- import { TreeManager, TreeManagerMode } from '../managers/tree-manager';
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
3
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
4
+ import { VERSION } from '../../version.js';
5
+ import { List } from '../../list/index.js';
6
+ import { TreeRenderer } from '../helpers/renderer.js';
7
+ import { defaultFilter } from '../helpers/filter.js';
8
+ import { TreeManager, TreeManagerMode } from '../managers/tree-manager.js';
11
9
  const EXPAND_TOGGLE_ATTR = 'expand-toggle';
12
- const selectAllDeprecation = new DeprecationNotice('selectAll is deprecated, use checkAll instead.');
13
- const deselectAllDeprecation = new DeprecationNotice('deselectAll is deprecated, use uncheckAll instead.');
14
10
  /**
15
11
  * Displays a tree structure
16
12
  * to be used for menus and group selections
17
13
  *
18
14
  * @fires value-changed - Fired when the users changed selection item.
15
+ * @fires expanded-changed - Fired when an item's expanded state has changed.
16
+ *
17
+ * @attr {boolean} [stateless=false] - Disable selections
18
+ * @prop {boolean} [stateless=false] - Disable selections
19
+ *
19
20
  */
20
21
  let Tree = class Tree extends List {
21
22
  constructor() {
22
23
  super(...arguments);
24
+ this.defaultRole = 'tree';
23
25
  /**
24
26
  * Tree manager used for manipulation
25
27
  */
@@ -33,12 +35,29 @@ let Tree = class Tree extends List {
33
35
  * selection mode is enabled
34
36
  */
35
37
  this.noRelation = false;
38
+ /**
39
+ * Query string applied to tree
40
+ */
41
+ this.query = '';
42
+ /**
43
+ * Custom filter for static data
44
+ * @type {TreeFilter<T> | null}
45
+ * @ignore set to protected for now and need to discuss before set to public API
46
+ */
47
+ this.filter = defaultFilter(this);
36
48
  /**
37
49
  * Renderer used for generating tree items
38
50
  * @type {TreeRenderer}
39
51
  */
40
52
  this.renderer = new TreeRenderer(this);
41
53
  }
54
+ /**
55
+ * Element version number
56
+ * @returns version number
57
+ */
58
+ static get version() {
59
+ return VERSION;
60
+ }
42
61
  /**
43
62
  * Expands all groups
44
63
  * @returns {void}
@@ -63,16 +82,6 @@ let Tree = class Tree extends List {
63
82
  }
64
83
  this.manager.checkAllItems();
65
84
  }
66
- /**
67
- * Checks all editable items
68
- * @returns {void}
69
- * @deprecated
70
- * @ignore
71
- */
72
- selectAll() {
73
- selectAllDeprecation.once();
74
- this.checkAll();
75
- }
76
85
  /**
77
86
  * Unchecks all editable items
78
87
  * @returns {void}
@@ -80,16 +89,6 @@ let Tree = class Tree extends List {
80
89
  uncheckAll() {
81
90
  this.manager.uncheckAllItems();
82
91
  }
83
- /**
84
- * Unchecks all editable items
85
- * @returns {void}
86
- * @deprecated
87
- * @ignore
88
- */
89
- deselectAll() {
90
- deselectAllDeprecation.once();
91
- this.uncheckAll();
92
- }
93
92
  /**
94
93
  * @override
95
94
  * @ignore
@@ -124,7 +123,6 @@ let Tree = class Tree extends List {
124
123
  */
125
124
  dispatchExpandedChangedEvent(item) {
126
125
  /**
127
- * @fires expanded-changed Fired when an item's expanded state has changed.
128
126
  * Property `detail.value` is the current expanded state.
129
127
  * Property `detail.item` is the original data item of which the property has been modified.
130
128
  */
@@ -240,12 +238,129 @@ let Tree = class Tree extends List {
240
238
  if (changedProperties.has('noRelation') || changedProperties.has('multiple')) {
241
239
  this.manager.setMode(this.mode);
242
240
  }
241
+ if (changedProperties.has('query') || changedProperties.has('data')) {
242
+ this.filterItems();
243
+ }
243
244
  super.update(changedProperties);
244
245
  }
246
+ /**
247
+ * Filter the internal items by query changes items' hidden state
248
+ * @returns {void}
249
+ */
250
+ filterItems() {
251
+ // if filter is null, it is off and external app is responsible
252
+ if (this.filter) {
253
+ const filter = this.filter;
254
+ const items = this.queryItems((item) => {
255
+ // Do not filter hidden items
256
+ if (item.hidden) {
257
+ return false;
258
+ }
259
+ const result = filter(item);
260
+ if (result) {
261
+ this.manager.includeItem(item);
262
+ }
263
+ else {
264
+ this.manager.excludeItem(item);
265
+ }
266
+ return result;
267
+ }).slice();
268
+ // Do not expand tree if there is no filter applied
269
+ if (this.query) {
270
+ /**
271
+ * Add all descendants of item list to make the descendants
272
+ * are accessible which user can navigate into the nested data
273
+ */
274
+ this.addItemDescendantsToRender(items);
275
+ /**
276
+ * Add all parents of item list which they must be shown
277
+ * when some descendant is shown.
278
+ */
279
+ this.addExpandedAncestorsToRender(items);
280
+ }
281
+ }
282
+ }
283
+ /**
284
+ * Utility method
285
+ * Adds descendants for each item passed
286
+ * @param items List of child items
287
+ * @returns {void}
288
+ */
289
+ addItemDescendantsToRender(items) {
290
+ items.forEach((item) => {
291
+ /**
292
+ * Collapse an item to prevent tree show too many nested expanded
293
+ */
294
+ if (this.manager.isItemExpanded(item)) {
295
+ this.manager.collapseItem(item);
296
+ }
297
+ /**
298
+ * show all descendants of items to make them all are selectable
299
+ * and user can navigate into nested data
300
+ */
301
+ const children = this.composer.getItemChildren(item);
302
+ if (children.length) {
303
+ this.addNestedItemsToRender(children, items, false);
304
+ }
305
+ });
306
+ }
307
+ /**
308
+ * Utility method
309
+ * Add nested children of item list
310
+ * @param items List of items
311
+ * @param excludeItems List of exclude items
312
+ * @param [includeHidden=false] Include hidden items
313
+ * @returns {void}
314
+ */
315
+ addNestedItemsToRender(items, excludeItems, includeHidden = false) {
316
+ items.forEach(item => {
317
+ // Skip hidden and exclude item
318
+ if (!item.hidden && !excludeItems.includes(item)) {
319
+ // Add item and nested children
320
+ this.manager.includeItem(item);
321
+ const children = this.manager.getItemChildren(item);
322
+ if (children.length) {
323
+ this.addNestedItemsToRender(children, excludeItems, includeHidden);
324
+ }
325
+ }
326
+ });
327
+ }
328
+ /**
329
+ * Utility method
330
+ * Adds ancestors for each item passed and expand
331
+ * @param items List of child items
332
+ * @returns {void}
333
+ */
334
+ addExpandedAncestorsToRender(items) {
335
+ // Establish unique ancestors set
336
+ const ancestors = new Set();
337
+ // we iterate each item match so as to find ancestors
338
+ items.forEach((item) => {
339
+ // Get the ancestors
340
+ const parent = this.manager.getItemParent(item);
341
+ if (parent && !ancestors.has(parent)) {
342
+ this.manager.getItemAncestors(item).forEach((ancestor) => {
343
+ ancestors.add(ancestor); // track ancestors
344
+ this.addExpandedAncestorToRender(ancestor);
345
+ });
346
+ }
347
+ });
348
+ }
349
+ /**
350
+ * Utility method
351
+ * Adds parent and expands
352
+ * @param ancestor parent item
353
+ * @returns {void}
354
+ */
355
+ addExpandedAncestorToRender(ancestor) {
356
+ this.manager.includeItem(ancestor);
357
+ this.manager.expandItem(ancestor);
358
+ }
245
359
  /**
246
360
  * Selected items in tree
247
361
  * @override
248
362
  * @type {string[]}
363
+ * @default []
249
364
  */
250
365
  get values() {
251
366
  return this.manager.checkedItems.map(item => {
@@ -287,6 +402,9 @@ __decorate([
287
402
  __decorate([
288
403
  property({ attribute: 'no-relation', type: Boolean })
289
404
  ], Tree.prototype, "noRelation", void 0);
405
+ __decorate([
406
+ property({ type: String })
407
+ ], Tree.prototype, "query", void 0);
290
408
  __decorate([
291
409
  property({ attribute: false })
292
410
  ], Tree.prototype, "renderer", void 0);
@@ -294,4 +412,3 @@ Tree = __decorate([
294
412
  customElement('ef-tree')
295
413
  ], Tree);
296
414
  export { Tree };
297
- //# sourceMappingURL=tree.js.map
@@ -0,0 +1,8 @@
1
+ import type { Tree, TreeDataItem } from '../index';
2
+ import type { TreeFilter } from './types';
3
+ /**
4
+ * Default filter used by tree
5
+ * @param el Tree instance to filter
6
+ * @returns Filter accepting an item
7
+ */
8
+ export declare const defaultFilter: <T extends TreeDataItem = TreeDataItem>(el: Tree<T>) => TreeFilter<T>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Default filter used by tree
3
+ * @param el Tree instance to filter
4
+ * @returns Filter accepting an item
5
+ */
6
+ export const defaultFilter = (el) => {
7
+ // reference query string for validating queryRegExp cache state
8
+ let query = '';
9
+ // cache RegExp
10
+ let queryRegExp;
11
+ // Get current RegExp, or renew if out of date
12
+ // this is fetched on demand by filter/renderer
13
+ // only created once per query
14
+ const getRegularExpressionOfQuery = () => {
15
+ if (el.query !== query || !queryRegExp) {
16
+ query = el.query || '';
17
+ queryRegExp = new RegExp(query.replace(/(\W)/g, '\\$1'), 'i');
18
+ }
19
+ return queryRegExp;
20
+ };
21
+ // return scoped custom filter
22
+ return (item) => {
23
+ const label = item.label;
24
+ if (!label) {
25
+ return false;
26
+ }
27
+ const regex = getRegularExpressionOfQuery();
28
+ const result = regex.test(label);
29
+ // this regex uses global scope, so the index needs resetting
30
+ regex.lastIndex = 0;
31
+ return result;
32
+ };
33
+ };
@@ -1,5 +1,5 @@
1
- import { Renderer } from '../../list/renderer';
2
- import '../elements/tree-item';
1
+ import { Renderer } from '../../list/renderer.js';
2
+ import '../elements/tree-item.js';
3
3
  export declare class TreeRenderer extends Renderer {
4
4
  constructor(scope?: unknown);
5
5
  }
@@ -1,6 +1,6 @@
1
- import { TreeManager, TreeManagerMode, CheckedState } from '../managers/tree-manager';
2
- import { Renderer } from '../../list/renderer';
3
- import '../elements/tree-item';
1
+ import { TreeManager, TreeManagerMode, CheckedState } from '../managers/tree-manager.js';
2
+ import { Renderer } from '../../list/renderer.js';
3
+ import '../elements/tree-item.js';
4
4
  export class TreeRenderer extends Renderer {
5
5
  constructor(scope) {
6
6
  let manager;
@@ -22,6 +22,7 @@ export class TreeRenderer extends Renderer {
22
22
  el.parent = composer.getItemChildren(item).length > 0;
23
23
  el.expanded = manager.isItemExpanded(item);
24
24
  el.checkedState = !multiple && el.parent ? CheckedState.UNCHECKED : manager.getItemCheckedState(item);
25
+ el.icon = composer.getItemPropertyValue(item, 'icon');
25
26
  el.label = composer.getItemPropertyValue(item, 'label');
26
27
  el.disabled = composer.getItemPropertyValue(item, 'disabled') === true;
27
28
  el.readonly = composer.getItemPropertyValue(item, 'readonly') === true;
@@ -30,4 +31,3 @@ export class TreeRenderer extends Renderer {
30
31
  });
31
32
  }
32
33
  }
33
- //# sourceMappingURL=renderer.js.map