linear-react-components-ui 1.1.2-beta.0 → 1.1.2-beta.10
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/.eslintcache +1 -0
- package/.gitlab-ci.yml +1 -0
- package/.vscode/settings.json +10 -1
- package/lib/assets/styles/colors.scss +3 -1
- package/lib/assets/styles/dialog.scss +27 -10
- package/lib/assets/styles/error.scss +9 -0
- package/lib/assets/styles/input.scss +0 -7
- package/lib/assets/styles/multiSelect.scss +6 -1
- package/lib/assets/styles/radio.scss +37 -35
- package/lib/assets/styles/select.scss +13 -7
- package/lib/checkbox/index.js +4 -2
- package/lib/dialog/Custom.js +4 -2
- package/lib/dialog/base/Content.js +1 -0
- package/lib/dialog/base/Header.js +4 -4
- package/lib/dialog/base/index.js +6 -4
- package/lib/dialog/form/index.js +3 -3
- package/lib/drawer/Drawer.js +5 -4
- package/lib/dropdown/Popup.d.ts +1 -1
- package/lib/dropdown/Popup.js +5 -2
- package/lib/dropdown/types.d.ts +1 -0
- package/lib/inputs/base/InputTextBase.js +7 -2
- package/lib/inputs/base/helpers.d.ts +1 -2
- package/lib/inputs/base/helpers.js +1 -8
- package/lib/inputs/base/types.d.ts +1 -0
- package/lib/inputs/errorMessage/index.d.ts +15 -0
- package/lib/inputs/errorMessage/index.js +26 -0
- package/lib/inputs/file/DefaultFile.js +4 -2
- package/lib/inputs/file/DragDropFile.js +4 -2
- package/lib/inputs/multiSelect/ActionButtons.js +10 -8
- package/lib/inputs/multiSelect/Dropdown.js +2 -6
- package/lib/inputs/multiSelect/index.js +2 -2
- package/lib/inputs/period/index.js +4 -1
- package/lib/inputs/select/ActionButtons.js +18 -27
- package/lib/inputs/select/Dropdown.js +2 -6
- package/lib/inputs/select/multiple/Selecteds.d.ts +1 -1
- package/lib/inputs/select/multiple/Selecteds.js +3 -5
- package/lib/inputs/select/multiple/index.js +34 -21
- package/lib/inputs/select/simple/index.js +55 -33
- package/lib/inputs/select/types.d.ts +2 -1
- package/lib/inputs/types.d.ts +8 -3
- package/lib/menus/sidenav/index.js +3 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +3 -2
- package/lib/tooltip/index.js +2 -2
- package/lib/treeview/Node.js +2 -2
- package/package.json +5 -5
- package/.tool-versions +0 -1
|
@@ -9,8 +9,8 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
9
9
|
var _buttons = require("../../buttons");
|
|
10
10
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
11
11
|
var _InputTextBase = _interopRequireDefault(require("../base/InputTextBase"));
|
|
12
|
-
var helperBase = _interopRequireWildcard(require("../base/helpers"));
|
|
13
12
|
var _hint = _interopRequireDefault(require("../../hint"));
|
|
13
|
+
var _errorMessage = require("../errorMessage");
|
|
14
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -262,7 +262,9 @@ const DragDropFile = props => {
|
|
|
262
262
|
onDragLeave: handleDragLeave,
|
|
263
263
|
onDragOver: handleDragOver,
|
|
264
264
|
onDrop: handleDrop
|
|
265
|
-
})),
|
|
265
|
+
})), /*#__PURE__*/_react.default.createElement(_errorMessage.ErrorMessage, {
|
|
266
|
+
messages: errorMessages
|
|
267
|
+
}), /*#__PURE__*/_react.default.createElement(_hint.default, {
|
|
266
268
|
visible: !!hint,
|
|
267
269
|
customClass: "hint",
|
|
268
270
|
description: hint
|
|
@@ -20,22 +20,24 @@ const ActionButtons = _ref => {
|
|
|
20
20
|
dropdownAlignButton = 'left'
|
|
21
21
|
} = _ref;
|
|
22
22
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_buttons.default, {
|
|
23
|
+
transparent: true,
|
|
24
|
+
tabIndex: -1,
|
|
23
25
|
disabled: disabled,
|
|
26
|
+
boxShadow: false,
|
|
24
27
|
size: "small",
|
|
25
|
-
iconName: dropdownOpened ? 'up' : 'down',
|
|
26
28
|
onClick: handleOpenClose,
|
|
27
29
|
customClass: "actionbutton",
|
|
28
|
-
|
|
29
|
-
boxShadow: false
|
|
30
|
+
iconName: dropdownOpened ? 'up' : 'down'
|
|
30
31
|
}), /*#__PURE__*/_react.default.createElement(_buttons.default, {
|
|
31
|
-
|
|
32
|
-
iconName: "more1",
|
|
32
|
+
dropdown: true,
|
|
33
33
|
transparent: true,
|
|
34
|
+
disabled: disabled,
|
|
35
|
+
tabIndex: -1,
|
|
34
36
|
boxShadow: false,
|
|
37
|
+
showIconDropdown: false,
|
|
38
|
+
iconName: "more1",
|
|
35
39
|
customClass: "actionbutton",
|
|
36
|
-
|
|
37
|
-
dropdownAlign: dropdownAlignButton,
|
|
38
|
-
showIconDropdown: false
|
|
40
|
+
dropdownAlign: dropdownAlignButton
|
|
39
41
|
}, /*#__PURE__*/_react.default.createElement(_list.default, null, /*#__PURE__*/_react.default.createElement(_list.ListItem, {
|
|
40
42
|
itemId: "1",
|
|
41
43
|
text: "Marcar Todos",
|
|
@@ -94,11 +94,9 @@ const Dropdown = props => {
|
|
|
94
94
|
className: "listcontainer"
|
|
95
95
|
}, dataCombo && dataCombo.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
|
|
96
96
|
className: "item selectall"
|
|
97
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
98
|
-
role: "button",
|
|
97
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
99
98
|
className: "menubutton",
|
|
100
99
|
tabIndex: -1,
|
|
101
|
-
onKeyPress: () => {},
|
|
102
100
|
onClick: () => isAllChecked ? onUncheckAll(true) : onCheckAll(true)
|
|
103
101
|
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
104
102
|
name: isAllChecked && dataCombo.length > 0 ? 'checkboxChecked2' : 'checkboxUnchecked2',
|
|
@@ -110,11 +108,9 @@ const Dropdown = props => {
|
|
|
110
108
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
111
109
|
key: "dropdowmItem ".concat(item[idKey], "}"),
|
|
112
110
|
className: "item ".concat(isChecked && '-selected')
|
|
113
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
114
|
-
role: "button",
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
115
112
|
className: "menubutton",
|
|
116
113
|
tabIndex: -1,
|
|
117
|
-
onKeyPress: () => {},
|
|
118
114
|
onClick: () => {
|
|
119
115
|
onSelect(item);
|
|
120
116
|
}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var
|
|
9
|
+
var uuid = _interopRequireWildcard(require("uuid"));
|
|
10
10
|
var _InputTextBase = _interopRequireDefault(require("../base/InputTextBase"));
|
|
11
11
|
var _ActionButtons = _interopRequireDefault(require("./ActionButtons"));
|
|
12
12
|
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
|
|
@@ -33,7 +33,7 @@ const MultiSelectField = props => {
|
|
|
33
33
|
gridLayout,
|
|
34
34
|
dropdownAlignButton = 'left'
|
|
35
35
|
} = props;
|
|
36
|
-
const componentId = "multiSelect-component".concat(
|
|
36
|
+
const componentId = "multiSelect-component".concat(uuid.v1());
|
|
37
37
|
const [dataCombo, setDataCombo] = (0, _react.useState)(dataSource);
|
|
38
38
|
const [selecteds, setSelecteds] = (0, _react.useState)();
|
|
39
39
|
const [inputValue, setInputValue] = (0, _react.useState)('');
|
|
@@ -16,6 +16,7 @@ var _Dialog = _interopRequireDefault(require("./Dialog"));
|
|
|
16
16
|
var _hint = _interopRequireDefault(require("../../hint"));
|
|
17
17
|
var helperBase = _interopRequireWildcard(require("../base/helpers"));
|
|
18
18
|
require("../../assets/styles/periodpicker.scss");
|
|
19
|
+
var _errorMessage = require("../errorMessage");
|
|
19
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
21
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -374,6 +375,8 @@ const PeriodPicker = props => {
|
|
|
374
375
|
visible: !!hint,
|
|
375
376
|
customClass: "hint",
|
|
376
377
|
description: hint
|
|
377
|
-
}),
|
|
378
|
+
}), /*#__PURE__*/_react.default.createElement(_errorMessage.ErrorMessage, {
|
|
379
|
+
messages: props.errorMessages
|
|
380
|
+
}));
|
|
378
381
|
};
|
|
379
382
|
var _default = exports.default = PeriodPicker;
|
|
@@ -11,37 +11,28 @@ const ActionButtons = props => {
|
|
|
11
11
|
const {
|
|
12
12
|
disabled = false,
|
|
13
13
|
showClearButton = true,
|
|
14
|
-
dropDownOpened
|
|
14
|
+
dropDownOpened,
|
|
15
|
+
handlerOpenClose,
|
|
16
|
+
handlerClear
|
|
15
17
|
} = props;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
role: "button",
|
|
24
|
-
className: "actionbutton",
|
|
25
|
-
onClick: () => {
|
|
26
|
-
props.handleClear();
|
|
27
|
-
},
|
|
28
|
-
onKeyPress: () => {},
|
|
29
|
-
tabIndex: -1
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
19
|
+
className: "actionbuttonsselect"
|
|
20
|
+
}, showClearButton && /*#__PURE__*/_react.default.createElement("button", {
|
|
21
|
+
disabled: disabled,
|
|
22
|
+
tabIndex: -1,
|
|
23
|
+
className: "actionbutton buttonclear",
|
|
24
|
+
onClick: handlerClear
|
|
30
25
|
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
31
|
-
pointerEvents: "none",
|
|
32
26
|
name: "cancel",
|
|
33
|
-
customClass: "iconclear"
|
|
34
|
-
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
35
|
-
role: "button",
|
|
36
|
-
className: "actionbutton",
|
|
37
|
-
onClick: () => {
|
|
38
|
-
returnOnClick();
|
|
39
|
-
},
|
|
40
|
-
onKeyPress: () => {},
|
|
41
|
-
tabIndex: -1
|
|
42
|
-
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
43
|
-
name: dropDownOpened ? 'mini_up' : 'mini_down',
|
|
44
27
|
pointerEvents: "none"
|
|
28
|
+
})), /*#__PURE__*/_react.default.createElement("button", {
|
|
29
|
+
disabled: disabled,
|
|
30
|
+
tabIndex: -1,
|
|
31
|
+
className: "actionbutton buttonopenclose",
|
|
32
|
+
onClick: handlerOpenClose
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
34
|
+
pointerEvents: "none",
|
|
35
|
+
name: dropDownOpened ? 'mini_up' : 'mini_down'
|
|
45
36
|
})));
|
|
46
37
|
};
|
|
47
38
|
var _default = exports.default = ActionButtons;
|
|
@@ -29,7 +29,6 @@ const Dropdown = props => {
|
|
|
29
29
|
dropdownWidth,
|
|
30
30
|
gridWrapperStyle,
|
|
31
31
|
handleOnSelect,
|
|
32
|
-
handleOnBlur,
|
|
33
32
|
inputValue,
|
|
34
33
|
handleOnFocus,
|
|
35
34
|
opened,
|
|
@@ -83,15 +82,12 @@ const Dropdown = props => {
|
|
|
83
82
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
84
83
|
key: "dropdowmIten ".concat(item[idKey], "}"),
|
|
85
84
|
className: helper.getDropdownItemCssClass(itemSelected, disabled, striped)
|
|
86
|
-
}, /*#__PURE__*/_react.default.createElement("
|
|
87
|
-
role: "button",
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
88
86
|
className: "menubutton",
|
|
89
87
|
tabIndex: -1,
|
|
90
|
-
|
|
91
|
-
onClick: () => {
|
|
88
|
+
onClick: event => {
|
|
92
89
|
if (!disabled) {
|
|
93
90
|
handleOnSelect(item);
|
|
94
|
-
handleOnBlur(item);
|
|
95
91
|
}
|
|
96
92
|
}
|
|
97
93
|
}, item.iconName && /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
@@ -6,6 +6,6 @@ import '../../base/types.js';
|
|
|
6
6
|
import 'react';
|
|
7
7
|
import '../../../@types/Period.js';
|
|
8
8
|
|
|
9
|
-
declare const Selecteds: ({ currents, descriptionKey, idKey,
|
|
9
|
+
declare const Selecteds: ({ currents, descriptionKey, idKey, handlerOnUnselect, }: ISelectedsMultipleProps) => JSX.Element;
|
|
10
10
|
|
|
11
11
|
export { Selecteds as default };
|
|
@@ -11,17 +11,15 @@ const Selecteds = _ref => {
|
|
|
11
11
|
currents,
|
|
12
12
|
descriptionKey,
|
|
13
13
|
idKey,
|
|
14
|
-
|
|
14
|
+
handlerOnUnselect
|
|
15
15
|
} = _ref;
|
|
16
16
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, currents.map(selected => /*#__PURE__*/_react.default.createElement("div", {
|
|
17
17
|
className: "selecteditem",
|
|
18
18
|
key: "selected-".concat(selected[idKey])
|
|
19
|
-
}, typeof descriptionKey === 'string' ? selected[descriptionKey] : descriptionKey(selected), /*#__PURE__*/_react.default.createElement("
|
|
19
|
+
}, typeof descriptionKey === 'string' ? selected[descriptionKey] : descriptionKey(selected), /*#__PURE__*/_react.default.createElement("button", {
|
|
20
20
|
className: "close",
|
|
21
|
-
role: "button",
|
|
22
21
|
tabIndex: -1,
|
|
23
|
-
|
|
24
|
-
onClick: () => handleOnUnselect(selected[idKey])
|
|
22
|
+
onClick: () => handlerOnUnselect(selected[idKey])
|
|
25
23
|
}))));
|
|
26
24
|
};
|
|
27
25
|
var _default = exports.default = Selecteds;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
var
|
|
9
|
+
var uuid = _interopRequireWildcard(require("uuid"));
|
|
10
10
|
var _Dropdown = _interopRequireDefault(require("../Dropdown"));
|
|
11
11
|
var _ActionButtons = _interopRequireDefault(require("../ActionButtons"));
|
|
12
12
|
var _Selecteds = _interopRequireDefault(require("./Selecteds"));
|
|
@@ -24,7 +24,8 @@ const MultipleSelect = props => {
|
|
|
24
24
|
handlerClear,
|
|
25
25
|
value = [],
|
|
26
26
|
remoteSearch = false,
|
|
27
|
-
descriptionKey
|
|
27
|
+
descriptionKey,
|
|
28
|
+
showClearButton
|
|
28
29
|
} = props;
|
|
29
30
|
const [dataCombo, setDataCombo] = (0, _react.useState)(dataSource);
|
|
30
31
|
const [currents, setCurrents] = (0, _react.useState)([]);
|
|
@@ -35,11 +36,12 @@ const MultipleSelect = props => {
|
|
|
35
36
|
const [insideComponent, setInsideComponent] = (0, _react.useState)(false);
|
|
36
37
|
const [onDenied, setOnDeniedSelect] = (0, _react.useState)();
|
|
37
38
|
const [valueFromProps, setValueFromProps] = (0, _react.useState)([]);
|
|
38
|
-
const componentId = "select-component".concat(
|
|
39
|
+
const componentId = "select-component".concat(uuid.v1());
|
|
39
40
|
const componentRef = (0, _react.useRef)(null);
|
|
40
41
|
const dropdownRef = (0, _react.useRef)(null);
|
|
41
42
|
const selectWrapper = (0, _react.useRef)();
|
|
42
43
|
const gridElRef = (0, _react.useRef)();
|
|
44
|
+
const inputTextRef = (0, _react.useRef)(null);
|
|
43
45
|
const descriptionKeyIsString = typeof descriptionKey === 'string';
|
|
44
46
|
const onScreenResize = () => {
|
|
45
47
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
@@ -53,12 +55,12 @@ const MultipleSelect = props => {
|
|
|
53
55
|
}
|
|
54
56
|
};
|
|
55
57
|
const onMouseMove = event => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
setInsideComponent(
|
|
58
|
+
var _dropdownRef$current, _dropdownRef$current$;
|
|
59
|
+
const target = event.target;
|
|
60
|
+
const idDropdown = ((_dropdownRef$current = dropdownRef.current) === null || _dropdownRef$current === void 0 ? void 0 : (_dropdownRef$current$ = _dropdownRef$current.parentElement) === null || _dropdownRef$current$ === void 0 ? void 0 : _dropdownRef$current$.id) || '';
|
|
61
|
+
const dropdownElement = document.getElementById(idDropdown);
|
|
62
|
+
const keepDropdownOpen = Boolean(dropdownElement === null || dropdownElement === void 0 ? void 0 : dropdownElement.contains(target));
|
|
63
|
+
setInsideComponent(keepDropdownOpen);
|
|
62
64
|
};
|
|
63
65
|
const onClearClick = () => {
|
|
64
66
|
setSelected(undefined);
|
|
@@ -94,6 +96,7 @@ const MultipleSelect = props => {
|
|
|
94
96
|
setCurrents(currentsSelect);
|
|
95
97
|
setDataCombo(dataSource);
|
|
96
98
|
setInputValue([]);
|
|
99
|
+
if (inputTextRef && inputTextRef.current) inputTextRef.current.focus();
|
|
97
100
|
setOpened(false);
|
|
98
101
|
if (props.onSelect) setSelected(props.onSelect(currentsSelect.map(i => i[idKey])));
|
|
99
102
|
};
|
|
@@ -101,11 +104,13 @@ const MultipleSelect = props => {
|
|
|
101
104
|
if (currents) {
|
|
102
105
|
const result = currents.filter(item => item[idKey] !== id);
|
|
103
106
|
setCurrents(result);
|
|
107
|
+
if (inputTextRef && inputTextRef.current) inputTextRef.current.focus();
|
|
108
|
+
setOpened(false);
|
|
104
109
|
if (props.onSelect) setSelected(props.onSelect(result.map(i => i[idKey])));
|
|
105
110
|
}
|
|
106
111
|
};
|
|
107
112
|
const onOpenClose = () => {
|
|
108
|
-
setOpened(!
|
|
113
|
+
setOpened(prevState => !prevState);
|
|
109
114
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
110
115
|
};
|
|
111
116
|
const onFocus = () => {
|
|
@@ -115,11 +120,16 @@ const MultipleSelect = props => {
|
|
|
115
120
|
};
|
|
116
121
|
const onBlur = e => {
|
|
117
122
|
if (props.onBlur) props.onBlur(e);
|
|
118
|
-
if (!insideComponent)
|
|
123
|
+
if (!insideComponent) {
|
|
124
|
+
setOpened(false);
|
|
125
|
+
setDataCombo(dataSource);
|
|
126
|
+
}
|
|
119
127
|
};
|
|
120
128
|
const onInputKeyDown = e => {
|
|
121
129
|
if (e.keyCode) {
|
|
122
130
|
if (e.keyCode === constants.keyCodes.ENTER && selected) {
|
|
131
|
+
var _e$preventDefault;
|
|
132
|
+
(_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
123
133
|
if (!currents.includes(selected)) onSelect(selected);
|
|
124
134
|
} else if ([constants.keyCodes.ARROW_UP, constants.keyCodes.ARROW_DOWN].includes(e.keyCode)) {
|
|
125
135
|
if (!opened) setOpened(true);
|
|
@@ -190,6 +200,11 @@ const MultipleSelect = props => {
|
|
|
190
200
|
ref: componentRef,
|
|
191
201
|
className: "select-component"
|
|
192
202
|
}, /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({}, props, {
|
|
203
|
+
inputRef: ref => {
|
|
204
|
+
if (props.inputRef) props.inputRef(ref);
|
|
205
|
+
inputTextRef.current = ref;
|
|
206
|
+
},
|
|
207
|
+
autoComplete: "off",
|
|
193
208
|
value: inputValue.toString(),
|
|
194
209
|
readOnly: shouldBeReadOnly(),
|
|
195
210
|
onFocus: () => {
|
|
@@ -208,21 +223,19 @@ const MultipleSelect = props => {
|
|
|
208
223
|
selectWrapper.current = r;
|
|
209
224
|
},
|
|
210
225
|
handlerSetOnDenied: setOnDenied,
|
|
211
|
-
rightElements: /*#__PURE__*/_react.default.createElement(_ActionButtons.default,
|
|
226
|
+
rightElements: /*#__PURE__*/_react.default.createElement(_ActionButtons.default, {
|
|
227
|
+
showClearButton: showClearButton,
|
|
212
228
|
disabled: shouldDisable() || shouldBeReadOnly(),
|
|
213
229
|
dropDownOpened: opened,
|
|
214
|
-
|
|
230
|
+
handlerClear: () => {
|
|
215
231
|
if (shouldDisable()) return null;
|
|
216
232
|
return onClearClick();
|
|
217
233
|
},
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
currents: currents
|
|
224
|
-
}, props, {
|
|
225
|
-
handleOnUnselect: onUnselect
|
|
234
|
+
handlerOpenClose: onOpenClose
|
|
235
|
+
})
|
|
236
|
+
}), /*#__PURE__*/_react.default.createElement(_Selecteds.default, _extends({}, props, {
|
|
237
|
+
currents: currents,
|
|
238
|
+
handlerOnUnselect: onUnselect
|
|
226
239
|
}))), opened && /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({}, props, {
|
|
227
240
|
selected: selected,
|
|
228
241
|
selectFieldRef: componentRef,
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var
|
|
8
|
+
var uuid = _interopRequireWildcard(require("uuid"));
|
|
9
9
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
10
10
|
var _Dropdown = _interopRequireDefault(require("../Dropdown"));
|
|
11
11
|
var _ActionButtons = _interopRequireDefault(require("../ActionButtons"));
|
|
@@ -19,7 +19,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
19
19
|
const SimpleSelect = props => {
|
|
20
20
|
const {
|
|
21
21
|
value,
|
|
22
|
-
descriptionKey
|
|
22
|
+
descriptionKey,
|
|
23
23
|
dataSource = [],
|
|
24
24
|
gridLayout,
|
|
25
25
|
onSearch,
|
|
@@ -32,7 +32,9 @@ const SimpleSelect = props => {
|
|
|
32
32
|
name = '',
|
|
33
33
|
undigitable,
|
|
34
34
|
searchOnDropdown = false,
|
|
35
|
-
allOptions = undefined
|
|
35
|
+
allOptions = undefined,
|
|
36
|
+
showClearButton = false,
|
|
37
|
+
searchNotFoundText
|
|
36
38
|
} = props;
|
|
37
39
|
const descriptionKeyIsString = typeof descriptionKey === 'string';
|
|
38
40
|
const dataSourceWithAllOptions = allOptions ? [{
|
|
@@ -48,15 +50,11 @@ const SimpleSelect = props => {
|
|
|
48
50
|
const [onDenied, setOnDeniedSelect] = (0, _react.useState)();
|
|
49
51
|
const [isTyping, setIsTyping] = (0, _react.useState)(false);
|
|
50
52
|
const dropdownRef = (0, _react.useRef)(null);
|
|
51
|
-
const componentId = "select-component".concat(
|
|
53
|
+
const componentId = "select-component-".concat(name, "-").concat(uuid.v1());
|
|
52
54
|
const componentRef = (0, _react.useRef)(null);
|
|
53
55
|
const selectWrapper = (0, _react.useRef)();
|
|
54
56
|
const gridElement = (0, _react.useRef)();
|
|
55
|
-
const
|
|
56
|
-
setInputText('');
|
|
57
|
-
setSelected(null);
|
|
58
|
-
setDataCombo(dataSourceWithAllOptions);
|
|
59
|
-
};
|
|
57
|
+
const inputTextRef = (0, _react.useRef)(null);
|
|
60
58
|
const onScreenResize = () => {
|
|
61
59
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
62
60
|
};
|
|
@@ -70,10 +68,12 @@ const SimpleSelect = props => {
|
|
|
70
68
|
}
|
|
71
69
|
};
|
|
72
70
|
const onMouseMove = event => {
|
|
71
|
+
var _dropdownRef$current2, _dropdownRef$current3;
|
|
73
72
|
const target = event.target;
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
73
|
+
const idDropdown = ((_dropdownRef$current2 = dropdownRef.current) === null || _dropdownRef$current2 === void 0 ? void 0 : (_dropdownRef$current3 = _dropdownRef$current2.parentElement) === null || _dropdownRef$current3 === void 0 ? void 0 : _dropdownRef$current3.id) || '';
|
|
74
|
+
const dropdownElement = document.getElementById(idDropdown);
|
|
75
|
+
const keepDropdownOpen = Boolean(dropdownElement === null || dropdownElement === void 0 ? void 0 : dropdownElement.contains(target));
|
|
76
|
+
setInsideComponent(keepDropdownOpen);
|
|
77
77
|
};
|
|
78
78
|
const getSelectEvent = selectedEvent => ({
|
|
79
79
|
target: {
|
|
@@ -99,12 +99,12 @@ const SimpleSelect = props => {
|
|
|
99
99
|
});
|
|
100
100
|
if (dataComboFilter && dataComboFilter.length > 0) {
|
|
101
101
|
selectedFilter = dataComboFilter[0];
|
|
102
|
+
setSelected(selectedFilter);
|
|
102
103
|
}
|
|
103
104
|
setDataCombo(dataComboFilter);
|
|
104
105
|
}
|
|
105
106
|
setOpened(true);
|
|
106
107
|
setInputText(valueFilter);
|
|
107
|
-
setSelected(selectedFilter);
|
|
108
108
|
if (selectedFilter) {
|
|
109
109
|
if (descriptionKeyIsString && valueFilter === selectedFilter[descriptionKey] || !descriptionKeyIsString && valueFilter === descriptionKey(selectedFilter)) {
|
|
110
110
|
onChange(selectedFilter);
|
|
@@ -112,18 +112,22 @@ const SimpleSelect = props => {
|
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
const onSelect = selectedDropdown => {
|
|
115
|
-
if (selectedDropdown
|
|
116
|
-
setOpened(false);
|
|
115
|
+
if (!selectedDropdown) return;
|
|
117
116
|
setSelected(selectedDropdown);
|
|
118
117
|
if (descriptionKeyIsString) setInputText(selectedDropdown[descriptionKey]);else setInputText(descriptionKey(selectedDropdown));
|
|
119
|
-
|
|
118
|
+
new Promise(resolve => {
|
|
119
|
+
resolve(onChange(selectedDropdown));
|
|
120
|
+
}).finally(() => {
|
|
121
|
+
if (inputTextRef && inputTextRef.current) inputTextRef.current.focus();
|
|
122
|
+
setOpened(false);
|
|
123
|
+
});
|
|
120
124
|
};
|
|
121
125
|
const onOpenClose = () => {
|
|
122
|
-
setOpened(!
|
|
126
|
+
setOpened(prevState => !prevState);
|
|
123
127
|
if (selectWrapper.current) setDropdownWidth(selectWrapper.current.clientWidth);
|
|
124
128
|
};
|
|
125
129
|
const onFocus = () => {
|
|
126
|
-
|
|
130
|
+
if (openDropdownOnFocus) setOpened(true);
|
|
127
131
|
if (selectWrapper) {
|
|
128
132
|
const dropdownWidthFocus = selectWrapper.current ? selectWrapper.current.clientWidth : 0;
|
|
129
133
|
setDropdownWidth(dropdownWidthFocus);
|
|
@@ -133,16 +137,20 @@ const SimpleSelect = props => {
|
|
|
133
137
|
if (props.onBlur) {
|
|
134
138
|
const event = getSelectEvent(selected);
|
|
135
139
|
props.onBlur(event);
|
|
136
|
-
if (selected) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
if (selected && descriptionKeyIsString && inputText !== selected[descriptionKey] || !descriptionKeyIsString && inputText !== descriptionKey(selected)) {
|
|
141
|
+
setSelected(null);
|
|
142
|
+
setInputText(inputText);
|
|
143
|
+
new Promise(resolve => {
|
|
144
|
+
resolve(onChange(null));
|
|
145
|
+
}).finally(() => {
|
|
146
|
+
onChange();
|
|
147
|
+
});
|
|
140
148
|
}
|
|
141
|
-
setDataCombo(dataSourceWithAllOptions);
|
|
142
149
|
}
|
|
143
150
|
if (!insideComponent) {
|
|
144
151
|
setOpened(false);
|
|
145
152
|
setIsTyping(false);
|
|
153
|
+
setDataCombo(dataSourceWithAllOptions);
|
|
146
154
|
}
|
|
147
155
|
};
|
|
148
156
|
const onInputKeyDown = e => {
|
|
@@ -160,13 +168,22 @@ const SimpleSelect = props => {
|
|
|
160
168
|
index = dataCombo && index === 0 ? (dataCombo === null || dataCombo === void 0 ? void 0 : dataCombo.length) - 1 : index - 1;
|
|
161
169
|
}
|
|
162
170
|
setSelected(dataCombo[index]);
|
|
171
|
+
if (descriptionKeyIsString) setInputText(dataCombo[index][descriptionKey]);
|
|
172
|
+
if (!descriptionKeyIsString) setInputText(descriptionKey(dataCombo[index]));
|
|
163
173
|
}
|
|
164
174
|
}
|
|
165
175
|
if (!isTyping) setIsTyping(true);
|
|
166
176
|
};
|
|
167
177
|
const onClearClick = () => {
|
|
168
|
-
|
|
169
|
-
|
|
178
|
+
new Promise(resolve => {
|
|
179
|
+
resolve(onChange(null));
|
|
180
|
+
}).finally(() => {
|
|
181
|
+
setSelected(null);
|
|
182
|
+
setInputText('');
|
|
183
|
+
onChange();
|
|
184
|
+
if (inputTextRef && inputTextRef.current) inputTextRef.current.focus();
|
|
185
|
+
setOpened(false);
|
|
186
|
+
});
|
|
170
187
|
};
|
|
171
188
|
const setOnDenied = onDeniedSelect => {
|
|
172
189
|
setOnDeniedSelect(onDeniedSelect);
|
|
@@ -229,6 +246,11 @@ const SimpleSelect = props => {
|
|
|
229
246
|
ref: componentRef,
|
|
230
247
|
className: "select-component"
|
|
231
248
|
}, /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({}, props, {
|
|
249
|
+
inputRef: ref => {
|
|
250
|
+
if (props.inputRef) props.inputRef(ref);
|
|
251
|
+
inputTextRef.current = ref;
|
|
252
|
+
},
|
|
253
|
+
autoComplete: "off",
|
|
232
254
|
readOnly: undigitable || shouldBeReadOnly(),
|
|
233
255
|
value: inputText,
|
|
234
256
|
onFocus: onFocus,
|
|
@@ -243,18 +265,18 @@ const SimpleSelect = props => {
|
|
|
243
265
|
selectWrapper.current = r;
|
|
244
266
|
},
|
|
245
267
|
handlerSetOnDenied: inputOnDenied => setOnDenied(inputOnDenied),
|
|
246
|
-
rightElements: /*#__PURE__*/_react.default.createElement(_ActionButtons.default,
|
|
268
|
+
rightElements: /*#__PURE__*/_react.default.createElement(_ActionButtons.default, {
|
|
247
269
|
disabled: shouldDisable() || shouldBeReadOnly(),
|
|
270
|
+
showClearButton: showClearButton,
|
|
248
271
|
dropDownOpened: opened,
|
|
249
|
-
|
|
272
|
+
handlerClear: () => {
|
|
250
273
|
if (shouldDisable()) return null;
|
|
251
274
|
return onClearClick();
|
|
252
275
|
},
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
}))
|
|
276
|
+
handlerOpenClose: onOpenClose
|
|
277
|
+
})
|
|
257
278
|
})), opened && /*#__PURE__*/_react.default.createElement(_Dropdown.default, _extends({}, props, {
|
|
279
|
+
opened: opened,
|
|
258
280
|
selected: selected,
|
|
259
281
|
inputValue: inputText,
|
|
260
282
|
selectFieldRef: componentRef,
|
|
@@ -268,9 +290,9 @@ const SimpleSelect = props => {
|
|
|
268
290
|
handleOnKeydown: onInputKeyDown,
|
|
269
291
|
handleOnBlur: () => onBlur,
|
|
270
292
|
handleOnFocus: onFocus,
|
|
271
|
-
opened: opened,
|
|
272
293
|
dataCombo: dataCombo,
|
|
273
|
-
dropdownWidth: dropdownWidth || 0
|
|
294
|
+
dropdownWidth: dropdownWidth || 0,
|
|
295
|
+
searchNotFoundText: searchNotFoundText
|
|
274
296
|
})));
|
|
275
297
|
};
|
|
276
298
|
var _default = exports.default = SimpleSelect;
|
|
@@ -47,6 +47,7 @@ interface ISimpleSelectProps {
|
|
|
47
47
|
autoFocus?: boolean;
|
|
48
48
|
onFocus?: () => void;
|
|
49
49
|
allOptions?: AllOptions;
|
|
50
|
+
inputRef?: ((ref: HTMLInputElement | HTMLTextAreaElement | null) => void);
|
|
50
51
|
}
|
|
51
52
|
interface ISelectFieldProps extends Omit<ISimpleSelectProps, 'idKey' | 'value' | 'descriptionKey'> {
|
|
52
53
|
multiple?: boolean;
|
|
@@ -92,7 +93,7 @@ interface ISelectedsMultipleProps {
|
|
|
92
93
|
idKey: string;
|
|
93
94
|
descriptionKey: DescriptionKey;
|
|
94
95
|
currents: DataCombo[];
|
|
95
|
-
|
|
96
|
+
handlerOnUnselect: (id: string) => void;
|
|
96
97
|
}
|
|
97
98
|
interface GetFilteredParams {
|
|
98
99
|
dataSource: DataCombo[];
|
package/lib/inputs/types.d.ts
CHANGED
|
@@ -133,8 +133,8 @@ interface IDropdownSelectProps {
|
|
|
133
133
|
align?: 'left' | 'right';
|
|
134
134
|
}
|
|
135
135
|
interface IActionButtonsSelectProps {
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
handlerClear: () => void;
|
|
137
|
+
handlerOpenClose: () => void;
|
|
138
138
|
dropDownOpened: boolean;
|
|
139
139
|
showClearButton?: boolean;
|
|
140
140
|
disabled?: boolean;
|
|
@@ -149,5 +149,10 @@ interface IButtonsProps {
|
|
|
149
149
|
transparent: boolean;
|
|
150
150
|
disabled?: boolean;
|
|
151
151
|
}
|
|
152
|
+
interface ErrorProps {
|
|
153
|
+
customClass?: string;
|
|
154
|
+
style?: React.CSSProperties;
|
|
155
|
+
messages?: string | string[];
|
|
156
|
+
}
|
|
152
157
|
|
|
153
|
-
export type { IActionButtonsSelectProps, IAdvancedFilterProps, IButtonsProps, IDropdownProps, IDropdownSelectProps, IInputHOCProps, IMaskHOCProps, ISearchProps };
|
|
158
|
+
export type { ErrorProps, IActionButtonsSelectProps, IAdvancedFilterProps, IButtonsProps, IDropdownProps, IDropdownSelectProps, IInputHOCProps, IMaskHOCProps, ISearchProps };
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "NavSubMenuItem", {
|
|
|
29
29
|
});
|
|
30
30
|
exports.default = void 0;
|
|
31
31
|
var _react = _interopRequireWildcard(require("react"));
|
|
32
|
-
var
|
|
32
|
+
var uuid = _interopRequireWildcard(require("uuid"));
|
|
33
33
|
var _NavMenuItem = _interopRequireDefault(require("./NavMenuItem"));
|
|
34
34
|
var _NavSubMenuItem = _interopRequireDefault(require("./NavSubMenuItem"));
|
|
35
35
|
var _NavMenuGroup = _interopRequireDefault(require("./NavMenuGroup"));
|
|
@@ -82,7 +82,7 @@ const SideNav = props => {
|
|
|
82
82
|
} = child;
|
|
83
83
|
if ((type === _NavMenuItem.default || type === _NavSubMenuItem.default) && !child.props.children) {
|
|
84
84
|
setMenuItemsContent(prevState => [...prevState, {
|
|
85
|
-
id: "".concat(child.props.title, "-").concat(
|
|
85
|
+
id: "".concat(child.props.title, "-").concat(uuid.v1()),
|
|
86
86
|
content: child.props.title,
|
|
87
87
|
url: child.props.url
|
|
88
88
|
}]);
|
|
@@ -127,7 +127,7 @@ const SideNav = props => {
|
|
|
127
127
|
}, [expanded]);
|
|
128
128
|
const returnMenuItems = () => menuItemsContent.filter(item => item.content !== '');
|
|
129
129
|
const getPopupMenuSearch = () => /*#__PURE__*/_react.default.createElement(_NavMenuGroup.default, {
|
|
130
|
-
key: "popup-menusearch-".concat(
|
|
130
|
+
key: "popup-menusearch-".concat(uuid.v1())
|
|
131
131
|
}, /*#__PURE__*/_react.default.createElement(_NavMenuItem.default, {
|
|
132
132
|
childrenIsSubMenu: false,
|
|
133
133
|
customClass: "-customsidenavitem",
|
|
@@ -34,15 +34,16 @@ const PopupMenuSearch = props => {
|
|
|
34
34
|
const closeOnEsc = e => {
|
|
35
35
|
if (e.keyCode === 27 || e.key === 'ESC') {
|
|
36
36
|
handlerClose();
|
|
37
|
+
e.stopPropagation();
|
|
37
38
|
}
|
|
38
39
|
};
|
|
39
40
|
(0, _react.useEffect)(() => {
|
|
40
41
|
body.appendChild(popupRef.current);
|
|
41
42
|
if (searchFieldRef && searchFieldRef.current) searchFieldRef.current.focus();
|
|
42
|
-
document.body.addEventListener('
|
|
43
|
+
document.body.addEventListener('keydown', closeOnEsc);
|
|
43
44
|
return () => {
|
|
44
45
|
body.removeChild(popupRef.current);
|
|
45
|
-
document.body.removeEventListener('
|
|
46
|
+
document.body.removeEventListener('keydown', closeOnEsc);
|
|
46
47
|
};
|
|
47
48
|
}, []);
|
|
48
49
|
(0, _react.useEffect)(() => {
|