linear-react-components-ui 0.4.75-beta.9 → 0.4.76-beta.1
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/.eslintrc.js +2 -5
- package/.tool-versions +1 -0
- package/.vscode/settings.json +8 -9
- package/README.md +23 -0
- package/config/jest/cssTransform.js +14 -0
- package/config/jest/fileTransform.js +12 -0
- package/config/jest/storageMock.js +40 -0
- package/jest.config.js +18 -0
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/assets/styles/dropdown.scss +25 -2
- package/lib/assets/styles/effects.scss +12 -0
- package/lib/assets/styles/floatMenu.scss +0 -1
- package/lib/assets/styles/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +0 -1
- package/lib/assets/styles/periodpicker.scss +65 -0
- package/lib/assets/styles/popover.scss +9 -11
- package/lib/assets/styles/progress.scss +8 -1
- package/lib/assets/styles/select.scss +1 -0
- package/lib/assets/styles/table.scss +13 -5
- package/lib/assets/styles/tabs.scss +77 -43
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/avatar/index.js +6 -2
- package/lib/badge/badge.spec.js +127 -0
- package/lib/badge/index.js +3 -5
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/checkbox/index.js +1 -0
- package/lib/dialog/Custom.js +7 -1
- package/lib/dialog/base/index.js +18 -6
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.js +23 -4
- package/lib/drawer/Drawer.js +3 -0
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/drawer/Header.js +4 -1
- package/lib/drawer/index.js +4 -1
- package/lib/dropdown/Popup.js +1 -0
- package/lib/dropdown/dropdown.spec.js +168 -0
- package/lib/dropdown/withDropdown.js +10 -4
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +10 -2
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/form.spec.js +285 -0
- package/lib/form/helpers.js +9 -1
- package/lib/form/index.js +76 -10
- package/lib/form/withFieldHOC.js +2 -0
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/gridlayout/GridRow.js +1 -1
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/helper.js +16 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/icons/index.js +2 -0
- package/lib/inputs/base/InputTextBase.js +15 -5
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/color/index.js +2 -2
- package/lib/inputs/date/date.spec.js +344 -0
- package/lib/inputs/date/index.js +7 -6
- package/lib/inputs/mask/Cpf.js +9 -9
- package/lib/inputs/mask/input_mask.spec.js +590 -0
- package/lib/inputs/multiSelect/ActionButtons.js +68 -0
- package/lib/inputs/multiSelect/Dropdown.js +200 -0
- package/lib/inputs/multiSelect/helper.js +18 -0
- package/lib/inputs/multiSelect/index.js +343 -0
- package/lib/inputs/number/BaseNumber.js +1 -1
- package/lib/inputs/number/index.js +7 -5
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/period/Dialog.js +38 -0
- package/lib/inputs/period/Dropdown.js +90 -0
- package/lib/inputs/period/PeriodList.js +79 -0
- package/lib/inputs/period/helper.js +118 -0
- package/lib/inputs/period/index.js +490 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/Dropdown.js +4 -4
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +9 -7
- package/lib/inputs/select/select.spec.js +391 -0
- package/lib/inputs/select/simple/index.js +30 -18
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/internals/withTooltip.js +83 -82
- package/lib/labelMessages/index.js +3 -2
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/list/Item.js +3 -3
- package/lib/list/index.js +21 -10
- package/lib/list/list.spec.js +611 -0
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/sidenav/index.js +7 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
- package/lib/menus/sidenav/sidenav.spec.js +312 -0
- package/lib/noPermission/index.js +2 -1
- package/lib/panel/panel.spec.js +216 -0
- package/lib/popover/index.js +2 -1
- package/lib/popover/popover.spec.js +146 -0
- package/lib/progress/Bar.js +40 -9
- package/lib/progress/index.js +12 -4
- package/lib/progress/progress.spec.js +86 -0
- package/lib/radio/radio.spec.js +189 -0
- package/lib/spinner/SpinnerLoading.js +14 -24
- package/lib/spinner/index.js +6 -1
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/Split.js +10 -12
- package/lib/split/split.spec.js +151 -0
- package/lib/table/Header.js +3 -1
- package/lib/table/Row.js +2 -5
- package/lib/table/index.js +1 -4
- package/lib/table/table.spec.js +352 -0
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +18 -5
- package/lib/tabs/MenuItems.js +7 -7
- package/lib/tabs/Panel.js +1 -3
- package/lib/tabs/index.js +126 -17
- package/lib/tabs/tabs.spec.js +346 -0
- package/lib/toolbar/index.js +8 -4
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/tooltip/index.js +13 -0
- package/lib/tooltip/tooltip.spec.js +203 -0
- package/lib/treeview/Node.js +31 -27
- package/lib/treeview/index.js +35 -22
- package/lib/treeview/treeview.spec.js +261 -0
- package/package.json +19 -9
package/lib/treeview/Node.js
CHANGED
|
@@ -83,11 +83,13 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
83
83
|
enumerable: true,
|
|
84
84
|
writable: true,
|
|
85
85
|
value: function value() {
|
|
86
|
-
var
|
|
86
|
+
var _this$props = _this.props,
|
|
87
|
+
node = _this$props.node,
|
|
88
|
+
alwaysShowArrow = _this$props.alwaysShowArrow;
|
|
87
89
|
|
|
88
90
|
var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
|
|
89
91
|
|
|
90
|
-
if (node.itens && node.itens.length > 0) {
|
|
92
|
+
if (node.itens && node.itens.length > 0 || alwaysShowArrow) {
|
|
91
93
|
span = /*#__PURE__*/_react["default"].createElement("span", {
|
|
92
94
|
onKeyPress: null,
|
|
93
95
|
tabIndex: 0,
|
|
@@ -113,16 +115,16 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
113
115
|
var _this$state = _this.state,
|
|
114
116
|
isVisible = _this$state.isVisible,
|
|
115
117
|
wasOpened = _this$state.wasOpened;
|
|
116
|
-
var
|
|
118
|
+
var handlerOnNodeOpen = _this.props.handlerOnNodeOpen;
|
|
117
119
|
var nextState = {
|
|
118
120
|
isVisible: !isVisible
|
|
119
121
|
};
|
|
120
122
|
|
|
121
|
-
if (!wasOpened &&
|
|
123
|
+
if (!wasOpened && handlerOnNodeOpen) {
|
|
122
124
|
nextState = _extends({}, nextState, {
|
|
123
125
|
wasOpened: true
|
|
124
126
|
});
|
|
125
|
-
|
|
127
|
+
handlerOnNodeOpen(node);
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
_this.setState(nextState);
|
|
@@ -150,9 +152,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
150
152
|
enumerable: true,
|
|
151
153
|
writable: true,
|
|
152
154
|
value: function value(elements) {
|
|
153
|
-
var _this$
|
|
154
|
-
node = _this$
|
|
155
|
-
nodeElementsValidations = _this$
|
|
155
|
+
var _this$props2 = _this.props,
|
|
156
|
+
node = _this$props2.node,
|
|
157
|
+
nodeElementsValidations = _this$props2.nodeElementsValidations;
|
|
156
158
|
var updatedElements = [];
|
|
157
159
|
|
|
158
160
|
if (elements) {
|
|
@@ -231,9 +233,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
231
233
|
enumerable: true,
|
|
232
234
|
writable: true,
|
|
233
235
|
value: function value(validationKey) {
|
|
234
|
-
var _this$
|
|
235
|
-
nodeElementsValidations = _this$
|
|
236
|
-
node = _this$
|
|
236
|
+
var _this$props3 = _this.props,
|
|
237
|
+
nodeElementsValidations = _this$props3.nodeElementsValidations,
|
|
238
|
+
node = _this$props3.node;
|
|
237
239
|
var validations = nodeElementsValidations[validationKey];
|
|
238
240
|
var options = {
|
|
239
241
|
disabled: {
|
|
@@ -272,10 +274,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
272
274
|
_createClass(TreeNode, [{
|
|
273
275
|
key: "componentDidMount",
|
|
274
276
|
value: function componentDidMount() {
|
|
275
|
-
var _this$
|
|
276
|
-
isParent = _this$
|
|
277
|
-
nodeToolbarElements = _this$
|
|
278
|
-
nodeRightElements = _this$
|
|
277
|
+
var _this$props4 = this.props,
|
|
278
|
+
isParent = _this$props4.isParent,
|
|
279
|
+
nodeToolbarElements = _this$props4.nodeToolbarElements,
|
|
280
|
+
nodeRightElements = _this$props4.nodeRightElements;
|
|
279
281
|
|
|
280
282
|
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
281
283
|
this.labelRef.current.addEventListener('mouseenter', this.handleShowNodeElements);
|
|
@@ -285,10 +287,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
285
287
|
}, {
|
|
286
288
|
key: "componentWillUnmount",
|
|
287
289
|
value: function componentWillUnmount() {
|
|
288
|
-
var _this$
|
|
289
|
-
isParent = _this$
|
|
290
|
-
nodeToolbarElements = _this$
|
|
291
|
-
nodeRightElements = _this$
|
|
290
|
+
var _this$props5 = this.props,
|
|
291
|
+
isParent = _this$props5.isParent,
|
|
292
|
+
nodeToolbarElements = _this$props5.nodeToolbarElements,
|
|
293
|
+
nodeRightElements = _this$props5.nodeRightElements;
|
|
292
294
|
|
|
293
295
|
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
294
296
|
this.labelRef.current.removeEventListener('mouseenter', this.handleShowNodeElements);
|
|
@@ -300,12 +302,12 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
300
302
|
value: function render() {
|
|
301
303
|
var _this2 = this;
|
|
302
304
|
|
|
303
|
-
var _this$
|
|
304
|
-
node = _this$
|
|
305
|
-
children = _this$
|
|
306
|
-
isParent = _this$
|
|
307
|
-
onNodeClick = _this$
|
|
308
|
-
nodeMenuButtonSize = _this$
|
|
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;
|
|
309
311
|
var showNodeElements = this.state.showNodeElements;
|
|
310
312
|
return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
|
|
311
313
|
var valuePropName = _ref.valuePropName,
|
|
@@ -394,11 +396,12 @@ TreeNode.propTypes = {
|
|
|
394
396
|
parentId: _propTypes["default"].number,
|
|
395
397
|
disabled: _propTypes["default"].bool,
|
|
396
398
|
isParent: _propTypes["default"].bool,
|
|
399
|
+
alwaysShowArrow: _propTypes["default"].bool,
|
|
397
400
|
nodeRightElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
398
401
|
nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
399
402
|
nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
|
|
400
403
|
onNodeClick: _propTypes["default"].func,
|
|
401
|
-
|
|
404
|
+
handlerOnNodeOpen: _propTypes["default"].func,
|
|
402
405
|
nodeElementsValidations: _propTypes["default"].object
|
|
403
406
|
};
|
|
404
407
|
TreeNode.defaultProps = {
|
|
@@ -406,11 +409,12 @@ TreeNode.defaultProps = {
|
|
|
406
409
|
parentId: undefined,
|
|
407
410
|
disabled: false,
|
|
408
411
|
isParent: false,
|
|
412
|
+
alwaysShowArrow: false,
|
|
409
413
|
nodeRightElements: undefined,
|
|
410
414
|
nodeToolbarElements: undefined,
|
|
411
415
|
nodeMenuButtonSize: 'small',
|
|
412
416
|
onNodeClick: undefined,
|
|
413
|
-
|
|
417
|
+
handlerOnNodeOpen: undefined,
|
|
414
418
|
nodeElementsValidations: undefined
|
|
415
419
|
};
|
|
416
420
|
TreeNode.contextType = _constants.TreeviewContext;
|
package/lib/treeview/index.js
CHANGED
|
@@ -78,6 +78,15 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
78
78
|
|
|
79
79
|
var _super = _createSuper(TreeView);
|
|
80
80
|
|
|
81
|
+
// static getDerivedStateFromProps(props, state) {
|
|
82
|
+
// const { data, selectedIds } = props;
|
|
83
|
+
// const { propSelectedIds } = state;
|
|
84
|
+
// const isSameSelectedIds = _.isEqual(propSelectedIds.sort(), selectedIds.sort());
|
|
85
|
+
// if (data !== state.data || !isSameSelectedIds) {
|
|
86
|
+
// return { data, selectedIds, propSelectedIds: selectedIds };
|
|
87
|
+
// }
|
|
88
|
+
// return null;
|
|
89
|
+
// }
|
|
81
90
|
function TreeView(props) {
|
|
82
91
|
var _this;
|
|
83
92
|
|
|
@@ -348,6 +357,25 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
348
357
|
});
|
|
349
358
|
}
|
|
350
359
|
});
|
|
360
|
+
Object.defineProperty(_assertThisInitialized(_this), "handleOnNodeOpen", {
|
|
361
|
+
configurable: true,
|
|
362
|
+
enumerable: true,
|
|
363
|
+
writable: true,
|
|
364
|
+
value: function value(node) {
|
|
365
|
+
var id = node.id;
|
|
366
|
+
var onNodeOpen = _this.props.onNodeOpen;
|
|
367
|
+
var alreadyOpenedIds = _this.state.alreadyOpenedIds;
|
|
368
|
+
|
|
369
|
+
if (!alreadyOpenedIds.includes(id) && onNodeOpen) {
|
|
370
|
+
alreadyOpenedIds = [].concat(_toConsumableArray(alreadyOpenedIds), [id]);
|
|
371
|
+
onNodeOpen(node);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
_this.setState({
|
|
375
|
+
alreadyOpenedIds: alreadyOpenedIds
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
});
|
|
351
379
|
Object.defineProperty(_assertThisInitialized(_this), "handleCheck", {
|
|
352
380
|
configurable: true,
|
|
353
381
|
enumerable: true,
|
|
@@ -443,7 +471,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
443
471
|
nodeElementsValidations = _this$props3.nodeElementsValidations,
|
|
444
472
|
nodeToolbarElements = _this$props3.nodeToolbarElements,
|
|
445
473
|
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
|
|
446
|
-
|
|
474
|
+
alwaysShowArrow = _this$props3.alwaysShowArrow;
|
|
447
475
|
var childrenIds = [];
|
|
448
476
|
|
|
449
477
|
if (node.itens && node.itens.length > 0) {
|
|
@@ -461,6 +489,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
461
489
|
return /*#__PURE__*/_react["default"].createElement(_Node["default"], {
|
|
462
490
|
key: "node-".concat(node.id),
|
|
463
491
|
node: node,
|
|
492
|
+
alwaysShowArrow: alwaysShowArrow,
|
|
464
493
|
childrenIds: childrenIds,
|
|
465
494
|
isParent: node.itens && node.itens.length > 0,
|
|
466
495
|
parentId: parentId,
|
|
@@ -469,7 +498,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
469
498
|
nodeElementsValidations: nodeElementsValidations,
|
|
470
499
|
nodeMenuButtonSize: nodeMenuButtonSize,
|
|
471
500
|
onNodeClick: onNodeClick,
|
|
472
|
-
|
|
501
|
+
handlerOnNodeOpen: _this.handleOnNodeOpen
|
|
473
502
|
}, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
|
|
474
503
|
return _this.buildTree(nodeitem, node.id, ids);
|
|
475
504
|
}));
|
|
@@ -481,7 +510,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
481
510
|
propSelectedIds: _this.props.selectedIds,
|
|
482
511
|
selectedIds: _this.props.selectedIds,
|
|
483
512
|
isHandlingSelectedIds: false,
|
|
484
|
-
requiredParentsIds: []
|
|
513
|
+
requiredParentsIds: [],
|
|
514
|
+
alreadyOpenedIds: []
|
|
485
515
|
};
|
|
486
516
|
return _this;
|
|
487
517
|
}
|
|
@@ -521,25 +551,6 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
521
551
|
className: "treeviewcontainer ".concat(bordered && '-bordered')
|
|
522
552
|
}, this.buildTree(data))));
|
|
523
553
|
}
|
|
524
|
-
}], [{
|
|
525
|
-
key: "getDerivedStateFromProps",
|
|
526
|
-
value: function getDerivedStateFromProps(props, state) {
|
|
527
|
-
var data = props.data,
|
|
528
|
-
selectedIds = props.selectedIds;
|
|
529
|
-
var propSelectedIds = state.propSelectedIds;
|
|
530
|
-
|
|
531
|
-
var isSameSelectedIds = _lodash["default"].isEqual(propSelectedIds.sort(), selectedIds.sort());
|
|
532
|
-
|
|
533
|
-
if (data !== state.data || !isSameSelectedIds) {
|
|
534
|
-
return {
|
|
535
|
-
data: data,
|
|
536
|
-
selectedIds: selectedIds,
|
|
537
|
-
propSelectedIds: selectedIds
|
|
538
|
-
};
|
|
539
|
-
}
|
|
540
|
-
|
|
541
|
-
return null;
|
|
542
|
-
}
|
|
543
554
|
}]);
|
|
544
555
|
|
|
545
556
|
return TreeView;
|
|
@@ -553,6 +564,7 @@ TreeView.propTypes = {
|
|
|
553
564
|
labelPropName: _propTypes["default"].string.isRequired,
|
|
554
565
|
parentPropName: _propTypes["default"].string.isRequired,
|
|
555
566
|
startNodesOpened: _propTypes["default"].bool,
|
|
567
|
+
alwaysShowArrow: _propTypes["default"].bool,
|
|
556
568
|
selectedIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
557
569
|
requiredIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
558
570
|
showCheckBox: _propTypes["default"].bool,
|
|
@@ -573,6 +585,7 @@ TreeView.defaultProps = {
|
|
|
573
585
|
customClass: '',
|
|
574
586
|
bordered: false,
|
|
575
587
|
startNodesOpened: false,
|
|
588
|
+
alwaysShowArrow: false,
|
|
576
589
|
selectedIds: [],
|
|
577
590
|
requiredIds: [],
|
|
578
591
|
showCheckBox: false,
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = require("@testing-library/react");
|
|
4
|
+
|
|
5
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
require("@testing-library/jest-dom");
|
|
8
|
+
|
|
9
|
+
require("babel-polyfill");
|
|
10
|
+
|
|
11
|
+
var _ = _interopRequireDefault(require("."));
|
|
12
|
+
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
|
+
|
|
15
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
16
|
+
|
|
17
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
18
|
+
|
|
19
|
+
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); }
|
|
20
|
+
|
|
21
|
+
var dataMock = {
|
|
22
|
+
id: 1,
|
|
23
|
+
titulo: 'SG Linear',
|
|
24
|
+
codigo: 'SG_Linear',
|
|
25
|
+
permissoes: [{
|
|
26
|
+
codigo: 'ACESSO'
|
|
27
|
+
}, {
|
|
28
|
+
codigo: 'GRAVAR'
|
|
29
|
+
}],
|
|
30
|
+
itens: [{
|
|
31
|
+
id: 2,
|
|
32
|
+
titulo: 'Segurança',
|
|
33
|
+
codigo: 'seguranca',
|
|
34
|
+
permissoes: [{
|
|
35
|
+
codigo: 'ACESSO'
|
|
36
|
+
}, {
|
|
37
|
+
codigo: 'GRAVAR'
|
|
38
|
+
}],
|
|
39
|
+
itens: [{
|
|
40
|
+
id: 4,
|
|
41
|
+
titulo: 'Perfis',
|
|
42
|
+
codigo: 'perfis',
|
|
43
|
+
itens: [{
|
|
44
|
+
titulo: 'Editar',
|
|
45
|
+
codigo: 'Editar',
|
|
46
|
+
itens: [{
|
|
47
|
+
titulo: 'Editar permissão ERP',
|
|
48
|
+
codigo: 'Editar permissão ERP'
|
|
49
|
+
}]
|
|
50
|
+
}]
|
|
51
|
+
}]
|
|
52
|
+
}, {
|
|
53
|
+
id: 3,
|
|
54
|
+
titulo: 'Cadastros',
|
|
55
|
+
codigo: 'cadastros',
|
|
56
|
+
permissoes: [{
|
|
57
|
+
codigo: 'ACESSO'
|
|
58
|
+
}, {
|
|
59
|
+
codigo: 'GRAVAR'
|
|
60
|
+
}],
|
|
61
|
+
itens: [{
|
|
62
|
+
id: 5,
|
|
63
|
+
titulo: 'Empresas',
|
|
64
|
+
codigo: 'empresas'
|
|
65
|
+
}]
|
|
66
|
+
}]
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var treeviewRenderMock = function treeviewRenderMock(props) {
|
|
70
|
+
return /*#__PURE__*/_react2["default"].createElement(_["default"], _extends({
|
|
71
|
+
data: dataMock,
|
|
72
|
+
valuePropName: "id",
|
|
73
|
+
labelPropName: "titulo",
|
|
74
|
+
parentPropName: "0"
|
|
75
|
+
}, props));
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
describe('Treeview', function () {
|
|
79
|
+
describe('Default', function () {
|
|
80
|
+
it('should render', function () {
|
|
81
|
+
var _render = (0, _react.render)(treeviewRenderMock()),
|
|
82
|
+
container = _render.container;
|
|
83
|
+
|
|
84
|
+
expect(container.firstChild).toBeTruthy();
|
|
85
|
+
});
|
|
86
|
+
it('should have start node visible', function () {
|
|
87
|
+
var _render2 = (0, _react.render)(treeviewRenderMock()),
|
|
88
|
+
queryByText = _render2.queryByText;
|
|
89
|
+
|
|
90
|
+
expect(queryByText(dataMock.titulo)).toBeTruthy();
|
|
91
|
+
});
|
|
92
|
+
it('should not have second node visible', function () {
|
|
93
|
+
var _render3 = (0, _react.render)(treeviewRenderMock()),
|
|
94
|
+
queryByText = _render3.queryByText;
|
|
95
|
+
|
|
96
|
+
expect(queryByText(dataMock.itens[0].titulo)).not.toBeTruthy();
|
|
97
|
+
});
|
|
98
|
+
it('should open on click', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
99
|
+
var _render4, queryByText, getByRole;
|
|
100
|
+
|
|
101
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
102
|
+
while (1) {
|
|
103
|
+
switch (_context.prev = _context.next) {
|
|
104
|
+
case 0:
|
|
105
|
+
_render4 = (0, _react.render)(treeviewRenderMock()), queryByText = _render4.queryByText, getByRole = _render4.getByRole;
|
|
106
|
+
|
|
107
|
+
_react.fireEvent.click(getByRole('button'));
|
|
108
|
+
|
|
109
|
+
_context.next = 4;
|
|
110
|
+
return (0, _react.waitFor)(function () {
|
|
111
|
+
return queryByText(dataMock.itens[0].titulo);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
case 4:
|
|
115
|
+
expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
|
|
116
|
+
expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
|
|
117
|
+
|
|
118
|
+
case 6:
|
|
119
|
+
case "end":
|
|
120
|
+
return _context.stop();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}, _callee);
|
|
124
|
+
})));
|
|
125
|
+
it('should open all layers', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
126
|
+
var _render5, queryByText, getByRole, queryAllByRole;
|
|
127
|
+
|
|
128
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
129
|
+
while (1) {
|
|
130
|
+
switch (_context2.prev = _context2.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
_render5 = (0, _react.render)(treeviewRenderMock()), queryByText = _render5.queryByText, getByRole = _render5.getByRole, queryAllByRole = _render5.queryAllByRole;
|
|
133
|
+
|
|
134
|
+
_react.fireEvent.click(getByRole('button'));
|
|
135
|
+
|
|
136
|
+
_context2.next = 4;
|
|
137
|
+
return (0, _react.waitFor)(function () {
|
|
138
|
+
return queryByText(dataMock.itens[0].titulo);
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
case 4:
|
|
142
|
+
_react.fireEvent.click(queryAllByRole('button')[1]);
|
|
143
|
+
|
|
144
|
+
_context2.next = 7;
|
|
145
|
+
return (0, _react.waitFor)(function () {
|
|
146
|
+
return queryByText(dataMock.itens[0].itens[0].titulo);
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
case 7:
|
|
150
|
+
_react.fireEvent.click(queryAllByRole('button')[2]);
|
|
151
|
+
|
|
152
|
+
_context2.next = 10;
|
|
153
|
+
return (0, _react.waitFor)(function () {
|
|
154
|
+
return queryByText(dataMock.itens[0].itens[0].itens[0].titulo);
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
case 10:
|
|
158
|
+
_react.fireEvent.click(queryAllByRole('button')[3]);
|
|
159
|
+
|
|
160
|
+
_context2.next = 13;
|
|
161
|
+
return (0, _react.waitFor)(function () {
|
|
162
|
+
return queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
case 13:
|
|
166
|
+
_react.fireEvent.click(queryAllByRole('button')[4]);
|
|
167
|
+
|
|
168
|
+
_context2.next = 16;
|
|
169
|
+
return (0, _react.waitFor)(function () {
|
|
170
|
+
return queryByText(dataMock.itens[1].itens[0].titulo);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
case 16:
|
|
174
|
+
expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
|
|
175
|
+
expect(queryByText(dataMock.itens[0].itens[0].titulo)).toBeTruthy();
|
|
176
|
+
expect(queryByText(dataMock.itens[0].itens[0].itens[0].titulo)).toBeTruthy();
|
|
177
|
+
expect(queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo)).toBeTruthy();
|
|
178
|
+
expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
|
|
179
|
+
expect(queryByText(dataMock.itens[1].itens[0].titulo)).toBeTruthy();
|
|
180
|
+
|
|
181
|
+
case 22:
|
|
182
|
+
case "end":
|
|
183
|
+
return _context2.stop();
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}, _callee2);
|
|
187
|
+
})));
|
|
188
|
+
it('should render checkbox', function () {
|
|
189
|
+
var _render6 = (0, _react.render)(treeviewRenderMock({
|
|
190
|
+
showCheckBox: true
|
|
191
|
+
})),
|
|
192
|
+
container = _render6.container;
|
|
193
|
+
|
|
194
|
+
expect(container.querySelector('.checkbox-component')).toBeTruthy();
|
|
195
|
+
});
|
|
196
|
+
it('should call onSelectedIdsChange callback', function () {
|
|
197
|
+
var mockCallback = jest.fn(function (x) {
|
|
198
|
+
return x;
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
var _render7 = (0, _react.render)(treeviewRenderMock({
|
|
202
|
+
showCheckBox: true,
|
|
203
|
+
onSelectedIdsChange: mockCallback
|
|
204
|
+
})),
|
|
205
|
+
container = _render7.container;
|
|
206
|
+
|
|
207
|
+
_react.fireEvent.click(container.querySelector('.checkbox-component'));
|
|
208
|
+
|
|
209
|
+
expect(mockCallback.mock.calls.length).toBe(1);
|
|
210
|
+
expect(mockCallback.mock.calls[0][0]).toStrictEqual([1]);
|
|
211
|
+
});
|
|
212
|
+
it('should control checkbox by selectedIds', function () {
|
|
213
|
+
var _render8 = (0, _react.render)(treeviewRenderMock({
|
|
214
|
+
showCheckBox: true,
|
|
215
|
+
selectedIds: [1]
|
|
216
|
+
})),
|
|
217
|
+
container = _render8.container;
|
|
218
|
+
|
|
219
|
+
expect(container.querySelector('input.checkbox-component')).toBeChecked();
|
|
220
|
+
});
|
|
221
|
+
it('should start checkbox unchecked', function () {
|
|
222
|
+
var _render9 = (0, _react.render)(treeviewRenderMock({
|
|
223
|
+
showCheckBox: true
|
|
224
|
+
})),
|
|
225
|
+
container = _render9.container;
|
|
226
|
+
|
|
227
|
+
expect(container.querySelector('input.checkbox-component')).not.toBeChecked();
|
|
228
|
+
});
|
|
229
|
+
it('should start nodes open', function () {
|
|
230
|
+
var _render10 = (0, _react.render)(treeviewRenderMock({
|
|
231
|
+
startNodesOpened: true
|
|
232
|
+
})),
|
|
233
|
+
queryByText = _render10.queryByText;
|
|
234
|
+
|
|
235
|
+
expect(queryByText(dataMock.itens[0].titulo)).toBeTruthy();
|
|
236
|
+
expect(queryByText(dataMock.itens[0].itens[0].titulo)).toBeTruthy();
|
|
237
|
+
expect(queryByText(dataMock.itens[0].itens[0].itens[0].titulo)).toBeTruthy();
|
|
238
|
+
expect(queryByText(dataMock.itens[0].itens[0].itens[0].itens[0].titulo)).toBeTruthy();
|
|
239
|
+
expect(queryByText(dataMock.itens[1].titulo)).toBeTruthy();
|
|
240
|
+
expect(queryByText(dataMock.itens[1].itens[0].titulo)).toBeTruthy();
|
|
241
|
+
});
|
|
242
|
+
it('should apply customClass', function () {
|
|
243
|
+
var _render11 = (0, _react.render)(treeviewRenderMock({
|
|
244
|
+
customClass: 'customClass'
|
|
245
|
+
})),
|
|
246
|
+
container = _render11.container;
|
|
247
|
+
|
|
248
|
+
expect(container.firstChild).toHaveClass('customClass');
|
|
249
|
+
});
|
|
250
|
+
it('should apply style', function () {
|
|
251
|
+
var _render12 = (0, _react.render)(treeviewRenderMock({
|
|
252
|
+
styleForContainer: {
|
|
253
|
+
backgroundColor: '#000'
|
|
254
|
+
}
|
|
255
|
+
})),
|
|
256
|
+
container = _render12.container;
|
|
257
|
+
|
|
258
|
+
expect(container.querySelector('ul')).toHaveStyle('background-color: #000');
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linear-react-components-ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.76-beta.1",
|
|
4
4
|
"description": "Linear Sistemas ReactJs Components",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -11,15 +11,19 @@
|
|
|
11
11
|
"check:js": "./node_modules/.bin/eslint ./src/* --ext .js, --ext .jsx",
|
|
12
12
|
"deploy:heroku": "npm run demo:prod && cd demo && git commit -am 'Deploy' && git push heroku master",
|
|
13
13
|
"publish:npm": "npm run lib && npm publish",
|
|
14
|
-
"
|
|
14
|
+
"publish:npm:beta": "npm run lib && npm publish --tag beta",
|
|
15
|
+
"prepare": "husky install",
|
|
16
|
+
"test": "jest --env=jsdom",
|
|
17
|
+
"test:watch": "jest --watchAll --env=jsdom",
|
|
18
|
+
"test:coverage": "jest --coverage --colors --env=jsdom"
|
|
15
19
|
},
|
|
16
20
|
"keywords": [],
|
|
17
21
|
"license": "MIT",
|
|
18
22
|
"peerDependencies": {
|
|
19
|
-
"react": "^
|
|
20
|
-
"react-dom": "^
|
|
21
|
-
"react-router-dom": "^
|
|
22
|
-
"react-transition-group": "^
|
|
23
|
+
"react": "^17.0.2",
|
|
24
|
+
"react-dom": "^17.0.2",
|
|
25
|
+
"react-router-dom": "^5.2.0",
|
|
26
|
+
"react-transition-group": "^4.4.2"
|
|
23
27
|
},
|
|
24
28
|
"devDependencies": {
|
|
25
29
|
"@babel/cli": "^7.5.5",
|
|
@@ -28,8 +32,12 @@
|
|
|
28
32
|
"@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.36",
|
|
29
33
|
"@babel/preset-env": "^7.0.0-beta.36",
|
|
30
34
|
"@babel/preset-react": "^7.0.0-beta.36",
|
|
35
|
+
"@testing-library/jest-dom": "^5.14.1",
|
|
36
|
+
"@testing-library/react": "^12.0.0",
|
|
31
37
|
"babel-eslint": "^7.2.3",
|
|
38
|
+
"babel-jest": "^27.0.5",
|
|
32
39
|
"babel-loader": "^8.0.0-beta.0",
|
|
40
|
+
"babel-polyfill": "^6.26.0",
|
|
33
41
|
"css-loader": "^0.28.8",
|
|
34
42
|
"eslint": "4.18.0",
|
|
35
43
|
"eslint-config-airbnb": "16.1.0",
|
|
@@ -40,6 +48,8 @@
|
|
|
40
48
|
"file-loader": "^1.1.6",
|
|
41
49
|
"html-webpack-plugin": "^2.30.1",
|
|
42
50
|
"husky": "^6.0.0",
|
|
51
|
+
"identity-obj-proxy": "^3.0.0",
|
|
52
|
+
"jest": "^27.0.5",
|
|
43
53
|
"react": "^16.12.0",
|
|
44
54
|
"react-dom": "^16.12.0",
|
|
45
55
|
"react-router-dom": "^5.1.2",
|
|
@@ -56,11 +66,11 @@
|
|
|
56
66
|
},
|
|
57
67
|
"dependencies": {
|
|
58
68
|
"attach-dom-events": "^1.0.0",
|
|
59
|
-
"history": "^
|
|
69
|
+
"history": "^5.0.0",
|
|
60
70
|
"imask": "^3.1.1",
|
|
61
71
|
"init": "^0.1.2",
|
|
62
|
-
"lodash": "^4.17.
|
|
63
|
-
"moment": "^2.
|
|
72
|
+
"lodash": "^4.17.21",
|
|
73
|
+
"moment": "^2.29.1",
|
|
64
74
|
"node-sass": "^4.13.0",
|
|
65
75
|
"prop-types": "^15.7.2",
|
|
66
76
|
"react-syntax-highlighter": "^6.1.1",
|