linear-react-components-ui 0.4.75-beta.8 → 0.4.76-beta.0
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 +33 -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 +84 -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 +55 -32
- package/lib/treeview/index.js +30 -3
- package/lib/treeview/treeview.spec.js +261 -0
- package/package.json +19 -9
- package/.DS_Store +0 -0
package/lib/treeview/Node.js
CHANGED
|
@@ -83,17 +83,21 @@ 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,
|
|
94
96
|
role: "button",
|
|
95
97
|
className: "opencloseicon",
|
|
96
|
-
onClick:
|
|
98
|
+
onClick: function onClick() {
|
|
99
|
+
return _this.openCloseTree(node);
|
|
100
|
+
}
|
|
97
101
|
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
98
102
|
name: _this.state.isVisible ? 'up' : 'down',
|
|
99
103
|
size: 10
|
|
@@ -107,10 +111,23 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
107
111
|
configurable: true,
|
|
108
112
|
enumerable: true,
|
|
109
113
|
writable: true,
|
|
110
|
-
value: function value() {
|
|
111
|
-
_this.
|
|
112
|
-
|
|
113
|
-
|
|
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);
|
|
114
131
|
}
|
|
115
132
|
});
|
|
116
133
|
Object.defineProperty(_assertThisInitialized(_this), "handleShowNodeElements", {
|
|
@@ -118,9 +135,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
118
135
|
enumerable: true,
|
|
119
136
|
writable: true,
|
|
120
137
|
value: function value() {
|
|
121
|
-
var _this$
|
|
122
|
-
showNodeElements = _this$
|
|
123
|
-
keepMenuOpened = _this$
|
|
138
|
+
var _this$state2 = _this.state,
|
|
139
|
+
showNodeElements = _this$state2.showNodeElements,
|
|
140
|
+
keepMenuOpened = _this$state2.keepMenuOpened;
|
|
124
141
|
if (!showNodeElements) _this.setState({
|
|
125
142
|
showNodeElements: true
|
|
126
143
|
});else if (showNodeElements && !keepMenuOpened) {
|
|
@@ -135,9 +152,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
135
152
|
enumerable: true,
|
|
136
153
|
writable: true,
|
|
137
154
|
value: function value(elements) {
|
|
138
|
-
var _this$
|
|
139
|
-
node = _this$
|
|
140
|
-
nodeElementsValidations = _this$
|
|
155
|
+
var _this$props2 = _this.props,
|
|
156
|
+
node = _this$props2.node,
|
|
157
|
+
nodeElementsValidations = _this$props2.nodeElementsValidations;
|
|
141
158
|
var updatedElements = [];
|
|
142
159
|
|
|
143
160
|
if (elements) {
|
|
@@ -155,8 +172,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
155
172
|
|
|
156
173
|
if (onNodeElementClick) {
|
|
157
174
|
newProps = _extends({}, newProps, {
|
|
158
|
-
onClick: function onClick() {
|
|
159
|
-
|
|
175
|
+
onClick: function onClick(e) {
|
|
176
|
+
onNodeElementClick(node);
|
|
177
|
+
if (e.stopPropagation) e.stopPropagation();
|
|
160
178
|
},
|
|
161
179
|
onNodeElementClick: null
|
|
162
180
|
});
|
|
@@ -215,9 +233,9 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
215
233
|
enumerable: true,
|
|
216
234
|
writable: true,
|
|
217
235
|
value: function value(validationKey) {
|
|
218
|
-
var _this$
|
|
219
|
-
nodeElementsValidations = _this$
|
|
220
|
-
node = _this$
|
|
236
|
+
var _this$props3 = _this.props,
|
|
237
|
+
nodeElementsValidations = _this$props3.nodeElementsValidations,
|
|
238
|
+
node = _this$props3.node;
|
|
221
239
|
var validations = nodeElementsValidations[validationKey];
|
|
222
240
|
var options = {
|
|
223
241
|
disabled: {
|
|
@@ -246,6 +264,7 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
246
264
|
_this.labelRef = /*#__PURE__*/_react["default"].createRef();
|
|
247
265
|
_this.state = {
|
|
248
266
|
isVisible: context.startNodesOpened,
|
|
267
|
+
wasOpened: context.startNodesOpened,
|
|
249
268
|
showNodeElements: false,
|
|
250
269
|
keepMenuOpened: false
|
|
251
270
|
};
|
|
@@ -255,10 +274,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
255
274
|
_createClass(TreeNode, [{
|
|
256
275
|
key: "componentDidMount",
|
|
257
276
|
value: function componentDidMount() {
|
|
258
|
-
var _this$
|
|
259
|
-
isParent = _this$
|
|
260
|
-
nodeToolbarElements = _this$
|
|
261
|
-
nodeRightElements = _this$
|
|
277
|
+
var _this$props4 = this.props,
|
|
278
|
+
isParent = _this$props4.isParent,
|
|
279
|
+
nodeToolbarElements = _this$props4.nodeToolbarElements,
|
|
280
|
+
nodeRightElements = _this$props4.nodeRightElements;
|
|
262
281
|
|
|
263
282
|
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
264
283
|
this.labelRef.current.addEventListener('mouseenter', this.handleShowNodeElements);
|
|
@@ -268,10 +287,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
268
287
|
}, {
|
|
269
288
|
key: "componentWillUnmount",
|
|
270
289
|
value: function componentWillUnmount() {
|
|
271
|
-
var _this$
|
|
272
|
-
isParent = _this$
|
|
273
|
-
nodeToolbarElements = _this$
|
|
274
|
-
nodeRightElements = _this$
|
|
290
|
+
var _this$props5 = this.props,
|
|
291
|
+
isParent = _this$props5.isParent,
|
|
292
|
+
nodeToolbarElements = _this$props5.nodeToolbarElements,
|
|
293
|
+
nodeRightElements = _this$props5.nodeRightElements;
|
|
275
294
|
|
|
276
295
|
if (isParent || nodeRightElements || nodeToolbarElements) {
|
|
277
296
|
this.labelRef.current.removeEventListener('mouseenter', this.handleShowNodeElements);
|
|
@@ -283,12 +302,12 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
283
302
|
value: function render() {
|
|
284
303
|
var _this2 = this;
|
|
285
304
|
|
|
286
|
-
var _this$
|
|
287
|
-
node = _this$
|
|
288
|
-
children = _this$
|
|
289
|
-
isParent = _this$
|
|
290
|
-
onNodeClick = _this$
|
|
291
|
-
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;
|
|
292
311
|
var showNodeElements = this.state.showNodeElements;
|
|
293
312
|
return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
|
|
294
313
|
var valuePropName = _ref.valuePropName,
|
|
@@ -377,10 +396,12 @@ TreeNode.propTypes = {
|
|
|
377
396
|
parentId: _propTypes["default"].number,
|
|
378
397
|
disabled: _propTypes["default"].bool,
|
|
379
398
|
isParent: _propTypes["default"].bool,
|
|
399
|
+
alwaysShowArrow: _propTypes["default"].bool,
|
|
380
400
|
nodeRightElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
381
401
|
nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
382
402
|
nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
|
|
383
403
|
onNodeClick: _propTypes["default"].func,
|
|
404
|
+
handlerOnNodeOpen: _propTypes["default"].func,
|
|
384
405
|
nodeElementsValidations: _propTypes["default"].object
|
|
385
406
|
};
|
|
386
407
|
TreeNode.defaultProps = {
|
|
@@ -388,10 +409,12 @@ TreeNode.defaultProps = {
|
|
|
388
409
|
parentId: undefined,
|
|
389
410
|
disabled: false,
|
|
390
411
|
isParent: false,
|
|
412
|
+
alwaysShowArrow: false,
|
|
391
413
|
nodeRightElements: undefined,
|
|
392
414
|
nodeToolbarElements: undefined,
|
|
393
415
|
nodeMenuButtonSize: 'small',
|
|
394
416
|
onNodeClick: undefined,
|
|
417
|
+
handlerOnNodeOpen: undefined,
|
|
395
418
|
nodeElementsValidations: undefined
|
|
396
419
|
};
|
|
397
420
|
TreeNode.contextType = _constants.TreeviewContext;
|
package/lib/treeview/index.js
CHANGED
|
@@ -348,6 +348,25 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
348
348
|
});
|
|
349
349
|
}
|
|
350
350
|
});
|
|
351
|
+
Object.defineProperty(_assertThisInitialized(_this), "handleOnNodeOpen", {
|
|
352
|
+
configurable: true,
|
|
353
|
+
enumerable: true,
|
|
354
|
+
writable: true,
|
|
355
|
+
value: function value(node) {
|
|
356
|
+
var id = node.id;
|
|
357
|
+
var onNodeOpen = _this.props.onNodeOpen;
|
|
358
|
+
var alreadyOpenedIds = _this.state.alreadyOpenedIds;
|
|
359
|
+
|
|
360
|
+
if (!alreadyOpenedIds.includes(id) && onNodeOpen) {
|
|
361
|
+
alreadyOpenedIds = [].concat(_toConsumableArray(alreadyOpenedIds), [id]);
|
|
362
|
+
onNodeOpen(node);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
_this.setState({
|
|
366
|
+
alreadyOpenedIds: alreadyOpenedIds
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
});
|
|
351
370
|
Object.defineProperty(_assertThisInitialized(_this), "handleCheck", {
|
|
352
371
|
configurable: true,
|
|
353
372
|
enumerable: true,
|
|
@@ -442,7 +461,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
442
461
|
onNodeClick = _this$props3.onNodeClick,
|
|
443
462
|
nodeElementsValidations = _this$props3.nodeElementsValidations,
|
|
444
463
|
nodeToolbarElements = _this$props3.nodeToolbarElements,
|
|
445
|
-
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize
|
|
464
|
+
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
|
|
465
|
+
alwaysShowArrow = _this$props3.alwaysShowArrow;
|
|
446
466
|
var childrenIds = [];
|
|
447
467
|
|
|
448
468
|
if (node.itens && node.itens.length > 0) {
|
|
@@ -460,6 +480,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
460
480
|
return /*#__PURE__*/_react["default"].createElement(_Node["default"], {
|
|
461
481
|
key: "node-".concat(node.id),
|
|
462
482
|
node: node,
|
|
483
|
+
alwaysShowArrow: alwaysShowArrow,
|
|
463
484
|
childrenIds: childrenIds,
|
|
464
485
|
isParent: node.itens && node.itens.length > 0,
|
|
465
486
|
parentId: parentId,
|
|
@@ -467,7 +488,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
467
488
|
nodeToolbarElements: nodeToolbarElements,
|
|
468
489
|
nodeElementsValidations: nodeElementsValidations,
|
|
469
490
|
nodeMenuButtonSize: nodeMenuButtonSize,
|
|
470
|
-
onNodeClick: onNodeClick
|
|
491
|
+
onNodeClick: onNodeClick,
|
|
492
|
+
handlerOnNodeOpen: _this.handleOnNodeOpen
|
|
471
493
|
}, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
|
|
472
494
|
return _this.buildTree(nodeitem, node.id, ids);
|
|
473
495
|
}));
|
|
@@ -479,7 +501,8 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
479
501
|
propSelectedIds: _this.props.selectedIds,
|
|
480
502
|
selectedIds: _this.props.selectedIds,
|
|
481
503
|
isHandlingSelectedIds: false,
|
|
482
|
-
requiredParentsIds: []
|
|
504
|
+
requiredParentsIds: [],
|
|
505
|
+
alreadyOpenedIds: []
|
|
483
506
|
};
|
|
484
507
|
return _this;
|
|
485
508
|
}
|
|
@@ -551,6 +574,7 @@ TreeView.propTypes = {
|
|
|
551
574
|
labelPropName: _propTypes["default"].string.isRequired,
|
|
552
575
|
parentPropName: _propTypes["default"].string.isRequired,
|
|
553
576
|
startNodesOpened: _propTypes["default"].bool,
|
|
577
|
+
alwaysShowArrow: _propTypes["default"].bool,
|
|
554
578
|
selectedIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
555
579
|
requiredIds: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
556
580
|
showCheckBox: _propTypes["default"].bool,
|
|
@@ -564,12 +588,14 @@ TreeView.propTypes = {
|
|
|
564
588
|
nodeToolbarElements: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].object), _propTypes["default"].element, _propTypes["default"].object]),
|
|
565
589
|
nodeMenuButtonSize: _propTypes["default"].oneOf(['mini', 'small', 'medium', 'large', 'default']),
|
|
566
590
|
onNodeClick: _propTypes["default"].func,
|
|
591
|
+
onNodeOpen: _propTypes["default"].func,
|
|
567
592
|
nodeElementsValidations: _propTypes["default"].object
|
|
568
593
|
};
|
|
569
594
|
TreeView.defaultProps = {
|
|
570
595
|
customClass: '',
|
|
571
596
|
bordered: false,
|
|
572
597
|
startNodesOpened: false,
|
|
598
|
+
alwaysShowArrow: false,
|
|
573
599
|
selectedIds: [],
|
|
574
600
|
requiredIds: [],
|
|
575
601
|
showCheckBox: false,
|
|
@@ -583,6 +609,7 @@ TreeView.defaultProps = {
|
|
|
583
609
|
nodeToolbarElements: undefined,
|
|
584
610
|
nodeMenuButtonSize: 'small',
|
|
585
611
|
onNodeClick: undefined,
|
|
612
|
+
onNodeOpen: undefined,
|
|
586
613
|
nodeElementsValidations: undefined
|
|
587
614
|
};
|
|
588
615
|
var _default = TreeView;
|
|
@@ -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.0",
|
|
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",
|
package/.DS_Store
DELETED
|
Binary file
|