sag_components 1.0.88 → 1.0.89
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.
|
@@ -53,10 +53,14 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
53
53
|
onInputChange = _ref.onInputChange,
|
|
54
54
|
_ref$labelColor = _ref.labelColor,
|
|
55
55
|
labelColor = _ref$labelColor === void 0 ? "#1B30AA" : _ref$labelColor,
|
|
56
|
-
required = _ref.required
|
|
56
|
+
required = _ref.required,
|
|
57
|
+
defaultValue = _ref.defaultValue,
|
|
58
|
+
_ref$allowedInput = _ref.allowedInput,
|
|
59
|
+
allowedInput = _ref$allowedInput === void 0 ? "all" : _ref$allowedInput;
|
|
57
60
|
/**
|
|
58
61
|
* SAG Dropdown
|
|
59
62
|
*/
|
|
63
|
+
|
|
60
64
|
var _useState = (0, _react.useState)(null),
|
|
61
65
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
62
66
|
currentInputValue = _useState2[0],
|
|
@@ -131,6 +135,31 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
131
135
|
newValue: newValue
|
|
132
136
|
});
|
|
133
137
|
};
|
|
138
|
+
var getOptionByLabel = function getOptionByLabel(label) {
|
|
139
|
+
if (!options) return null;
|
|
140
|
+
var foundOption = options.find(function (item) {
|
|
141
|
+
return item.label == label;
|
|
142
|
+
});
|
|
143
|
+
if (!foundOption) return null;
|
|
144
|
+
return foundOption;
|
|
145
|
+
};
|
|
146
|
+
var isInputAllowed = function isInputAllowed(inputChar) {
|
|
147
|
+
var NUMERIC_REGEX = /^[0-9-]+$/;
|
|
148
|
+
var ALPHA_REGEX = /^[a-zA-Z]+$/;
|
|
149
|
+
var ALPHA_NUMERIC_REGEX = /^[a-zA-Z0-9-]+$/;
|
|
150
|
+
switch (allowedInput) {
|
|
151
|
+
case "all":
|
|
152
|
+
return true;
|
|
153
|
+
case "alpha":
|
|
154
|
+
if (ALPHA_REGEX.test(inputChar)) return true;else return false;
|
|
155
|
+
case "numeric":
|
|
156
|
+
if (NUMERIC_REGEX.test(inputChar)) return true;else return false;
|
|
157
|
+
case "alphaNumeric":
|
|
158
|
+
if (ALPHA_NUMERIC_REGEX.test(inputChar)) return true;else return false;
|
|
159
|
+
default:
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
134
163
|
var getAutocompleteSingle = function getAutocompleteSingle() {
|
|
135
164
|
return /*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
|
|
136
165
|
theme: theme
|
|
@@ -142,6 +171,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
142
171
|
onInputChangeHandler(event, newInputValue);
|
|
143
172
|
},
|
|
144
173
|
disablePortal: true,
|
|
174
|
+
defaultValue: defaultValue && getOptionByLabel(defaultValue) != null ? getOptionByLabel(defaultValue) : null,
|
|
145
175
|
id: "combo-box",
|
|
146
176
|
options: options,
|
|
147
177
|
sx: {
|
|
@@ -154,6 +184,11 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
154
184
|
forcePopupIcon: "auto",
|
|
155
185
|
renderInput: function renderInput(params) {
|
|
156
186
|
return /*#__PURE__*/_react.default.createElement(_TextField.default, Object.assign({}, params, {
|
|
187
|
+
onKeyDown: function onKeyDown(event) {
|
|
188
|
+
if (!isInputAllowed(event.key)) {
|
|
189
|
+
event.preventDefault();
|
|
190
|
+
}
|
|
191
|
+
},
|
|
157
192
|
required: required,
|
|
158
193
|
label: text,
|
|
159
194
|
size: size,
|
|
@@ -233,6 +268,11 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
233
268
|
size: size,
|
|
234
269
|
sx: getTextFieldStyle(),
|
|
235
270
|
placeholder: placeHolder,
|
|
271
|
+
onKeyDown: function onKeyDown(event) {
|
|
272
|
+
if (!isInputAllowed(event.key)) {
|
|
273
|
+
event.preventDefault();
|
|
274
|
+
}
|
|
275
|
+
},
|
|
236
276
|
required: required,
|
|
237
277
|
InputProps: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params.InputProps), {}, {
|
|
238
278
|
style: {
|
|
@@ -257,6 +297,11 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
257
297
|
size: size,
|
|
258
298
|
sx: getTextFieldStyle(),
|
|
259
299
|
placeholder: placeHolder,
|
|
300
|
+
onKeyDown: function onKeyDown(event) {
|
|
301
|
+
if (!isInputAllowed(event.key)) {
|
|
302
|
+
event.preventDefault();
|
|
303
|
+
}
|
|
304
|
+
},
|
|
260
305
|
required: required,
|
|
261
306
|
InputLabelProps: {
|
|
262
307
|
style: {
|