linear-react-components-ui 0.4.76-beta.29 → 0.4.76-beta.31

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.
@@ -112,12 +112,12 @@ var withTooltip = function withTooltip(WrappedComponent) {
112
112
  };
113
113
  }, []);
114
114
  (0, _react.useEffect)(function () {
115
- if (targetElement.current) {
115
+ if (targetElement.current && tooltipElement.current) {
116
116
  var width = tooltipDimensions.width,
117
117
  height = tooltipDimensions.height;
118
118
  var targetDimensions = targetElement.current.getBoundingClientRect();
119
119
  var targetVerticalCenter = (targetDimensions.top + targetDimensions.bottom) / 2;
120
- var tooltipClientWidth = tooltipElement.current && tooltipElement.current.clientWidth;
120
+ var tooltipClientWidth = tooltipElement.current.clientWidth;
121
121
  var style = "width: ".concat(typeof width === 'string' ? width : "".concat(width, "px"));
122
122
  var left = targetDimensions.left + targetDimensions.width / 2 - tooltipClientWidth / 2;
123
123
  left = Math.min(left, document.body.clientWidth - tooltipClientWidth - space);
@@ -28,7 +28,7 @@ var SkeletonContainer = function SkeletonContainer(_ref) {
28
28
  };
29
29
 
30
30
  SkeletonContainer.propTypes = {
31
- children: _propTypes["default"].element.isRequired,
31
+ children: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].arrayOf(_propTypes["default"].element)]).isRequired,
32
32
  row: _propTypes["default"].bool,
33
33
  customClass: _propTypes["default"].string,
34
34
  style: _propTypes["default"].object
package/lib/table/Body.js CHANGED
@@ -11,7 +11,11 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _helpers = _interopRequireDefault(require("./helpers"));
14
+ var _helpers = _interopRequireWildcard(require("./helpers"));
15
+
16
+ var _skeleton = _interopRequireDefault(require("../skeleton"));
17
+
18
+ var _index = require("./index");
15
19
 
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
21
 
@@ -19,27 +23,65 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
19
23
 
20
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
25
 
22
- var TableBody = function TableBody(_ref) {
26
+ 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); }
27
+
28
+ var renderChildren = function renderChildren(_ref) {
23
29
  var children = _ref.children,
24
- customClass = _ref.customClass;
30
+ columnsCount = _ref.columnsCount,
31
+ vertical = _ref.vertical,
32
+ skeletonize = _ref.skeletonize,
33
+ skeletonInRows = _ref.skeletonInRows,
34
+ skeletonHeight = _ref.skeletonHeight;
25
35
 
26
- var _useContext = (0, _react.useContext)(_helpers["default"]),
27
- bodyScrollable = _useContext.bodyScrollable,
28
- bodyContainerRef = _useContext.bodyContainerRef;
36
+ if (skeletonize && !vertical && columnsCount) {
37
+ var rows = (0, _helpers.getArrayFromNumber)(skeletonInRows);
38
+ var columns = (0, _helpers.getArrayFromNumber)(columnsCount);
39
+ var skeletonChildrens = rows.map(function (index) {
40
+ return /*#__PURE__*/_react["default"].createElement(_index.TRow, {
41
+ key: index
42
+ }, columns.map(function (id) {
43
+ return /*#__PURE__*/_react["default"].createElement(_index.Td, {
44
+ key: id
45
+ }, /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
46
+ height: skeletonHeight,
47
+ customClass: "rowskeleton"
48
+ }));
49
+ }));
50
+ });
51
+ return skeletonChildrens;
52
+ }
53
+
54
+ return children;
55
+ };
29
56
 
57
+ var TableBody = function TableBody(_ref2) {
58
+ var children = _ref2.children,
59
+ customClass = _ref2.customClass;
60
+ var context = (0, _react.useContext)(_helpers["default"]);
61
+ var bodyScrollable = context.bodyScrollable,
62
+ bodyContainerRef = context.bodyContainerRef,
63
+ skeletonize = context.skeletonize,
64
+ skeletonInRows = context.skeletonInRows,
65
+ strict = context.strict,
66
+ vertical = context.vertical;
30
67
  return bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
31
68
  className: "bodycontainer",
32
69
  ref: bodyContainerRef
33
70
  }, /*#__PURE__*/_react["default"].createElement("table", {
34
71
  className: "innertable",
35
72
  style: {
36
- tableLayout: 'fixed'
73
+ tableLayout: 'fixed',
74
+ contain: strict ? 'strict' : 'size layout style'
37
75
  }
38
76
  }, /*#__PURE__*/_react["default"].createElement("tbody", {
39
- className: "tbody ".concat(customClass)
40
- }, children))) : /*#__PURE__*/_react["default"].createElement("tbody", {
41
- className: "tbody ".concat(customClass)
42
- }, children);
77
+ className: "tbody ".concat(skeletonize && !vertical && skeletonInRows ? 'skeleton-transparency' : '', " ").concat(customClass)
78
+ }, renderChildren(_extends({}, context, {
79
+ children: children
80
+ }))))) : /*#__PURE__*/_react["default"].createElement("tbody", {
81
+ className: "tbody ".concat(skeletonize && !vertical && skeletonInRows ? 'skeleton-transparency' : '', " ").concat(customClass)
82
+ }, renderChildren(_extends({}, context, {
83
+ children: children
84
+ })));
43
85
  };
44
86
 
45
87
  TableBody.propTypes = {
@@ -41,6 +41,15 @@ var getColumnsWidth = function getColumnsWidth(children) {
41
41
  return columnsWidth;
42
42
  };
43
43
 
44
+ var getColumnsCount = function getColumnsCount(children) {
45
+ if (children && children.props) {
46
+ var columnsChildren = children.props.children;
47
+ return columnsChildren.length;
48
+ }
49
+
50
+ return undefined;
51
+ };
52
+
44
53
  var Header = function Header(_ref) {
45
54
  var customClass = _ref.customClass,
46
55
  children = _ref.children;
@@ -48,10 +57,12 @@ var Header = function Header(_ref) {
48
57
  var _useContext = (0, _react.useContext)(_helpers["default"]),
49
58
  bodyScrollWidth = _useContext.bodyScrollWidth,
50
59
  bodyScrollable = _useContext.bodyScrollable,
51
- handlerSetColumnsWidth = _useContext.handlerSetColumnsWidth;
60
+ handlerSetColumnsWidth = _useContext.handlerSetColumnsWidth,
61
+ handlerSetColumnsCount = _useContext.handlerSetColumnsCount;
52
62
 
53
63
  (0, _react.useEffect)(function () {
54
64
  handlerSetColumnsWidth(getColumnsWidth(children));
65
+ handlerSetColumnsCount(getColumnsCount(children));
55
66
  }, []);
56
67
  return bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
57
68
  className: "headercontainer",
@@ -30,13 +30,15 @@ var HeaderColumn = function HeaderColumn(_ref) {
30
30
 
31
31
  var _useContext = (0, _react.useContext)(_helpers["default"]),
32
32
  skeletonize = _useContext.skeletonize,
33
- vertical = _useContext.vertical;
33
+ vertical = _useContext.vertical,
34
+ skeletonInHeader = _useContext.skeletonInHeader,
35
+ skeletonInRows = _useContext.skeletonInRows;
34
36
 
35
37
  if (!visible) return null;
36
38
  return /*#__PURE__*/_react["default"].createElement("th", {
37
39
  className: "headercolumn ".concat(customClass, " text-align-").concat(textAlign),
38
40
  style: style
39
- }, skeletonize && !vertical ? /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
41
+ }, skeletonize && (skeletonInHeader || !skeletonInRows) && !vertical ? /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
40
42
  height: style.height ? null : 16,
41
43
  style: {
42
44
  marginBottom: 0
package/lib/table/Row.js CHANGED
@@ -19,6 +19,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
19
19
 
20
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
21
 
22
+ 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); }
23
+
22
24
  var Row = function Row(props) {
23
25
  var customClass = props.customClass,
24
26
  children = props.children,
@@ -26,7 +28,8 @@ var Row = function Row(props) {
26
28
  dataId = props.dataId,
27
29
  _onClick = props.onClick,
28
30
  height = props.height,
29
- rowBorder = props.rowBorder;
31
+ rowBorder = props.rowBorder,
32
+ style = props.style;
30
33
 
31
34
  var _useContext = (0, _react.useContext)(_helpers["default"]),
32
35
  selectedRowId = _useContext.selectedRowId,
@@ -34,14 +37,16 @@ var Row = function Row(props) {
34
37
  handleTableRowClick = _useContext.handleTableRowClick,
35
38
  handleTableColClick = _useContext.handleTableColClick,
36
39
  vertical = _useContext.vertical,
37
- skeletonize = _useContext.skeletonize;
40
+ skeletonize = _useContext.skeletonize,
41
+ skeletonInRows = _useContext.skeletonInRows;
38
42
 
39
43
  var contextValues = {
40
44
  dataId: dataId,
41
45
  rowBorder: rowBorder,
42
46
  handleTableColClick: handleTableColClick,
43
47
  vertical: vertical,
44
- skeletonize: skeletonize
48
+ skeletonize: skeletonize,
49
+ skeletonInRows: skeletonInRows
45
50
  };
46
51
  return /*#__PURE__*/_react["default"].createElement(_helpers.RowContext.Provider, {
47
52
  value: contextValues
@@ -53,9 +58,9 @@ var Row = function Row(props) {
53
58
  if (_onClick) _onClick(e, dataId);
54
59
  },
55
60
  id: rowId,
56
- style: {
61
+ style: _extends({}, style, {
57
62
  height: height
58
- }
63
+ })
59
64
  }, children));
60
65
  };
61
66
 
@@ -66,7 +71,8 @@ Row.propTypes = {
66
71
  dataId: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
67
72
  onClick: _propTypes["default"].func,
68
73
  rowBorder: _propTypes["default"].bool,
69
- height: _propTypes["default"].string
74
+ height: _propTypes["default"].string,
75
+ style: _propTypes["default"].object
70
76
  };
71
77
  Row.defaultProps = {
72
78
  customClass: '',
@@ -74,7 +80,8 @@ Row.defaultProps = {
74
80
  onClick: undefined,
75
81
  rowId: undefined,
76
82
  rowBorder: true,
77
- height: undefined
83
+ height: undefined,
84
+ style: null
78
85
  };
79
86
  var _default = Row;
80
87
  exports["default"] = _default;
@@ -52,11 +52,12 @@ var RowColumn = function RowColumn(props) {
52
52
  visible = props.visible;
53
53
  var context = (0, _react.useContext)(_helpers.RowContext);
54
54
  var skeletonize = context.skeletonize,
55
- vertical = context.vertical;
55
+ vertical = context.vertical,
56
+ skeletonInRows = context.skeletonInRows;
56
57
  var hiddenContent = displayContent !== 'always';
57
58
 
58
59
  var renderContent = function renderContent() {
59
- if (skeletonize) {
60
+ if (skeletonize && vertical) {
60
61
  return /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
61
62
  height: 16,
62
63
  style: {
@@ -71,7 +72,7 @@ var RowColumn = function RowColumn(props) {
71
72
  };
72
73
 
73
74
  if (!visible) return null;
74
- if (skeletonize && !vertical) return null;
75
+ if (skeletonize && !skeletonInRows && !vertical) return null;
75
76
  return /*#__PURE__*/_react["default"].createElement("td", {
76
77
  className: "rowcolumn ".concat(customClass, " text-align-").concat(textAlign, " ").concat(!context.rowBorder && ' -noborder'),
77
78
  style: style,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RowContext = exports["default"] = void 0;
6
+ exports.getArrayFromNumber = exports.RowContext = exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -14,5 +14,15 @@ var TableContext = /*#__PURE__*/_react["default"].createContext();
14
14
  var RowContext = /*#__PURE__*/_react["default"].createContext();
15
15
 
16
16
  exports.RowContext = RowContext;
17
+
18
+ var getArrayFromNumber = function getArrayFromNumber(number) {
19
+ return Array.from({
20
+ length: number
21
+ }, function (_, i) {
22
+ return i + 1;
23
+ });
24
+ };
25
+
26
+ exports.getArrayFromNumber = getArrayFromNumber;
17
27
  var _default = TableContext;
18
28
  exports["default"] = _default;
@@ -63,6 +63,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
63
63
 
64
64
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
65
65
 
66
+ 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); }
67
+
66
68
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
67
69
 
68
70
  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."); }
@@ -85,8 +87,9 @@ var getClass = function getClass(_ref) {
85
87
  headerColored = _ref.headerColored,
86
88
  condensed = _ref.condensed,
87
89
  vertical = _ref.vertical,
88
- bodyScrollable = _ref.bodyScrollable;
89
- return "table-component ".concat(customClass, " ").concat(striped && '-striped', " \n ").concat(bordered && '-bordered', " ").concat(hovered && '-hovered', " ").concat(headerColored && '-headercolor', "\n ").concat(condensed && '-condensed', "\n ").concat(vertical && '-vertical', "\n ").concat(skeletonize ? '-skeletonized' : '', "\n ").concat(bodyScrollable ? '-scrollable' : '');
90
+ bodyScrollable = _ref.bodyScrollable,
91
+ skeletonInRows = _ref.skeletonInRows;
92
+ return "table-component ".concat(customClass, " ").concat(striped && '-striped', " \n ").concat(bordered && '-bordered', " ").concat(hovered && '-hovered', " ").concat(headerColored && '-headercolor', "\n ").concat(condensed && '-condensed', "\n ").concat(vertical && '-vertical', "\n ").concat(skeletonize && !skeletonInRows ? '-skeletonized' : '', "\n ").concat(bodyScrollable ? '-scrollable' : '');
90
93
  };
91
94
 
92
95
  var Table = function Table(props) {
@@ -95,7 +98,8 @@ var Table = function Table(props) {
95
98
  bodyScrollable = props.bodyScrollable,
96
99
  children = props.children,
97
100
  vertical = props.vertical,
98
- skeletonize = props.skeletonize;
101
+ skeletonize = props.skeletonize,
102
+ strict = props.strict;
99
103
 
100
104
  var _useState = (0, _react.useState)(props.selectedRowId),
101
105
  _useState2 = _slicedToArray(_useState, 2),
@@ -112,6 +116,11 @@ var Table = function Table(props) {
112
116
  columnsWidth = _useState6[0],
113
117
  setColumnsWidth = _useState6[1];
114
118
 
119
+ var _useState7 = (0, _react.useState)(undefined),
120
+ _useState8 = _slicedToArray(_useState7, 2),
121
+ columnsCount = _useState8[0],
122
+ setColumnsCount = _useState8[1];
123
+
115
124
  var bodyContainerRef = (0, _react.useRef)(undefined);
116
125
  (0, _react.useEffect)(function () {
117
126
  if (bodyScrollable && bodyContainerRef && bodyContainerRef.current) {
@@ -125,13 +134,15 @@ var Table = function Table(props) {
125
134
  (0, _react.useEffect)(function () {
126
135
  setSelectedRowId(props.selectedRowId);
127
136
  }, [props.selectedRowId]);
128
- var contextValues = {
137
+
138
+ var contextValues = _extends({}, props, {
129
139
  bodyContainerRef: bodyContainerRef,
130
- bodyScrollable: bodyScrollable,
131
140
  bodyScrollWidth: bodyScrollWidth,
132
141
  selectedRowId: selectedRowId,
133
142
  vertical: vertical,
134
143
  skeletonize: skeletonize,
144
+ strict: strict,
145
+ columnsCount: columnsCount,
135
146
  handleSelectRow: function handleSelectRow(selectedId) {
136
147
  setSelectedRowId(selectedId);
137
148
  },
@@ -139,13 +150,20 @@ var Table = function Table(props) {
139
150
  handleTableRowClick: onRowClick,
140
151
  handlerSetColumnsWidth: function handlerSetColumnsWidth(widths) {
141
152
  if (!_lodash["default"].isEmpty(widths) && _lodash["default"].isEmpty(columnsWidth)) setColumnsWidth(widths);
153
+ },
154
+ handlerSetColumnsCount: function handlerSetColumnsCount(count) {
155
+ return setColumnsCount(count);
142
156
  }
143
- };
157
+ });
158
+
144
159
  return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
145
160
  value: contextValues
146
161
  }, bodyScrollable ? /*#__PURE__*/_react["default"].createElement("div", {
147
162
  className: getClass(props)
148
163
  }, children) : /*#__PURE__*/_react["default"].createElement("table", {
164
+ style: {
165
+ contain: strict ? 'strict' : 'size layout style'
166
+ },
149
167
  className: getClass(props)
150
168
  }, children));
151
169
  };
@@ -163,7 +181,11 @@ Table.propTypes = {
163
181
  vertical: _propTypes["default"].bool,
164
182
  selectedRowId: _propTypes["default"].string,
165
183
  bodyScrollable: _propTypes["default"].bool,
166
- skeletonize: _propTypes["default"].bool
184
+ skeletonize: _propTypes["default"].bool,
185
+ strict: _propTypes["default"].bool,
186
+ skeletonInRows: _propTypes["default"].number,
187
+ skeletonInHeader: _propTypes["default"].bool,
188
+ skeletonHeight: _propTypes["default"].number
167
189
  };
168
190
  Table.defaultProps = {
169
191
  striped: false,
@@ -177,7 +199,11 @@ Table.defaultProps = {
177
199
  vertical: false,
178
200
  selectedRowId: null,
179
201
  bodyScrollable: false,
180
- skeletonize: false
202
+ skeletonize: false,
203
+ strict: false,
204
+ skeletonInRows: 10,
205
+ skeletonInHeader: false,
206
+ skeletonHeight: 16
181
207
  };
182
208
  var _default = Table;
183
209
  exports["default"] = _default;
package/lib/tabs/Menu.js CHANGED
@@ -20,22 +20,12 @@ var Menu = function Menu(props) {
20
20
  customClassForToolBar = props.customClassForToolBar,
21
21
  menuRef = props.menuRef,
22
22
  toolBarRef = props.toolBarRef;
23
-
24
- if (!toolbar) {
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));
31
- }
32
-
33
23
  return /*#__PURE__*/_react["default"].createElement("div", {
34
24
  className: "menucontainer",
35
25
  ref: function ref(r) {
36
26
  menuRef(r);
37
27
  }
38
- }, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props), /*#__PURE__*/_react["default"].cloneElement(toolbar, {
28
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItems["default"], props), /*#__PURE__*/_react["default"].createElement(_DropdownItems["default"], props), toolbar && /*#__PURE__*/_react["default"].cloneElement(toolbar, {
39
29
  customClass: "menubar ".concat(customClassForToolBar),
40
30
  innerRef: toolBarRef ? function (r) {
41
31
  toolBarRef(r);
package/lib/tabs/index.js CHANGED
@@ -254,7 +254,7 @@ var Tabs = function Tabs(props) {
254
254
  return function () {
255
255
  return window.removeEventListener('resize', onResize);
256
256
  };
257
- }, [_menuRef.current]);
257
+ }, [_menuRef.current, tabMenuPosition]);
258
258
  (0, _react.useEffect)(function () {
259
259
  if (selectedTab) setSelectedTabId(selectedTab);
260
260
  if (children) setPanels((0, _tabHelpers.buildPanels)(children));
@@ -135,7 +135,8 @@ var TreeNode = /*#__PURE__*/function (_Component) {
135
135
  children = _this$props3.children,
136
136
  isParent = _this$props3.isParent,
137
137
  onNodeClick = _this$props3.onNodeClick,
138
- nodeMenuButtonSize = _this$props3.nodeMenuButtonSize;
138
+ nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
139
+ selectedNodeId = _this$props3.selectedNodeId;
139
140
  var node = this.state.node;
140
141
  var showNodeElements = this.state.showNodeElements;
141
142
  return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
@@ -157,9 +158,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
157
158
  className: "treeviewitem"
158
159
  }, _this2.getSpan(), /*#__PURE__*/_react["default"].createElement("div", {
159
160
  className: "label",
160
- style: !onNodeClick ? {
161
- textDecoration: 'none'
162
- } : null,
161
+ style: {
162
+ textDecoration: !onNodeClick ? 'none' : null,
163
+ backgroundColor: selectedNodeId === node.id ? 'rgb(209, 209, 209)' : null
164
+ },
163
165
  ref: _this2.labelRef,
164
166
  role: "button",
165
167
  onKeyPress: null,
@@ -258,7 +260,11 @@ var _initialiseProps = function _initialiseProps() {
258
260
  onKeyPress: null,
259
261
  tabIndex: 0,
260
262
  role: "button",
261
- className: isLoading ? 'isloading' : 'opencloseicon',
263
+ style: isLoading ? {
264
+ marginLeft: '-30px',
265
+ marginTop: '-5px'
266
+ } : null,
267
+ className: "opencloseicon",
262
268
  onClick: function onClick() {
263
269
  return _this3.openCloseTree(node);
264
270
  }
@@ -442,7 +448,8 @@ TreeNode.propTypes = {
442
448
  handlerOnNodeOpen: _propTypes["default"].func,
443
449
  nodeElementsValidations: _propTypes["default"].object,
444
450
  startNodesOpened: _propTypes["default"].bool.isRequired,
445
- idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number)
451
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
452
+ selectedNodeId: _propTypes["default"].number
446
453
  };
447
454
  TreeNode.defaultProps = {
448
455
  childrenIds: [],
@@ -456,7 +463,8 @@ TreeNode.defaultProps = {
456
463
  onNodeClick: undefined,
457
464
  handlerOnNodeOpen: undefined,
458
465
  nodeElementsValidations: undefined,
459
- idsInLoading: []
466
+ idsInLoading: [],
467
+ selectedNodeId: undefined
460
468
  };
461
469
  TreeNode.contextType = _constants.TreeviewContext;
462
470
  var _default = TreeNode;
@@ -100,20 +100,26 @@ var TreeView = /*#__PURE__*/function (_Component) {
100
100
  enumerable: true,
101
101
  writable: true,
102
102
  value: function value(selectedIds) {
103
- var requiredIds = [];
104
- var newSelectedIds = [];
105
- selectedIds.forEach(function (id) {
106
- var _this$checkAllAncestr = _this.checkAllAncestry(id, [], true, false),
107
- requiredParentsIds = _this$checkAllAncestr.requiredParentsIds,
108
- updatedIdsWithAncestryIds = _this$checkAllAncestr.updatedIdsWithAncestryIds;
109
-
110
- newSelectedIds = [].concat(_toConsumableArray(newSelectedIds), _toConsumableArray(updatedIdsWithAncestryIds));
111
- requiredIds = [].concat(_toConsumableArray(requiredIds), _toConsumableArray(requiredParentsIds));
112
- });
113
-
114
103
  _this.setState({
115
- requiredParentsIds: _lodash["default"].uniq(requiredIds),
116
- selectedIds: _lodash["default"].uniq(newSelectedIds)
104
+ requiredParentsIds: []
105
+ }, function () {
106
+ var requiredIds = [];
107
+ var newSelectedIds = [];
108
+ var selectedIdsUpdatedOnMount = _this.state.selectedIdsUpdatedOnMount;
109
+ selectedIds.forEach(function (id) {
110
+ var _this$checkAllAncestr = _this.checkAllAncestry(id, [], true, false),
111
+ requiredParentsIds = _this$checkAllAncestr.requiredParentsIds,
112
+ updatedIdsWithAncestryIds = _this$checkAllAncestr.updatedIdsWithAncestryIds;
113
+
114
+ newSelectedIds = [].concat(_toConsumableArray(newSelectedIds), _toConsumableArray(updatedIdsWithAncestryIds));
115
+ requiredIds = [].concat(_toConsumableArray(requiredIds), _toConsumableArray(requiredParentsIds));
116
+ });
117
+
118
+ _this.setState({
119
+ requiredParentsIds: _lodash["default"].uniq(requiredIds),
120
+ selectedIds: _lodash["default"].uniq(newSelectedIds),
121
+ selectedIdsUpdatedOnMount: selectedIdsUpdatedOnMount || true
122
+ });
117
123
  });
118
124
  }
119
125
  });
@@ -464,7 +470,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
464
470
  nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
465
471
  alwaysShowArrow = _this$props3.alwaysShowArrow,
466
472
  startNodesOpened = _this$props3.startNodesOpened,
467
- idsInLoading = _this$props3.idsInLoading;
473
+ idsInLoading = _this$props3.idsInLoading,
474
+ selectedNodeId = _this$props3.selectedNodeId;
468
475
  var childrenIds = [];
469
476
 
470
477
  if (node.itens && node.itens.length > 0) {
@@ -493,6 +500,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
493
500
  nodeElementsValidations: nodeElementsValidations,
494
501
  nodeMenuButtonSize: nodeMenuButtonSize,
495
502
  onNodeClick: onNodeClick,
503
+ selectedNodeId: selectedNodeId,
496
504
  handlerOnNodeOpen: _this.handleOnNodeOpen
497
505
  }, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
498
506
  return _this.buildTree(nodeitem, node.id, ids);
@@ -506,7 +514,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
506
514
  selectedIds: _this.props.selectedIds,
507
515
  isHandlingSelectedIds: false,
508
516
  requiredParentsIds: [],
509
- alreadyOpenedIds: []
517
+ alreadyOpenedIds: [],
518
+ selectedIdsUpdatedOnMount: false
510
519
  };
511
520
  return _this;
512
521
  }
@@ -521,12 +530,15 @@ var TreeView = /*#__PURE__*/function (_Component) {
521
530
  value: function componentDidUpdate(prevProps, prevState) {
522
531
  var _this$state3 = this.state,
523
532
  selectedIds = _this$state3.selectedIds,
524
- propSelectedIds = _this$state3.propSelectedIds;
533
+ propSelectedIds = _this$state3.propSelectedIds,
534
+ selectedIdsUpdatedOnMount = _this$state3.selectedIdsUpdatedOnMount;
525
535
  var allowCheckAllAncestry = this.props.allowCheckAllAncestry;
526
536
 
527
537
  var isSameSelectedIds = _lodash["default"].isEqual(propSelectedIds.sort(), prevState.propSelectedIds.sort());
528
538
 
529
- if (allowCheckAllAncestry && !isSameSelectedIds) this.handleNewSelectedIds(selectedIds);
539
+ if (allowCheckAllAncestry && (!selectedIdsUpdatedOnMount || !isSameSelectedIds)) {
540
+ this.handleNewSelectedIds(selectedIds);
541
+ }
530
542
  }
531
543
  }, {
532
544
  key: "render",
@@ -599,7 +611,8 @@ TreeView.propTypes = {
599
611
  onNodeOpen: _propTypes["default"].func,
600
612
  nodeElementsValidations: _propTypes["default"].object,
601
613
  enableDynamicData: _propTypes["default"].bool,
602
- idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number)
614
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
615
+ selectedNodeId: _propTypes["default"].number
603
616
  };
604
617
  TreeView.defaultProps = {
605
618
  customClass: '',
@@ -622,7 +635,8 @@ TreeView.defaultProps = {
622
635
  onNodeOpen: undefined,
623
636
  nodeElementsValidations: undefined,
624
637
  enableDynamicData: false,
625
- idsInLoading: []
638
+ idsInLoading: [],
639
+ selectedNodeId: undefined
626
640
  };
627
641
  var _default = TreeView;
628
642
  exports["default"] = _default;
@@ -266,5 +266,14 @@ describe('Treeview', function () {
266
266
  var li = container.querySelector('li').firstChild;
267
267
  expect(li.firstChild).toHaveClass('spinnerloading');
268
268
  });
269
+ it('should apply selectedNodeId', function () {
270
+ var _render14 = (0, _react.render)(treeviewRenderMock({
271
+ selectedNodeId: 1
272
+ })),
273
+ container = _render14.container;
274
+
275
+ var filhosLi = container.querySelector('li').children;
276
+ expect(filhosLi[1]).toHaveStyle('background-color: rgb(209, 209, 209)');
277
+ });
269
278
  });
270
279
  });
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.STEP_POSITIONS = exports.ARROW_HEIGHT = exports.ARROW_WIDTH = void 0;
7
+ var ARROW_WIDTH = 26;
8
+ exports.ARROW_WIDTH = ARROW_WIDTH;
9
+ var ARROW_HEIGHT = 20;
10
+ exports.ARROW_HEIGHT = ARROW_HEIGHT;
11
+ var STEP_POSITIONS = {
12
+ right: 'right',
13
+ left: 'left'
14
+ };
15
+ exports.STEP_POSITIONS = STEP_POSITIONS;