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: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sag_components",
3
- "version": "1.0.88",
3
+ "version": "1.0.89",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {