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
|
|
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
|
|
161
|
-
min =
|
|
162
|
-
max =
|
|
163
|
-
isOnlyPositive =
|
|
164
|
-
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
|
|
247
|
-
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 (
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
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
|
|
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.
|
|
57
|
+
exports.INPUT_PRESETS = INPUT_PRESETS;
|