@refinitiv-ui/elements 5.10.0 → 5.10.2-build.1841524222.1.59

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 (130) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +4 -4
  3. package/lib/accordion/index.js +2 -2
  4. package/lib/appstate-bar/index.js +2 -2
  5. package/lib/autosuggest/index.js +6 -6
  6. package/lib/button/index.d.ts +10 -4
  7. package/lib/button/index.js +26 -8
  8. package/lib/button-bar/index.d.ts +49 -0
  9. package/lib/button-bar/index.js +151 -11
  10. package/lib/calendar/constants.js +1 -1
  11. package/lib/calendar/index.d.ts +1 -1
  12. package/lib/calendar/index.js +11 -11
  13. package/lib/calendar/types.d.ts +1 -1
  14. package/lib/calendar/utils.js +1 -1
  15. package/lib/canvas/index.js +2 -2
  16. package/lib/card/index.js +5 -5
  17. package/lib/chart/index.js +4 -4
  18. package/lib/checkbox/index.js +3 -4
  19. package/lib/checkbox/themes/halo/dark/index.js +1 -1
  20. package/lib/checkbox/themes/halo/light/index.js +1 -1
  21. package/lib/clock/index.js +6 -6
  22. package/lib/clock/utils/TickManager.js +2 -2
  23. package/lib/collapse/index.js +3 -3
  24. package/lib/color-dialog/elements/color-palettes.js +1 -1
  25. package/lib/color-dialog/elements/grayscale-palettes.js +2 -2
  26. package/lib/color-dialog/elements/palettes.js +3 -3
  27. package/lib/color-dialog/helpers/value-model.js +1 -1
  28. package/lib/color-dialog/index.d.ts +1 -1
  29. package/lib/color-dialog/index.js +6 -6
  30. package/lib/combo-box/helpers/filter.d.ts +1 -1
  31. package/lib/combo-box/helpers/types.d.ts +1 -1
  32. package/lib/combo-box/index.d.ts +4 -4
  33. package/lib/combo-box/index.js +9 -9
  34. package/lib/counter/index.js +2 -2
  35. package/lib/datetime-picker/index.js +5 -5
  36. package/lib/datetime-picker/utils.js +1 -1
  37. package/lib/dialog/custom-elements.json +11 -0
  38. package/lib/dialog/custom-elements.md +4 -3
  39. package/lib/dialog/index.d.ts +18 -1
  40. package/lib/dialog/index.js +35 -10
  41. package/lib/email-field/index.d.ts +1 -1
  42. package/lib/email-field/index.js +2 -2
  43. package/lib/flag/index.js +3 -3
  44. package/lib/flag/utils/FlagLoader.d.ts +1 -1
  45. package/lib/flag/utils/FlagLoader.js +1 -1
  46. package/lib/header/index.js +2 -2
  47. package/lib/heatmap/helpers/color.d.ts +1 -1
  48. package/lib/heatmap/helpers/color.js +1 -1
  49. package/lib/heatmap/index.js +5 -5
  50. package/lib/icon/index.js +3 -3
  51. package/lib/icon/utils/IconLoader.d.ts +1 -1
  52. package/lib/icon/utils/IconLoader.js +1 -1
  53. package/lib/interactive-chart/helpers/types.d.ts +1 -1
  54. package/lib/interactive-chart/index.js +4 -4
  55. package/lib/item/helpers/types.d.ts +1 -1
  56. package/lib/item/index.js +3 -3
  57. package/lib/label/index.js +4 -4
  58. package/lib/layout/index.js +2 -2
  59. package/lib/led-gauge/index.js +2 -2
  60. package/lib/list/custom-elements.json +13 -0
  61. package/lib/list/custom-elements.md +10 -9
  62. package/lib/list/helpers/types.d.ts +1 -1
  63. package/lib/list/index.d.ts +5 -1
  64. package/lib/list/index.js +10 -3
  65. package/lib/list/renderer.d.ts +1 -1
  66. package/lib/loader/index.js +1 -1
  67. package/lib/multi-input/helpers/types.d.ts +1 -1
  68. package/lib/multi-input/index.js +6 -6
  69. package/lib/notification/elements/notification-tray.js +3 -3
  70. package/lib/notification/elements/notification.js +2 -2
  71. package/lib/number-field/index.d.ts +1 -1
  72. package/lib/number-field/index.js +4 -3
  73. package/lib/overlay/elements/overlay-backdrop.js +2 -2
  74. package/lib/overlay/elements/overlay-viewport.js +1 -1
  75. package/lib/overlay/elements/overlay.js +4 -4
  76. package/lib/overlay/managers/focus-manager.js +1 -1
  77. package/lib/overlay/managers/interaction-lock-manager.js +1 -1
  78. package/lib/overlay/managers/viewport-manager.js +1 -1
  79. package/lib/overlay/managers/zindex-manager.js +1 -1
  80. package/lib/overlay-menu/helpers/types.d.ts +1 -1
  81. package/lib/overlay-menu/index.js +6 -6
  82. package/lib/overlay-menu/managers/menu-manager.js +1 -1
  83. package/lib/pagination/index.d.ts +2 -2
  84. package/lib/pagination/index.js +9 -11
  85. package/lib/panel/index.js +2 -2
  86. package/lib/password-field/index.d.ts +2 -2
  87. package/lib/password-field/index.js +3 -3
  88. package/lib/pill/index.js +3 -3
  89. package/lib/progress-bar/index.js +3 -3
  90. package/lib/radio-button/index.d.ts +2 -2
  91. package/lib/radio-button/index.js +10 -7
  92. package/lib/radio-button/themes/halo/dark/index.js +1 -1
  93. package/lib/radio-button/themes/halo/light/index.js +1 -1
  94. package/lib/rating/index.js +4 -4
  95. package/lib/search-field/index.d.ts +2 -2
  96. package/lib/search-field/index.js +3 -3
  97. package/lib/select/index.js +6 -6
  98. package/lib/sidebar-layout/index.js +4 -4
  99. package/lib/slider/index.js +14 -4
  100. package/lib/sparkline/index.js +4 -4
  101. package/lib/swing-gauge/index.js +5 -5
  102. package/lib/tab/custom-elements.json +13 -0
  103. package/lib/tab/custom-elements.md +1 -0
  104. package/lib/tab/index.d.ts +13 -15
  105. package/lib/tab/index.js +28 -35
  106. package/lib/tab-bar/custom-elements.json +12 -0
  107. package/lib/tab-bar/custom-elements.md +7 -0
  108. package/lib/tab-bar/index.d.ts +56 -7
  109. package/lib/tab-bar/index.js +139 -40
  110. package/lib/text-field/index.d.ts +1 -1
  111. package/lib/text-field/index.js +4 -4
  112. package/lib/time-picker/index.d.ts +1 -1
  113. package/lib/time-picker/index.js +9 -9
  114. package/lib/toggle/index.js +2 -2
  115. package/lib/tooltip/index.js +4 -4
  116. package/lib/tooltip/managers/tooltip-manager.js +2 -2
  117. package/lib/tornado-chart/elements/tornado-chart.js +2 -2
  118. package/lib/tornado-chart/elements/tornado-item.js +3 -3
  119. package/lib/tree/elements/tree-item.d.ts +33 -0
  120. package/lib/tree/elements/tree-item.js +83 -24
  121. package/lib/tree/elements/tree.d.ts +2 -1
  122. package/lib/tree/elements/tree.js +3 -2
  123. package/lib/tree/helpers/types.d.ts +1 -1
  124. package/lib/tree/managers/tree-manager.d.ts +1 -1
  125. package/lib/tree-select/index.d.ts +3 -3
  126. package/lib/tree-select/index.js +9 -9
  127. package/lib/tree-select/themes/halo/dark/index.js +1 -1
  128. package/lib/tree-select/themes/halo/light/index.js +1 -1
  129. package/lib/version.js +1 -1
  130. package/package.json +24 -295
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { BasicElement, html, 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 { query } from '@refinitiv-ui/core/lib/decorators/query.js';
6
- import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/decorators/query.js';
6
+ import { ifDefined } from '@refinitiv-ui/core/directives/if-defined.js';
7
7
  import { VERSION } from '../version.js';
8
8
  import '../layout/index.js';
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, css, ControlElement, WarningNotice } 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 { query } from '@refinitiv-ui/core/lib/decorators/query.js';
6
- import { styleMap } from '@refinitiv-ui/core/lib/directives/style-map.js';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/decorators/query.js';
6
+ import { styleMap } from '@refinitiv-ui/core/directives/style-map.js';
7
7
  import { VERSION } from '../version.js';
8
8
  import '../number-field/index.js';
9
9
  var SliderNameType;
@@ -779,6 +779,10 @@ let Slider = class Slider extends ControlElement {
779
779
  }
780
780
  }
781
781
  }
782
+ if (!this.dragging) {
783
+ // Update internal `valuePrevious` when `value` was programatically set by user.
784
+ this.valuePrevious = this.value;
785
+ }
782
786
  }
783
787
  /**
784
788
  * From value observer
@@ -805,6 +809,9 @@ let Slider = class Slider extends ControlElement {
805
809
  }
806
810
  }
807
811
  }
812
+ if (!this.dragging) {
813
+ this.fromPrevious = this.from;
814
+ }
808
815
  }
809
816
  /**
810
817
  * Return fallback number of the value is invalid
@@ -884,6 +891,9 @@ let Slider = class Slider extends ControlElement {
884
891
  }
885
892
  }
886
893
  }
894
+ if (!this.dragging) {
895
+ this.toPrevious = this.to;
896
+ }
887
897
  }
888
898
  /**
889
899
  * Step observer
@@ -1,10 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { css, ResponsiveElement, html } 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 { query } from '@refinitiv-ui/core/lib/decorators/query.js';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/decorators/query.js';
6
6
  import { VERSION } from '../version.js';
7
- import { color } from '@refinitiv-ui/utils/lib/color.js';
7
+ import { color } from '@refinitiv-ui/utils/color.js';
8
8
  import '@refinitiv-ui/browser-sparkline';
9
9
  let Sparkline = class Sparkline extends ResponsiveElement {
10
10
  constructor() {
@@ -1,10 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ResponsiveElement, css, html, WarningNotice } 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 { query } from '@refinitiv-ui/core/lib/decorators/query.js';
6
- import { state } from '@refinitiv-ui/core/lib/decorators/state.js';
7
- import { styleMap } from '@refinitiv-ui/core/lib/directives/style-map.js';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/decorators/query.js';
6
+ import { state } from '@refinitiv-ui/core/decorators/state.js';
7
+ import { styleMap } from '@refinitiv-ui/core/directives/style-map.js';
8
8
  import { VERSION } from '../version.js';
9
9
  import '../canvas/index.js';
10
10
  import '../label/index.js';
@@ -52,6 +52,12 @@
52
52
  "description": "Set disabled state",
53
53
  "type": "boolean",
54
54
  "default": "false"
55
+ },
56
+ {
57
+ "name": "value",
58
+ "description": "Tab's value",
59
+ "type": "string",
60
+ "default": "\"\""
55
61
  }
56
62
  ],
57
63
  "properties": [
@@ -110,6 +116,13 @@
110
116
  "description": "Set disabled state",
111
117
  "type": "boolean",
112
118
  "default": "false"
119
+ },
120
+ {
121
+ "name": "value",
122
+ "attribute": "value",
123
+ "description": "Tab's value",
124
+ "type": "string",
125
+ "default": "\"\""
113
126
  }
114
127
  ],
115
128
  "events": [
@@ -14,6 +14,7 @@ A building block for individual tab
14
14
  | `label` | `label` | `string` | "" | Specify tab's label text |
15
15
  | `lineClamp` | `line-clamp` | `number` | 1 | Limit the number of lines before truncating |
16
16
  | `subLabel` | `sub-label` | `string` | "" | Specify tab's sub-label text |
17
+ | `value` | `value` | `string` | "" | Tab's value |
17
18
 
18
19
  ## Events
19
20
 
@@ -7,6 +7,9 @@ import '../label/index.js';
7
7
  * @attr {boolean} disabled - Set disabled state
8
8
  * @prop {boolean} [disabled=false] - Set disabled state
9
9
  *
10
+ * @attr {string} value - Tab's value
11
+ * @prop {string} [value=""] - Tab's value
12
+ *
10
13
  * @fires clear - Dispatched when click on cross button occurs
11
14
  */
12
15
  export declare class Tab extends ControlElement {
@@ -15,6 +18,13 @@ export declare class Tab extends ControlElement {
15
18
  * @returns version number
16
19
  */
17
20
  static get version(): string;
21
+ /**
22
+ * A `CSSResultGroup` that will be used
23
+ * to style the host, slotted children
24
+ * and the internal template of the element.
25
+ * @returns CSS template
26
+ */
27
+ static get styles(): CSSResultGroup;
18
28
  /**
19
29
  * Specify icon name to display in tab
20
30
  */
@@ -51,18 +61,13 @@ export declare class Tab extends ControlElement {
51
61
  /**
52
62
  * True, if there is slotted content
53
63
  */
54
- private isSlotHasChildren;
64
+ private isSlotHasContent;
55
65
  /**
56
- * @param node that should be checked
57
- * @returns whether node can be ignored.
58
- */
59
- private isIgnorable;
60
- /**
61
- * Checks slotted children nodes and updates component to refresh label and sub-label templates.
66
+ * Run on default slot slotchange
62
67
  * @param event slotchange
63
68
  * @returns {void}
64
69
  */
65
- private checkSlotChildren;
70
+ private onSlotChange;
66
71
  /**
67
72
  * Omitted lineClamp if subLabel is provided
68
73
  * @returns line Clamp value
@@ -73,13 +78,6 @@ export declare class Tab extends ControlElement {
73
78
  * @returns {void}
74
79
  */
75
80
  private handleClickClear;
76
- /**
77
- * A `CSSResultGroup` that will be used
78
- * to style the host, slotted children
79
- * and the internal template of the element.
80
- * @returns CSS template
81
- */
82
- static get styles(): CSSResultGroup;
83
81
  /**
84
82
  * Show Close Button if allow clears
85
83
  * @returns close button template
package/lib/tab/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, css, ControlElement } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
3
+ import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/decorators/property.js';
5
+ import { state } from '@refinitiv-ui/core/decorators/state.js';
6
+ import { isSlotEmpty } from '@refinitiv-ui/utils/is-slot-empty.js';
5
7
  import { VERSION } from '../version.js';
6
8
  import '../icon/index.js';
7
9
  import '../label/index.js';
8
- const isAllWhitespaceTextNode = (node) => {
9
- var _a;
10
- return node.nodeType === document.TEXT_NODE
11
- && !((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim());
12
- };
13
10
  /**
14
11
  * A building block for individual tab
15
12
  * @attr {boolean} disabled - Set disabled state
16
13
  * @prop {boolean} [disabled=false] - Set disabled state
17
14
  *
15
+ * @attr {string} value - Tab's value
16
+ * @prop {string} [value=""] - Tab's value
17
+ *
18
18
  * @fires clear - Dispatched when click on cross button occurs
19
19
  */
20
20
  let Tab = class Tab extends ControlElement {
@@ -56,16 +56,15 @@ let Tab = class Tab extends ControlElement {
56
56
  /**
57
57
  * True, if there is slotted content
58
58
  */
59
- this.isSlotHasChildren = true;
59
+ this.isSlotHasContent = false;
60
60
  /**
61
- * Checks slotted children nodes and updates component to refresh label and sub-label templates.
61
+ * Run on default slot slotchange
62
62
  * @param event slotchange
63
63
  * @returns {void}
64
64
  */
65
- this.checkSlotChildren = (event) => {
65
+ this.onSlotChange = (event) => {
66
66
  const slot = event.target;
67
- this.isSlotHasChildren = !slot.assignedNodes().filter(node => !this.isIgnorable(node)).length;
68
- this.requestUpdate();
67
+ this.isSlotHasContent = !!slot.assignedNodes().length && isSlotEmpty(slot);
69
68
  };
70
69
  }
71
70
  /**
@@ -76,12 +75,18 @@ let Tab = class Tab extends ControlElement {
76
75
  return VERSION;
77
76
  }
78
77
  /**
79
- * @param node that should be checked
80
- * @returns whether node can be ignored.
78
+ * A `CSSResultGroup` that will be used
79
+ * to style the host, slotted children
80
+ * and the internal template of the element.
81
+ * @returns CSS template
81
82
  */
82
- isIgnorable(node) {
83
- return node.nodeType === document.COMMENT_NODE
84
- || isAllWhitespaceTextNode(node);
83
+ static get styles() {
84
+ return css `
85
+ :host {
86
+ display: inline-flex;
87
+ flex-shrink: 0;
88
+ }
89
+ `;
85
90
  }
86
91
  /**
87
92
  * Omitted lineClamp if subLabel is provided
@@ -101,20 +106,6 @@ let Tab = class Tab extends ControlElement {
101
106
  */
102
107
  this.dispatchEvent(new CustomEvent('clear'));
103
108
  }
104
- /**
105
- * A `CSSResultGroup` that will be used
106
- * to style the host, slotted children
107
- * and the internal template of the element.
108
- * @returns CSS template
109
- */
110
- static get styles() {
111
- return css `
112
- :host {
113
- display: inline-flex;
114
- flex-shrink: 0;
115
- }
116
- `;
117
- }
118
109
  /**
119
110
  * Show Close Button if allow clears
120
111
  * @returns close button template
@@ -131,7 +122,7 @@ let Tab = class Tab extends ControlElement {
131
122
  * @returns Label template
132
123
  */
133
124
  get LabelTemplate() {
134
- if (!this.label || !this.isSlotHasChildren) {
125
+ if (!this.label || this.isSlotHasContent) {
135
126
  return null;
136
127
  }
137
128
  return html `
@@ -147,7 +138,7 @@ let Tab = class Tab extends ControlElement {
147
138
  * @returns SubLabel template
148
139
  */
149
140
  get SubLabelTemplate() {
150
- if (!this.subLabel || !this.isSlotHasChildren) {
141
+ if (!this.subLabel || this.isSlotHasContent) {
151
142
  return null;
152
143
  }
153
144
  return html `
@@ -169,8 +160,7 @@ let Tab = class Tab extends ControlElement {
169
160
  <div part="label-container">
170
161
  ${this.LabelTemplate}
171
162
  ${this.SubLabelTemplate}
172
- <slot @slotchange="${this.checkSlotChildren}">
173
- </slot>
163
+ <slot @slotchange="${this.onSlotChange}"></slot>
174
164
  </div>
175
165
  ${this.CloseTemplate}
176
166
  `;
@@ -200,6 +190,9 @@ __decorate([
200
190
  __decorate([
201
191
  property({ type: String, reflect: true })
202
192
  ], Tab.prototype, "level", void 0);
193
+ __decorate([
194
+ state()
195
+ ], Tab.prototype, "isSlotHasContent", void 0);
203
196
  Tab = __decorate([
204
197
  customElement('ef-tab', {
205
198
  alias: 'coral-tab'
@@ -45,6 +45,18 @@
45
45
  "description": "Use to switch from horizontal to vertical layout.",
46
46
  "type": "boolean",
47
47
  "default": "false"
48
+ },
49
+ {
50
+ "name": "value",
51
+ "description": "Value of tab-bar, derived from value of an active tab.",
52
+ "type": "string",
53
+ "default": "\"\""
54
+ }
55
+ ],
56
+ "events": [
57
+ {
58
+ "name": "value-changed",
59
+ "description": "Fired when the `value` changes."
48
60
  }
49
61
  ]
50
62
  }
@@ -8,4 +8,11 @@ Container for tabs
8
8
  |-------------|-------------|---------------------------------|---------|--------------------------------------------------|
9
9
  | `alignment` | `alignment` | `"left" \| "center" \| "right"` | "left" | Specify tab's horizontal alignment |
10
10
  | `level` | `level` | `"1" \| "2" \| "3"` | "1" | Use level styling from theme |
11
+ | `value` | | `string` | "" | Value of tab-bar, derived from value of an active tab. |
11
12
  | `vertical` | `vertical` | `boolean` | false | Use to switch from horizontal to vertical layout. |
13
+
14
+ ## Events
15
+
16
+ | Event | Description |
17
+ |-----------------|---------------------------------|
18
+ | `value-changed` | Fired when the `value` changes. |
@@ -3,6 +3,8 @@ import { TemplateResult, CSSResultGroup, PropertyValues, ResponsiveElement, Elem
3
3
  import '../button/index.js';
4
4
  /**
5
5
  * Container for tabs
6
+ *
7
+ * @fires value-changed - Fired when the `value` changes.
6
8
  */
7
9
  export declare class TabBar extends ResponsiveElement {
8
10
  /**
@@ -29,6 +31,18 @@ export declare class TabBar extends ResponsiveElement {
29
31
  * Use to switch from horizontal to vertical layout.
30
32
  */
31
33
  vertical: boolean;
34
+ /**
35
+ * Internal value of tab bar.
36
+ * Controlled by public setter and getter
37
+ */
38
+ private _value;
39
+ /**
40
+ * Value of tab-bar, derived from value of an active tab.
41
+ * @param value Element value
42
+ * @default -
43
+ */
44
+ set value(value: string);
45
+ get value(): string;
32
46
  private content;
33
47
  private leftBtn;
34
48
  private rightBtn;
@@ -55,26 +69,61 @@ export declare class TabBar extends ResponsiveElement {
55
69
  */
56
70
  resizedCallback(size: ElementSize): void;
57
71
  /**
58
- * Hide all scroll buttons
72
+ * Return true if incoming value matches one of the existing tabs
73
+ * @param value Value to check
74
+ * @returns true if incoming value matches one of the existing tabs
75
+ */
76
+ private isValidValue;
77
+ /**
78
+ * When the slot changes, set the level, toggle the scroll button, and set the value
59
79
  * @returns {void}
60
80
  */
61
- private hideScrollButtons;
81
+ private onSlotChange;
62
82
  /**
63
- * Hide/Show scroll button when element is overflow.
64
- * @param elementWidth width of element
83
+ * Mark tab as active
84
+ * @param value value of tab to select
65
85
  * @returns {void}
66
86
  */
67
- private toggleScrollButton;
87
+ private activateTab;
88
+ /**
89
+ * Set tab value and fires `tab-changed` event
90
+ * @param event - Event
91
+ * @returns {void}
92
+ */
93
+ private onTap;
94
+ /**
95
+ * Get the value of a tab
96
+ * @param tab - The tab element.
97
+ * @returns The value of the tab.
98
+ */
99
+ private getTabValue;
100
+ /**
101
+ * Return the tab's label, or its textContent, or an empty string
102
+ * @param tab - The tab element.
103
+ * @returns The tab label.
104
+ */
105
+ private getTabLabel;
106
+ /**
107
+ * Get Tab elements from slot
108
+ * @returns the array of Tab
109
+ */
110
+ private getTabElements;
111
+ /**
112
+ * Get focusable tab elements
113
+ * @returns the array of focusable tab
114
+ */
115
+ private getFocusableTabs;
68
116
  /**
69
117
  * Set tab level attribute accordingly
70
118
  * @returns {void}
71
119
  */
72
120
  private setLevel;
73
121
  /**
74
- * Detects when slot changes
122
+ * Hide/Show scroll button when element is overflow.
123
+ * @param elementWidth width of element
75
124
  * @returns {void}
76
125
  */
77
- private onSlotChange;
126
+ private toggleScrollButton;
78
127
  /**
79
128
  * Update scroll position when clicked on left button
80
129
  * @returns {void}