@refinitiv-ui/elements 0.0.0-build.1957399501.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/CHANGELOG.md +412 -0
  2. package/LICENSE +13 -0
  3. package/README.md +70 -0
  4. package/lib/accordion/custom-elements.json +49 -0
  5. package/lib/accordion/custom-elements.md +18 -0
  6. package/lib/accordion/index.d.ts +76 -0
  7. package/lib/accordion/index.js +136 -0
  8. package/lib/accordion/themes/halo/dark/index.js +3 -0
  9. package/lib/accordion/themes/halo/light/index.js +3 -0
  10. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  11. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  12. package/lib/appstate-bar/custom-elements.json +49 -0
  13. package/lib/appstate-bar/custom-elements.md +22 -0
  14. package/lib/appstate-bar/index.d.ts +65 -0
  15. package/lib/appstate-bar/index.js +100 -0
  16. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  17. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  18. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  19. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  20. package/lib/autosuggest/custom-elements.json +243 -0
  21. package/lib/autosuggest/custom-elements.md +54 -0
  22. package/lib/autosuggest/helpers/types.d.ts +54 -0
  23. package/lib/autosuggest/helpers/types.js +1 -0
  24. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  25. package/lib/autosuggest/helpers/utils.js +75 -0
  26. package/lib/autosuggest/index.d.ts +538 -0
  27. package/lib/autosuggest/index.js +1254 -0
  28. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  29. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  30. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  31. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  32. package/lib/button/custom-elements.json +119 -0
  33. package/lib/button/custom-elements.md +23 -0
  34. package/lib/button/index.d.ts +138 -0
  35. package/lib/button/index.js +241 -0
  36. package/lib/button/themes/halo/dark/index.js +3 -0
  37. package/lib/button/themes/halo/light/index.js +3 -0
  38. package/lib/button/themes/solar/charcoal/index.js +3 -0
  39. package/lib/button/themes/solar/pearl/index.js +3 -0
  40. package/lib/button-bar/custom-elements.json +26 -0
  41. package/lib/button-bar/custom-elements.md +9 -0
  42. package/lib/button-bar/index.d.ts +125 -0
  43. package/lib/button-bar/index.js +294 -0
  44. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  45. package/lib/button-bar/themes/halo/light/index.js +3 -0
  46. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  47. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  48. package/lib/calendar/constants.d.ts +26 -0
  49. package/lib/calendar/constants.js +28 -0
  50. package/lib/calendar/custom-elements.json +201 -0
  51. package/lib/calendar/custom-elements.md +35 -0
  52. package/lib/calendar/index.d.ts +412 -0
  53. package/lib/calendar/index.js +1297 -0
  54. package/lib/calendar/locales.d.ts +1 -0
  55. package/lib/calendar/locales.js +41 -0
  56. package/lib/calendar/themes/halo/dark/index.js +3 -0
  57. package/lib/calendar/themes/halo/light/index.js +3 -0
  58. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  59. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  60. package/lib/calendar/types.d.ts +32 -0
  61. package/lib/calendar/types.js +1 -0
  62. package/lib/calendar/utils.d.ts +42 -0
  63. package/lib/calendar/utils.js +120 -0
  64. package/lib/canvas/custom-elements.json +71 -0
  65. package/lib/canvas/custom-elements.md +27 -0
  66. package/lib/canvas/index.d.ts +101 -0
  67. package/lib/canvas/index.js +172 -0
  68. package/lib/canvas/themes/halo/dark/index.js +2 -0
  69. package/lib/canvas/themes/halo/light/index.js +2 -0
  70. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  71. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  72. package/lib/card/custom-elements.json +61 -0
  73. package/lib/card/custom-elements.md +24 -0
  74. package/lib/card/helpers/types.d.ts +12 -0
  75. package/lib/card/helpers/types.js +1 -0
  76. package/lib/card/index.d.ts +142 -0
  77. package/lib/card/index.js +247 -0
  78. package/lib/card/themes/halo/dark/index.js +5 -0
  79. package/lib/card/themes/halo/light/index.js +5 -0
  80. package/lib/card/themes/solar/charcoal/index.js +5 -0
  81. package/lib/card/themes/solar/pearl/index.js +5 -0
  82. package/lib/chart/custom-elements.json +42 -0
  83. package/lib/chart/custom-elements.md +16 -0
  84. package/lib/chart/helpers/index.d.ts +2 -0
  85. package/lib/chart/helpers/index.js +2 -0
  86. package/lib/chart/helpers/legend.d.ts +5 -0
  87. package/lib/chart/helpers/legend.js +78 -0
  88. package/lib/chart/helpers/merge.d.ts +15 -0
  89. package/lib/chart/helpers/merge.js +28 -0
  90. package/lib/chart/helpers/types.d.ts +69 -0
  91. package/lib/chart/helpers/types.js +1 -0
  92. package/lib/chart/index.d.ts +187 -0
  93. package/lib/chart/index.js +484 -0
  94. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  95. package/lib/chart/plugins/doughnut-center-label.js +191 -0
  96. package/lib/chart/themes/halo/dark/index.js +4 -0
  97. package/lib/chart/themes/halo/light/index.js +4 -0
  98. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  99. package/lib/chart/themes/solar/pearl/index.js +4 -0
  100. package/lib/checkbox/custom-elements.json +71 -0
  101. package/lib/checkbox/custom-elements.md +18 -0
  102. package/lib/checkbox/index.d.ts +97 -0
  103. package/lib/checkbox/index.js +194 -0
  104. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  105. package/lib/checkbox/themes/halo/light/index.js +4 -0
  106. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  107. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  108. package/lib/clock/custom-elements.json +125 -0
  109. package/lib/clock/custom-elements.md +28 -0
  110. package/lib/clock/index.d.ts +321 -0
  111. package/lib/clock/index.js +583 -0
  112. package/lib/clock/themes/halo/dark/index.js +2 -0
  113. package/lib/clock/themes/halo/light/index.js +2 -0
  114. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  115. package/lib/clock/themes/solar/pearl/index.js +2 -0
  116. package/lib/clock/utils/TickManager.d.ts +14 -0
  117. package/lib/clock/utils/TickManager.js +66 -0
  118. package/lib/clock/utils/timestamps.d.ts +6 -0
  119. package/lib/clock/utils/timestamps.js +6 -0
  120. package/lib/collapse/custom-elements.json +81 -0
  121. package/lib/collapse/custom-elements.md +27 -0
  122. package/lib/collapse/index.d.ts +123 -0
  123. package/lib/collapse/index.js +225 -0
  124. package/lib/collapse/themes/halo/dark/index.js +5 -0
  125. package/lib/collapse/themes/halo/light/index.js +5 -0
  126. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  127. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  128. package/lib/color-dialog/custom-elements.json +206 -0
  129. package/lib/color-dialog/custom-elements.md +39 -0
  130. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  131. package/lib/color-dialog/elements/color-palettes.js +101 -0
  132. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  133. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  134. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  135. package/lib/color-dialog/elements/palettes.js +131 -0
  136. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  137. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  138. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  139. package/lib/color-dialog/helpers/value-model.js +141 -0
  140. package/lib/color-dialog/index.d.ts +232 -0
  141. package/lib/color-dialog/index.js +459 -0
  142. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  143. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  144. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  145. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  146. package/lib/combo-box/custom-elements.json +241 -0
  147. package/lib/combo-box/custom-elements.md +42 -0
  148. package/lib/combo-box/helpers/filter.d.ts +10 -0
  149. package/lib/combo-box/helpers/filter.js +29 -0
  150. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  151. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  152. package/lib/combo-box/helpers/renderer.d.ts +8 -0
  153. package/lib/combo-box/helpers/renderer.js +24 -0
  154. package/lib/combo-box/helpers/types.d.ts +11 -0
  155. package/lib/combo-box/helpers/types.js +1 -0
  156. package/lib/combo-box/index.d.ts +551 -0
  157. package/lib/combo-box/index.js +1199 -0
  158. package/lib/combo-box/themes/halo/dark/index.js +7 -0
  159. package/lib/combo-box/themes/halo/light/index.js +7 -0
  160. package/lib/combo-box/themes/solar/charcoal/index.js +7 -0
  161. package/lib/combo-box/themes/solar/pearl/index.js +7 -0
  162. package/lib/counter/custom-elements.json +39 -0
  163. package/lib/counter/custom-elements.md +11 -0
  164. package/lib/counter/index.d.ts +91 -0
  165. package/lib/counter/index.js +154 -0
  166. package/lib/counter/themes/halo/dark/index.js +3 -0
  167. package/lib/counter/themes/halo/light/index.js +3 -0
  168. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  169. package/lib/counter/themes/solar/pearl/index.js +3 -0
  170. package/lib/counter/utils.d.ts +13 -0
  171. package/lib/counter/utils.js +52 -0
  172. package/lib/datetime-picker/custom-elements.json +362 -0
  173. package/lib/datetime-picker/custom-elements.md +57 -0
  174. package/lib/datetime-picker/index.d.ts +509 -0
  175. package/lib/datetime-picker/index.js +1174 -0
  176. package/lib/datetime-picker/locales.d.ts +8 -0
  177. package/lib/datetime-picker/locales.js +57 -0
  178. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  179. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  180. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  181. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  182. package/lib/datetime-picker/types.d.ts +3 -0
  183. package/lib/datetime-picker/types.js +1 -0
  184. package/lib/datetime-picker/utils.d.ts +55 -0
  185. package/lib/datetime-picker/utils.js +92 -0
  186. package/lib/dialog/custom-elements.json +169 -0
  187. package/lib/dialog/custom-elements.md +48 -0
  188. package/lib/dialog/draggable-element.d.ts +14 -0
  189. package/lib/dialog/draggable-element.js +220 -0
  190. package/lib/dialog/index.d.ts +213 -0
  191. package/lib/dialog/index.js +353 -0
  192. package/lib/dialog/themes/halo/dark/index.js +7 -0
  193. package/lib/dialog/themes/halo/light/index.js +7 -0
  194. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  195. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  196. package/lib/email-field/custom-elements.json +186 -0
  197. package/lib/email-field/custom-elements.md +37 -0
  198. package/lib/email-field/index.d.ts +80 -0
  199. package/lib/email-field/index.js +91 -0
  200. package/lib/email-field/themes/halo/dark/index.js +3 -0
  201. package/lib/email-field/themes/halo/light/index.js +3 -0
  202. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  203. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  204. package/lib/events.d.ts +121 -0
  205. package/lib/events.js +1 -0
  206. package/lib/flag/custom-elements.json +35 -0
  207. package/lib/flag/custom-elements.md +10 -0
  208. package/lib/flag/index.d.ts +96 -0
  209. package/lib/flag/index.js +168 -0
  210. package/lib/flag/themes/halo/dark/index.js +2 -0
  211. package/lib/flag/themes/halo/light/index.js +2 -0
  212. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  213. package/lib/flag/themes/solar/pearl/index.js +2 -0
  214. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  215. package/lib/flag/utils/FlagLoader.js +86 -0
  216. package/lib/header/custom-elements.json +36 -0
  217. package/lib/header/custom-elements.md +18 -0
  218. package/lib/header/index.d.ts +46 -0
  219. package/lib/header/index.js +73 -0
  220. package/lib/header/themes/halo/dark/index.js +2 -0
  221. package/lib/header/themes/halo/light/index.js +2 -0
  222. package/lib/header/themes/solar/charcoal/index.js +2 -0
  223. package/lib/header/themes/solar/pearl/index.js +2 -0
  224. package/lib/heatmap/custom-elements.json +151 -0
  225. package/lib/heatmap/custom-elements.md +26 -0
  226. package/lib/heatmap/helpers/color.d.ts +30 -0
  227. package/lib/heatmap/helpers/color.js +66 -0
  228. package/lib/heatmap/helpers/text.d.ts +26 -0
  229. package/lib/heatmap/helpers/text.js +91 -0
  230. package/lib/heatmap/helpers/track.d.ts +102 -0
  231. package/lib/heatmap/helpers/track.js +160 -0
  232. package/lib/heatmap/helpers/types.d.ts +40 -0
  233. package/lib/heatmap/helpers/types.js +1 -0
  234. package/lib/heatmap/index.d.ts +453 -0
  235. package/lib/heatmap/index.js +1094 -0
  236. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  237. package/lib/heatmap/themes/halo/light/index.js +4 -0
  238. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  239. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  240. package/lib/icon/custom-elements.json +36 -0
  241. package/lib/icon/custom-elements.md +8 -0
  242. package/lib/icon/index.d.ts +90 -0
  243. package/lib/icon/index.js +171 -0
  244. package/lib/icon/themes/halo/dark/index.js +2 -0
  245. package/lib/icon/themes/halo/light/index.js +2 -0
  246. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  247. package/lib/icon/themes/solar/pearl/index.js +2 -0
  248. package/lib/icon/utils/IconLoader.d.ts +52 -0
  249. package/lib/icon/utils/IconLoader.js +93 -0
  250. package/lib/index.d.ts +3 -0
  251. package/lib/index.js +3 -0
  252. package/lib/interactive-chart/custom-elements.json +82 -0
  253. package/lib/interactive-chart/custom-elements.md +31 -0
  254. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  255. package/lib/interactive-chart/helpers/merge.js +28 -0
  256. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  257. package/lib/interactive-chart/helpers/types.js +6 -0
  258. package/lib/interactive-chart/index.d.ts +383 -0
  259. package/lib/interactive-chart/index.js +1089 -0
  260. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  261. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  262. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  263. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  264. package/lib/item/custom-elements.json +153 -0
  265. package/lib/item/custom-elements.md +29 -0
  266. package/lib/item/helpers/types.d.ts +57 -0
  267. package/lib/item/helpers/types.js +1 -0
  268. package/lib/item/index.d.ts +159 -0
  269. package/lib/item/index.js +269 -0
  270. package/lib/item/themes/halo/dark/index.js +4 -0
  271. package/lib/item/themes/halo/light/index.js +4 -0
  272. package/lib/item/themes/solar/charcoal/index.js +4 -0
  273. package/lib/item/themes/solar/pearl/index.js +4 -0
  274. package/lib/jsx.d.ts +223 -0
  275. package/lib/label/custom-elements.json +52 -0
  276. package/lib/label/custom-elements.md +11 -0
  277. package/lib/label/index.d.ts +102 -0
  278. package/lib/label/index.js +245 -0
  279. package/lib/label/themes/halo/dark/index.js +3 -0
  280. package/lib/label/themes/halo/light/index.js +3 -0
  281. package/lib/label/themes/solar/charcoal/index.js +3 -0
  282. package/lib/label/themes/solar/pearl/index.js +3 -0
  283. package/lib/layout/custom-elements.json +163 -0
  284. package/lib/layout/custom-elements.md +26 -0
  285. package/lib/layout/index.d.ts +107 -0
  286. package/lib/layout/index.js +212 -0
  287. package/lib/layout/themes/halo/dark/index.js +2 -0
  288. package/lib/layout/themes/halo/light/index.js +2 -0
  289. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  290. package/lib/layout/themes/solar/pearl/index.js +2 -0
  291. package/lib/led-gauge/custom-elements.json +113 -0
  292. package/lib/led-gauge/custom-elements.md +17 -0
  293. package/lib/led-gauge/index.d.ts +144 -0
  294. package/lib/led-gauge/index.js +438 -0
  295. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  296. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  297. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  298. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  299. package/lib/list/custom-elements.json +137 -0
  300. package/lib/list/custom-elements.md +33 -0
  301. package/lib/list/extensible-function.d.ts +8 -0
  302. package/lib/list/extensible-function.js +13 -0
  303. package/lib/list/helpers/list-renderer.d.ts +9 -0
  304. package/lib/list/helpers/list-renderer.js +37 -0
  305. package/lib/list/helpers/types.d.ts +3 -0
  306. package/lib/list/helpers/types.js +1 -0
  307. package/lib/list/index.d.ts +313 -0
  308. package/lib/list/index.js +640 -0
  309. package/lib/list/renderer.d.ts +36 -0
  310. package/lib/list/renderer.js +9 -0
  311. package/lib/list/themes/halo/dark/index.js +3 -0
  312. package/lib/list/themes/halo/light/index.js +3 -0
  313. package/lib/list/themes/solar/charcoal/index.js +3 -0
  314. package/lib/list/themes/solar/pearl/index.js +3 -0
  315. package/lib/loader/custom-elements.json +9 -0
  316. package/lib/loader/custom-elements.md +5 -0
  317. package/lib/loader/index.d.ts +41 -0
  318. package/lib/loader/index.js +61 -0
  319. package/lib/loader/themes/halo/dark/index.js +2 -0
  320. package/lib/loader/themes/halo/light/index.js +2 -0
  321. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  322. package/lib/loader/themes/solar/pearl/index.js +2 -0
  323. package/lib/multi-input/custom-elements.json +239 -0
  324. package/lib/multi-input/custom-elements.md +43 -0
  325. package/lib/multi-input/helpers/types.d.ts +11 -0
  326. package/lib/multi-input/helpers/types.js +1 -0
  327. package/lib/multi-input/index.d.ts +301 -0
  328. package/lib/multi-input/index.js +593 -0
  329. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  330. package/lib/multi-input/themes/halo/light/index.js +4 -0
  331. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  332. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  333. package/lib/notification/custom-elements.json +95 -0
  334. package/lib/notification/custom-elements.md +26 -0
  335. package/lib/notification/elements/notification-tray.d.ts +97 -0
  336. package/lib/notification/elements/notification-tray.js +167 -0
  337. package/lib/notification/elements/notification.d.ts +90 -0
  338. package/lib/notification/elements/notification.js +154 -0
  339. package/lib/notification/helpers/status.d.ts +30 -0
  340. package/lib/notification/helpers/status.js +130 -0
  341. package/lib/notification/helpers/types.d.ts +10 -0
  342. package/lib/notification/helpers/types.js +1 -0
  343. package/lib/notification/index.d.ts +2 -0
  344. package/lib/notification/index.js +2 -0
  345. package/lib/notification/themes/halo/dark/index.js +5 -0
  346. package/lib/notification/themes/halo/light/index.js +5 -0
  347. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  348. package/lib/notification/themes/solar/pearl/index.js +5 -0
  349. package/lib/number-field/custom-elements.json +245 -0
  350. package/lib/number-field/custom-elements.md +42 -0
  351. package/lib/number-field/index.d.ts +339 -0
  352. package/lib/number-field/index.js +751 -0
  353. package/lib/number-field/themes/halo/dark/index.js +3 -0
  354. package/lib/number-field/themes/halo/light/index.js +3 -0
  355. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  356. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  357. package/lib/overlay/custom-elements.json +355 -0
  358. package/lib/overlay/custom-elements.md +54 -0
  359. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  360. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  361. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  362. package/lib/overlay/elements/overlay-viewport.js +52 -0
  363. package/lib/overlay/elements/overlay.d.ts +408 -0
  364. package/lib/overlay/elements/overlay.js +1428 -0
  365. package/lib/overlay/helpers/functions.d.ts +13 -0
  366. package/lib/overlay/helpers/functions.js +16 -0
  367. package/lib/overlay/helpers/types.d.ts +97 -0
  368. package/lib/overlay/helpers/types.js +16 -0
  369. package/lib/overlay/index.d.ts +2 -0
  370. package/lib/overlay/index.js +1 -0
  371. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  372. package/lib/overlay/managers/backdrop-manager.js +96 -0
  373. package/lib/overlay/managers/close-manager.d.ts +54 -0
  374. package/lib/overlay/managers/close-manager.js +138 -0
  375. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  376. package/lib/overlay/managers/focus-manager.js +227 -0
  377. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  378. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  379. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  380. package/lib/overlay/managers/viewport-manager.js +210 -0
  381. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  382. package/lib/overlay/managers/zindex-manager.js +195 -0
  383. package/lib/overlay/themes/halo/dark/index.js +4 -0
  384. package/lib/overlay/themes/halo/light/index.js +4 -0
  385. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  386. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  387. package/lib/overlay-menu/custom-elements.json +246 -0
  388. package/lib/overlay-menu/custom-elements.md +44 -0
  389. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  390. package/lib/overlay-menu/helpers/types.js +1 -0
  391. package/lib/overlay-menu/index.d.ts +387 -0
  392. package/lib/overlay-menu/index.js +932 -0
  393. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  394. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  395. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  396. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  397. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  398. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  399. package/lib/pagination/custom-elements.json +76 -0
  400. package/lib/pagination/custom-elements.md +26 -0
  401. package/lib/pagination/index.d.ts +275 -0
  402. package/lib/pagination/index.js +551 -0
  403. package/lib/pagination/themes/halo/dark/index.js +6 -0
  404. package/lib/pagination/themes/halo/light/index.js +6 -0
  405. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  406. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  407. package/lib/panel/custom-elements.json +39 -0
  408. package/lib/panel/custom-elements.md +11 -0
  409. package/lib/panel/index.d.ts +48 -0
  410. package/lib/panel/index.js +74 -0
  411. package/lib/panel/themes/halo/dark/index.js +2 -0
  412. package/lib/panel/themes/halo/light/index.js +2 -0
  413. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  414. package/lib/panel/themes/solar/pearl/index.js +2 -0
  415. package/lib/password-field/custom-elements.json +151 -0
  416. package/lib/password-field/custom-elements.md +39 -0
  417. package/lib/password-field/index.d.ts +89 -0
  418. package/lib/password-field/index.js +115 -0
  419. package/lib/password-field/themes/halo/dark/index.js +3 -0
  420. package/lib/password-field/themes/halo/light/index.js +3 -0
  421. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  422. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  423. package/lib/pill/custom-elements.json +97 -0
  424. package/lib/pill/custom-elements.md +22 -0
  425. package/lib/pill/index.d.ts +113 -0
  426. package/lib/pill/index.js +191 -0
  427. package/lib/pill/themes/halo/dark/index.js +3 -0
  428. package/lib/pill/themes/halo/light/index.js +3 -0
  429. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  430. package/lib/pill/themes/solar/pearl/index.js +3 -0
  431. package/lib/progress-bar/custom-elements.json +58 -0
  432. package/lib/progress-bar/custom-elements.md +18 -0
  433. package/lib/progress-bar/index.d.ts +82 -0
  434. package/lib/progress-bar/index.js +157 -0
  435. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  436. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  437. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  438. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  439. package/lib/radio-button/custom-elements.json +84 -0
  440. package/lib/radio-button/custom-elements.md +19 -0
  441. package/lib/radio-button/index.d.ts +123 -0
  442. package/lib/radio-button/index.js +261 -0
  443. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  444. package/lib/radio-button/radio-button-registry.js +95 -0
  445. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  446. package/lib/radio-button/themes/halo/light/index.js +3 -0
  447. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  448. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  449. package/lib/rating/custom-elements.json +58 -0
  450. package/lib/rating/custom-elements.md +17 -0
  451. package/lib/rating/index.d.ts +91 -0
  452. package/lib/rating/index.js +157 -0
  453. package/lib/rating/themes/halo/dark/index.js +2 -0
  454. package/lib/rating/themes/halo/light/index.js +2 -0
  455. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  456. package/lib/rating/themes/solar/pearl/index.js +2 -0
  457. package/lib/search-field/custom-elements.json +169 -0
  458. package/lib/search-field/custom-elements.md +41 -0
  459. package/lib/search-field/index.d.ts +77 -0
  460. package/lib/search-field/index.js +88 -0
  461. package/lib/search-field/themes/halo/dark/index.js +3 -0
  462. package/lib/search-field/themes/halo/light/index.js +3 -0
  463. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  464. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  465. package/lib/select/custom-elements.json +104 -0
  466. package/lib/select/custom-elements.md +24 -0
  467. package/lib/select/helpers/types.d.ts +3 -0
  468. package/lib/select/helpers/types.js +1 -0
  469. package/lib/select/index.d.ts +396 -0
  470. package/lib/select/index.js +978 -0
  471. package/lib/select/themes/halo/dark/index.js +5 -0
  472. package/lib/select/themes/halo/light/index.js +5 -0
  473. package/lib/select/themes/solar/charcoal/index.js +5 -0
  474. package/lib/select/themes/solar/pearl/index.js +5 -0
  475. package/lib/sidebar-layout/custom-elements.json +68 -0
  476. package/lib/sidebar-layout/custom-elements.md +21 -0
  477. package/lib/sidebar-layout/index.d.ts +70 -0
  478. package/lib/sidebar-layout/index.js +134 -0
  479. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  480. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  481. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  482. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  483. package/lib/slider/custom-elements.json +181 -0
  484. package/lib/slider/custom-elements.md +28 -0
  485. package/lib/slider/index.d.ts +409 -0
  486. package/lib/slider/index.js +1195 -0
  487. package/lib/slider/themes/halo/dark/index.js +3 -0
  488. package/lib/slider/themes/halo/light/index.js +3 -0
  489. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  490. package/lib/slider/themes/solar/pearl/index.js +3 -0
  491. package/lib/sparkline/custom-elements.json +59 -0
  492. package/lib/sparkline/custom-elements.md +16 -0
  493. package/lib/sparkline/index.d.ts +109 -0
  494. package/lib/sparkline/index.js +187 -0
  495. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  496. package/lib/sparkline/themes/halo/light/index.js +2 -0
  497. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  498. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  499. package/lib/swing-gauge/const.d.ts +22 -0
  500. package/lib/swing-gauge/const.js +26 -0
  501. package/lib/swing-gauge/custom-elements.json +111 -0
  502. package/lib/swing-gauge/custom-elements.md +17 -0
  503. package/lib/swing-gauge/helpers.d.ts +8 -0
  504. package/lib/swing-gauge/helpers.js +105 -0
  505. package/lib/swing-gauge/index.d.ts +296 -0
  506. package/lib/swing-gauge/index.js +770 -0
  507. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  508. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  509. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  510. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  511. package/lib/swing-gauge/types.d.ts +34 -0
  512. package/lib/swing-gauge/types.js +1 -0
  513. package/lib/tab/custom-elements.json +136 -0
  514. package/lib/tab/custom-elements.md +23 -0
  515. package/lib/tab/index.d.ts +136 -0
  516. package/lib/tab/index.js +236 -0
  517. package/lib/tab/themes/halo/dark/index.js +4 -0
  518. package/lib/tab/themes/halo/light/index.js +4 -0
  519. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  520. package/lib/tab/themes/solar/pearl/index.js +4 -0
  521. package/lib/tab-bar/custom-elements.json +64 -0
  522. package/lib/tab-bar/custom-elements.md +18 -0
  523. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  524. package/lib/tab-bar/helpers/animate.js +53 -0
  525. package/lib/tab-bar/index.d.ts +198 -0
  526. package/lib/tab-bar/index.js +428 -0
  527. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  528. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  529. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  530. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  531. package/lib/text-field/custom-elements.json +199 -0
  532. package/lib/text-field/custom-elements.md +35 -0
  533. package/lib/text-field/index.d.ts +164 -0
  534. package/lib/text-field/index.js +284 -0
  535. package/lib/text-field/themes/halo/dark/index.js +3 -0
  536. package/lib/text-field/themes/halo/light/index.js +3 -0
  537. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  538. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  539. package/lib/time-picker/custom-elements.json +122 -0
  540. package/lib/time-picker/custom-elements.md +28 -0
  541. package/lib/time-picker/index.d.ts +412 -0
  542. package/lib/time-picker/index.js +897 -0
  543. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  544. package/lib/time-picker/themes/halo/light/index.js +4 -0
  545. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  546. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  547. package/lib/toggle/custom-elements.json +84 -0
  548. package/lib/toggle/custom-elements.md +19 -0
  549. package/lib/toggle/index.d.ts +87 -0
  550. package/lib/toggle/index.js +153 -0
  551. package/lib/toggle/themes/halo/dark/index.js +2 -0
  552. package/lib/toggle/themes/halo/light/index.js +2 -0
  553. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  554. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  555. package/lib/tooltip/custom-elements.json +62 -0
  556. package/lib/tooltip/custom-elements.md +14 -0
  557. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  558. package/lib/tooltip/elements/title-tooltip.js +18 -0
  559. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  560. package/lib/tooltip/elements/tooltip-element.js +54 -0
  561. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  562. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  563. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  564. package/lib/tooltip/helpers/renderer.js +11 -0
  565. package/lib/tooltip/helpers/types.d.ts +23 -0
  566. package/lib/tooltip/helpers/types.js +1 -0
  567. package/lib/tooltip/index.d.ts +232 -0
  568. package/lib/tooltip/index.js +475 -0
  569. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  570. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  571. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  572. package/lib/tooltip/themes/halo/light/index.js +3 -0
  573. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  574. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  575. package/lib/tornado-chart/custom-elements.json +45 -0
  576. package/lib/tornado-chart/custom-elements.md +18 -0
  577. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  578. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  579. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  580. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  581. package/lib/tornado-chart/index.d.ts +2 -0
  582. package/lib/tornado-chart/index.js +2 -0
  583. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  584. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  585. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  586. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  587. package/lib/tree/custom-elements.json +114 -0
  588. package/lib/tree/custom-elements.md +32 -0
  589. package/lib/tree/elements/tree-item.d.ts +129 -0
  590. package/lib/tree/elements/tree-item.js +238 -0
  591. package/lib/tree/elements/tree.d.ts +203 -0
  592. package/lib/tree/elements/tree.js +414 -0
  593. package/lib/tree/helpers/filter.d.ts +8 -0
  594. package/lib/tree/helpers/filter.js +33 -0
  595. package/lib/tree/helpers/renderer.d.ts +5 -0
  596. package/lib/tree/helpers/renderer.js +33 -0
  597. package/lib/tree/helpers/types.d.ts +25 -0
  598. package/lib/tree/helpers/types.js +1 -0
  599. package/lib/tree/index.d.ts +4 -0
  600. package/lib/tree/index.js +3 -0
  601. package/lib/tree/managers/tree-manager.d.ts +248 -0
  602. package/lib/tree/managers/tree-manager.js +395 -0
  603. package/lib/tree/themes/halo/dark/index.js +7 -0
  604. package/lib/tree/themes/halo/light/index.js +7 -0
  605. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  606. package/lib/tree/themes/solar/pearl/index.js +7 -0
  607. package/lib/tree-select/custom-elements.json +111 -0
  608. package/lib/tree-select/custom-elements.md +26 -0
  609. package/lib/tree-select/helpers/types.d.ts +4 -0
  610. package/lib/tree-select/helpers/types.js +1 -0
  611. package/lib/tree-select/index.d.ts +404 -0
  612. package/lib/tree-select/index.js +895 -0
  613. package/lib/tree-select/themes/halo/dark/index.js +11 -0
  614. package/lib/tree-select/themes/halo/light/index.js +11 -0
  615. package/lib/tree-select/themes/solar/charcoal/index.js +11 -0
  616. package/lib/tree-select/themes/solar/pearl/index.js +11 -0
  617. package/lib/version.d.ts +1 -0
  618. package/lib/version.js +1 -0
  619. package/package.json +355 -0
@@ -0,0 +1,203 @@
1
+ import { JSXInterface } from '../../jsx';
2
+ import { PropertyValues, TapEvent } from '@refinitiv-ui/core';
3
+ import { CollectionComposer } from '@refinitiv-ui/utils/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
+ /**
9
+ * Displays a tree structure
10
+ * to be used for menus and group selections
11
+ *
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
+ *
18
+ */
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;
26
+ /**
27
+ * Tree manager used for manipulation
28
+ */
29
+ private manager;
30
+ /**
31
+ * Allows multiple items to be selected
32
+ */
33
+ multiple: boolean;
34
+ /**
35
+ * Breaks the relationship when multiple
36
+ * selection mode is enabled
37
+ */
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;
49
+ /**
50
+ * Renderer used for generating tree items
51
+ * @type {TreeRenderer}
52
+ */
53
+ renderer: TreeRenderer;
54
+ /**
55
+ * Expands all groups
56
+ * @returns {void}
57
+ */
58
+ expandAll(): void;
59
+ /**
60
+ * Collapses all groups
61
+ * @returns {void}
62
+ */
63
+ collapseAll(): void;
64
+ /**
65
+ * Checks all editable items
66
+ * @returns {void}
67
+ */
68
+ checkAll(): void;
69
+ /**
70
+ * Unchecks all editable items
71
+ * @returns {void}
72
+ */
73
+ uncheckAll(): void;
74
+ /**
75
+ * @override
76
+ * @ignore
77
+ */
78
+ selectItem(item: T): boolean;
79
+ /**
80
+ * Dispatches an event, detailing which item has recently changed it's expanded state.
81
+ * @param item Data item of which the expanded property changed
82
+ * @returns {void}
83
+ */
84
+ protected dispatchExpandedChangedEvent(item: T): void;
85
+ /**
86
+ * Handles tap event when composed path contains
87
+ * an element with an `expand-toggle` attribute.
88
+ * @param event Tap event to try and handle
89
+ * @returns True or False depending if the event was handled
90
+ */
91
+ protected handleExpandCollapse(event: TapEvent): boolean;
92
+ /**
93
+ * @override
94
+ */
95
+ protected onTap(event: TapEvent): void;
96
+ /**
97
+ * @override
98
+ */
99
+ protected onKeyDown(event: KeyboardEvent): void;
100
+ /**
101
+ * Performs left arrow keyboard action,
102
+ * collapsing a group item if possible.
103
+ * @returns {void}
104
+ */
105
+ protected left(): void;
106
+ /**
107
+ * Performs right arrow keyboard action,
108
+ * expanding a group item if possible.
109
+ * @returns {void}
110
+ */
111
+ protected right(): void;
112
+ /**
113
+ * Toggles the expanded state of an item.
114
+ * Executed when a user taps on an item to expand/collapse the group.
115
+ * @param item Original data item
116
+ * @returns {void}
117
+ */
118
+ protected toggleExpandedState(item: T): void;
119
+ /**
120
+ * @override
121
+ */
122
+ protected queryItems(engine: (item: T, composer: CollectionComposer<T>) => boolean): readonly T[];
123
+ /**
124
+ * @override
125
+ */
126
+ protected queryItemsByPropertyValue<K extends keyof T>(property: K, value: T[K]): readonly T[];
127
+ /**
128
+ * @override
129
+ */
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;
166
+ /**
167
+ * Selected items in tree
168
+ * @override
169
+ * @type {string[]}
170
+ * @default []
171
+ */
172
+ get values(): string[];
173
+ set values(value: string[]);
174
+ /**
175
+ * Data object to be used for creating tree
176
+ * @override
177
+ * @type {TreeData<T>}
178
+ */
179
+ get data(): TreeData<T>;
180
+ set data(data: TreeData<T>);
181
+ /**
182
+ * @override
183
+ */
184
+ protected get renderItems(): readonly T[];
185
+ /**
186
+ * Mode to use in the tree manager
187
+ */
188
+ protected get mode(): TreeManagerMode;
189
+ }
190
+
191
+ declare global {
192
+ interface HTMLElementTagNameMap {
193
+ 'ef-tree': Tree;
194
+ }
195
+
196
+ namespace JSX {
197
+ interface IntrinsicElements {
198
+ 'ef-tree': Partial<Tree> | JSXInterface.HTMLAttributes<Tree>;
199
+ }
200
+ }
201
+ }
202
+
203
+ export {};
@@ -0,0 +1,414 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
3
+ import { property } from '@refinitiv-ui/core/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';
9
+ const EXPAND_TOGGLE_ATTR = 'expand-toggle';
10
+ /**
11
+ * Displays a tree structure
12
+ * to be used for menus and group selections
13
+ *
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
+ *
20
+ */
21
+ let Tree = class Tree extends List {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.defaultRole = 'tree';
25
+ /**
26
+ * Tree manager used for manipulation
27
+ */
28
+ this.manager = new TreeManager(this.composer);
29
+ /**
30
+ * Allows multiple items to be selected
31
+ */
32
+ this.multiple = false;
33
+ /**
34
+ * Breaks the relationship when multiple
35
+ * selection mode is enabled
36
+ */
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);
48
+ /**
49
+ * Renderer used for generating tree items
50
+ * @type {TreeRenderer}
51
+ */
52
+ this.renderer = new TreeRenderer(this);
53
+ }
54
+ /**
55
+ * Element version number
56
+ * @returns version number
57
+ */
58
+ static get version() {
59
+ return VERSION;
60
+ }
61
+ /**
62
+ * Expands all groups
63
+ * @returns {void}
64
+ */
65
+ expandAll() {
66
+ this.manager.expandAllItems();
67
+ }
68
+ /**
69
+ * Collapses all groups
70
+ * @returns {void}
71
+ */
72
+ collapseAll() {
73
+ this.manager.collapseAllItems();
74
+ }
75
+ /**
76
+ * Checks all editable items
77
+ * @returns {void}
78
+ */
79
+ checkAll() {
80
+ if (!this.multiple) {
81
+ throw new RangeError('You cannot check all items in single selection mode');
82
+ }
83
+ this.manager.checkAllItems();
84
+ }
85
+ /**
86
+ * Unchecks all editable items
87
+ * @returns {void}
88
+ */
89
+ uncheckAll() {
90
+ this.manager.uncheckAllItems();
91
+ }
92
+ /**
93
+ * @override
94
+ * @ignore
95
+ */
96
+ selectItem(item) {
97
+ // Stateless tree
98
+ if (this.stateless) {
99
+ return false;
100
+ }
101
+ // Multiple selection
102
+ if (this.multiple) {
103
+ return this.manager.toggleItem(item);
104
+ }
105
+ // Single selection - expand/collapse group (parent)
106
+ if (this.manager.isItemParent(item)) {
107
+ this.toggleExpandedState(item);
108
+ return false;
109
+ }
110
+ // Single selection - check item
111
+ if (this.manager.checkItem(item)) {
112
+ this.manager.checkedItems.forEach(checkedItem => {
113
+ checkedItem !== item && this.manager.uncheckItem(checkedItem);
114
+ });
115
+ return true;
116
+ }
117
+ return false;
118
+ }
119
+ /**
120
+ * Dispatches an event, detailing which item has recently changed it's expanded state.
121
+ * @param item Data item of which the expanded property changed
122
+ * @returns {void}
123
+ */
124
+ dispatchExpandedChangedEvent(item) {
125
+ /**
126
+ * Property `detail.value` is the current expanded state.
127
+ * Property `detail.item` is the original data item of which the property has been modified.
128
+ */
129
+ const event = new CustomEvent('expanded-changed', {
130
+ bubbles: false,
131
+ cancelable: false,
132
+ composed: true,
133
+ detail: {
134
+ value: this.manager.isItemExpanded(item),
135
+ item
136
+ }
137
+ });
138
+ this.dispatchEvent(event);
139
+ }
140
+ /**
141
+ * Handles tap event when composed path contains
142
+ * an element with an `expand-toggle` attribute.
143
+ * @param event Tap event to try and handle
144
+ * @returns True or False depending if the event was handled
145
+ */
146
+ handleExpandCollapse(event) {
147
+ const containsToggle = event.composedPath().some((target) => target instanceof HTMLElement && target.hasAttribute(EXPAND_TOGGLE_ATTR));
148
+ const itemElement = containsToggle && this.findItemElementFromTarget(event.target);
149
+ const item = itemElement && this.itemFromElement(itemElement);
150
+ if (item) {
151
+ this.toggleExpandedState(item);
152
+ return true;
153
+ }
154
+ return false;
155
+ }
156
+ /**
157
+ * @override
158
+ */
159
+ onTap(event) {
160
+ if (this.handleExpandCollapse(event)) {
161
+ return;
162
+ }
163
+ super.onTap(event);
164
+ }
165
+ /**
166
+ * @override
167
+ */
168
+ onKeyDown(event) {
169
+ switch (event.key) {
170
+ case 'Left':
171
+ case 'ArrowLeft':
172
+ this.left();
173
+ break;
174
+ case 'Right':
175
+ case 'ArrowRight':
176
+ this.right();
177
+ break;
178
+ default:
179
+ return super.onKeyDown(event);
180
+ }
181
+ event.preventDefault();
182
+ }
183
+ /**
184
+ * Performs left arrow keyboard action,
185
+ * collapsing a group item if possible.
186
+ * @returns {void}
187
+ */
188
+ left() {
189
+ const item = this.highlightElement && this.itemFromElement(this.highlightElement);
190
+ if (item && this.manager.isItemExpanded(item)) {
191
+ this.manager.collapseItem(item);
192
+ this.dispatchExpandedChangedEvent(item);
193
+ }
194
+ }
195
+ /**
196
+ * Performs right arrow keyboard action,
197
+ * expanding a group item if possible.
198
+ * @returns {void}
199
+ */
200
+ right() {
201
+ const item = this.highlightElement && this.itemFromElement(this.highlightElement);
202
+ if (item && !this.manager.isItemExpanded(item)) {
203
+ this.manager.expandItem(item);
204
+ this.dispatchExpandedChangedEvent(item);
205
+ }
206
+ }
207
+ /**
208
+ * Toggles the expanded state of an item.
209
+ * Executed when a user taps on an item to expand/collapse the group.
210
+ * @param item Original data item
211
+ * @returns {void}
212
+ */
213
+ toggleExpandedState(item) {
214
+ if (this.manager.isItemExpanded(item)) {
215
+ this.manager.collapseItem(item);
216
+ }
217
+ else {
218
+ this.manager.expandItem(item);
219
+ }
220
+ this.dispatchExpandedChangedEvent(item);
221
+ }
222
+ /**
223
+ * @override
224
+ */
225
+ queryItems(engine) {
226
+ return this.composer.queryItems(engine, Infinity);
227
+ }
228
+ /**
229
+ * @override
230
+ */
231
+ queryItemsByPropertyValue(property, value) {
232
+ return this.composer.queryItemsByPropertyValue(property, value, Infinity);
233
+ }
234
+ /**
235
+ * @override
236
+ */
237
+ update(changedProperties) {
238
+ if (changedProperties.has('noRelation') || changedProperties.has('multiple')) {
239
+ this.manager.setMode(this.mode);
240
+ }
241
+ if (changedProperties.has('query') || changedProperties.has('data')) {
242
+ this.filterItems();
243
+ }
244
+ super.update(changedProperties);
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
+ }
359
+ /**
360
+ * Selected items in tree
361
+ * @override
362
+ * @type {string[]}
363
+ * @default []
364
+ */
365
+ get values() {
366
+ return this.manager.checkedItems.map(item => {
367
+ return this.composer.getItemPropertyValue(item, 'value') || '';
368
+ });
369
+ }
370
+ set values(value) {
371
+ super.values = value;
372
+ }
373
+ /**
374
+ * Data object to be used for creating tree
375
+ * @override
376
+ * @type {TreeData<T>}
377
+ */
378
+ get data() {
379
+ return super.data;
380
+ }
381
+ set data(data) {
382
+ super.data = data;
383
+ this.manager = new TreeManager(this.composer, this.mode);
384
+ }
385
+ /**
386
+ * @override
387
+ */
388
+ get renderItems() {
389
+ return this.manager.visibleItems;
390
+ }
391
+ /**
392
+ * Mode to use in the tree manager
393
+ */
394
+ get mode() {
395
+ return !this.multiple || !this.noRelation
396
+ ? TreeManagerMode.RELATIONAL : TreeManagerMode.INDEPENDENT;
397
+ }
398
+ };
399
+ __decorate([
400
+ property({ type: Boolean })
401
+ ], Tree.prototype, "multiple", void 0);
402
+ __decorate([
403
+ property({ attribute: 'no-relation', type: Boolean })
404
+ ], Tree.prototype, "noRelation", void 0);
405
+ __decorate([
406
+ property({ type: String })
407
+ ], Tree.prototype, "query", void 0);
408
+ __decorate([
409
+ property({ attribute: false })
410
+ ], Tree.prototype, "renderer", void 0);
411
+ Tree = __decorate([
412
+ customElement('ef-tree')
413
+ ], Tree);
414
+ export { Tree };
@@ -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
+ };
@@ -0,0 +1,5 @@
1
+ import { Renderer } from '../../list/renderer.js';
2
+ import '../elements/tree-item.js';
3
+ export declare class TreeRenderer extends Renderer {
4
+ constructor(scope?: unknown);
5
+ }
@@ -0,0 +1,33 @@
1
+ import { TreeManager, TreeManagerMode, CheckedState } from '../managers/tree-manager.js';
2
+ import { Renderer } from '../../list/renderer.js';
3
+ import '../elements/tree-item.js';
4
+ export class TreeRenderer extends Renderer {
5
+ constructor(scope) {
6
+ let manager;
7
+ let currentMode;
8
+ let currentComposer;
9
+ super((item, composer, element = document.createElement('ef-tree-item')) => {
10
+ const el = element;
11
+ const multiple = !!scope && scope.multiple === true;
12
+ const noRelation = !!scope && scope.noRelation === true;
13
+ const mode = !multiple || !noRelation ? TreeManagerMode.RELATIONAL : TreeManagerMode.INDEPENDENT;
14
+ if (currentComposer !== composer || currentMode !== mode) {
15
+ currentMode = mode;
16
+ currentComposer = composer;
17
+ manager = new TreeManager(composer, mode);
18
+ }
19
+ el.multiple = multiple;
20
+ el.item = item;
21
+ el.depth = composer.getItemDepth(item);
22
+ el.parent = composer.getItemChildren(item).length > 0;
23
+ el.expanded = manager.isItemExpanded(item);
24
+ el.checkedState = !multiple && el.parent ? CheckedState.UNCHECKED : manager.getItemCheckedState(item);
25
+ el.icon = composer.getItemPropertyValue(item, 'icon');
26
+ el.label = composer.getItemPropertyValue(item, 'label');
27
+ el.disabled = composer.getItemPropertyValue(item, 'disabled') === true;
28
+ el.readonly = composer.getItemPropertyValue(item, 'readonly') === true;
29
+ el.highlighted = composer.getItemPropertyValue(item, 'highlighted') === true;
30
+ return el;
31
+ });
32
+ }
33
+ }