linear-react-components-ui 0.4.75-beta.0 → 0.4.75-beta.4
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.
- package/lib/assets/styles/treeview.scss +14 -3
- package/lib/treeview/Node.js +135 -43
- package/lib/treeview/index.js +28 -7
- package/package.json +1 -1
|
@@ -49,12 +49,18 @@
|
|
|
49
49
|
animation: revealelement 0.3s forwards ease-in-out;
|
|
50
50
|
margin-left: 10px;
|
|
51
51
|
}
|
|
52
|
-
>.node-
|
|
52
|
+
>.node-rightelements {
|
|
53
53
|
animation: revealelement 0.3s forwards ease-in-out;
|
|
54
54
|
display: flex;
|
|
55
55
|
justify-content: flex-start;
|
|
56
56
|
align-items: center;
|
|
57
57
|
}
|
|
58
|
+
>.node-toolbarelements {
|
|
59
|
+
animation: revealelement 0.3s forwards ease-in-out;
|
|
60
|
+
width: auto;
|
|
61
|
+
height: 100%;
|
|
62
|
+
margin-left: 10px;
|
|
63
|
+
}
|
|
58
64
|
&:hover {
|
|
59
65
|
background-color: rgb(209, 209, 209);
|
|
60
66
|
}
|
|
@@ -67,10 +73,15 @@
|
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
|
|
70
|
-
.nodelist > .treeviewitem > .label > .node-
|
|
71
|
-
.treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-
|
|
76
|
+
.nodelist > .treeviewitem > .label > .node-rightelements > .element,
|
|
77
|
+
.treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-rightelements > .element {
|
|
72
78
|
margin-left: 10px;
|
|
73
79
|
display: flex;
|
|
74
80
|
align-items: center;
|
|
75
81
|
height: 100%;
|
|
76
82
|
}
|
|
83
|
+
|
|
84
|
+
.nodelist > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar,
|
|
85
|
+
.treeview-component > .treeviewcontainer > .treeviewitem > .label > .node-toolbarelements > .toolbar-group > .buttonbar {
|
|
86
|
+
border: none;
|
|
87
|
+
}
|
package/lib/treeview/Node.js
CHANGED
|
@@ -13,6 +13,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
13
|
|
|
14
14
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
15
15
|
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
17
|
+
|
|
16
18
|
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
17
19
|
|
|
18
20
|
var _icons = _interopRequireDefault(require("../icons"));
|
|
@@ -23,6 +25,8 @@ var _buttons = _interopRequireDefault(require("../buttons"));
|
|
|
23
25
|
|
|
24
26
|
var _list = _interopRequireWildcard(require("../list"));
|
|
25
27
|
|
|
28
|
+
var _toolbar = _interopRequireWildcard(require("../toolbar"));
|
|
29
|
+
|
|
26
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
31
|
|
|
28
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); }
|
|
@@ -41,6 +45,8 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
|
|
|
41
45
|
|
|
42
46
|
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; }
|
|
43
47
|
|
|
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
|
+
|
|
44
50
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
45
51
|
|
|
46
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); } }
|
|
@@ -124,40 +130,117 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
124
130
|
}
|
|
125
131
|
}
|
|
126
132
|
});
|
|
127
|
-
Object.defineProperty(_assertThisInitialized(_this), "
|
|
133
|
+
Object.defineProperty(_assertThisInitialized(_this), "updateElements", {
|
|
128
134
|
configurable: true,
|
|
129
135
|
enumerable: true,
|
|
130
136
|
writable: true,
|
|
131
|
-
value: function value() {
|
|
137
|
+
value: function value(elements) {
|
|
132
138
|
var _this$props = _this.props,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
if (
|
|
138
|
-
|
|
139
|
-
if ( /*#__PURE__*/_react["default"].isValidElement(element) && element.props
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
139
|
+
node = _this$props.node,
|
|
140
|
+
nodeElementsValidations = _this$props.nodeElementsValidations;
|
|
141
|
+
var updatedElements = [];
|
|
142
|
+
|
|
143
|
+
if (elements) {
|
|
144
|
+
updatedElements = _react["default"].Children.map(elements, function (element) {
|
|
145
|
+
if ( /*#__PURE__*/_react["default"].isValidElement(element) && element.props) {
|
|
146
|
+
var _element$props = element.props,
|
|
147
|
+
validationKey = _element$props.validationKey,
|
|
148
|
+
onNodeElementClick = _element$props.onNodeElementClick;
|
|
149
|
+
var elementBehavior;
|
|
150
|
+
var newProps = {};
|
|
151
|
+
|
|
152
|
+
if (nodeElementsValidations && validationKey) {
|
|
153
|
+
elementBehavior = _this.validateNodeElement(validationKey);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (onNodeElementClick) {
|
|
157
|
+
newProps = _extends({}, newProps, {
|
|
158
|
+
onClick: function onClick() {
|
|
159
|
+
return onNodeElementClick(node);
|
|
160
|
+
},
|
|
161
|
+
onNodeElementClick: null
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
return /*#__PURE__*/_react["default"].cloneElement(element, _extends({}, elementBehavior, newProps));
|
|
147
166
|
}
|
|
148
167
|
|
|
149
168
|
return element;
|
|
150
|
-
}).map(function (element) {
|
|
151
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
152
|
-
key: "element-".concat(_uuid["default"].v1()),
|
|
153
|
-
className: "element"
|
|
154
|
-
}, element);
|
|
155
169
|
});
|
|
156
170
|
}
|
|
157
171
|
|
|
158
|
-
return
|
|
159
|
-
|
|
160
|
-
|
|
172
|
+
return updatedElements;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
Object.defineProperty(_assertThisInitialized(_this), "returnNodeRightElements", {
|
|
176
|
+
configurable: true,
|
|
177
|
+
enumerable: true,
|
|
178
|
+
writable: true,
|
|
179
|
+
value: function value() {
|
|
180
|
+
var nodeRightElements = _this.props.nodeRightElements;
|
|
181
|
+
|
|
182
|
+
var updatedNodeRightElements = _this.updateElements(nodeRightElements).map(function (element) {
|
|
183
|
+
var unvisible = element.props && 'visible' in element.props && !element.props.visible;
|
|
184
|
+
var style = unvisible ? {
|
|
185
|
+
display: 'none'
|
|
186
|
+
} : {};
|
|
187
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
188
|
+
style: style,
|
|
189
|
+
key: "element-".concat(_uuid["default"].v1()),
|
|
190
|
+
className: "element"
|
|
191
|
+
}, element);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
195
|
+
className: "node-rightelements"
|
|
196
|
+
}, updatedNodeRightElements) : null;
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
Object.defineProperty(_assertThisInitialized(_this), "returnNodeToolbarElements", {
|
|
200
|
+
configurable: true,
|
|
201
|
+
enumerable: true,
|
|
202
|
+
writable: true,
|
|
203
|
+
value: function value() {
|
|
204
|
+
var nodeToolbarElements = _this.props.nodeToolbarElements;
|
|
205
|
+
|
|
206
|
+
var updatedNodeRightElements = _this.updateElements(nodeToolbarElements);
|
|
207
|
+
|
|
208
|
+
return updatedNodeRightElements.length > 0 ? /*#__PURE__*/_react["default"].createElement(_toolbar["default"], {
|
|
209
|
+
customClass: "node-toolbarelements"
|
|
210
|
+
}, /*#__PURE__*/_react["default"].createElement(_toolbar.ToolBarGroup, null, updatedNodeRightElements)) : null;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
Object.defineProperty(_assertThisInitialized(_this), "validateNodeElement", {
|
|
214
|
+
configurable: true,
|
|
215
|
+
enumerable: true,
|
|
216
|
+
writable: true,
|
|
217
|
+
value: function value(validationKey) {
|
|
218
|
+
var _this$props2 = _this.props,
|
|
219
|
+
nodeElementsValidations = _this$props2.nodeElementsValidations,
|
|
220
|
+
node = _this$props2.node;
|
|
221
|
+
var validations = nodeElementsValidations[validationKey];
|
|
222
|
+
var options = {
|
|
223
|
+
disabled: {
|
|
224
|
+
disabled: true
|
|
225
|
+
},
|
|
226
|
+
unvisible: {
|
|
227
|
+
visible: false
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
var elementBehavior = {};
|
|
231
|
+
|
|
232
|
+
if (validations) {
|
|
233
|
+
validations.forEach(function (validation) {
|
|
234
|
+
var validator = validation.validator,
|
|
235
|
+
applyBehavior = validation.applyBehavior;
|
|
236
|
+
|
|
237
|
+
if (_lodash["default"].isEmpty(elementBehavior) && validator && validator(node)) {
|
|
238
|
+
elementBehavior = options[applyBehavior] || options.unvisible;
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return elementBehavior;
|
|
161
244
|
}
|
|
162
245
|
});
|
|
163
246
|
_this.labelRef = /*#__PURE__*/_react["default"].createRef();
|
|
@@ -172,11 +255,12 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
172
255
|
_createClass(TreeNode, [{
|
|
173
256
|
key: "componentDidMount",
|
|
174
257
|
value: function componentDidMount() {
|
|
175
|
-
var _this$
|
|
176
|
-
isParent = _this$
|
|
177
|
-
|
|
258
|
+
var _this$props3 = this.props,
|
|
259
|
+
isParent = _this$props3.isParent,
|
|
260
|
+
nodeToolbarElements = _this$props3.nodeToolbarElements,
|
|
261
|
+
nodeRightElements = _this$props3.nodeRightElements;
|
|
178
262
|
|
|
179
|
-
if (isParent ||
|
|
263
|
+
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
180
264
|
this.labelRef.current.addEventListener('mouseenter', this.handleShowNodeElements);
|
|
181
265
|
this.labelRef.current.addEventListener('mouseleave', this.handleShowNodeElements);
|
|
182
266
|
}
|
|
@@ -184,11 +268,12 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
184
268
|
}, {
|
|
185
269
|
key: "componentWillUnmount",
|
|
186
270
|
value: function componentWillUnmount() {
|
|
187
|
-
var _this$
|
|
188
|
-
isParent = _this$
|
|
189
|
-
|
|
271
|
+
var _this$props4 = this.props,
|
|
272
|
+
isParent = _this$props4.isParent,
|
|
273
|
+
nodeToolbarElements = _this$props4.nodeToolbarElements,
|
|
274
|
+
nodeRightElements = _this$props4.nodeRightElements;
|
|
190
275
|
|
|
191
|
-
if (isParent ||
|
|
276
|
+
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
192
277
|
this.labelRef.current.removeEventListener('mouseenter', this.handleShowNodeElements);
|
|
193
278
|
this.labelRef.current.removeEventListener('mouseleave', this.handleShowNodeElements);
|
|
194
279
|
}
|
|
@@ -198,11 +283,12 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
198
283
|
value: function render() {
|
|
199
284
|
var _this2 = this;
|
|
200
285
|
|
|
201
|
-
var _this$
|
|
202
|
-
node = _this$
|
|
203
|
-
children = _this$
|
|
204
|
-
isParent = _this$
|
|
205
|
-
onNodeClick = _this$
|
|
286
|
+
var _this$props5 = this.props,
|
|
287
|
+
node = _this$props5.node,
|
|
288
|
+
children = _this$props5.children,
|
|
289
|
+
isParent = _this$props5.isParent,
|
|
290
|
+
onNodeClick = _this$props5.onNodeClick,
|
|
291
|
+
nodeMenuButtonSize = _this$props5.nodeMenuButtonSize;
|
|
206
292
|
var showNodeElements = this.state.showNodeElements;
|
|
207
293
|
return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
|
|
208
294
|
var valuePropName = _ref.valuePropName,
|
|
@@ -242,7 +328,7 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
242
328
|
}) : node[labelPropName], allowCheckAllChildren && showNodeElements && isParent ? /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
243
329
|
dropdown: true,
|
|
244
330
|
dropdownAlign: "left",
|
|
245
|
-
size:
|
|
331
|
+
size: nodeMenuButtonSize,
|
|
246
332
|
onClick: function onClick() {
|
|
247
333
|
_this2.setState({
|
|
248
334
|
keepMenuOpened: !_this2.state.keepMenuOpened
|
|
@@ -274,7 +360,7 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
274
360
|
keepMenuOpened: false
|
|
275
361
|
});
|
|
276
362
|
}
|
|
277
|
-
}))) : null, showNodeElements && _this2.
|
|
363
|
+
}))) : null, showNodeElements && _this2.returnNodeRightElements(), showNodeElements && _this2.returnNodeToolbarElements()), /*#__PURE__*/_react["default"].createElement("ul", {
|
|
278
364
|
className: "nodelist"
|
|
279
365
|
}, _this2.state.isVisible && children));
|
|
280
366
|
});
|
|
@@ -291,16 +377,22 @@ TreeNode.propTypes = {
|
|
|
291
377
|
parentId: _propTypes["default"].number,
|
|
292
378
|
disabled: _propTypes["default"].bool,
|
|
293
379
|
isParent: _propTypes["default"].bool,
|
|
294
|
-
|
|
295
|
-
|
|
380
|
+
nodeRightElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
381
|
+
nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
382
|
+
nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
|
|
383
|
+
onNodeClick: _propTypes["default"].func,
|
|
384
|
+
nodeElementsValidations: _propTypes["default"].object
|
|
296
385
|
};
|
|
297
386
|
TreeNode.defaultProps = {
|
|
298
387
|
childrenIds: [],
|
|
299
388
|
parentId: undefined,
|
|
300
389
|
disabled: false,
|
|
301
390
|
isParent: false,
|
|
302
|
-
|
|
303
|
-
|
|
391
|
+
nodeRightElements: undefined,
|
|
392
|
+
nodeToolbarElements: undefined,
|
|
393
|
+
nodeMenuButtonSize: 'small',
|
|
394
|
+
onNodeClick: undefined,
|
|
395
|
+
nodeElementsValidations: undefined
|
|
304
396
|
};
|
|
305
397
|
TreeNode.contextType = _constants.TreeviewContext;
|
|
306
398
|
var _default = TreeNode;
|
package/lib/treeview/index.js
CHANGED
|
@@ -415,8 +415,11 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
415
415
|
var parentId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
416
416
|
var ids = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
417
417
|
var _this$props3 = _this.props,
|
|
418
|
-
|
|
419
|
-
onNodeClick = _this$props3.onNodeClick
|
|
418
|
+
nodeRightElements = _this$props3.nodeRightElements,
|
|
419
|
+
onNodeClick = _this$props3.onNodeClick,
|
|
420
|
+
nodeElementsValidations = _this$props3.nodeElementsValidations,
|
|
421
|
+
nodeToolbarElements = _this$props3.nodeToolbarElements,
|
|
422
|
+
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize;
|
|
420
423
|
var childrenIds = [];
|
|
421
424
|
|
|
422
425
|
if (node.itens && node.itens.length > 0) {
|
|
@@ -437,7 +440,10 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
437
440
|
childrenIds: childrenIds,
|
|
438
441
|
isParent: node.itens && node.itens.length > 0,
|
|
439
442
|
parentId: parentId,
|
|
440
|
-
|
|
443
|
+
nodeRightElements: nodeRightElements,
|
|
444
|
+
nodeToolbarElements: nodeToolbarElements,
|
|
445
|
+
nodeElementsValidations: nodeElementsValidations,
|
|
446
|
+
nodeMenuButtonSize: nodeMenuButtonSize,
|
|
441
447
|
onNodeClick: onNodeClick
|
|
442
448
|
}, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
|
|
443
449
|
return _this.buildTree(nodeitem, node.id, ids);
|
|
@@ -477,6 +483,15 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
477
483
|
className: "treeviewcontainer ".concat(bordered && '-bordered')
|
|
478
484
|
}, this.buildTree(data))));
|
|
479
485
|
}
|
|
486
|
+
}], [{
|
|
487
|
+
key: "getDerivedStateFromProps",
|
|
488
|
+
value: function getDerivedStateFromProps(props, state) {
|
|
489
|
+
var data = props.data;
|
|
490
|
+
if (data !== state.data) return {
|
|
491
|
+
data: data
|
|
492
|
+
};
|
|
493
|
+
return null;
|
|
494
|
+
}
|
|
480
495
|
}]);
|
|
481
496
|
|
|
482
497
|
return TreeView;
|
|
@@ -499,8 +514,11 @@ TreeView.propTypes = {
|
|
|
499
514
|
allowCheckAllChildren: _propTypes["default"].bool,
|
|
500
515
|
allowCheckAllAncestry: _propTypes["default"].bool,
|
|
501
516
|
defaultDisabledTooltip: _propTypes["default"].string,
|
|
502
|
-
|
|
503
|
-
|
|
517
|
+
nodeRightElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
518
|
+
nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
519
|
+
nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
|
|
520
|
+
onNodeClick: _propTypes["default"].func,
|
|
521
|
+
nodeElementsValidations: _propTypes["default"].object
|
|
504
522
|
};
|
|
505
523
|
TreeView.defaultProps = {
|
|
506
524
|
customClass: '',
|
|
@@ -515,8 +533,11 @@ TreeView.defaultProps = {
|
|
|
515
533
|
allowCheckAllChildren: false,
|
|
516
534
|
allowCheckAllAncestry: false,
|
|
517
535
|
defaultDisabledTooltip: '',
|
|
518
|
-
|
|
519
|
-
|
|
536
|
+
nodeRightElements: undefined,
|
|
537
|
+
nodeToolbarElements: undefined,
|
|
538
|
+
nodeMenuButtonSize: 'small',
|
|
539
|
+
onNodeClick: undefined,
|
|
540
|
+
nodeElementsValidations: undefined
|
|
520
541
|
};
|
|
521
542
|
var _default = TreeView;
|
|
522
543
|
exports["default"] = _default;
|