@refinitiv-ui/elements 5.6.0 → 5.8.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/lib/accordion/custom-elements.md +18 -0
  3. package/lib/appstate-bar/custom-elements.md +22 -0
  4. package/lib/autosuggest/custom-elements.json +24 -4
  5. package/lib/autosuggest/custom-elements.md +54 -0
  6. package/lib/autosuggest/index.d.ts +4 -0
  7. package/lib/autosuggest/index.js +4 -0
  8. package/lib/button/custom-elements.json +2 -2
  9. package/lib/button/custom-elements.md +23 -0
  10. package/lib/button-bar/custom-elements.md +9 -0
  11. package/lib/calendar/custom-elements.json +8 -6
  12. package/lib/calendar/custom-elements.md +35 -0
  13. package/lib/calendar/index.d.ts +2 -0
  14. package/lib/calendar/index.js +2 -0
  15. package/lib/canvas/custom-elements.json +7 -5
  16. package/lib/canvas/custom-elements.md +27 -0
  17. package/lib/canvas/index.d.ts +1 -0
  18. package/lib/canvas/index.js +1 -0
  19. package/lib/card/custom-elements.json +3 -1
  20. package/lib/card/custom-elements.md +24 -0
  21. package/lib/card/index.d.ts +2 -0
  22. package/lib/card/index.js +2 -0
  23. package/lib/chart/custom-elements.json +1 -1
  24. package/lib/chart/custom-elements.md +16 -0
  25. package/lib/checkbox/custom-elements.json +12 -8
  26. package/lib/checkbox/custom-elements.md +18 -0
  27. package/lib/checkbox/index.d.ts +3 -1
  28. package/lib/checkbox/index.js +2 -0
  29. package/lib/clock/custom-elements.json +8 -4
  30. package/lib/clock/custom-elements.md +28 -0
  31. package/lib/clock/index.d.ts +2 -0
  32. package/lib/clock/index.js +2 -0
  33. package/lib/clock/themes/halo/dark/index.js +1 -1
  34. package/lib/clock/themes/halo/light/index.js +1 -1
  35. package/lib/clock/themes/solar/charcoal/index.js +1 -1
  36. package/lib/clock/themes/solar/pearl/index.js +1 -1
  37. package/lib/collapse/custom-elements.md +27 -0
  38. package/lib/color-dialog/custom-elements.json +29 -16
  39. package/lib/color-dialog/custom-elements.md +39 -0
  40. package/lib/color-dialog/index.d.ts +8 -8
  41. package/lib/color-dialog/index.js +8 -8
  42. package/lib/combo-box/custom-elements.json +28 -16
  43. package/lib/combo-box/custom-elements.md +35 -0
  44. package/lib/combo-box/index.d.ts +10 -2
  45. package/lib/combo-box/index.js +10 -1
  46. package/lib/combo-box/themes/halo/dark/index.js +1 -1
  47. package/lib/combo-box/themes/halo/light/index.js +1 -1
  48. package/lib/combo-box/themes/solar/charcoal/index.js +1 -1
  49. package/lib/combo-box/themes/solar/pearl/index.js +1 -1
  50. package/lib/counter/custom-elements.json +8 -4
  51. package/lib/counter/custom-elements.md +11 -0
  52. package/lib/counter/index.d.ts +2 -0
  53. package/lib/counter/index.js +2 -0
  54. package/lib/datetime-picker/custom-elements.json +52 -23
  55. package/lib/datetime-picker/custom-elements.md +57 -0
  56. package/lib/datetime-picker/index.d.ts +15 -4
  57. package/lib/datetime-picker/index.js +15 -4
  58. package/lib/dialog/custom-elements.json +34 -12
  59. package/lib/dialog/custom-elements.md +47 -0
  60. package/lib/dialog/index.d.ts +7 -10
  61. package/lib/dialog/index.js +7 -10
  62. package/lib/email-field/custom-elements.json +81 -94
  63. package/lib/email-field/custom-elements.md +37 -0
  64. package/lib/email-field/index.d.ts +43 -115
  65. package/lib/email-field/index.js +44 -244
  66. package/lib/flag/custom-elements.md +10 -0
  67. package/lib/flag/index.d.ts +2 -0
  68. package/lib/flag/index.js +2 -0
  69. package/lib/header/custom-elements.md +18 -0
  70. package/lib/heatmap/custom-elements.md +26 -0
  71. package/lib/icon/custom-elements.md +8 -0
  72. package/lib/icon/index.d.ts +2 -0
  73. package/lib/icon/index.js +2 -0
  74. package/lib/interactive-chart/custom-elements.json +6 -10
  75. package/lib/interactive-chart/custom-elements.md +31 -0
  76. package/lib/interactive-chart/index.d.ts +5 -2
  77. package/lib/interactive-chart/index.js +5 -2
  78. package/lib/item/custom-elements.json +4 -4
  79. package/lib/item/custom-elements.md +29 -0
  80. package/lib/item/index.d.ts +11 -2
  81. package/lib/item/index.js +25 -4
  82. package/lib/label/custom-elements.md +11 -0
  83. package/lib/layout/custom-elements.md +26 -0
  84. package/lib/led-gauge/custom-elements.json +4 -4
  85. package/lib/led-gauge/custom-elements.md +17 -0
  86. package/lib/led-gauge/index.d.ts +1 -0
  87. package/lib/led-gauge/index.js +1 -0
  88. package/lib/list/custom-elements.json +18 -5
  89. package/lib/list/custom-elements.md +32 -0
  90. package/lib/list/helpers/list-renderer.js +2 -0
  91. package/lib/list/index.d.ts +19 -2
  92. package/lib/list/index.js +34 -1
  93. package/lib/loader/custom-elements.md +5 -0
  94. package/lib/multi-input/custom-elements.json +7 -6
  95. package/lib/multi-input/custom-elements.md +43 -0
  96. package/lib/multi-input/index.d.ts +4 -0
  97. package/lib/multi-input/index.js +4 -0
  98. package/lib/notification/custom-elements.md +26 -0
  99. package/lib/number-field/custom-elements.json +99 -54
  100. package/lib/number-field/custom-elements.md +42 -0
  101. package/lib/number-field/index.d.ts +92 -47
  102. package/lib/number-field/index.js +113 -80
  103. package/lib/overlay/custom-elements.json +26 -13
  104. package/lib/overlay/custom-elements.md +54 -0
  105. package/lib/overlay/elements/overlay.d.ts +5 -0
  106. package/lib/overlay-menu/custom-elements.json +70 -20
  107. package/lib/overlay-menu/custom-elements.md +44 -0
  108. package/lib/overlay-menu/index.d.ts +13 -11
  109. package/lib/overlay-menu/index.js +13 -11
  110. package/lib/pagination/custom-elements.md +27 -0
  111. package/lib/panel/custom-elements.md +11 -0
  112. package/lib/password-field/custom-elements.json +62 -67
  113. package/lib/password-field/custom-elements.md +39 -0
  114. package/lib/password-field/index.d.ts +42 -94
  115. package/lib/password-field/index.js +48 -194
  116. package/lib/pill/custom-elements.json +8 -6
  117. package/lib/pill/custom-elements.md +22 -0
  118. package/lib/pill/index.d.ts +1 -1
  119. package/lib/pill/index.js +1 -1
  120. package/lib/progress-bar/custom-elements.md +18 -0
  121. package/lib/radio-button/custom-elements.json +8 -6
  122. package/lib/radio-button/custom-elements.md +19 -0
  123. package/lib/radio-button/index.d.ts +6 -5
  124. package/lib/radio-button/index.js +5 -4
  125. package/lib/rating/custom-elements.md +17 -0
  126. package/lib/search-field/custom-elements.json +70 -74
  127. package/lib/search-field/custom-elements.md +41 -0
  128. package/lib/search-field/index.d.ts +43 -100
  129. package/lib/search-field/index.js +46 -215
  130. package/lib/select/custom-elements.json +5 -4
  131. package/lib/select/custom-elements.md +24 -0
  132. package/lib/select/index.d.ts +11 -3
  133. package/lib/select/index.js +65 -26
  134. package/lib/sidebar-layout/custom-elements.json +2 -6
  135. package/lib/sidebar-layout/custom-elements.md +21 -0
  136. package/lib/sidebar-layout/index.d.ts +2 -1
  137. package/lib/slider/custom-elements.json +4 -4
  138. package/lib/slider/custom-elements.md +28 -0
  139. package/lib/slider/index.d.ts +1 -1
  140. package/lib/slider/index.js +1 -1
  141. package/lib/sparkline/custom-elements.json +4 -4
  142. package/lib/sparkline/custom-elements.md +16 -0
  143. package/lib/sparkline/index.d.ts +3 -1
  144. package/lib/sparkline/index.js +2 -0
  145. package/lib/swing-gauge/custom-elements.json +5 -3
  146. package/lib/swing-gauge/custom-elements.md +17 -0
  147. package/lib/swing-gauge/index.d.ts +3 -1
  148. package/lib/swing-gauge/index.js +3 -1
  149. package/lib/tab/custom-elements.json +2 -2
  150. package/lib/tab/custom-elements.md +22 -0
  151. package/lib/tab-bar/custom-elements.md +11 -0
  152. package/lib/text-field/custom-elements.json +78 -89
  153. package/lib/text-field/custom-elements.md +35 -0
  154. package/lib/text-field/index.d.ts +50 -92
  155. package/lib/text-field/index.js +81 -230
  156. package/lib/time-picker/custom-elements.json +4 -4
  157. package/lib/time-picker/custom-elements.md +28 -0
  158. package/lib/time-picker/index.d.ts +3 -0
  159. package/lib/time-picker/index.js +3 -0
  160. package/lib/toggle/custom-elements.json +8 -6
  161. package/lib/toggle/custom-elements.md +19 -0
  162. package/lib/toggle/index.d.ts +2 -1
  163. package/lib/toggle/index.js +1 -0
  164. package/lib/tooltip/custom-elements.md +14 -0
  165. package/lib/tornado-chart/custom-elements.md +18 -0
  166. package/lib/tree/custom-elements.json +4 -3
  167. package/lib/tree/custom-elements.md +32 -0
  168. package/lib/tree/elements/tree.d.ts +1 -0
  169. package/lib/tree/elements/tree.js +1 -0
  170. package/lib/tree/managers/tree-manager.d.ts +20 -2
  171. package/lib/tree/managers/tree-manager.js +55 -28
  172. package/lib/tree/themes/halo/dark/index.js +1 -1
  173. package/lib/tree/themes/halo/light/index.js +1 -1
  174. package/lib/tree/themes/solar/charcoal/index.js +1 -1
  175. package/lib/tree/themes/solar/pearl/index.js +1 -1
  176. package/lib/tree-select/custom-elements.json +10 -6
  177. package/lib/tree-select/custom-elements.md +26 -0
  178. package/lib/tree-select/index.d.ts +5 -3
  179. package/lib/tree-select/index.js +3 -2
  180. package/lib/tree-select/themes/halo/dark/index.js +1 -1
  181. package/lib/tree-select/themes/halo/light/index.js +1 -1
  182. package/lib/tree-select/themes/solar/charcoal/index.js +1 -1
  183. package/lib/tree-select/themes/solar/pearl/index.js +1 -1
  184. package/lib/version.js +1 -1
  185. package/package.json +293 -12
@@ -42,13 +42,13 @@
42
42
  "name": "readonly",
43
43
  "description": "Set readonly state",
44
44
  "type": "boolean",
45
- "default": "\"false\""
45
+ "default": "false"
46
46
  },
47
47
  {
48
48
  "name": "disabled",
49
49
  "description": "Set disabled state",
50
50
  "type": "boolean",
51
- "default": "\"false\""
51
+ "default": "false"
52
52
  }
53
53
  ],
54
54
  "properties": [
@@ -96,14 +96,14 @@
96
96
  "attribute": "readonly",
97
97
  "description": "Set readonly state",
98
98
  "type": "boolean",
99
- "default": "\"false\""
99
+ "default": "false"
100
100
  },
101
101
  {
102
102
  "name": "disabled",
103
103
  "attribute": "disabled",
104
104
  "description": "Set disabled state",
105
105
  "type": "boolean",
106
- "default": "\"false\""
106
+ "default": "false"
107
107
  }
108
108
  ],
109
109
  "events": [
@@ -0,0 +1,28 @@
1
+ # ef-time-picker
2
+
3
+ Control the time input
4
+
5
+ ## Properties
6
+
7
+ | Property | Attribute | Type | Default | Description |
8
+ |---------------|----------------|------------------|---------|--------------------------------------------------|
9
+ | `amPm` | `am-pm` | `boolean` | false | Toggles 12hr time display |
10
+ | `disabled` | `disabled` | `boolean` | false | Set disabled state |
11
+ | `hours` | `hours` | `number \| null` | null | Hours time segment in 24hr format |
12
+ | `minutes` | `minutes` | `number \| null` | null | Minutes time segment |
13
+ | `readonly` | `readonly` | `boolean` | false | Set readonly state |
14
+ | `seconds` | `seconds` | `number \| null` | null | Seconds time segment |
15
+ | `showSeconds` | `show-seconds` | `boolean` | false | Flag to show seconds time segment in display.<br />Seconds are automatically shown when `hh:mm:ss` time format is provided as a value. |
16
+ | `value` | `value` | `string` | "" | Value of the element |
17
+
18
+ ## Methods
19
+
20
+ | Method | Type | Description |
21
+ |----------|------------|-------------------------|
22
+ | `toggle` | `(): void` | Toggles the AM/PM state |
23
+
24
+ ## Events
25
+
26
+ | Event | Description |
27
+ |-----------------|-------------------------------|
28
+ | `value-changed` | Dispatched when value changes |
@@ -43,6 +43,7 @@ export declare class TimePicker extends ControlElement {
43
43
  /**
44
44
  * Hours time segment in 24hr format
45
45
  * @param hours hours value
46
+ * @default null
46
47
  * @returns {void}
47
48
  */
48
49
  set hours(hours: number | null);
@@ -54,6 +55,7 @@ export declare class TimePicker extends ControlElement {
54
55
  /**
55
56
  * Minutes time segment
56
57
  * @param minutes minutes value
58
+ * @default null
57
59
  * @returns {void}
58
60
  */
59
61
  set minutes(minutes: number | null);
@@ -65,6 +67,7 @@ export declare class TimePicker extends ControlElement {
65
67
  /**
66
68
  * Seconds time segment
67
69
  * @param seconds seconds value
70
+ * @default null
68
71
  * @returns {void}
69
72
  */
70
73
  set seconds(seconds: number | null);
@@ -127,6 +127,7 @@ let TimePicker = class TimePicker extends ControlElement {
127
127
  /**
128
128
  * Hours time segment in 24hr format
129
129
  * @param hours hours value
130
+ * @default null
130
131
  * @returns {void}
131
132
  */
132
133
  set hours(hours) {
@@ -149,6 +150,7 @@ let TimePicker = class TimePicker extends ControlElement {
149
150
  /**
150
151
  * Minutes time segment
151
152
  * @param minutes minutes value
153
+ * @default null
152
154
  * @returns {void}
153
155
  */
154
156
  set minutes(minutes) {
@@ -171,6 +173,7 @@ let TimePicker = class TimePicker extends ControlElement {
171
173
  /**
172
174
  * Seconds time segment
173
175
  * @param seconds seconds value
176
+ * @default null
174
177
  * @returns {void}
175
178
  */
176
179
  set seconds(seconds) {
@@ -20,19 +20,20 @@
20
20
  {
21
21
  "name": "checked",
22
22
  "description": "Value of toggle",
23
- "type": "boolean"
23
+ "type": "boolean",
24
+ "default": "false"
24
25
  },
25
26
  {
26
27
  "name": "readonly",
27
28
  "description": "Set readonly state",
28
29
  "type": "boolean",
29
- "default": "\"false\""
30
+ "default": "false"
30
31
  },
31
32
  {
32
33
  "name": "disabled",
33
34
  "description": "Set disabled state",
34
35
  "type": "boolean",
35
- "default": "\"false\""
36
+ "default": "false"
36
37
  }
37
38
  ],
38
39
  "properties": [
@@ -54,21 +55,22 @@
54
55
  "name": "checked",
55
56
  "attribute": "checked",
56
57
  "description": "Value of toggle",
57
- "type": "boolean"
58
+ "type": "boolean",
59
+ "default": "false"
58
60
  },
59
61
  {
60
62
  "name": "readonly",
61
63
  "attribute": "readonly",
62
64
  "description": "Set readonly state",
63
65
  "type": "boolean",
64
- "default": "\"false\""
66
+ "default": "false"
65
67
  },
66
68
  {
67
69
  "name": "disabled",
68
70
  "attribute": "disabled",
69
71
  "description": "Set disabled state",
70
72
  "type": "boolean",
71
- "default": "\"false\""
73
+ "default": "false"
72
74
  }
73
75
  ],
74
76
  "events": [
@@ -0,0 +1,19 @@
1
+ # ef-toggle
2
+
3
+ Form control that can toggle between 2 states
4
+
5
+ ## Properties
6
+
7
+ | Property | Attribute | Type | Default | Description |
8
+ |----------------|-----------------|-----------|---------|-------------------------|
9
+ | `checked` | `checked` | `boolean` | false | Value of toggle |
10
+ | `checkedLabel` | `checked-label` | `string` | "" | Label of toggle checked |
11
+ | `disabled` | `disabled` | `boolean` | false | Set disabled state |
12
+ | `label` | `label` | `string` | "" | Label of toggle |
13
+ | `readonly` | `readonly` | `boolean` | false | Set readonly state |
14
+
15
+ ## Events
16
+
17
+ | Event | Description |
18
+ |-------------------|--------------------------------------------|
19
+ | `checked-changed` | Fired when the `checked` property changes. |
@@ -17,7 +17,7 @@ export declare class Toggle extends ControlElement {
17
17
  * @returns version number
18
18
  */
19
19
  static get version(): string;
20
- protected readonly defaultRole = "switch";
20
+ protected readonly defaultRole: string | null;
21
21
  /**
22
22
  * Label of toggle checked
23
23
  */
@@ -30,6 +30,7 @@ export declare class Toggle extends ControlElement {
30
30
  /**
31
31
  * Value of toggle
32
32
  * @param value new checked value
33
+ * @default false
33
34
  */
34
35
  set checked(value: boolean);
35
36
  get checked(): boolean;
@@ -53,6 +53,7 @@ let Toggle = class Toggle extends ControlElement {
53
53
  /**
54
54
  * Value of toggle
55
55
  * @param value new checked value
56
+ * @default false
56
57
  */
57
58
  set checked(value) {
58
59
  const oldValue = this._checked;
@@ -0,0 +1,14 @@
1
+ # ef-tooltip
2
+
3
+ Tooltip displays extra information when the
4
+ user hovers the pointer over an item.
5
+
6
+ ## Properties
7
+
8
+ | Property | Attribute | Type | Default | Description |
9
+ |-------------------|--------------------|--------------------------------------------------|---------|--------------------------------------------------|
10
+ | `condition` | | `TooltipCondition` | | Provide a function to test against the target.<br />Return `true` if the target matches |
11
+ | `position` | `position` | `"auto" \| "above" \| "right" \| "below" \| "left"` | "auto" | The position of the tooltip. Use the following values:<br />`auto` (default) - display based on mouse enter coordinates<br />`above` - display above the element<br />`right` - display to the right of the element<br />`below` - display beneath the element<br />`left` - display to the left of the element |
12
+ | `renderer` | | `TooltipRenderer` | | A renderer to define tooltip internal content.<br />Return undefined, `String`, `HTMLElement` or `DocumentFragment`.<br />If the content is not present, tooltip will not be displayed |
13
+ | `selector` | `selector` | `string` | "" | CSS selector to match the tooltip |
14
+ | `transitionStyle` | `transition-style` | `TooltipTransitionStyle` | "fade" | Set the transition style.<br />Value can be `fade`, `zoom`, `slide-down`, `slide-up`, `slide-right`,<br />`slide-left`, `slide-right-down`, `slide-right-up`, `slide-left-down`, `slide-left-up`, or null in case of no transition |
@@ -0,0 +1,18 @@
1
+ # ef-tornado-chart
2
+
3
+ A data visualization that helps to
4
+ show the differences or similarities between values
5
+
6
+ ## Properties
7
+
8
+ | Property | Attribute | Type | Default | Description |
9
+ |-------------|-------------|------------------|---------|---------------------------------|
10
+ | `primary` | `primary` | `string \| null` | null | Primary bar chart legend text |
11
+ | `secondary` | `secondary` | `string \| null` | null | Secondary bar chart legend text |
12
+
13
+ ## Slots
14
+
15
+ | Name | Description |
16
+ |----------|--------------------------------------------------|
17
+ | `footer` | Any HTML contents to display at chart footer section |
18
+ | `header` | Any HTML contents to display at chart header section |
@@ -27,7 +27,7 @@
27
27
  "name": "stateless",
28
28
  "description": "Disable selections",
29
29
  "type": "boolean",
30
- "default": "\"false\""
30
+ "default": "false"
31
31
  }
32
32
  ],
33
33
  "properties": [
@@ -61,7 +61,8 @@
61
61
  {
62
62
  "name": "values",
63
63
  "description": "Selected items in tree",
64
- "type": "string[]"
64
+ "type": "string[]",
65
+ "default": "[]"
65
66
  },
66
67
  {
67
68
  "name": "data",
@@ -73,7 +74,7 @@
73
74
  "attribute": "stateless",
74
75
  "description": "Disable selections",
75
76
  "type": "boolean",
76
- "default": "\"false\""
77
+ "default": "false"
77
78
  }
78
79
  ],
79
80
  "events": [
@@ -0,0 +1,32 @@
1
+ # ef-tree
2
+
3
+ Displays a tree structure
4
+ to be used for menus and group selections
5
+
6
+ ## Properties
7
+
8
+ | Property | Attribute | Type | Default | Description |
9
+ |--------------|---------------|----------------|--------------------------|--------------------------------------------------|
10
+ | `data` | | `TreeData<T>` | | Data object to be used for creating tree |
11
+ | `multiple` | `multiple` | `boolean` | false | Allows multiple items to be selected |
12
+ | `noRelation` | `no-relation` | `boolean` | false | Breaks the relationship when multiple<br />selection mode is enabled |
13
+ | `query` | `query` | `string` | "" | Query string applied to tree |
14
+ | `renderer` | | `TreeRenderer` | "new TreeRenderer(this)" | Renderer used for generating tree items |
15
+ | `stateless` | `stateless` | `boolean` | false | Disable selections |
16
+ | `values` | | `string[]` | [] | Selected items in tree |
17
+
18
+ ## Methods
19
+
20
+ | Method | Type | Description |
21
+ |---------------|------------|-----------------------------|
22
+ | `checkAll` | `(): void` | Checks all editable items |
23
+ | `collapseAll` | `(): void` | Collapses all groups |
24
+ | `expandAll` | `(): void` | Expands all groups |
25
+ | `uncheckAll` | `(): void` | Unchecks all editable items |
26
+
27
+ ## Events
28
+
29
+ | Event | Description |
30
+ |--------------------|--------------------------------------------------|
31
+ | `expanded-changed` | Fired when an item's expanded state has changed. |
32
+ | `value-changed` | Fired when the users changed selection item. |
@@ -166,6 +166,7 @@ export declare class Tree<T extends TreeDataItem = TreeDataItem> extends List<T>
166
166
  * Selected items in tree
167
167
  * @override
168
168
  * @type {string[]}
169
+ * @default []
169
170
  */
170
171
  get values(): string[];
171
172
  set values(value: string[]);
@@ -359,6 +359,7 @@ let Tree = class Tree extends List {
359
359
  * Selected items in tree
360
360
  * @override
361
361
  * @type {string[]}
362
+ * @default []
362
363
  */
363
364
  get values() {
364
365
  return this.manager.checkedItems.map(item => {
@@ -78,6 +78,24 @@ export declare class TreeManager<T extends TreeDataItem> {
78
78
  * @returns `True` if the item is checked
79
79
  */
80
80
  private isItemChecked;
81
+ /**
82
+ * Is the item checked indeterminately?
83
+ * @param item Original data item
84
+ * @returns `True` if the item has managed relationships and contains checked descendants
85
+ */
86
+ private isItemCheckedIndeterminate;
87
+ /**
88
+ * Determines whether the item is unchecked and can be changed to a checked state.
89
+ * @param item Original data item
90
+ * @returns True if the item can be changed to 'checked'.
91
+ */
92
+ private canCheckItem;
93
+ /**
94
+ * Determines whether the item is checked and can be changed to an unchecked state.
95
+ * @param item Original data item
96
+ * @returns True if the item can be changed to 'unchecked'.
97
+ */
98
+ private canUncheckItem;
81
99
  /**
82
100
  * Makes an item visible
83
101
  * @param item Original data item
@@ -92,10 +110,10 @@ export declare class TreeManager<T extends TreeDataItem> {
92
110
  private hideItem;
93
111
  /**
94
112
  * Forces a modification event, so that the renderer can update.
95
- * @param item Item of which to find ancestors
113
+ * @param item Item of which to find path
96
114
  * @returns {void}
97
115
  */
98
- private forceUpdateOnAncestors;
116
+ private forceUpdateOnPath;
99
117
  /**
100
118
  * Sets the mode (algorithm) the manager should use
101
119
  * @param mode Tree manager mode
@@ -48,7 +48,10 @@ export class TreeManager {
48
48
  */
49
49
  get checkedItems() {
50
50
  return this.composer.queryItems((item) => {
51
- return this.isItemChecked(item) && (!this.manageRelationships || !this.getItemChildren(item).length);
51
+ if (this.manageRelationships && this.isItemParent(item)) {
52
+ return false;
53
+ }
54
+ return this.isItemChecked(item);
52
55
  }, Infinity);
53
56
  }
54
57
  /**
@@ -112,8 +115,44 @@ export class TreeManager {
112
115
  * @returns `True` if the item is checked
113
116
  */
114
117
  isItemChecked(item) {
118
+ if (this.manageRelationships && this.isItemParent(item)) {
119
+ return !this.getItemChildren(item).some(child => !this.isItemChecked(child));
120
+ }
115
121
  return this.composer.getItemPropertyValue(item, 'selected') === true;
116
122
  }
123
+ /**
124
+ * Is the item checked indeterminately?
125
+ * @param item Original data item
126
+ * @returns `True` if the item has managed relationships and contains checked descendants
127
+ */
128
+ isItemCheckedIndeterminate(item) {
129
+ if (this.manageRelationships && this.isItemParent(item)) {
130
+ return this.getItemDescendants(item).some(desc => this.isItemChecked(desc));
131
+ }
132
+ return false;
133
+ }
134
+ /**
135
+ * Determines whether the item is unchecked and can be changed to a checked state.
136
+ * @param item Original data item
137
+ * @returns True if the item can be changed to 'checked'.
138
+ */
139
+ canCheckItem(item) {
140
+ if (this.manageRelationships && this.isItemParent(item)) {
141
+ return this.getItemChildren(item).some(child => this.canCheckItem(child));
142
+ }
143
+ return this.isItemCheckable(item) && this.composer.getItemPropertyValue(item, 'selected') !== true;
144
+ }
145
+ /**
146
+ * Determines whether the item is checked and can be changed to an unchecked state.
147
+ * @param item Original data item
148
+ * @returns True if the item can be changed to 'unchecked'.
149
+ */
150
+ canUncheckItem(item) {
151
+ if (this.manageRelationships && this.isItemParent(item)) {
152
+ return this.getItemChildren(item).some(child => this.canUncheckItem(child));
153
+ }
154
+ return this.isItemCheckable(item) && this.composer.getItemPropertyValue(item, 'selected') === true;
155
+ }
117
156
  /**
118
157
  * Makes an item visible
119
158
  * @param item Original data item
@@ -133,15 +172,12 @@ export class TreeManager {
133
172
  }
134
173
  /**
135
174
  * Forces a modification event, so that the renderer can update.
136
- * @param item Item of which to find ancestors
175
+ * @param item Item of which to find path
137
176
  * @returns {void}
138
177
  */
139
- forceUpdateOnAncestors(item) {
140
- this.composer.getItemAncestors(item).forEach(ancestor => {
141
- const allSelected = !this.getItemChildren(ancestor).some(child => this.isItemCheckable(child) && !this.isItemChecked(child));
142
- this.composer.setItemPropertyValue(ancestor, 'selected', allSelected);
143
- this.updateItem(ancestor);
144
- });
178
+ forceUpdateOnPath(item) {
179
+ const path = [...this.getItemAncestors(item), item];
180
+ path.forEach(item => this.composer.updateItemTimestamp(item));
145
181
  }
146
182
  /**
147
183
  * Sets the mode (algorithm) the manager should use
@@ -221,16 +257,13 @@ export class TreeManager {
221
257
  * @returns Checked state of the item
222
258
  */
223
259
  getItemCheckedState(item) {
224
- const descendants = this.getItemDescendants(item).filter(descendant => !this.composer.isItemLocked(descendant));
225
- const isParent = descendants.length > 0;
226
- if (isParent && this.manageRelationships) {
227
- const checkedCount = descendants.reduce((count, item) => {
228
- return count + (this.isItemChecked(item) === true ? 1 : 0);
229
- }, 0);
230
- return !checkedCount ? CheckedState.UNCHECKED
231
- : checkedCount === descendants.length ? CheckedState.CHECKED : CheckedState.INDETERMINATE;
260
+ if (this.isItemChecked(item)) {
261
+ return CheckedState.CHECKED;
232
262
  }
233
- return this.isItemChecked(item) === true ? CheckedState.CHECKED : CheckedState.UNCHECKED;
263
+ if (this.isItemCheckedIndeterminate(item)) {
264
+ return CheckedState.INDETERMINATE;
265
+ }
266
+ return CheckedState.UNCHECKED;
234
267
  }
235
268
  /**
236
269
  * Gets an item's ancestors
@@ -308,17 +341,14 @@ export class TreeManager {
308
341
  return this._checkItem(item);
309
342
  }
310
343
  _checkItem(item, manageRelationships = this.manageRelationships) {
311
- if (this.isItemCheckable(item) && !this.isItemChecked(item)) {
344
+ if (this.canCheckItem(item)) {
312
345
  this.composer.setItemPropertyValue(item, 'selected', true);
313
346
  if (manageRelationships) {
314
- this.forceUpdateOnAncestors(item);
347
+ this.forceUpdateOnPath(item);
315
348
  this.getItemDescendants(item).forEach(descendant => this._checkItem(descendant, false));
316
349
  }
317
350
  return true;
318
351
  }
319
- if (this.isItemParent(item)) {
320
- this.updateItem(item); // update parent checked state
321
- }
322
352
  return false;
323
353
  }
324
354
  /**
@@ -330,17 +360,14 @@ export class TreeManager {
330
360
  return this._uncheckItem(item);
331
361
  }
332
362
  _uncheckItem(item, manageRelationships = this.manageRelationships) {
333
- if (this.isItemCheckable(item) && this.isItemChecked(item)) {
363
+ if (this.canUncheckItem(item)) {
334
364
  this.composer.setItemPropertyValue(item, 'selected', false);
335
365
  if (manageRelationships) {
336
- this.forceUpdateOnAncestors(item);
366
+ this.forceUpdateOnPath(item);
337
367
  this.getItemDescendants(item).forEach(descendant => this._uncheckItem(descendant, false));
338
368
  }
339
369
  return true;
340
370
  }
341
- if (this.isItemParent(item)) {
342
- this.updateItem(item); // update parent checked state
343
- }
344
371
  return false;
345
372
  }
346
373
  /**
@@ -349,7 +376,7 @@ export class TreeManager {
349
376
  * @returns `True` if the item is modified
350
377
  */
351
378
  toggleItem(item) {
352
- return this.isItemChecked(item) ? this.uncheckItem(item) : this.checkItem(item);
379
+ return this.checkItem(item) || this.uncheckItem(item);
353
380
  }
354
381
  /**
355
382
  * Checks all items
@@ -2,6 +2,6 @@ import '@refinitiv-ui/elements/lib/checkbox/themes/halo/dark';
2
2
  import '@refinitiv-ui/elements/lib/icon/themes/halo/dark';
3
3
  import '@refinitiv-ui/elements/lib/item/themes/halo/dark';
4
4
 
5
- elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#fff;font-weight:500}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:#334bff;color:#fff}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(204,204,204,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#999;background-color:transparent;font-size:83%;font-weight:500;border:none;height:24px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#404040,#404040) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host{outline:0;cursor:pointer;padding:0 8px;min-height:24px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-1px;border-top:1px solid #404040;border-bottom:1px solid #404040;background-color:#1a1a1a;min-height:28px}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none}:host [part=toggle]{width:24px;height:24px;margin-top:-4px;margin-bottom:-4px;margin-left:-4px;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .1s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{margin:0 8px 0 0;flex:none}:host [part=label]{padding:4px 8px;word-break:break-word;line-height:1.2}:host([type=header]){align-items:center}:host [part=sub-label]{font-size:90%}:host([sub-label]){padding:4px 8px}:host([selected]:not([highlighted]):not([focused])){background-color:#333}:host([selected]:not([multiple])){background-image:linear-gradient(#334bff,#334bff);background-size:4px 100%;background-position:left top;background-repeat:no-repeat}:host([selected][focused]),:host([selected][highlighted]){color:#fff}:host([group]:not([focused]):not([highlighted])){background-color:#262626}:host([group][focused]:not([multiple])),:host([group][highlighted]:not([multiple])){color:#fff;background-color:#333}:host [part=indent]{font-size:20px}');
5
+ elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#fff;font-weight:500}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:#334bff;color:#fff}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(204,204,204,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#999;background-color:transparent;font-size:83%;font-weight:500;border:none;height:24px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#404040,#404040) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host{outline:0;cursor:pointer;padding:0 8px;min-height:24px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-1px;border-top:1px solid #404040;border-bottom:1px solid #404040;background-color:#1a1a1a;min-height:28px}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none}:host [part=toggle]{width:24px;height:24px;margin-top:-4px;margin-bottom:-4px;margin-left:-4px;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .1s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{margin:0 8px 0 0;flex:none}:host [part=label]{word-break:break-word;padding:4px 6px 4px 0;line-height:1.2}:host([type=header]){align-items:center}:host [part=sub-label]{font-size:90%}:host([sub-label]){padding:4px 8px}:host([selected]:not([highlighted]):not([focused])){background-color:#333}:host([selected]:not([multiple])){background-image:linear-gradient(#334bff,#334bff);background-size:4px 100%;background-position:left top;background-repeat:no-repeat}:host([selected][focused]),:host([selected][highlighted]){color:#fff}:host([group]:not([focused]):not([highlighted])){background-color:#262626}:host([group][focused]:not([multiple])),:host([group][highlighted]:not([multiple])){color:#fff;background-color:#333}:host [part=indent]{font-size:20px}:host [part=label-icon]{margin:0 4px 0 0}');
6
6
 
7
7
  elf.customStyles.define('ef-tree', ':host{--item-indent:8px;--item-height:24px;color:#ccc;background-color:transparent;touch-action:manipulation;scrollbar-face-color:#595959;scrollbar-shadow-color:#595959;scrollbar-highlight-color:#595959;scrollbar-arrow-color:#595959;scrollbar-track-color:#1a1a1a;scrollbar-3dlight-color:#1a1a1a;scrollbar-darkshadow-color:#1a1a1a;scrollbar-color:#595959 #1a1a1a;scrollbar-width:thin;overflow-x:auto}:host(:focus){outline:0}:host([readonly]) [part=list-item]{cursor:default}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#595959;border-radius:0;border:1px solid transparent}::-webkit-scrollbar-thumb:hover{background:#334bff}::-webkit-scrollbar-thumb:active{background:#0f1e8a}::-webkit-scrollbar-track{background:#1a1a1a}::-webkit-scrollbar-thumb:horizontal{background-size:auto 6px;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#595959,#595959);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:horizontal:hover{background-image:linear-gradient(to bottom,#334bff,#334bff);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:horizontal:active{background-image:linear-gradient(to bottom,#0f1e8a,#0f1e8a);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical{background-size:6px auto;background-repeat:repeat-y;background-image:linear-gradient(to right,#595959,#595959);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical:hover{background-image:linear-gradient(to right,#334bff,#334bff);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical:active{background-image:linear-gradient(to right,#0f1e8a,#0f1e8a);background-color:transparent;background-position:center}::-webkit-scrollbar-track:horizontal{border-top:1px solid #0d0d0d;border-bottom:1px solid #0d0d0d}::-webkit-scrollbar-track:vertical{border-left:1px solid #0d0d0d;border-right:1px solid #0d0d0d}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #1a1a1a;height:16px;width:16px;display:none;border:1px solid #0d0d0d}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:hover{background-color:#334bff;border:1px solid #334bff}::-webkit-scrollbar-button:active{background-color:#0f1e8a;border:1px solid #0d0d0d}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{border-bottom-color:#0d0d0d;background-image:linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px;border-bottom-color:#334bff}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px;border-bottom-color:#0d0d0d}::-webkit-scrollbar-button:vertical:end:increment{border-top-color:#0d0d0d;background-image:linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px;border-top-color:#334bff}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px;border-top-color:#0d0d0d}::-webkit-scrollbar-button:horizontal:start:decrement{border-right-color:#0d0d0d;background-image:linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px;border-right-color:#334bff}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px;border-right-color:#0d0d0d}::-webkit-scrollbar-button:horizontal:end:increment{border-left-color:#0d0d0d;background-image:linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc),linear-gradient(#ccc,#ccc);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px;border-left-color:#334bff}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px;border-left-color:#0d0d0d}');
@@ -2,6 +2,6 @@ import '@refinitiv-ui/elements/lib/checkbox/themes/halo/light';
2
2
  import '@refinitiv-ui/elements/lib/icon/themes/halo/light';
3
3
  import '@refinitiv-ui/elements/lib/item/themes/halo/light';
4
4
 
5
- elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#0d0d0d;font-weight:500}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:#334bff;color:#fff}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(64,64,64,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#737373;background-color:transparent;font-size:83%;font-weight:500;border:none;height:24px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#d9d9d9,#d9d9d9) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host{outline:0;cursor:pointer;padding:0 8px;min-height:24px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-1px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background-color:#fafafa;min-height:28px}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none}:host [part=toggle]{width:24px;height:24px;margin-top:-4px;margin-bottom:-4px;margin-left:-4px;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .1s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{margin:0 8px 0 0;flex:none}:host [part=label]{padding:4px 8px;word-break:break-word;line-height:1.2}:host([type=header]){align-items:center}:host [part=sub-label]{font-size:90%}:host([sub-label]){padding:4px 8px}:host([selected]:not([highlighted]):not([focused])){background-color:#e6e6e6}:host([selected]:not([multiple])){background-image:linear-gradient(#334bff,#334bff);background-size:4px 100%;background-position:left top;background-repeat:no-repeat}:host([selected][focused]),:host([selected][highlighted]){color:#fff}:host([group]:not([focused]):not([highlighted])){background-color:#f2f2f2}:host([group][focused]:not([multiple])),:host([group][highlighted]:not([multiple])){color:#0d0d0d;background-color:#e6e6e6}:host [part=indent]{font-size:20px}');
5
+ elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#0d0d0d;font-weight:500}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:#334bff;color:#fff}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(64,64,64,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#737373;background-color:transparent;font-size:83%;font-weight:500;border:none;height:24px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#d9d9d9,#d9d9d9) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host{outline:0;cursor:pointer;padding:0 8px;min-height:24px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-top:-1px;border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9;background-color:#fafafa;min-height:28px}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none}:host [part=toggle]{width:24px;height:24px;margin-top:-4px;margin-bottom:-4px;margin-left:-4px;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .1s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{margin:0 8px 0 0;flex:none}:host [part=label]{word-break:break-word;padding:4px 6px 4px 0;line-height:1.2}:host([type=header]){align-items:center}:host [part=sub-label]{font-size:90%}:host([sub-label]){padding:4px 8px}:host([selected]:not([highlighted]):not([focused])){background-color:#e6e6e6}:host([selected]:not([multiple])){background-image:linear-gradient(#334bff,#334bff);background-size:4px 100%;background-position:left top;background-repeat:no-repeat}:host([selected][focused]),:host([selected][highlighted]){color:#fff}:host([group]:not([focused]):not([highlighted])){background-color:#f2f2f2}:host([group][focused]:not([multiple])),:host([group][highlighted]:not([multiple])){color:#0d0d0d;background-color:#e6e6e6}:host [part=indent]{font-size:20px}:host [part=label-icon]{margin:0 4px 0 0}');
6
6
 
7
7
  elf.customStyles.define('ef-tree', ':host{--item-indent:8px;--item-height:24px;color:#404040;background-color:transparent;touch-action:manipulation;scrollbar-face-color:#999;scrollbar-shadow-color:#999;scrollbar-highlight-color:#999;scrollbar-arrow-color:#999;scrollbar-track-color:#f2f2f2;scrollbar-3dlight-color:#f2f2f2;scrollbar-darkshadow-color:#f2f2f2;scrollbar-color:#999 #f2f2f2;scrollbar-width:thin;overflow-x:auto}:host(:focus){outline:0}:host([readonly]) [part=list-item]{cursor:default}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#999;border-radius:0;border:1px solid transparent}::-webkit-scrollbar-thumb:hover{background:#334bff}::-webkit-scrollbar-thumb:active{background:#0f1e8a}::-webkit-scrollbar-track{background:#f2f2f2}::-webkit-scrollbar-thumb:horizontal{background-size:auto 6px;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#999,#999);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:horizontal:hover{background-image:linear-gradient(to bottom,#334bff,#334bff);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:horizontal:active{background-image:linear-gradient(to bottom,#0f1e8a,#0f1e8a);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical{background-size:6px auto;background-repeat:repeat-y;background-image:linear-gradient(to right,#999,#999);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical:hover{background-image:linear-gradient(to right,#334bff,#334bff);background-color:transparent;background-position:center}::-webkit-scrollbar-thumb:vertical:active{background-image:linear-gradient(to right,#0f1e8a,#0f1e8a);background-color:transparent;background-position:center}::-webkit-scrollbar-track:horizontal{border-top:1px solid #fff;border-bottom:1px solid #fff}::-webkit-scrollbar-track:vertical{border-left:1px solid #fff;border-right:1px solid #fff}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #f2f2f2;height:16px;width:16px;display:none;border:1px solid #fff}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:hover{background-color:#334bff;border:1px solid #334bff}::-webkit-scrollbar-button:active{background-color:#0f1e8a;border:1px solid #fff}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{border-bottom-color:#fff;background-image:linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px;border-bottom-color:#334bff}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 8px,9.55px 7px,8.55px 6px,7.55px 5px,6.55px 4px,5.55px 5px,4.55px 6px,3.55px 7px,2.55px 8px;border-bottom-color:#fff}::-webkit-scrollbar-button:vertical:end:increment{border-top-color:#fff;background-image:linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px;border-top-color:#334bff}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:10.55px 4px,9.55px 5px,8.55px 6px,7.55px 7px,6.55px 8px,5.55px 7px,4.55px 6px,3.55px 5px,2.55px 4px;border-top-color:#fff}::-webkit-scrollbar-button:horizontal:start:decrement{border-right-color:#fff;background-image:linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px;border-right-color:#334bff}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:7.5px 10.55px,6.5px 9.55px,5.5px 8.55px,4.5px 7.55px,3.5px 6.55px,4.5px 5.55px,5.5px 4.55px,6.5px 3.55px,7.5px 2.55px;border-right-color:#fff}::-webkit-scrollbar-button:horizontal:end:increment{border-left-color:#fff;background-image:linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959),linear-gradient(#595959,#595959);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px;border-left-color:#334bff}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff);background-position:5px 10.55px,6px 9.55px,7px 8.55px,8px 7.55px,9px 6.55px,8px 5.55px,7px 4.55px,6px 3.55px,5px 2.55px;border-left-color:#fff}');
@@ -2,6 +2,6 @@ import '@refinitiv-ui/elements/lib/checkbox/themes/solar/charcoal';
2
2
  import '@refinitiv-ui/elements/lib/icon/themes/solar/charcoal';
3
3
  import '@refinitiv-ui/elements/lib/item/themes/solar/charcoal';
4
4
 
5
- elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#f93}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:rgba(255,255,255,.1)}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(194,194,194,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#c2c2c2;background-color:#4a4a52;font-size:100%;font-weight:400;border:1px solid #0a0a0a;height:22px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#2e2e33,#2e2e33) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host [part=sub-label]{font-size:80%}:host{outline:0;cursor:pointer;padding:0 7px;min-height:22px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:29px;background-color:#151516;border-bottom:1px solid #0a0a0a}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none;font-size:22px}:host [part=toggle]{width:22px;height:22px;margin-top:0;margin-bottom:0;margin-left:0;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .2s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{margin:0 5px 0 0;flex:none}:host [part=label]{padding:4px 5px;word-break:break-word}:host([depth="0"]){background-color:#212124}:host([highlighted]){background-color:#2e2d33}:host([focused=visible]){outline:#f93 dotted 1px;outline-offset:-1px;border-color:transparent}:host(:last-of-type){border-color:transparent}');
5
+ elf.customStyles.define('ef-tree-item', '@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){:host(:after){content:\'\';min-height:inherit;font-size:0}}:host([selected]){color:#f93}:host([readonly]){cursor:default}:host([focused]),:host([highlighted]){background-color:rgba(255,255,255,.1)}:host([focused]:not([selected])),:host([highlighted]:not([selected])){color:#fff}:host [part=center],:host [part=sub-label]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}:host([disabled]){color:rgba(194,194,194,.5)}:host([type=divider]),:host([type=header]){pointer-events:none;min-height:auto}:host([type=divider]) [part=sub-label],:host([type=header]) [part=sub-label]{display:none}:host([type=header]){color:#c2c2c2;background-color:#4a4a52;font-size:100%;font-weight:400;border:1px solid #0a0a0a;height:22px;align-items:flex-end;margin:0;min-height:0;text-transform:uppercase}:host([type=divider]){border:none;padding:0;margin:0;height:5px;background:linear-gradient(#2e2e33,#2e2e33) 0 center/calc(100% - (0px * 2)) 1px no-repeat}:host [part=checkbox],:host [part=icon],:host [part=left] ::slotted(*){margin:0 .5em 0 0}:host [part=right] ::slotted(*){margin-left:.5em}:host [part=sub-label]{font-size:80%}:host{outline:0;cursor:pointer;padding:0 7px;min-height:22px;box-sizing:border-box;touch-action:manipulation;min-width:300px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:29px;background-color:#151516;border-bottom:1px solid #0a0a0a}:host(:after){content:\'\';min-height:inherit;font-size:0}:host [part=indent]{height:0;width:0;flex:none;font-size:22px}:host [part=toggle]{width:22px;height:22px;margin-top:0;margin-bottom:0;margin-left:0;max-height:100%;display:flex;align-items:center;justify-content:center;flex:none}:host [part~=toggle-icon]{transition:transform .2s}:host [part~=toggle-icon-expanded]{transform:rotate(90deg)}:host [part=checkbox]{flex:none;margin:0 8px 0 0}:host [part=label]{word-break:break-word;padding:4px 6px 4px 0}:host([depth="0"]){background-color:#212124}:host([highlighted]){background-color:#2e2d33}:host([focused=visible]){outline:#f93 dotted 1px;outline-offset:-1px;border-color:transparent}:host(:last-of-type){border-color:transparent}:host [part=label-icon]{margin:0 4px 0 0}');
6
6
 
7
7
  elf.customStyles.define('ef-tree', ':host{--item-indent:7px;--item-height:22px;color:#c2c2c2;background-color:transparent;touch-action:manipulation;scrollbar-face-color:#666570;scrollbar-shadow-color:#666570;scrollbar-highlight-color:#666570;scrollbar-arrow-color:#666570;scrollbar-track-color:#2e2e33;scrollbar-3dlight-color:#2e2e33;scrollbar-darkshadow-color:#2e2e33;scrollbar-color:#666570 #2e2e33;overflow-x:auto}:host(:focus){outline:0}:host([readonly]) [part=list-item]{cursor:default}::-webkit-scrollbar{width:13px;height:13px}::-webkit-scrollbar-button{background:0 0/1px 2px no-repeat #2e2e33;height:12px;width:12px;display:block}::-webkit-scrollbar-thumb{background:#666570;border-radius:7px;border:2px solid #2e2e33}::-webkit-scrollbar-thumb:hover{background:#e2e2e2}::-webkit-scrollbar-thumb:active{background:#f93}::-webkit-scrollbar-track{background:#2e2e33}::-webkit-scrollbar-corner{background:#2e2e33}::-webkit-scrollbar-button:end:decrement,::-webkit-scrollbar-button:start:increment{display:none}::-webkit-scrollbar-button:horizontal{background-size:2px 1px}::-webkit-scrollbar-button:vertical:start:decrement{background-image:linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:hover{background-image:linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:start:decrement:active{background-image:linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93);background-position:10px 6.5px,9px 5.5px,8px 4.5px,7px 3.5px,6px 2.5px,5px 3.5px,4px 4.5px,3px 5.5px,2px 6.5px}::-webkit-scrollbar-button:vertical:end:increment{background-image:linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:hover{background-image:linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:vertical:end:increment:active{background-image:linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93);background-position:10px 3.5px,9px 4.5px,8px 5.5px,7px 6.5px,6px 7.5px,5px 6.5px,4px 5.5px,3px 4.5px,2px 3.5px}::-webkit-scrollbar-button:horizontal:start:decrement{background-image:linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:hover{background-image:linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:start:decrement:active{background-image:linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93);background-position:6.5px 10px,5.5px 9px,4.5px 8px,3.5px 7px,2.5px 6px,3.5px 5px,4.5px 4px,5.5px 3px,6.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment{background-image:linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570),linear-gradient(#666570,#666570);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:hover{background-image:linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2),linear-gradient(#e2e2e2,#e2e2e2);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}::-webkit-scrollbar-button:horizontal:end:increment:active{background-image:linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93),linear-gradient(#f93,#f93);background-position:3.5px 10px,4.5px 9px,5.5px 8px,6.5px 7px,7.5px 6px,6.5px 5px,5.5px 4px,4.5px 3px,3.5px 2px}');