tenjin-ui-kit 0.3.65 → 0.3.67
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.
|
@@ -7,9 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _material = require("@mui/material");
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _fi = require("react-icons/fi");
|
|
11
10
|
var colors = _interopRequireWildcard(require("@mui/material/colors"));
|
|
12
|
-
var _system = require("@mui/system");
|
|
13
11
|
var _button = _interopRequireDefault(require("../button"));
|
|
14
12
|
var _text = _interopRequireDefault(require("../text"));
|
|
15
13
|
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); }
|
|
@@ -43,7 +41,7 @@ var determineSelectedOptions = function determineSelectedOptions(options, select
|
|
|
43
41
|
});
|
|
44
42
|
});
|
|
45
43
|
};
|
|
46
|
-
var ValueSelector = function
|
|
44
|
+
var ValueSelector = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
47
45
|
var options = _ref.options,
|
|
48
46
|
valueKey = _ref.valueKey,
|
|
49
47
|
displayKey = _ref.displayKey,
|
|
@@ -73,6 +71,43 @@ var ValueSelector = function ValueSelector(_ref) {
|
|
|
73
71
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
74
72
|
filteredLocalOptions = _useState8[0],
|
|
75
73
|
setFilteredLocalOptions = _useState8[1];
|
|
74
|
+
var _useState9 = (0, _react.useState)(-1),
|
|
75
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
76
|
+
activeIndex = _useState10[0],
|
|
77
|
+
setActiveIndex = _useState10[1];
|
|
78
|
+
var itemRefs = (0, _react.useRef)([]);
|
|
79
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
80
|
+
return {
|
|
81
|
+
handleKeyDown: function handleKeyDown(e) {
|
|
82
|
+
if (!["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) return;
|
|
83
|
+
if (e.key === "ArrowDown") {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
setActiveIndex(function (prev) {
|
|
86
|
+
if (filteredLocalOptions.length === 0) return -1;
|
|
87
|
+
return prev < filteredLocalOptions.length - 1 ? prev + 1 : 0;
|
|
88
|
+
});
|
|
89
|
+
} else if (e.key === "ArrowUp") {
|
|
90
|
+
e.preventDefault();
|
|
91
|
+
setActiveIndex(function (prev) {
|
|
92
|
+
if (filteredLocalOptions.length === 0) return -1;
|
|
93
|
+
return prev > 0 ? prev - 1 : filteredLocalOptions.length - 1;
|
|
94
|
+
});
|
|
95
|
+
} else if (e.key === "Enter") {
|
|
96
|
+
if (activeIndex >= 0 && activeIndex < filteredLocalOptions.length) {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
handleSelection(filteredLocalOptions[activeIndex]);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
(0, _react.useEffect)(function () {
|
|
105
|
+
if (activeIndex >= 0 && itemRefs.current[activeIndex]) {
|
|
106
|
+
itemRefs.current[activeIndex].scrollIntoView({
|
|
107
|
+
block: "nearest"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}, [activeIndex]);
|
|
76
111
|
(0, _react.useEffect)(function () {
|
|
77
112
|
resolveOptions();
|
|
78
113
|
}, []);
|
|
@@ -208,21 +243,30 @@ var ValueSelector = function ValueSelector(_ref) {
|
|
|
208
243
|
}
|
|
209
244
|
}, (filteredLocalOptions === null || filteredLocalOptions === void 0 ? void 0 : filteredLocalOptions.length) === 0 ? /*#__PURE__*/_react.default.createElement(_text.default, {
|
|
210
245
|
color: "secondary"
|
|
211
|
-
}, "No Data") : filteredLocalOptions.map(function (o) {
|
|
246
|
+
}, "No Data") : filteredLocalOptions.map(function (o, index) {
|
|
212
247
|
var altVal = o[avatarKey] === "/" ? " " : o[displayKey];
|
|
213
248
|
var bgcAvatar = colors[o[colorKey]] ? colors[o[colorKey]][500] : "red";
|
|
214
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment,
|
|
249
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
|
|
250
|
+
key: o[valueKey]
|
|
251
|
+
}, /*#__PURE__*/_react.default.createElement(_material.ListItem, {
|
|
215
252
|
dense: true,
|
|
216
253
|
disablePadding: true,
|
|
217
|
-
|
|
218
|
-
|
|
254
|
+
ref: function ref(el) {
|
|
255
|
+
return itemRefs.current[index] = el;
|
|
256
|
+
},
|
|
257
|
+
sx: _objectSpread(_objectSpread({}, o.selected && {
|
|
219
258
|
backgroundColor: "#F5FAFF"
|
|
220
|
-
}
|
|
259
|
+
}), activeIndex === index && {
|
|
260
|
+
backgroundColor: theme.palette.action.hover
|
|
261
|
+
})
|
|
221
262
|
}, /*#__PURE__*/_react.default.createElement(_material.ListItemButton, {
|
|
222
263
|
disableRipple: true,
|
|
223
264
|
dense: true,
|
|
224
265
|
onClick: function onClick() {
|
|
225
266
|
return handleSelection(o);
|
|
267
|
+
},
|
|
268
|
+
onMouseEnter: function onMouseEnter() {
|
|
269
|
+
return setActiveIndex(index);
|
|
226
270
|
}
|
|
227
271
|
}, multiple && /*#__PURE__*/_react.default.createElement(_material.ListItemIcon, {
|
|
228
272
|
sx: {
|
|
@@ -290,7 +334,7 @@ var ValueSelector = function ValueSelector(_ref) {
|
|
|
290
334
|
semibold: true,
|
|
291
335
|
variant: "caption"
|
|
292
336
|
}, "Clear Selection"))))));
|
|
293
|
-
};
|
|
337
|
+
});
|
|
294
338
|
ValueSelector.propTypes = {
|
|
295
339
|
label: _propTypes.default.string.isRequired,
|
|
296
340
|
options: _propTypes.default.array,
|
|
@@ -8,11 +8,10 @@ exports.default = void 0;
|
|
|
8
8
|
var _material = require("@mui/material");
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _ValueSelector = _interopRequireDefault(require("./ValueSelector"));
|
|
12
11
|
var _bs = require("react-icons/bs");
|
|
13
|
-
var _system = require("@mui/system");
|
|
14
|
-
var _text = _interopRequireDefault(require("../text"));
|
|
15
12
|
var _button = _interopRequireDefault(require("../button"));
|
|
13
|
+
var _text = _interopRequireDefault(require("../text"));
|
|
14
|
+
var _ValueSelector = _interopRequireDefault(require("./ValueSelector"));
|
|
16
15
|
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); }
|
|
17
16
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
17
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -75,6 +74,15 @@ var Filter = function Filter(_ref) {
|
|
|
75
74
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
76
75
|
filter = _useState8[0],
|
|
77
76
|
setFilter = _useState8[1];
|
|
77
|
+
var valueSelectorRef = (0, _react.useRef)(null);
|
|
78
|
+
var handleKeyDown = function handleKeyDown(e) {
|
|
79
|
+
if (["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) {
|
|
80
|
+
e.stopPropagation();
|
|
81
|
+
}
|
|
82
|
+
if (valueSelectorRef.current) {
|
|
83
|
+
valueSelectorRef.current.handleKeyDown(e);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
78
86
|
var handleFilterChange = function handleFilterChange(e) {
|
|
79
87
|
var value = e.target.value;
|
|
80
88
|
setFilter(value);
|
|
@@ -107,6 +115,7 @@ var Filter = function Filter(_ref) {
|
|
|
107
115
|
anchorEl: menuAnchor,
|
|
108
116
|
open: Boolean(menuAnchor),
|
|
109
117
|
onClose: handleMenuClose,
|
|
118
|
+
onKeyDownCapture: handleKeyDown,
|
|
110
119
|
PaperProps: {
|
|
111
120
|
style: {
|
|
112
121
|
width: "25ch",
|
|
@@ -136,6 +145,7 @@ var Filter = function Filter(_ref) {
|
|
|
136
145
|
paddingBottom: 1.5
|
|
137
146
|
}, /*#__PURE__*/_react.default.createElement(_material.TextField, {
|
|
138
147
|
fullWidth: true,
|
|
148
|
+
autoFocus: true,
|
|
139
149
|
value: filter,
|
|
140
150
|
onChange: handleFilterChange,
|
|
141
151
|
placeholder: "Type to search...",
|
|
@@ -185,6 +195,7 @@ var Filter = function Filter(_ref) {
|
|
|
185
195
|
width: "100%",
|
|
186
196
|
height: 10
|
|
187
197
|
})) : /*#__PURE__*/_react.default.createElement(_ValueSelector.default, {
|
|
198
|
+
ref: valueSelectorRef,
|
|
188
199
|
key: JSON.stringify(filter),
|
|
189
200
|
options: filter ? options.filter(function (data) {
|
|
190
201
|
return "".concat(data.id).concat(data.name).trim().toLowerCase().includes(filter.trim().toLowerCase());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tenjin-ui-kit",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.67",
|
|
4
4
|
"repository": {
|
|
5
5
|
"url": "git+https://gitlab.com/yethi/react/tenjin-ui-kit.git"
|
|
6
6
|
},
|
|
@@ -112,13 +112,13 @@
|
|
|
112
112
|
"peerDependencies": {
|
|
113
113
|
"@emotion/react": "^11.10.5",
|
|
114
114
|
"@emotion/styled": "^11.10.5",
|
|
115
|
+
"@mui/lab": "5.0.0-alpha.116",
|
|
115
116
|
"@mui/material": "^5.11.3",
|
|
116
117
|
"@testing-library/jest-dom": "^5.16.5",
|
|
117
118
|
"@testing-library/react": "^13.4.0",
|
|
118
119
|
"@testing-library/user-event": "^13.5.0",
|
|
119
120
|
"react": "^18.2.0",
|
|
120
121
|
"react-dom": "^18.2.0",
|
|
121
|
-
"react-router-dom": "^6.6.1"
|
|
122
|
-
"@mui/lab": "5.0.0-alpha.116"
|
|
122
|
+
"react-router-dom": "^6.6.1"
|
|
123
123
|
}
|
|
124
124
|
}
|