linear-react-components-ui 0.4.76-beta.32 → 0.4.76-beta.33
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/README.md +5 -7
- package/lib/assets/styles/select.scss +3 -3
- package/lib/assets/styles/sidenav.scss +11 -1
- package/lib/assets/styles/table.scss +0 -3
- package/lib/assets/styles/treeview.scss +0 -4
- package/lib/dropdown/Popup.js +2 -3
- package/lib/form/form.spec.js +0 -8
- package/lib/form/index.js +21 -40
- package/lib/icons/helper.js +0 -4
- package/lib/inputs/mask/Phone.js +1 -10
- package/lib/inputs/mask/input_mask.spec.js +4 -21
- package/lib/inputs/search/index.js +2 -0
- package/lib/inputs/select/Dropdown.js +62 -49
- package/lib/inputs/select/helper.js +2 -65
- package/lib/inputs/select/multiple/index.js +4 -7
- package/lib/inputs/select/simple/index.js +6 -9
- package/lib/internals/constants.js +4 -3
- package/lib/list/Item.js +31 -7
- package/lib/list/index.js +88 -10
- package/lib/list/list.spec.js +230 -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 +23 -31
- package/lib/table/Header.js +3 -3
- package/lib/table/index.js +3 -5
- package/lib/treeview/Node.js +5 -25
- package/lib/treeview/index.js +3 -11
- package/lib/treeview/treeview.spec.js +0 -18
- package/package.json +1 -1
|
@@ -78,7 +78,6 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
78
78
|
onDenied: undefined,
|
|
79
79
|
isTyping: false
|
|
80
80
|
};
|
|
81
|
-
_this.dropdownRef = /*#__PURE__*/_react["default"].createRef();
|
|
82
81
|
_this.componentId = "select-component".concat(_uuid["default"].v1());
|
|
83
82
|
_this.componentRef = /*#__PURE__*/_react["default"].createRef();
|
|
84
83
|
return _this;
|
|
@@ -153,7 +152,6 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
|
|
|
153
152
|
}))
|
|
154
153
|
})), opened && /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], _extends({}, this.state, this.props, {
|
|
155
154
|
selectFieldRef: this.componentRef,
|
|
156
|
-
dropdownRef: this.dropdownRef,
|
|
157
155
|
gridWrapperStyle: gridLayout ? window.getComputedStyle(this.gridEl) : undefined,
|
|
158
156
|
handleOnSelect: this.onSelect,
|
|
159
157
|
handleOnFilter: this.onFilter,
|
|
@@ -174,14 +172,14 @@ Object.defineProperty(SimpleSelect, "getDerivedStateFromProps", {
|
|
|
174
172
|
value: function value(props, state) {
|
|
175
173
|
var value = props.value,
|
|
176
174
|
dataSource = props.dataSource,
|
|
177
|
-
descriptionKey = props.descriptionKey,
|
|
178
175
|
idKey = props.idKey,
|
|
179
176
|
selectFirstOnEnter = props.selectFirstOnEnter,
|
|
177
|
+
descriptionKey = props.descriptionKey,
|
|
180
178
|
remoteSearch = props.remoteSearch,
|
|
181
179
|
undigitable = props.undigitable;
|
|
182
180
|
var current = null;
|
|
183
181
|
|
|
184
|
-
if (value !== state.valueFromProps
|
|
182
|
+
if (value !== state.valueFromProps) {
|
|
185
183
|
if (value !== null) {
|
|
186
184
|
current = dataSource.find(function (i) {
|
|
187
185
|
return i[idKey].toString().toLowerCase() === value.toString().toLowerCase();
|
|
@@ -229,11 +227,10 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
229
227
|
enumerable: true,
|
|
230
228
|
writable: true,
|
|
231
229
|
value: function value(event) {
|
|
232
|
-
var selectWrapper = _this3.selectWrapper
|
|
233
|
-
dropdownRef = _this3.dropdownRef;
|
|
230
|
+
var selectWrapper = _this3.selectWrapper;
|
|
234
231
|
var target = event.target;
|
|
235
232
|
|
|
236
|
-
if (target !== selectWrapper && !selectWrapper.contains(target)
|
|
233
|
+
if (target !== selectWrapper && !selectWrapper.contains(target)) {
|
|
237
234
|
_this3.setState({
|
|
238
235
|
opened: false
|
|
239
236
|
});
|
|
@@ -388,12 +385,12 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
388
385
|
e.preventDefault();
|
|
389
386
|
|
|
390
387
|
_this3.onSelect(selected);
|
|
391
|
-
} else if ([constants.keyCodes.
|
|
388
|
+
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
392
389
|
var index = dataSource.findIndex(function (d) {
|
|
393
390
|
return d[idKey] === selected[idKey];
|
|
394
391
|
});
|
|
395
392
|
|
|
396
|
-
if (e.keyCode === constants.keyCodes.
|
|
393
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
397
394
|
index = index === dataSource.length - 1 ? 0 : index + 1;
|
|
398
395
|
} else {
|
|
399
396
|
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
|
@@ -21,6 +21,8 @@ var _helpers = _interopRequireDefault(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,
|
|
@@ -68,7 +70,8 @@ var Item = function Item(props) {
|
|
|
68
70
|
var _useContext = (0, _react.useContext)(_helpers["default"]),
|
|
69
71
|
handleSelectItem = _useContext.handleSelectItem,
|
|
70
72
|
selectable = _useContext.selectable,
|
|
71
|
-
selectedItemId = _useContext.selectedItemId
|
|
73
|
+
selectedItemId = _useContext.selectedItemId,
|
|
74
|
+
selectedItemRef = _useContext.selectedItemRef;
|
|
72
75
|
|
|
73
76
|
var dropdownContext = (0, _react.useContext)(_withDropdown.WithDropdownContext);
|
|
74
77
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible];
|
|
@@ -77,6 +80,8 @@ var Item = function Item(props) {
|
|
|
77
80
|
_useState2 = _slicedToArray(_useState, 1),
|
|
78
81
|
onDenied = _useState2[0];
|
|
79
82
|
|
|
83
|
+
var history = (0, _reactRouterDom.useHistory)();
|
|
84
|
+
|
|
80
85
|
var shouldDisable = function shouldDisable() {
|
|
81
86
|
return disabled || onDenied.disabled;
|
|
82
87
|
};
|
|
@@ -97,23 +102,42 @@ var Item = function Item(props) {
|
|
|
97
102
|
return null;
|
|
98
103
|
};
|
|
99
104
|
|
|
105
|
+
var handleOnSelectItem = function handleOnSelectItem(e) {
|
|
106
|
+
if (onClick !== undefined) onClick(e, itemId);
|
|
107
|
+
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
108
|
+
if (selectable) handleSelectItem(itemId, onClick);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var onKeyDown = (0, _react.useCallback)(function (e) {
|
|
112
|
+
if ([constants.keyCodes.ENTER].includes(e.keyCode)) {
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
handleOnSelectItem(e);
|
|
115
|
+
if (url) history.push(url);
|
|
116
|
+
}
|
|
117
|
+
}, [url]);
|
|
118
|
+
|
|
100
119
|
var getProps = function getProps() {
|
|
101
120
|
if (shouldDisable()) return undefined;
|
|
102
|
-
if (
|
|
121
|
+
if (onClick === undefined && dropdownContext === undefined && !selectable) return null;
|
|
103
122
|
return {
|
|
104
123
|
onClick: function onClick(e) {
|
|
105
|
-
|
|
106
|
-
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
107
|
-
if (selectable) handleSelectItem(itemId, _onClick);
|
|
124
|
+
handleOnSelectItem(e);
|
|
108
125
|
},
|
|
109
|
-
onKeyDown: null,
|
|
110
126
|
role: 'button',
|
|
127
|
+
onKeyDown: onKeyDown,
|
|
111
128
|
tabIndex: '0'
|
|
112
129
|
};
|
|
113
130
|
};
|
|
114
131
|
|
|
132
|
+
(0, _react.useEffect)(function () {
|
|
133
|
+
document.addEventListener('keydown', onKeyDown);
|
|
134
|
+
return function () {
|
|
135
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
136
|
+
};
|
|
137
|
+
}, []);
|
|
115
138
|
if (!visible || onDenied.unvisible) return null;
|
|
116
139
|
return /*#__PURE__*/_react["default"].createElement("li", _extends({
|
|
140
|
+
ref: itemId && selectedItemId === itemId ? selectedItemRef : null,
|
|
117
141
|
style: style,
|
|
118
142
|
className: "item-container ".concat(hovered && 'hovered', "\n ").concat(itemId && selectedItemId === itemId ? '-activedlist' : '')
|
|
119
143
|
}, getProps(), {
|
package/lib/list/index.js
CHANGED
|
@@ -33,6 +33,8 @@ var _Header = _interopRequireDefault(require("./Header"));
|
|
|
33
33
|
|
|
34
34
|
var _Item = _interopRequireDefault(require("./Item"));
|
|
35
35
|
|
|
36
|
+
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
37
|
+
|
|
36
38
|
var _Separator = _interopRequireDefault(require("./Separator"));
|
|
37
39
|
|
|
38
40
|
require("../assets/styles/list.scss");
|
|
@@ -58,6 +60,19 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
58
60
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
59
61
|
|
|
60
62
|
var List = function List(props) {
|
|
63
|
+
var selectedItemRef = (0, _react.useRef)(null);
|
|
64
|
+
var listRef = (0, _react.useRef)(null);
|
|
65
|
+
|
|
66
|
+
var _useState = (0, _react.useState)(''),
|
|
67
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
68
|
+
selectedItemId = _useState2[0],
|
|
69
|
+
setSelectedItemId = _useState2[1];
|
|
70
|
+
|
|
71
|
+
var _useState3 = (0, _react.useState)([]),
|
|
72
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
73
|
+
itensId = _useState4[0],
|
|
74
|
+
setItensId = _useState4[1];
|
|
75
|
+
|
|
61
76
|
var children = props.children,
|
|
62
77
|
customClass = props.customClass,
|
|
63
78
|
condensed = props.condensed,
|
|
@@ -65,29 +80,92 @@ var List = function List(props) {
|
|
|
65
80
|
style = props.style,
|
|
66
81
|
selectable = props.selectable,
|
|
67
82
|
onSelectItem = props.onSelectItem;
|
|
68
|
-
|
|
69
|
-
var _useState = (0, _react.useState)(''),
|
|
70
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
71
|
-
selectedItemId = _useState2[0],
|
|
72
|
-
setSelectedItemId = _useState2[1];
|
|
73
|
-
|
|
74
83
|
var contextValues = {
|
|
75
84
|
selectable: selectable,
|
|
76
85
|
selectedItemId: selectedItemId,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
86
|
+
selectedItemRef: selectedItemRef,
|
|
87
|
+
children: children,
|
|
88
|
+
handleSelectItem: function handleSelectItem(itemId, onClick) {
|
|
89
|
+
if (!onSelectItem && onClick) setSelectedItemId(itemId);
|
|
90
|
+
if (onSelectItem) onSelectItem(itemId);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var onKeyDown = function onKeyDown(e) {
|
|
95
|
+
if ([constants.keyCodes.ARROW_DOWN, constants.keyCodes.ARROW_UP].includes(e.keyCode)) {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
|
|
98
|
+
if (e.keyCode === constants.keyCodes.ARROW_DOWN) {
|
|
99
|
+
if (selectedItemId === itensId[itensId.length - 1]) {
|
|
100
|
+
setSelectedItemId(itensId[0]);
|
|
101
|
+
} else {
|
|
102
|
+
var index = itensId.indexOf(selectedItemId === '' ? '0' : selectedItemId);
|
|
103
|
+
setSelectedItemId(itensId[index + 1]);
|
|
104
|
+
}
|
|
105
|
+
} else if (e.keyCode === constants.keyCodes.ARROW_UP) {
|
|
106
|
+
if (selectedItemId === itensId[0]) {
|
|
107
|
+
setSelectedItemId(itensId[itensId.length - 1]);
|
|
108
|
+
} else {
|
|
109
|
+
var _index = itensId.indexOf(selectedItemId);
|
|
110
|
+
|
|
111
|
+
setSelectedItemId(itensId[_index - 1]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return selectedItemRef.current && selectedItemRef.current.focus();
|
|
80
116
|
}
|
|
117
|
+
|
|
118
|
+
return null;
|
|
81
119
|
};
|
|
120
|
+
|
|
121
|
+
(0, _react.useEffect)(function () {
|
|
122
|
+
if (selectedItemRef.current && listRef.current && listRef.current.scroll) {
|
|
123
|
+
var selectedItemRect = selectedItemRef.current.getBoundingClientRect();
|
|
124
|
+
var listRect = listRef.current.getBoundingClientRect();
|
|
125
|
+
var defaultScrollTop = 0;
|
|
126
|
+
var defaultBottomOffset = 100;
|
|
127
|
+
|
|
128
|
+
if (selectedItemRect.top - selectedItemRect.height > listRect.bottom) {
|
|
129
|
+
listRef.current.scroll({
|
|
130
|
+
top: selectedItemRect.top
|
|
131
|
+
});
|
|
132
|
+
} else if (selectedItemRect.top + selectedItemRect.height - listRect.y >= listRect.height) {
|
|
133
|
+
listRef.current.scroll({
|
|
134
|
+
top: listRef.current.scrollTop + selectedItemRect.height
|
|
135
|
+
});
|
|
136
|
+
} else if (selectedItemRect.bottom < defaultBottomOffset) {
|
|
137
|
+
listRef.current.scroll({
|
|
138
|
+
top: defaultScrollTop
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
listRef.current.scroll({
|
|
142
|
+
top: listRef.current.scrollTop - selectedItemRect.height
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}, [selectedItemRef.current]);
|
|
147
|
+
(0, _react.useEffect)(function () {
|
|
148
|
+
document.addEventListener('keydown', onKeyDown);
|
|
149
|
+
return function () {
|
|
150
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
151
|
+
};
|
|
152
|
+
});
|
|
82
153
|
(0, _react.useEffect)(function () {
|
|
83
154
|
if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
|
|
84
155
|
}, [props.selectedItemId]);
|
|
156
|
+
(0, _react.useEffect)(function () {
|
|
157
|
+
var newItensIds = children.length > 0 && children.map(function (item) {
|
|
158
|
+
return item.props.itemId;
|
|
159
|
+
}).filter(Boolean);
|
|
160
|
+
setItensId(newItensIds);
|
|
161
|
+
}, [children.length]);
|
|
85
162
|
return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
|
|
86
163
|
value: contextValues
|
|
87
164
|
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
88
165
|
"data-testid": "list-component",
|
|
89
166
|
style: style,
|
|
90
|
-
|
|
167
|
+
ref: listRef,
|
|
168
|
+
className: "list-component ".concat(condensed && '-condensed', "\n ").concat(customClass, " ").concat(!transparent && '-listbackground')
|
|
91
169
|
}, children));
|
|
92
170
|
};
|
|
93
171
|
|