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.
- package/lib/assets/styles/treetable.scss +155 -0
- package/lib/dialog/dialog.spec.js +40 -33
- package/lib/dialog/form/index.js +7 -4
- package/lib/drawer/Drawer.js +25 -5
- package/lib/drawer/Drawer.spec.js +54 -26
- package/lib/form/helpers.js +3 -2
- package/lib/form/index.js +6 -2
- package/lib/menus/float/SubMenuContainer.js +95 -0
- package/lib/treetable/helpers.js +36 -0
- package/lib/treetable/index.js +297 -0
- package/package.json +2 -1
|
@@ -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
|
|
297
|
-
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
|
|
305
|
-
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
|
|
311
|
-
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
|
|
324
|
+
var _render20 = (0, _react2.render)(defaultDialogCustom({
|
|
318
325
|
width: '400px'
|
|
319
326
|
})),
|
|
320
|
-
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
|
|
334
|
+
var _render21 = (0, _react2.render)(defaultDialogCustom({
|
|
328
335
|
height: '400px'
|
|
329
336
|
})),
|
|
330
|
-
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
|
|
350
|
-
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
|
|
358
|
-
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
|
|
378
|
-
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
|
|
386
|
-
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
|
|
406
|
-
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
|
|
414
|
-
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
|
|
434
|
-
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
|
|
442
|
-
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
|
|
464
|
-
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
|
|
472
|
-
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
|
|
480
|
-
getByText =
|
|
486
|
+
var _render32 = (0, _react2.render)(defaultDialogQuestion()),
|
|
487
|
+
getByText = _render32.getByText;
|
|
481
488
|
|
|
482
489
|
_react2.fireEvent.click(getByText('Não'));
|
|
483
490
|
|
package/lib/dialog/form/index.js
CHANGED
|
@@ -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);
|
package/lib/drawer/Drawer.js
CHANGED
|
@@ -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
|
-
},
|
|
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"].
|
|
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
|
|
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
|
|
179
|
+
var _render11 = (0, _react2.render)(drawerMock({}, {
|
|
152
180
|
titleRightContent: mockImage
|
|
153
181
|
})),
|
|
154
|
-
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
|
|
160
|
-
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
|
|
193
|
+
var _render13 = (0, _react2.render)(drawerMock({}, {
|
|
166
194
|
subTitleContent: mockImage
|
|
167
195
|
})),
|
|
168
|
-
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
|
|
174
|
-
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
|
|
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 =
|
|
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
|
|
193
|
-
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
|
|
200
|
-
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
|
|
208
|
-
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
|
|
216
|
-
getByText =
|
|
217
|
-
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
|
|
224
|
-
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
|
|
267
|
+
var _render21 = (0, _react2.render)(drawerMock({
|
|
240
268
|
permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('hideContent')
|
|
241
269
|
})),
|
|
242
|
-
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
|
|
277
|
+
var _render22 = (0, _react2.render)(drawerMock({
|
|
250
278
|
permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('hideContent')
|
|
251
279
|
})),
|
|
252
|
-
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();
|
package/lib/form/helpers.js
CHANGED
|
@@ -38,10 +38,11 @@ var withFieldContext = /*#__PURE__*/_react["default"].createContext();
|
|
|
38
38
|
|
|
39
39
|
exports.withFieldContext = withFieldContext;
|
|
40
40
|
|
|
41
|
-
var changeValue = function changeValue(
|
|
41
|
+
var changeValue = function changeValue(newData, target) {
|
|
42
42
|
var name = target.name,
|
|
43
43
|
value = target.value;
|
|
44
|
-
|
|
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
|
-
|
|
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.
|
|
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>",
|