linear-react-components-ui 0.4.76-rc.10-beta → 0.4.76-rc.14

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 (70) hide show
  1. package/.tool-versions +1 -0
  2. package/.vscode/settings.json +1 -2
  3. package/README.md +33 -0
  4. package/lib/assets/styles/dropdown.scss +28 -2
  5. package/lib/assets/styles/effects.scss +12 -0
  6. package/lib/assets/styles/floatMenu.scss +0 -1
  7. package/lib/assets/styles/multiSelect.scss +105 -0
  8. package/lib/assets/styles/panel.scss +0 -1
  9. package/lib/assets/styles/periodpicker.scss +65 -0
  10. package/lib/assets/styles/progress.scss +8 -1
  11. package/lib/assets/styles/select.scss +1 -0
  12. package/lib/assets/styles/table.scss +13 -5
  13. package/lib/assets/styles/tabs.scss +79 -45
  14. package/lib/assets/styles/treeview.scss +32 -0
  15. package/lib/avatar/avatar.spec.js +17 -6
  16. package/lib/avatar/index.js +1 -1
  17. package/lib/buttons/DefaultButton.js +7 -1
  18. package/lib/checkbox/Label.js +37 -0
  19. package/lib/checkbox/index.js +20 -6
  20. package/lib/dialog/base/index.js +15 -6
  21. package/lib/dialog/form/index.js +16 -3
  22. package/lib/drawer/index.js +4 -1
  23. package/lib/form/Field.js +2 -0
  24. package/lib/form/FieldNumber.js +10 -2
  25. package/lib/form/FieldPeriod.js +100 -0
  26. package/lib/form/helpers.js +9 -1
  27. package/lib/form/index.js +209 -222
  28. package/lib/form/withFieldHOC.js +2 -0
  29. package/lib/form/withFormSecurity.js +106 -0
  30. package/lib/icons/helper.js +16 -0
  31. package/lib/inputs/base/InputTextBase.js +1 -10
  32. package/lib/inputs/base/helpers.js +3 -11
  33. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  34. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  35. package/lib/inputs/multiSelect/helper.js +18 -0
  36. package/lib/inputs/multiSelect/index.js +343 -0
  37. package/lib/inputs/number/BaseNumber.js +1 -1
  38. package/lib/inputs/number/index.js +7 -5
  39. package/lib/inputs/period/Dialog.js +38 -0
  40. package/lib/inputs/period/Dropdown.js +90 -0
  41. package/lib/inputs/period/PeriodList.js +79 -0
  42. package/lib/inputs/period/helper.js +118 -0
  43. package/lib/inputs/period/index.js +490 -0
  44. package/lib/inputs/select/Dropdown.js +4 -4
  45. package/lib/inputs/select/index.js +26 -3
  46. package/lib/inputs/select/multiple/index.js +9 -7
  47. package/lib/inputs/select/simple/index.js +30 -18
  48. package/lib/internals/withTooltip.js +86 -82
  49. package/lib/list/Item.js +3 -3
  50. package/lib/list/index.js +20 -10
  51. package/lib/list/list.spec.js +129 -85
  52. package/lib/menus/float/MenuItem.js +25 -8
  53. package/lib/menus/sidenav/index.js +7 -3
  54. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  55. package/lib/progress/Bar.js +40 -9
  56. package/lib/progress/index.js +12 -4
  57. package/lib/spinner/index.js +6 -1
  58. package/lib/split/Split.js +5 -11
  59. package/lib/table/Row.js +1 -1
  60. package/lib/tabs/DropdownItems.js +84 -0
  61. package/lib/tabs/Menu.js +18 -5
  62. package/lib/tabs/MenuItems.js +7 -7
  63. package/lib/tabs/Panel.js +1 -3
  64. package/lib/tabs/index.js +151 -20
  65. package/lib/tabs/tabs.spec.js +8 -5
  66. package/lib/toolbar/index.js +8 -4
  67. package/lib/tooltip/index.js +19 -3
  68. package/lib/treeview/Node.js +348 -48
  69. package/lib/treeview/index.js +456 -35
  70. package/package.json +9 -8
@@ -11,18 +11,42 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
+ var _uuid = _interopRequireDefault(require("uuid"));
15
+
16
+ var _lodash = _interopRequireDefault(require("lodash"));
17
+
14
18
  var _checkbox = _interopRequireDefault(require("../checkbox"));
15
19
 
16
20
  var _icons = _interopRequireDefault(require("../icons"));
17
21
 
18
22
  var _constants = require("./constants");
19
23
 
24
+ var _buttons = _interopRequireDefault(require("../buttons"));
25
+
26
+ var _list = _interopRequireWildcard(require("../list"));
27
+
28
+ var _toolbar = _interopRequireWildcard(require("../toolbar"));
29
+
20
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
31
 
22
32
  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); }
23
33
 
24
34
  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; }
25
35
 
36
+ 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); }
37
+
38
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
39
+
40
+ 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."); }
41
+
42
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
+
44
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
45
+
46
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
47
+
48
+ 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; }
49
+
26
50
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
51
 
28
52
  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); } }
@@ -43,89 +67,160 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
43
67
 
44
68
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
69
 
70
+ var nodeHasItens = function nodeHasItens(node) {
71
+ return node.itens && node.itens.length > 0;
72
+ };
73
+
46
74
  var TreeNode = /*#__PURE__*/function (_Component) {
47
75
  _inherits(TreeNode, _Component);
48
76
 
49
77
  var _super = _createSuper(TreeNode);
50
78
 
51
- function TreeNode(props, context) {
79
+ function TreeNode(props) {
52
80
  var _this;
53
81
 
54
82
  _classCallCheck(this, TreeNode);
55
83
 
56
84
  _this = _super.call(this, props);
57
- Object.defineProperty(_assertThisInitialized(_this), "getSpan", {
58
- configurable: true,
59
- enumerable: true,
60
- writable: true,
61
- value: function value() {
62
- var node = _this.props.node;
63
-
64
- var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
65
-
66
- if (node.itens && node.itens.length > 0) {
67
- span = /*#__PURE__*/_react["default"].createElement("span", {
68
- onKeyPress: null,
69
- tabIndex: 0,
70
- role: "button",
71
- className: "opencloseicon",
72
- onClick: _this.openCloseTree
73
- }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
74
- name: _this.state.isVisible ? 'up' : 'down',
75
- size: 10
76
- }));
77
- }
78
85
 
79
- return span;
80
- }
81
- });
82
- Object.defineProperty(_assertThisInitialized(_this), "openCloseTree", {
83
- configurable: true,
84
- enumerable: true,
85
- writable: true,
86
- value: function value() {
87
- _this.setState({
88
- isVisible: !_this.state.isVisible
89
- });
90
- }
91
- });
86
+ _initialiseProps.call(_assertThisInitialized(_this));
87
+
88
+ _this.labelRef = /*#__PURE__*/_react["default"].createRef();
89
+ var node = props.node,
90
+ startNodesOpened = props.startNodesOpened;
92
91
  _this.state = {
93
- isVisible: context.startNodesOpened
92
+ isVisible: nodeHasItens(node) && startNodesOpened,
93
+ wasOpened: nodeHasItens(node) && startNodesOpened,
94
+ showNodeElements: false,
95
+ keepMenuOpened: false
94
96
  };
95
97
  return _this;
96
98
  }
97
99
 
98
100
  _createClass(TreeNode, [{
101
+ key: "componentDidMount",
102
+ value: function componentDidMount() {
103
+ var _this$props = this.props,
104
+ isParent = _this$props.isParent,
105
+ nodeToolbarElements = _this$props.nodeToolbarElements,
106
+ nodeRightElements = _this$props.nodeRightElements;
107
+
108
+ if (isParent || nodeRightElements || nodeToolbarElements) {
109
+ this.labelRef.current.addEventListener('mouseenter', this.handleShowNodeElements);
110
+ this.labelRef.current.addEventListener('mouseleave', this.handleShowNodeElements);
111
+ }
112
+ }
113
+ }, {
114
+ key: "componentDidUpdate",
115
+ value: function componentDidUpdate(prevProps) {
116
+ var _this$props2 = this.props,
117
+ node = _this$props2.node,
118
+ startNodesOpened = _this$props2.startNodesOpened;
119
+
120
+ if (node !== prevProps.node && startNodesOpened) {
121
+ // eslint-disable-next-line react/no-did-update-set-state
122
+ this.setState({
123
+ isVisible: nodeHasItens(node) && startNodesOpened,
124
+ wasOpened: nodeHasItens(node) && startNodesOpened
125
+ });
126
+ }
127
+ }
128
+ }, {
129
+ key: "componentWillUnmount",
130
+ value: function componentWillUnmount() {
131
+ var _this$props3 = this.props,
132
+ isParent = _this$props3.isParent,
133
+ nodeToolbarElements = _this$props3.nodeToolbarElements,
134
+ nodeRightElements = _this$props3.nodeRightElements;
135
+
136
+ if (isParent || nodeRightElements || nodeToolbarElements) {
137
+ this.labelRef.current.removeEventListener('mouseenter', this.handleShowNodeElements);
138
+ this.labelRef.current.removeEventListener('mouseleave', this.handleShowNodeElements);
139
+ }
140
+ }
141
+ }, {
99
142
  key: "render",
100
143
  value: function render() {
101
144
  var _this2 = this;
102
145
 
103
- var _this$props = this.props,
104
- node = _this$props.node,
105
- children = _this$props.children;
146
+ var _this$props4 = this.props,
147
+ node = _this$props4.node,
148
+ children = _this$props4.children,
149
+ isParent = _this$props4.isParent,
150
+ onNodeClick = _this$props4.onNodeClick,
151
+ nodeMenuButtonSize = _this$props4.nodeMenuButtonSize;
152
+ var showNodeElements = this.state.showNodeElements;
106
153
  return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
107
154
  var valuePropName = _ref.valuePropName,
108
155
  labelPropName = _ref.labelPropName,
109
156
  selectedIds = _ref.selectedIds,
110
- updateSelectedIds = _ref.updateSelectedIds,
157
+ handlerUpdateSelectedIds = _ref.handlerUpdateSelectedIds,
111
158
  showCheckBox = _ref.showCheckBox,
112
159
  requiredIds = _ref.requiredIds,
113
- disabled = _ref.disabled;
114
- var required = requiredIds.includes(node[valuePropName]);
160
+ disabled = _ref.disabled,
161
+ handlerToggleCheckChildren = _ref.handlerToggleCheckChildren,
162
+ allowCheckAllChildren = _ref.allowCheckAllChildren,
163
+ requiredParentsIds = _ref.requiredParentsIds,
164
+ defaultDisabledTooltip = _ref.defaultDisabledTooltip;
165
+ var requiredNodes = [].concat(_toConsumableArray(requiredIds), _toConsumableArray(requiredParentsIds));
166
+ var required = requiredNodes.includes(node[valuePropName]);
115
167
  var checked = selectedIds.includes(node[valuePropName]) || required;
116
168
  return /*#__PURE__*/_react["default"].createElement("li", {
117
169
  className: "treeviewitem"
118
170
  }, _this2.getSpan(), /*#__PURE__*/_react["default"].createElement("div", {
119
- className: "label"
171
+ className: "label",
172
+ ref: _this2.labelRef,
173
+ role: "button",
174
+ onKeyPress: null,
175
+ tabIndex: "-1",
176
+ onClick: onNodeClick ? function () {
177
+ return onNodeClick(node);
178
+ } : null
120
179
  }, showCheckBox ? /*#__PURE__*/_react["default"].createElement(_checkbox["default"], {
121
180
  checked: checked,
122
181
  disabled: required || disabled,
123
182
  value: "".concat(node[valuePropName]),
124
183
  label: node[labelPropName],
125
- onChange: disabled ? undefined : function (e) {
126
- updateSelectedIds(node.id, e.target.checked);
184
+ tooltip: required ? defaultDisabledTooltip : '',
185
+ onChange: disabled || required ? undefined : function (e) {
186
+ handlerUpdateSelectedIds(node.id, e.target.checked, isParent);
187
+ }
188
+ }) : node[labelPropName], allowCheckAllChildren && showNodeElements && isParent ? /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
189
+ dropdown: true,
190
+ dropdownAlign: "left",
191
+ size: nodeMenuButtonSize,
192
+ onClick: function onClick() {
193
+ _this2.setState({
194
+ keepMenuOpened: !_this2.state.keepMenuOpened
195
+ });
196
+ },
197
+ showIconDropdown: false,
198
+ iconName: "menu",
199
+ customClass: "node-menu",
200
+ boxShadow: false
201
+ }, /*#__PURE__*/_react["default"].createElement(_list["default"], {
202
+ condensed: true
203
+ }, /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
204
+ text: "Marcar todos",
205
+ onClick: function onClick() {
206
+ handlerToggleCheckChildren(node.id, true);
207
+
208
+ _this2.setState({
209
+ showNodeElements: false,
210
+ keepMenuOpened: false
211
+ });
212
+ }
213
+ }), /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
214
+ text: "Desmarcar todos",
215
+ onClick: function onClick() {
216
+ handlerToggleCheckChildren(node.id, false, required);
217
+
218
+ _this2.setState({
219
+ showNodeElements: false,
220
+ keepMenuOpened: false
221
+ });
127
222
  }
128
- }) : node[labelPropName]), /*#__PURE__*/_react["default"].createElement("ul", {
223
+ }))) : null, showNodeElements && _this2.returnNodeRightElements(), showNodeElements && _this2.returnNodeToolbarElements()), /*#__PURE__*/_react["default"].createElement("ul", {
129
224
  className: "nodelist"
130
225
  }, _this2.state.isVisible && children));
131
226
  });
@@ -135,17 +230,222 @@ var TreeNode = /*#__PURE__*/function (_Component) {
135
230
  return TreeNode;
136
231
  }(_react.Component);
137
232
 
233
+ var _initialiseProps = function _initialiseProps() {
234
+ var _this3 = this;
235
+
236
+ Object.defineProperty(this, "getSpan", {
237
+ configurable: true,
238
+ enumerable: true,
239
+ writable: true,
240
+ value: function value() {
241
+ var _this3$props = _this3.props,
242
+ node = _this3$props.node,
243
+ alwaysShowArrow = _this3$props.alwaysShowArrow;
244
+
245
+ var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
246
+
247
+ if (node.itens && node.itens.length > 0 || alwaysShowArrow) {
248
+ span = /*#__PURE__*/_react["default"].createElement("span", {
249
+ onKeyPress: null,
250
+ tabIndex: 0,
251
+ role: "button",
252
+ className: "opencloseicon",
253
+ onClick: function onClick() {
254
+ return _this3.openCloseTree(node);
255
+ }
256
+ }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
257
+ name: _this3.state.isVisible ? 'up' : 'down',
258
+ size: 10
259
+ }));
260
+ }
261
+
262
+ return span;
263
+ }
264
+ });
265
+ Object.defineProperty(this, "openCloseTree", {
266
+ configurable: true,
267
+ enumerable: true,
268
+ writable: true,
269
+ value: function value(node) {
270
+ var _this3$state = _this3.state,
271
+ isVisible = _this3$state.isVisible,
272
+ wasOpened = _this3$state.wasOpened;
273
+ var handlerOnNodeOpen = _this3.props.handlerOnNodeOpen;
274
+ var nextState = {
275
+ isVisible: !isVisible
276
+ };
277
+
278
+ if (!wasOpened && handlerOnNodeOpen) {
279
+ nextState = _extends({}, nextState, {
280
+ wasOpened: true
281
+ });
282
+ handlerOnNodeOpen(node);
283
+ }
284
+
285
+ _this3.setState(nextState);
286
+ }
287
+ });
288
+ Object.defineProperty(this, "handleShowNodeElements", {
289
+ configurable: true,
290
+ enumerable: true,
291
+ writable: true,
292
+ value: function value() {
293
+ var _this3$state2 = _this3.state,
294
+ showNodeElements = _this3$state2.showNodeElements,
295
+ keepMenuOpened = _this3$state2.keepMenuOpened;
296
+ if (!showNodeElements) _this3.setState({
297
+ showNodeElements: true
298
+ });else if (showNodeElements && !keepMenuOpened) {
299
+ _this3.setState({
300
+ showNodeElements: false
301
+ });
302
+ }
303
+ }
304
+ });
305
+ Object.defineProperty(this, "updateElements", {
306
+ configurable: true,
307
+ enumerable: true,
308
+ writable: true,
309
+ value: function value(elements) {
310
+ var _this3$props2 = _this3.props,
311
+ node = _this3$props2.node,
312
+ nodeElementsValidations = _this3$props2.nodeElementsValidations;
313
+ var updatedElements = [];
314
+
315
+ if (elements) {
316
+ updatedElements = _react["default"].Children.map(elements, function (element) {
317
+ if ( /*#__PURE__*/_react["default"].isValidElement(element) && element.props) {
318
+ var _element$props = element.props,
319
+ validationKey = _element$props.validationKey,
320
+ onNodeElementClick = _element$props.onNodeElementClick;
321
+ var elementBehavior;
322
+ var newProps = {};
323
+
324
+ if (nodeElementsValidations && validationKey) {
325
+ elementBehavior = _this3.validateNodeElement(validationKey);
326
+ }
327
+
328
+ if (onNodeElementClick) {
329
+ newProps = _extends({}, newProps, {
330
+ onClick: function onClick(e) {
331
+ onNodeElementClick(node);
332
+ if (e.stopPropagation) e.stopPropagation();
333
+ },
334
+ onNodeElementClick: null
335
+ });
336
+ }
337
+
338
+ return /*#__PURE__*/_react["default"].cloneElement(element, _extends({}, elementBehavior, newProps));
339
+ }
340
+
341
+ return element;
342
+ });
343
+ }
344
+
345
+ return updatedElements;
346
+ }
347
+ });
348
+ Object.defineProperty(this, "returnNodeRightElements", {
349
+ configurable: true,
350
+ enumerable: true,
351
+ writable: true,
352
+ value: function value() {
353
+ var nodeRightElements = _this3.props.nodeRightElements;
354
+
355
+ var updatedNodeRightElements = _this3.updateElements(nodeRightElements).map(function (element) {
356
+ var unvisible = element.props && 'visible' in element.props && !element.props.visible;
357
+ var style = unvisible ? {
358
+ display: 'none'
359
+ } : {};
360
+ return /*#__PURE__*/_react["default"].createElement("div", {
361
+ style: style,
362
+ key: "element-".concat(_uuid["default"].v1()),
363
+ className: "element"
364
+ }, element);
365
+ });
366
+
367
+ return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
368
+ className: "node-rightelements"
369
+ }, updatedNodeRightElements) : null;
370
+ }
371
+ });
372
+ Object.defineProperty(this, "returnNodeToolbarElements", {
373
+ configurable: true,
374
+ enumerable: true,
375
+ writable: true,
376
+ value: function value() {
377
+ var nodeToolbarElements = _this3.props.nodeToolbarElements;
378
+
379
+ var updatedNodeRightElements = _this3.updateElements(nodeToolbarElements);
380
+
381
+ return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
382
+ customClass: "node-toolbarelements"
383
+ }, /*#__PURE__*/_react["default"].createElement(_toolbar.ToolBarGroup, null, updatedNodeRightElements)) : null;
384
+ }
385
+ });
386
+ Object.defineProperty(this, "validateNodeElement", {
387
+ configurable: true,
388
+ enumerable: true,
389
+ writable: true,
390
+ value: function value(validationKey) {
391
+ var _this3$props3 = _this3.props,
392
+ nodeElementsValidations = _this3$props3.nodeElementsValidations,
393
+ node = _this3$props3.node;
394
+ var validations = nodeElementsValidations[validationKey];
395
+ var options = {
396
+ disabled: {
397
+ disabled: true
398
+ },
399
+ unvisible: {
400
+ visible: false
401
+ }
402
+ };
403
+ var elementBehavior = {};
404
+
405
+ if (validations) {
406
+ validations.forEach(function (validation) {
407
+ var validator = validation.validator,
408
+ applyBehavior = validation.applyBehavior;
409
+
410
+ if (_lodash["default"].isEmpty(elementBehavior) && validator && validator(node)) {
411
+ elementBehavior = options[applyBehavior] || options.unvisible;
412
+ }
413
+ });
414
+ }
415
+
416
+ return elementBehavior;
417
+ }
418
+ });
419
+ };
420
+
138
421
  TreeNode.propTypes = {
139
422
  node: _propTypes["default"].object.isRequired,
140
423
  children: _propTypes["default"].any.isRequired,
141
424
  childrenIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
142
425
  parentId: _propTypes["default"].number,
143
- disabled: _propTypes["default"].bool
426
+ disabled: _propTypes["default"].bool,
427
+ isParent: _propTypes["default"].bool,
428
+ alwaysShowArrow: _propTypes["default"].bool,
429
+ nodeRightElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
430
+ nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
431
+ nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
432
+ onNodeClick: _propTypes["default"].func,
433
+ handlerOnNodeOpen: _propTypes["default"].func,
434
+ nodeElementsValidations: _propTypes["default"].object,
435
+ startNodesOpened: _propTypes["default"].bool.isRequired
144
436
  };
145
437
  TreeNode.defaultProps = {
146
438
  childrenIds: [],
147
439
  parentId: undefined,
148
- disabled: false
440
+ disabled: false,
441
+ isParent: false,
442
+ alwaysShowArrow: false,
443
+ nodeRightElements: undefined,
444
+ nodeToolbarElements: undefined,
445
+ nodeMenuButtonSize: 'small',
446
+ onNodeClick: undefined,
447
+ handlerOnNodeOpen: undefined,
448
+ nodeElementsValidations: undefined
149
449
  };
150
450
  TreeNode.contextType = _constants.TreeviewContext;
151
451
  var _default = TreeNode;