linear-react-components-ui 0.4.76-rc.9 → 0.4.76
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/.husky/pre-commit +2 -2
- package/.tool-versions +1 -0
- package/.vscode/settings.json +1 -2
- package/README.md +40 -5
- package/lib/assets/styles/button.scss +19 -10
- package/lib/assets/styles/checkbox.scss +92 -70
- package/lib/assets/styles/commons.scss +36 -0
- package/lib/assets/styles/drawers.scss +22 -6
- package/lib/assets/styles/dropdown.scss +28 -2
- package/lib/assets/styles/effects.scss +32 -0
- package/lib/assets/styles/floatMenu.scss +0 -1
- package/lib/assets/styles/gridlayout.scss +2 -1
- package/lib/assets/styles/input.scss +21 -0
- package/lib/assets/styles/label.scss +9 -1
- package/lib/assets/styles/list.scss +8 -0
- package/lib/assets/styles/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +3 -1
- package/lib/assets/styles/periodpicker.scss +65 -0
- package/lib/assets/styles/progress.scss +8 -1
- package/lib/assets/styles/radio.scss +19 -0
- package/lib/assets/styles/select.scss +4 -3
- package/lib/assets/styles/sidenav.scss +11 -1
- package/lib/assets/styles/skeleton.scss +48 -0
- package/lib/assets/styles/table.scss +25 -5
- package/lib/assets/styles/tabs.scss +116 -75
- package/lib/assets/styles/treeview.scss +41 -0
- package/lib/assets/styles/uitour.scss +112 -0
- package/lib/avatar/avatar.spec.js +17 -6
- package/lib/avatar/index.js +1 -1
- package/lib/buttons/DefaultButton.js +13 -4
- package/lib/buttons/split_button/index.js +8 -4
- package/lib/checkbox/Label.js +37 -0
- package/lib/checkbox/checkbox.spec.js +16 -16
- package/lib/checkbox/index.js +33 -12
- package/lib/dialog/base/index.js +15 -6
- package/lib/dialog/form/index.js +24 -4
- package/lib/drawer/Drawer.js +9 -5
- package/lib/drawer/Header.js +15 -5
- package/lib/drawer/index.js +4 -1
- package/lib/dropdown/Popup.js +3 -2
- package/lib/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +11 -3
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/form.spec.js +8 -0
- package/lib/form/helpers.js +20 -1
- package/lib/form/index.js +220 -218
- package/lib/form/withFieldHOC.js +5 -1
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/icons/helper.js +24 -0
- package/lib/inputs/base/InputTextBase.js +30 -5
- package/lib/inputs/base/helpers.js +13 -9
- package/lib/inputs/date/Dropdown.js +3 -3
- package/lib/inputs/date/date.spec.js +46 -36
- package/lib/inputs/date/helpers.js +36 -0
- package/lib/inputs/date/index.js +12 -10
- package/lib/inputs/mask/Phone.js +10 -1
- package/lib/inputs/mask/imaskHOC.js +2 -1
- package/lib/inputs/mask/input_mask.spec.js +21 -4
- package/lib/inputs/multiSelect/ActionButtons.js +68 -0
- package/lib/inputs/multiSelect/Dropdown.js +200 -0
- package/lib/inputs/multiSelect/helper.js +18 -0
- package/lib/inputs/multiSelect/index.js +343 -0
- package/lib/inputs/number/BaseNumber.js +1 -1
- package/lib/inputs/number/index.js +7 -5
- package/lib/inputs/period/Dialog.js +38 -0
- package/lib/inputs/period/Dropdown.js +90 -0
- package/lib/inputs/period/PeriodList.js +79 -0
- package/lib/inputs/period/helper.js +118 -0
- package/lib/inputs/period/index.js +490 -0
- package/lib/inputs/search/index.js +2 -0
- package/lib/inputs/select/Dropdown.js +55 -65
- package/lib/inputs/select/helper.js +65 -2
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +16 -11
- package/lib/inputs/select/simple/index.js +39 -24
- package/lib/internals/constants.js +4 -3
- package/lib/internals/withTooltip.js +86 -82
- package/lib/labels/DefaultLabel.js +7 -4
- package/lib/list/Item.js +35 -9
- package/lib/list/helpers.js +8 -3
- package/lib/list/index.js +172 -14
- package/lib/list/list.spec.js +290 -89
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/sidenav/NavMenuItem.js +17 -8
- package/lib/menus/sidenav/index.js +59 -86
- package/lib/menus/sidenav/popup_menu_search/index.js +26 -17
- package/lib/menus/sidenav/sidenav.spec.js +86 -19
- package/lib/panel/Header.js +4 -3
- package/lib/progress/Bar.js +40 -9
- package/lib/progress/index.js +12 -4
- package/lib/radio/index.js +9 -6
- package/lib/skeleton/SkeletonContainer.js +42 -0
- package/lib/skeleton/index.js +84 -0
- package/lib/spinner/index.js +6 -1
- package/lib/split/Split.js +5 -11
- package/lib/table/Body.js +55 -11
- package/lib/table/Header.js +14 -1
- package/lib/table/HeaderColumn.js +26 -3
- package/lib/table/Row.js +19 -8
- package/lib/table/RowColumn.js +23 -3
- package/lib/table/helpers.js +11 -1
- package/lib/table/index.js +41 -8
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +12 -9
- package/lib/tabs/MenuItems.js +15 -9
- package/lib/tabs/Panel.js +1 -3
- package/lib/tabs/index.js +156 -22
- package/lib/tabs/tabs.spec.js +8 -5
- package/lib/toolbar/ButtonBar.js +30 -24
- package/lib/toolbar/LabelBar.js +22 -27
- package/lib/toolbar/helpers.js +12 -0
- package/lib/toolbar/index.js +24 -9
- package/lib/tooltip/index.js +20 -7
- package/lib/treeview/Node.js +364 -49
- package/lib/treeview/index.js +475 -36
- package/lib/treeview/treeview.spec.js +18 -0
- 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 +9 -8
|
@@ -9,12 +9,16 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
|
+
|
|
12
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
15
|
|
|
14
16
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
15
17
|
|
|
16
18
|
var _withDropdown = require("../../dropdown/withDropdown");
|
|
17
19
|
|
|
20
|
+
var _buttons = _interopRequireDefault(require("../../buttons"));
|
|
21
|
+
|
|
18
22
|
var _helpers = _interopRequireDefault(require("./helpers"));
|
|
19
23
|
|
|
20
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -28,22 +32,33 @@ var MenuItem = function MenuItem(_ref) {
|
|
|
28
32
|
url = _ref.url,
|
|
29
33
|
iconName = _ref.iconName,
|
|
30
34
|
iconColor = _ref.iconColor,
|
|
31
|
-
iconSize = _ref.iconSize
|
|
35
|
+
iconSize = _ref.iconSize,
|
|
36
|
+
dropdownMenu = _ref.dropdownMenu;
|
|
32
37
|
|
|
33
38
|
var _useContext = (0, _react.useContext)(_helpers["default"]),
|
|
34
39
|
customClassMenuItem = _useContext.customClassMenuItem;
|
|
35
40
|
|
|
36
41
|
var dropdownContext = (0, _react.useContext)(_withDropdown.WithDropdownContext);
|
|
37
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
38
|
-
|
|
42
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
43
|
+
className: "floatmenuitem"
|
|
44
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
|
+
className: "".concat(customClassMenuItem, " -items")
|
|
46
|
+
}, !_lodash["default"].isEmpty(dropdownMenu) && /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
|
|
47
|
+
customClass: "floatmenudropdown",
|
|
48
|
+
iconName: "more1",
|
|
49
|
+
transparent: true,
|
|
50
|
+
size: "medium",
|
|
51
|
+
boxShadow: false,
|
|
52
|
+
dropdown: true,
|
|
53
|
+
showIconDropdown: false
|
|
54
|
+
}, dropdownMenu), /*#__PURE__*/_react["default"].createElement("a", {
|
|
39
55
|
className: "floatmenulink",
|
|
56
|
+
target: "_blank",
|
|
40
57
|
onClick: function onClick() {
|
|
41
58
|
if (dropdownContext) dropdownContext.handleDropdownClose();
|
|
42
59
|
},
|
|
43
60
|
href: url,
|
|
44
61
|
rel: "noreferrer"
|
|
45
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
46
|
-
className: "".concat(customClassMenuItem, " -items")
|
|
47
62
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
48
63
|
className: "iconcontainer"
|
|
49
64
|
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
@@ -53,7 +68,7 @@ var MenuItem = function MenuItem(_ref) {
|
|
|
53
68
|
customClass: "iconmenu"
|
|
54
69
|
})), /*#__PURE__*/_react["default"].createElement("span", {
|
|
55
70
|
className: "nameitem"
|
|
56
|
-
}, title)));
|
|
71
|
+
}, title))));
|
|
57
72
|
};
|
|
58
73
|
|
|
59
74
|
MenuItem.propTypes = {
|
|
@@ -63,7 +78,8 @@ MenuItem.propTypes = {
|
|
|
63
78
|
iconName: _propTypes["default"].string,
|
|
64
79
|
iconColor: _propTypes["default"].string,
|
|
65
80
|
iconSize: _propTypes["default"].number,
|
|
66
|
-
customClass: _propTypes["default"].string
|
|
81
|
+
customClass: _propTypes["default"].string,
|
|
82
|
+
dropdownMenu: _propTypes["default"].element
|
|
67
83
|
};
|
|
68
84
|
MenuItem.defaultProps = {
|
|
69
85
|
iconColor: 'gray',
|
|
@@ -72,7 +88,8 @@ MenuItem.defaultProps = {
|
|
|
72
88
|
iconName: '',
|
|
73
89
|
customClass: '',
|
|
74
90
|
url: undefined,
|
|
75
|
-
urlHref: undefined
|
|
91
|
+
urlHref: undefined,
|
|
92
|
+
dropdownMenu: undefined
|
|
76
93
|
};
|
|
77
94
|
var _default = MenuItem;
|
|
78
95
|
exports["default"] = _default;
|
|
@@ -19,6 +19,8 @@ var _helpers = require("./helpers");
|
|
|
19
19
|
|
|
20
20
|
var _permissionValidations = require("../../permissionValidations");
|
|
21
21
|
|
|
22
|
+
var _withTooltip = _interopRequireDefault(require("../../internals/withTooltip"));
|
|
23
|
+
|
|
22
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
25
|
|
|
24
26
|
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); }
|
|
@@ -49,7 +51,8 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
49
51
|
permissionAttr = props.permissionAttr,
|
|
50
52
|
maxWidth = props.maxWidth,
|
|
51
53
|
minWidth = props.minWidth,
|
|
52
|
-
columnsQtty = props.columnsQtty
|
|
54
|
+
columnsQtty = props.columnsQtty,
|
|
55
|
+
targetRef = props.targetRef;
|
|
53
56
|
|
|
54
57
|
var _useState = (0, _react.useState)(false),
|
|
55
58
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -69,7 +72,8 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
69
72
|
|
|
70
73
|
var _useContext = (0, _react.useContext)(_helpers.SideNavContext),
|
|
71
74
|
isExpanded = _useContext.isExpanded,
|
|
72
|
-
menuSize = _useContext.menuSize
|
|
75
|
+
menuSize = _useContext.menuSize,
|
|
76
|
+
openSearchMenuPopup = _useContext.openSearchMenuPopup;
|
|
73
77
|
|
|
74
78
|
var unvisible = onDenied.unvisible,
|
|
75
79
|
disabled = onDenied.disabled;
|
|
@@ -93,6 +97,7 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
93
97
|
return /*#__PURE__*/_react["default"].createElement(_helpers.SubMenuContext.Provider, {
|
|
94
98
|
value: contextValues()
|
|
95
99
|
}, /*#__PURE__*/_react["default"].createElement("li", {
|
|
100
|
+
ref: targetRef,
|
|
96
101
|
className: "item ".concat(url && !disabled && '-withlink', " ").concat(customClass, " ").concat(disabled && '-disabled'),
|
|
97
102
|
onMouseEnter: function onMouseEnter(e) {
|
|
98
103
|
_onMouseEnter(e);
|
|
@@ -108,7 +113,7 @@ var NavMenuItem = function NavMenuItem(props) {
|
|
|
108
113
|
customClass: "menuicon"
|
|
109
114
|
}), isExpanded && /*#__PURE__*/_react["default"].createElement("span", {
|
|
110
115
|
className: "title"
|
|
111
|
-
}, title), !childrenIsSubMenu && children)), showSubMenu && children && childrenIsSubMenu && !disabled && /*#__PURE__*/_react["default"].createElement("div", {
|
|
116
|
+
}, title), !childrenIsSubMenu && children)), showSubMenu && children && childrenIsSubMenu && !disabled && !openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
117
|
className: "submenu-container",
|
|
113
118
|
style: {
|
|
114
119
|
marginLeft: targetDimensions.width,
|
|
@@ -134,9 +139,10 @@ NavMenuItem.propTypes = {
|
|
|
134
139
|
url: _propTypes["default"].string,
|
|
135
140
|
customClass: _propTypes["default"].string,
|
|
136
141
|
permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)]),
|
|
137
|
-
minWidth: _propTypes["default"].
|
|
138
|
-
maxWidth: _propTypes["default"].
|
|
139
|
-
columnsQtty: _propTypes["default"].number
|
|
142
|
+
minWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
143
|
+
maxWidth: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
144
|
+
columnsQtty: _propTypes["default"].number,
|
|
145
|
+
targetRef: _propTypes["default"].func
|
|
140
146
|
};
|
|
141
147
|
NavMenuItem.defaultProps = {
|
|
142
148
|
childrenIsSubMenu: true,
|
|
@@ -148,7 +154,10 @@ NavMenuItem.defaultProps = {
|
|
|
148
154
|
permissionAttr: undefined,
|
|
149
155
|
minWidth: 500,
|
|
150
156
|
maxWidth: '90%',
|
|
151
|
-
columnsQtty: 2
|
|
157
|
+
columnsQtty: 2,
|
|
158
|
+
targetRef: undefined
|
|
152
159
|
};
|
|
153
|
-
|
|
160
|
+
|
|
161
|
+
var _default = (0, _withTooltip["default"])(NavMenuItem);
|
|
162
|
+
|
|
154
163
|
exports["default"] = _default;
|
|
@@ -35,14 +35,14 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
35
35
|
|
|
36
36
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
37
37
|
|
|
38
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
39
|
+
|
|
38
40
|
var _NavMenuItem = _interopRequireDefault(require("./NavMenuItem"));
|
|
39
41
|
|
|
40
42
|
var _NavSubMenuItem = _interopRequireDefault(require("./NavSubMenuItem"));
|
|
41
43
|
|
|
42
44
|
var _NavMenuGroup = _interopRequireDefault(require("./NavMenuGroup"));
|
|
43
45
|
|
|
44
|
-
var _text = _interopRequireDefault(require("../../inputs/text"));
|
|
45
|
-
|
|
46
46
|
var _ExpandMenu = _interopRequireDefault(require("./ExpandMenu"));
|
|
47
47
|
|
|
48
48
|
require("../../assets/styles/sidenav.scss");
|
|
@@ -51,6 +51,8 @@ var _helpers = require("./helpers");
|
|
|
51
51
|
|
|
52
52
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
53
53
|
|
|
54
|
+
var constants = _interopRequireWildcard(require("../../internals/constants"));
|
|
55
|
+
|
|
54
56
|
var _popup_menu_search = _interopRequireDefault(require("./popup_menu_search"));
|
|
55
57
|
|
|
56
58
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -96,30 +98,20 @@ var SideNav = function SideNav(props) {
|
|
|
96
98
|
isExpanded = _useState2[0],
|
|
97
99
|
setIsExpanded = _useState2[1];
|
|
98
100
|
|
|
99
|
-
var _useState3 = (0, _react.useState)(
|
|
101
|
+
var _useState3 = (0, _react.useState)([]),
|
|
100
102
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
menuItemsContent = _useState4[0],
|
|
104
|
+
setMenuItemsContent = _useState4[1];
|
|
103
105
|
|
|
104
|
-
var _useState5 = (0, _react.useState)(
|
|
106
|
+
var _useState5 = (0, _react.useState)({}),
|
|
105
107
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
106
|
-
|
|
107
|
-
|
|
108
|
+
sideNavDimensions = _useState6[0],
|
|
109
|
+
setSideNavDimensions = _useState6[1];
|
|
108
110
|
|
|
109
|
-
var _useState7 = (0, _react.useState)(
|
|
111
|
+
var _useState7 = (0, _react.useState)(false),
|
|
110
112
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
var _useState9 = (0, _react.useState)({}),
|
|
115
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
116
|
-
sideNavDimensions = _useState10[0],
|
|
117
|
-
setSideNavDimensions = _useState10[1];
|
|
118
|
-
|
|
119
|
-
var _useState11 = (0, _react.useState)(false),
|
|
120
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
121
|
-
openSearchMenuPopup = _useState12[0],
|
|
122
|
-
setOpenSearchMenuPopup = _useState12[1];
|
|
113
|
+
openSearchMenuPopup = _useState8[0],
|
|
114
|
+
setOpenSearchMenuPopup = _useState8[1];
|
|
123
115
|
|
|
124
116
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
125
117
|
var sideNavRef = (0, _react.useRef)(null);
|
|
@@ -129,41 +121,6 @@ var SideNav = function SideNav(props) {
|
|
|
129
121
|
if (onExpandMenuClick) onExpandMenuClick(!isExpanded);
|
|
130
122
|
};
|
|
131
123
|
|
|
132
|
-
var returnLeftElements = function returnLeftElements() {
|
|
133
|
-
var propsTextField = {};
|
|
134
|
-
|
|
135
|
-
if (searchFieldHasNoFocus) {
|
|
136
|
-
propsTextField = {
|
|
137
|
-
leftElements: [/*#__PURE__*/_react["default"].createElement("div", {
|
|
138
|
-
key: "searchMenuIcon",
|
|
139
|
-
role: "button",
|
|
140
|
-
tabIndex: "-1",
|
|
141
|
-
style: {
|
|
142
|
-
width: '100%',
|
|
143
|
-
height: '100%',
|
|
144
|
-
display: 'flex',
|
|
145
|
-
justifyContent: 'center'
|
|
146
|
-
},
|
|
147
|
-
onKeyDown: function onKeyDown() {},
|
|
148
|
-
onClick: function onClick() {
|
|
149
|
-
if (searchFieldRef && searchFieldRef.current) {
|
|
150
|
-
setSearchFieldHasNoFocus(false);
|
|
151
|
-
setTimeout(function () {
|
|
152
|
-
searchFieldRef.current.focus();
|
|
153
|
-
}, 150);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
157
|
-
name: "search",
|
|
158
|
-
customClass: "searchmenuicon",
|
|
159
|
-
size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
|
|
160
|
-
}))]
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
return propsTextField;
|
|
165
|
-
};
|
|
166
|
-
|
|
167
124
|
var getPopupMenuSearchStyle = function getPopupMenuSearchStyle() {
|
|
168
125
|
var left = sideNavDimensions.left,
|
|
169
126
|
top = sideNavDimensions.top,
|
|
@@ -176,14 +133,13 @@ var SideNav = function SideNav(props) {
|
|
|
176
133
|
var getContextValues = function getContextValues() {
|
|
177
134
|
return {
|
|
178
135
|
isExpanded: isExpanded,
|
|
179
|
-
menuSize: menuSize
|
|
136
|
+
menuSize: menuSize,
|
|
137
|
+
openSearchMenuPopup: openSearchMenuPopup
|
|
180
138
|
};
|
|
181
139
|
};
|
|
182
140
|
|
|
183
141
|
var closeSearchMenuPopup = function closeSearchMenuPopup() {
|
|
184
142
|
setOpenSearchMenuPopup(false);
|
|
185
|
-
setSearchContent('');
|
|
186
|
-
setSearchFieldHasNoFocus(true);
|
|
187
143
|
};
|
|
188
144
|
|
|
189
145
|
var compareChild = function compareChild(child) {
|
|
@@ -192,6 +148,7 @@ var SideNav = function SideNav(props) {
|
|
|
192
148
|
|
|
193
149
|
if ((type === _NavMenuItem["default"] || type === _NavSubMenuItem["default"]) && !child.props.children) {
|
|
194
150
|
menuItemsContent.push({
|
|
151
|
+
id: "".concat(child.props.title, "-").concat(_uuid["default"].v1()),
|
|
195
152
|
content: child.props.title,
|
|
196
153
|
url: child.props.url
|
|
197
154
|
});
|
|
@@ -215,6 +172,24 @@ var SideNav = function SideNav(props) {
|
|
|
215
172
|
}
|
|
216
173
|
};
|
|
217
174
|
|
|
175
|
+
var openSearchMenu = function openSearchMenu() {
|
|
176
|
+
setOpenSearchMenuPopup(true);
|
|
177
|
+
if (searchFieldRef.current) searchFieldRef.current.focus();
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
var onKeyDown = function onKeyDown(e) {
|
|
181
|
+
if ([constants.keyCodes.F].includes(e.keyCode) && e.ctrlKey && e.shiftKey) {
|
|
182
|
+
e.preventDefault();
|
|
183
|
+
openSearchMenu();
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
(0, _react.useEffect)(function () {
|
|
188
|
+
document.addEventListener('keydown', onKeyDown);
|
|
189
|
+
return function () {
|
|
190
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
191
|
+
};
|
|
192
|
+
}, []);
|
|
218
193
|
(0, _react.useEffect)(function () {
|
|
219
194
|
if (enableMenuSearch && sideNavRef && sideNavRef.current) {
|
|
220
195
|
setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
|
|
@@ -233,34 +208,30 @@ var SideNav = function SideNav(props) {
|
|
|
233
208
|
};
|
|
234
209
|
|
|
235
210
|
var getPopupMenuSearch = function getPopupMenuSearch() {
|
|
236
|
-
return /*#__PURE__*/_react["default"].createElement(_NavMenuGroup["default"],
|
|
211
|
+
return /*#__PURE__*/_react["default"].createElement(_NavMenuGroup["default"], {
|
|
212
|
+
key: "popup-menusearch-".concat(_uuid["default"].v1())
|
|
213
|
+
}, /*#__PURE__*/_react["default"].createElement(_NavMenuItem["default"], {
|
|
237
214
|
childrenIsSubMenu: false,
|
|
238
|
-
customClass: "-customsidenavitem"
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
},
|
|
250
|
-
onBlur: function onBlur(e) {
|
|
251
|
-
if (e.target.value === '') setSearchFieldHasNoFocus(true);
|
|
252
|
-
},
|
|
253
|
-
inputRef: searchFieldRef,
|
|
254
|
-
onChange: function onChange(e) {
|
|
255
|
-
setOpenSearchMenuPopup(e.target.value !== '');
|
|
256
|
-
setSideNavDimensions(sideNavRef.current.getBoundingClientRect());
|
|
257
|
-
setSearchContent(e.target.value);
|
|
215
|
+
customClass: "-customsidenavitem",
|
|
216
|
+
tooltip: "Pesquisar funcionalidades (CTRL+SHIFT+F)",
|
|
217
|
+
tooltipPosition: "right"
|
|
218
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
219
|
+
key: "searchMenuIcon",
|
|
220
|
+
className: "searchmenubutton",
|
|
221
|
+
role: "button",
|
|
222
|
+
tabIndex: "-1",
|
|
223
|
+
onKeyDown: function onKeyDown() {},
|
|
224
|
+
onClick: function onClick() {
|
|
225
|
+
openSearchMenu();
|
|
258
226
|
}
|
|
259
|
-
},
|
|
227
|
+
}, /*#__PURE__*/_react["default"].createElement(_icons["default"], {
|
|
228
|
+
name: "search",
|
|
229
|
+
customClass: "searchmenuicon",
|
|
230
|
+
size: menuSize === 'small' && 16 || menuSize === 'medium' && 22 || menuSize === 'large' && 32
|
|
231
|
+
})), openSearchMenuPopup && /*#__PURE__*/_react["default"].createElement(_popup_menu_search["default"], _extends({}, props, {
|
|
260
232
|
style: getPopupMenuSearchStyle(),
|
|
261
|
-
searchContent: searchContent,
|
|
262
233
|
handlerClose: closeSearchMenuPopup,
|
|
263
|
-
menuItemsContent: returnMenuItems()
|
|
234
|
+
menuItemsContent: menuItemsContent && returnMenuItems()
|
|
264
235
|
}))));
|
|
265
236
|
};
|
|
266
237
|
|
|
@@ -276,7 +247,7 @@ var SideNav = function SideNav(props) {
|
|
|
276
247
|
return /*#__PURE__*/_react["default"].createElement(_helpers.SideNavContext.Provider, {
|
|
277
248
|
value: getContextValues()
|
|
278
249
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
279
|
-
className: "sidenav-component ".concat(customClass),
|
|
250
|
+
className: "sidenav-component ".concat(openSearchMenuPopup ? '-blocked' : '', " ").concat(customClass),
|
|
280
251
|
ref: sideNavRef
|
|
281
252
|
}, showExpandMenu && /*#__PURE__*/_react["default"].createElement(_ExpandMenu["default"], {
|
|
282
253
|
expandMenuCustomClass: "".concat(isExpanded && 'closefromexpanded', " ").concat(expandMenuCustomClass),
|
|
@@ -294,7 +265,8 @@ SideNav.propTypes = {
|
|
|
294
265
|
showExpandMenu: _propTypes["default"].bool,
|
|
295
266
|
children: _propTypes["default"].arrayOf(_propTypes["default"].element).isRequired,
|
|
296
267
|
enableMenuSearch: _propTypes["default"].bool,
|
|
297
|
-
menuSearchEmptyMessage: _propTypes["default"].string
|
|
268
|
+
menuSearchEmptyMessage: _propTypes["default"].string,
|
|
269
|
+
menuSearchPlaceholder: _propTypes["default"].string
|
|
298
270
|
};
|
|
299
271
|
SideNav.defaultProps = {
|
|
300
272
|
expanded: true,
|
|
@@ -304,7 +276,8 @@ SideNav.defaultProps = {
|
|
|
304
276
|
showExpandMenu: false,
|
|
305
277
|
onExpandMenuClick: undefined,
|
|
306
278
|
enableMenuSearch: false,
|
|
307
|
-
menuSearchEmptyMessage:
|
|
279
|
+
menuSearchEmptyMessage: '',
|
|
280
|
+
menuSearchPlaceholder: ''
|
|
308
281
|
};
|
|
309
282
|
var _default = SideNav;
|
|
310
283
|
exports["default"] = _default;
|
|
@@ -9,8 +9,6 @@ exports["default"] = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
12
|
-
var _uuid = _interopRequireDefault(require("uuid"));
|
|
13
|
-
|
|
14
12
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
15
13
|
|
|
16
14
|
var _search = _interopRequireDefault(require("../../../inputs/search"));
|
|
@@ -43,12 +41,12 @@ var body = document.getElementsByTagName('body')[0];
|
|
|
43
41
|
|
|
44
42
|
var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
45
43
|
var style = props.style,
|
|
46
|
-
searchContent = props.searchContent,
|
|
47
44
|
menuItemsContent = props.menuItemsContent,
|
|
48
45
|
handlerClose = props.handlerClose,
|
|
49
|
-
menuSearchEmptyMessage = props.menuSearchEmptyMessage
|
|
46
|
+
menuSearchEmptyMessage = props.menuSearchEmptyMessage,
|
|
47
|
+
menuSearchPlaceholder = props.menuSearchPlaceholder;
|
|
50
48
|
|
|
51
|
-
var _useState = (0, _react.useState)(
|
|
49
|
+
var _useState = (0, _react.useState)(''),
|
|
52
50
|
_useState2 = _slicedToArray(_useState, 2),
|
|
53
51
|
searchFieldContent = _useState2[0],
|
|
54
52
|
setSearchFieldContent = _useState2[1];
|
|
@@ -58,6 +56,11 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
58
56
|
searchResult = _useState4[0],
|
|
59
57
|
setSearchResult = _useState4[1];
|
|
60
58
|
|
|
59
|
+
var _useState5 = (0, _react.useState)(''),
|
|
60
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
61
|
+
defaultSelectedItemId = _useState6[0],
|
|
62
|
+
setDefaultSelectedItemId = _useState6[1];
|
|
63
|
+
|
|
61
64
|
var searchFieldRef = (0, _react.useRef)(null);
|
|
62
65
|
var popupRef = (0, _react.useRef)(document.createElement('div'));
|
|
63
66
|
popupRef.current.className = 'searchmenu';
|
|
@@ -81,35 +84,40 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
81
84
|
(0, _react.useEffect)(function () {
|
|
82
85
|
popupRef.current.style = style;
|
|
83
86
|
}, [style]);
|
|
87
|
+
(0, _react.useEffect)(function () {
|
|
88
|
+
if (searchResult.length > 0) setDefaultSelectedItemId(searchResult[0].id);
|
|
89
|
+
}, []);
|
|
84
90
|
|
|
85
91
|
var search = function search(value) {
|
|
86
92
|
var filter = value.toLowerCase();
|
|
87
|
-
var result = menuItemsContent.filter(function (item) {
|
|
93
|
+
var result = menuItemsContent && menuItemsContent.filter(function (item) {
|
|
88
94
|
return item.content.toLowerCase().includes(filter);
|
|
89
95
|
});
|
|
96
|
+
if (result.length > 0) setDefaultSelectedItemId(result[0].id);
|
|
90
97
|
setSearchFieldContent(value);
|
|
91
98
|
setSearchResult(result);
|
|
92
99
|
};
|
|
93
100
|
|
|
94
|
-
(0, _react.useEffect)(function () {
|
|
95
|
-
setSearchFieldContent(searchContent);
|
|
96
|
-
search(searchContent);
|
|
97
|
-
}, [searchContent]);
|
|
98
|
-
|
|
99
101
|
var returnList = function returnList() {
|
|
100
102
|
if (searchResult && searchResult.length > 0) {
|
|
101
103
|
return /*#__PURE__*/_react["default"].createElement(_list["default"], {
|
|
102
104
|
condensed: true,
|
|
103
105
|
transparent: true,
|
|
106
|
+
selectable: true,
|
|
107
|
+
onSelectItem: handlerClose,
|
|
108
|
+
selectedItemId: defaultSelectedItemId,
|
|
109
|
+
selectOnEnter: true,
|
|
104
110
|
style: {
|
|
105
|
-
margin: '25px 0px'
|
|
111
|
+
margin: '25px 0px',
|
|
112
|
+
border: 'none',
|
|
113
|
+
boxShadow: 'none'
|
|
106
114
|
}
|
|
107
|
-
}, searchResult
|
|
115
|
+
}, searchResult.map(function (item) {
|
|
108
116
|
return /*#__PURE__*/_react["default"].createElement(_list.ListItem, {
|
|
109
|
-
key:
|
|
117
|
+
key: item.id,
|
|
118
|
+
itemId: item.id,
|
|
110
119
|
url: item.url,
|
|
111
|
-
text: item.content
|
|
112
|
-
onClick: handlerClose
|
|
120
|
+
text: item.content
|
|
113
121
|
});
|
|
114
122
|
}));
|
|
115
123
|
}
|
|
@@ -136,8 +144,9 @@ var PopupMenuSearch = function PopupMenuSearch(props) {
|
|
|
136
144
|
},
|
|
137
145
|
inputRef: searchFieldRef,
|
|
138
146
|
value: searchFieldContent,
|
|
147
|
+
placeHolder: menuSearchPlaceholder,
|
|
139
148
|
onReset: function onReset() {
|
|
140
|
-
|
|
149
|
+
search('');
|
|
141
150
|
}
|
|
142
151
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
143
152
|
style: {
|
|
@@ -206,38 +206,30 @@ describe('SideNav Menu', function () {
|
|
|
206
206
|
|
|
207
207
|
expect(container.querySelector('.openclosemenu')).toBeInTheDocument();
|
|
208
208
|
});
|
|
209
|
-
it('should enable menu search', function () {
|
|
210
|
-
var _render4 = (0, _react2.render)(sidebarNavMockRender({
|
|
211
|
-
enableMenuSearch: true
|
|
212
|
-
})),
|
|
213
|
-
container = _render4.container;
|
|
214
|
-
|
|
215
|
-
expect(container.querySelector('.inputwrapper')).toBeInTheDocument();
|
|
216
|
-
});
|
|
217
209
|
it('should render all items', function () {
|
|
218
|
-
var
|
|
219
|
-
container =
|
|
210
|
+
var _render4 = (0, _react2.render)(sidebarNavMockRender()),
|
|
211
|
+
container = _render4.container;
|
|
220
212
|
/* primeiro item é o float menu */
|
|
221
213
|
|
|
222
214
|
|
|
223
215
|
expect(container.querySelectorAll('li.item').length - 1).toBe(menuDataMock.length);
|
|
224
216
|
});
|
|
225
217
|
it('should be rendering 3 items SVGs', function () {
|
|
226
|
-
var
|
|
227
|
-
container =
|
|
218
|
+
var _render5 = (0, _react2.render)(sidebarNavMockRender()),
|
|
219
|
+
container = _render5.container;
|
|
228
220
|
|
|
229
221
|
expect(container.querySelectorAll('li.item .icon-component').length).toBe(3);
|
|
230
222
|
});
|
|
231
223
|
it('should open submenu on over', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
232
|
-
var
|
|
224
|
+
var _render6, container;
|
|
233
225
|
|
|
234
226
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
235
227
|
while (1) {
|
|
236
228
|
switch (_context.prev = _context.next) {
|
|
237
229
|
case 0:
|
|
238
|
-
|
|
230
|
+
_render6 = (0, _react2.render)(sidebarNavMockRender({
|
|
239
231
|
menuSize: 'large'
|
|
240
|
-
})), container =
|
|
232
|
+
})), container = _render6.container;
|
|
241
233
|
|
|
242
234
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
243
235
|
|
|
@@ -257,13 +249,13 @@ describe('SideNav Menu', function () {
|
|
|
257
249
|
}, _callee);
|
|
258
250
|
})));
|
|
259
251
|
it('submenu should render all items', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
260
|
-
var
|
|
252
|
+
var _render7, container;
|
|
261
253
|
|
|
262
254
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
263
255
|
while (1) {
|
|
264
256
|
switch (_context2.prev = _context2.next) {
|
|
265
257
|
case 0:
|
|
266
|
-
|
|
258
|
+
_render7 = (0, _react2.render)(sidebarNavMockRender()), container = _render7.container;
|
|
267
259
|
|
|
268
260
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
269
261
|
|
|
@@ -283,13 +275,13 @@ describe('SideNav Menu', function () {
|
|
|
283
275
|
}, _callee2);
|
|
284
276
|
})));
|
|
285
277
|
it('submenu should have title', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
|
286
|
-
var
|
|
278
|
+
var _render8, container;
|
|
287
279
|
|
|
288
280
|
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
289
281
|
while (1) {
|
|
290
282
|
switch (_context3.prev = _context3.next) {
|
|
291
283
|
case 0:
|
|
292
|
-
|
|
284
|
+
_render8 = (0, _react2.render)(sidebarNavMockRender()), container = _render8.container;
|
|
293
285
|
|
|
294
286
|
_react2.fireEvent.mouseOver(container.querySelector('.customscroll .item'));
|
|
295
287
|
|
|
@@ -308,5 +300,80 @@ describe('SideNav Menu', function () {
|
|
|
308
300
|
}
|
|
309
301
|
}, _callee3);
|
|
310
302
|
})));
|
|
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
|
+
});
|
|
311
378
|
});
|
|
312
379
|
});
|