@refinitiv-ui/elements 5.5.0 → 5.8.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 (328) hide show
  1. package/CHANGELOG.md +65 -8
  2. package/lib/accordion/custom-elements.md +18 -0
  3. package/lib/accordion/index.d.ts +5 -5
  4. package/lib/accordion/index.js +8 -11
  5. package/lib/appstate-bar/custom-elements.md +22 -0
  6. package/lib/appstate-bar/index.d.ts +5 -5
  7. package/lib/appstate-bar/index.js +8 -11
  8. package/lib/autosuggest/custom-elements.json +24 -4
  9. package/lib/autosuggest/custom-elements.md +54 -0
  10. package/lib/autosuggest/helpers/types.d.ts +1 -1
  11. package/lib/autosuggest/helpers/utils.d.ts +2 -2
  12. package/lib/autosuggest/helpers/utils.js +1 -2
  13. package/lib/autosuggest/index.d.ts +13 -8
  14. package/lib/autosuggest/index.js +38 -31
  15. package/lib/button/custom-elements.json +2 -2
  16. package/lib/button/custom-elements.md +23 -0
  17. package/lib/button/index.d.ts +13 -13
  18. package/lib/button/index.js +41 -31
  19. package/lib/button-bar/custom-elements.md +9 -0
  20. package/lib/button-bar/index.d.ts +3 -3
  21. package/lib/button-bar/index.js +8 -10
  22. package/lib/calendar/constants.d.ts +22 -0
  23. package/lib/calendar/constants.js +23 -0
  24. package/lib/calendar/custom-elements.json +8 -6
  25. package/lib/calendar/custom-elements.md +35 -0
  26. package/lib/calendar/index.d.ts +9 -7
  27. package/lib/calendar/index.js +20 -38
  28. package/lib/calendar/locales.d.ts +1 -31
  29. package/lib/calendar/locales.js +0 -104
  30. package/lib/calendar/types.d.ts +1 -5
  31. package/lib/calendar/types.js +1 -6
  32. package/lib/calendar/utils.d.ts +31 -1
  33. package/lib/calendar/utils.js +104 -2
  34. package/lib/canvas/custom-elements.json +7 -5
  35. package/lib/canvas/custom-elements.md +27 -0
  36. package/lib/canvas/index.d.ts +4 -3
  37. package/lib/canvas/index.js +8 -10
  38. package/lib/card/custom-elements.json +3 -1
  39. package/lib/card/custom-elements.md +24 -0
  40. package/lib/card/helpers/types.d.ts +1 -1
  41. package/lib/card/index.d.ts +10 -8
  42. package/lib/card/index.js +14 -13
  43. package/lib/chart/custom-elements.json +1 -1
  44. package/lib/chart/custom-elements.md +16 -0
  45. package/lib/chart/helpers/index.d.ts +2 -2
  46. package/lib/chart/helpers/index.js +2 -2
  47. package/lib/chart/index.d.ts +6 -6
  48. package/lib/chart/index.js +12 -14
  49. package/lib/checkbox/custom-elements.json +4 -4
  50. package/lib/checkbox/custom-elements.md +18 -0
  51. package/lib/checkbox/index.d.ts +21 -13
  52. package/lib/checkbox/index.js +56 -31
  53. package/lib/clock/custom-elements.json +21 -4
  54. package/lib/clock/custom-elements.md +28 -0
  55. package/lib/clock/index.d.ts +17 -5
  56. package/lib/clock/index.js +37 -18
  57. package/lib/clock/themes/halo/dark/index.js +1 -1
  58. package/lib/clock/themes/halo/light/index.js +1 -1
  59. package/lib/clock/themes/solar/charcoal/index.js +1 -1
  60. package/lib/clock/themes/solar/pearl/index.js +1 -1
  61. package/lib/clock/utils/TickManager.js +2 -2
  62. package/lib/collapse/custom-elements.md +27 -0
  63. package/lib/collapse/index.d.ts +7 -7
  64. package/lib/collapse/index.js +11 -13
  65. package/lib/color-dialog/custom-elements.json +29 -16
  66. package/lib/color-dialog/custom-elements.md +39 -0
  67. package/lib/color-dialog/elements/color-palettes.d.ts +5 -5
  68. package/lib/color-dialog/elements/color-palettes.js +8 -12
  69. package/lib/color-dialog/elements/grayscale-palettes.d.ts +5 -5
  70. package/lib/color-dialog/elements/grayscale-palettes.js +9 -12
  71. package/lib/color-dialog/elements/palettes.d.ts +3 -3
  72. package/lib/color-dialog/elements/palettes.js +49 -47
  73. package/lib/color-dialog/helpers/value-model.js +2 -2
  74. package/lib/color-dialog/index.d.ts +19 -19
  75. package/lib/color-dialog/index.js +36 -35
  76. package/lib/combo-box/custom-elements.json +28 -16
  77. package/lib/combo-box/custom-elements.md +35 -0
  78. package/lib/combo-box/helpers/filter.d.ts +4 -4
  79. package/lib/combo-box/helpers/types.d.ts +2 -2
  80. package/lib/combo-box/index.d.ts +26 -18
  81. package/lib/combo-box/index.js +36 -27
  82. package/lib/combo-box/themes/halo/dark/index.js +1 -1
  83. package/lib/combo-box/themes/halo/light/index.js +1 -1
  84. package/lib/combo-box/themes/solar/charcoal/index.js +1 -1
  85. package/lib/combo-box/themes/solar/pearl/index.js +1 -1
  86. package/lib/counter/custom-elements.json +8 -4
  87. package/lib/counter/custom-elements.md +11 -0
  88. package/lib/counter/index.d.ts +5 -3
  89. package/lib/counter/index.js +11 -12
  90. package/lib/datetime-picker/custom-elements.json +52 -23
  91. package/lib/datetime-picker/custom-elements.md +57 -0
  92. package/lib/datetime-picker/index.d.ts +25 -14
  93. package/lib/datetime-picker/index.js +46 -35
  94. package/lib/datetime-picker/locales.d.ts +1 -1
  95. package/lib/datetime-picker/locales.js +12 -1
  96. package/lib/datetime-picker/types.d.ts +1 -1
  97. package/lib/datetime-picker/utils.js +1 -1
  98. package/lib/dialog/custom-elements.json +34 -12
  99. package/lib/dialog/custom-elements.md +47 -0
  100. package/lib/dialog/index.d.ts +17 -20
  101. package/lib/dialog/index.js +28 -31
  102. package/lib/email-field/custom-elements.json +81 -94
  103. package/lib/email-field/custom-elements.md +37 -0
  104. package/lib/email-field/index.d.ts +44 -116
  105. package/lib/email-field/index.js +48 -249
  106. package/lib/events.d.ts +2 -2
  107. package/lib/events.js +1 -2
  108. package/lib/flag/custom-elements.md +10 -0
  109. package/lib/flag/index.d.ts +6 -4
  110. package/lib/flag/index.js +12 -12
  111. package/lib/flag/utils/FlagLoader.d.ts +1 -1
  112. package/lib/flag/utils/FlagLoader.js +1 -1
  113. package/lib/header/custom-elements.md +18 -0
  114. package/lib/header/index.d.ts +2 -2
  115. package/lib/header/index.js +5 -8
  116. package/lib/heatmap/custom-elements.md +26 -0
  117. package/lib/heatmap/helpers/color.d.ts +1 -1
  118. package/lib/heatmap/helpers/color.js +1 -1
  119. package/lib/heatmap/helpers/text.d.ts +1 -1
  120. package/lib/heatmap/index.d.ts +7 -7
  121. package/lib/heatmap/index.js +15 -16
  122. package/lib/icon/custom-elements.json +6 -4
  123. package/lib/icon/custom-elements.md +8 -0
  124. package/lib/icon/index.d.ts +9 -6
  125. package/lib/icon/index.js +28 -18
  126. package/lib/icon/utils/IconLoader.d.ts +6 -1
  127. package/lib/icon/utils/IconLoader.js +24 -17
  128. package/lib/index.d.ts +2 -1
  129. package/lib/index.js +2 -1
  130. package/lib/interactive-chart/custom-elements.json +6 -10
  131. package/lib/interactive-chart/custom-elements.md +31 -0
  132. package/lib/interactive-chart/helpers/types.d.ts +2 -2
  133. package/lib/interactive-chart/index.d.ts +11 -8
  134. package/lib/interactive-chart/index.js +17 -17
  135. package/lib/item/custom-elements.json +4 -4
  136. package/lib/item/custom-elements.md +29 -0
  137. package/lib/item/helpers/types.d.ts +1 -1
  138. package/lib/item/index.d.ts +18 -8
  139. package/lib/item/index.js +36 -16
  140. package/lib/label/custom-elements.md +11 -0
  141. package/lib/label/index.d.ts +3 -3
  142. package/lib/label/index.js +12 -20
  143. package/lib/layout/custom-elements.md +26 -0
  144. package/lib/layout/index.d.ts +3 -3
  145. package/lib/layout/index.js +6 -9
  146. package/lib/led-gauge/custom-elements.json +4 -4
  147. package/lib/led-gauge/custom-elements.md +17 -0
  148. package/lib/led-gauge/index.d.ts +5 -4
  149. package/lib/led-gauge/index.js +9 -11
  150. package/lib/list/custom-elements.json +18 -5
  151. package/lib/list/custom-elements.md +32 -0
  152. package/lib/list/helpers/list-renderer.d.ts +2 -2
  153. package/lib/list/helpers/list-renderer.js +4 -2
  154. package/lib/list/helpers/types.d.ts +2 -2
  155. package/lib/list/index.d.ts +27 -10
  156. package/lib/list/index.js +54 -25
  157. package/lib/list/renderer.d.ts +2 -2
  158. package/lib/list/renderer.js +1 -1
  159. package/lib/loader/custom-elements.md +5 -0
  160. package/lib/loader/index.js +4 -8
  161. package/lib/multi-input/custom-elements.json +7 -6
  162. package/lib/multi-input/custom-elements.md +43 -0
  163. package/lib/multi-input/helpers/types.d.ts +1 -1
  164. package/lib/multi-input/index.d.ts +11 -7
  165. package/lib/multi-input/index.js +20 -17
  166. package/lib/notification/custom-elements.md +26 -0
  167. package/lib/notification/elements/notification-tray.d.ts +2 -2
  168. package/lib/notification/elements/notification-tray.js +6 -9
  169. package/lib/notification/elements/notification.d.ts +5 -5
  170. package/lib/notification/elements/notification.js +8 -11
  171. package/lib/notification/helpers/status.d.ts +1 -1
  172. package/lib/notification/helpers/status.js +1 -1
  173. package/lib/notification/helpers/types.d.ts +1 -1
  174. package/lib/notification/index.d.ts +2 -2
  175. package/lib/notification/index.js +2 -2
  176. package/lib/number-field/custom-elements.json +99 -54
  177. package/lib/number-field/custom-elements.md +42 -0
  178. package/lib/number-field/index.d.ts +96 -51
  179. package/lib/number-field/index.js +121 -89
  180. package/lib/overlay/custom-elements.json +26 -13
  181. package/lib/overlay/custom-elements.md +54 -0
  182. package/lib/overlay/elements/overlay-backdrop.d.ts +4 -4
  183. package/lib/overlay/elements/overlay-backdrop.js +6 -9
  184. package/lib/overlay/elements/overlay-viewport.d.ts +3 -3
  185. package/lib/overlay/elements/overlay-viewport.js +5 -9
  186. package/lib/overlay/elements/overlay.d.ts +10 -5
  187. package/lib/overlay/elements/overlay.js +18 -23
  188. package/lib/overlay/index.d.ts +2 -2
  189. package/lib/overlay/index.js +1 -1
  190. package/lib/overlay/managers/backdrop-manager.d.ts +1 -1
  191. package/lib/overlay/managers/backdrop-manager.js +2 -2
  192. package/lib/overlay/managers/close-manager.js +1 -1
  193. package/lib/overlay/managers/focus-manager.js +2 -2
  194. package/lib/overlay/managers/interaction-lock-manager.js +2 -2
  195. package/lib/overlay/managers/viewport-manager.d.ts +2 -2
  196. package/lib/overlay/managers/viewport-manager.js +6 -2
  197. package/lib/overlay/managers/zindex-manager.js +1 -1
  198. package/lib/overlay-menu/custom-elements.json +70 -20
  199. package/lib/overlay-menu/custom-elements.md +44 -0
  200. package/lib/overlay-menu/helpers/types.d.ts +3 -3
  201. package/lib/overlay-menu/index.d.ts +21 -19
  202. package/lib/overlay-menu/index.js +32 -31
  203. package/lib/overlay-menu/managers/menu-manager.d.ts +2 -2
  204. package/lib/overlay-menu/managers/menu-manager.js +3 -3
  205. package/lib/pagination/custom-elements.md +27 -0
  206. package/lib/pagination/index.d.ts +8 -8
  207. package/lib/pagination/index.js +13 -15
  208. package/lib/panel/custom-elements.md +11 -0
  209. package/lib/panel/index.d.ts +3 -3
  210. package/lib/panel/index.js +6 -9
  211. package/lib/password-field/custom-elements.json +62 -67
  212. package/lib/password-field/custom-elements.md +39 -0
  213. package/lib/password-field/index.d.ts +43 -94
  214. package/lib/password-field/index.js +52 -198
  215. package/lib/pill/custom-elements.json +8 -6
  216. package/lib/pill/custom-elements.md +22 -0
  217. package/lib/pill/index.d.ts +5 -5
  218. package/lib/pill/index.js +9 -11
  219. package/lib/progress-bar/custom-elements.md +18 -0
  220. package/lib/progress-bar/index.d.ts +3 -3
  221. package/lib/progress-bar/index.js +7 -9
  222. package/lib/radio-button/custom-elements.json +4 -4
  223. package/lib/radio-button/custom-elements.md +19 -0
  224. package/lib/radio-button/index.d.ts +25 -8
  225. package/lib/radio-button/index.js +84 -21
  226. package/lib/radio-button/radio-button-registry.d.ts +3 -2
  227. package/lib/radio-button/radio-button-registry.js +57 -4
  228. package/lib/rating/custom-elements.md +17 -0
  229. package/lib/rating/index.d.ts +3 -3
  230. package/lib/rating/index.js +9 -10
  231. package/lib/search-field/custom-elements.json +70 -74
  232. package/lib/search-field/custom-elements.md +41 -0
  233. package/lib/search-field/index.d.ts +44 -101
  234. package/lib/search-field/index.js +50 -220
  235. package/lib/select/custom-elements.json +5 -4
  236. package/lib/select/custom-elements.md +24 -0
  237. package/lib/select/helpers/types.d.ts +1 -1
  238. package/lib/select/index.d.ts +18 -10
  239. package/lib/select/index.js +84 -45
  240. package/lib/sidebar-layout/custom-elements.json +2 -6
  241. package/lib/sidebar-layout/custom-elements.md +21 -0
  242. package/lib/sidebar-layout/index.d.ts +7 -6
  243. package/lib/sidebar-layout/index.js +9 -10
  244. package/lib/slider/custom-elements.json +4 -4
  245. package/lib/slider/custom-elements.md +28 -0
  246. package/lib/slider/index.d.ts +4 -4
  247. package/lib/slider/index.js +9 -10
  248. package/lib/sparkline/custom-elements.json +4 -4
  249. package/lib/sparkline/custom-elements.md +16 -0
  250. package/lib/sparkline/index.d.ts +6 -4
  251. package/lib/sparkline/index.js +10 -10
  252. package/lib/swing-gauge/custom-elements.json +5 -3
  253. package/lib/swing-gauge/custom-elements.md +17 -0
  254. package/lib/swing-gauge/helpers.d.ts +1 -1
  255. package/lib/swing-gauge/helpers.js +1 -1
  256. package/lib/swing-gauge/index.d.ts +9 -7
  257. package/lib/swing-gauge/index.js +17 -15
  258. package/lib/tab/custom-elements.json +2 -2
  259. package/lib/tab/custom-elements.md +22 -0
  260. package/lib/tab/index.d.ts +5 -5
  261. package/lib/tab/index.js +9 -12
  262. package/lib/tab-bar/custom-elements.md +11 -0
  263. package/lib/tab-bar/index.d.ts +4 -4
  264. package/lib/tab-bar/index.js +9 -11
  265. package/lib/text-field/custom-elements.json +78 -89
  266. package/lib/text-field/custom-elements.md +35 -0
  267. package/lib/text-field/index.d.ts +59 -79
  268. package/lib/text-field/index.js +99 -158
  269. package/lib/time-picker/custom-elements.json +4 -4
  270. package/lib/time-picker/custom-elements.md +28 -0
  271. package/lib/time-picker/index.d.ts +7 -4
  272. package/lib/time-picker/index.js +15 -14
  273. package/lib/toggle/custom-elements.json +4 -4
  274. package/lib/toggle/custom-elements.md +19 -0
  275. package/lib/toggle/index.d.ts +14 -4
  276. package/lib/toggle/index.js +31 -12
  277. package/lib/tooltip/custom-elements.md +14 -0
  278. package/lib/tooltip/elements/title-tooltip.js +2 -2
  279. package/lib/tooltip/elements/tooltip-element.d.ts +1 -1
  280. package/lib/tooltip/helpers/overflow-tooltip.d.ts +1 -1
  281. package/lib/tooltip/helpers/overflow-tooltip.js +1 -1
  282. package/lib/tooltip/helpers/renderer.d.ts +1 -1
  283. package/lib/tooltip/helpers/types.d.ts +1 -1
  284. package/lib/tooltip/index.d.ts +9 -9
  285. package/lib/tooltip/index.js +18 -20
  286. package/lib/tooltip/managers/tooltip-manager.d.ts +2 -2
  287. package/lib/tooltip/managers/tooltip-manager.js +3 -7
  288. package/lib/tornado-chart/custom-elements.md +18 -0
  289. package/lib/tornado-chart/elements/tornado-chart.d.ts +4 -4
  290. package/lib/tornado-chart/elements/tornado-chart.js +8 -11
  291. package/lib/tornado-chart/elements/tornado-item.d.ts +5 -5
  292. package/lib/tornado-chart/elements/tornado-item.js +10 -12
  293. package/lib/tornado-chart/index.d.ts +2 -2
  294. package/lib/tornado-chart/index.js +2 -2
  295. package/lib/tree/custom-elements.json +4 -3
  296. package/lib/tree/custom-elements.md +32 -0
  297. package/lib/tree/elements/tree-item.d.ts +4 -4
  298. package/lib/tree/elements/tree-item.js +10 -13
  299. package/lib/tree/elements/tree.d.ts +6 -5
  300. package/lib/tree/elements/tree.js +9 -12
  301. package/lib/tree/helpers/filter.d.ts +2 -2
  302. package/lib/tree/helpers/renderer.d.ts +2 -2
  303. package/lib/tree/helpers/renderer.js +3 -3
  304. package/lib/tree/helpers/types.d.ts +1 -1
  305. package/lib/tree/index.d.ts +4 -4
  306. package/lib/tree/index.js +3 -3
  307. package/lib/tree/managers/tree-manager.d.ts +22 -10
  308. package/lib/tree/managers/tree-manager.js +56 -40
  309. package/lib/tree/themes/halo/dark/index.js +1 -1
  310. package/lib/tree/themes/halo/light/index.js +1 -1
  311. package/lib/tree/themes/solar/charcoal/index.js +1 -1
  312. package/lib/tree/themes/solar/pearl/index.js +1 -1
  313. package/lib/tree-select/custom-elements.json +10 -6
  314. package/lib/tree-select/custom-elements.md +26 -0
  315. package/lib/tree-select/helpers/types.d.ts +2 -2
  316. package/lib/tree-select/index.d.ts +28 -20
  317. package/lib/tree-select/index.js +44 -31
  318. package/lib/tree-select/themes/halo/dark/index.js +1 -1
  319. package/lib/tree-select/themes/halo/light/index.js +1 -1
  320. package/lib/tree-select/themes/solar/charcoal/index.js +1 -1
  321. package/lib/tree-select/themes/solar/pearl/index.js +1 -1
  322. package/lib/version.d.ts +1 -0
  323. package/lib/version.js +1 -0
  324. package/package.json +298 -15
  325. package/lib/autosuggest/helpers/const.d.ts +0 -2
  326. package/lib/autosuggest/helpers/const.js +0 -3
  327. package/lib/overlay-menu/helpers/uuid.d.ts +0 -7
  328. package/lib/overlay-menu/helpers/uuid.js +0 -13
@@ -6,27 +6,29 @@
6
6
  "attributes": [
7
7
  {
8
8
  "name": "icon",
9
- "description": "Name of a known icon to render.",
9
+ "description": "Name of a known icon to render or URL of SVG icon.",
10
10
  "type": "string | null"
11
11
  },
12
12
  {
13
13
  "name": "src",
14
14
  "description": "Src location of an svg icon.",
15
- "type": "string | null"
15
+ "type": "string | null",
16
+ "deprecatedMessage": "Use `icon` instead"
16
17
  }
17
18
  ],
18
19
  "properties": [
19
20
  {
20
21
  "name": "icon",
21
22
  "attribute": "icon",
22
- "description": "Name of a known icon to render.",
23
+ "description": "Name of a known icon to render or URL of SVG icon.",
23
24
  "type": "string | null"
24
25
  },
25
26
  {
26
27
  "name": "src",
27
28
  "attribute": "src",
28
29
  "description": "Src location of an svg icon.",
29
- "type": "string | null"
30
+ "type": "string | null",
31
+ "deprecatedMessage": "Use `icon` instead"
30
32
  }
31
33
  ]
32
34
  }
@@ -0,0 +1,8 @@
1
+ # ef-icon
2
+
3
+ ## Properties
4
+
5
+ | Property | Attribute | Type | Default | Description |
6
+ |----------|-----------|------------------|---------|--------------------------------------------------|
7
+ | `icon` | `icon` | `string \| null` | null | Name of a known icon to render or URL of SVG icon. |
8
+ | `src` | `src` | `string \| null` | null | Src location of an svg icon. |
@@ -1,6 +1,6 @@
1
1
  import { JSXInterface } from '../jsx';
2
- import { BasicElement, CSSResult, TemplateResult, PropertyValues } from '@refinitiv-ui/core';
3
- export { preload } from './utils/IconLoader';
2
+ import { BasicElement, CSSResultGroup, TemplateResult, PropertyValues } from '@refinitiv-ui/core';
3
+ export { preload } from './utils/IconLoader.js';
4
4
  export declare class Icon extends BasicElement {
5
5
  /**
6
6
  * Element version number
@@ -8,16 +8,17 @@ export declare class Icon extends BasicElement {
8
8
  */
9
9
  static get version(): string;
10
10
  /**
11
- * A `CSSResult` that will be used
11
+ * A `CSSResultGroup` that will be used
12
12
  * to style the host, slotted children
13
13
  * and the internal template of the element.
14
14
  * @return CSS template
15
15
  */
16
- static get styles(): CSSResult;
16
+ static get styles(): CSSResultGroup;
17
17
  private _icon;
18
18
  /**
19
- * Name of a known icon to render.
20
- * @example heart
19
+ * Name of a known icon to render or URL of SVG icon.
20
+ * @example heart | https://cdn.io/icons/heart.svg
21
+ * @default null
21
22
  */
22
23
  get icon(): string | null;
23
24
  set icon(value: string | null);
@@ -25,6 +26,8 @@ export declare class Icon extends BasicElement {
25
26
  /**
26
27
  * Src location of an svg icon.
27
28
  * @example https://cdn.io/icons/heart.svg
29
+ * @deprecated Use `icon` instead
30
+ * @default null
28
31
  */
29
32
  get src(): string | null;
30
33
  set src(value: string | null);
package/lib/icon/index.js CHANGED
@@ -1,14 +1,18 @@
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 { BasicElement, svg, css, customElement, property, unsafeHTML } from '@refinitiv-ui/core';
8
- import { VERSION } from '../';
9
- import { IconLoader } from './utils/IconLoader';
10
- export { preload } from './utils/IconLoader';
1
+ import { __decorate } from "tslib";
2
+ import { BasicElement, svg, css } from '@refinitiv-ui/core';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { unsafeSVG } from '@refinitiv-ui/core/lib/directives/unsafe-svg.js';
6
+ import { VERSION } from '../version.js';
7
+ import { IconLoader } from './utils/IconLoader.js';
8
+ export { preload } from './utils/IconLoader.js';
11
9
  const EmptyTemplate = svg ``;
10
+ /**
11
+ * Cache for reusing SVG template results across multiple icons.
12
+ * Reusing these templates increases performance dramatically when many icons are rendered.
13
+ * As the cache key is an absolute URL, we can assume no clashes will occur.
14
+ */
15
+ const iconTemplateCache = new Map();
12
16
  let Icon = class Icon extends BasicElement {
13
17
  constructor() {
14
18
  super(...arguments);
@@ -24,7 +28,7 @@ let Icon = class Icon extends BasicElement {
24
28
  return VERSION;
25
29
  }
26
30
  /**
27
- * A `CSSResult` that will be used
31
+ * A `CSSResultGroup` that will be used
28
32
  * to style the host, slotted children
29
33
  * and the internal template of the element.
30
34
  * @return CSS template
@@ -44,8 +48,9 @@ let Icon = class Icon extends BasicElement {
44
48
  `;
45
49
  }
46
50
  /**
47
- * Name of a known icon to render.
48
- * @example heart
51
+ * Name of a known icon to render or URL of SVG icon.
52
+ * @example heart | https://cdn.io/icons/heart.svg
53
+ * @default null
49
54
  */
50
55
  get icon() {
51
56
  return this._icon;
@@ -55,12 +60,14 @@ let Icon = class Icon extends BasicElement {
55
60
  if (oldValue !== value) {
56
61
  this._icon = value;
57
62
  void this.setIconSrc();
58
- void this.requestUpdate('icon', oldValue);
63
+ this.requestUpdate('icon', oldValue);
59
64
  }
60
65
  }
61
66
  /**
62
67
  * Src location of an svg icon.
63
68
  * @example https://cdn.io/icons/heart.svg
69
+ * @deprecated Use `icon` instead
70
+ * @default null
64
71
  */
65
72
  get src() {
66
73
  return this._src;
@@ -83,7 +90,7 @@ let Icon = class Icon extends BasicElement {
83
90
  set template(value) {
84
91
  if (this._template !== value) {
85
92
  this._template = value;
86
- void this.requestUpdate();
93
+ this.requestUpdate();
87
94
  }
88
95
  }
89
96
  /**
@@ -113,10 +120,13 @@ let Icon = class Icon extends BasicElement {
113
120
  * @returns {void}
114
121
  */
115
122
  async loadAndRenderIcon(src) {
116
- const svgBody = await IconLoader.loadSVG(src);
117
- if (svgBody) {
118
- this.template = svg `${unsafeHTML(svgBody)}`;
123
+ const iconTemplateCacheItem = iconTemplateCache.get(src);
124
+ if (!iconTemplateCacheItem) {
125
+ iconTemplateCache.set(src, IconLoader.loadSVG(src)
126
+ .then(body => svg `${unsafeSVG(body)}`));
127
+ return this.loadAndRenderIcon(src); // Load again and await cache result
119
128
  }
129
+ this.template = await iconTemplateCacheItem;
120
130
  }
121
131
  /**
122
132
  * Get and cache CDN prefix
@@ -1,4 +1,4 @@
1
- import { CdnLoader } from '@refinitiv-ui/utils';
1
+ import { CdnLoader } from '@refinitiv-ui/utils/lib/loader.js';
2
2
  /**
3
3
  * Caches and provides icon SVGs, Loaded either by name from CDN or directly by URL.
4
4
  * Uses singleton pattern
@@ -33,6 +33,11 @@ declare class IconLoader extends CdnLoader {
33
33
  * @returns Promise, which will be resolved with complete source.
34
34
  */
35
35
  getSrc(iconName: string): Promise<string>;
36
+ /**
37
+ * Loads icon and returns the body of the SVG
38
+ * @param icon Icon name to load
39
+ * @returns SVG body of the response
40
+ */
36
41
  loadSVG(icon: string): Promise<string | undefined>;
37
42
  }
38
43
  declare const iconLoaderInstance: IconLoader;
@@ -1,5 +1,5 @@
1
- import { CdnLoader, Deferred } from '@refinitiv-ui/utils';
2
- const isUrl = (str) => (/^https?:\/\//i).test(str);
1
+ import { CdnLoader, Deferred } from '@refinitiv-ui/utils/lib/loader.js';
2
+ const isUrl = (str) => (/^(https?:\/{2}|\.?\/)/i).test(str);
3
3
  /**
4
4
  * Caches and provides icon SVGs, Loaded either by name from CDN or directly by URL.
5
5
  * Uses singleton pattern
@@ -50,26 +50,33 @@ class IconLoader extends CdnLoader {
50
50
  * @returns Promise, which will be resolved with complete source.
51
51
  */
52
52
  async getSrc(iconName) {
53
+ if (isUrl(iconName)) {
54
+ return iconName;
55
+ }
53
56
  return iconName ? `${await this.getCdnPrefix()}${iconName}.svg` : '';
54
57
  }
58
+ /**
59
+ * Loads icon and returns the body of the SVG
60
+ * @param icon Icon name to load
61
+ * @returns SVG body of the response
62
+ */
55
63
  async loadSVG(icon) {
56
- if (icon) {
57
- if (!isUrl(icon)) {
58
- icon = await this.getSrc(icon);
59
- }
60
- const response = await this.load(icon);
61
- if (response && response.status === 200 && response.getResponseHeader('content-type') === 'image/svg+xml') {
62
- const container = document.createElement('svg');
63
- container.innerHTML = response.responseText;
64
- this.stripUnsafeNodes(...container.children);
65
- const svgRoot = container.firstElementChild;
66
- if (svgRoot) {
67
- svgRoot.setAttribute('focusable', 'false'); /* disable IE11 focus on SVG root element */
68
- }
69
- return Promise.resolve(container.innerHTML);
64
+ if (!icon) {
65
+ return;
66
+ }
67
+ icon = await this.getSrc(icon);
68
+ const response = await this.load(icon);
69
+ if (response && response.status === 200 && response.getResponseHeader('content-type') === 'image/svg+xml') {
70
+ const container = document.createElement('svg');
71
+ container.innerHTML = response.responseText;
72
+ this.stripUnsafeNodes(...container.children);
73
+ const svgRoot = container.firstElementChild;
74
+ if (svgRoot) {
75
+ svgRoot.setAttribute('focusable', 'false'); /* disable IE11 focus on SVG root element */
70
76
  }
71
- return Promise.resolve('');
77
+ return container.innerHTML;
72
78
  }
79
+ return '';
73
80
  }
74
81
  }
75
82
  const iconLoaderInstance = new IconLoader();
package/lib/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export declare const VERSION = "PUBLISH_VERSION";
1
+ export { VERSION } from './version.js';
2
+ export * from './events';
2
3
  export * from '@refinitiv-ui/core';
package/lib/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export const VERSION = '5.5.0';
1
+ export { VERSION } from './version.js';
2
+ export * from './events';
2
3
  export * from '@refinitiv-ui/core';
@@ -24,8 +24,9 @@
24
24
  },
25
25
  {
26
26
  "name": "legend-style",
27
- "description": "Set legend style i.e. `horizontal`, `vertical`.\nDefault is `vertical`.",
28
- "type": "\"vertical\" | \"horizontal\""
27
+ "description": "Set legend style i.e. `horizontal`, `vertical`.",
28
+ "type": "\"vertical\" | \"horizontal\"",
29
+ "default": "\"vertical\""
29
30
  }
30
31
  ],
31
32
  "properties": [
@@ -52,14 +53,9 @@
52
53
  {
53
54
  "name": "legendStyle",
54
55
  "attribute": "legend-style",
55
- "description": "Set legend style i.e. `horizontal`, `vertical`.\nDefault is `vertical`.",
56
- "type": "\"vertical\" | \"horizontal\""
57
- },
58
- {
59
- "name": "seriesList",
60
- "description": "Array of series instances in chart",
61
- "type": "object",
62
- "default": "[]"
56
+ "description": "Set legend style i.e. `horizontal`, `vertical`.",
57
+ "type": "\"vertical\" | \"horizontal\"",
58
+ "default": "\"vertical\""
63
59
  }
64
60
  ],
65
61
  "events": [
@@ -0,0 +1,31 @@
1
+ # ef-interactive-chart
2
+
3
+ A charting component that allows you to create several use cases of financial chart.
4
+ By lightweight-charts library.
5
+
6
+ ## Properties
7
+
8
+ | Property | Attribute | Type | Default | Description |
9
+ |----------------------|------------------------|------------------------------|------------|-------------------------------------------------|
10
+ | `config` | `config` | `InteractiveChartConfig` | null | Chart configurations for init chart |
11
+ | `disabledJumpButton` | `disabled-jump-button` | `boolean` | false | Hide jump to latest data button |
12
+ | `disabledLegend` | `disabled-legend` | `boolean` | false | Hide legend |
13
+ | `legendStyle` | `legend-style` | `"vertical" \| "horizontal"` | "vertical" | Set legend style i.e. `horizontal`, `vertical`. |
14
+
15
+ ## Methods
16
+
17
+ | Method | Type | Description |
18
+ |----------|--------------|------------------------------------------------|
19
+ | `colors` | `(): object` | List of available chart colors from the theme. |
20
+
21
+ ## Events
22
+
23
+ | Event | Description |
24
+ |---------------|--------------------------------------|
25
+ | `initialized` | Dispatched when chart is initialized |
26
+
27
+ ## Slots
28
+
29
+ | Name | Description |
30
+ |----------|---------------------------------------------|
31
+ | `legend` | Slot to use for implementing custom legend. |
@@ -1,5 +1,5 @@
1
- import { LineData, BarData, HistogramData, DeepPartial, ChartOptions, SeriesPartialOptions, LineSeriesPartialOptions, AreaSeriesPartialOptions, BarSeriesPartialOptions, CandlestickSeriesPartialOptions, HistogramSeriesPartialOptions, LineStyleOptions, AreaStyleOptions, BarStyleOptions, CandlestickStyleOptions, HistogramStyleOptions, ISeriesApi, SeriesType } from 'lightweight-charts';
2
- import type { RGBColor, HSLColor } from '@refinitiv-ui/utils';
1
+ import type { LineData, BarData, HistogramData, DeepPartial, ChartOptions, SeriesPartialOptions, LineSeriesPartialOptions, AreaSeriesPartialOptions, BarSeriesPartialOptions, CandlestickSeriesPartialOptions, HistogramSeriesPartialOptions, LineStyleOptions, AreaStyleOptions, BarStyleOptions, CandlestickStyleOptions, HistogramStyleOptions, ISeriesApi, SeriesType } from 'lightweight-charts';
2
+ import type { RGBColor, HSLColor } from '@refinitiv-ui/utils/lib/color.js';
3
3
  declare type SeriesOptions = AreaSeriesPartialOptions | BarSeriesPartialOptions | CandlestickSeriesPartialOptions | HistogramSeriesPartialOptions | LineSeriesPartialOptions;
4
4
  declare type SeriesStyleOptions = LineStyleOptions & AreaStyleOptions & BarStyleOptions & CandlestickStyleOptions & HistogramStyleOptions;
5
5
  declare type SeriesData = LineData[] | BarData[] | HistogramData[];
@@ -1,10 +1,10 @@
1
1
  import { JSXInterface } from '../jsx';
2
- import { ResponsiveElement, TemplateResult, CSSResult, PropertyValues, ElementSize } from '@refinitiv-ui/core';
2
+ import { ResponsiveElement, TemplateResult, CSSResultGroup, PropertyValues, ElementSize } from '@refinitiv-ui/core';
3
3
  import { IChartApi, MouseEventParams } from 'lightweight-charts';
4
- import '../tooltip';
4
+ import '../tooltip/index.js';
5
5
  import type { InteractiveChartConfig, InteractiveChartSeries, RowLegend, SeriesList, SeriesDataItem } from './helpers/types';
6
- import { LegendStyle } from './helpers/types';
7
- export { InteractiveChartConfig, InteractiveChartSeries, LegendStyle };
6
+ import { LegendStyle } from './helpers/types.js';
7
+ export type { InteractiveChartConfig, InteractiveChartSeries, LegendStyle };
8
8
  /**
9
9
  * A charting component that allows you to create several use cases of financial chart.
10
10
  * By lightweight-charts library.
@@ -43,9 +43,9 @@ export declare class InteractiveChart extends ResponsiveElement {
43
43
  deprecatedLegendStyle: LegendStyle | undefined;
44
44
  /**
45
45
  * Set legend style i.e. `horizontal`, `vertical`.
46
- * Default is `vertical`.
47
46
  * @param {LegendStyle} value legend style value
48
47
  * @type {"vertical" | "horizontal"} type of legend style
48
+ * @default vertical
49
49
  **/
50
50
  set legendStyle(value: LegendStyle);
51
51
  get legendStyle(): LegendStyle;
@@ -54,7 +54,10 @@ export declare class InteractiveChart extends ResponsiveElement {
54
54
  * when deprecated features are used.
55
55
  */
56
56
  private deprecationNotice;
57
- /** Array of series instances in chart */
57
+ /**
58
+ * @ignore
59
+ * Array of series instances in chart
60
+ */
58
61
  seriesList: SeriesList[];
59
62
  private jumpButtonInitialized;
60
63
  private legendInitialized;
@@ -351,12 +354,12 @@ export declare class InteractiveChart extends ResponsiveElement {
351
354
  */
352
355
  colors(): string[];
353
356
  /**
354
- * A `CSSResult` that will be used
357
+ * A `CSSResultGroup` that will be used
355
358
  * to style the host, slotted children
356
359
  * and the internal template of the element.
357
360
  * @return CSS template
358
361
  */
359
- static get styles(): CSSResult | CSSResult[];
362
+ static get styles(): CSSResultGroup;
360
363
  /**
361
364
  * A `TemplateResult` that will be used
362
365
  * to render the updated internal template.
@@ -1,18 +1,15 @@
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
1
  var InteractiveChart_1;
8
- import { ResponsiveElement, html, css, customElement, property, query, DeprecationNotice } from '@refinitiv-ui/core';
9
- import { color as parseColor } from '@refinitiv-ui/utils';
2
+ import { __decorate } from "tslib";
3
+ import { ResponsiveElement, html, css, DeprecationNotice } from '@refinitiv-ui/core';
4
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
5
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
6
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
7
+ import { VERSION } from '../version.js';
8
+ import { color as parseColor } from '@refinitiv-ui/utils/lib/color.js';
10
9
  import { createChart as chart } from 'lightweight-charts';
11
- import { VERSION } from '../';
12
- import '../tooltip';
13
- import { LegendStyle } from './helpers/types';
14
- import { merge } from './helpers/merge';
15
- export { LegendStyle };
10
+ import '../tooltip/index.js';
11
+ import { LegendStyle } from './helpers/types.js';
12
+ import { merge } from './helpers/merge.js';
16
13
  const NOT_AVAILABLE_DATA = 'N/A';
17
14
  const NO_DATA_POINT = '--';
18
15
  /**
@@ -42,7 +39,10 @@ let InteractiveChart = InteractiveChart_1 = class InteractiveChart extends Respo
42
39
  * when deprecated features are used.
43
40
  */
44
41
  this.deprecationNotice = new DeprecationNotice('`legendstyle` attribute and property are deprecated. Use `legend-style` for attribute and `legendStyle` property instead.');
45
- /** Array of series instances in chart */
42
+ /**
43
+ * @ignore
44
+ * Array of series instances in chart
45
+ */
46
46
  this.seriesList = [];
47
47
  this.jumpButtonInitialized = false;
48
48
  this.legendInitialized = false;
@@ -119,15 +119,15 @@ let InteractiveChart = InteractiveChart_1 = class InteractiveChart extends Respo
119
119
  }
120
120
  /**
121
121
  * Set legend style i.e. `horizontal`, `vertical`.
122
- * Default is `vertical`.
123
122
  * @param {LegendStyle} value legend style value
124
123
  * @type {"vertical" | "horizontal"} type of legend style
124
+ * @default vertical
125
125
  **/
126
126
  set legendStyle(value) {
127
127
  const oldValue = this.legendStyle;
128
128
  if (oldValue !== value) {
129
129
  this._legendStyle = value;
130
- void this.requestUpdate('legend-style', oldValue);
130
+ this.requestUpdate('legend-style', oldValue);
131
131
  }
132
132
  }
133
133
  get legendStyle() {
@@ -1011,7 +1011,7 @@ let InteractiveChart = InteractiveChart_1 = class InteractiveChart extends Respo
1011
1011
  return colors;
1012
1012
  }
1013
1013
  /**
1014
- * A `CSSResult` that will be used
1014
+ * A `CSSResultGroup` that will be used
1015
1015
  * to style the host, slotted children
1016
1016
  * and the internal template of the element.
1017
1017
  * @return CSS template
@@ -58,7 +58,7 @@
58
58
  "name": "disabled",
59
59
  "description": "Set disabled state.",
60
60
  "type": "boolean",
61
- "default": "\"false\""
61
+ "default": "false"
62
62
  }
63
63
  ],
64
64
  "properties": [
@@ -114,12 +114,12 @@
114
114
  "type": "string | null"
115
115
  },
116
116
  {
117
- "name": "highlightable",
117
+ "name": "highlightable (readonly)",
118
118
  "description": "Return true if the item can be highlighted. True if not disabled and type is Text",
119
119
  "type": "boolean"
120
120
  },
121
121
  {
122
- "name": "isTruncated",
122
+ "name": "isTruncated (readonly)",
123
123
  "description": "Getter returning if the label is truncated",
124
124
  "type": "boolean"
125
125
  },
@@ -135,7 +135,7 @@
135
135
  "attribute": "disabled",
136
136
  "description": "Set disabled state.",
137
137
  "type": "boolean",
138
- "default": "\"false\""
138
+ "default": "false"
139
139
  }
140
140
  ],
141
141
  "slots": [
@@ -0,0 +1,29 @@
1
+ # ef-item
2
+
3
+ Used as a basic building block to compose complex custom elements,
4
+ additionally it can be used by applications
5
+ to create simple menus or navigation panels.
6
+
7
+ ## Properties
8
+
9
+ | Property | Attribute | Type | Default | Description |
10
+ |----------------------------|---------------|--------------------|---------|--------------------------------------------------|
11
+ | `disabled` | `disabled` | `boolean` | false | Set disabled state. |
12
+ | `for` | `for` | `string \| null` | null | Specifies which element an item is bound to |
13
+ | `highlightable (readonly)` | | `boolean` | | Return true if the item can be highlighted. True if not disabled and type is Text |
14
+ | `highlighted` | `highlighted` | `boolean` | false | Highlight the item |
15
+ | `icon` | `icon` | `string \| null` | null | Set the icon name from the ef-icon list |
16
+ | `isTruncated (readonly)` | | `boolean` | | Getter returning if the label is truncated |
17
+ | `label` | `label` | `string \| null` | null | The text for the label indicating the meaning of the item.<br />By having both `label` and content, `label` always takes priority |
18
+ | `multiple` | `multiple` | `boolean` | false | Is the item part of a multiple selection |
19
+ | `selected` | `selected` | `boolean` | false | Indicates that the item is selected |
20
+ | `subLabel` | `sub-label` | `string \| null` | null | The`subLabel` property represents the text beneath the label. |
21
+ | `type` | `type` | `ItemType \| null` | null | If defined value can be `text`, `header` or `divider` |
22
+ | `value` | `value` | `string` | "" | The content of this attribute represents the value of the item. |
23
+
24
+ ## Slots
25
+
26
+ | Name | Description |
27
+ |---------|--------------------------------------------------|
28
+ | `left` | Used to render the content on the left of the label. |
29
+ | `right` | Used to render the content on the right of the label. |
@@ -1,4 +1,4 @@
1
- import { DataItem } from '@refinitiv-ui/utils';
1
+ import type { DataItem } from '@refinitiv-ui/utils/lib/collection.js';
2
2
  export declare type ItemType = 'text' | 'header' | 'divider';
3
3
  interface CommonItem extends DataItem {
4
4
  /**
@@ -1,8 +1,8 @@
1
1
  import { JSXInterface } from '../jsx';
2
- import { ControlElement, CSSResult, PropertyValues, TemplateResult } from '@refinitiv-ui/core';
3
- import '../icon';
4
- import '../checkbox';
5
- import { ItemType } from './helpers/types';
2
+ import { ControlElement, CSSResultGroup, PropertyValues, TemplateResult } from '@refinitiv-ui/core';
3
+ import type { ItemType } from './helpers/types';
4
+ import '../icon/index.js';
5
+ import '../checkbox/index.js';
6
6
  export * from './helpers/types';
7
7
  /**
8
8
  * Used as a basic building block to compose complex custom elements,
@@ -10,7 +10,7 @@ export * from './helpers/types';
10
10
  * to create simple menus or navigation panels.
11
11
  *
12
12
  * @attr {string} value - The content of this attribute represents the value of the item.
13
- * @prop {string} [value=] - The content of this attribute represents the value of the item.
13
+ * @prop {string} [value=""] - The content of this attribute represents the value of the item.
14
14
  *
15
15
  * @attr {boolean} disabled - Set disabled state.
16
16
  * @prop {boolean} [disabled=false] - Set disabled state.
@@ -25,10 +25,11 @@ export declare class Item extends ControlElement {
25
25
  */
26
26
  static get version(): string;
27
27
  /**
28
- * @returns `CSSResult` that will be used to style the host,
28
+ * `CSSResultGroup` that will be used to style the host,
29
29
  * slotted children and the internal template of the element.
30
+ * @returns CSS template
30
31
  */
31
- static get styles(): CSSResult | CSSResult[];
32
+ static get styles(): CSSResultGroup;
32
33
  /**
33
34
  * The text for the label indicating the meaning of the item.
34
35
  * By having both `label` and content, `label` always takes priority
@@ -43,10 +44,19 @@ export declare class Item extends ControlElement {
43
44
  * Set the icon name from the ef-icon list
44
45
  */
45
46
  icon: string | null;
47
+ private _selected;
46
48
  /**
47
49
  * Indicates that the item is selected
50
+ * @param value selected value
51
+ * @default false
48
52
  */
49
- selected: boolean;
53
+ set selected(value: boolean);
54
+ get selected(): boolean;
55
+ /**
56
+ * Aria indicating current select state
57
+ * @ignore
58
+ */
59
+ ariaSelected: string;
50
60
  /**
51
61
  * Is the item part of a multiple selection
52
62
  */