linear-react-components-ui 0.4.76-beta.31 → 0.4.76-beta.34
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/commons.scss +10 -0
- package/lib/assets/styles/list.scss +8 -0
- package/lib/assets/styles/select.scss +3 -3
- package/lib/assets/styles/sidenav.scss +11 -1
- package/lib/assets/styles/table.scss +2 -7
- package/lib/dropdown/Popup.js +3 -2
- package/lib/inputs/search/index.js +2 -0
- package/lib/inputs/select/Dropdown.js +49 -62
- package/lib/inputs/select/helper.js +65 -2
- package/lib/inputs/select/multiple/index.js +7 -4
- package/lib/inputs/select/simple/index.js +9 -6
- 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 +154 -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/package.json +1 -1
- package/lib/inputs/date/helper.js +0 -16
|
@@ -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% {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
.
|
|
51
|
+
.dropdown-component > .select-dropdown {
|
|
52
52
|
animation: 0.5s ease-in 0s 1 slideDown;
|
|
53
53
|
background-color: #FFF;
|
|
54
54
|
border: $component-border-color;
|
|
@@ -58,17 +58,17 @@
|
|
|
58
58
|
height: auto;
|
|
59
59
|
overflow-y: auto;
|
|
60
60
|
overflow-x: hidden;
|
|
61
|
-
position: absolute;
|
|
62
61
|
margin-top: 2px;
|
|
63
|
-
z-index: 99999999999;
|
|
64
62
|
> .filtercontainer {
|
|
65
63
|
display: grid;
|
|
66
64
|
grid-template-columns: 1fr 20px;
|
|
65
|
+
align-items: center;
|
|
67
66
|
border: 1px solid $component-border-color;
|
|
68
67
|
margin: 4px;
|
|
69
68
|
}
|
|
70
69
|
> .filtercontainer > .filterinput {
|
|
71
70
|
border: 0;
|
|
71
|
+
width: 100%;
|
|
72
72
|
font-size: 13px;
|
|
73
73
|
text-indent: 4px;
|
|
74
74
|
padding: 10px 5px;
|
|
@@ -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,
|
package/lib/dropdown/Popup.js
CHANGED
|
@@ -18,8 +18,9 @@ var getCalendarDropdownStyle = function getCalendarDropdownStyle(_ref) {
|
|
|
18
18
|
leftPosition = _ref.leftPosition,
|
|
19
19
|
rightPosition = _ref.rightPosition,
|
|
20
20
|
align = _ref.align,
|
|
21
|
-
isFloatMenu = _ref.isFloatMenu
|
|
22
|
-
|
|
21
|
+
isFloatMenu = _ref.isFloatMenu,
|
|
22
|
+
minWidth = _ref.minWidth;
|
|
23
|
+
var style = "top: ".concat(topPosition + (isFloatMenu ? 6 : 2), "px; min-width: ").concat(minWidth, "px;");
|
|
23
24
|
|
|
24
25
|
if (align === 'left') {
|
|
25
26
|
style += "left: ".concat(leftPosition, "px;");
|
|
@@ -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;
|
|
@@ -17,6 +17,8 @@ var _avatar = _interopRequireDefault(require("../../avatar"));
|
|
|
17
17
|
|
|
18
18
|
var helper = _interopRequireWildcard(require("./helper"));
|
|
19
19
|
|
|
20
|
+
var _Popup = _interopRequireDefault(require("../../dropdown/Popup"));
|
|
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); }
|
|
@@ -37,67 +39,50 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
37
39
|
|
|
38
40
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
39
41
|
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
42
|
+
var Dropdown = function Dropdown(props) {
|
|
43
|
+
var dataCombo = props.dataCombo,
|
|
44
|
+
dropdownWidth = props.dropdownWidth,
|
|
45
|
+
selected = props.selected,
|
|
46
|
+
handleOnSelect = props.handleOnSelect,
|
|
47
|
+
handleOnFilter = props.handleOnFilter,
|
|
48
|
+
searchOnDropdown = props.searchOnDropdown,
|
|
49
|
+
handleOnKeydown = props.handleOnKeydown,
|
|
50
|
+
searchNotFoundText = props.searchNotFoundText,
|
|
51
|
+
handleOnBlur = props.handleOnBlur,
|
|
52
|
+
handleOnFocus = props.handleOnFocus,
|
|
53
|
+
opened = props.opened,
|
|
54
|
+
idKey = props.idKey,
|
|
55
|
+
descriptionKey = props.descriptionKey,
|
|
56
|
+
currents = props.currents,
|
|
57
|
+
imageAlign = props.imageAlign,
|
|
58
|
+
striped = props.striped,
|
|
59
|
+
imgSrcKey = props.imgSrcKey,
|
|
60
|
+
gridWrapperStyle = props.gridWrapperStyle,
|
|
61
|
+
inputValue = props.inputValue,
|
|
62
|
+
dropdownRef = props.dropdownRef;
|
|
63
|
+
|
|
64
|
+
var _useState = (0, _react.useState)(helper.returnDropdownDynamicStyles(_extends({}, props))),
|
|
65
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
66
|
+
dropdownDynamicStyles = _useState2[0],
|
|
67
|
+
setDropdownDynamicStyles = _useState2[1];
|
|
68
|
+
|
|
69
|
+
(0, _react.useEffect)(function () {
|
|
70
|
+
if (dropdownRef.current) {
|
|
71
|
+
setDropdownDynamicStyles(helper.returnDropdownDynamicStyles(_extends({}, props)));
|
|
59
72
|
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var dataCombo = _ref.dataCombo,
|
|
70
|
-
dropdownWidth = _ref.dropdownWidth,
|
|
71
|
-
selected = _ref.selected,
|
|
72
|
-
handleOnSelect = _ref.handleOnSelect,
|
|
73
|
-
handleOnFilter = _ref.handleOnFilter,
|
|
74
|
-
searchOnDropdown = _ref.searchOnDropdown,
|
|
75
|
-
handleOnKeydown = _ref.handleOnKeydown,
|
|
76
|
-
searchNotFoundText = _ref.searchNotFoundText,
|
|
77
|
-
handleOnBlur = _ref.handleOnBlur,
|
|
78
|
-
handleOnFocus = _ref.handleOnFocus,
|
|
79
|
-
opened = _ref.opened,
|
|
80
|
-
idKey = _ref.idKey,
|
|
81
|
-
descriptionKey = _ref.descriptionKey,
|
|
82
|
-
currents = _ref.currents,
|
|
83
|
-
imageAlign = _ref.imageAlign,
|
|
84
|
-
striped = _ref.striped,
|
|
85
|
-
imgSrcKey = _ref.imgSrcKey,
|
|
86
|
-
gridWrapperStyle = _ref.gridWrapperStyle,
|
|
87
|
-
selectFieldRef = _ref.selectFieldRef,
|
|
88
|
-
dropdownMaxHeight = _ref.dropdownMaxHeight,
|
|
89
|
-
inputValue = _ref.inputValue;
|
|
90
|
-
|
|
91
|
-
var _useState = (0, _react.useState)(returnDropdownDynamicStyles(selectFieldRef, dropdownMaxHeight)),
|
|
92
|
-
_useState2 = _slicedToArray(_useState, 1),
|
|
93
|
-
dropdownDynamicStyles = _useState2[0];
|
|
94
|
-
|
|
95
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
96
|
-
className: "dropdown",
|
|
97
|
-
style: _extends({
|
|
73
|
+
}, [dropdownRef.current, dataCombo]);
|
|
74
|
+
return /*#__PURE__*/_react["default"].createElement(_Popup["default"], {
|
|
75
|
+
leftPosition: dropdownDynamicStyles.left,
|
|
76
|
+
topPosition: dropdownDynamicStyles.top,
|
|
77
|
+
minWidth: dropdownWidth
|
|
78
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
79
|
+
className: "select-dropdown",
|
|
80
|
+
ref: dropdownRef,
|
|
81
|
+
style: {
|
|
98
82
|
width: dropdownWidth,
|
|
99
|
-
marginLeft: gridWrapperStyle ? gridWrapperStyle.paddingLeft : '0'
|
|
100
|
-
|
|
83
|
+
marginLeft: gridWrapperStyle ? gridWrapperStyle.paddingLeft : '0',
|
|
84
|
+
maxHeight: dropdownDynamicStyles.maxHeight
|
|
85
|
+
}
|
|
101
86
|
}, searchOnDropdown && /*#__PURE__*/_react["default"].createElement("div", {
|
|
102
87
|
className: "filtercontainer"
|
|
103
88
|
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
@@ -153,7 +138,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
153
138
|
}, item[descriptionKey])));
|
|
154
139
|
}), dataCombo.length === 0 && /*#__PURE__*/_react["default"].createElement("div", {
|
|
155
140
|
className: "notfound"
|
|
156
|
-
}, searchNotFoundText));
|
|
141
|
+
}, searchNotFoundText)));
|
|
157
142
|
};
|
|
158
143
|
|
|
159
144
|
Dropdown.propTypes = {
|
|
@@ -171,13 +156,14 @@ Dropdown.propTypes = {
|
|
|
171
156
|
handleOnBlur: _propTypes["default"].func.isRequired,
|
|
172
157
|
handleOnFocus: _propTypes["default"].func.isRequired,
|
|
173
158
|
opened: _propTypes["default"].bool.isRequired,
|
|
159
|
+
dropdownRef: _propTypes["default"].object.isRequired,
|
|
174
160
|
currents: _propTypes["default"].arrayOf(_propTypes["default"].object),
|
|
175
161
|
imageAlign: _propTypes["default"].oneOf(['left', 'right']),
|
|
176
162
|
striped: _propTypes["default"].bool,
|
|
177
163
|
gridWrapperStyle: _propTypes["default"].object,
|
|
178
164
|
selectFieldRef: _propTypes["default"].object,
|
|
179
165
|
dropdownMaxHeight: _propTypes["default"].number,
|
|
180
|
-
inputValue: _propTypes["default"].string
|
|
166
|
+
inputValue: _propTypes["default"].string
|
|
181
167
|
};
|
|
182
168
|
Dropdown.defaultProps = {
|
|
183
169
|
selected: null,
|
|
@@ -187,7 +173,8 @@ Dropdown.defaultProps = {
|
|
|
187
173
|
imgSrcKey: undefined,
|
|
188
174
|
gridWrapperStyle: undefined,
|
|
189
175
|
selectFieldRef: undefined,
|
|
190
|
-
dropdownMaxHeight: undefined
|
|
176
|
+
dropdownMaxHeight: undefined,
|
|
177
|
+
inputValue: undefined
|
|
191
178
|
};
|
|
192
179
|
var _default = Dropdown;
|
|
193
180
|
exports["default"] = _default;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getFilteredMultipleDataCombo = exports.getFilteredSimpleDataCombo = exports.getDropdownItemCssClass = exports.contentClass = void 0;
|
|
6
|
+
exports.returnDropdownDynamicStyles = exports.getFilteredMultipleDataCombo = exports.getFilteredSimpleDataCombo = exports.getDropdownItemCssClass = exports.contentClass = void 0;
|
|
7
7
|
|
|
8
8
|
var contentClass = function contentClass(props) {
|
|
9
9
|
return "content ".concat(props.showClearButton ? '' : 'noclear');
|
|
@@ -42,4 +42,67 @@ var getFilteredMultipleDataCombo = function getFilteredMultipleDataCombo(_ref2)
|
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
exports.getFilteredMultipleDataCombo = getFilteredMultipleDataCombo;
|
|
45
|
+
exports.getFilteredMultipleDataCombo = getFilteredMultipleDataCombo;
|
|
46
|
+
|
|
47
|
+
var returnDropdownPosition = function returnDropdownPosition(_ref3) {
|
|
48
|
+
var selectFieldRects = _ref3.selectFieldRects,
|
|
49
|
+
dropdownRef = _ref3.dropdownRef,
|
|
50
|
+
dropdownRects = _ref3.dropdownRects;
|
|
51
|
+
var aboveDropdown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
52
|
+
var DEFAULT_MARGIN_BOTTOM = 10;
|
|
53
|
+
|
|
54
|
+
if (aboveDropdown) {
|
|
55
|
+
return selectFieldRects.top + window.scrollY - (dropdownRef.current && dropdownRects.height) - DEFAULT_MARGIN_BOTTOM;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return selectFieldRects.top + window.scrollY + selectFieldRects.height;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var returnDropdownDynamicStyles = function returnDropdownDynamicStyles(_ref4) {
|
|
62
|
+
var selectFieldRef = _ref4.selectFieldRef,
|
|
63
|
+
dropdownMaxHeight = _ref4.dropdownMaxHeight,
|
|
64
|
+
dropdownRef = _ref4.dropdownRef;
|
|
65
|
+
var selectFieldRects = selectFieldRef.current.getBoundingClientRect();
|
|
66
|
+
var dropdownRects = dropdownRef.current && dropdownRef.current.getBoundingClientRect();
|
|
67
|
+
var dropdownBottomDistance = window.innerHeight - selectFieldRects.bottom;
|
|
68
|
+
var bottomOffset = 30;
|
|
69
|
+
var maxDropdownBottomDistance = 200;
|
|
70
|
+
var height = dropdownMaxHeight;
|
|
71
|
+
var dropdownPosition;
|
|
72
|
+
|
|
73
|
+
if (!height || height <= 0) {
|
|
74
|
+
if (dropdownBottomDistance < maxDropdownBottomDistance) {
|
|
75
|
+
height = selectFieldRects.top;
|
|
76
|
+
dropdownPosition = returnDropdownPosition({
|
|
77
|
+
selectFieldRects: selectFieldRects,
|
|
78
|
+
dropdownRef: dropdownRef,
|
|
79
|
+
dropdownRects: dropdownRects
|
|
80
|
+
}, true);
|
|
81
|
+
} else {
|
|
82
|
+
height = dropdownBottomDistance;
|
|
83
|
+
dropdownPosition = returnDropdownPosition({
|
|
84
|
+
selectFieldRects: selectFieldRects
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
} else {
|
|
88
|
+
maxDropdownBottomDistance = height;
|
|
89
|
+
|
|
90
|
+
if (dropdownBottomDistance < maxDropdownBottomDistance) {
|
|
91
|
+
dropdownPosition = returnDropdownPosition({
|
|
92
|
+
selectFieldRects: selectFieldRects,
|
|
93
|
+
dropdownRef: dropdownRef,
|
|
94
|
+
dropdownRects: dropdownRects
|
|
95
|
+
}, true);
|
|
96
|
+
} else {
|
|
97
|
+
dropdownPosition = returnDropdownPosition(selectFieldRects);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return {
|
|
102
|
+
maxHeight: height - bottomOffset,
|
|
103
|
+
top: dropdownPosition,
|
|
104
|
+
left: selectFieldRects.left
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
exports.returnDropdownDynamicStyles = returnDropdownDynamicStyles;
|
|
@@ -83,6 +83,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
83
83
|
|
|
84
84
|
_this.componentId = "select-component".concat(_uuid["default"].v1());
|
|
85
85
|
_this.componentRef = /*#__PURE__*/_react["default"].createRef();
|
|
86
|
+
_this.dropdownRef = /*#__PURE__*/_react["default"].createRef();
|
|
86
87
|
_this.state = {
|
|
87
88
|
valueFromProps: null,
|
|
88
89
|
dataCombo: props.dataSource,
|
|
@@ -142,10 +143,11 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
142
143
|
}, {
|
|
143
144
|
key: "onClickOutside",
|
|
144
145
|
value: function onClickOutside(event) {
|
|
145
|
-
var selectWrapper = this.selectWrapper
|
|
146
|
+
var selectWrapper = this.selectWrapper,
|
|
147
|
+
dropdownRef = this.dropdownRef;
|
|
146
148
|
var target = event.target;
|
|
147
149
|
|
|
148
|
-
if (target !== selectWrapper && !selectWrapper.contains(target)) {
|
|
150
|
+
if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
|
|
149
151
|
this.setState({
|
|
150
152
|
opened: false
|
|
151
153
|
});
|
|
@@ -270,12 +272,12 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
270
272
|
|
|
271
273
|
if (e.keyCode === constants.keyCodes.ENTER) {
|
|
272
274
|
this.onSelect(selected);
|
|
273
|
-
} else if ([constants.keyCodes.
|
|
275
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
274
276
|
var index = dataSource.findIndex(function (d) {
|
|
275
277
|
return d === selected;
|
|
276
278
|
});
|
|
277
279
|
|
|
278
|
-
if (e.keyCode === constants.keyCodes.
|
|
280
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
279
281
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
280
282
|
} else {
|
|
281
283
|
index = index === 0 ? dataSource.length - 1 : index - 1;
|
|
@@ -363,6 +365,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
|
|
|
363
365
|
handleOnUnselect: this.onUnselect
|
|
364
366
|
}))), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
|
|
365
367
|
selectFieldRef: this.componentRef,
|
|
368
|
+
dropdownRef: this.dropdownRef,
|
|
366
369
|
gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
|
|
367
370
|
handleOnSelect: this.onSelect,
|
|
368
371
|
handleOnFilter: this.onFilter,
|
|
@@ -78,6 +78,7 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
78
78
|
onDenied: undefined,
|
|
79
79
|
isTyping: false
|
|
80
80
|
};
|
|
81
|
+
_this.dropdownRef = /*#__PURE__*/_react["default"].createRef();
|
|
81
82
|
_this.componentId = "select-component".concat(_uuid["default"].v1());
|
|
82
83
|
_this.componentRef = /*#__PURE__*/_react["default"].createRef();
|
|
83
84
|
return _this;
|
|
@@ -152,6 +153,7 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
152
153
|
}))
|
|
153
154
|
})), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
|
|
154
155
|
selectFieldRef: this.componentRef,
|
|
156
|
+
dropdownRef: this.dropdownRef,
|
|
155
157
|
gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
|
|
156
158
|
handleOnSelect: this.onSelect,
|
|
157
159
|
handleOnFilter: this.onFilter,
|
|
@@ -172,14 +174,14 @@ Object.defineProperty(SimpleSelect, "getDerivedStateFromProps", {
|
|
|
172
174
|
value: function value(props, state) {
|
|
173
175
|
var value = props.value,
|
|
174
176
|
dataSource = props.dataSource,
|
|
177
|
+
descriptionKey = props.descriptionKey,
|
|
175
178
|
idKey = props.idKey,
|
|
176
179
|
selectFirstOnEnter = props.selectFirstOnEnter,
|
|
177
|
-
descriptionKey = props.descriptionKey,
|
|
178
180
|
remoteSearch = props.remoteSearch,
|
|
179
181
|
undigitable = props.undigitable;
|
|
180
182
|
var current = null;
|
|
181
183
|
|
|
182
|
-
if (value !== state.valueFromProps) {
|
|
184
|
+
if (value !== state.valueFromProps && dataSource.length > 0) {
|
|
183
185
|
if (value !== null) {
|
|
184
186
|
current = dataSource.find(function (i) {
|
|
185
187
|
return i[idKey].toString().toLowerCase() === value.toString().toLowerCase();
|
|
@@ -227,10 +229,11 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
227
229
|
enumerable: true,
|
|
228
230
|
writable: true,
|
|
229
231
|
value: function value(event) {
|
|
230
|
-
var selectWrapper = _this3.selectWrapper
|
|
232
|
+
var selectWrapper = _this3.selectWrapper,
|
|
233
|
+
dropdownRef = _this3.dropdownRef;
|
|
231
234
|
var target = event.target;
|
|
232
235
|
|
|
233
|
-
if (target !== selectWrapper && !selectWrapper.contains(target)) {
|
|
236
|
+
if (target !== selectWrapper && !selectWrapper.contains(target) && dropdownRef.current && !dropdownRef.current.contains(target)) {
|
|
234
237
|
_this3.setState({
|
|
235
238
|
opened: false
|
|
236
239
|
});
|
|
@@ -385,12 +388,12 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
385
388
|
e.preventDefault();
|
|
386
389
|
|
|
387
390
|
_this3.onSelect(selected);
|
|
388
|
-
} else if ([constants.keyCodes.
|
|
391
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
389
392
|
var index = dataSource.findIndex(function (d) {
|
|
390
393
|
return d[idKey] === selected[idKey];
|
|
391
394
|
});
|
|
392
395
|
|
|
393
|
-
if (e.keyCode === constants.keyCodes.
|
|
396
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
394
397
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
395
398
|
} else {
|
|
396
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;
|