intelicoreact 1.1.82 → 1.1.84

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.
@@ -40,9 +40,45 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
40
40
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
41
 
42
42
  var HIDE_SYMBOL = "\u2022";
43
+ /**
44
+ * Input компонент.
45
+ *
46
+ * @component
47
+ * @param {object} props.blurTrim - Обрезает ведущие и оконечные символы строки при потере фокуса.
48
+ * @param {string} props.autocomplete - Определяет, должен ли браузер включать автозаполнение ввода пользователя.
49
+ * @param {boolean} props.isSelect - Определяет, будет ли компонент редактироваться по умолчанию при загрузке страницы.
50
+ * @param {function} props.onChange - Функция, которая вызывается при изменении содержимого элемента управления формы.
51
+ * @param {function} props.onBlur - Функция, которая вызывается при потере элементом управления фокуса.
52
+ * @param {function} props.onFocus - Функция, вызываемая при получении элементом управления фокуса.
53
+ * @param {function} props.onKeyUp - Функция, которая вызывается при отпускании клавиши.
54
+ * @param {function} props.onKeyDown - Функция, вызываемая при нажатии на клавишу.
55
+ * @param {boolean} props.isNotBlinkErrors - Отключает мигание элемента управления при ошибках.
56
+ * @param {boolean} props.isPriceInput - Определяет, будет ли компонент ввода формата числа с плавающей точкой.
57
+ * @param {boolean} props.onlyNumbers - Определяет, будет ли компонент прозволять только цифры.
58
+ * @param {boolean} props.isOnlyString - Определяет, будет ли компонент разрешать
59
+ * только строки (без чисел или других символов).
60
+ * @param {boolean} props.disabled - Блокировка поля ввода.
61
+ * @param {boolean} props.withDelete - Включает отображение кнопки удаления контента.
62
+ * @param {string} props.value - Значение поля ввода.
63
+ * @param {string} props.placeholder - Текст подсказки внутри поля ввода.
64
+ * @param {string} props.className - Строка с именами классов, применяемыми к компоненту.
65
+ * @param {string} props.type - Тип компонента ввода (например, 'text', 'password').
66
+ * @param {boolean} props.softStringMode - Используется для включения нестрогого режима ввода символов.
67
+ * @param {object} props.mask - Маска для поля ввода.
68
+ * @param {string} props.maskChar - Свойство определяет символ,
69
+ * используемый вместо пропущенных символов при введении маски.
70
+ * @param {object} props.formatChars - Объект, определяющий символы, которые должны быть заменены в маске.
71
+ * @param {string} props.error - Строка с сообщением об ошибке.
72
+ * @param {number} props.symbolsLimit - Лимит символов ввода.
73
+ * @param {number} props.blinkTime - Время мигания в миллисекундах.
74
+ * @param {boolean} props.isFocusDefault - Определяет, будет ли элемент получать фокус при загрузке страницы.
75
+ * @param {boolean} props.isNotValidateASCII - Отключает проверку ASCII для вводимых символов.
76
+ * @param {boolean} props.isNumericMobileKeyboard - Отображает цифровую клавиатуру на мобильных устройствах.
77
+ */
43
78
 
44
79
  var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
45
- var _ref$autocomplete = _ref.autocomplete,
80
+ var blurTrim = _ref.blurTrim,
81
+ _ref$autocomplete = _ref.autocomplete,
46
82
  autocomplete = _ref$autocomplete === void 0 ? 'off' : _ref$autocomplete,
47
83
  isSelect = _ref.isSelect,
48
84
  _ref$onChange = _ref.onChange,
@@ -58,7 +94,6 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
58
94
  isNotBlinkErrors = _ref.isNotBlinkErrors,
59
95
  isPriceInput = _ref.isPriceInput,
60
96
  onlyNumbers = _ref.onlyNumbers,
61
- isOnlyString = _ref.isOnlyString,
62
97
  disabled = _ref.disabled,
63
98
  withDelete = _ref.withDelete,
64
99
  value = _ref.value,
@@ -66,8 +101,6 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
66
101
  className = _ref.className,
67
102
  _ref$type = _ref.type,
68
103
  type = _ref$type === void 0 ? 'text' : _ref$type,
69
- _ref$softStringMode = _ref.softStringMode,
70
- softStringMode = _ref$softStringMode === void 0 ? false : _ref$softStringMode,
71
104
  mask = _ref.mask,
72
105
  maskChar = _ref.maskChar,
73
106
  formatChars = _ref.formatChars,
@@ -99,6 +132,12 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
99
132
  fieldKey = _ref.fieldKey,
100
133
  id = _ref.id,
101
134
  key = _ref.key;
135
+
136
+ var _ref2 = blurTrim || {},
137
+ trimStart = _ref2.trimStart,
138
+ trimEnd = _ref2.trimEnd,
139
+ characters = _ref2.characters;
140
+
102
141
  var DynamicIconComponent = iconDynamicKey && !icon ? /*#__PURE__*/_react.default.createElement(_DynamicIcon.default, (0, _extends2.default)({
103
142
  iconKey: iconDynamicKey
104
143
  }, iconDynamicProps)) : null;
@@ -157,11 +196,11 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
157
196
  correctMinMax: function correctMinMax(value, correctionType) {
158
197
  if (!onlyNumbers) return value;
159
198
 
160
- var _ref2 = (0, _utils.getIsOnlyAnObject)(onlyNumbers) ? onlyNumbers : {},
161
- min = _ref2.min,
162
- max = _ref2.max,
163
- isOnlyPositive = _ref2.isOnlyPositive,
164
- isNoEmptyValues = _ref2.isNoEmptyValues;
199
+ var _ref3 = (0, _utils.getIsOnlyAnObject)(onlyNumbers) ? onlyNumbers : {},
200
+ min = _ref3.min,
201
+ max = _ref3.max,
202
+ isOnlyPositive = _ref3.isOnlyPositive,
203
+ isNoEmptyValues = _ref3.isNoEmptyValues;
165
204
 
166
205
  var minimum = !Number.isNaN(+min) && min !== null && (min >= 0 || !isOnlyPositive) ? min : undefined;
167
206
  var maximum = !Number.isNaN(+max) && max !== null && (max >= 0 || !isOnlyPositive) ? max : undefined;
@@ -243,8 +282,8 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
243
282
  change: function change(e) {
244
283
  var _minusSymbol3;
245
284
 
246
- var _ref3 = (0, _utils.getIsOnlyAnObject)(onlyNumbers) ? onlyNumbers : {},
247
- isOnlyPositive = _ref3.isOnlyPositive;
285
+ var _ref4 = (0, _utils.getIsOnlyAnObject)(onlyNumbers) ? onlyNumbers : {},
286
+ isOnlyPositive = _ref4.isOnlyPositive;
248
287
 
249
288
  var minusSymbol;
250
289
  var inputValue = e.target ? e.target.value : e;
@@ -259,8 +298,7 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
259
298
 
260
299
  if (!isNotValidateASCII) inputValue = (0, _fieldValueFormatters.formatToOnlyASCIICodeText)(inputValue);
261
300
  if (symbolsLimit && inputValue.length > +symbolsLimit) inputValue = inputValue.substring(0, +symbolsLimit);
262
- if (isCropFirstNool && inputValue[0] == 0) return '';
263
- if (onlyNumbers && isOnlyString || isOnlyString) inputValue = (0, _fieldValueFormatters.formatToLetters)(inputValue, softStringMode);else if (onlyNumbers) inputValue = handle.correctMinMax(inputValue, 'max');
301
+ if (isCropFirstNool && inputValue[0] == 0) return '';else if (onlyNumbers) inputValue = handle.correctMinMax(inputValue, 'max');
264
302
  onChange((((_minusSymbol3 = minusSymbol) !== null && _minusSymbol3 !== void 0 ? _minusSymbol3 : '') + inputValue).toString());
265
303
  },
266
304
  toggleEdit: function toggleEdit() {
@@ -273,12 +311,8 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
273
311
  },
274
312
  blur: function blur(e) {
275
313
  var inputValue = handle.correctMinMax((0, _fieldValueFormatters.getSafelyValue)(value), 'min');
276
-
277
- if ((onlyNumbers && isOnlyString || isOnlyString) && softStringMode) {
278
- // вырезаем "-" в начале строки, если он есть. и в конце строки, если после него ничего нет.
279
- inputValue = inputValue.replace(/(^-|-$)/g, '');
280
- }
281
-
314
+ if (trimStart) inputValue = inputValue.replace(new RegExp("^[".concat(characters, "]+")), '');
315
+ if (trimEnd) inputValue = inputValue.replace(new RegExp("[".concat(characters, "]+$")), '');
282
316
  if (value !== inputValue) onChange(inputValue);
283
317
  setIsFocused(false);
284
318
  setEditing(false); // использую setTimeout для того чтоб прошли переназначения велью, если они есть,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.formatToRemoveComa = exports.formatToPriceWithUSD = exports.formatToOnlyASCIICodeText = exports.formatToLimitLength = exports.formatToLetters = exports.formatToHideValuePartially = exports.formatToHex = exports.formatToDollarSign = exports.formatToCutOffDotAtTheEnd = exports.formatToAddBitDepthPoints = exports.formatOnlyNumbers = exports.formatNumberValueToMask = exports.filterNumeric = exports.filterFloat = void 0;
6
+ exports.formatToRemoveComa = exports.formatToPriceWithUSD = exports.formatToOnlyASCIICodeText = exports.formatToLimitLength = exports.formatToHideValuePartially = exports.formatToHex = exports.formatToDollarSign = exports.formatToCutOffDotAtTheEnd = exports.formatToAddBitDepthPoints = exports.formatOnlyNumbers = exports.formatNumberValueToMask = exports.filterNumeric = exports.filterFloat = void 0;
7
7
  exports.formatToReplaceAllWhiteSpace = formatToReplaceAllWhiteSpace;
8
8
  exports.intlNumbersFormatter = exports.getSafelyValue = exports.formatToTwoDigitAfterDot = void 0;
9
9
 
@@ -168,23 +168,10 @@ var formatToPriceWithUSD = function formatToPriceWithUSD(value) {
168
168
  quantity: 2
169
169
  }
170
170
  });
171
- };
172
-
173
- exports.formatToPriceWithUSD = formatToPriceWithUSD;
174
-
175
- var formatToLetters = function formatToLetters(inputValue) {
176
- var isSoft = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
177
- var value = getSafelyValue(inputValue);
178
-
179
- if (isSoft) {
180
- return value.toString().replace(/[^a-z-]|--/gi, '').replace(/-+/g, '-');
181
- } else {
182
- return value.toString().replace(/[^a-z]/gi, '');
183
- }
184
171
  }; // eslint-disable-next-line no-control-regex
185
172
 
186
173
 
187
- exports.formatToLetters = formatToLetters;
174
+ exports.formatToPriceWithUSD = formatToPriceWithUSD;
188
175
 
189
176
  var formatToOnlyASCIICodeText = function formatToOnlyASCIICodeText(text) {
190
177
  return getSafelyValue(text).replace(/[^\x00-\x7F]+/g, '');
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MASK_PRESETS = void 0;
7
+
8
+ /**
9
+ * @param type: 'inputMask',
10
+ * @param maskPattern: 'DD.DD.DDDD',
11
+ * @param maskPatternPlaceholder: 'MM.DD.YYYY',
12
+ * @param usePatternPlaceholder: true,
13
+ * @param isNumericMobileKeyboard: true,
14
+ * @param blinkErrors: true,
15
+ * @param showErrors: false,
16
+ * @param autocomplete: 'bday',
17
+ * @param focusSelector: 'input',
18
+ */
19
+ var DATE_PRESET = {
20
+ type: 'inputMask',
21
+ maskPattern: 'DD.DD.DDDD',
22
+ maskPatternPlaceholder: 'MM.DD.YYYY',
23
+ usePatternPlaceholder: true,
24
+ isNumericMobileKeyboard: true,
25
+ blinkErrors: true,
26
+ showErrors: false,
27
+ autocomplete: 'bday',
28
+ focusSelector: 'input'
29
+ };
30
+ /**
31
+ * @param type: 'inputMask',
32
+ * @param maskPattern: 'DDDDD',
33
+ * @param maskPlaceholder: 'X',
34
+ * @param isNumericMobileKeyboard: true,
35
+ * @param blinkErrors: true,
36
+ * @param showErrors: false,
37
+ * @param focusSelector: 'input',
38
+ * @param autocomplete: 'postal-code',
39
+ * @param rules: 'fieldZip'
40
+ */
41
+
42
+ var ZIP_PRESET = {
43
+ type: 'inputMask',
44
+ focusSelector: 'input',
45
+ maskPattern: 'DDDDD',
46
+ maskPlaceholder: 'X',
47
+ isNumericMobileKeyboard: true,
48
+ blinkErrors: true,
49
+ showErrors: false,
50
+ autocomplete: 'postal-code',
51
+ rules: 'fieldZip'
52
+ };
53
+ /**
54
+ * @param type: 'inputMask',
55
+ * @param maskPattern: 'DDDDDDDDD',
56
+ * @param maskPlaceholder: 'X',
57
+ * @param isNumericMobileKeyboard: true,
58
+ * @param blinkErrors: true,
59
+ * @param showErrors: false,
60
+ * @param focusSelector: 'input',
61
+ */
62
+
63
+ var SSN_PRESET = {
64
+ type: 'inputMask',
65
+ maskPattern: 'DDDDDDDDD',
66
+ maskPlaceholder: 'X',
67
+ focusSelector: 'input',
68
+ isNumericMobileKeyboard: true,
69
+ blinkErrors: true,
70
+ showErrors: false
71
+ };
72
+ /**
73
+ * @param type: 'inputMask',
74
+ * @param maskPattern: 'DDD-DDD-DDDD',
75
+ * @param maskPlaceholder: 'X',
76
+ * @param isNumericMobileKeyboard: true,
77
+ * @param blinkErrors: true,
78
+ * @param showErrors: false,
79
+ * @param focusSelector: 'input',
80
+ * @param autocomplete: 'tel-national',
81
+ */
82
+
83
+ var MOBILE_PHONE_PRESET = {
84
+ type: 'inputMask',
85
+ maskPattern: 'DDD-DDD-DDDD',
86
+ maskPlaceholder: 'X',
87
+ focusSelector: 'input',
88
+ isNumericMobileKeyboard: true,
89
+ blinkErrors: true,
90
+ showErrors: false,
91
+ autocomplete: 'tel-national'
92
+ };
93
+ /**
94
+ * @param type: 'inputMask3',
95
+ * @param maskPattern: 'DDDD',
96
+ * @param maskPlaceholder: 'X',
97
+ * @param isNumericMobileKeyboard: true,
98
+ * @param blinkErrors: true,
99
+ * @param showErrors: false,
100
+ */
101
+
102
+ var SHORT_SSN_PRESET = {
103
+ type: 'inputMask3',
104
+ maskPattern: 'DDDD',
105
+ maskPlaceholder: 'X',
106
+ focusSelector: 'input',
107
+ isNumericMobileKeyboard: true,
108
+ blinkErrors: true,
109
+ showErrors: false
110
+ };
111
+ /**
112
+ * @param type: 'inputMask',
113
+ * @param maskPattern: 'DDDDDDDDD',
114
+ * @param maskPlaceholder: 'X',
115
+ * @param isNumericMobileKeyboard: true,
116
+ * @param blinkErrors: true,
117
+ * @param showErrors: false,
118
+ */
119
+
120
+ var ABA_PRESET = {
121
+ type: 'inputMask',
122
+ maskPattern: 'DDDDDDDDD',
123
+ maskPlaceholder: 'X',
124
+ isNumericMobileKeyboard: true,
125
+ blinkErrors: true,
126
+ showErrors: false
127
+ };
128
+ /**
129
+ * @param type: 'inputMask',
130
+ * @param maskPattern: 'MM/YY',
131
+ * @param maskPatternPlaceholder: 'MM/YY',
132
+ * @param usePatternPlaceholder: true,
133
+ * @param isNumericMobileKeyboard: true,
134
+ * @param blinkErrors: true,
135
+ * @param showErrors: false,
136
+ * @param focusSelector: 'input',
137
+ */
138
+
139
+ var CC_EXPIRATION_DATE = {
140
+ type: 'inputMask',
141
+ maskPattern: 'MM/YY',
142
+ maskPatternPlaceholder: 'MM/YY',
143
+ usePatternPlaceholder: true,
144
+ isNumericMobileKeyboard: true,
145
+ blinkErrors: true,
146
+ showErrors: false,
147
+ focusSelector: 'input'
148
+ };
149
+ /**
150
+ * @param type: 'inputMask',
151
+ * @param maskPattern: 'DDDDDDDDDD',
152
+ * @param maskPlaceholder: 'X',
153
+ * @param isNumericMobileKeyboard: true,
154
+ * @param blinkErrors: true,
155
+ * @param showErrors: false,
156
+ */
157
+
158
+ var BANK_ACCOUNT = {
159
+ type: 'inputMask',
160
+ maskPattern: 'DDDDDDDDDD',
161
+ maskPlaceholder: 'X',
162
+ isNumericMobileKeyboard: true,
163
+ blinkErrors: true,
164
+ showErrors: false
165
+ };
166
+ var MASK_PRESETS = {
167
+ BANK_ACCOUNT: BANK_ACCOUNT,
168
+ CC_EXPIRATION_DATE: CC_EXPIRATION_DATE,
169
+ DATE_PRESET: DATE_PRESET,
170
+ ZIP_PRESET: ZIP_PRESET,
171
+ SSN_PRESET: SSN_PRESET,
172
+ MOBILE_PHONE_PRESET: MOBILE_PHONE_PRESET,
173
+ SHORT_SSN_PRESET: SHORT_SSN_PRESET,
174
+ ABA_PRESET: ABA_PRESET
175
+ };
176
+ exports.MASK_PRESETS = MASK_PRESETS;
@@ -3,43 +3,55 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.INPUT_PRESET = void 0;
6
+ exports.INPUT_PRESETS = void 0;
7
+
8
+ var _fieldValueFormatters = require("../fieldValueFormatters");
7
9
 
8
- /**
9
- * @name fieldChangesMiddleware
10
- * @description Обрабатывает входящую строку, удаляет все символы, которые не являются
11
- * алфавитными, дефисами, апострофами или пробелами.
12
- * Удаляет недопустимые символы в начале и конце строки.
13
- *
14
- * @param {string} value - Входная строка для обработки.
15
- * @returns {string} - Обработанная строка.
16
- */
17
10
  var NAME_SYMBOLS_EXCLUDER = {
11
+ /**
12
+ * @name fieldChangesMiddleware
13
+ * @description Обрабатывает входящую строку, удаляет все символы, которые не являются
14
+ * алфавитными, дефисами, апострофами или пробелами. Не дает ввести дубли символов дефиса или апострофа.
15
+ * Режет спецсимволы, если после них не идет буква.
16
+ *
17
+ * @param {string} value - Входная строка для обработки.
18
+ * @returns {string} - Обработанная строка.
19
+ */
18
20
  fieldChangesMiddleware: function fieldChangesMiddleware(value) {
19
- var invalidCharacters = new RegExp(/[^a-zA-Z-'`\s]/g);
20
- var invalidFirstAndLastCharacters = new RegExp(/^[`\-'\s]+|[`\-'\s]+$/g);
21
- var safeValue = getSafelyValue(value);
22
- return safeValue.replace(invalidCharacters, '').replace(invalidFirstAndLastCharacters, '');
21
+ // remove invalid characters
22
+ var invalidCharacters = new RegExp(/[^a-zA-Z-\s']/g); // handle any two '-' or ''' should not be side by side
23
+
24
+ var sideBySideHyphenOrApostrophe = new RegExp(/['-]{2,}/g); // replace sequence of spaces with single space
25
+
26
+ var multipleSpaces = new RegExp(/\s{2,}/g); // remove '-' or ''' if they are followed by a space
27
+
28
+ var beforeSpace = new RegExp(/['-](?=\s)/g);
29
+ var sanitizedValue = (0, _fieldValueFormatters.getSafelyValue)(value).replace(invalidCharacters, '').replace(sideBySideHyphenOrApostrophe, '').replace(multipleSpaces, ' ').replace(beforeSpace, '');
30
+ return sanitizedValue;
31
+ },
32
+ blurTrim: {
33
+ trimStart: true,
34
+ trimEnd: true,
35
+ characters: ['-', "'", ' ']
23
36
  }
24
37
  };
25
- /**
26
- * @name fieldChangesMiddleware
27
- * @description Обрабатывает входную строку, удаляет все неалфавитные символы, заменяет двойные дефисы на одинарные
28
- * и удаляет все дефисы в начале или конце строки.
29
- * @param {string} value - входная строка для обработки
30
- * @returns {string} обработанная строка
31
- */
32
-
33
38
  var ONLY_STRING_AND_DASH = {
39
+ /**
40
+ * @name fieldChangesMiddleware
41
+ * @description Обрабатывает входную строку, удаляет все неалфавитные символы, заменяет двойные дефисы на одинарные
42
+ * и удаляет все дефисы в начале или конце строки.
43
+ * @param {string} value - входная строка для обработки
44
+ * @returns {string} обработанная строка
45
+ */
34
46
  fieldChangesMiddleware: function fieldChangesMiddleware(value) {
35
47
  var nonAlphabeticAndNotSingleDash = new RegExp(/[^a-zA-Z-]|--/gi);
36
48
  var consecutiveDashes = new RegExp(/-+/g);
37
- var sanitizedInput = getSafelyValue(value);
49
+ var sanitizedInput = (0, _fieldValueFormatters.getSafelyValue)(value);
38
50
  return sanitizedInput.replace(nonAlphabeticAndNotSingleDash, '').replace(consecutiveDashes, '-');
39
51
  }
40
52
  };
41
- var INPUT_PRESET = {
53
+ var INPUT_PRESETS = {
42
54
  NAME_SYMBOLS_EXCLUDER: NAME_SYMBOLS_EXCLUDER,
43
55
  ONLY_STRING_AND_DASH: ONLY_STRING_AND_DASH
44
56
  };
45
- exports.INPUT_PRESET = INPUT_PRESET;
57
+ exports.INPUT_PRESETS = INPUT_PRESETS;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.1.82",
3
+ "version": "1.1.84",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [