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.
Files changed (124) hide show
  1. package/.eslintrc.js +2 -5
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +8 -9
  4. package/README.md +23 -0
  5. package/config/jest/cssTransform.js +14 -0
  6. package/config/jest/fileTransform.js +12 -0
  7. package/config/jest/storageMock.js +40 -0
  8. package/jest.config.js +18 -0
  9. package/lib/alerts/alert.spec.js +133 -0
  10. package/lib/assets/styles/dropdown.scss +25 -2
  11. package/lib/assets/styles/effects.scss +12 -0
  12. package/lib/assets/styles/floatMenu.scss +0 -1
  13. package/lib/assets/styles/multiSelect.scss +105 -0
  14. package/lib/assets/styles/panel.scss +0 -1
  15. package/lib/assets/styles/periodpicker.scss +65 -0
  16. package/lib/assets/styles/popover.scss +9 -11
  17. package/lib/assets/styles/progress.scss +8 -1
  18. package/lib/assets/styles/select.scss +1 -0
  19. package/lib/assets/styles/table.scss +13 -5
  20. package/lib/assets/styles/tabs.scss +77 -43
  21. package/lib/avatar/avatar.spec.js +190 -0
  22. package/lib/avatar/index.js +6 -2
  23. package/lib/badge/badge.spec.js +127 -0
  24. package/lib/badge/index.js +3 -5
  25. package/lib/buttons/buttons.spec.js +504 -0
  26. package/lib/calendar/calendar.spec.js +171 -0
  27. package/lib/checkbox/checkbox.spec.js +215 -0
  28. package/lib/checkbox/index.js +1 -0
  29. package/lib/dialog/Custom.js +7 -1
  30. package/lib/dialog/base/index.js +18 -6
  31. package/lib/dialog/dialog.spec.js +488 -0
  32. package/lib/dialog/form/index.js +23 -4
  33. package/lib/drawer/Drawer.js +3 -0
  34. package/lib/drawer/Drawer.spec.js +258 -0
  35. package/lib/drawer/Header.js +4 -1
  36. package/lib/drawer/index.js +4 -1
  37. package/lib/dropdown/Popup.js +1 -0
  38. package/lib/dropdown/dropdown.spec.js +168 -0
  39. package/lib/dropdown/withDropdown.js +10 -4
  40. package/lib/fieldset/fieldset.spec.js +329 -0
  41. package/lib/form/Field.js +2 -0
  42. package/lib/form/FieldNumber.js +10 -2
  43. package/lib/form/FieldPeriod.js +100 -0
  44. package/lib/form/form.spec.js +285 -0
  45. package/lib/form/helpers.js +9 -1
  46. package/lib/form/index.js +76 -10
  47. package/lib/form/withFieldHOC.js +2 -0
  48. package/lib/form/withFormSecurity.js +106 -0
  49. package/lib/gridlayout/GridRow.js +1 -1
  50. package/lib/gridlayout/gridLayout.spec.js +169 -0
  51. package/lib/icons/helper.js +16 -0
  52. package/lib/icons/icons.spec.js +86 -0
  53. package/lib/icons/index.js +2 -0
  54. package/lib/inputs/base/InputTextBase.js +15 -5
  55. package/lib/inputs/base/base.spec.js +690 -0
  56. package/lib/inputs/color/color_input.spec.js +174 -0
  57. package/lib/inputs/color/index.js +2 -2
  58. package/lib/inputs/date/date.spec.js +344 -0
  59. package/lib/inputs/date/index.js +7 -6
  60. package/lib/inputs/mask/Cpf.js +9 -9
  61. package/lib/inputs/mask/input_mask.spec.js +590 -0
  62. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  63. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  64. package/lib/inputs/multiSelect/helper.js +18 -0
  65. package/lib/inputs/multiSelect/index.js +343 -0
  66. package/lib/inputs/number/BaseNumber.js +1 -1
  67. package/lib/inputs/number/index.js +7 -5
  68. package/lib/inputs/number/numberfield.spec.js +215 -0
  69. package/lib/inputs/period/Dialog.js +38 -0
  70. package/lib/inputs/period/Dropdown.js +90 -0
  71. package/lib/inputs/period/PeriodList.js +79 -0
  72. package/lib/inputs/period/helper.js +118 -0
  73. package/lib/inputs/period/index.js +490 -0
  74. package/lib/inputs/search/search_input.spec.js +209 -0
  75. package/lib/inputs/select/Dropdown.js +4 -4
  76. package/lib/inputs/select/index.js +26 -3
  77. package/lib/inputs/select/multiple/index.js +9 -7
  78. package/lib/inputs/select/select.spec.js +391 -0
  79. package/lib/inputs/select/simple/index.js +30 -18
  80. package/lib/inputs/text/textfield.spec.js +215 -0
  81. package/lib/inputs/textarea/textarea.spec.js +59 -0
  82. package/lib/internals/withTooltip.js +83 -82
  83. package/lib/labelMessages/index.js +3 -2
  84. package/lib/labelMessages/labelMessages.spec.js +176 -0
  85. package/lib/labels/label.spec.js +162 -0
  86. package/lib/list/Item.js +3 -3
  87. package/lib/list/index.js +21 -10
  88. package/lib/list/list.spec.js +611 -0
  89. package/lib/menus/float/MenuItem.js +25 -8
  90. package/lib/menus/float/float-menu.spec.js +221 -0
  91. package/lib/menus/sidenav/index.js +7 -3
  92. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  93. package/lib/menus/sidenav/sidenav.spec.js +312 -0
  94. package/lib/noPermission/index.js +2 -1
  95. package/lib/panel/panel.spec.js +216 -0
  96. package/lib/popover/index.js +2 -1
  97. package/lib/popover/popover.spec.js +146 -0
  98. package/lib/progress/Bar.js +40 -9
  99. package/lib/progress/index.js +12 -4
  100. package/lib/progress/progress.spec.js +86 -0
  101. package/lib/radio/radio.spec.js +189 -0
  102. package/lib/spinner/SpinnerLoading.js +14 -24
  103. package/lib/spinner/index.js +6 -1
  104. package/lib/spinner/spinner.spec.js +152 -0
  105. package/lib/split/Split.js +10 -12
  106. package/lib/split/split.spec.js +151 -0
  107. package/lib/table/Header.js +3 -1
  108. package/lib/table/Row.js +2 -5
  109. package/lib/table/index.js +1 -4
  110. package/lib/table/table.spec.js +352 -0
  111. package/lib/tabs/DropdownItems.js +84 -0
  112. package/lib/tabs/Menu.js +18 -5
  113. package/lib/tabs/MenuItems.js +7 -7
  114. package/lib/tabs/Panel.js +1 -3
  115. package/lib/tabs/index.js +126 -17
  116. package/lib/tabs/tabs.spec.js +346 -0
  117. package/lib/toolbar/index.js +8 -4
  118. package/lib/toolbar/toolbar.spec.js +394 -0
  119. package/lib/tooltip/index.js +13 -0
  120. package/lib/tooltip/tooltip.spec.js +203 -0
  121. package/lib/treeview/Node.js +31 -27
  122. package/lib/treeview/index.js +35 -22
  123. package/lib/treeview/treeview.spec.js +261 -0
  124. package/package.json +19 -9
@@ -83,11 +83,13 @@ var TreeNode = /*#__PURE__*/function (_Component) {
83
83
  enumerable: true,
84
84
  writable: true,
85
85
  value: function value() {
86
- var node = _this.props.node;
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 onNodeOpen = _this.props.onNodeOpen;
118
+ var handlerOnNodeOpen = _this.props.handlerOnNodeOpen;
117
119
  var nextState = {
118
120
  isVisible: !isVisible
119
121
  };
120
122
 
121
- if (!wasOpened && onNodeOpen) {
123
+ if (!wasOpened && handlerOnNodeOpen) {
122
124
  nextState = _extends({}, nextState, {
123
125
  wasOpened: true
124
126
  });
125
- onNodeOpen(node);
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$props = _this.props,
154
- node = _this$props.node,
155
- nodeElementsValidations = _this$props.nodeElementsValidations;
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$props2 = _this.props,
235
- nodeElementsValidations = _this$props2.nodeElementsValidations,
236
- node = _this$props2.node;
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$props3 = this.props,
276
- isParent = _this$props3.isParent,
277
- nodeToolbarElements = _this$props3.nodeToolbarElements,
278
- nodeRightElements = _this$props3.nodeRightElements;
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$props4 = this.props,
289
- isParent = _this$props4.isParent,
290
- nodeToolbarElements = _this$props4.nodeToolbarElements,
291
- nodeRightElements = _this$props4.nodeRightElements;
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$props5 = this.props,
304
- node = _this$props5.node,
305
- children = _this$props5.children,
306
- isParent = _this$props5.isParent,
307
- onNodeClick = _this$props5.onNodeClick,
308
- nodeMenuButtonSize = _this$props5.nodeMenuButtonSize;
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
- onNodeOpen: _propTypes["default"].func,
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
- onNodeOpen: undefined,
417
+ handlerOnNodeOpen: undefined,
414
418
  nodeElementsValidations: undefined
415
419
  };
416
420
  TreeNode.contextType = _constants.TreeviewContext;
@@ -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
- onNodeOpen = _this$props3.onNodeOpen;
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
- onNodeOpen: onNodeOpen
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.75-beta.9",
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
- "prepare": "husky install"
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": "^16.6.0",
20
- "react-dom": "^16.6.0",
21
- "react-router-dom": "^4.2.2",
22
- "react-transition-group": "^2.2.1"
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": "^4.10.1",
69
+ "history": "^5.0.0",
60
70
  "imask": "^3.1.1",
61
71
  "init": "^0.1.2",
62
- "lodash": "^4.17.15",
63
- "moment": "^2.24.0",
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",