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
|
@@ -19,8 +19,6 @@ var _helpers = require("./helpers");
|
|
|
19
19
|
|
|
20
20
|
var _permissionValidations = require("../../permissionValidations");
|
|
21
21
|
|
|
22
|
-
var _withTooltip = _interopRequireDefault(require("../../internals/withTooltip"));
|
|
23
|
-
|
|
24
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
23
|
|
|
26
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); }
|
|
@@ -51,8 +49,7 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
51
49
|
permissionAttr = props.permissionAttr,
|
|
52
50
|
maxWidth = props.maxWidth,
|
|
53
51
|
minWidth = props.minWidth,
|
|
54
|
-
columnsQtty = props.columnsQtty
|
|
55
|
-
targetRef = props.targetRef;
|
|
52
|
+
columnsQtty = props.columnsQtty;
|
|
56
53
|
|
|
57
54
|
var _useState = (0, _react.useState)(false),
|
|
58
55
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -96,7 +93,6 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
96
93
|
return /*#__PURE__*/_react["default"].createElement(_helpers.SubMenuContext.Provider, {
|
|
97
94
|
value: contextValues()
|
|
98
95
|
}, /*#__PURE__*/_react["default"].createElement("li", {
|
|
99
|
-
ref: targetRef,
|
|
100
96
|
className: "item ".concat(url && !disabled && '-withlink', " ").concat(customClass, " ").concat(disabled && '-disabled'),
|
|
101
97
|
onMouseEnter: function onMouseEnter(e) {
|
|
102
98
|
_onMouseEnter(e);
|
|
@@ -140,8 +136,7 @@ NavMenuItem.propTypes = {
|
|
|
140
136
|
permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
|
|
141
137
|
minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
142
138
|
maxWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
143
|
-
columnsQtty: _propTypes["default"].number
|
|
144
|
-
targetRef: _propTypes["default"].func
|
|
139
|
+
columnsQtty: _propTypes["default"].number
|
|
145
140
|
};
|
|
146
141
|
NavMenuItem.defaultProps = {
|
|
147
142
|
childrenIsSubMenu: true,
|
|
@@ -153,10 +148,7 @@ NavMenuItem.defaultProps = {
|
|
|
153
148
|
permissionAttr: undefined,
|
|
154
149
|
minWidth: 500,
|
|
155
150
|
maxWidth: '90%',
|
|
156
|
-
columnsQtty: 2
|
|
157
|
-
targetRef: undefined
|
|
151
|
+
columnsQtty: 2
|
|
158
152
|
};
|
|
159
|
-
|
|
160
|
-
var _default = (0, _withTooltip["default"])(NavMenuItem);
|
|
161
|
-
|
|
153
|
+
var _default = NavMenuItem;
|
|
162
154
|
exports["default"] = _default;
|
|
@@ -43,6 +43,8 @@ var _NavSubMenuItem = _interopRequireDefault(require("./NavSubMenuItem"));
|
|
|
43
43
|
|
|
44
44
|
var _NavMenuGroup = _interopRequireDefault(require("./NavMenuGroup"));
|
|
45
45
|
|
|
46
|
+
var _text = _interopRequireDefault(require("../../inputs/text"));
|
|
47
|
+
|
|
46
48
|
var _ExpandMenu = _interopRequireDefault(require("./ExpandMenu"));
|
|
47
49
|
|
|
48
50
|
require("../../assets/styles/sidenav.scss");
|
|
@@ -51,8 +53,6 @@ var _helpers = require("./helpers");
|
|
|
51
53
|
|
|
52
54
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
53
55
|
|
|
54
|
-
var constants = _interopRequireWildcard(require("../../internals/constants"));
|
|
55
|
-
|
|
56
56
|
var _popup_menu_search = _interopRequireDefault(require("./popup_menu_search"));
|
|
57
57
|
|
|
58
58
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -98,20 +98,30 @@ var SideNav = function SideNav(props) {
|
|
|
98
98
|
isExpanded = _useState2[0],
|
|
99
99
|
setIsExpanded = _useState2[1];
|
|
100
100
|
|
|
101
|
-
var _useState3 = (0, _react.useState)(
|
|
101
|
+
var _useState3 = (0, _react.useState)(true),
|
|
102
102
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
searchFieldHasNoFocus = _useState4[0],
|
|
104
|
+
setSearchFieldHasNoFocus = _useState4[1];
|
|
105
105
|
|
|
106
|
-
var _useState5 = (0, _react.useState)(
|
|
106
|
+
var _useState5 = (0, _react.useState)([]),
|
|
107
107
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
menuItemsContent = _useState6[0],
|
|
109
|
+
setMenuItemsContent = _useState6[1];
|
|
110
110
|
|
|
111
|
-
var _useState7 = (0, _react.useState)(
|
|
111
|
+
var _useState7 = (0, _react.useState)(''),
|
|
112
112
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
searchContent = _useState8[0],
|
|
114
|
+
setSearchContent = _useState8[1];
|
|
115
|
+
|
|
116
|
+
var _useState9 = (0, _react.useState)({}),
|
|
117
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
118
|
+
sideNavDimensions = _useState10[0],
|
|
119
|
+
setSideNavDimensions = _useState10[1];
|
|
120
|
+
|
|
121
|
+
var _useState11 = (0, _react.useState)(false),
|
|
122
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
123
|
+
openSearchMenuPopup = _useState12[0],
|
|
124
|
+
setOpenSearchMenuPopup = _useState12[1];
|
|
115
125
|
|
|
116
126
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
117
127
|
var sideNavRef = (0, _react.useRef)(null);
|
|
@@ -121,6 +131,41 @@ var SideNav = function SideNav(props) {
|
|
|
121
131
|
if (onExpandMenuClick) onExpandMenuClick(!isExpanded);
|
|
122
132
|
};
|
|
123
133
|
|
|
134
|
+
var returnLeftElements = function returnLeftElements() {
|
|
135
|
+
var propsTextField = {};
|
|
136
|
+
|
|
137
|
+
if (searchFieldHasNoFocus) {
|
|
138
|
+
propsTextField = {
|
|
139
|
+
leftElements: [/*#__PURE__*/_react["default"].createElement("div", {
|
|
140
|
+
key: "searchMenuIcon",
|
|
141
|
+
role: "button",
|
|
142
|
+
tabIndex: "-1",
|
|
143
|
+
style: {
|
|
144
|
+
width: '100%',
|
|
145
|
+
height: '100%',
|
|
146
|
+
display: 'flex',
|
|
147
|
+
justifyContent: 'center'
|
|
148
|
+
},
|
|
149
|
+
onKeyDown: function onKeyDown() {},
|
|
150
|
+
onClick: function onClick() {
|
|
151
|
+
if (searchFieldRef && searchFieldRef.current) {
|
|
152
|
+
setSearchFieldHasNoFocus(false);
|
|
153
|
+
setTimeout(function () {
|
|
154
|
+
searchFieldRef.current.focus();
|
|
155
|
+
}, 150);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
159
|
+
name: "search",
|
|
160
|
+
customClass: "searchmenuicon",
|
|
161
|
+
size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
|
|
162
|
+
}))]
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return propsTextField;
|
|
167
|
+
};
|
|
168
|
+
|
|
124
169
|
var getPopupMenuSearchStyle = function getPopupMenuSearchStyle() {
|
|
125
170
|
var left = sideNavDimensions.left,
|
|
126
171
|
top = sideNavDimensions.top,
|
|
@@ -139,6 +184,8 @@ var SideNav = function SideNav(props) {
|
|
|
139
184
|
|
|
140
185
|
var closeSearchMenuPopup = function closeSearchMenuPopup() {
|
|
141
186
|
setOpenSearchMenuPopup(false);
|
|
187
|
+
setSearchContent('');
|
|
188
|
+
setSearchFieldHasNoFocus(true);
|
|
142
189
|
};
|
|
143
190
|
|
|
144
191
|
var compareChild = function compareChild(child) {
|
|
@@ -147,7 +194,6 @@ var SideNav = function SideNav(props) {
|
|
|
147
194
|
|
|
148
195
|
if ((type === _NavMenuItem["default"] || type === _NavSubMenuItem["default"]) && !child.props.children) {
|
|
149
196
|
menuItemsContent.push({
|
|
150
|
-
id: "".concat(child.props.title, "-").concat(_uuid["default"].v1()),
|
|
151
197
|
content: child.props.title,
|
|
152
198
|
url: child.props.url
|
|
153
199
|
});
|
|
@@ -171,24 +217,6 @@ var SideNav = function SideNav(props) {
|
|
|
171
217
|
}
|
|
172
218
|
};
|
|
173
219
|
|
|
174
|
-
var openSearchMenu = function openSearchMenu() {
|
|
175
|
-
setOpenSearchMenuPopup(true);
|
|
176
|
-
if (searchFieldRef.current) searchFieldRef.current.focus();
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
var onKeyDown = function onKeyDown(e) {
|
|
180
|
-
if ([constants.keyCodes.F].includes(e.keyCode) && e.ctrlKey && e.shiftKey) {
|
|
181
|
-
e.preventDefault();
|
|
182
|
-
openSearchMenu();
|
|
183
|
-
}
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
(0, _react.useEffect)(function () {
|
|
187
|
-
document.addEventListener('keydown', onKeyDown);
|
|
188
|
-
return function () {
|
|
189
|
-
document.removeEventListener('keydown', onKeyDown);
|
|
190
|
-
};
|
|
191
|
-
}, []);
|
|
192
220
|
(0, _react.useEffect)(function () {
|
|
193
221
|
if (enableMenuSearch && sideNavRef && sideNavRef.current) {
|
|
194
222
|
setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
|
|
@@ -211,24 +239,30 @@ var SideNav = function SideNav(props) {
|
|
|
211
239
|
key: "popup-menusearch-".concat(_uuid["default"].v1())
|
|
212
240
|
}, /*#__PURE__*/_react["default"].createElement(_NavMenuItem["default"], {
|
|
213
241
|
childrenIsSubMenu: false,
|
|
214
|
-
customClass: "-customsidenavitem"
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
242
|
+
customClass: "-customsidenavitem"
|
|
243
|
+
}, /*#__PURE__*/_react["default"].createElement(_text["default"], _extends({
|
|
244
|
+
value: searchContent,
|
|
245
|
+
customClassForWrapper: "-customsizes",
|
|
246
|
+
customClass: "-customsizes",
|
|
247
|
+
customClassForSideButtons: "-iconcenter",
|
|
248
|
+
tooltip: "Pesquisar funcionalidades",
|
|
249
|
+
tooltipPosition: "right",
|
|
250
|
+
customClassForInputContent: searchFieldHasNoFocus ? '-hidden' : '',
|
|
251
|
+
onFocus: function onFocus() {
|
|
252
|
+
return setSearchFieldHasNoFocus(false);
|
|
253
|
+
},
|
|
254
|
+
onBlur: function onBlur(e) {
|
|
255
|
+
if (e.target.value === '') setSearchFieldHasNoFocus(true);
|
|
256
|
+
},
|
|
257
|
+
inputRef: searchFieldRef,
|
|
258
|
+
onChange: function onChange(e) {
|
|
259
|
+
setSearchContent(e.target.value);
|
|
260
|
+
setOpenSearchMenuPopup(e.target.value !== '');
|
|
261
|
+
setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
|
|
225
262
|
}
|
|
226
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
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, {
|
|
263
|
+
}, returnLeftElements())), openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement(_popup_menu_search["default"], _extends({}, props, {
|
|
231
264
|
style: getPopupMenuSearchStyle(),
|
|
265
|
+
searchContent: searchContent,
|
|
232
266
|
handlerClose: closeSearchMenuPopup,
|
|
233
267
|
menuItemsContent: menuItemsContent && returnMenuItems()
|
|
234
268
|
}))));
|
|
@@ -274,7 +308,7 @@ SideNav.defaultProps = {
|
|
|
274
308
|
showExpandMenu: false,
|
|
275
309
|
onExpandMenuClick: undefined,
|
|
276
310
|
enableMenuSearch: false,
|
|
277
|
-
menuSearchEmptyMessage:
|
|
311
|
+
menuSearchEmptyMessage: undefined
|
|
278
312
|
};
|
|
279
313
|
var _default = SideNav;
|
|
280
314
|
exports["default"] = _default;
|
|
@@ -9,6 +9,8 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
+
|
|
12
14
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
15
|
|
|
14
16
|
var _search = _interopRequireDefault(require("../../../inputs/search"));
|
|
@@ -41,11 +43,12 @@ var body = document.getElementsByTagName('body')[0];
|
|
|
41
43
|
|
|
42
44
|
var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
43
45
|
var style = props.style,
|
|
46
|
+
searchContent = props.searchContent,
|
|
44
47
|
menuItemsContent = props.menuItemsContent,
|
|
45
48
|
handlerClose = props.handlerClose,
|
|
46
49
|
menuSearchEmptyMessage = props.menuSearchEmptyMessage;
|
|
47
50
|
|
|
48
|
-
var _useState = (0, _react.useState)(
|
|
51
|
+
var _useState = (0, _react.useState)(searchContent),
|
|
49
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
50
53
|
searchFieldContent = _useState2[0],
|
|
51
54
|
setSearchFieldContent = _useState2[1];
|
|
@@ -55,11 +58,6 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
55
58
|
searchResult = _useState4[0],
|
|
56
59
|
setSearchResult = _useState4[1];
|
|
57
60
|
|
|
58
|
-
var _useState5 = (0, _react.useState)(''),
|
|
59
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
60
|
-
defaultSelectedItemId = _useState6[0],
|
|
61
|
-
setDefaultSelectedItemId = _useState6[1];
|
|
62
|
-
|
|
63
61
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
64
62
|
var popupRef = (0, _react.useRef)(document.createElement('div'));
|
|
65
63
|
popupRef.current.className = 'searchmenu';
|
|
@@ -83,39 +81,35 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
83
81
|
(0, _react.useEffect)(function () {
|
|
84
82
|
popupRef.current.style = style;
|
|
85
83
|
}, [style]);
|
|
86
|
-
(0, _react.useEffect)(function () {
|
|
87
|
-
if (searchResult.length > 0) setDefaultSelectedItemId(searchResult[0].id);
|
|
88
|
-
}, []);
|
|
89
84
|
|
|
90
85
|
var search = function search(value) {
|
|
91
86
|
var filter = value.toLowerCase();
|
|
92
87
|
var result = menuItemsContent && menuItemsContent.filter(function (item) {
|
|
93
88
|
return item.content.toLowerCase().includes(filter);
|
|
94
89
|
});
|
|
95
|
-
if (result.length > 0) setDefaultSelectedItemId(result[0].id);
|
|
96
90
|
setSearchFieldContent(value);
|
|
97
91
|
setSearchResult(result);
|
|
98
92
|
};
|
|
99
93
|
|
|
94
|
+
(0, _react.useEffect)(function () {
|
|
95
|
+
setSearchFieldContent(searchContent);
|
|
96
|
+
search(searchContent);
|
|
97
|
+
}, [searchContent]);
|
|
98
|
+
|
|
100
99
|
var returnList = function returnList() {
|
|
101
100
|
if (searchResult && searchResult.length > 0) {
|
|
102
101
|
return /*#__PURE__*/_react["default"].createElement(_list["default"], {
|
|
103
102
|
condensed: true,
|
|
104
103
|
transparent: true,
|
|
105
|
-
selectable: true,
|
|
106
|
-
onSelectItem: handlerClose,
|
|
107
|
-
selectedItemId: defaultSelectedItemId,
|
|
108
104
|
style: {
|
|
109
|
-
margin: '25px 0px'
|
|
110
|
-
border: 'none',
|
|
111
|
-
boxShadow: 'none'
|
|
105
|
+
margin: '25px 0px'
|
|
112
106
|
}
|
|
113
|
-
}, searchResult.map(function (item) {
|
|
107
|
+
}, searchResult && searchResult.map(function (item) {
|
|
114
108
|
return /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
|
|
115
|
-
key: item.
|
|
116
|
-
itemId: item.id,
|
|
109
|
+
key: "".concat(item.content, "-").concat(_uuid["default"].v1()),
|
|
117
110
|
url: item.url,
|
|
118
|
-
text: item.content
|
|
111
|
+
text: item.content,
|
|
112
|
+
onClick: handlerClose
|
|
119
113
|
});
|
|
120
114
|
}));
|
|
121
115
|
}
|
|
@@ -143,7 +137,7 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
143
137
|
inputRef: searchFieldRef,
|
|
144
138
|
value: searchFieldContent,
|
|
145
139
|
onReset: function onReset() {
|
|
146
|
-
|
|
140
|
+
setSearchFieldContent('');
|
|
147
141
|
}
|
|
148
142
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
149
143
|
style: {
|
|
@@ -206,30 +206,38 @@ describe('SideNav Menu', function () {
|
|
|
206
206
|
|
|
207
207
|
expect(container.querySelector('.openclosemenu')).toBeInTheDocument();
|
|
208
208
|
});
|
|
209
|
-
it('should
|
|
210
|
-
var _render4 = (0, _react2.render)(sidebarNavMockRender(
|
|
209
|
+
it('should enable menu search', function () {
|
|
210
|
+
var _render4 = (0, _react2.render)(sidebarNavMockRender({
|
|
211
|
+
enableMenuSearch: true
|
|
212
|
+
})),
|
|
211
213
|
container = _render4.container;
|
|
214
|
+
|
|
215
|
+
expect(container.querySelector('.inputwrapper')).toBeInTheDocument();
|
|
216
|
+
});
|
|
217
|
+
it('should render all items', function () {
|
|
218
|
+
var _render5 = (0, _react2.render)(sidebarNavMockRender()),
|
|
219
|
+
container = _render5.container;
|
|
212
220
|
/* primeiro item é o float menu */
|
|
213
221
|
|
|
214
222
|
|
|
215
223
|
expect(container.querySelectorAll('li.item').length - 1).toBe(menuDataMock.length);
|
|
216
224
|
});
|
|
217
225
|
it('should be rendering 3 items SVGs', function () {
|
|
218
|
-
var
|
|
219
|
-
container =
|
|
226
|
+
var _render6 = (0, _react2.render)(sidebarNavMockRender()),
|
|
227
|
+
container = _render6.container;
|
|
220
228
|
|
|
221
229
|
expect(container.querySelectorAll('li.item .icon-component').length).toBe(3);
|
|
222
230
|
});
|
|
223
231
|
it('should open submenu on over', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
224
|
-
var
|
|
232
|
+
var _render7, container;
|
|
225
233
|
|
|
226
234
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
227
235
|
while (1) {
|
|
228
236
|
switch (_context.prev = _context.next) {
|
|
229
237
|
case 0:
|
|
230
|
-
|
|
238
|
+
_render7 = (0, _react2.render)(sidebarNavMockRender({
|
|
231
239
|
menuSize: 'large'
|
|
232
|
-
})), container =
|
|
240
|
+
})), container = _render7.container;
|
|
233
241
|
|
|
234
242
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
235
243
|
|
|
@@ -249,13 +257,13 @@ describe('SideNav Menu', function () {
|
|
|
249
257
|
}, _callee);
|
|
250
258
|
})));
|
|
251
259
|
it('submenu should render all items', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
252
|
-
var
|
|
260
|
+
var _render8, container;
|
|
253
261
|
|
|
254
262
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
255
263
|
while (1) {
|
|
256
264
|
switch (_context2.prev = _context2.next) {
|
|
257
265
|
case 0:
|
|
258
|
-
|
|
266
|
+
_render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
|
|
259
267
|
|
|
260
268
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
261
269
|
|
|
@@ -275,13 +283,13 @@ describe('SideNav Menu', function () {
|
|
|
275
283
|
}, _callee2);
|
|
276
284
|
})));
|
|
277
285
|
it('submenu should have title', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
|
278
|
-
var
|
|
286
|
+
var _render9, container;
|
|
279
287
|
|
|
280
288
|
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
281
289
|
while (1) {
|
|
282
290
|
switch (_context3.prev = _context3.next) {
|
|
283
291
|
case 0:
|
|
284
|
-
|
|
292
|
+
_render9 = (0, _react2.render)(sidebarNavMockRender()), container = _render9.container;
|
|
285
293
|
|
|
286
294
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
287
295
|
|
|
@@ -300,80 +308,5 @@ describe('SideNav Menu', function () {
|
|
|
300
308
|
}
|
|
301
309
|
}, _callee3);
|
|
302
310
|
})));
|
|
303
|
-
describe('Popup Search Menu', function () {
|
|
304
|
-
it('should enable menu search', function () {
|
|
305
|
-
var _render9 = (0, _react2.render)(sidebarNavMockRender({
|
|
306
|
-
enableMenuSearch: true
|
|
307
|
-
})),
|
|
308
|
-
container = _render9.container;
|
|
309
|
-
|
|
310
|
-
expect(container.querySelector('.searchmenubutton')).toBeInTheDocument();
|
|
311
|
-
});
|
|
312
|
-
it('should render tooltip on over menu search item', function () {
|
|
313
|
-
var _render10 = (0, _react2.render)(sidebarNavMockRender({
|
|
314
|
-
enableMenuSearch: true
|
|
315
|
-
})),
|
|
316
|
-
container = _render10.container;
|
|
317
|
-
|
|
318
|
-
var navitem = container.querySelector('.-customsidenavitem');
|
|
319
|
-
|
|
320
|
-
_react2.fireEvent.mouseOver(navitem);
|
|
321
|
-
|
|
322
|
-
expect(document.querySelector('.tooltip-component')).toBeInTheDocument();
|
|
323
|
-
});
|
|
324
|
-
it('should open popup menu when pressed HotKey', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
325
|
-
var _render11, container;
|
|
326
|
-
|
|
327
|
-
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
328
|
-
while (1) {
|
|
329
|
-
switch (_context4.prev = _context4.next) {
|
|
330
|
-
case 0:
|
|
331
|
-
_render11 = (0, _react2.render)(sidebarNavMockRender({
|
|
332
|
-
enableMenuSearch: true
|
|
333
|
-
})), container = _render11.container;
|
|
334
|
-
|
|
335
|
-
_react2.fireEvent.keyDown(container, {
|
|
336
|
-
key: 'F',
|
|
337
|
-
code: 'keyF',
|
|
338
|
-
keyCode: 70,
|
|
339
|
-
ctrlKey: true,
|
|
340
|
-
shiftKey: true
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
expect(document.querySelector('.searchmenu')).toBeInTheDocument();
|
|
344
|
-
|
|
345
|
-
case 3:
|
|
346
|
-
case "end":
|
|
347
|
-
return _context4.stop();
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
}, _callee4);
|
|
351
|
-
})));
|
|
352
|
-
it('should search on input change', function () {
|
|
353
|
-
var _render12 = (0, _react2.render)(sidebarNavMockRender({
|
|
354
|
-
enableMenuSearch: true
|
|
355
|
-
})),
|
|
356
|
-
container = _render12.container;
|
|
357
|
-
|
|
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');
|
|
367
|
-
|
|
368
|
-
_react2.fireEvent.change(input, {
|
|
369
|
-
target: {
|
|
370
|
-
value: 'A'
|
|
371
|
-
}
|
|
372
|
-
});
|
|
373
|
-
|
|
374
|
-
expect(document.querySelector('.searchmenu')).toBeInTheDocument();
|
|
375
|
-
expect(document.querySelectorAll('.searchmenu .list-component .item').length).toBe(5);
|
|
376
|
-
});
|
|
377
|
-
});
|
|
378
311
|
});
|
|
379
312
|
});
|
package/lib/treeview/Node.js
CHANGED
|
@@ -27,6 +27,8 @@ var _list = _interopRequireWildcard(require("../list"));
|
|
|
27
27
|
|
|
28
28
|
var _toolbar = _interopRequireWildcard(require("../toolbar"));
|
|
29
29
|
|
|
30
|
+
var _SpinnerLoading = _interopRequireDefault(require("../spinner/SpinnerLoading"));
|
|
31
|
+
|
|
30
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
33
|
|
|
32
34
|
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); }
|
|
@@ -133,7 +135,8 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
133
135
|
children = _this$props3.children,
|
|
134
136
|
isParent = _this$props3.isParent,
|
|
135
137
|
onNodeClick = _this$props3.onNodeClick,
|
|
136
|
-
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize
|
|
138
|
+
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
|
|
139
|
+
selectedNodeId = _this$props3.selectedNodeId;
|
|
137
140
|
var node = this.state.node;
|
|
138
141
|
var showNodeElements = this.state.showNodeElements;
|
|
139
142
|
return /*#__PURE__*/_react["default"].createElement(_constants.TreeviewContext.Consumer, null, function (_ref) {
|
|
@@ -155,6 +158,10 @@ var TreeNode = /*#__PURE__*/function (_Component) {
|
|
|
155
158
|
className: "treeviewitem"
|
|
156
159
|
}, _this2.getSpan(), /*#__PURE__*/_react["default"].createElement("div", {
|
|
157
160
|
className: "label",
|
|
161
|
+
style: {
|
|
162
|
+
textDecoration: !onNodeClick ? 'none' : null,
|
|
163
|
+
backgroundColor: selectedNodeId === node.id ? 'rgb(209, 209, 209)' : null
|
|
164
|
+
},
|
|
158
165
|
ref: _this2.labelRef,
|
|
159
166
|
role: "button",
|
|
160
167
|
onKeyPress: null,
|
|
@@ -240,8 +247,11 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
240
247
|
enumerable: true,
|
|
241
248
|
writable: true,
|
|
242
249
|
value: function value() {
|
|
243
|
-
var
|
|
250
|
+
var _this3$props = _this3.props,
|
|
251
|
+
alwaysShowArrow = _this3$props.alwaysShowArrow,
|
|
252
|
+
idsInLoading = _this3$props.idsInLoading;
|
|
244
253
|
var node = _this3.state.node;
|
|
254
|
+
var isLoading = idsInLoading.includes(node.id);
|
|
245
255
|
|
|
246
256
|
var span = /*#__PURE__*/_react["default"].createElement("noscript", null);
|
|
247
257
|
|
|
@@ -250,11 +260,17 @@ var _initialiseProps = function _initialiseProps() {
|
|
|
250
260
|
onKeyPress: null,
|
|
251
261
|
tabIndex: 0,
|
|
252
262
|
role: "button",
|
|
263
|
+
style: isLoading ? {
|
|
264
|
+
marginLeft: '-30px',
|
|
265
|
+
marginTop: '-5px'
|
|
266
|
+
} : null,
|
|
253
267
|
className: "opencloseicon",
|
|
254
268
|
onClick: function onClick() {
|
|
255
269
|
return _this3.openCloseTree(node);
|
|
256
270
|
}
|
|
257
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
271
|
+
}, isLoading ? /*#__PURE__*/_react["default"].createElement(_SpinnerLoading["default"], {
|
|
272
|
+
size: "35px"
|
|
273
|
+
}) : /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
258
274
|
name: _this3.state.isVisible ? 'up' : 'down',
|
|
259
275
|
size: 10
|
|
260
276
|
}));
|
|
@@ -431,7 +447,9 @@ TreeNode.propTypes = {
|
|
|
431
447
|
onNodeClick: _propTypes["default"].func,
|
|
432
448
|
handlerOnNodeOpen: _propTypes["default"].func,
|
|
433
449
|
nodeElementsValidations: _propTypes["default"].object,
|
|
434
|
-
startNodesOpened: _propTypes["default"].bool.isRequired
|
|
450
|
+
startNodesOpened: _propTypes["default"].bool.isRequired,
|
|
451
|
+
idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
452
|
+
selectedNodeId: _propTypes["default"].number
|
|
435
453
|
};
|
|
436
454
|
TreeNode.defaultProps = {
|
|
437
455
|
childrenIds: [],
|
|
@@ -444,7 +462,9 @@ TreeNode.defaultProps = {
|
|
|
444
462
|
nodeMenuButtonSize: 'small',
|
|
445
463
|
onNodeClick: undefined,
|
|
446
464
|
handlerOnNodeOpen: undefined,
|
|
447
|
-
nodeElementsValidations: undefined
|
|
465
|
+
nodeElementsValidations: undefined,
|
|
466
|
+
idsInLoading: [],
|
|
467
|
+
selectedNodeId: undefined
|
|
448
468
|
};
|
|
449
469
|
TreeNode.contextType = _constants.TreeviewContext;
|
|
450
470
|
var _default = TreeNode;
|
package/lib/treeview/index.js
CHANGED
|
@@ -469,7 +469,9 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
469
469
|
nodeToolbarElements = _this$props3.nodeToolbarElements,
|
|
470
470
|
nodeMenuButtonSize = _this$props3.nodeMenuButtonSize,
|
|
471
471
|
alwaysShowArrow = _this$props3.alwaysShowArrow,
|
|
472
|
-
startNodesOpened = _this$props3.startNodesOpened
|
|
472
|
+
startNodesOpened = _this$props3.startNodesOpened,
|
|
473
|
+
idsInLoading = _this$props3.idsInLoading,
|
|
474
|
+
selectedNodeId = _this$props3.selectedNodeId;
|
|
473
475
|
var childrenIds = [];
|
|
474
476
|
|
|
475
477
|
if (node.itens && node.itens.length > 0) {
|
|
@@ -487,6 +489,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
487
489
|
return /*#__PURE__*/_react["default"].createElement(_Node["default"], {
|
|
488
490
|
key: "node-".concat(node.id),
|
|
489
491
|
node: node,
|
|
492
|
+
idsInLoading: idsInLoading,
|
|
490
493
|
startNodesOpened: startNodesOpened,
|
|
491
494
|
alwaysShowArrow: alwaysShowArrow,
|
|
492
495
|
childrenIds: childrenIds,
|
|
@@ -497,6 +500,7 @@ var TreeView = /*#__PURE__*/function (_Component) {
|
|
|
497
500
|
nodeElementsValidations: nodeElementsValidations,
|
|
498
501
|
nodeMenuButtonSize: nodeMenuButtonSize,
|
|
499
502
|
onNodeClick: onNodeClick,
|
|
503
|
+
selectedNodeId: selectedNodeId,
|
|
500
504
|
handlerOnNodeOpen: _this.handleOnNodeOpen
|
|
501
505
|
}, childrenIds.length > 0 && node.itens.map(function (nodeitem) {
|
|
502
506
|
return _this.buildTree(nodeitem, node.id, ids);
|
|
@@ -606,7 +610,9 @@ TreeView.propTypes = {
|
|
|
606
610
|
onNodeClick: _propTypes["default"].func,
|
|
607
611
|
onNodeOpen: _propTypes["default"].func,
|
|
608
612
|
nodeElementsValidations: _propTypes["default"].object,
|
|
609
|
-
enableDynamicData: _propTypes["default"].bool
|
|
613
|
+
enableDynamicData: _propTypes["default"].bool,
|
|
614
|
+
idsInLoading: _propTypes["default"].arrayOf(_propTypes["default"].number),
|
|
615
|
+
selectedNodeId: _propTypes["default"].number
|
|
610
616
|
};
|
|
611
617
|
TreeView.defaultProps = {
|
|
612
618
|
customClass: '',
|
|
@@ -628,7 +634,9 @@ TreeView.defaultProps = {
|
|
|
628
634
|
onNodeClick: undefined,
|
|
629
635
|
onNodeOpen: undefined,
|
|
630
636
|
nodeElementsValidations: undefined,
|
|
631
|
-
enableDynamicData: false
|
|
637
|
+
enableDynamicData: false,
|
|
638
|
+
idsInLoading: [],
|
|
639
|
+
selectedNodeId: undefined
|
|
632
640
|
};
|
|
633
641
|
var _default = TreeView;
|
|
634
642
|
exports["default"] = _default;
|
|
@@ -257,5 +257,23 @@ describe('Treeview', function () {
|
|
|
257
257
|
|
|
258
258
|
expect(container.querySelector('ul')).toHaveStyle('background-color: #000');
|
|
259
259
|
});
|
|
260
|
+
it('should apply idsInLoading', function () {
|
|
261
|
+
var _render13 = (0, _react.render)(treeviewRenderMock({
|
|
262
|
+
idsInLoading: [1]
|
|
263
|
+
})),
|
|
264
|
+
container = _render13.container;
|
|
265
|
+
|
|
266
|
+
var li = container.querySelector('li').firstChild;
|
|
267
|
+
expect(li.firstChild).toHaveClass('spinnerloading');
|
|
268
|
+
});
|
|
269
|
+
it('should apply selectedNodeId', function () {
|
|
270
|
+
var _render14 = (0, _react.render)(treeviewRenderMock({
|
|
271
|
+
selectedNodeId: 1
|
|
272
|
+
})),
|
|
273
|
+
container = _render14.container;
|
|
274
|
+
|
|
275
|
+
var filhosLi = container.querySelector('li').children;
|
|
276
|
+
expect(filhosLi[1]).toHaveStyle('background-color: rgb(209, 209, 209)');
|
|
277
|
+
});
|
|
260
278
|
});
|
|
261
279
|
});
|