intelicoreact 1.1.83 → 1.1.85

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.
@@ -23,8 +23,6 @@ var _useDebounce = require("../../../Functions/useDebounce");
23
23
 
24
24
  var _fieldValueFormatters = require("../../../Functions/fieldValueFormatters");
25
25
 
26
- var _utils = require("../../../Functions/utils");
27
-
28
26
  var _Spinner = _interopRequireDefault(require("../../Layout/Spinner/Spinner"));
29
27
 
30
28
  require("./DropdownLiveSearch.scss");
@@ -79,11 +77,6 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
79
77
  searchValue = _useState6[0],
80
78
  setSV = _useState6[1];
81
79
 
82
- var _useState7 = (0, _react.useState)(options),
83
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
84
- previousOptions = _useState8[0],
85
- setPreviousOptions = _useState8[1];
86
-
87
80
  var dropdownLiveSearchRef = (0, _react.useRef)(null);
88
81
  var dropdownListBoxRef = (0, _react.useRef)(null);
89
82
  var dropdownListRef = (0, _react.useRef)(null);
@@ -95,10 +88,10 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
95
88
  searchValueRef.current = val;
96
89
  };
97
90
 
98
- var _useState9 = (0, _react.useState)(false),
99
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
100
- isFocusedByClick = _useState10[0],
101
- setIsFocusedByClick = _useState10[1];
91
+ var _useState7 = (0, _react.useState)(false),
92
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
93
+ isFocusedByClick = _useState8[0],
94
+ setIsFocusedByClick = _useState8[1];
102
95
 
103
96
  var debouncedSearchTerm = (0, _useDebounce.useDebounce)({
104
97
  searchValue: searchValue,
@@ -250,7 +243,7 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
250
243
  }, [dropdownLiveSearchRef, isOpen]);
251
244
  var doScrollCallback = (0, _react.useCallback)(function (e) {
252
245
  if (doRequest && typeof doRequest === 'function') {
253
- if (Math.round(e.target.clientHeight + e.target.scrollTop) == e.target.scrollHeight && (0, _utils.compare)(options, previousOptions)) {
246
+ if (Math.round(e.target.clientHeight + e.target.scrollTop) == e.target.scrollHeight) {
254
247
  doRequest(searchValueRef.current, true);
255
248
  }
256
249
  }
@@ -266,9 +259,6 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
266
259
  removeEventListener('scroll', doScrollCallback);
267
260
  };
268
261
  }, [isOpen, dropdownListRef]);
269
- (0, _react.useEffect)(function () {
270
- setPreviousOptions(options);
271
- }, [options]);
272
262
  return /*#__PURE__*/_react.default.createElement("div", {
273
263
  className: (0, _classnames.default)(RC, className, disabled),
274
264
  ref: dropdownLiveSearchRef
@@ -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, '');
@@ -7,32 +7,42 @@ exports.INPUT_PRESETS = void 0;
7
7
 
8
8
  var _fieldValueFormatters = require("../fieldValueFormatters");
9
9
 
10
- /**
11
- * @name fieldChangesMiddleware
12
- * @description Обрабатывает входящую строку, удаляет все символы, которые не являются
13
- * алфавитными, дефисами, апострофами или пробелами.
14
- * Удаляет недопустимые символы в начале и конце строки.
15
- *
16
- * @param {string} value - Входная строка для обработки.
17
- * @returns {string} - Обработанная строка.
18
- */
19
10
  var NAME_SYMBOLS_EXCLUDER = {
11
+ /**
12
+ * @name fieldChangesMiddleware
13
+ * @description Обрабатывает входящую строку, удаляет все символы, которые не являются
14
+ * алфавитными, дефисами, апострофами или пробелами. Не дает ввести дубли символов дефиса или апострофа.
15
+ * Режет спецсимволы, если после них не идет буква.
16
+ *
17
+ * @param {string} value - Входная строка для обработки.
18
+ * @returns {string} - Обработанная строка.
19
+ */
20
20
  fieldChangesMiddleware: function fieldChangesMiddleware(value) {
21
- var invalidCharacters = new RegExp(/[^a-zA-Z-'`\s]/g);
22
- var invalidFirstAndLastCharacters = new RegExp(/^[`\-'\s]+|[`\-'\s]+$/g);
23
- var safeValue = (0, _fieldValueFormatters.getSafelyValue)(value);
24
- 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: ['-', "'", ' ']
25
36
  }
26
37
  };
27
- /**
28
- * @name fieldChangesMiddleware
29
- * @description Обрабатывает входную строку, удаляет все неалфавитные символы, заменяет двойные дефисы на одинарные
30
- * и удаляет все дефисы в начале или конце строки.
31
- * @param {string} value - входная строка для обработки
32
- * @returns {string} обработанная строка
33
- */
34
-
35
38
  var ONLY_STRING_AND_DASH = {
39
+ /**
40
+ * @name fieldChangesMiddleware
41
+ * @description Обрабатывает входную строку, удаляет все неалфавитные символы, заменяет двойные дефисы на одинарные
42
+ * и удаляет все дефисы в начале или конце строки.
43
+ * @param {string} value - входная строка для обработки
44
+ * @returns {string} обработанная строка
45
+ */
36
46
  fieldChangesMiddleware: function fieldChangesMiddleware(value) {
37
47
  var nonAlphabeticAndNotSingleDash = new RegExp(/[^a-zA-Z-]|--/gi);
38
48
  var consecutiveDashes = new RegExp(/-+/g);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.1.83",
3
+ "version": "1.1.85",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [