linear-react-components-ui 0.4.76-rc.7 → 0.4.76

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 (90) hide show
  1. package/.husky/pre-commit +2 -2
  2. package/README.md +19 -7
  3. package/lib/assets/styles/button.scss +19 -10
  4. package/lib/assets/styles/checkbox.scss +92 -70
  5. package/lib/assets/styles/commons.scss +36 -0
  6. package/lib/assets/styles/drawers.scss +22 -6
  7. package/lib/assets/styles/dropdown.scss +3 -0
  8. package/lib/assets/styles/effects.scss +20 -0
  9. package/lib/assets/styles/gridlayout.scss +2 -1
  10. package/lib/assets/styles/input.scss +21 -0
  11. package/lib/assets/styles/label.scss +9 -1
  12. package/lib/assets/styles/list.scss +8 -0
  13. package/lib/assets/styles/panel.scss +4 -1
  14. package/lib/assets/styles/radio.scss +19 -0
  15. package/lib/assets/styles/select.scss +3 -3
  16. package/lib/assets/styles/sidenav.scss +11 -1
  17. package/lib/assets/styles/skeleton.scss +48 -0
  18. package/lib/assets/styles/table.scss +17 -5
  19. package/lib/assets/styles/tabs.scss +51 -44
  20. package/lib/assets/styles/treeview.scss +9 -0
  21. package/lib/assets/styles/uitour.scss +112 -0
  22. package/lib/buttons/DefaultButton.js +7 -4
  23. package/lib/buttons/split_button/index.js +8 -4
  24. package/lib/checkbox/Label.js +1 -1
  25. package/lib/checkbox/checkbox.spec.js +16 -16
  26. package/lib/checkbox/index.js +16 -9
  27. package/lib/dialog/form/index.js +10 -3
  28. package/lib/drawer/Drawer.js +9 -5
  29. package/lib/drawer/Header.js +15 -5
  30. package/lib/dropdown/Popup.js +3 -2
  31. package/lib/form/FieldNumber.js +1 -1
  32. package/lib/form/FieldPeriod.js +1 -1
  33. package/lib/form/form.spec.js +8 -0
  34. package/lib/form/helpers.js +12 -1
  35. package/lib/form/index.js +61 -47
  36. package/lib/form/withFieldHOC.js +3 -1
  37. package/lib/icons/helper.js +8 -0
  38. package/lib/inputs/base/InputTextBase.js +40 -6
  39. package/lib/inputs/base/helpers.js +15 -3
  40. package/lib/inputs/date/Dropdown.js +3 -3
  41. package/lib/inputs/date/date.spec.js +46 -36
  42. package/lib/inputs/date/helpers.js +36 -0
  43. package/lib/inputs/date/index.js +12 -10
  44. package/lib/inputs/mask/Phone.js +10 -1
  45. package/lib/inputs/mask/imaskHOC.js +2 -1
  46. package/lib/inputs/mask/input_mask.spec.js +21 -4
  47. package/lib/inputs/search/index.js +2 -0
  48. package/lib/inputs/select/Dropdown.js +51 -61
  49. package/lib/inputs/select/helper.js +65 -2
  50. package/lib/inputs/select/multiple/index.js +8 -5
  51. package/lib/inputs/select/simple/index.js +9 -6
  52. package/lib/internals/constants.js +4 -3
  53. package/lib/internals/withTooltip.js +14 -11
  54. package/lib/labels/DefaultLabel.js +7 -4
  55. package/lib/list/Item.js +35 -9
  56. package/lib/list/helpers.js +8 -3
  57. package/lib/list/index.js +161 -13
  58. package/lib/list/list.spec.js +259 -102
  59. package/lib/menus/sidenav/NavMenuItem.js +17 -8
  60. package/lib/menus/sidenav/index.js +53 -84
  61. package/lib/menus/sidenav/popup_menu_search/index.js +25 -16
  62. package/lib/menus/sidenav/sidenav.spec.js +86 -19
  63. package/lib/panel/Header.js +4 -3
  64. package/lib/radio/index.js +9 -6
  65. package/lib/skeleton/SkeletonContainer.js +42 -0
  66. package/lib/skeleton/index.js +84 -0
  67. package/lib/table/Body.js +55 -11
  68. package/lib/table/Header.js +14 -1
  69. package/lib/table/HeaderColumn.js +26 -3
  70. package/lib/table/Row.js +18 -7
  71. package/lib/table/RowColumn.js +23 -3
  72. package/lib/table/helpers.js +11 -1
  73. package/lib/table/index.js +41 -8
  74. package/lib/tabs/Menu.js +1 -11
  75. package/lib/tabs/MenuItems.js +9 -3
  76. package/lib/tabs/index.js +78 -53
  77. package/lib/tabs/tabs.spec.js +8 -5
  78. package/lib/toolbar/ButtonBar.js +30 -24
  79. package/lib/toolbar/LabelBar.js +22 -27
  80. package/lib/toolbar/helpers.js +12 -0
  81. package/lib/toolbar/index.js +23 -12
  82. package/lib/tooltip/index.js +8 -7
  83. package/lib/treeview/Node.js +248 -203
  84. package/lib/treeview/index.js +40 -20
  85. package/lib/treeview/treeview.spec.js +18 -0
  86. package/lib/uitour/helpers.js +15 -0
  87. package/lib/uitour/index.js +271 -0
  88. package/lib/uitour/uitour.spec.js +176 -0
  89. package/package.json +1 -1
  90. package/.DS_Store +0 -0
@@ -27,12 +27,16 @@ 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); }
33
35
 
34
36
  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; }
35
37
 
38
+ 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); }
39
+
36
40
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
37
41
 
38
42
  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."); }
@@ -45,8 +49,6 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
45
49
 
46
50
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47
51
 
48
- 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); }
49
-
50
52
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
51
53
 
52
54
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -67,204 +69,31 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
67
69
 
68
70
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
69
71
 
72
+ var nodeHasItens = function nodeHasItens(node) {
73
+ return node.itens && node.itens.length > 0;
74
+ };
75
+
70
76
  var TreeNode = /*#__PURE__*/function (_Component) {
71
77
  _inherits(TreeNode, _Component);
72
78
 
73
79
  var _super = _createSuper(TreeNode);
74
80
 
75
- function TreeNode(props, context) {
81
+ function TreeNode(props) {
76
82
  var _this;
77
83
 
78
84
  _classCallCheck(this, TreeNode);
79
85
 
80
86
  _this = _super.call(this, props);
81
- Object.defineProperty(_assertThisInitialized(_this), "getSpan", {
82
- configurable: true,
83
- enumerable: true,
84
- writable: true,
85
- value: function value() {
86
- var _this$props = _this.props,
87
- node = _this$props.node,
88
- alwaysShowArrow = _this$props.alwaysShowArrow;
89
-
90
- var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
91
-
92
- if (node.itens && node.itens.length > 0 || alwaysShowArrow) {
93
- span = /*#__PURE__*/_react["default"].createElement("span", {
94
- onKeyPress: null,
95
- tabIndex: 0,
96
- role: "button",
97
- className: "opencloseicon",
98
- onClick: function onClick() {
99
- return _this.openCloseTree(node);
100
- }
101
- }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
102
- name: _this.state.isVisible ? 'up' : 'down',
103
- size: 10
104
- }));
105
- }
106
-
107
- return span;
108
- }
109
- });
110
- Object.defineProperty(_assertThisInitialized(_this), "openCloseTree", {
111
- configurable: true,
112
- enumerable: true,
113
- writable: true,
114
- value: function value(node) {
115
- var _this$state = _this.state,
116
- isVisible = _this$state.isVisible,
117
- wasOpened = _this$state.wasOpened;
118
- var handlerOnNodeOpen = _this.props.handlerOnNodeOpen;
119
- var nextState = {
120
- isVisible: !isVisible
121
- };
122
-
123
- if (!wasOpened && handlerOnNodeOpen) {
124
- nextState = _extends({}, nextState, {
125
- wasOpened: true
126
- });
127
- handlerOnNodeOpen(node);
128
- }
129
-
130
- _this.setState(nextState);
131
- }
132
- });
133
- Object.defineProperty(_assertThisInitialized(_this), "handleShowNodeElements", {
134
- configurable: true,
135
- enumerable: true,
136
- writable: true,
137
- value: function value() {
138
- var _this$state2 = _this.state,
139
- showNodeElements = _this$state2.showNodeElements,
140
- keepMenuOpened = _this$state2.keepMenuOpened;
141
- if (!showNodeElements) _this.setState({
142
- showNodeElements: true
143
- });else if (showNodeElements && !keepMenuOpened) {
144
- _this.setState({
145
- showNodeElements: false
146
- });
147
- }
148
- }
149
- });
150
- Object.defineProperty(_assertThisInitialized(_this), "updateElements", {
151
- configurable: true,
152
- enumerable: true,
153
- writable: true,
154
- value: function value(elements) {
155
- var _this$props2 = _this.props,
156
- node = _this$props2.node,
157
- nodeElementsValidations = _this$props2.nodeElementsValidations;
158
- var updatedElements = [];
159
-
160
- if (elements) {
161
- updatedElements = _react["default"].Children.map(elements, function (element) {
162
- if ( /*#__PURE__*/_react["default"].isValidElement(element) && element.props) {
163
- var _element$props = element.props,
164
- validationKey = _element$props.validationKey,
165
- onNodeElementClick = _element$props.onNodeElementClick;
166
- var elementBehavior;
167
- var newProps = {};
168
-
169
- if (nodeElementsValidations && validationKey) {
170
- elementBehavior = _this.validateNodeElement(validationKey);
171
- }
172
-
173
- if (onNodeElementClick) {
174
- newProps = _extends({}, newProps, {
175
- onClick: function onClick(e) {
176
- onNodeElementClick(node);
177
- if (e.stopPropagation) e.stopPropagation();
178
- },
179
- onNodeElementClick: null
180
- });
181
- }
182
-
183
- return /*#__PURE__*/_react["default"].cloneElement(element, _extends({}, elementBehavior, newProps));
184
- }
185
-
186
- return element;
187
- });
188
- }
189
-
190
- return updatedElements;
191
- }
192
- });
193
- Object.defineProperty(_assertThisInitialized(_this), "returnNodeRightElements", {
194
- configurable: true,
195
- enumerable: true,
196
- writable: true,
197
- value: function value() {
198
- var nodeRightElements = _this.props.nodeRightElements;
199
-
200
- var updatedNodeRightElements = _this.updateElements(nodeRightElements).map(function (element) {
201
- var unvisible = element.props && 'visible' in element.props && !element.props.visible;
202
- var style = unvisible ? {
203
- display: 'none'
204
- } : {};
205
- return /*#__PURE__*/_react["default"].createElement("div", {
206
- style: style,
207
- key: "element-".concat(_uuid["default"].v1()),
208
- className: "element"
209
- }, element);
210
- });
211
-
212
- return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
213
- className: "node-rightelements"
214
- }, updatedNodeRightElements) : null;
215
- }
216
- });
217
- Object.defineProperty(_assertThisInitialized(_this), "returnNodeToolbarElements", {
218
- configurable: true,
219
- enumerable: true,
220
- writable: true,
221
- value: function value() {
222
- var nodeToolbarElements = _this.props.nodeToolbarElements;
223
-
224
- var updatedNodeRightElements = _this.updateElements(nodeToolbarElements);
225
-
226
- return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
227
- customClass: "node-toolbarelements"
228
- }, /*#__PURE__*/_react["default"].createElement(_toolbar.ToolBarGroup, null, updatedNodeRightElements)) : null;
229
- }
230
- });
231
- Object.defineProperty(_assertThisInitialized(_this), "validateNodeElement", {
232
- configurable: true,
233
- enumerable: true,
234
- writable: true,
235
- value: function value(validationKey) {
236
- var _this$props3 = _this.props,
237
- nodeElementsValidations = _this$props3.nodeElementsValidations,
238
- node = _this$props3.node;
239
- var validations = nodeElementsValidations[validationKey];
240
- var options = {
241
- disabled: {
242
- disabled: true
243
- },
244
- unvisible: {
245
- visible: false
246
- }
247
- };
248
- var elementBehavior = {};
249
87
 
250
- if (validations) {
251
- validations.forEach(function (validation) {
252
- var validator = validation.validator,
253
- applyBehavior = validation.applyBehavior;
88
+ _initialiseProps.call(_assertThisInitialized(_this));
254
89
 
255
- if (_lodash["default"].isEmpty(elementBehavior) && validator && validator(node)) {
256
- elementBehavior = options[applyBehavior] || options.unvisible;
257
- }
258
- });
259
- }
260
-
261
- return elementBehavior;
262
- }
263
- });
264
90
  _this.labelRef = /*#__PURE__*/_react["default"].createRef();
91
+ var node = props.node,
92
+ startNodesOpened = props.startNodesOpened;
265
93
  _this.state = {
266
- isVisible: context.startNodesOpened,
267
- wasOpened: context.startNodesOpened,
94
+ node: node,
95
+ isVisible: startNodesOpened && nodeHasItens(node),
96
+ wasOpened: startNodesOpened && nodeHasItens(node),
268
97
  showNodeElements: false,
269
98
  keepMenuOpened: false
270
99
  };
@@ -274,10 +103,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
274
103
  _createClass(TreeNode, [{
275
104
  key: "componentDidMount",
276
105
  value: function componentDidMount() {
277
- var _this$props4 = this.props,
278
- isParent = _this$props4.isParent,
279
- nodeToolbarElements = _this$props4.nodeToolbarElements,
280
- nodeRightElements = _this$props4.nodeRightElements;
106
+ var _this$props = this.props,
107
+ isParent = _this$props.isParent,
108
+ nodeToolbarElements = _this$props.nodeToolbarElements,
109
+ nodeRightElements = _this$props.nodeRightElements;
281
110
 
282
111
  if (isParent || nodeRightElements || nodeToolbarElements) {
283
112
  this.labelRef.current.addEventListener('mouseenter', this.handleShowNodeElements);
@@ -287,10 +116,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
287
116
  }, {
288
117
  key: "componentWillUnmount",
289
118
  value: function componentWillUnmount() {
290
- var _this$props5 = this.props,
291
- isParent = _this$props5.isParent,
292
- nodeToolbarElements = _this$props5.nodeToolbarElements,
293
- nodeRightElements = _this$props5.nodeRightElements;
119
+ var _this$props2 = this.props,
120
+ isParent = _this$props2.isParent,
121
+ nodeToolbarElements = _this$props2.nodeToolbarElements,
122
+ nodeRightElements = _this$props2.nodeRightElements;
294
123
 
295
124
  if (isParent || nodeRightElements || nodeToolbarElements) {
296
125
  this.labelRef.current.removeEventListener('mouseenter', this.handleShowNodeElements);
@@ -302,12 +131,13 @@ var TreeNode = /*#__PURE__*/function (_Component) {
302
131
  value: function render() {
303
132
  var _this2 = this;
304
133
 
305
- var _this$props6 = this.props,
306
- node = _this$props6.node,
307
- children = _this$props6.children,
308
- isParent = _this$props6.isParent,
309
- onNodeClick = _this$props6.onNodeClick,
310
- nodeMenuButtonSize = _this$props6.nodeMenuButtonSize;
134
+ var _this$props3 = this.props,
135
+ children = _this$props3.children,
136
+ isParent = _this$props3.isParent,
137
+ onNodeClick = _this$props3.onNodeClick,
138
+ nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
139
+ selectedNodeId = _this$props3.selectedNodeId;
140
+ var node = this.state.node;
311
141
  var showNodeElements = this.state.showNodeElements;
312
142
  return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
313
143
  var valuePropName = _ref.valuePropName,
@@ -328,6 +158,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
328
158
  className: "treeviewitem"
329
159
  }, _this2.getSpan(), /*#__PURE__*/_react["default"].createElement("div", {
330
160
  className: "label",
161
+ style: {
162
+ textDecoration: !onNodeClick ? 'none' : null,
163
+ backgroundColor: selectedNodeId === node.id ? 'rgb(209, 209, 209)' : null
164
+ },
331
165
  ref: _this2.labelRef,
332
166
  role: "button",
333
167
  onKeyPress: null,
@@ -384,16 +218,222 @@ var TreeNode = /*#__PURE__*/function (_Component) {
384
218
  }, _this2.state.isVisible && children));
385
219
  });
386
220
  }
221
+ }], [{
222
+ key: "getDerivedStateFromProps",
223
+ value: function getDerivedStateFromProps(props, state) {
224
+ var node = props.node,
225
+ startNodesOpened = props.startNodesOpened;
226
+
227
+ if (node !== state.node) {
228
+ return {
229
+ node: node,
230
+ isVisible: startNodesOpened && nodeHasItens(node),
231
+ wasOpened: startNodesOpened && nodeHasItens(node)
232
+ };
233
+ }
234
+
235
+ return null;
236
+ }
387
237
  }]);
388
238
 
389
239
  return TreeNode;
390
240
  }(_react.Component);
391
241
 
242
+ var _initialiseProps = function _initialiseProps() {
243
+ var _this3 = this;
244
+
245
+ Object.defineProperty(this, "getSpan", {
246
+ configurable: true,
247
+ enumerable: true,
248
+ writable: true,
249
+ value: function value() {
250
+ var _this3$props = _this3.props,
251
+ alwaysShowArrow = _this3$props.alwaysShowArrow,
252
+ idsInLoading = _this3$props.idsInLoading;
253
+ var node = _this3.state.node;
254
+ var isLoading = idsInLoading.includes(node.id);
255
+
256
+ var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
257
+
258
+ if (node.itens && node.itens.length > 0 || alwaysShowArrow) {
259
+ span = /*#__PURE__*/_react["default"].createElement("span", {
260
+ onKeyPress: null,
261
+ tabIndex: 0,
262
+ role: "button",
263
+ className: isLoading ? 'loading' : 'opencloseicon',
264
+ onClick: function onClick() {
265
+ return _this3.openCloseTree(node);
266
+ }
267
+ }, isLoading ? /*#__PURE__*/_react["default"].createElement(_SpinnerLoading["default"], {
268
+ size: "35px"
269
+ }) : /*#__PURE__*/_react["default"].createElement(_icons["default"], {
270
+ name: _this3.state.isVisible ? 'up' : 'down',
271
+ size: 10
272
+ }));
273
+ }
274
+
275
+ return span;
276
+ }
277
+ });
278
+ Object.defineProperty(this, "openCloseTree", {
279
+ configurable: true,
280
+ enumerable: true,
281
+ writable: true,
282
+ value: function value(node) {
283
+ var _this3$state = _this3.state,
284
+ isVisible = _this3$state.isVisible,
285
+ wasOpened = _this3$state.wasOpened;
286
+ var handlerOnNodeOpen = _this3.props.handlerOnNodeOpen;
287
+ var nextState = {
288
+ isVisible: !isVisible
289
+ };
290
+
291
+ if (!wasOpened && handlerOnNodeOpen) {
292
+ nextState = _extends({}, nextState, {
293
+ wasOpened: true
294
+ });
295
+ handlerOnNodeOpen(node);
296
+ }
297
+
298
+ _this3.setState(nextState);
299
+ }
300
+ });
301
+ Object.defineProperty(this, "handleShowNodeElements", {
302
+ configurable: true,
303
+ enumerable: true,
304
+ writable: true,
305
+ value: function value() {
306
+ var _this3$state2 = _this3.state,
307
+ showNodeElements = _this3$state2.showNodeElements,
308
+ keepMenuOpened = _this3$state2.keepMenuOpened;
309
+ if (!showNodeElements) _this3.setState({
310
+ showNodeElements: true
311
+ });else if (showNodeElements && !keepMenuOpened) {
312
+ _this3.setState({
313
+ showNodeElements: false
314
+ });
315
+ }
316
+ }
317
+ });
318
+ Object.defineProperty(this, "updateElements", {
319
+ configurable: true,
320
+ enumerable: true,
321
+ writable: true,
322
+ value: function value(elements) {
323
+ var nodeElementsValidations = _this3.props.nodeElementsValidations;
324
+ var node = _this3.state.node;
325
+ var updatedElements = [];
326
+
327
+ if (elements) {
328
+ updatedElements = _react["default"].Children.map(elements, function (element) {
329
+ if ( /*#__PURE__*/_react["default"].isValidElement(element) && element.props) {
330
+ var _element$props = element.props,
331
+ validationKey = _element$props.validationKey,
332
+ onNodeElementClick = _element$props.onNodeElementClick;
333
+ var elementBehavior;
334
+ var newProps = {};
335
+
336
+ if (nodeElementsValidations && validationKey) {
337
+ elementBehavior = _this3.validateNodeElement(validationKey);
338
+ }
339
+
340
+ if (onNodeElementClick) {
341
+ newProps = _extends({}, newProps, {
342
+ onClick: function onClick(e) {
343
+ onNodeElementClick(node);
344
+ if (e.stopPropagation) e.stopPropagation();
345
+ },
346
+ onNodeElementClick: null
347
+ });
348
+ }
349
+
350
+ return /*#__PURE__*/_react["default"].cloneElement(element, _extends({}, elementBehavior, newProps));
351
+ }
352
+
353
+ return element;
354
+ });
355
+ }
356
+
357
+ return updatedElements;
358
+ }
359
+ });
360
+ Object.defineProperty(this, "returnNodeRightElements", {
361
+ configurable: true,
362
+ enumerable: true,
363
+ writable: true,
364
+ value: function value() {
365
+ var nodeRightElements = _this3.props.nodeRightElements;
366
+
367
+ var updatedNodeRightElements = _this3.updateElements(nodeRightElements).map(function (element) {
368
+ var unvisible = element.props && 'visible' in element.props && !element.props.visible;
369
+ var style = unvisible ? {
370
+ display: 'none'
371
+ } : {};
372
+ return /*#__PURE__*/_react["default"].createElement("div", {
373
+ style: style,
374
+ key: "element-".concat(_uuid["default"].v1()),
375
+ className: "element"
376
+ }, element);
377
+ });
378
+
379
+ return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
380
+ className: "node-rightelements"
381
+ }, updatedNodeRightElements) : null;
382
+ }
383
+ });
384
+ Object.defineProperty(this, "returnNodeToolbarElements", {
385
+ configurable: true,
386
+ enumerable: true,
387
+ writable: true,
388
+ value: function value() {
389
+ var nodeToolbarElements = _this3.props.nodeToolbarElements;
390
+
391
+ var updatedNodeRightElements = _this3.updateElements(nodeToolbarElements);
392
+
393
+ return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
394
+ customClass: "node-toolbarelements"
395
+ }, /*#__PURE__*/_react["default"].createElement(_toolbar.ToolBarGroup, null, updatedNodeRightElements)) : null;
396
+ }
397
+ });
398
+ Object.defineProperty(this, "validateNodeElement", {
399
+ configurable: true,
400
+ enumerable: true,
401
+ writable: true,
402
+ value: function value(validationKey) {
403
+ var nodeElementsValidations = _this3.props.nodeElementsValidations;
404
+ var node = _this3.state.node;
405
+ var validations = nodeElementsValidations[validationKey];
406
+ var options = {
407
+ disabled: {
408
+ disabled: true
409
+ },
410
+ unvisible: {
411
+ visible: false
412
+ }
413
+ };
414
+ var elementBehavior = {};
415
+
416
+ if (validations) {
417
+ validations.forEach(function (validation) {
418
+ var validator = validation.validator,
419
+ applyBehavior = validation.applyBehavior;
420
+
421
+ if (_lodash["default"].isEmpty(elementBehavior) && validator && validator(node)) {
422
+ elementBehavior = options[applyBehavior] || options.unvisible;
423
+ }
424
+ });
425
+ }
426
+
427
+ return elementBehavior;
428
+ }
429
+ });
430
+ };
431
+
392
432
  TreeNode.propTypes = {
393
433
  node: _propTypes["default"].object.isRequired,
394
434
  children: _propTypes["default"].any.isRequired,
395
435
  childrenIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
396
- parentId: _propTypes["default"].number,
436
+ parentId: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
397
437
  disabled: _propTypes["default"].bool,
398
438
  isParent: _propTypes["default"].bool,
399
439
  alwaysShowArrow: _propTypes["default"].bool,
@@ -402,7 +442,10 @@ TreeNode.propTypes = {
402
442
  nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
403
443
  onNodeClick: _propTypes["default"].func,
404
444
  handlerOnNodeOpen: _propTypes["default"].func,
405
- nodeElementsValidations: _propTypes["default"].object
445
+ nodeElementsValidations: _propTypes["default"].object,
446
+ startNodesOpened: _propTypes["default"].bool.isRequired,
447
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
448
+ selectedNodeId: _propTypes["default"].number
406
449
  };
407
450
  TreeNode.defaultProps = {
408
451
  childrenIds: [],
@@ -415,7 +458,9 @@ TreeNode.defaultProps = {
415
458
  nodeMenuButtonSize: 'small',
416
459
  onNodeClick: undefined,
417
460
  handlerOnNodeOpen: undefined,
418
- nodeElementsValidations: undefined
461
+ nodeElementsValidations: undefined,
462
+ idsInLoading: [],
463
+ selectedNodeId: undefined
419
464
  };
420
465
  TreeNode.contextType = _constants.TreeviewContext;
421
466
  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
  });
@@ -462,7 +468,10 @@ var TreeView = /*#__PURE__*/function (_Component) {
462
468
  nodeElementsValidations = _this$props3.nodeElementsValidations,
463
469
  nodeToolbarElements = _this$props3.nodeToolbarElements,
464
470
  nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
465
- alwaysShowArrow = _this$props3.alwaysShowArrow;
471
+ alwaysShowArrow = _this$props3.alwaysShowArrow,
472
+ startNodesOpened = _this$props3.startNodesOpened,
473
+ idsInLoading = _this$props3.idsInLoading,
474
+ selectedNodeId = _this$props3.selectedNodeId;
466
475
  var childrenIds = [];
467
476
 
468
477
  if (node.itens && node.itens.length > 0) {
@@ -480,6 +489,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
480
489
  return /*#__PURE__*/_react["default"].createElement(_Node["default"], {
481
490
  key: "node-".concat(node.id),
482
491
  node: node,
492
+ idsInLoading: idsInLoading,
493
+ startNodesOpened: startNodesOpened,
483
494
  alwaysShowArrow: alwaysShowArrow,
484
495
  childrenIds: childrenIds,
485
496
  isParent: node.itens && node.itens.length > 0,
@@ -489,6 +500,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
489
500
  nodeElementsValidations: nodeElementsValidations,
490
501
  nodeMenuButtonSize: nodeMenuButtonSize,
491
502
  onNodeClick: onNodeClick,
503
+ selectedNodeId: selectedNodeId,
492
504
  handlerOnNodeOpen: _this.handleOnNodeOpen
493
505
  }, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
494
506
  return _this.buildTree(nodeitem, node.id, ids);
@@ -502,7 +514,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
502
514
  selectedIds: _this.props.selectedIds,
503
515
  isHandlingSelectedIds: false,
504
516
  requiredParentsIds: [],
505
- alreadyOpenedIds: []
517
+ alreadyOpenedIds: [],
518
+ selectedIdsUpdatedOnMount: false
506
519
  };
507
520
  return _this;
508
521
  }
@@ -517,12 +530,15 @@ var TreeView = /*#__PURE__*/function (_Component) {
517
530
  value: function componentDidUpdate(prevProps, prevState) {
518
531
  var _this$state3 = this.state,
519
532
  selectedIds = _this$state3.selectedIds,
520
- propSelectedIds = _this$state3.propSelectedIds;
533
+ propSelectedIds = _this$state3.propSelectedIds,
534
+ selectedIdsUpdatedOnMount = _this$state3.selectedIdsUpdatedOnMount;
521
535
  var allowCheckAllAncestry = this.props.allowCheckAllAncestry;
522
536
 
523
537
  var isSameSelectedIds = _lodash["default"].isEqual(propSelectedIds.sort(), prevState.propSelectedIds.sort());
524
538
 
525
- if (allowCheckAllAncestry && !isSameSelectedIds) this.handleNewSelectedIds(selectedIds);
539
+ if (allowCheckAllAncestry && (!selectedIdsUpdatedOnMount || !isSameSelectedIds)) {
540
+ this.handleNewSelectedIds(selectedIds);
541
+ }
526
542
  }
527
543
  }, {
528
544
  key: "render",
@@ -580,7 +596,7 @@ TreeView.propTypes = {
580
596
  startNodesOpened: _propTypes["default"].bool,
581
597
  alwaysShowArrow: _propTypes["default"].bool,
582
598
  selectedIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
583
- requiredIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
599
+ requiredIds: _propTypes["default"].arrayOf(_propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])),
584
600
  showCheckBox: _propTypes["default"].bool,
585
601
  onSelectedIdsChange: _propTypes["default"].func,
586
602
  children: _propTypes["default"].instanceOf(Object),
@@ -594,7 +610,9 @@ TreeView.propTypes = {
594
610
  onNodeClick: _propTypes["default"].func,
595
611
  onNodeOpen: _propTypes["default"].func,
596
612
  nodeElementsValidations: _propTypes["default"].object,
597
- enableDynamicData: _propTypes["default"].bool
613
+ enableDynamicData: _propTypes["default"].bool,
614
+ idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
615
+ selectedNodeId: _propTypes["default"].number
598
616
  };
599
617
  TreeView.defaultProps = {
600
618
  customClass: '',
@@ -616,7 +634,9 @@ TreeView.defaultProps = {
616
634
  onNodeClick: undefined,
617
635
  onNodeOpen: undefined,
618
636
  nodeElementsValidations: undefined,
619
- enableDynamicData: false
637
+ enableDynamicData: false,
638
+ idsInLoading: [],
639
+ selectedNodeId: undefined
620
640
  };
621
641
  var _default = TreeView;
622
642
  exports["default"] = _default;