linear-react-components-ui 0.4.76-beta.32 → 0.4.76-beta.35
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/button.scss +3 -1
- package/lib/assets/styles/commons.scss +10 -0
- package/lib/assets/styles/list.scss +8 -0
- package/lib/assets/styles/sidenav.scss +11 -1
- package/lib/assets/styles/table.scss +2 -7
- package/lib/assets/styles/treeview.scss +5 -0
- package/lib/inputs/search/index.js +2 -0
- package/lib/inputs/select/multiple/index.js +2 -2
- package/lib/inputs/select/simple/index.js +2 -2
- package/lib/internals/constants.js +4 -3
- package/lib/list/Item.js +34 -9
- package/lib/list/helpers.js +8 -3
- package/lib/list/index.js +153 -12
- package/lib/list/list.spec.js +259 -102
- package/lib/menus/sidenav/NavMenuItem.js +15 -6
- package/lib/menus/sidenav/index.js +53 -84
- package/lib/menus/sidenav/popup_menu_search/index.js +24 -16
- package/lib/menus/sidenav/sidenav.spec.js +86 -19
- package/lib/table/Body.js +5 -3
- package/lib/table/Header.js +5 -3
- package/lib/treeview/Node.js +1 -5
- package/package.json +1 -1
|
@@ -331,8 +331,10 @@ $shadow-button-inset-default: inset 0 0 0 1px $default-border-color, $shadow-but
|
|
|
331
331
|
text-shadow: none;
|
|
332
332
|
box-shadow: none;
|
|
333
333
|
border-color: transparent !important;
|
|
334
|
+
transition: none;
|
|
334
335
|
|
|
335
336
|
> svg {
|
|
336
|
-
|
|
337
|
+
opacity: 0;
|
|
338
|
+
visibility: hidden;
|
|
337
339
|
}
|
|
338
340
|
}
|
|
@@ -116,6 +116,16 @@
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
%skeleton-transparency {
|
|
120
|
+
content: '';
|
|
121
|
+
position: absolute;
|
|
122
|
+
width: 100%;
|
|
123
|
+
height: 100%;
|
|
124
|
+
background: rgb(255,255,255);
|
|
125
|
+
background: linear-gradient( 180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 30%,
|
|
126
|
+
rgba(255,255,255,0.6) 70%,rgba(255,255,255,0.8) 100%);
|
|
127
|
+
}
|
|
128
|
+
|
|
119
129
|
/* Efeito utilizado para o componente Skeleton */
|
|
120
130
|
@keyframes shimmer {
|
|
121
131
|
0% {
|
|
@@ -12,6 +12,10 @@ que utilizam. Em caso de mudança, ficar atento para os refatores.
|
|
|
12
12
|
overflow: hidden;
|
|
13
13
|
background-color: transparent;
|
|
14
14
|
border: 1px solid #eee;
|
|
15
|
+
&.-blocked {
|
|
16
|
+
opacity: 0.4;
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
}
|
|
15
19
|
> .expandedmenu,
|
|
16
20
|
> .collapsedmenu {
|
|
17
21
|
height: auto;
|
|
@@ -26,10 +30,16 @@ que utilizam. Em caso de mudança, ficar atento para os refatores.
|
|
|
26
30
|
align-items: center;
|
|
27
31
|
justify-content: center;
|
|
28
32
|
padding-left: 0px;
|
|
33
|
+
> .searchmenubutton {
|
|
34
|
+
width: 100%;
|
|
35
|
+
height: 100%;
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
justify-content: center;
|
|
39
|
+
}
|
|
29
40
|
}
|
|
30
41
|
&.-customsidenavitem:hover {
|
|
31
42
|
background-color: white;
|
|
32
|
-
cursor: text;
|
|
33
43
|
}
|
|
34
44
|
&.-disabled {
|
|
35
45
|
@extend %component-disabled;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@import "colors.scss";
|
|
2
2
|
@import "effects.scss";
|
|
3
|
+
@import "commons.scss";
|
|
3
4
|
|
|
4
5
|
.table-component {
|
|
5
6
|
width: 100%;
|
|
@@ -23,13 +24,7 @@
|
|
|
23
24
|
> .tbody {
|
|
24
25
|
position: relative;
|
|
25
26
|
&.skeleton-transparency::before {
|
|
26
|
-
|
|
27
|
-
position: absolute;
|
|
28
|
-
width: 100%;
|
|
29
|
-
height: 100%;
|
|
30
|
-
background: rgb(255,255,255);
|
|
31
|
-
background: linear-gradient( 180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.2) 30%,
|
|
32
|
-
rgba(255,255,255,0.6) 70%,rgba(255,255,255,0.8) 100%);
|
|
27
|
+
@extend %skeleton-transparency;
|
|
33
28
|
}
|
|
34
29
|
}
|
|
35
30
|
> .headercontainer > .innertable > .theader > .trow,
|
|
@@ -301,6 +301,7 @@ SearchField.propTypes = {
|
|
|
301
301
|
disabled: _propTypes["default"].bool,
|
|
302
302
|
readOnly: _propTypes["default"].bool,
|
|
303
303
|
value: _propTypes["default"].string,
|
|
304
|
+
placeHolder: _propTypes["default"].string,
|
|
304
305
|
permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
|
|
305
306
|
};
|
|
306
307
|
SearchField.defaultProps = {
|
|
@@ -312,6 +313,7 @@ SearchField.defaultProps = {
|
|
|
312
313
|
disabled: false,
|
|
313
314
|
readOnly: false,
|
|
314
315
|
value: undefined,
|
|
316
|
+
placeHolder: '',
|
|
315
317
|
permissionAttr: undefined
|
|
316
318
|
};
|
|
317
319
|
var _default = SearchField;
|
|
@@ -272,12 +272,12 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
272
272
|
|
|
273
273
|
if (e.keyCode === constants.keyCodes.ENTER) {
|
|
274
274
|
this.onSelect(selected);
|
|
275
|
-
} else if ([constants.keyCodes.
|
|
275
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
276
276
|
var index = dataSource.findIndex(function (d) {
|
|
277
277
|
return d === selected;
|
|
278
278
|
});
|
|
279
279
|
|
|
280
|
-
if (e.keyCode === constants.keyCodes.
|
|
280
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
281
281
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
282
282
|
} else {
|
|
283
283
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -388,12 +388,12 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
388
388
|
e.preventDefault();
|
|
389
389
|
|
|
390
390
|
_this3.onSelect(selected);
|
|
391
|
-
} else if ([constants.keyCodes.
|
|
391
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
392
392
|
var index = dataSource.findIndex(function (d) {
|
|
393
393
|
return d[idKey] === selected[idKey];
|
|
394
394
|
});
|
|
395
395
|
|
|
396
|
-
if (e.keyCode === constants.keyCodes.
|
|
396
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
397
397
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
398
398
|
} else {
|
|
399
399
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -7,9 +7,10 @@ exports.PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = exports.keyCodes =
|
|
|
7
7
|
var keyCodes = {
|
|
8
8
|
TAB: 9,
|
|
9
9
|
ENTER: 13,
|
|
10
|
-
ARROW_UP:
|
|
11
|
-
ARROW_DOWN:
|
|
12
|
-
BACKSPACE: 8
|
|
10
|
+
ARROW_UP: 38,
|
|
11
|
+
ARROW_DOWN: 40,
|
|
12
|
+
BACKSPACE: 8,
|
|
13
|
+
F: 70
|
|
13
14
|
};
|
|
14
15
|
exports.keyCodes = keyCodes;
|
|
15
16
|
var PARA_ENGANAR_O_ESLINT_JA_QUE_TENHO_SO_UMA_CONSTANTE = 1;
|
package/lib/list/Item.js
CHANGED
|
@@ -17,10 +17,12 @@ var _icons = _interopRequireDefault(require("../icons"));
|
|
|
17
17
|
|
|
18
18
|
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
19
19
|
|
|
20
|
-
var _helpers =
|
|
20
|
+
var _helpers = require("./helpers");
|
|
21
21
|
|
|
22
22
|
var _withDropdown = require("../dropdown/withDropdown");
|
|
23
23
|
|
|
24
|
+
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
25
|
+
|
|
24
26
|
var _permissionValidations = require("../permissionValidations");
|
|
25
27
|
|
|
26
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -44,7 +46,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
44
46
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
45
47
|
|
|
46
48
|
var Item = function Item(props) {
|
|
47
|
-
var
|
|
49
|
+
var onClick = props.onClick,
|
|
48
50
|
leftIconName = props.leftIconName,
|
|
49
51
|
leftIcon = props.leftIcon,
|
|
50
52
|
displayCheckbox = props.displayCheckbox,
|
|
@@ -65,10 +67,12 @@ var Item = function Item(props) {
|
|
|
65
67
|
visible = props.visible,
|
|
66
68
|
permissionAttr = props.permissionAttr;
|
|
67
69
|
|
|
68
|
-
var _useContext = (0, _react.useContext)(_helpers
|
|
70
|
+
var _useContext = (0, _react.useContext)(_helpers.ListContext),
|
|
69
71
|
handleSelectItem = _useContext.handleSelectItem,
|
|
70
72
|
selectable = _useContext.selectable,
|
|
71
|
-
selectedItemId = _useContext.selectedItemId
|
|
73
|
+
selectedItemId = _useContext.selectedItemId,
|
|
74
|
+
selectedItemRef = _useContext.selectedItemRef,
|
|
75
|
+
skeletonize = _useContext.skeletonize;
|
|
72
76
|
|
|
73
77
|
var dropdownContext = (0, _react.useContext)(_withDropdown.WithDropdownContext);
|
|
74
78
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible];
|
|
@@ -77,6 +81,8 @@ var Item = function Item(props) {
|
|
|
77
81
|
_useState2 = _slicedToArray(_useState, 1),
|
|
78
82
|
onDenied = _useState2[0];
|
|
79
83
|
|
|
84
|
+
var history = (0, _reactRouterDom.useHistory)();
|
|
85
|
+
|
|
80
86
|
var shouldDisable = function shouldDisable() {
|
|
81
87
|
return disabled || onDenied.disabled;
|
|
82
88
|
};
|
|
@@ -97,23 +103,42 @@ var Item = function Item(props) {
|
|
|
97
103
|
return null;
|
|
98
104
|
};
|
|
99
105
|
|
|
106
|
+
var handleOnSelectItem = function handleOnSelectItem(e) {
|
|
107
|
+
if (onClick !== undefined) onClick(e, itemId);
|
|
108
|
+
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
109
|
+
if (selectable) handleSelectItem(itemId, onClick);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
var onKeyDown = (0, _react.useCallback)(function (e) {
|
|
113
|
+
if ([constants.keyCodes.ENTER].includes(e.keyCode) && !skeletonize) {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
handleOnSelectItem(e);
|
|
116
|
+
if (url) history.push(url);
|
|
117
|
+
}
|
|
118
|
+
}, [url]);
|
|
119
|
+
|
|
100
120
|
var getProps = function getProps() {
|
|
101
121
|
if (shouldDisable()) return undefined;
|
|
102
|
-
if (
|
|
122
|
+
if (onClick === undefined && dropdownContext === undefined && !selectable) return null;
|
|
103
123
|
return {
|
|
104
124
|
onClick: function onClick(e) {
|
|
105
|
-
|
|
106
|
-
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
107
|
-
if (selectable) handleSelectItem(itemId, _onClick);
|
|
125
|
+
handleOnSelectItem(e);
|
|
108
126
|
},
|
|
109
|
-
onKeyDown: null,
|
|
110
127
|
role: 'button',
|
|
128
|
+
onKeyDown: onKeyDown,
|
|
111
129
|
tabIndex: '0'
|
|
112
130
|
};
|
|
113
131
|
};
|
|
114
132
|
|
|
133
|
+
(0, _react.useEffect)(function () {
|
|
134
|
+
document.addEventListener('keydown', onKeyDown);
|
|
135
|
+
return function () {
|
|
136
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
137
|
+
};
|
|
138
|
+
}, []);
|
|
115
139
|
if (!visible || onDenied.unvisible) return null;
|
|
116
140
|
return /*#__PURE__*/_react["default"].createElement("li", _extends({
|
|
141
|
+
ref: itemId && selectedItemId === itemId ? selectedItemRef : null,
|
|
117
142
|
style: style,
|
|
118
143
|
className: "item-container ".concat(hovered && 'hovered', "\n ").concat(itemId && selectedItemId === itemId ? '-activedlist' : '')
|
|
119
144
|
}, getProps(), {
|
package/lib/list/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.LIST_ITEMS_TYPES = exports.ListContext = void 0;
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
@@ -11,5 +11,10 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
11
11
|
|
|
12
12
|
var ListContext = /*#__PURE__*/_react["default"].createContext();
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
exports.ListContext = ListContext;
|
|
15
|
+
var LIST_ITEMS_TYPES = {
|
|
16
|
+
listHeader: 'Header',
|
|
17
|
+
listItem: 'Item',
|
|
18
|
+
listSeparator: 'Separator'
|
|
19
|
+
};
|
|
20
|
+
exports.LIST_ITEMS_TYPES = LIST_ITEMS_TYPES;
|
package/lib/list/index.js
CHANGED
|
@@ -33,11 +33,15 @@ var _Header = _interopRequireDefault(require("./Header"));
|
|
|
33
33
|
|
|
34
34
|
var _Item = _interopRequireDefault(require("./Item"));
|
|
35
35
|
|
|
36
|
+
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
37
|
+
|
|
38
|
+
var _skeleton = _interopRequireDefault(require("../skeleton"));
|
|
39
|
+
|
|
36
40
|
var _Separator = _interopRequireDefault(require("./Separator"));
|
|
37
41
|
|
|
38
42
|
require("../assets/styles/list.scss");
|
|
39
43
|
|
|
40
|
-
var _helpers =
|
|
44
|
+
var _helpers = require("./helpers");
|
|
41
45
|
|
|
42
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
43
47
|
|
|
@@ -58,37 +62,168 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
58
62
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
59
63
|
|
|
60
64
|
var List = function List(props) {
|
|
61
|
-
var
|
|
62
|
-
customClass = props.customClass,
|
|
65
|
+
var customClass = props.customClass,
|
|
63
66
|
condensed = props.condensed,
|
|
64
67
|
transparent = props.transparent,
|
|
65
68
|
style = props.style,
|
|
66
69
|
selectable = props.selectable,
|
|
67
|
-
onSelectItem = props.onSelectItem
|
|
70
|
+
onSelectItem = props.onSelectItem,
|
|
71
|
+
skeletonize = props.skeletonize,
|
|
72
|
+
skeletonItens = props.skeletonItens,
|
|
73
|
+
skeletonHeight = props.skeletonHeight,
|
|
74
|
+
children = props.children;
|
|
75
|
+
var selectedItemRef = (0, _react.useRef)(null);
|
|
76
|
+
var listRef = (0, _react.useRef)(null);
|
|
68
77
|
|
|
69
78
|
var _useState = (0, _react.useState)(''),
|
|
70
79
|
_useState2 = _slicedToArray(_useState, 2),
|
|
71
80
|
selectedItemId = _useState2[0],
|
|
72
81
|
setSelectedItemId = _useState2[1];
|
|
73
82
|
|
|
83
|
+
var _useState3 = (0, _react.useState)([]),
|
|
84
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
85
|
+
itensId = _useState4[0],
|
|
86
|
+
setItensId = _useState4[1];
|
|
87
|
+
|
|
88
|
+
var _useState5 = (0, _react.useState)(children),
|
|
89
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
90
|
+
newChildren = _useState6[0],
|
|
91
|
+
setNewChildren = _useState6[1];
|
|
92
|
+
|
|
74
93
|
var contextValues = {
|
|
75
94
|
selectable: selectable,
|
|
76
95
|
selectedItemId: selectedItemId,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
96
|
+
selectedItemRef: selectedItemRef,
|
|
97
|
+
children: children,
|
|
98
|
+
skeletonize: skeletonize,
|
|
99
|
+
handleSelectItem: function handleSelectItem(itemId, onClick) {
|
|
100
|
+
if (!onSelectItem && onClick) setSelectedItemId(itemId);
|
|
101
|
+
if (onSelectItem) onSelectItem(itemId);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var onKeyDown = function onKeyDown(e) {
|
|
106
|
+
if ([constants.keyCodes.ARROW_DOWN, constants.keyCodes.ARROW_UP].includes(e.keyCode) && !skeletonize) {
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
|
|
109
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
110
|
+
if (selectedItemId === itensId[itensId.length - 1]) {
|
|
111
|
+
setSelectedItemId(itensId[0]);
|
|
112
|
+
} else {
|
|
113
|
+
var index = itensId.indexOf(selectedItemId === '' ? '0' : selectedItemId);
|
|
114
|
+
setSelectedItemId(itensId[index + 1]);
|
|
115
|
+
}
|
|
116
|
+
} else if (e.keyCode === constants.keyCodes.ARROW_UP) {
|
|
117
|
+
if (selectedItemId === itensId[0]) {
|
|
118
|
+
setSelectedItemId(itensId[itensId.length - 1]);
|
|
119
|
+
} else {
|
|
120
|
+
var _index = itensId.indexOf(selectedItemId);
|
|
121
|
+
|
|
122
|
+
setSelectedItemId(itensId[_index - 1]);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return selectedItemRef.current && selectedItemRef.current.focus();
|
|
80
127
|
}
|
|
128
|
+
|
|
129
|
+
return null;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
var getSkeleton = function getSkeleton() {
|
|
133
|
+
var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
134
|
+
var maxSkeletonsItensExceeded = 2;
|
|
135
|
+
var skeletonItensCount = length > skeletonItens ? maxSkeletonsItensExceeded : Math.floor(skeletonItens / length);
|
|
136
|
+
var skeletonItensList = Array.from(Array(skeletonItensCount).keys());
|
|
137
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
138
|
+
className: "skeleton-transparency"
|
|
139
|
+
}, skeletonItensList.map(function (id) {
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(_Item["default"], {
|
|
141
|
+
key: id,
|
|
142
|
+
hovered: false,
|
|
143
|
+
style: {
|
|
144
|
+
pointerEvents: 'none'
|
|
145
|
+
}
|
|
146
|
+
}, /*#__PURE__*/_react["default"].createElement(_skeleton["default"], {
|
|
147
|
+
height: skeletonHeight,
|
|
148
|
+
style: {
|
|
149
|
+
margin: '6px 0'
|
|
150
|
+
}
|
|
151
|
+
}));
|
|
152
|
+
}));
|
|
81
153
|
};
|
|
154
|
+
|
|
155
|
+
var getNewChildren = function getNewChildren(headersChildren) {
|
|
156
|
+
return headersChildren.length > 0 ? headersChildren.map(function (item) {
|
|
157
|
+
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
|
|
158
|
+
key: item.props.title
|
|
159
|
+
}, item, getSkeleton(headersChildren.length));
|
|
160
|
+
}) : /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, headersChildren, getSkeleton());
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
(0, _react.useEffect)(function () {
|
|
164
|
+
if (selectedItemRef.current && listRef.current && listRef.current.scroll) {
|
|
165
|
+
var selectedItemRect = selectedItemRef.current.getBoundingClientRect();
|
|
166
|
+
var listRect = listRef.current.getBoundingClientRect();
|
|
167
|
+
var defaultScrollTop = 0;
|
|
168
|
+
var defaultBottomOffset = 100;
|
|
169
|
+
|
|
170
|
+
if (selectedItemRect.top - selectedItemRect.height > listRect.bottom) {
|
|
171
|
+
listRef.current.scroll({
|
|
172
|
+
top: selectedItemRect.top
|
|
173
|
+
});
|
|
174
|
+
} else if (selectedItemRect.top + selectedItemRect.height - listRect.y >= listRect.height) {
|
|
175
|
+
listRef.current.scroll({
|
|
176
|
+
top: listRef.current.scrollTop + selectedItemRect.height
|
|
177
|
+
});
|
|
178
|
+
} else if (selectedItemRect.bottom < defaultBottomOffset) {
|
|
179
|
+
listRef.current.scroll({
|
|
180
|
+
top: defaultScrollTop
|
|
181
|
+
});
|
|
182
|
+
} else {
|
|
183
|
+
listRef.current.scroll({
|
|
184
|
+
top: listRef.current.scrollTop - selectedItemRect.height
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}, [selectedItemRef.current]);
|
|
189
|
+
(0, _react.useEffect)(function () {
|
|
190
|
+
if (!skeletonize) document.addEventListener('keydown', onKeyDown);
|
|
191
|
+
return function () {
|
|
192
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
193
|
+
};
|
|
194
|
+
}, [skeletonize]);
|
|
82
195
|
(0, _react.useEffect)(function () {
|
|
83
196
|
if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
|
|
84
197
|
}, [props.selectedItemId]);
|
|
85
|
-
|
|
198
|
+
(0, _react.useEffect)(function () {
|
|
199
|
+
var newItensIds = children.length > 0 ? children.map(function (item) {
|
|
200
|
+
return item.props && item.props.itemId;
|
|
201
|
+
}).filter(Boolean) : [children.props.itemId];
|
|
202
|
+
setItensId(newItensIds);
|
|
203
|
+
}, [children]);
|
|
204
|
+
(0, _react.useEffect)(function () {
|
|
205
|
+
if (skeletonize) {
|
|
206
|
+
var headersChildren = children.type && children.type === _helpers.LIST_ITEMS_TYPES.listHeader && children;
|
|
207
|
+
|
|
208
|
+
if (children.length > 0) {
|
|
209
|
+
headersChildren = children.filter(function (item) {
|
|
210
|
+
return item.type && item.type.name === _helpers.LIST_ITEMS_TYPES.listHeader;
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
setNewChildren(getNewChildren(headersChildren));
|
|
215
|
+
} else {
|
|
216
|
+
setNewChildren(children);
|
|
217
|
+
}
|
|
218
|
+
}, [skeletonize, children]);
|
|
219
|
+
return /*#__PURE__*/_react["default"].createElement(_helpers.ListContext.Provider, {
|
|
86
220
|
value: contextValues
|
|
87
221
|
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
88
222
|
"data-testid": "list-component",
|
|
89
223
|
style: style,
|
|
90
|
-
|
|
91
|
-
|
|
224
|
+
ref: listRef,
|
|
225
|
+
className: "list-component ".concat(condensed && '-condensed', "\n ").concat(customClass, " ").concat(!transparent && '-listbackground')
|
|
226
|
+
}, newChildren));
|
|
92
227
|
};
|
|
93
228
|
|
|
94
229
|
List.propTypes = {
|
|
@@ -99,7 +234,10 @@ List.propTypes = {
|
|
|
99
234
|
selectable: _propTypes["default"].bool,
|
|
100
235
|
style: _propTypes["default"].object,
|
|
101
236
|
onSelectItem: _propTypes["default"].func,
|
|
102
|
-
selectedItemId: _propTypes["default"].string
|
|
237
|
+
selectedItemId: _propTypes["default"].string,
|
|
238
|
+
skeletonize: _propTypes["default"].bool,
|
|
239
|
+
skeletonItens: _propTypes["default"].number,
|
|
240
|
+
skeletonHeight: _propTypes["default"].number
|
|
103
241
|
};
|
|
104
242
|
List.defaultProps = {
|
|
105
243
|
customClass: '',
|
|
@@ -108,7 +246,10 @@ List.defaultProps = {
|
|
|
108
246
|
selectable: false,
|
|
109
247
|
style: {},
|
|
110
248
|
onSelectItem: undefined,
|
|
111
|
-
selectedItemId: ''
|
|
249
|
+
selectedItemId: '',
|
|
250
|
+
skeletonize: false,
|
|
251
|
+
skeletonItens: 5,
|
|
252
|
+
skeletonHeight: 48
|
|
112
253
|
};
|
|
113
254
|
var _default = List;
|
|
114
255
|
exports["default"] = _default;
|