linear-react-components-ui 0.4.75 → 0.4.76-beta.11

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 (131) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +33 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +28 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +79 -44
  21. package/lib/assets/styles/treeview.scss +32 -0
  22. package/lib/avatar/avatar.spec.js +190 -0
  23. package/lib/avatar/index.js +6 -2
  24. package/lib/badge/badge.spec.js +127 -0
  25. package/lib/badge/index.js +3 -5
  26. package/lib/buttons/DefaultButton.js +7 -1
  27. package/lib/buttons/buttons.spec.js +504 -0
  28. package/lib/calendar/calendar.spec.js +171 -0
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +215 -0
  31. package/lib/checkbox/index.js +21 -6
  32. package/lib/dialog/Custom.js +7 -1
  33. package/lib/dialog/base/index.js +18 -6
  34. package/lib/dialog/dialog.spec.js +488 -0
  35. package/lib/dialog/form/index.js +23 -4
  36. package/lib/drawer/Drawer.js +3 -0
  37. package/lib/drawer/Drawer.spec.js +258 -0
  38. package/lib/drawer/Header.js +4 -1
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +1 -0
  41. package/lib/dropdown/dropdown.spec.js +168 -0
  42. package/lib/dropdown/withDropdown.js +10 -4
  43. package/lib/fieldset/fieldset.spec.js +329 -0
  44. package/lib/form/Field.js +2 -0
  45. package/lib/form/FieldNumber.js +10 -2
  46. package/lib/form/FieldPeriod.js +100 -0
  47. package/lib/form/form.spec.js +285 -0
  48. package/lib/form/helpers.js +9 -1
  49. package/lib/form/index.js +209 -222
  50. package/lib/form/withFieldHOC.js +2 -0
  51. package/lib/form/withFormSecurity.js +106 -0
  52. package/lib/gridlayout/GridRow.js +1 -1
  53. package/lib/gridlayout/gridLayout.spec.js +169 -0
  54. package/lib/icons/helper.js +16 -0
  55. package/lib/icons/icons.spec.js +86 -0
  56. package/lib/icons/index.js +2 -0
  57. package/lib/inputs/base/InputTextBase.js +24 -5
  58. package/lib/inputs/base/base.spec.js +690 -0
  59. package/lib/inputs/base/helpers.js +19 -3
  60. package/lib/inputs/color/color_input.spec.js +174 -0
  61. package/lib/inputs/color/index.js +2 -2
  62. package/lib/inputs/date/Dropdown.js +3 -3
  63. package/lib/inputs/date/date.spec.js +344 -0
  64. package/lib/inputs/date/helpers.js +36 -0
  65. package/lib/inputs/date/index.js +11 -9
  66. package/lib/inputs/mask/Cpf.js +9 -9
  67. package/lib/inputs/mask/input_mask.spec.js +590 -0
  68. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  69. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  70. package/lib/inputs/multiSelect/helper.js +18 -0
  71. package/lib/inputs/multiSelect/index.js +343 -0
  72. package/lib/inputs/number/BaseNumber.js +1 -1
  73. package/lib/inputs/number/index.js +7 -5
  74. package/lib/inputs/number/numberfield.spec.js +215 -0
  75. package/lib/inputs/period/Dialog.js +38 -0
  76. package/lib/inputs/period/Dropdown.js +90 -0
  77. package/lib/inputs/period/PeriodList.js +79 -0
  78. package/lib/inputs/period/helper.js +118 -0
  79. package/lib/inputs/period/index.js +490 -0
  80. package/lib/inputs/search/search_input.spec.js +209 -0
  81. package/lib/inputs/select/Dropdown.js +4 -4
  82. package/lib/inputs/select/index.js +26 -3
  83. package/lib/inputs/select/multiple/index.js +9 -7
  84. package/lib/inputs/select/select.spec.js +391 -0
  85. package/lib/inputs/select/simple/index.js +30 -18
  86. package/lib/inputs/text/textfield.spec.js +215 -0
  87. package/lib/inputs/textarea/textarea.spec.js +59 -0
  88. package/lib/internals/withTooltip.js +86 -82
  89. package/lib/labelMessages/index.js +3 -2
  90. package/lib/labelMessages/labelMessages.spec.js +176 -0
  91. package/lib/labels/label.spec.js +162 -0
  92. package/lib/list/Item.js +3 -3
  93. package/lib/list/index.js +21 -10
  94. package/lib/list/list.spec.js +611 -0
  95. package/lib/menus/float/MenuItem.js +25 -8
  96. package/lib/menus/float/float-menu.spec.js +221 -0
  97. package/lib/menus/sidenav/index.js +7 -3
  98. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  99. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  100. package/lib/noPermission/index.js +2 -1
  101. package/lib/panel/panel.spec.js +216 -0
  102. package/lib/popover/index.js +2 -1
  103. package/lib/popover/popover.spec.js +146 -0
  104. package/lib/progress/Bar.js +40 -9
  105. package/lib/progress/index.js +12 -4
  106. package/lib/progress/progress.spec.js +86 -0
  107. package/lib/radio/radio.spec.js +189 -0
  108. package/lib/spinner/SpinnerLoading.js +14 -24
  109. package/lib/spinner/index.js +6 -1
  110. package/lib/spinner/spinner.spec.js +152 -0
  111. package/lib/split/Split.js +10 -12
  112. package/lib/split/split.spec.js +151 -0
  113. package/lib/table/Header.js +3 -1
  114. package/lib/table/Row.js +2 -5
  115. package/lib/table/index.js +1 -4
  116. package/lib/table/table.spec.js +352 -0
  117. package/lib/tabs/DropdownItems.js +84 -0
  118. package/lib/tabs/Menu.js +18 -5
  119. package/lib/tabs/MenuItems.js +7 -7
  120. package/lib/tabs/Panel.js +1 -3
  121. package/lib/tabs/index.js +151 -20
  122. package/lib/tabs/tabs.spec.js +349 -0
  123. package/lib/toolbar/index.js +8 -4
  124. package/lib/toolbar/toolbar.spec.js +394 -0
  125. package/lib/tooltip/index.js +20 -6
  126. package/lib/tooltip/tooltip.spec.js +203 -0
  127. package/lib/treeview/Node.js +347 -48
  128. package/lib/treeview/index.js +456 -35
  129. package/lib/treeview/treeview.spec.js +261 -0
  130. package/package.json +19 -9
  131. package/.DS_Store +0 -0
package/lib/tabs/Menu.js CHANGED
@@ -11,15 +11,23 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _MenuItems = _interopRequireDefault(require("./MenuItems"));
13
13
 
14
+ var _DropdownItems = _interopRequireDefault(require("./DropdownItems"));
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
16
18
  var Menu = function Menu(props) {
17
19
  var toolbar = props.toolbar,
18
20
  customClassForToolBar = props.customClassForToolBar,
19
- menuRef = props.menuRef;
21
+ menuRef = props.menuRef,
22
+ toolBarRef = props.toolBarRef;
20
23
 
21
24
  if (!toolbar) {
22
- return /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props);
25
+ return /*#__PURE__*/_react["default"].createElement("div", {
26
+ className: "menucontainer",
27
+ ref: function ref(r) {
28
+ menuRef(r);
29
+ }
30
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props));
23
31
  }
24
32
 
25
33
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -27,18 +35,23 @@ var Menu = function Menu(props) {
27
35
  ref: function ref(r) {
28
36
  menuRef(r);
29
37
  }
30
- }, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].cloneElement(toolbar, {
31
- customClass: "menubar ".concat(customClassForToolBar)
38
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props), /*#__PURE__*/_react["default"].cloneElement(toolbar, {
39
+ customClass: "menubar ".concat(customClassForToolBar),
40
+ innerRef: toolBarRef ? function (r) {
41
+ toolBarRef(r);
42
+ } : undefined
32
43
  }));
33
44
  };
34
45
 
35
46
  Menu.propTypes = {
36
47
  toolbar: _propTypes["default"].object,
37
48
  customClassForToolBar: _propTypes["default"].string,
38
- menuRef: _propTypes["default"].func.isRequired
49
+ menuRef: _propTypes["default"].func.isRequired,
50
+ toolBarRef: _propTypes["default"].func
39
51
  };
40
52
  Menu.defaultProps = {
41
53
  toolbar: undefined,
54
+ toolBarRef: null,
42
55
  customClassForToolBar: ''
43
56
  };
44
57
  var _default = Menu;
@@ -24,17 +24,17 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
25
 
26
26
  var MenuItems = function MenuItems(_ref) {
27
- var panels = _ref.panels,
28
- selectedTabId = _ref.selectedTabId,
27
+ var selectedTabId = _ref.selectedTabId,
29
28
  handlerClick = _ref.handlerClick,
30
29
  handlerRemovePanel = _ref.handlerRemovePanel,
31
30
  tabMenuAlign = _ref.tabMenuAlign,
32
31
  firstTabIdent = _ref.firstTabIdent,
33
- tabMenuSize = _ref.tabMenuSize;
32
+ tabMenuSize = _ref.tabMenuSize,
33
+ currentPanels = _ref.currentPanels;
34
34
  return /*#__PURE__*/_react["default"].createElement("ul", {
35
35
  className: "menu ".concat(firstTabIdent && '-firsttabident'),
36
36
  style: helpers.menuStyles(tabMenuAlign)
37
- }, panels.map(function (panel, index) {
37
+ }, currentPanels.map(function (panel, index) {
38
38
  var _panel$props = panel.props,
39
39
  id = _panel$props.id,
40
40
  title = _panel$props.title,
@@ -63,10 +63,10 @@ var MenuItems = function MenuItems(_ref) {
63
63
  disabled: disabled || onDenied.disabled,
64
64
  label: title,
65
65
  size: tabMenuSize,
66
- tooltip: tooltip,
66
+ tooltip: tooltip || title,
67
67
  tooltipPosition: tooltipPosition,
68
68
  tooltipWidth: tooltipWidth
69
- }), closeable && panels.length > 1 && /*#__PURE__*/_react["default"].createElement("button", {
69
+ }), closeable && currentPanels.length > 1 && /*#__PURE__*/_react["default"].createElement("button", {
70
70
  className: "closepanel",
71
71
  onClick: function onClick() {
72
72
  handlerRemovePanel(id, index);
@@ -76,7 +76,7 @@ var MenuItems = function MenuItems(_ref) {
76
76
  };
77
77
 
78
78
  MenuItems.propTypes = {
79
- panels: _propTypes["default"].arrayOf(_propTypes["default"].element).isRequired,
79
+ currentPanels: _propTypes["default"].arrayOf(_propTypes["default"].element).isRequired,
80
80
  selectedTabId: _propTypes["default"].string,
81
81
  handlerClick: _propTypes["default"].func.isRequired,
82
82
  handlerRemovePanel: _propTypes["default"].func,
package/lib/tabs/Panel.js CHANGED
@@ -110,8 +110,7 @@ Panel.defaultProps = {
110
110
  iconAlign: 'left',
111
111
  customClass: '',
112
112
  children: undefined,
113
- tooltip: '',
114
- tooltipPosition: 'top',
113
+ tooltipPosition: 'bottom',
115
114
  tooltipWidth: 'auto',
116
115
  onEndReached: undefined,
117
116
  onEndReachedThreshold: 0.1,
@@ -131,7 +130,6 @@ Panel.propTypes = {
131
130
  icon: _propTypes["default"].instanceOf(Object),
132
131
  iconName: _propTypes["default"].string,
133
132
  iconAlign: _propTypes["default"].string,
134
- tooltip: _propTypes["default"].string,
135
133
  tooltipPosition: _propTypes["default"].string,
136
134
  tooltipWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
137
135
  onEndReached: _propTypes["default"].func,
package/lib/tabs/index.js CHANGED
@@ -33,6 +33,14 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
33
33
 
34
34
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
35
35
 
36
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
37
+
38
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
39
+
40
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
41
+
42
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
43
+
36
44
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
37
45
 
38
46
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -51,48 +59,160 @@ var Tabs = function Tabs(props) {
51
59
  handlerCloseTab = props.handlerCloseTab,
52
60
  tabMenuPosition = props.tabMenuPosition,
53
61
  style = props.style,
54
- selectedTab = props.selectedTab;
62
+ selectedTab = props.selectedTab,
63
+ toolbar = props.toolbar;
55
64
 
56
65
  var _useState = (0, _react.useState)((0, _tabHelpers.buildPanels)(children) || []),
57
66
  _useState2 = _slicedToArray(_useState, 2),
58
67
  panels = _useState2[0],
59
68
  setPanels = _useState2[1];
60
69
 
61
- var _useState3 = (0, _react.useState)(selectedTab || panels[0].props.id),
70
+ var _useState3 = (0, _react.useState)([]),
62
71
  _useState4 = _slicedToArray(_useState3, 2),
63
- selectedTabId = _useState4[0],
64
- setSelectedTabId = _useState4[1];
72
+ currentPanels = _useState4[0],
73
+ setCurrentPanels = _useState4[1];
65
74
 
66
- var _useState5 = (0, _react.useState)(''),
67
- _useState6 = _slicedToArray(_useState5, 1),
68
- customClass = _useState6[0];
75
+ var _useState5 = (0, _react.useState)([]),
76
+ _useState6 = _slicedToArray(_useState5, 2),
77
+ dropdownPanels = _useState6[0],
78
+ setDropdownPanels = _useState6[1];
69
79
 
70
- var _useState7 = (0, _react.useState)(undefined),
80
+ var _useState7 = (0, _react.useState)(selectedTab || panels[0].props.id),
71
81
  _useState8 = _slicedToArray(_useState7, 2),
72
- contentHeight = _useState8[0],
73
- setContentHeight = _useState8[1];
82
+ selectedTabId = _useState8[0],
83
+ setSelectedTabId = _useState8[1];
84
+
85
+ var _useState9 = (0, _react.useState)(''),
86
+ _useState10 = _slicedToArray(_useState9, 1),
87
+ customClass = _useState10[0];
88
+
89
+ var _useState11 = (0, _react.useState)(undefined),
90
+ _useState12 = _slicedToArray(_useState11, 2),
91
+ contentHeight = _useState12[0],
92
+ setContentHeight = _useState12[1];
93
+
94
+ var _useState13 = (0, _react.useState)(0),
95
+ _useState14 = _slicedToArray(_useState13, 2),
96
+ tabsContentWidth = _useState14[0],
97
+ setTabsContentWidth = _useState14[1];
98
+
99
+ var _useState15 = (0, _react.useState)(false),
100
+ _useState16 = _slicedToArray(_useState15, 2),
101
+ hasMenuAttributes = _useState16[0],
102
+ setHasMenuAttributes = _useState16[1];
103
+
104
+ var _useState17 = (0, _react.useState)(0),
105
+ _useState18 = _slicedToArray(_useState17, 2),
106
+ dropdownWidth = _useState18[0],
107
+ setDropdownWidth = _useState18[1];
108
+
109
+ var componentRef = (0, _react.useRef)(null);
110
+
111
+ var _menuRef = (0, _react.useRef)(null);
112
+
113
+ var _toolBarRef = (0, _react.useRef)(null);
114
+
115
+ var getTabListWidth = function getTabListWidth() {
116
+ var tabMenu = _menuRef.current.children[0];
117
+
118
+ var tabList = _toConsumableArray(tabMenu.children);
119
+
120
+ var tabsListWidth = tabList.reduce(function (total, tab) {
121
+ return total + tab.clientWidth;
122
+ }, 0);
123
+ return tabsListWidth;
124
+ };
125
+
126
+ var getMenuAttributes = function getMenuAttributes() {
127
+ var menuSize = _menuRef.current.clientWidth;
128
+ var toolbarSize = toolbar && _toolBarRef ? _toolBarRef.current.clientWidth : 0;
129
+ var contentWidth = (toolbar ? menuSize - toolbarSize : menuSize) - dropdownWidth;
130
+ setTabsContentWidth(contentWidth);
131
+ };
132
+
133
+ var getTabsList = function getTabsList() {
134
+ var tabsListWidth = getTabListWidth();
74
135
 
75
- var componentRef = (0, _react.useRef)();
136
+ var newDropdownPanels = _toConsumableArray(dropdownPanels);
76
137
 
77
- var _menuRef = (0, _react.useRef)();
138
+ var newCurrentPanels = _toConsumableArray(panels);
139
+
140
+ if (newDropdownPanels.length) {
141
+ var newDropdownPanelsIds = newDropdownPanels.map(function (dd) {
142
+ return dd.props.id;
143
+ });
144
+ newCurrentPanels = newCurrentPanels.filter(function (tab) {
145
+ return !newDropdownPanelsIds.includes(tab.props.id);
146
+ });
147
+ }
148
+
149
+ if (tabsListWidth > tabsContentWidth) {
150
+ var lastPanel = newCurrentPanels[newCurrentPanels.length - 1];
151
+ newDropdownPanels.push(lastPanel);
152
+ newCurrentPanels.pop();
153
+ } else if (tabsListWidth + 110 < tabsContentWidth && newDropdownPanels.length) {
154
+ newCurrentPanels.push(newDropdownPanels[0]);
155
+ newDropdownPanels.shift();
156
+ }
157
+
158
+ setCurrentPanels(newCurrentPanels);
159
+ setDropdownPanels(newDropdownPanels);
160
+ };
78
161
 
79
162
  var onMenuClick = function onMenuClick(tabId) {
80
- setSelectedTabId(tabId);
163
+ var includedInDropdown = dropdownPanels.filter(function (item) {
164
+ return item.props.id === tabId;
165
+ });
166
+
167
+ if (includedInDropdown.length > 0 && getTabListWidth() > 0) {
168
+ var newDropdownPanels = dropdownPanels.filter(function (item) {
169
+ return item.props.id !== tabId;
170
+ });
171
+ var newPanels = panels.filter(function (item) {
172
+ return item.props.id !== tabId;
173
+ });
174
+ var newCurrentPanels = currentPanels.slice(0, -1);
175
+ newDropdownPanels.push(currentPanels.pop());
176
+ newPanels.unshift(includedInDropdown[0]);
177
+ newCurrentPanels.unshift(includedInDropdown[0]);
178
+ setPanels(newPanels);
179
+ setDropdownPanels(newDropdownPanels);
180
+ setCurrentPanels(newCurrentPanels);
181
+ }
182
+
81
183
  if (handlerTabClick) handlerTabClick(tabId);
184
+ setSelectedTabId(tabId);
82
185
  };
83
186
 
84
187
  var onRemovePanel = function onRemovePanel(closedPanelId, panelIndex) {
85
- var remainPanels = panels.filter(function (panel) {
86
- return panel.props.id !== closedPanelId;
87
- });
88
- var newSelectedTabId = selectedTabId === closedPanelId ? remainPanels[panelIndex - (panelIndex === 0 ? 0 : 1)].props.id : selectedTabId;
89
- setSelectedTabId(newSelectedTabId);
188
+ var fromDropdownPanels = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
189
+ var newSelectedTabId = selectedTabId;
190
+ var remainPanels;
191
+
192
+ if (!fromDropdownPanels) {
193
+ remainPanels = panels.filter(function (panel) {
194
+ return panel.props.id !== closedPanelId;
195
+ });
196
+ newSelectedTabId = selectedTabId === closedPanelId ? remainPanels[panelIndex - (panelIndex === 0 ? 0 : 1)].props.id : selectedTabId;
197
+ setSelectedTabId(newSelectedTabId);
198
+ } else {
199
+ remainPanels = dropdownPanels.filter(function (panel) {
200
+ return panel.props.id !== closedPanelId;
201
+ });
202
+ setDropdownPanels(remainPanels);
203
+ }
204
+
90
205
  if (handlerCloseTab) handlerCloseTab(closedPanelId, newSelectedTabId);
91
206
  };
92
207
 
93
208
  var onResize = function onResize() {
94
209
  if (componentRef.current && _menuRef.current) {
95
210
  setContentHeight(componentRef.current.offsetHeight - _menuRef.current.offsetHeight);
211
+
212
+ if (!hasMenuAttributes && _menuRef.current && _menuRef.current.clientWidth > 0 && dropdownWidth) {
213
+ getMenuAttributes();
214
+ setHasMenuAttributes(true);
215
+ }
96
216
  }
97
217
  };
98
218
 
@@ -101,8 +221,12 @@ var Tabs = function Tabs(props) {
101
221
  menuRef: function menuRef(ref) {
102
222
  _menuRef.current = ref;
103
223
  },
224
+ toolBarRef: function toolBarRef(ref) {
225
+ _toolBarRef.current = ref;
226
+ },
104
227
  customClass: customClass,
105
- panels: panels,
228
+ currentPanels: currentPanels,
229
+ dropdownPanels: dropdownPanels,
106
230
  selectedTabId: selectedTabId,
107
231
  handlerClick: onMenuClick,
108
232
  handlerRemovePanel: onRemovePanel
@@ -125,11 +249,18 @@ var Tabs = function Tabs(props) {
125
249
  return function () {
126
250
  return window.removeEventListener('resize', onResize);
127
251
  };
128
- }, []);
252
+ }, [_menuRef.current, dropdownWidth]);
129
253
  (0, _react.useEffect)(function () {
130
254
  if (selectedTab) setSelectedTabId(selectedTab);
131
255
  if (children) setPanels((0, _tabHelpers.buildPanels)(children));
132
256
  }, [selectedTab, children]);
257
+ (0, _react.useEffect)(function () {
258
+ getTabsList();
259
+ }, [panels.length, currentPanels.length, tabsContentWidth]);
260
+ (0, _react.useEffect)(function () {
261
+ var currentDropdownWidth = dropdownPanels.length > 0 ? _menuRef.current.children[1].clientWidth : 0;
262
+ setDropdownWidth(currentDropdownWidth);
263
+ }, [dropdownPanels.length]);
133
264
 
134
265
  var getContextValues = function getContextValues() {
135
266
  return {