linear-react-components-ui 0.4.76-beta.27 → 0.4.76-beta.28

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.
@@ -19,8 +19,6 @@ var _helpers = require("./helpers");
19
19
 
20
20
  var _permissionValidations = require("../../permissionValidations");
21
21
 
22
- var _withTooltip = _interopRequireDefault(require("../../internals/withTooltip"));
23
-
24
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
23
 
26
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -51,8 +49,7 @@ var NavMenuItem = function NavMenuItem(props) {
51
49
  permissionAttr = props.permissionAttr,
52
50
  maxWidth = props.maxWidth,
53
51
  minWidth = props.minWidth,
54
- columnsQtty = props.columnsQtty,
55
- targetRef = props.targetRef;
52
+ columnsQtty = props.columnsQtty;
56
53
 
57
54
  var _useState = (0, _react.useState)(false),
58
55
  _useState2 = _slicedToArray(_useState, 2),
@@ -96,7 +93,6 @@ var NavMenuItem = function NavMenuItem(props) {
96
93
  return /*#__PURE__*/_react["default"].createElement(_helpers.SubMenuContext.Provider, {
97
94
  value: contextValues()
98
95
  }, /*#__PURE__*/_react["default"].createElement("li", {
99
- ref: targetRef,
100
96
  className: "item ".concat(url && !disabled && '-withlink', " ").concat(customClass, " ").concat(disabled && '-disabled'),
101
97
  onMouseEnter: function onMouseEnter(e) {
102
98
  _onMouseEnter(e);
@@ -140,8 +136,7 @@ NavMenuItem.propTypes = {
140
136
  permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
141
137
  minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
142
138
  maxWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
143
- columnsQtty: _propTypes["default"].number,
144
- targetRef: _propTypes["default"].func
139
+ columnsQtty: _propTypes["default"].number
145
140
  };
146
141
  NavMenuItem.defaultProps = {
147
142
  childrenIsSubMenu: true,
@@ -153,10 +148,7 @@ NavMenuItem.defaultProps = {
153
148
  permissionAttr: undefined,
154
149
  minWidth: 500,
155
150
  maxWidth: '90%',
156
- columnsQtty: 2,
157
- targetRef: undefined
151
+ columnsQtty: 2
158
152
  };
159
-
160
- var _default = (0, _withTooltip["default"])(NavMenuItem);
161
-
153
+ var _default = NavMenuItem;
162
154
  exports["default"] = _default;
@@ -43,6 +43,8 @@ var _NavSubMenuItem = _interopRequireDefault(require("./NavSubMenuItem"));
43
43
 
44
44
  var _NavMenuGroup = _interopRequireDefault(require("./NavMenuGroup"));
45
45
 
46
+ var _text = _interopRequireDefault(require("../../inputs/text"));
47
+
46
48
  var _ExpandMenu = _interopRequireDefault(require("./ExpandMenu"));
47
49
 
48
50
  require("../../assets/styles/sidenav.scss");
@@ -51,8 +53,6 @@ var _helpers = require("./helpers");
51
53
 
52
54
  var _icons = _interopRequireDefault(require("../../icons"));
53
55
 
54
- var constants = _interopRequireWildcard(require("../../internals/constants"));
55
-
56
56
  var _popup_menu_search = _interopRequireDefault(require("./popup_menu_search"));
57
57
 
58
58
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -98,20 +98,30 @@ var SideNav = function SideNav(props) {
98
98
  isExpanded = _useState2[0],
99
99
  setIsExpanded = _useState2[1];
100
100
 
101
- var _useState3 = (0, _react.useState)([]),
101
+ var _useState3 = (0, _react.useState)(true),
102
102
  _useState4 = _slicedToArray(_useState3, 2),
103
- menuItemsContent = _useState4[0],
104
- setMenuItemsContent = _useState4[1];
103
+ searchFieldHasNoFocus = _useState4[0],
104
+ setSearchFieldHasNoFocus = _useState4[1];
105
105
 
106
- var _useState5 = (0, _react.useState)({}),
106
+ var _useState5 = (0, _react.useState)([]),
107
107
  _useState6 = _slicedToArray(_useState5, 2),
108
- sideNavDimensions = _useState6[0],
109
- setSideNavDimensions = _useState6[1];
108
+ menuItemsContent = _useState6[0],
109
+ setMenuItemsContent = _useState6[1];
110
110
 
111
- var _useState7 = (0, _react.useState)(false),
111
+ var _useState7 = (0, _react.useState)(''),
112
112
  _useState8 = _slicedToArray(_useState7, 2),
113
- openSearchMenuPopup = _useState8[0],
114
- setOpenSearchMenuPopup = _useState8[1];
113
+ searchContent = _useState8[0],
114
+ setSearchContent = _useState8[1];
115
+
116
+ var _useState9 = (0, _react.useState)({}),
117
+ _useState10 = _slicedToArray(_useState9, 2),
118
+ sideNavDimensions = _useState10[0],
119
+ setSideNavDimensions = _useState10[1];
120
+
121
+ var _useState11 = (0, _react.useState)(false),
122
+ _useState12 = _slicedToArray(_useState11, 2),
123
+ openSearchMenuPopup = _useState12[0],
124
+ setOpenSearchMenuPopup = _useState12[1];
115
125
 
116
126
  var searchFieldRef = (0, _react.useRef)(null);
117
127
  var sideNavRef = (0, _react.useRef)(null);
@@ -121,6 +131,41 @@ var SideNav = function SideNav(props) {
121
131
  if (onExpandMenuClick) onExpandMenuClick(!isExpanded);
122
132
  };
123
133
 
134
+ var returnLeftElements = function returnLeftElements() {
135
+ var propsTextField = {};
136
+
137
+ if (searchFieldHasNoFocus) {
138
+ propsTextField = {
139
+ leftElements: [/*#__PURE__*/_react["default"].createElement("div", {
140
+ key: "searchMenuIcon",
141
+ role: "button",
142
+ tabIndex: "-1",
143
+ style: {
144
+ width: '100%',
145
+ height: '100%',
146
+ display: 'flex',
147
+ justifyContent: 'center'
148
+ },
149
+ onKeyDown: function onKeyDown() {},
150
+ onClick: function onClick() {
151
+ if (searchFieldRef && searchFieldRef.current) {
152
+ setSearchFieldHasNoFocus(false);
153
+ setTimeout(function () {
154
+ searchFieldRef.current.focus();
155
+ }, 150);
156
+ }
157
+ }
158
+ }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
159
+ name: "search",
160
+ customClass: "searchmenuicon",
161
+ size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
162
+ }))]
163
+ };
164
+ }
165
+
166
+ return propsTextField;
167
+ };
168
+
124
169
  var getPopupMenuSearchStyle = function getPopupMenuSearchStyle() {
125
170
  var left = sideNavDimensions.left,
126
171
  top = sideNavDimensions.top,
@@ -139,6 +184,8 @@ var SideNav = function SideNav(props) {
139
184
 
140
185
  var closeSearchMenuPopup = function closeSearchMenuPopup() {
141
186
  setOpenSearchMenuPopup(false);
187
+ setSearchContent('');
188
+ setSearchFieldHasNoFocus(true);
142
189
  };
143
190
 
144
191
  var compareChild = function compareChild(child) {
@@ -147,7 +194,6 @@ var SideNav = function SideNav(props) {
147
194
 
148
195
  if ((type === _NavMenuItem["default"] || type === _NavSubMenuItem["default"]) && !child.props.children) {
149
196
  menuItemsContent.push({
150
- id: "".concat(child.props.title, "-").concat(_uuid["default"].v1()),
151
197
  content: child.props.title,
152
198
  url: child.props.url
153
199
  });
@@ -171,24 +217,6 @@ var SideNav = function SideNav(props) {
171
217
  }
172
218
  };
173
219
 
174
- var openSearchMenu = function openSearchMenu() {
175
- setOpenSearchMenuPopup(true);
176
- if (searchFieldRef.current) searchFieldRef.current.focus();
177
- };
178
-
179
- var onKeyDown = function onKeyDown(e) {
180
- if ([constants.keyCodes.F].includes(e.keyCode) && e.ctrlKey && e.shiftKey) {
181
- e.preventDefault();
182
- openSearchMenu();
183
- }
184
- };
185
-
186
- (0, _react.useEffect)(function () {
187
- document.addEventListener('keydown', onKeyDown);
188
- return function () {
189
- document.removeEventListener('keydown', onKeyDown);
190
- };
191
- }, []);
192
220
  (0, _react.useEffect)(function () {
193
221
  if (enableMenuSearch && sideNavRef && sideNavRef.current) {
194
222
  setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
@@ -211,24 +239,30 @@ var SideNav = function SideNav(props) {
211
239
  key: "popup-menusearch-".concat(_uuid["default"].v1())
212
240
  }, /*#__PURE__*/_react["default"].createElement(_NavMenuItem["default"], {
213
241
  childrenIsSubMenu: false,
214
- customClass: "-customsidenavitem",
215
- tooltip: "Pesquisar funcionalidades (CTRL+SHIFT+F)",
216
- tooltipPosition: "right"
217
- }, /*#__PURE__*/_react["default"].createElement("div", {
218
- key: "searchMenuIcon",
219
- className: "searchmenubutton",
220
- role: "button",
221
- tabIndex: "-1",
222
- onKeyDown: function onKeyDown() {},
223
- onClick: function onClick() {
224
- if (!openSearchMenuPopup) openSearchMenu();else closeSearchMenuPopup();
242
+ customClass: "-customsidenavitem"
243
+ }, /*#__PURE__*/_react["default"].createElement(_text["default"], _extends({
244
+ value: searchContent,
245
+ customClassForWrapper: "-customsizes",
246
+ customClass: "-customsizes",
247
+ customClassForSideButtons: "-iconcenter",
248
+ tooltip: "Pesquisar funcionalidades",
249
+ tooltipPosition: "right",
250
+ customClassForInputContent: searchFieldHasNoFocus ? '-hidden' : '',
251
+ onFocus: function onFocus() {
252
+ return setSearchFieldHasNoFocus(false);
253
+ },
254
+ onBlur: function onBlur(e) {
255
+ if (e.target.value === '') setSearchFieldHasNoFocus(true);
256
+ },
257
+ inputRef: searchFieldRef,
258
+ onChange: function onChange(e) {
259
+ setSearchContent(e.target.value);
260
+ setOpenSearchMenuPopup(e.target.value !== '');
261
+ setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
225
262
  }
226
- }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
227
- name: "search",
228
- customClass: "searchmenuicon",
229
- size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
230
- })), openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement(_popup_menu_search["default"], _extends({}, props, {
263
+ }, returnLeftElements())), openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement(_popup_menu_search["default"], _extends({}, props, {
231
264
  style: getPopupMenuSearchStyle(),
265
+ searchContent: searchContent,
232
266
  handlerClose: closeSearchMenuPopup,
233
267
  menuItemsContent: menuItemsContent && returnMenuItems()
234
268
  }))));
@@ -274,7 +308,7 @@ SideNav.defaultProps = {
274
308
  showExpandMenu: false,
275
309
  onExpandMenuClick: undefined,
276
310
  enableMenuSearch: false,
277
- menuSearchEmptyMessage: ''
311
+ menuSearchEmptyMessage: undefined
278
312
  };
279
313
  var _default = SideNav;
280
314
  exports["default"] = _default;
@@ -9,6 +9,8 @@ exports["default"] = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _uuid = _interopRequireDefault(require("uuid"));
13
+
12
14
  var _reactDom = _interopRequireDefault(require("react-dom"));
13
15
 
14
16
  var _search = _interopRequireDefault(require("../../../inputs/search"));
@@ -41,11 +43,12 @@ var body = document.getElementsByTagName('body')[0];
41
43
 
42
44
  var PopupMenuSearch = function PopupMenuSearch(props) {
43
45
  var style = props.style,
46
+ searchContent = props.searchContent,
44
47
  menuItemsContent = props.menuItemsContent,
45
48
  handlerClose = props.handlerClose,
46
49
  menuSearchEmptyMessage = props.menuSearchEmptyMessage;
47
50
 
48
- var _useState = (0, _react.useState)(''),
51
+ var _useState = (0, _react.useState)(searchContent),
49
52
  _useState2 = _slicedToArray(_useState, 2),
50
53
  searchFieldContent = _useState2[0],
51
54
  setSearchFieldContent = _useState2[1];
@@ -55,11 +58,6 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
55
58
  searchResult = _useState4[0],
56
59
  setSearchResult = _useState4[1];
57
60
 
58
- var _useState5 = (0, _react.useState)(''),
59
- _useState6 = _slicedToArray(_useState5, 2),
60
- defaultSelectedItemId = _useState6[0],
61
- setDefaultSelectedItemId = _useState6[1];
62
-
63
61
  var searchFieldRef = (0, _react.useRef)(null);
64
62
  var popupRef = (0, _react.useRef)(document.createElement('div'));
65
63
  popupRef.current.className = 'searchmenu';
@@ -83,39 +81,35 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
83
81
  (0, _react.useEffect)(function () {
84
82
  popupRef.current.style = style;
85
83
  }, [style]);
86
- (0, _react.useEffect)(function () {
87
- if (searchResult.length > 0) setDefaultSelectedItemId(searchResult[0].id);
88
- }, []);
89
84
 
90
85
  var search = function search(value) {
91
86
  var filter = value.toLowerCase();
92
87
  var result = menuItemsContent && menuItemsContent.filter(function (item) {
93
88
  return item.content.toLowerCase().includes(filter);
94
89
  });
95
- if (result.length > 0) setDefaultSelectedItemId(result[0].id);
96
90
  setSearchFieldContent(value);
97
91
  setSearchResult(result);
98
92
  };
99
93
 
94
+ (0, _react.useEffect)(function () {
95
+ setSearchFieldContent(searchContent);
96
+ search(searchContent);
97
+ }, [searchContent]);
98
+
100
99
  var returnList = function returnList() {
101
100
  if (searchResult && searchResult.length > 0) {
102
101
  return /*#__PURE__*/_react["default"].createElement(_list["default"], {
103
102
  condensed: true,
104
103
  transparent: true,
105
- selectable: true,
106
- onSelectItem: handlerClose,
107
- selectedItemId: defaultSelectedItemId,
108
104
  style: {
109
- margin: '25px 0px',
110
- border: 'none',
111
- boxShadow: 'none'
105
+ margin: '25px 0px'
112
106
  }
113
- }, searchResult.map(function (item) {
107
+ }, searchResult && searchResult.map(function (item) {
114
108
  return /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
115
- key: item.id,
116
- itemId: item.id,
109
+ key: "".concat(item.content, "-").concat(_uuid["default"].v1()),
117
110
  url: item.url,
118
- text: item.content
111
+ text: item.content,
112
+ onClick: handlerClose
119
113
  });
120
114
  }));
121
115
  }
@@ -143,7 +137,7 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
143
137
  inputRef: searchFieldRef,
144
138
  value: searchFieldContent,
145
139
  onReset: function onReset() {
146
- search('');
140
+ setSearchFieldContent('');
147
141
  }
148
142
  }), /*#__PURE__*/_react["default"].createElement("div", {
149
143
  style: {
@@ -206,30 +206,38 @@ describe('SideNav Menu', function () {
206
206
 
207
207
  expect(container.querySelector('.openclosemenu')).toBeInTheDocument();
208
208
  });
209
- it('should render all items', function () {
210
- var _render4 = (0, _react2.render)(sidebarNavMockRender()),
209
+ it('should enable menu search', function () {
210
+ var _render4 = (0, _react2.render)(sidebarNavMockRender({
211
+ enableMenuSearch: true
212
+ })),
211
213
  container = _render4.container;
214
+
215
+ expect(container.querySelector('.inputwrapper')).toBeInTheDocument();
216
+ });
217
+ it('should render all items', function () {
218
+ var _render5 = (0, _react2.render)(sidebarNavMockRender()),
219
+ container = _render5.container;
212
220
  /* primeiro item é o float menu */
213
221
 
214
222
 
215
223
  expect(container.querySelectorAll('li.item').length - 1).toBe(menuDataMock.length);
216
224
  });
217
225
  it('should be rendering 3 items SVGs', function () {
218
- var _render5 = (0, _react2.render)(sidebarNavMockRender()),
219
- container = _render5.container;
226
+ var _render6 = (0, _react2.render)(sidebarNavMockRender()),
227
+ container = _render6.container;
220
228
 
221
229
  expect(container.querySelectorAll('li.item .icon-component').length).toBe(3);
222
230
  });
223
231
  it('should open submenu on over', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
224
- var _render6, container;
232
+ var _render7, container;
225
233
 
226
234
  return regeneratorRuntime.wrap(function _callee$(_context) {
227
235
  while (1) {
228
236
  switch (_context.prev = _context.next) {
229
237
  case 0:
230
- _render6 = (0, _react2.render)(sidebarNavMockRender({
238
+ _render7 = (0, _react2.render)(sidebarNavMockRender({
231
239
  menuSize: 'large'
232
- })), container = _render6.container;
240
+ })), container = _render7.container;
233
241
 
234
242
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
235
243
 
@@ -249,13 +257,13 @@ describe('SideNav Menu', function () {
249
257
  }, _callee);
250
258
  })));
251
259
  it('submenu should render all items', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
252
- var _render7, container;
260
+ var _render8, container;
253
261
 
254
262
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
255
263
  while (1) {
256
264
  switch (_context2.prev = _context2.next) {
257
265
  case 0:
258
- _render7 = (0, _react2.render)(sidebarNavMockRender()), container = _render7.container;
266
+ _render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
259
267
 
260
268
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
261
269
 
@@ -275,13 +283,13 @@ describe('SideNav Menu', function () {
275
283
  }, _callee2);
276
284
  })));
277
285
  it('submenu should have title', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
278
- var _render8, container;
286
+ var _render9, container;
279
287
 
280
288
  return regeneratorRuntime.wrap(function _callee3$(_context3) {
281
289
  while (1) {
282
290
  switch (_context3.prev = _context3.next) {
283
291
  case 0:
284
- _render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
292
+ _render9 = (0, _react2.render)(sidebarNavMockRender()), container = _render9.container;
285
293
 
286
294
  _react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
287
295
 
@@ -300,80 +308,5 @@ describe('SideNav Menu', function () {
300
308
  }
301
309
  }, _callee3);
302
310
  })));
303
- describe('Popup Search Menu', function () {
304
- it('should enable menu search', function () {
305
- var _render9 = (0, _react2.render)(sidebarNavMockRender({
306
- enableMenuSearch: true
307
- })),
308
- container = _render9.container;
309
-
310
- expect(container.querySelector('.searchmenubutton')).toBeInTheDocument();
311
- });
312
- it('should render tooltip on over menu search item', function () {
313
- var _render10 = (0, _react2.render)(sidebarNavMockRender({
314
- enableMenuSearch: true
315
- })),
316
- container = _render10.container;
317
-
318
- var navitem = container.querySelector('.-customsidenavitem');
319
-
320
- _react2.fireEvent.mouseOver(navitem);
321
-
322
- expect(document.querySelector('.tooltip-component')).toBeInTheDocument();
323
- });
324
- it('should open popup menu when pressed HotKey', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
325
- var _render11, container;
326
-
327
- return regeneratorRuntime.wrap(function _callee4$(_context4) {
328
- while (1) {
329
- switch (_context4.prev = _context4.next) {
330
- case 0:
331
- _render11 = (0, _react2.render)(sidebarNavMockRender({
332
- enableMenuSearch: true
333
- })), container = _render11.container;
334
-
335
- _react2.fireEvent.keyDown(container, {
336
- key: 'F',
337
- code: 'keyF',
338
- keyCode: 70,
339
- ctrlKey: true,
340
- shiftKey: true
341
- });
342
-
343
- expect(document.querySelector('.searchmenu')).toBeInTheDocument();
344
-
345
- case 3:
346
- case "end":
347
- return _context4.stop();
348
- }
349
- }
350
- }, _callee4);
351
- })));
352
- it('should search on input change', function () {
353
- var _render12 = (0, _react2.render)(sidebarNavMockRender({
354
- enableMenuSearch: true
355
- })),
356
- container = _render12.container;
357
-
358
- _react2.fireEvent.keyDown(container, {
359
- key: 'F',
360
- code: 'keyF',
361
- keyCode: 70,
362
- ctrlKey: true,
363
- shiftKey: true
364
- });
365
-
366
- var input = document.querySelector('.searchmenu .inputwrapper .inputcontent .textinput');
367
-
368
- _react2.fireEvent.change(input, {
369
- target: {
370
- value: 'A'
371
- }
372
- });
373
-
374
- expect(document.querySelector('.searchmenu')).toBeInTheDocument();
375
- expect(document.querySelectorAll('.searchmenu .list-component .item').length).toBe(5);
376
- });
377
- });
378
311
  });
379
312
  });
@@ -27,6 +27,8 @@ var _list = _interopRequireWildcard(require("../list"));
27
27
 
28
28
  var _toolbar = _interopRequireWildcard(require("../toolbar"));
29
29
 
30
+ var _SpinnerLoading = _interopRequireDefault(require("../spinner/SpinnerLoading"));
31
+
30
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
33
 
32
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -133,7 +135,8 @@ var TreeNode = /*#__PURE__*/function (_Component) {
133
135
  children = _this$props3.children,
134
136
  isParent = _this$props3.isParent,
135
137
  onNodeClick = _this$props3.onNodeClick,
136
- nodeMenuButtonSize = _this$props3.nodeMenuButtonSize;
138
+ nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
139
+ selectedNodeId = _this$props3.selectedNodeId;
137
140
  var node = this.state.node;
138
141
  var showNodeElements = this.state.showNodeElements;
139
142
  return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
@@ -155,6 +158,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
155
158
  className: "treeviewitem"
156
159
  }, _this2.getSpan(), /*#__PURE__*/_react["default"].createElement("div", {
157
160
  className: "label",
161
+ style: {
162
+ textDecoration: !onNodeClick ? 'none' : null,
163
+ backgroundColor: selectedNodeId === node.id ? 'rgb(209, 209, 209)' : null
164
+ },
158
165
  ref: _this2.labelRef,
159
166
  role: "button",
160
167
  onKeyPress: null,
@@ -240,8 +247,11 @@ var _initialiseProps = function _initialiseProps() {
240
247
  enumerable: true,
241
248
  writable: true,
242
249
  value: function value() {
243
- var alwaysShowArrow = _this3.props.alwaysShowArrow;
250
+ var _this3$props = _this3.props,
251
+ alwaysShowArrow = _this3$props.alwaysShowArrow,
252
+ idsInLoading = _this3$props.idsInLoading;
244
253
  var node = _this3.state.node;
254
+ var isLoading = idsInLoading.includes(node.id);
245
255
 
246
256
  var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
247
257
 
@@ -250,11 +260,17 @@ var _initialiseProps = function _initialiseProps() {
250
260
  onKeyPress: null,
251
261
  tabIndex: 0,
252
262
  role: "button",
263
+ style: isLoading ? {
264
+ marginLeft: '-30px',
265
+ marginTop: '-5px'
266
+ } : null,
253
267
  className: "opencloseicon",
254
268
  onClick: function onClick() {
255
269
  return _this3.openCloseTree(node);
256
270
  }
257
- }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
271
+ }, isLoading ? /*#__PURE__*/_react["default"].createElement(_SpinnerLoading["default"], {
272
+ size: "35px"
273
+ }) : /*#__PURE__*/_react["default"].createElement(_icons["default"], {
258
274
  name: _this3.state.isVisible ? 'up' : 'down',
259
275
  size: 10
260
276
  }));
@@ -431,7 +447,9 @@ TreeNode.propTypes = {
431
447
  onNodeClick: _propTypes["default"].func,
432
448
  handlerOnNodeOpen: _propTypes["default"].func,
433
449
  nodeElementsValidations: _propTypes["default"].object,
434
- startNodesOpened: _propTypes["default"].bool.isRequired
450
+ startNodesOpened: _propTypes["default"].bool.isRequired,
451
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
452
+ selectedNodeId: _propTypes["default"].number
435
453
  };
436
454
  TreeNode.defaultProps = {
437
455
  childrenIds: [],
@@ -444,7 +462,9 @@ TreeNode.defaultProps = {
444
462
  nodeMenuButtonSize: 'small',
445
463
  onNodeClick: undefined,
446
464
  handlerOnNodeOpen: undefined,
447
- nodeElementsValidations: undefined
465
+ nodeElementsValidations: undefined,
466
+ idsInLoading: [],
467
+ selectedNodeId: undefined
448
468
  };
449
469
  TreeNode.contextType = _constants.TreeviewContext;
450
470
  var _default = TreeNode;
@@ -469,7 +469,9 @@ var TreeView = /*#__PURE__*/function (_Component) {
469
469
  nodeToolbarElements = _this$props3.nodeToolbarElements,
470
470
  nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
471
471
  alwaysShowArrow = _this$props3.alwaysShowArrow,
472
- startNodesOpened = _this$props3.startNodesOpened;
472
+ startNodesOpened = _this$props3.startNodesOpened,
473
+ idsInLoading = _this$props3.idsInLoading,
474
+ selectedNodeId = _this$props3.selectedNodeId;
473
475
  var childrenIds = [];
474
476
 
475
477
  if (node.itens && node.itens.length > 0) {
@@ -487,6 +489,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
487
489
  return /*#__PURE__*/_react["default"].createElement(_Node["default"], {
488
490
  key: "node-".concat(node.id),
489
491
  node: node,
492
+ idsInLoading: idsInLoading,
490
493
  startNodesOpened: startNodesOpened,
491
494
  alwaysShowArrow: alwaysShowArrow,
492
495
  childrenIds: childrenIds,
@@ -497,6 +500,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
497
500
  nodeElementsValidations: nodeElementsValidations,
498
501
  nodeMenuButtonSize: nodeMenuButtonSize,
499
502
  onNodeClick: onNodeClick,
503
+ selectedNodeId: selectedNodeId,
500
504
  handlerOnNodeOpen: _this.handleOnNodeOpen
501
505
  }, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
502
506
  return _this.buildTree(nodeitem, node.id, ids);
@@ -606,7 +610,9 @@ TreeView.propTypes = {
606
610
  onNodeClick: _propTypes["default"].func,
607
611
  onNodeOpen: _propTypes["default"].func,
608
612
  nodeElementsValidations: _propTypes["default"].object,
609
- enableDynamicData: _propTypes["default"].bool
613
+ enableDynamicData: _propTypes["default"].bool,
614
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
615
+ selectedNodeId: _propTypes["default"].number
610
616
  };
611
617
  TreeView.defaultProps = {
612
618
  customClass: '',
@@ -628,7 +634,9 @@ TreeView.defaultProps = {
628
634
  onNodeClick: undefined,
629
635
  onNodeOpen: undefined,
630
636
  nodeElementsValidations: undefined,
631
- enableDynamicData: false
637
+ enableDynamicData: false,
638
+ idsInLoading: [],
639
+ selectedNodeId: undefined
632
640
  };
633
641
  var _default = TreeView;
634
642
  exports["default"] = _default;
@@ -257,5 +257,23 @@ describe('Treeview', function () {
257
257
 
258
258
  expect(container.querySelector('ul')).toHaveStyle('background-color: #000');
259
259
  });
260
+ it('should apply idsInLoading', function () {
261
+ var _render13 = (0, _react.render)(treeviewRenderMock({
262
+ idsInLoading: [1]
263
+ })),
264
+ container = _render13.container;
265
+
266
+ var li = container.querySelector('li').firstChild;
267
+ expect(li.firstChild).toHaveClass('spinnerloading');
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
+ });
260
278
  });
261
279
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "0.4.76-beta.27",
3
+ "version": "0.4.76-beta.28",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {