linear-react-components-ui 0.4.76-beta.24 → 0.4.76-beta.27
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/alerts/AlertProvider.js +1 -1
- package/lib/alerts/BaseAlert.js +1 -1
- package/lib/assets/styles/effects.scss +20 -0
- package/lib/assets/styles/sidenav.scss +7 -1
- package/lib/assets/styles/table.scss +13 -0
- package/lib/assets/styles/uitour.scss +112 -0
- package/lib/buttons/DefaultButton.js +1 -1
- package/lib/buttons/index.js +28 -28
- package/lib/calendar/base/helpers.js +6 -6
- package/lib/calendar/base/index.js +1 -1
- package/lib/calendar/index.js +10 -10
- package/lib/checkbox/index.js +1 -1
- package/lib/dialog/index.js +6 -6
- package/lib/drawer/Drawer.js +1 -1
- package/lib/drawer/index.js +4 -4
- package/lib/dropdown/withDropdown.js +2 -2
- package/lib/fieldset/index.js +1 -1
- package/lib/form/Field.js +1 -1
- package/lib/form/helpers.js +1 -1
- package/lib/form/index.js +5 -5
- package/lib/form/withFieldHOC.js +1 -1
- package/lib/form/withFormSecurity.js +2 -2
- package/lib/index.js +12 -12
- package/lib/inputs/base/InputTextBase.js +24 -4
- package/lib/inputs/base/helpers.js +1 -1
- package/lib/inputs/color/index.js +1 -1
- package/lib/inputs/date/Dropdown.js +1 -1
- package/lib/inputs/date/helper.js +16 -0
- package/lib/inputs/date/helpers.js +1 -1
- package/lib/inputs/date/index.js +1 -1
- package/lib/inputs/inputHOC.js +1 -1
- package/lib/inputs/mask/Cnpj.js +1 -1
- package/lib/inputs/mask/Cpf.js +1 -1
- package/lib/inputs/mask/helpers.js +2 -2
- package/lib/inputs/mask/imaskHOC.js +1 -1
- package/lib/inputs/mask/index.js +4 -4
- package/lib/inputs/multiSelect/Dropdown.js +1 -1
- package/lib/inputs/multiSelect/index.js +1 -1
- package/lib/inputs/number/format_number.js +1 -1
- package/lib/inputs/period/Dropdown.js +1 -1
- package/lib/inputs/period/helper.js +1 -1
- package/lib/inputs/period/index.js +1 -1
- package/lib/inputs/search/index.js +1 -1
- package/lib/inputs/select/Dropdown.js +1 -1
- package/lib/inputs/select/helper.js +1 -1
- package/lib/inputs/select/multiple/index.js +3 -3
- package/lib/inputs/select/simple/index.js +3 -3
- package/lib/internals/constants.js +5 -4
- package/lib/internals/withTooltip.js +1 -1
- package/lib/labelMessages/index.js +1 -1
- package/lib/labels/DefaultLabel.js +1 -1
- package/lib/labels/index.js +10 -10
- package/lib/list/Item.js +32 -8
- package/lib/list/index.js +89 -11
- package/lib/list/list.spec.js +230 -102
- package/lib/menus/sidenav/NavMenuItem.js +13 -5
- package/lib/menus/sidenav/NavSubMenuItem.js +1 -1
- package/lib/menus/sidenav/helpers.js +1 -1
- package/lib/menus/sidenav/index.js +56 -90
- package/lib/menus/sidenav/popup_menu_search/index.js +22 -16
- package/lib/menus/sidenav/sidenav.spec.js +86 -19
- package/lib/panel/Default.js +1 -1
- package/lib/panel/helpers.js +1 -1
- package/lib/panel/index.js +14 -14
- package/lib/permissionValidations.js +1 -1
- package/lib/radio/index.js +1 -1
- package/lib/skeleton/SkeletonContainer.js +1 -1
- package/lib/spinner/index.js +1 -1
- package/lib/split/Split.js +1 -1
- package/lib/table/Body.js +41 -7
- package/lib/table/Header.js +12 -1
- package/lib/table/HeaderColumn.js +4 -2
- package/lib/table/Row.js +14 -7
- package/lib/table/RowColumn.js +4 -3
- package/lib/table/helpers.js +11 -1
- package/lib/table/index.js +41 -17
- package/lib/tabs/Panel.js +1 -1
- package/lib/tabs/index.js +1 -1
- package/lib/tabs/tabHelpers.js +2 -3
- package/lib/toolbar/index.js +8 -8
- package/lib/treeview/Node.js +1 -1
- package/lib/treeview/index.js +1 -1
- package/lib/treeview_old/Node.js +1 -1
- package/lib/uitour/helpers.js +15 -0
- package/lib/uitour/index.js +271 -0
- package/lib/uitour/uitour.spec.js +176 -0
- package/package.json +1 -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 }; }
|
|
@@ -39,12 +41,12 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
39
41
|
|
|
40
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; }
|
|
41
43
|
|
|
42
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr
|
|
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; }
|
|
43
45
|
|
|
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");
|
|
@@ -53,11 +55,24 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
53
55
|
|
|
54
56
|
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; }
|
|
55
57
|
|
|
56
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr
|
|
58
|
+
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; }
|
|
57
59
|
|
|
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
|
|