linear-react-components-ui 0.4.76-beta.26 → 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.
|
@@ -26,10 +26,16 @@ que utilizam. Em caso de mudança, ficar atento para os refatores.
|
|
|
26
26
|
align-items: center;
|
|
27
27
|
justify-content: center;
|
|
28
28
|
padding-left: 0px;
|
|
29
|
+
> .searchmenubutton {
|
|
30
|
+
width: 100%;
|
|
31
|
+
height: 100%;
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
}
|
|
29
36
|
}
|
|
30
37
|
&.-customsidenavitem:hover {
|
|
31
38
|
background-color: white;
|
|
32
|
-
cursor: text;
|
|
33
39
|
}
|
|
34
40
|
&.-disabled {
|
|
35
41
|
@extend %component-disabled;
|
package/lib/list/Item.js
CHANGED
|
@@ -108,13 +108,13 @@ var Item = function Item(props) {
|
|
|
108
108
|
if (selectable) handleSelectItem(itemId, onClick);
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
-
var onKeyDown = function
|
|
111
|
+
var onKeyDown = (0, _react.useCallback)(function (e) {
|
|
112
112
|
if ([constants.keyCodes.ENTER].includes(e.keyCode)) {
|
|
113
113
|
e.preventDefault();
|
|
114
114
|
handleOnSelectItem(e);
|
|
115
115
|
if (url) history.push(url);
|
|
116
116
|
}
|
|
117
|
-
};
|
|
117
|
+
}, [url]);
|
|
118
118
|
|
|
119
119
|
var getProps = function getProps() {
|
|
120
120
|
if (shouldDisable()) return undefined;
|
|
@@ -123,12 +123,18 @@ var Item = function Item(props) {
|
|
|
123
123
|
onClick: function onClick(e) {
|
|
124
124
|
handleOnSelectItem(e);
|
|
125
125
|
},
|
|
126
|
-
onKeyDown: onKeyDown,
|
|
127
126
|
role: 'button',
|
|
127
|
+
onKeyDown: onKeyDown,
|
|
128
128
|
tabIndex: '0'
|
|
129
129
|
};
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
+
(0, _react.useEffect)(function () {
|
|
133
|
+
document.addEventListener('keydown', onKeyDown);
|
|
134
|
+
return function () {
|
|
135
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
136
|
+
};
|
|
137
|
+
}, []);
|
|
132
138
|
if (!visible || onDenied.unvisible) return null;
|
|
133
139
|
return /*#__PURE__*/_react["default"].createElement("li", _extends({
|
|
134
140
|
ref: itemId && selectedItemId === itemId ? selectedItemRef : null,
|
|
@@ -43,8 +43,6 @@ var _NavSubMenuItem = _interopRequireDefault(require("./NavSubMenuItem"));
|
|
|
43
43
|
|
|
44
44
|
var _NavMenuGroup = _interopRequireDefault(require("./NavMenuGroup"));
|
|
45
45
|
|
|
46
|
-
var _text = _interopRequireDefault(require("../../inputs/text"));
|
|
47
|
-
|
|
48
46
|
var _ExpandMenu = _interopRequireDefault(require("./ExpandMenu"));
|
|
49
47
|
|
|
50
48
|
require("../../assets/styles/sidenav.scss");
|
|
@@ -100,30 +98,20 @@ var SideNav = function SideNav(props) {
|
|
|
100
98
|
isExpanded = _useState2[0],
|
|
101
99
|
setIsExpanded = _useState2[1];
|
|
102
100
|
|
|
103
|
-
var _useState3 = (0, _react.useState)(
|
|
101
|
+
var _useState3 = (0, _react.useState)([]),
|
|
104
102
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
menuItemsContent = _useState4[0],
|
|
104
|
+
setMenuItemsContent = _useState4[1];
|
|
107
105
|
|
|
108
|
-
var _useState5 = (0, _react.useState)(
|
|
106
|
+
var _useState5 = (0, _react.useState)({}),
|
|
109
107
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
sideNavDimensions = _useState6[0],
|
|
109
|
+
setSideNavDimensions = _useState6[1];
|
|
112
110
|
|
|
113
|
-
var _useState7 = (0, _react.useState)(
|
|
111
|
+
var _useState7 = (0, _react.useState)(false),
|
|
114
112
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
var _useState9 = (0, _react.useState)({}),
|
|
119
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
120
|
-
sideNavDimensions = _useState10[0],
|
|
121
|
-
setSideNavDimensions = _useState10[1];
|
|
122
|
-
|
|
123
|
-
var _useState11 = (0, _react.useState)(false),
|
|
124
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
125
|
-
openSearchMenuPopup = _useState12[0],
|
|
126
|
-
setOpenSearchMenuPopup = _useState12[1];
|
|
113
|
+
openSearchMenuPopup = _useState8[0],
|
|
114
|
+
setOpenSearchMenuPopup = _useState8[1];
|
|
127
115
|
|
|
128
116
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
129
117
|
var sideNavRef = (0, _react.useRef)(null);
|
|
@@ -133,41 +121,6 @@ var SideNav = function SideNav(props) {
|
|
|
133
121
|
if (onExpandMenuClick) onExpandMenuClick(!isExpanded);
|
|
134
122
|
};
|
|
135
123
|
|
|
136
|
-
var returnLeftElements = function returnLeftElements() {
|
|
137
|
-
var propsTextField = {};
|
|
138
|
-
|
|
139
|
-
if (searchFieldHasNoFocus) {
|
|
140
|
-
propsTextField = {
|
|
141
|
-
leftElements: [/*#__PURE__*/_react["default"].createElement("div", {
|
|
142
|
-
key: "searchMenuIcon",
|
|
143
|
-
role: "button",
|
|
144
|
-
tabIndex: "-1",
|
|
145
|
-
style: {
|
|
146
|
-
width: '100%',
|
|
147
|
-
height: '100%',
|
|
148
|
-
display: 'flex',
|
|
149
|
-
justifyContent: 'center'
|
|
150
|
-
},
|
|
151
|
-
onKeyDown: function onKeyDown() {},
|
|
152
|
-
onClick: function onClick() {
|
|
153
|
-
if (searchFieldRef && searchFieldRef.current) {
|
|
154
|
-
setSearchFieldHasNoFocus(false);
|
|
155
|
-
setTimeout(function () {
|
|
156
|
-
searchFieldRef.current.focus();
|
|
157
|
-
}, 150);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
161
|
-
name: "search",
|
|
162
|
-
customClass: "searchmenuicon",
|
|
163
|
-
size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
|
|
164
|
-
}))]
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return propsTextField;
|
|
169
|
-
};
|
|
170
|
-
|
|
171
124
|
var getPopupMenuSearchStyle = function getPopupMenuSearchStyle() {
|
|
172
125
|
var left = sideNavDimensions.left,
|
|
173
126
|
top = sideNavDimensions.top,
|
|
@@ -186,8 +139,6 @@ var SideNav = function SideNav(props) {
|
|
|
186
139
|
|
|
187
140
|
var closeSearchMenuPopup = function closeSearchMenuPopup() {
|
|
188
141
|
setOpenSearchMenuPopup(false);
|
|
189
|
-
setSearchContent('');
|
|
190
|
-
setSearchFieldHasNoFocus(true);
|
|
191
142
|
};
|
|
192
143
|
|
|
193
144
|
var compareChild = function compareChild(child) {
|
|
@@ -220,11 +171,15 @@ var SideNav = function SideNav(props) {
|
|
|
220
171
|
}
|
|
221
172
|
};
|
|
222
173
|
|
|
174
|
+
var openSearchMenu = function openSearchMenu() {
|
|
175
|
+
setOpenSearchMenuPopup(true);
|
|
176
|
+
if (searchFieldRef.current) searchFieldRef.current.focus();
|
|
177
|
+
};
|
|
178
|
+
|
|
223
179
|
var onKeyDown = function onKeyDown(e) {
|
|
224
180
|
if ([constants.keyCodes.F].includes(e.keyCode) && e.ctrlKey && e.shiftKey) {
|
|
225
181
|
e.preventDefault();
|
|
226
|
-
|
|
227
|
-
if (searchFieldRef.current) searchFieldRef.current.focus();
|
|
182
|
+
openSearchMenu();
|
|
228
183
|
}
|
|
229
184
|
};
|
|
230
185
|
|
|
@@ -259,30 +214,21 @@ var SideNav = function SideNav(props) {
|
|
|
259
214
|
customClass: "-customsidenavitem",
|
|
260
215
|
tooltip: "Pesquisar funcionalidades (CTRL+SHIFT+F)",
|
|
261
216
|
tooltipPosition: "right"
|
|
262
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
},
|
|
271
|
-
onBlur: function onBlur(e) {
|
|
272
|
-
if (e.target.value === '') setSearchFieldHasNoFocus(true);
|
|
273
|
-
},
|
|
274
|
-
inputRef: searchFieldRef,
|
|
275
|
-
onChange: function onChange(e) {
|
|
276
|
-
setSearchContent(e.target.value);
|
|
277
|
-
setOpenSearchMenuPopup(e.target.value !== '');
|
|
278
|
-
setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
|
|
217
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
218
|
+
key: "searchMenuIcon",
|
|
219
|
+
className: "searchmenubutton",
|
|
220
|
+
role: "button",
|
|
221
|
+
tabIndex: "-1",
|
|
222
|
+
onKeyDown: function onKeyDown() {},
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
if (!openSearchMenuPopup) openSearchMenu();else closeSearchMenuPopup();
|
|
279
225
|
}
|
|
280
|
-
},
|
|
226
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
227
|
+
name: "search",
|
|
228
|
+
customClass: "searchmenuicon",
|
|
229
|
+
size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
|
|
230
|
+
})), openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement(_popup_menu_search["default"], _extends({}, props, {
|
|
281
231
|
style: getPopupMenuSearchStyle(),
|
|
282
|
-
searchContent: searchContent,
|
|
283
|
-
handleSetSearchContent: function handleSetSearchContent(searchValue) {
|
|
284
|
-
return setSearchContent(searchValue);
|
|
285
|
-
},
|
|
286
232
|
handlerClose: closeSearchMenuPopup,
|
|
287
233
|
menuItemsContent: menuItemsContent && returnMenuItems()
|
|
288
234
|
}))));
|
|
@@ -328,7 +274,7 @@ SideNav.defaultProps = {
|
|
|
328
274
|
showExpandMenu: false,
|
|
329
275
|
onExpandMenuClick: undefined,
|
|
330
276
|
enableMenuSearch: false,
|
|
331
|
-
menuSearchEmptyMessage:
|
|
277
|
+
menuSearchEmptyMessage: ''
|
|
332
278
|
};
|
|
333
279
|
var _default = SideNav;
|
|
334
280
|
exports["default"] = _default;
|
|
@@ -41,13 +41,11 @@ var body = document.getElementsByTagName('body')[0];
|
|
|
41
41
|
|
|
42
42
|
var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
43
43
|
var style = props.style,
|
|
44
|
-
searchContent = props.searchContent,
|
|
45
44
|
menuItemsContent = props.menuItemsContent,
|
|
46
45
|
handlerClose = props.handlerClose,
|
|
47
|
-
menuSearchEmptyMessage = props.menuSearchEmptyMessage
|
|
48
|
-
handleSetSearchContent = props.handleSetSearchContent;
|
|
46
|
+
menuSearchEmptyMessage = props.menuSearchEmptyMessage;
|
|
49
47
|
|
|
50
|
-
var _useState = (0, _react.useState)(
|
|
48
|
+
var _useState = (0, _react.useState)(''),
|
|
51
49
|
_useState2 = _slicedToArray(_useState, 2),
|
|
52
50
|
searchFieldContent = _useState2[0],
|
|
53
51
|
setSearchFieldContent = _useState2[1];
|
|
@@ -57,6 +55,11 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
57
55
|
searchResult = _useState4[0],
|
|
58
56
|
setSearchResult = _useState4[1];
|
|
59
57
|
|
|
58
|
+
var _useState5 = (0, _react.useState)(''),
|
|
59
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
60
|
+
defaultSelectedItemId = _useState6[0],
|
|
61
|
+
setDefaultSelectedItemId = _useState6[1];
|
|
62
|
+
|
|
60
63
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
61
64
|
var popupRef = (0, _react.useRef)(document.createElement('div'));
|
|
62
65
|
popupRef.current.className = 'searchmenu';
|
|
@@ -80,22 +83,20 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
80
83
|
(0, _react.useEffect)(function () {
|
|
81
84
|
popupRef.current.style = style;
|
|
82
85
|
}, [style]);
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
if (searchResult.length > 0) setDefaultSelectedItemId(searchResult[0].id);
|
|
88
|
+
}, []);
|
|
83
89
|
|
|
84
90
|
var search = function search(value) {
|
|
85
91
|
var filter = value.toLowerCase();
|
|
86
92
|
var result = menuItemsContent && menuItemsContent.filter(function (item) {
|
|
87
93
|
return item.content.toLowerCase().includes(filter);
|
|
88
94
|
});
|
|
95
|
+
if (result.length > 0) setDefaultSelectedItemId(result[0].id);
|
|
89
96
|
setSearchFieldContent(value);
|
|
90
|
-
handleSetSearchContent(value);
|
|
91
97
|
setSearchResult(result);
|
|
92
98
|
};
|
|
93
99
|
|
|
94
|
-
(0, _react.useEffect)(function () {
|
|
95
|
-
setSearchFieldContent(searchContent);
|
|
96
|
-
search(searchContent);
|
|
97
|
-
}, [searchContent]);
|
|
98
|
-
|
|
99
100
|
var returnList = function returnList() {
|
|
100
101
|
if (searchResult && searchResult.length > 0) {
|
|
101
102
|
return /*#__PURE__*/_react["default"].createElement(_list["default"], {
|
|
@@ -103,6 +104,7 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
103
104
|
transparent: true,
|
|
104
105
|
selectable: true,
|
|
105
106
|
onSelectItem: handlerClose,
|
|
107
|
+
selectedItemId: defaultSelectedItemId,
|
|
106
108
|
style: {
|
|
107
109
|
margin: '25px 0px',
|
|
108
110
|
border: 'none',
|
|
@@ -307,7 +307,7 @@ describe('SideNav Menu', function () {
|
|
|
307
307
|
})),
|
|
308
308
|
container = _render9.container;
|
|
309
309
|
|
|
310
|
-
expect(container.querySelector('.
|
|
310
|
+
expect(container.querySelector('.searchmenubutton')).toBeInTheDocument();
|
|
311
311
|
});
|
|
312
312
|
it('should render tooltip on over menu search item', function () {
|
|
313
313
|
var _render10 = (0, _react2.render)(sidebarNavMockRender({
|
|
@@ -321,7 +321,7 @@ describe('SideNav Menu', function () {
|
|
|
321
321
|
|
|
322
322
|
expect(document.querySelector('.tooltip-component')).toBeInTheDocument();
|
|
323
323
|
});
|
|
324
|
-
it('should
|
|
324
|
+
it('should open popup menu when pressed HotKey', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
325
325
|
var _render11, container;
|
|
326
326
|
|
|
327
327
|
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
@@ -340,7 +340,7 @@ describe('SideNav Menu', function () {
|
|
|
340
340
|
shiftKey: true
|
|
341
341
|
});
|
|
342
342
|
|
|
343
|
-
expect(
|
|
343
|
+
expect(document.querySelector('.searchmenu')).toBeInTheDocument();
|
|
344
344
|
|
|
345
345
|
case 3:
|
|
346
346
|
case "end":
|
|
@@ -349,13 +349,21 @@ describe('SideNav Menu', function () {
|
|
|
349
349
|
}
|
|
350
350
|
}, _callee4);
|
|
351
351
|
})));
|
|
352
|
-
it('should
|
|
352
|
+
it('should search on input change', function () {
|
|
353
353
|
var _render12 = (0, _react2.render)(sidebarNavMockRender({
|
|
354
354
|
enableMenuSearch: true
|
|
355
355
|
})),
|
|
356
356
|
container = _render12.container;
|
|
357
357
|
|
|
358
|
-
|
|
358
|
+
_react2.fireEvent.keyDown(container, {
|
|
359
|
+
key: 'F',
|
|
360
|
+
code: 'keyF',
|
|
361
|
+
keyCode: 70,
|
|
362
|
+
ctrlKey: true,
|
|
363
|
+
shiftKey: true
|
|
364
|
+
});
|
|
365
|
+
|
|
366
|
+
var input = document.querySelector('.searchmenu .inputwrapper .inputcontent .textinput');
|
|
359
367
|
|
|
360
368
|
_react2.fireEvent.change(input, {
|
|
361
369
|
target: {
|
|
@@ -364,7 +372,7 @@ describe('SideNav Menu', function () {
|
|
|
364
372
|
});
|
|
365
373
|
|
|
366
374
|
expect(document.querySelector('.searchmenu')).toBeInTheDocument();
|
|
367
|
-
expect(document.querySelectorAll('.list-component .item').length).toBe(5);
|
|
375
|
+
expect(document.querySelectorAll('.searchmenu .list-component .item').length).toBe(5);
|
|
368
376
|
});
|
|
369
377
|
});
|
|
370
378
|
});
|