linear-react-components-ui 0.4.76-beta.27 → 0.4.76-beta.28
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 +7 -5
- package/lib/assets/styles/select.scss +3 -3
- package/lib/assets/styles/sidenav.scss +1 -7
- package/lib/assets/styles/treeview.scss +4 -0
- package/lib/dropdown/Popup.js +3 -2
- package/lib/form/form.spec.js +8 -0
- package/lib/form/index.js +40 -21
- package/lib/inputs/mask/Phone.js +10 -1
- package/lib/inputs/mask/input_mask.spec.js +21 -4
- package/lib/inputs/select/Dropdown.js +48 -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 +7 -4
- package/lib/internals/constants.js +3 -4
- package/lib/list/Item.js +7 -31
- package/lib/list/index.js +10 -88
- package/lib/list/list.spec.js +102 -230
- package/lib/menus/sidenav/NavMenuItem.js +4 -12
- package/lib/menus/sidenav/index.js +81 -47
- package/lib/menus/sidenav/popup_menu_search/index.js +15 -21
- package/lib/menus/sidenav/sidenav.spec.js +19 -86
- package/lib/treeview/Node.js +25 -5
- package/lib/treeview/index.js +11 -3
- package/lib/treeview/treeview.spec.js +18 -0
- package/package.json +1 -1
package/lib/list/Item.js
CHANGED
|
@@ -21,8 +21,6 @@ var _helpers = _interopRequireDefault(require("./helpers"));
|
|
|
21
21
|
|
|
22
22
|
var _withDropdown = require("../dropdown/withDropdown");
|
|
23
23
|
|
|
24
|
-
var constants = _interopRequireWildcard(require("../internals/constants"));
|
|
25
|
-
|
|
26
24
|
var _permissionValidations = require("../permissionValidations");
|
|
27
25
|
|
|
28
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -46,7 +44,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
46
44
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
47
45
|
|
|
48
46
|
var Item = function Item(props) {
|
|
49
|
-
var
|
|
47
|
+
var _onClick = props.onClick,
|
|
50
48
|
leftIconName = props.leftIconName,
|
|
51
49
|
leftIcon = props.leftIcon,
|
|
52
50
|
displayCheckbox = props.displayCheckbox,
|
|
@@ -70,8 +68,7 @@ var Item = function Item(props) {
|
|
|
70
68
|
var _useContext = (0, _react.useContext)(_helpers["default"]),
|
|
71
69
|
handleSelectItem = _useContext.handleSelectItem,
|
|
72
70
|
selectable = _useContext.selectable,
|
|
73
|
-
selectedItemId = _useContext.selectedItemId
|
|
74
|
-
selectedItemRef = _useContext.selectedItemRef;
|
|
71
|
+
selectedItemId = _useContext.selectedItemId;
|
|
75
72
|
|
|
76
73
|
var dropdownContext = (0, _react.useContext)(_withDropdown.WithDropdownContext);
|
|
77
74
|
var options = [_permissionValidations.OPTIONS_ON_DENIED.disabled, _permissionValidations.OPTIONS_ON_DENIED.unvisible];
|
|
@@ -80,8 +77,6 @@ var Item = function Item(props) {
|
|
|
80
77
|
_useState2 = _slicedToArray(_useState, 1),
|
|
81
78
|
onDenied = _useState2[0];
|
|
82
79
|
|
|
83
|
-
var history = (0, _reactRouterDom.useHistory)();
|
|
84
|
-
|
|
85
80
|
var shouldDisable = function shouldDisable() {
|
|
86
81
|
return disabled || onDenied.disabled;
|
|
87
82
|
};
|
|
@@ -102,42 +97,23 @@ var Item = function Item(props) {
|
|
|
102
97
|
return null;
|
|
103
98
|
};
|
|
104
99
|
|
|
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
|
-
|
|
119
100
|
var getProps = function getProps() {
|
|
120
101
|
if (shouldDisable()) return undefined;
|
|
121
|
-
if (
|
|
102
|
+
if (_onClick === undefined && dropdownContext === undefined && !selectable) return null;
|
|
122
103
|
return {
|
|
123
104
|
onClick: function onClick(e) {
|
|
124
|
-
|
|
105
|
+
if (_onClick !== undefined) _onClick(e, itemId);
|
|
106
|
+
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
107
|
+
if (selectable) handleSelectItem(itemId, _onClick);
|
|
125
108
|
},
|
|
109
|
+
onKeyDown: null,
|
|
126
110
|
role: 'button',
|
|
127
|
-
onKeyDown: onKeyDown,
|
|
128
111
|
tabIndex: '0'
|
|
129
112
|
};
|
|
130
113
|
};
|
|
131
114
|
|
|
132
|
-
(0, _react.useEffect)(function () {
|
|
133
|
-
document.addEventListener('keydown', onKeyDown);
|
|
134
|
-
return function () {
|
|
135
|
-
document.removeEventListener('keydown', onKeyDown);
|
|
136
|
-
};
|
|
137
|
-
}, []);
|
|
138
115
|
if (!visible || onDenied.unvisible) return null;
|
|
139
116
|
return /*#__PURE__*/_react["default"].createElement("li", _extends({
|
|
140
|
-
ref: itemId && selectedItemId === itemId ? selectedItemRef : null,
|
|
141
117
|
style: style,
|
|
142
118
|
className: "item-container ".concat(hovered && 'hovered', "\n ").concat(itemId && selectedItemId === itemId ? '-activedlist' : '')
|
|
143
119
|
}, getProps(), {
|
package/lib/list/index.js
CHANGED
|
@@ -33,8 +33,6 @@ 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
36
|
var _Separator = _interopRequireDefault(require("./Separator"));
|
|
39
37
|
|
|
40
38
|
require("../assets/styles/list.scss");
|
|
@@ -60,19 +58,6 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
|
|
|
60
58
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
61
59
|
|
|
62
60
|
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
|
-
|
|
76
61
|
var children = props.children,
|
|
77
62
|
customClass = props.customClass,
|
|
78
63
|
condensed = props.condensed,
|
|
@@ -80,92 +65,29 @@ var List = function List(props) {
|
|
|
80
65
|
style = props.style,
|
|
81
66
|
selectable = props.selectable,
|
|
82
67
|
onSelectItem = props.onSelectItem;
|
|
68
|
+
|
|
69
|
+
var _useState = (0, _react.useState)(''),
|
|
70
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
71
|
+
selectedItemId = _useState2[0],
|
|
72
|
+
setSelectedItemId = _useState2[1];
|
|
73
|
+
|
|
83
74
|
var contextValues = {
|
|
84
75
|
selectable: selectable,
|
|
85
76
|
selectedItemId: selectedItemId,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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();
|
|
77
|
+
handleSelectItem: function handleSelectItem(selectedId, onClick) {
|
|
78
|
+
if (!onSelectItem && onClick) setSelectedItemId(selectedId);
|
|
79
|
+
if (onSelectItem) onSelectItem(selectedId);
|
|
116
80
|
}
|
|
117
|
-
|
|
118
|
-
return null;
|
|
119
81
|
};
|
|
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
|
-
});
|
|
153
82
|
(0, _react.useEffect)(function () {
|
|
154
83
|
if (onSelectItem && props.selectedItemId) setSelectedItemId(props.selectedItemId);
|
|
155
84
|
}, [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]);
|
|
162
85
|
return /*#__PURE__*/_react["default"].createElement(_helpers["default"].Provider, {
|
|
163
86
|
value: contextValues
|
|
164
87
|
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
165
88
|
"data-testid": "list-component",
|
|
166
89
|
style: style,
|
|
167
|
-
|
|
168
|
-
className: "list-component ".concat(condensed && '-condensed', "\n ").concat(customClass, " ").concat(!transparent && '-listbackground')
|
|
90
|
+
className: "list-component ".concat(condensed && '-condensed', " ").concat(customClass, " ").concat(!transparent && '-listbackground')
|
|
169
91
|
}, children));
|
|
170
92
|
};
|
|
171
93
|
|