linear-react-components-ui 0.4.77-beta.20 → 0.4.77-beta.22

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.
@@ -0,0 +1,155 @@
1
+ @import "commons.scss";
2
+ @import "colors.scss";
3
+ @import "effects.scss";
4
+
5
+ .table-container {
6
+ flex: 1;
7
+ overflow: auto;
8
+ margin-top: 1.5rem;
9
+ }
10
+
11
+ .table-content {
12
+ width: 100%;
13
+ height: auto;
14
+ border-collapse: collapse;
15
+ min-width: 600px;
16
+
17
+ padding: 2rem 2rem;
18
+
19
+ font-size: 1rem;
20
+
21
+ thead {
22
+ text-align: left;
23
+
24
+ th {
25
+ background-color: #23272f;
26
+ padding: 1rem;
27
+ text-align: left;
28
+ color: #f8f8f8;
29
+ font-size: 0.875rem;
30
+ line-height: 1.6;
31
+
32
+ &:first-child {
33
+ border-top-left-radius: 8px;
34
+ padding-left: 2.5rem;
35
+ }
36
+
37
+ &:last-child {
38
+ border-top-right-radius: 8px;
39
+ padding-right: 1.5rem;
40
+ }
41
+ }
42
+ }
43
+
44
+ tbody {
45
+ text-align: left;
46
+
47
+ td {
48
+ padding: 1rem;
49
+ border-top: 1px solid #8b8b8b;
50
+ border-bottom: 1px solid #8b8b8b;
51
+ }
52
+ }
53
+ }
54
+
55
+ // .button-expand-or-collapse-all {
56
+ // outline: 0;
57
+ // border: 0;
58
+
59
+ // padding: 1rem 2rem;
60
+
61
+ // font-size: 1rem;
62
+ // color: #f8f8f8;
63
+ // background-color: #23272f;
64
+
65
+ // border-radius: 6px;
66
+
67
+ // cursor: pointer;
68
+
69
+ // &:hover {
70
+ // filter: brightness(0.9);
71
+ // transition: filter 350ms;
72
+ // }
73
+
74
+ // &:focus {
75
+ // box-shadow: 0 0 0 2px #8b8b8b;
76
+ // transition: box-shadow 300ms;
77
+ // }
78
+ // }
79
+
80
+ .show-tr {
81
+ display: table-row;
82
+ }
83
+
84
+ .hidden-tr {
85
+ display: none;
86
+ }
87
+
88
+ .button-expand-tree {
89
+ display: flex;
90
+ align-items: center;
91
+ flex-direction: row;
92
+
93
+ gap: 0.875rem;
94
+ }
95
+
96
+ .text-first-column {
97
+ font-size: 1rem;
98
+ font-weight: 700;
99
+ }
100
+
101
+ .button-collapse {
102
+ width: 2rem;
103
+ height: 2rem;
104
+ font-size: 1.125rem;
105
+ outline: 0;
106
+ border: 0;
107
+ display: flex;
108
+ align-items: center;
109
+ flex-direction: column;
110
+ justify-content: center;
111
+ background-color: transparent;
112
+ color: #8b8b8b;
113
+ padding: 8px;
114
+ border-radius: 4px;
115
+
116
+ cursor: pointer;
117
+
118
+ &:hover {
119
+ background-color: rgba(0, 0, 0, 0.3);
120
+ transition: background-color 300ms;
121
+ }
122
+
123
+ &:focus {
124
+ box-shadow: 0 0 0 2px #8b8b8b;
125
+ transition: box-shadow 300ms;
126
+ }
127
+ }
128
+
129
+ .button-expand {
130
+ width: 2rem;
131
+ height: 2rem;
132
+ font-size: 1.125rem;
133
+ outline: 0;
134
+ border: 0;
135
+ display: flex;
136
+ align-items: center;
137
+ flex-direction: column;
138
+ justify-content: center;
139
+ background-color: transparent;
140
+ color: #8b8b8b;
141
+ padding: 8px;
142
+ border-radius: 4px;
143
+
144
+ cursor: pointer;
145
+
146
+ &:hover {
147
+ background-color: rgba(0, 0, 0, 0.3);
148
+ transition: background-color 300ms;
149
+ }
150
+
151
+ &:focus {
152
+ box-shadow: 0 0 0 2px #8b8b8b;
153
+ transition: box-shadow 300ms;
154
+ }
155
+ }
@@ -65,7 +65,8 @@ var formDialog = function formDialog(props) {
65
65
  label: "Adicionar"
66
66
  }), /*#__PURE__*/_react["default"].createElement(_buttons.CancelButton, {
67
67
  label: "Cancelar"
68
- })]
68
+ })],
69
+ content: /*#__PURE__*/_react["default"].createElement("p", null, "Modal Form Content")
69
70
  }, props), /*#__PURE__*/_react["default"].createElement("p", null, "Modal Form"));
70
71
  };
71
72
 
@@ -276,6 +277,12 @@ describe('Dialog', function () {
276
277
 
277
278
  expect(getByTestId(dialogTestId).querySelector('.footer')).not.toBeInTheDocument();
278
279
  });
280
+ it('should be content', function () {
281
+ var _render16 = (0, _react2.render)(formDialog()),
282
+ getByTestId = _render16.getByTestId;
283
+
284
+ expect(getByTestId(dialogTestId).querySelector('.dialog-content')).toHaveTextContent('Modal Form Content');
285
+ });
279
286
  });
280
287
  describe('Custom Dialog', function () {
281
288
  describe('Custom', function () {
@@ -293,41 +300,41 @@ describe('Dialog', function () {
293
300
  };
294
301
 
295
302
  it('should render correctly', function () {
296
- var _render16 = (0, _react2.render)(defaultDialogCustom()),
297
- getByTestId = _render16.getByTestId;
303
+ var _render17 = (0, _react2.render)(defaultDialogCustom()),
304
+ getByTestId = _render17.getByTestId;
298
305
 
299
306
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
300
307
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Custom');
301
308
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Custom!');
302
309
  });
303
310
  it('should render icon', function () {
304
- var _render17 = (0, _react2.render)(defaultDialogCustom()),
305
- getByTestId = _render17.getByTestId;
311
+ var _render18 = (0, _react2.render)(defaultDialogCustom()),
312
+ getByTestId = _render18.getByTestId;
306
313
 
307
314
  expect(getByTestId(dialogTestId)).toContainElement(getByTestId('icon'));
308
315
  });
309
316
  it('should render buttons', function () {
310
- var _render18 = (0, _react2.render)(defaultDialogCustom()),
311
- getByTestId = _render18.getByTestId;
317
+ var _render19 = (0, _react2.render)(defaultDialogCustom()),
318
+ getByTestId = _render19.getByTestId;
312
319
 
313
320
  expect(getByTestId(dialogTestId).querySelectorAll('.button-component').length).toBe(1);
314
321
  expect(getByTestId(dialogTestId).querySelectorAll('.button-component')[0]).toHaveTextContent('Salvar');
315
322
  });
316
323
  it('should apply width', function () {
317
- var _render19 = (0, _react2.render)(defaultDialogCustom({
324
+ var _render20 = (0, _react2.render)(defaultDialogCustom({
318
325
  width: '400px'
319
326
  })),
320
- getByTestId = _render19.getByTestId;
327
+ getByTestId = _render20.getByTestId;
321
328
 
322
329
  expect(getByTestId(dialogTestId).querySelector('.dialog-alert-wrapper')).toHaveStyle({
323
330
  width: '400px'
324
331
  });
325
332
  });
326
333
  it('should apply height', function () {
327
- var _render20 = (0, _react2.render)(defaultDialogCustom({
334
+ var _render21 = (0, _react2.render)(defaultDialogCustom({
328
335
  height: '400px'
329
336
  })),
330
- getByTestId = _render20.getByTestId;
337
+ getByTestId = _render21.getByTestId;
331
338
 
332
339
  expect(getByTestId(dialogTestId).querySelector('.dialog-alert-wrapper')).toHaveStyle({
333
340
  height: '400px'
@@ -346,16 +353,16 @@ describe('Dialog', function () {
346
353
  };
347
354
 
348
355
  it('should render correctly', function () {
349
- var _render21 = (0, _react2.render)(defaultDialogAlert()),
350
- getByTestId = _render21.getByTestId;
356
+ var _render22 = (0, _react2.render)(defaultDialogAlert()),
357
+ getByTestId = _render22.getByTestId;
351
358
 
352
359
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
353
360
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Alert');
354
361
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Alert!');
355
362
  });
356
363
  it('should fire event on confirm click', function () {
357
- var _render22 = (0, _react2.render)(defaultDialogAlert()),
358
- getByTestId = _render22.getByTestId;
364
+ var _render23 = (0, _react2.render)(defaultDialogAlert()),
365
+ getByTestId = _render23.getByTestId;
359
366
 
360
367
  _react2.fireEvent.click(getByTestId(dialogTestId).querySelector('.button-component.-primary'));
361
368
 
@@ -374,16 +381,16 @@ describe('Dialog', function () {
374
381
  };
375
382
 
376
383
  it('should render correctly', function () {
377
- var _render23 = (0, _react2.render)(defaultDialogError()),
378
- getByTestId = _render23.getByTestId;
384
+ var _render24 = (0, _react2.render)(defaultDialogError()),
385
+ getByTestId = _render24.getByTestId;
379
386
 
380
387
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
381
388
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Error');
382
389
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Error!');
383
390
  });
384
391
  it('should fire event on confirm click', function () {
385
- var _render24 = (0, _react2.render)(defaultDialogError()),
386
- getByTestId = _render24.getByTestId;
392
+ var _render25 = (0, _react2.render)(defaultDialogError()),
393
+ getByTestId = _render25.getByTestId;
387
394
 
388
395
  _react2.fireEvent.click(getByTestId(dialogTestId).querySelector('.button-component.-primary'));
389
396
 
@@ -402,16 +409,16 @@ describe('Dialog', function () {
402
409
  };
403
410
 
404
411
  it('should render correctly', function () {
405
- var _render25 = (0, _react2.render)(defaultDialogInformation()),
406
- getByTestId = _render25.getByTestId;
412
+ var _render26 = (0, _react2.render)(defaultDialogInformation()),
413
+ getByTestId = _render26.getByTestId;
407
414
 
408
415
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
409
416
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Information');
410
417
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Information!');
411
418
  });
412
419
  it('should fire event on confirm click', function () {
413
- var _render26 = (0, _react2.render)(defaultDialogInformation()),
414
- getByTestId = _render26.getByTestId;
420
+ var _render27 = (0, _react2.render)(defaultDialogInformation()),
421
+ getByTestId = _render27.getByTestId;
415
422
 
416
423
  _react2.fireEvent.click(getByTestId(dialogTestId).querySelector('.button-component.-primary'));
417
424
 
@@ -430,16 +437,16 @@ describe('Dialog', function () {
430
437
  };
431
438
 
432
439
  it('should render correctly', function () {
433
- var _render27 = (0, _react2.render)(defaultDialogWarning()),
434
- getByTestId = _render27.getByTestId;
440
+ var _render28 = (0, _react2.render)(defaultDialogWarning()),
441
+ getByTestId = _render28.getByTestId;
435
442
 
436
443
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
437
444
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Warning');
438
445
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Warning!');
439
446
  });
440
447
  it('should fire event on confirm click', function () {
441
- var _render28 = (0, _react2.render)(defaultDialogWarning()),
442
- getByTestId = _render28.getByTestId;
448
+ var _render29 = (0, _react2.render)(defaultDialogWarning()),
449
+ getByTestId = _render29.getByTestId;
443
450
 
444
451
  _react2.fireEvent.click(getByTestId(dialogTestId).querySelector('.button-component.-primary'));
445
452
 
@@ -460,24 +467,24 @@ describe('Dialog', function () {
460
467
  };
461
468
 
462
469
  it('should render correctly', function () {
463
- var _render29 = (0, _react2.render)(defaultDialogQuestion()),
464
- getByTestId = _render29.getByTestId;
470
+ var _render30 = (0, _react2.render)(defaultDialogQuestion()),
471
+ getByTestId = _render30.getByTestId;
465
472
 
466
473
  expect(getByTestId(dialogTestId)).toBeInTheDocument();
467
474
  expect(getByTestId(dialogTestId).querySelector('.container .title')).toHaveTextContent('Question');
468
475
  expect(getByTestId(dialogTestId).querySelector('.container .text')).toHaveTextContent('Mensagem de Teste Question!');
469
476
  });
470
477
  it('should fire event on confirm click', function () {
471
- var _render30 = (0, _react2.render)(defaultDialogQuestion()),
472
- getByTestId = _render30.getByTestId;
478
+ var _render31 = (0, _react2.render)(defaultDialogQuestion()),
479
+ getByTestId = _render31.getByTestId;
473
480
 
474
481
  _react2.fireEvent.click(getByTestId(dialogTestId).querySelector('.button-component.-danger'));
475
482
 
476
483
  expect(mockOnConfirmClick).toBeCalledTimes(1);
477
484
  });
478
485
  it('should fire event on unconfirm click', function () {
479
- var _render31 = (0, _react2.render)(defaultDialogQuestion()),
480
- getByText = _render31.getByText;
486
+ var _render32 = (0, _react2.render)(defaultDialogQuestion()),
487
+ getByText = _render32.getByText;
481
488
 
482
489
  _react2.fireEvent.click(getByText('Não'));
483
490
 
@@ -37,7 +37,8 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
37
37
 
38
38
  var ModalForm = function ModalForm(props) {
39
39
  var styleForContent = props.styleForContent,
40
- isWaiting = props.isWaiting;
40
+ isWaiting = props.isWaiting,
41
+ content = props.content;
41
42
  var overlayStyle = isWaiting ? {
42
43
  opacity: 0.4,
43
44
  pointerEvent: 'none'
@@ -60,7 +61,7 @@ var ModalForm = function ModalForm(props) {
60
61
  className: "header-form"
61
62
  }, /*#__PURE__*/_react["default"].createElement(_Header["default"], props)), /*#__PURE__*/_react["default"].createElement(_Content["default"], {
62
63
  styleForContent: _extends({}, styleForContent, overlayStyle)
63
- }, props.children), getSpinner(), props.showFooter && /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement(_index.ButtonContainer, _extends({}, props, {
64
+ }, content || props.children), getSpinner(), props.showFooter && /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement(_index.ButtonContainer, _extends({}, props, {
64
65
  style: _extends({}, overlayStyle)
65
66
  }), props.buttons.map(function (button) {
66
67
  if (context && context.securityBeforeUnload && button && button.type && button.type.name === 'CancelButton') {
@@ -85,7 +86,8 @@ ModalForm.propTypes = {
85
86
  showFooter: _propTypes["default"].bool,
86
87
  buttons: _propTypes["default"].any.isRequired,
87
88
  isWaiting: _propTypes["default"].bool,
88
- handlerClose: _propTypes["default"].func
89
+ handlerClose: _propTypes["default"].func,
90
+ content: _propTypes["default"].any
89
91
  };
90
92
  ModalForm.defaultProps = {
91
93
  title: '',
@@ -94,7 +96,8 @@ ModalForm.defaultProps = {
94
96
  styleForContent: {},
95
97
  showFooter: true,
96
98
  isWaiting: false,
97
- handlerClose: undefined
99
+ handlerClose: undefined,
100
+ content: undefined
98
101
  };
99
102
 
100
103
  var _default = (0, _withFormSecurity["default"])(ModalForm);
@@ -17,12 +17,16 @@ var _helpers = _interopRequireDefault(require("./helpers"));
17
17
 
18
18
  var _permissionValidations = require("../permissionValidations");
19
19
 
20
+ var _ = require(".");
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
23
 
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
25
 
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
27
 
28
+ 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); }
29
+
26
30
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
27
31
 
28
32
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -46,7 +50,10 @@ var BaseDrawer = function BaseDrawer(props) {
46
50
  overlay = props.overlay,
47
51
  handlerClose = props.handlerClose,
48
52
  permissionAttr = props.permissionAttr,
49
- skeletonize = props.skeletonize;
53
+ skeletonize = props.skeletonize,
54
+ title = props.title,
55
+ customClassForDrawer = props.customClassForDrawer,
56
+ content = props.content;
50
57
  var drawerContainerEl = (0, _react.useRef)(document.createElement('div'));
51
58
  drawerContainerEl.current.className = 'drawercontainer';
52
59
  var drawerComponentEl = (0, _react.useRef)();
@@ -125,7 +132,9 @@ var BaseDrawer = function BaseDrawer(props) {
125
132
  }, /*#__PURE__*/_react["default"].createElement("div", {
126
133
  "data-testid": "drawercontent",
127
134
  className: "drawercontent ".concat(skeletonize ? '-skeletonized' : '', " ").concat(customClassForContent)
128
- }, children)));
135
+ }, title && /*#__PURE__*/_react["default"].createElement(_.DrawerHeader, _extends({}, props, {
136
+ customClass: customClassForDrawer
137
+ })), content ? /*#__PURE__*/_react["default"].createElement(_.DrawerContent, null, content) : children)));
129
138
  };
130
139
 
131
140
  return /*#__PURE__*/_reactDom["default"].createPortal(drawerContent(), drawerContainerEl.current);
@@ -133,16 +142,21 @@ var BaseDrawer = function BaseDrawer(props) {
133
142
 
134
143
  BaseDrawer.propTypes = {
135
144
  overlay: _propTypes["default"].bool,
136
- children: _propTypes["default"].arrayOf(_propTypes["default"].object).isRequired,
145
+ children: _propTypes["default"].node,
137
146
  customClass: _propTypes["default"].string,
138
147
  customClassForContent: _propTypes["default"].string,
148
+ customClassForDrawer: _propTypes["default"].string,
139
149
  position: _propTypes["default"].string,
140
150
  style: _propTypes["default"].object,
141
151
  handlerClose: _propTypes["default"].func,
142
152
  closeOnEsc: _propTypes["default"].bool,
143
153
  targetId: _propTypes["default"].string,
144
154
  permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
145
- skeletonize: _propTypes["default"].bool
155
+ skeletonize: _propTypes["default"].bool,
156
+ title: _propTypes["default"].string,
157
+ subTitle: _propTypes["default"].string,
158
+ showCloseButton: _propTypes["default"].bool,
159
+ content: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string])
146
160
  };
147
161
  BaseDrawer.defaultProps = {
148
162
  overlay: false,
@@ -150,11 +164,17 @@ BaseDrawer.defaultProps = {
150
164
  position: 'left',
151
165
  customClass: '',
152
166
  customClassForContent: '',
167
+ customClassForDrawer: '',
153
168
  handlerClose: undefined,
154
169
  closeOnEsc: false,
155
170
  targetId: undefined,
156
171
  permissionAttr: undefined,
157
- skeletonize: false
172
+ skeletonize: false,
173
+ title: '',
174
+ subTitle: '',
175
+ showCloseButton: false,
176
+ content: null,
177
+ children: null
158
178
  };
159
179
  var _default = BaseDrawer;
160
180
  exports["default"] = _default;
@@ -53,6 +53,20 @@ var drawerMock = function drawerMock(drawerProps, drawerHeaderProps) {
53
53
  }, "DrawerContent", /*#__PURE__*/_react["default"].createElement(_avatar["default"], null)));
54
54
  };
55
55
 
56
+ var drawerRenderHeaderContentMock = function drawerRenderHeaderContentMock() {
57
+ return /*#__PURE__*/_react["default"].createElement(_["default"], {
58
+ position: "right",
59
+ title: "teste",
60
+ customClass: "customMockClass",
61
+ customClassForDrawer: "CustomForDrawerMockClass",
62
+ style: {
63
+ backgroundColor: '#FFF'
64
+ },
65
+ overlay: true,
66
+ content: "DrawerContent"
67
+ });
68
+ };
69
+
56
70
  describe('Drawer', function () {
57
71
  describe('Drawer Container', function () {
58
72
  var DrawerTestId = 'drawercontainer-component';
@@ -75,7 +89,7 @@ describe('Drawer', function () {
75
89
 
76
90
  expect(getByTestId(DrawerTestId)).toHaveClass('customMockClass');
77
91
  });
78
- it('should apply customClassContent', function () {
92
+ it('should apply customClassForContent', function () {
79
93
  var _render4 = (0, _react2.render)(drawerMock()),
80
94
  getByTestId = _render4.getByTestId;
81
95
 
@@ -147,81 +161,95 @@ describe('Drawer', function () {
147
161
 
148
162
  expect(getByAltText('imagem teste')).toBeInTheDocument();
149
163
  });
164
+ it('should apply title and renders DrawerHeader', function () {
165
+ var _render9 = (0, _react2.render)(drawerRenderHeaderContentMock({
166
+ title: 'teste'
167
+ })),
168
+ getByTestId = _render9.getByTestId;
169
+
170
+ expect(getByTestId('drawerheader')).toHaveClass('CustomForDrawerMockClass');
171
+ });
172
+ it('should render the drawer component with content', function () {
173
+ var _render10 = (0, _react2.render)(drawerRenderHeaderContentMock()),
174
+ getByTestId = _render10.getByTestId;
175
+
176
+ expect(getByTestId('drawercontent')).toHaveTextContent('DrawerContent');
177
+ });
150
178
  it('should render titleRightContent', function () {
151
- var _render9 = (0, _react2.render)(drawerMock({}, {
179
+ var _render11 = (0, _react2.render)(drawerMock({}, {
152
180
  titleRightContent: mockImage
153
181
  })),
154
- getByAltText = _render9.getByAltText;
182
+ getByAltText = _render11.getByAltText;
155
183
 
156
184
  expect(getByAltText('imagem teste')).toBeInTheDocument();
157
185
  });
158
186
  it('should render subtitle', function () {
159
- var _render10 = (0, _react2.render)(DrawerHeaderMock),
160
- getByText = _render10.getByText;
187
+ var _render12 = (0, _react2.render)(DrawerHeaderMock),
188
+ getByText = _render12.getByText;
161
189
 
162
190
  expect(getByText('Subtitle test')).toBeInTheDocument();
163
191
  });
164
192
  it('should render subTitleContent', function () {
165
- var _render11 = (0, _react2.render)(drawerMock({}, {
193
+ var _render13 = (0, _react2.render)(drawerMock({}, {
166
194
  subTitleContent: mockImage
167
195
  })),
168
- getByAltText = _render11.getByAltText;
196
+ getByAltText = _render13.getByAltText;
169
197
 
170
198
  expect(getByAltText('imagem teste')).toBeInTheDocument();
171
199
  });
172
200
  it('should render title icon', function () {
173
- var _render12 = (0, _react2.render)(DrawerHeaderMock),
174
- getByTestId = _render12.getByTestId;
201
+ var _render14 = (0, _react2.render)(DrawerHeaderMock),
202
+ getByTestId = _render14.getByTestId;
175
203
 
176
204
  expect(getByTestId('icon-header')).toBeInTheDocument();
177
205
  expect(getByTestId('icon-header')).toHaveClass('icon-header');
178
206
  });
179
207
  it('should render icon', function () {
180
- var _render13 = (0, _react2.render)(drawerMock({}, {
208
+ var _render15 = (0, _react2.render)(drawerMock({}, {
181
209
  icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
182
210
  name: "user"
183
211
  }),
184
212
  showCloseButton: true
185
213
  })),
186
- getByTestId = _render13.getByTestId;
214
+ getByTestId = _render15.getByTestId;
187
215
 
188
216
  expect(getByTestId('icon-header')).toBeInTheDocument();
189
217
  expect(getByTestId('icon-header')).toHaveClass('icon-header');
190
218
  });
191
219
  it('should render close button', function () {
192
- var _render14 = (0, _react2.render)(DrawerHeaderMock),
193
- getByTestId = _render14.getByTestId;
220
+ var _render16 = (0, _react2.render)(DrawerHeaderMock),
221
+ getByTestId = _render16.getByTestId;
194
222
 
195
223
  expect(getByTestId(CloseButtonTestId)).toBeInTheDocument();
196
224
  expect(getByTestId(CloseButtonTestId)).toHaveClass('closebutton');
197
225
  });
198
226
  it('should fire click in close button', function () {
199
- var _render15 = (0, _react2.render)(DrawerHeaderMock),
200
- getByTestId = _render15.getByTestId;
227
+ var _render17 = (0, _react2.render)(DrawerHeaderMock),
228
+ getByTestId = _render17.getByTestId;
201
229
 
202
230
  _react2.fireEvent.click(getByTestId(CloseButtonTestId));
203
231
 
204
232
  expect(mockHandlerClose).toHaveBeenCalledTimes(1);
205
233
  });
206
234
  it('should apply customClass', function () {
207
- var _render16 = (0, _react2.render)(DrawerHeaderMock),
208
- getByTestId = _render16.getByTestId;
235
+ var _render18 = (0, _react2.render)(DrawerHeaderMock),
236
+ getByTestId = _render18.getByTestId;
209
237
 
210
238
  expect(getByTestId('drawerheader')).toHaveClass('customMockHeaderClass');
211
239
  });
212
240
  });
213
241
  describe('Drawer Content', function () {
214
242
  it('should DrawerContent renders correctly', function () {
215
- var _render17 = (0, _react2.render)(drawerMock()),
216
- getByText = _render17.getByText,
217
- getByTestId = _render17.getByTestId;
243
+ var _render19 = (0, _react2.render)(drawerMock()),
244
+ getByText = _render19.getByText,
245
+ getByTestId = _render19.getByTestId;
218
246
 
219
247
  expect(getByText('DrawerContent')).toBeInTheDocument();
220
248
  expect(getByTestId('avatar')).toBeInTheDocument();
221
249
  });
222
250
  it('should apply inline style', function () {
223
- var _render18 = (0, _react2.render)(drawerMock()),
224
- getByText = _render18.getByText;
251
+ var _render20 = (0, _react2.render)(drawerMock()),
252
+ getByText = _render20.getByText;
225
253
 
226
254
  expect(getByText('DrawerContent')).toHaveStyle('background-color: #333; margin-top: 10px;');
227
255
  });
@@ -236,20 +264,20 @@ describe('Drawer', function () {
236
264
  it('should check permission', function () {
237
265
  defineStorageMock();
238
266
 
239
- var _render19 = (0, _react2.render)(drawerMock({
267
+ var _render21 = (0, _react2.render)(drawerMock({
240
268
  permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('hideContent')
241
269
  })),
242
- container = _render19.container;
270
+ container = _render21.container;
243
271
 
244
272
  expect(container.querySelector('.no-permission-component')).not.toBeInTheDocument();
245
273
  });
246
274
  it('should render non-permission', function () {
247
275
  defineStorageMock();
248
276
 
249
- var _render20 = (0, _react2.render)(drawerMock({
277
+ var _render22 = (0, _react2.render)(drawerMock({
250
278
  permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('hideContent')
251
279
  })),
252
- getByText = _render20.getByText;
280
+ getByText = _render22.getByText;
253
281
 
254
282
  expect(getByText('Acesso Negado')).toBeInTheDocument();
255
283
  expect(getByText('Você não tem permissão para acessar este conteúdo. Consulte o Administrador do sistema!')).toBeInTheDocument();
@@ -38,10 +38,11 @@ var withFieldContext = /*#__PURE__*/_react["default"].createContext();
38
38
 
39
39
  exports.withFieldContext = withFieldContext;
40
40
 
41
- var changeValue = function changeValue(data, target) {
41
+ var changeValue = function changeValue(newData, target) {
42
42
  var name = target.name,
43
43
  value = target.value;
44
- return _lodash["default"].set(JSON.parse(JSON.stringify(data)), name, value);
44
+
45
+ _lodash["default"].set(newData, name, value);
45
46
  };
46
47
 
47
48
  exports.changeValue = changeValue;
package/lib/form/index.js CHANGED
@@ -148,7 +148,10 @@ var Form = function Form(_ref) {
148
148
 
149
149
  var onFieldChange = function onFieldChange(event) {
150
150
  var target = event.target;
151
- var newData = (0, _helpers.changeValue)(data, target);
151
+ (0, _helpers.changeValue)(dataSource, target);
152
+ (0, _helpers.changeValue)(data, target);
153
+
154
+ var newData = _extends({}, data);
152
155
 
153
156
  if (context && context.onChangedData) {
154
157
  var onChangedData = context.onChangedData;
@@ -296,13 +299,13 @@ Form.propTypes = {
296
299
  children: _propTypes["default"].any.isRequired,
297
300
  onSubmit: _propTypes["default"].func.isRequired,
298
301
  handlerSubmit: _propTypes["default"].func.isRequired,
299
- onDataChange: _propTypes["default"].func.isRequired,
300
302
  handlerReset: _propTypes["default"].func,
301
303
  handlerValidates: _propTypes["default"].func,
302
304
  onValidateForm: _propTypes["default"].func,
303
305
  submitOnPressEnterKey: _propTypes["default"].bool,
304
306
  style: _propTypes["default"].object,
305
307
  customClass: _propTypes["default"].string,
308
+ onDataChange: _propTypes["default"].func,
306
309
  securityBeforeUnload: _propTypes["default"].bool,
307
310
  securityTitle: _propTypes["default"].string,
308
311
  securityText: _propTypes["default"].string,
@@ -317,6 +320,7 @@ Form.defaultProps = {
317
320
  handlerReset: undefined,
318
321
  handlerValidates: undefined,
319
322
  customClass: '',
323
+ onDataChange: undefined,
320
324
  securityBeforeUnload: false,
321
325
  securityTitle: null,
322
326
  securityText: null,
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _icons = _interopRequireDefault(require("../../icons"));
15
+
16
+ var _skeleton = _interopRequireWildcard(require("../../skeleton"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ 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); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ var renderChildren = function renderChildren(skeletonize, skeletonQtty, children) {
25
+ if (skeletonize && skeletonQtty) {
26
+ var skeletons = Array.from({
27
+ length: skeletonQtty
28
+ }, function (_, i) {
29
+ return i + 1;
30
+ });
31
+ return /*#__PURE__*/_react["default"].createElement(_skeleton.SkeletonContainer, {
32
+ style: {
33
+ flexDirection: 'row',
34
+ flexFlow: 'row wrap'
35
+ }
36
+ }, skeletons.map(function (id) {
37
+ return /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
38
+ key: id,
39
+ height: 88,
40
+ width: 88,
41
+ style: {
42
+ flexGrow: 'unset',
43
+ marginBottom: 5
44
+ }
45
+ });
46
+ }));
47
+ }
48
+
49
+ return children;
50
+ };
51
+
52
+ var SubMenuContainer = function SubMenuContainer(_ref) {
53
+ var title = _ref.title,
54
+ customClass = _ref.customClass,
55
+ handlerGoBack = _ref.handlerGoBack,
56
+ skeletonize = _ref.skeletonize,
57
+ skeletonQtty = _ref.skeletonQtty,
58
+ children = _ref.children;
59
+ (0, _react.useEffect)(function () {
60
+ return function () {
61
+ handlerGoBack();
62
+ };
63
+ }, []);
64
+ return /*#__PURE__*/_react["default"].createElement("div", {
65
+ className: "floatsubmenu ".concat(customClass)
66
+ }, /*#__PURE__*/_react["default"].createElement("div", {
67
+ className: "submenuheader"
68
+ }, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
69
+ onClick: handlerGoBack,
70
+ name: "arrowBack",
71
+ pointerEvents: "all",
72
+ style: {
73
+ cursor: 'pointer'
74
+ }
75
+ }), title && /*#__PURE__*/_react["default"].createElement("span", null, title)), /*#__PURE__*/_react["default"].createElement("div", {
76
+ className: "submenucontent"
77
+ }, renderChildren(skeletonize, skeletonQtty, children)));
78
+ };
79
+
80
+ SubMenuContainer.propTypes = {
81
+ children: _propTypes["default"].element.isRequired,
82
+ handlerGoBack: _propTypes["default"].func.isRequired,
83
+ title: _propTypes["default"].string,
84
+ customClass: _propTypes["default"].string,
85
+ skeletonize: _propTypes["default"].bool,
86
+ skeletonQtty: _propTypes["default"].number
87
+ };
88
+ SubMenuContainer.defaultProps = {
89
+ title: undefined,
90
+ customClass: undefined,
91
+ skeletonize: true,
92
+ skeletonQtty: 3
93
+ };
94
+ var _default = SubMenuContainer;
95
+ exports["default"] = _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var generateTreeTableData = function generateTreeTableData(treeData) {
9
+ var nodeLength = 0;
10
+
11
+ var generateNewObjectAssignPerNode = function generateNewObjectAssignPerNode(children) {
12
+ var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
13
+ var rowLevel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
14
+
15
+ if (children) {
16
+ return children.map(function (node) {
17
+ nodeLength += 1;
18
+ return Object.assign({}, node, {
19
+ rowID: nodeLength,
20
+ rowLevel: rowLevel,
21
+ parentRowID: parent,
22
+ visible: parent === 0,
23
+ expanded: false,
24
+ children: generateNewObjectAssignPerNode(node.children, nodeLength, rowLevel + 1)
25
+ });
26
+ });
27
+ }
28
+
29
+ return null;
30
+ };
31
+
32
+ return generateNewObjectAssignPerNode(treeData);
33
+ };
34
+
35
+ var _default = generateTreeTableData;
36
+ exports["default"] = _default;
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _buttons = require("../buttons");
15
+
16
+ var _table = _interopRequireWildcard(require("../table"));
17
+
18
+ require("../assets/styles/treetable.scss");
19
+
20
+ var _helpers = _interopRequireDefault(require("./helpers"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
+
24
+ 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); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
29
+
30
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
+
32
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
33
+
34
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
35
+
36
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
37
+
38
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
39
+
40
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
41
+
42
+ 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
+
44
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
45
+
46
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
+
48
+ var TreeTable = function TreeTable(props) {
49
+ var _useState = (0, _react.useState)([]),
50
+ _useState2 = _slicedToArray(_useState, 2),
51
+ data = _useState2[0],
52
+ setData = _useState2[1];
53
+
54
+ var _useState3 = (0, _react.useState)(false),
55
+ _useState4 = _slicedToArray(_useState3, 2),
56
+ treeExpanded = _useState4[0],
57
+ setTreeExpanded = _useState4[1];
58
+
59
+ (0, _react.useEffect)(function () {
60
+ var objectArrayReturned = (0, _helpers["default"])(props.dataTable);
61
+ setData(objectArrayReturned);
62
+ }, [props.dataTable]);
63
+ var expandOrCollapseTreeTable = (0, _react.useCallback)(function (dataTree, selectedRowID, expandAll, collapseAll) {
64
+ var expandOrCollapse = function expandOrCollapse(children) {
65
+ var expand = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : expandAll;
66
+ var collapse = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : collapseAll;
67
+ return children.map(function (node) {
68
+ var setExpanded = node.rowID === selectedRowID ? !node.expanded : node.expanded;
69
+ var setVisible = node.parentRowID === selectedRowID ? !node.visible : node.visible;
70
+
71
+ if (expand) {
72
+ setExpanded = true;
73
+ setVisible = true;
74
+ }
75
+
76
+ if (collapse) {
77
+ setExpanded = false;
78
+ setVisible = false;
79
+ } // if (node.parentRowID === selectedRowID && !setVisible) collapse = true;
80
+
81
+
82
+ return Object.assign({}, node, {
83
+ visible: setVisible,
84
+ expanded: setExpanded,
85
+ children: expandOrCollapse(node.children, expand, collapse)
86
+ });
87
+ });
88
+ };
89
+
90
+ return expandOrCollapse(dataTree);
91
+ }, []);
92
+
93
+ var rowExpandOrCollapse = function rowExpandOrCollapse(rowID) {
94
+ var treeExpandOrCollapse = expandOrCollapseTreeTable(data, rowID, false, false);
95
+ setData(treeExpandOrCollapse);
96
+ };
97
+
98
+ var expandOrCollapseAll = (0, _react.useCallback)(function () {
99
+ var isExpanded = !treeExpanded;
100
+
101
+ var newTreeNodeExpandOrCollapse = function newTreeNodeExpandOrCollapse(children) {
102
+ return children.map(function (node) {
103
+ var isVisible = node.rowLevel === 1 ? true : isExpanded;
104
+ return Object.assign({}, node, {
105
+ visible: isVisible,
106
+ expanded: isExpanded,
107
+ children: newTreeNodeExpandOrCollapse(node.children)
108
+ });
109
+ });
110
+ };
111
+
112
+ setTreeExpanded(isExpanded);
113
+ setData(newTreeNodeExpandOrCollapse(data));
114
+ }, [data, treeExpanded]);
115
+
116
+ var generateDataColumn = function generateDataColumn(row, key, dataField) {
117
+ if (row.children && row.children.length > 0) {
118
+ var iconCell = row.expanded ? /*#__PURE__*/_react["default"].createElement("button", {
119
+ "aria-label": "collapse-row",
120
+ type: "button",
121
+ className: "button-collapse",
122
+ onClick: function onClick() {
123
+ return rowExpandOrCollapse(row.rowID);
124
+ }
125
+ }, "\u25BC") : /*#__PURE__*/_react["default"].createElement("button", {
126
+ "aria-label": "expand-row",
127
+ type: "button",
128
+ className: "button-expand",
129
+ onClick: function onClick() {
130
+ return rowExpandOrCollapse(row.rowID);
131
+ }
132
+ }, "\u25BA");
133
+
134
+ if (props.tableColumns[0].isFixedWidth) {
135
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
136
+ key: key,
137
+ style: {
138
+ width: "".concat(props.tableColumns[0].percentageWidth, "%")
139
+ }
140
+ }, /*#__PURE__*/_react["default"].createElement("span", {
141
+ className: "button-expand-tree",
142
+ style: {
143
+ marginLeft: "".concat(row.rowLevel, "rem")
144
+ }
145
+ }, iconCell, /*#__PURE__*/_react["default"].createElement("span", {
146
+ className: "text-first-column"
147
+ }, row.data[dataField])));
148
+ }
149
+
150
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
151
+ key: key
152
+ }, /*#__PURE__*/_react["default"].createElement("span", {
153
+ className: "button-expand-tree",
154
+ style: {
155
+ marginLeft: "".concat(row.rowLevel, "rem")
156
+ }
157
+ }, iconCell, /*#__PURE__*/_react["default"].createElement("span", {
158
+ className: "text-first-column"
159
+ }, row.data[dataField])));
160
+ }
161
+
162
+ if (props.tableColumns[0].isFixedWidth) {
163
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
164
+ key: key,
165
+ style: {
166
+ width: "".concat(props.tableColumns[0].percentageWidth, "%")
167
+ }
168
+ }, /*#__PURE__*/_react["default"].createElement("span", {
169
+ className: "button-expand-tree",
170
+ style: {
171
+ marginLeft: "".concat(row.rowLevel, "rem")
172
+ }
173
+ }, /*#__PURE__*/_react["default"].createElement("span", {
174
+ className: "text-first-column"
175
+ }, row.data[dataField])));
176
+ }
177
+
178
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
179
+ key: key
180
+ }, /*#__PURE__*/_react["default"].createElement("span", {
181
+ className: "button-expand-tree",
182
+ style: {
183
+ marginLeft: "".concat(row.rowLevel, "rem")
184
+ }
185
+ }, /*#__PURE__*/_react["default"].createElement("span", {
186
+ className: "text-first-column"
187
+ }, row.data[dataField])));
188
+ };
189
+
190
+ var generateDataRow = function generateDataRow(row) {
191
+ var rowBody = [];
192
+ var mapPerCell = props.tableColumns.map(function (column, index) {
193
+ var outputCell = row.data[column.columnContent];
194
+ var keyCell = "".concat(row.parentRowID, "-").concat(row.rowID, "-").concat(index);
195
+
196
+ if (index === 0) {
197
+ return generateDataColumn(row, keyCell, column.columnContent);
198
+ }
199
+
200
+ if (column.isFixedWidth) {
201
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
202
+ key: keyCell,
203
+ style: {
204
+ width: "".concat(column.percentageWidth, "%")
205
+ }
206
+ }, outputCell);
207
+ }
208
+
209
+ return /*#__PURE__*/_react["default"].createElement(_table.Td, {
210
+ key: keyCell
211
+ }, outputCell);
212
+ });
213
+ rowBody.push(mapPerCell);
214
+ return rowBody;
215
+ };
216
+
217
+ var generateTableHeader = function generateTableHeader() {
218
+ var tableHeader = [];
219
+
220
+ if (props.tableColumns) {
221
+ tableHeader.push(props.tableColumns.map(function (column) {
222
+ if (column.columnTitle) {
223
+ return /*#__PURE__*/_react["default"].createElement(_table.Th, {
224
+ key: column.columnTitle,
225
+ style: {
226
+ width: "".concat(column.percentageWidth, "%")
227
+ }
228
+ }, column.columnTitle);
229
+ }
230
+
231
+ return /*#__PURE__*/_react["default"].createElement(_table.Th, {
232
+ key: column.columnContent,
233
+ style: {
234
+ width: "".concat(column.percentageWidth, "%")
235
+ }
236
+ }, column.columnContent);
237
+ }));
238
+ }
239
+
240
+ return tableHeader;
241
+ };
242
+
243
+ var generateTableBody = function generateTableBody(dataBody) {
244
+ var tableBody = [];
245
+ dataBody.forEach(function (row) {
246
+ var cellRow = generateDataRow(row);
247
+ var keyRow = "".concat(row.parentRowID, "-").concat(row.rowID);
248
+ var isVisibleRow = row.visible ? 'show-tr' : 'hidden-tr';
249
+
250
+ var tr = /*#__PURE__*/_react["default"].createElement("tr", {
251
+ className: isVisibleRow,
252
+ key: keyRow
253
+ }, cellRow);
254
+
255
+ tableBody.push(tr);
256
+
257
+ if (row.children) {
258
+ tableBody.push.apply(tableBody, _toConsumableArray(generateTableBody(row.children)));
259
+ }
260
+ });
261
+ return tableBody;
262
+ };
263
+
264
+ return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_buttons.PrimaryButton, {
265
+ label: treeExpanded ? 'Recolher todos' : 'Expandir todos',
266
+ onClick: expandOrCollapseAll,
267
+ customClass: "button-expand-or-collapse-all",
268
+ visible: props.showButtonExpandedOrCollapseAll
269
+ }), /*#__PURE__*/_react["default"].createElement(_table["default"], {
270
+ className: "table-content"
271
+ }, /*#__PURE__*/_react["default"].createElement(_table.THeader, null, /*#__PURE__*/_react["default"].createElement(_table.TRow, null, generateTableHeader())), /*#__PURE__*/_react["default"].createElement(_table.TBody, null, generateTableBody(data))));
272
+ };
273
+
274
+ TreeTable.propTypes = {
275
+ dataTable: _propTypes["default"].arrayOf(_propTypes["default"].shape({
276
+ data: _propTypes["default"].object,
277
+ children: _propTypes["default"].arrayOf(_propTypes["default"].object)
278
+ })).isRequired,
279
+ tableColumns: _propTypes["default"].arrayOf(_propTypes["default"].shape({
280
+ // styles: PropTypes.object,
281
+ columnTitle: _propTypes["default"].string.isRequired,
282
+ columnContent: _propTypes["default"].string.isRequired,
283
+ isFixedWidth: _propTypes["default"].bool,
284
+ percentageWidth: _propTypes["default"].number
285
+ })),
286
+ showButtonExpandedOrCollapseAll: _propTypes["default"].bool
287
+ };
288
+ TreeTable.defaultProps = {
289
+ tableColumns: [{
290
+ // styles: {},
291
+ isFixedWidth: false,
292
+ percentageWidth: 0
293
+ }],
294
+ showButtonExpandedOrCollapseAll: false
295
+ };
296
+ var _default = TreeTable;
297
+ exports["default"] = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "0.4.77-beta.20",
3
+ "version": "0.4.77-beta.22",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -56,6 +56,7 @@
56
56
  "react-transition-group": "^4.3.0",
57
57
  "style-loader": "^0.23.1",
58
58
  "webpack": "^3.10.0",
59
+ "webpack-cli": "^4.10.0",
59
60
  "webpack-dev-server": "^2.9.7"
60
61
  },
61
62
  "author": "Deivisson Bruno <deivisson.bruno@linearsistemas.com.br>",