intelicoreact 1.2.52 → 1.2.54

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.
@@ -50,6 +50,7 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
50
50
  options = _ref$options === void 0 ? [] : _ref$options,
51
51
  fieldKey = _ref.fieldKey,
52
52
  id = _ref.id,
53
+ isListTop = _ref.isListTop,
53
54
  _ref$isNotValidateASC = _ref.isNotValidateASCII,
54
55
  isNotValidateASCII = _ref$isNotValidateASC === void 0 ? false : _ref$isNotValidateASC,
55
56
  _ref$noOptionsText = _ref.noOptionsText,
@@ -159,7 +160,7 @@ var DropdownLiveSearch = function DropdownLiveSearch(_ref) {
159
160
  var getListMarkUp = function getListMarkUp() {
160
161
  return /*#__PURE__*/_react.default.createElement("div", {
161
162
  id: "dropdown-live-search-list",
162
- className: (0, _classnames.default)("".concat(RC, "__container")),
163
+ className: (0, _classnames.default)("".concat(RC, "__container"), (0, _defineProperty2.default)({}, "".concat(RC, "__list-top"), isListTop)),
163
164
  ref: dropdownListBoxRef
164
165
  }, /*#__PURE__*/_react.default.createElement("div", {
165
166
  className: (0, _classnames.default)("".concat(RC, "__list"), {
@@ -77,9 +77,8 @@
77
77
  }
78
78
 
79
79
  &-top {
80
- top: auto;
80
+ top: auto !important;
81
81
  bottom: calc(100% + 4px);
82
- box-shadow: 0 -3px 10px rgb(0 0 0 / 15%);
83
82
  }
84
83
 
85
84
  &-item {
@@ -37,6 +37,11 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
37
37
 
38
38
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
39
 
40
+ var checkFormat = function checkFormat(date, format) {
41
+ var momentObj = (0, _momentTimezone.default)(date, format);
42
+ return momentObj.isValid() ? momentObj.format(format) : null;
43
+ };
44
+
40
45
  var InputDateRange = function InputDateRange(props) {
41
46
  var _ref, _INTERVALS$actualValu;
42
47
 
@@ -61,15 +66,15 @@ var InputDateRange = function InputDateRange(props) {
61
66
  minDate = _props$minDate === void 0 ? null : _props$minDate,
62
67
  _props$maxDate = props.maxDate,
63
68
  maxDate = _props$maxDate === void 0 ? null : _props$maxDate,
64
- _props$format = props.format,
65
- format = _props$format === void 0 ? 'MM/DD/YYYY' : _props$format,
69
+ _props$minMaxDatePars = props.minMaxDateParseFormat,
70
+ minMaxDateParseFormat = _props$minMaxDatePars === void 0 ? 'MM/DD/YYYY' : _props$minMaxDatePars,
66
71
  isDontLimitFuture = props.isDontLimitFuture,
67
72
  isListTop = props.isListTop,
68
73
  isAltArrows = props.isAltArrows;
69
- var formatedMinDate = (0, _momentTimezone.default)(minDate).format(format) !== 'Invalid date' ? (0, _momentTimezone.default)(minDate).format(format) : null;
70
- var formatedMaxDate = (0, _momentTimezone.default)(maxDate).format(format) !== 'Invalid date' ? (0, _momentTimezone.default)(maxDate).format(format) : null;
71
- var momentMinDate = (0, _momentTimezone.default)(formatedMinDate, format).startOf('day');
72
- var momentMaxDate = (0, _momentTimezone.default)(formatedMaxDate, format).startOf('day');
74
+ var formatedMinDate = checkFormat(minDate, minMaxDateParseFormat);
75
+ var formatedMaxDate = checkFormat(maxDate, minMaxDateParseFormat);
76
+ var momentMinDate = (0, _momentTimezone.default)(formatedMinDate, minMaxDateParseFormat).startOf('day');
77
+ var momentMaxDate = (0, _momentTimezone.default)(formatedMaxDate, minMaxDateParseFormat).startOf('day');
73
78
  var actualValues = (0, _dependencies.getActualDateRange)(value);
74
79
 
75
80
  var _useToggle = (0, _dependencies.useToggle)(false),
@@ -97,14 +102,14 @@ var InputDateRange = function InputDateRange(props) {
97
102
 
98
103
  var formatedValue = _objectSpread(_objectSpread(_objectSpread({
99
104
  intervalKey: newValue.intervalKey,
100
- start: newValue.start ? (0, _momentTimezone.default)(newValue.start).format('YYYY-MM-DDTHH:mm') : newValue.start,
101
- end: newValue.end ? (0, _momentTimezone.default)(newValue.end).format('YYYY-MM-DDTHH:mm') : newValue.end
105
+ start: newValue.start ? (0, _momentTimezone.default)(newValue.start).format(_dependencies.MAIN_FORMAT) : newValue.start,
106
+ end: newValue.end ? (0, _momentTimezone.default)(newValue.end).format(_dependencies.MAIN_FORMAT) : newValue.end
102
107
  }, newValue.compare ? {
103
108
  compare: newValue.compare
104
109
  } : {}), newValue.startPrevDate ? {
105
- startPrevDate: (0, _momentTimezone.default)(newValue.startPrevDate).format('YYYY-MM-DDTHH:mm')
110
+ startPrevDate: (0, _momentTimezone.default)(newValue.startPrevDate).format(_dependencies.MAIN_FORMAT)
106
111
  } : {}), newValue.endPrevDate ? {
107
- endPrevDate: (0, _momentTimezone.default)(newValue.endPrevDate).format('YYYY-MM-DDTHH:mm')
112
+ endPrevDate: (0, _momentTimezone.default)(newValue.endPrevDate).format(_dependencies.MAIN_FORMAT)
108
113
  } : {});
109
114
 
110
115
  onChange(formatedValue);
@@ -122,8 +127,8 @@ var InputDateRange = function InputDateRange(props) {
122
127
  var start = actualValues.start,
123
128
  end = actualValues.end;
124
129
  if (!start || !end) return null;
125
- var startTime = (0, _momentTimezone.default)(start).format('HH:mm');
126
- var endTime = (0, _momentTimezone.default)(end).format('HH:mm');
130
+ var startTime = (0, _momentTimezone.default)(start).format(_dependencies.MAIN_TIME_FORMAT);
131
+ var endTime = (0, _momentTimezone.default)(end).format(_dependencies.MAIN_TIME_FORMAT);
127
132
  var firstPart = "".concat((0, _momentTimezone.default)(start).format('ll'), " ").concat(startTime !== '00:00' ? "(".concat(startTime, ")") : '');
128
133
  var secondPart = "".concat((endTime !== '00:00' ? (0, _momentTimezone.default)(end) : (0, _momentTimezone.default)(end).subtract(1, 'days')).format('ll'), " ").concat(endTime !== '00:00' ? "(".concat(endTime, ")") : '');
129
134
 
@@ -248,7 +253,6 @@ var InputDateRange = function InputDateRange(props) {
248
253
  onChange: handleChange,
249
254
  minDate: formatedMinDate,
250
255
  maxDate: formatedMaxDate,
251
- format: format,
252
256
  momentMinDate: momentMinDate,
253
257
  momentMaxDate: momentMaxDate,
254
258
  isDontLimitFuture: isDontLimitFuture,
@@ -38,6 +38,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
38
38
  var outsideScope = {
39
39
  handleHoverTimerId: null
40
40
  };
41
+ var DATE_INPUT_FORMAT = 'MM/DD/YYYY';
41
42
 
42
43
  var padTime = function padTime(time) {
43
44
  return "".concat(time.toString().padStart(2, '0'), ":00");
@@ -87,8 +88,8 @@ var Datepicker = function Datepicker(props) {
87
88
  setEndDate = _useState4[1];
88
89
 
89
90
  var dateInterval = getSelectedMode({
90
- start: startDate.format('YYYY-MM-DDTHH:mm'),
91
- end: endDate.format('YYYY-MM-DDTHH:mm')
91
+ start: startDate.format(_dependencies.MAIN_FORMAT),
92
+ end: endDate.format(_dependencies.MAIN_FORMAT)
92
93
  });
93
94
 
94
95
  var _useState5 = (0, _react.useState)(null),
@@ -165,7 +166,7 @@ var Datepicker = function Datepicker(props) {
165
166
  }, [startDate, endDate, isCompare]);
166
167
  var title = (0, _react.useMemo)(function () {
167
168
  if (isCompare && !isCompareHidden && startDate && endDate) {
168
- return "".concat((0, _momentTimezone.default)(startPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(startPrevDate).format('HH:mm'), ") - ").concat((0, _momentTimezone.default)(endPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(endPrevDate).format('HH:mm'), ")");
169
+ return "".concat((0, _momentTimezone.default)(startPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(startPrevDate).format(_dependencies.MAIN_TIME_FORMAT), ") - ").concat((0, _momentTimezone.default)(endPrevDate).format('ll'), " (").concat((0, _momentTimezone.default)(endPrevDate).format(_dependencies.MAIN_TIME_FORMAT), ")");
169
170
  } else return '';
170
171
  }, [startDate, endDate, isCompare]); // ********************
171
172
  // Methods
@@ -317,7 +318,7 @@ var Datepicker = function Datepicker(props) {
317
318
  };
318
319
 
319
320
  var processOverflow = function processOverflow(newDateAsString, valueForRollback, key) {
320
- var newDateAsMomentObj = (0, _momentTimezone.default)(newDateAsString, 'MM/DD/YYYY'); // console.log('processOverflow - newDateAsString - ', newDateAsString);
321
+ var newDateAsMomentObj = (0, _momentTimezone.default)(newDateAsString, DATE_INPUT_FORMAT); // console.log('processOverflow - newDateAsString - ', newDateAsString);
321
322
  // console.log('processOverflow - valueForRollback - ', valueForRollback);
322
323
  // console.log('----------');
323
324
  // console.log('processOverflow - minDate - ', minDate);
@@ -423,10 +424,10 @@ var Datepicker = function Datepicker(props) {
423
424
  disabled: !startDate || !endDate,
424
425
  onClick: function onClick() {
425
426
  return onChange({
426
- start: startDate,
427
- end: endDate,
428
- startPrevDate: startPrevDate,
429
- endPrevDate: endPrevDate,
427
+ start: (0, _momentTimezone.default)(startDate).format(_dependencies.MAIN_FORMAT),
428
+ end: (0, _momentTimezone.default)(endDate).format(_dependencies.MAIN_FORMAT),
429
+ startPrevDate: (0, _momentTimezone.default)(startPrevDate).format(_dependencies.MAIN_FORMAT),
430
+ endPrevDate: (0, _momentTimezone.default)(endPrevDate).format(_dependencies.MAIN_FORMAT),
430
431
  compare: isCompare
431
432
  });
432
433
  }
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.getActualDateRange = exports.CUSTOM_INTERVAL_KEY_TEXT = exports.CUSTOM_INTERVAL_KEY = exports.ALL_TIME_KEY = exports.INTERVALS = exports.useToggle = exports.useClickOutside = exports.getIsDateValid = void 0;
10
+ exports.getActualDateRange = exports.MAIN_TIME_FORMAT = exports.MAIN_DATE_FORMAT = exports.MAIN_FORMAT = exports.CUSTOM_INTERVAL_KEY_TEXT = exports.CUSTOM_INTERVAL_KEY = exports.ALL_TIME_KEY = exports.INTERVALS = exports.useToggle = exports.useClickOutside = exports.getIsDateValid = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -237,6 +237,12 @@ var CUSTOM_INTERVAL_KEY = 'customDate';
237
237
  exports.CUSTOM_INTERVAL_KEY = CUSTOM_INTERVAL_KEY;
238
238
  var CUSTOM_INTERVAL_KEY_TEXT = 'Custom Date';
239
239
  exports.CUSTOM_INTERVAL_KEY_TEXT = CUSTOM_INTERVAL_KEY_TEXT;
240
+ var MAIN_FORMAT = 'YYYY-MM-DDTHH:mm';
241
+ exports.MAIN_FORMAT = MAIN_FORMAT;
242
+ var MAIN_DATE_FORMAT = 'YYYY-MM-DD';
243
+ exports.MAIN_DATE_FORMAT = MAIN_DATE_FORMAT;
244
+ var MAIN_TIME_FORMAT = 'HH:mm';
245
+ exports.MAIN_TIME_FORMAT = MAIN_TIME_FORMAT;
240
246
 
241
247
  var getActualDateRange = function getActualDateRange(inputDateRange) {
242
248
  var getActualIntervalKey = function getActualIntervalKey() {
@@ -270,8 +276,8 @@ var getActualDateRange = function getActualDateRange(inputDateRange) {
270
276
  endPrevDate: null
271
277
  };
272
278
  var actualValues = {
273
- start: (_INTERVALS$intervalKe = INTERVALS[intervalKey]) === null || _INTERVALS$intervalKe === void 0 ? void 0 : (_INTERVALS$intervalKe2 = _INTERVALS$intervalKe.start()) === null || _INTERVALS$intervalKe2 === void 0 ? void 0 : _INTERVALS$intervalKe2.format('YYYY-MM-DDTHH:mm'),
274
- end: (_INTERVALS$intervalKe3 = INTERVALS[intervalKey]) === null || _INTERVALS$intervalKe3 === void 0 ? void 0 : (_INTERVALS$intervalKe4 = _INTERVALS$intervalKe3.end()) === null || _INTERVALS$intervalKe4 === void 0 ? void 0 : _INTERVALS$intervalKe4.format('YYYY-MM-DDTHH:mm'),
279
+ start: (_INTERVALS$intervalKe = INTERVALS[intervalKey]) === null || _INTERVALS$intervalKe === void 0 ? void 0 : (_INTERVALS$intervalKe2 = _INTERVALS$intervalKe.start()) === null || _INTERVALS$intervalKe2 === void 0 ? void 0 : _INTERVALS$intervalKe2.format(MAIN_FORMAT),
280
+ end: (_INTERVALS$intervalKe3 = INTERVALS[intervalKey]) === null || _INTERVALS$intervalKe3 === void 0 ? void 0 : (_INTERVALS$intervalKe4 = _INTERVALS$intervalKe3.end()) === null || _INTERVALS$intervalKe4 === void 0 ? void 0 : _INTERVALS$intervalKe4.format(MAIN_FORMAT),
275
281
  compare: inputDateRange.compare
276
282
  };
277
283
 
@@ -26,6 +26,7 @@ var Label = function Label(_ref) {
26
26
  _ref$error = _ref.error,
27
27
  error = _ref$error === void 0 ? null : _ref$error;
28
28
  return /*#__PURE__*/_react.default.createElement("span", {
29
+ tabIndex: 0,
29
30
  className: (0, _classnames.default)('label', {
30
31
  label_bold: isLabelBolt,
31
32
  error: error
@@ -130,7 +130,9 @@ var Hint = function Hint(_ref) {
130
130
  className: (0, _classnames.default)('hint', className),
131
131
  ref: hintRef
132
132
  }, /*#__PURE__*/_react.default.createElement("button", {
133
+ "tab-index": 0,
133
134
  "data-testid": 'test-hint',
135
+ "aria-label": label[0].toUpperCase() + label.slice(1),
134
136
  onClick: function onClick() {
135
137
  return handleOpenType === 'click' && (isCallbackExist ? onClickCallback() : setIsOpen(!isOpen));
136
138
  },
@@ -43,11 +43,12 @@ var renderModalTitle = function renderModalTitle(_ref) {
43
43
  onlyTitle = _ref.onlyTitle;
44
44
  if (mode && mode !== 'default' && !onlyTitle) return "".concat(mode[0].toUpperCase() + mode.slice(1), " ").concat(title);
45
45
  return title;
46
- };
46
+ }; // eslint-disable-next-line react/display-name
47
+
47
48
 
48
49
  exports.renderModalTitle = renderModalTitle;
49
50
 
50
- var Modal = function Modal(_ref2) {
51
+ var Modal = /*#__PURE__*/_react.default.forwardRef(function (_ref2, ref) {
51
52
  var _ref2$zIndex = _ref2.zIndex,
52
53
  zIndex = _ref2$zIndex === void 0 ? 100 : _ref2$zIndex,
53
54
  isOpen = _ref2.isOpen,
@@ -92,7 +93,7 @@ var Modal = function Modal(_ref2) {
92
93
  noHeaderCloseBtn = _ref2.noHeaderCloseBtn,
93
94
  _ref2$noMobileModalLo = _ref2.noMobileModalLogic,
94
95
  noMobileModalLogic = _ref2$noMobileModalLo === void 0 ? true : _ref2$noMobileModalLo;
95
- var modalRef = (0, _react.useRef)(null);
96
+ var modalRef = ref || (0, _react.useRef)(null);
96
97
 
97
98
  var _useMobileModal = (0, _useMobileModal2.default)({
98
99
  modalRef: modalRef,
@@ -148,9 +149,9 @@ var Modal = function Modal(_ref2) {
148
149
  width: size
149
150
  },
150
151
  className: (0, _classnames.default)(className, {
151
- 'modal': isOpen,
152
+ modal: isOpen,
152
153
  'modal-mobile': isOpen && isMobile,
153
- 'hidden': !isOpen
154
+ hidden: !isOpen
154
155
  })
155
156
  }, !noHeader && /*#__PURE__*/_react.default.createElement(_ModalTitle.default, {
156
157
  wrapperRef: modalMobileHeaderRef,
@@ -207,7 +208,7 @@ var Modal = function Modal(_ref2) {
207
208
  };
208
209
 
209
210
  return render();
210
- };
211
+ });
211
212
 
212
213
  var _default = Modal;
213
214
  exports.default = _default;
@@ -4,12 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.formatToReplaceAllWhiteSpace = formatToReplaceAllWhiteSpace;
7
- exports.formatToHideValuePartially = exports.filterNumeric = exports.filterFloat = exports.formatToHex = exports.formatToLimitLength = exports.formatNumberValueToMask = exports.formatToCutOffDotAtTheEnd = exports.formatToOnlyASCIICodeText = exports.formatToPriceWithCurrency = exports.formatToPriceWithUSD = exports.formatToTwoDigitAfterDot = exports.formatToDollarSign = exports.formatToAddBitDepthPoints = exports.formatToRemoveComa = exports.formatOnlyNumbers = exports.intlNumbersFormatter = exports.getSafelyValue = void 0;
7
+ exports.formatToHideValuePartially = exports.filterNumeric = exports.filterFloat = exports.formatToHex = exports.formatToLimitLength = exports.formatNumberValueToMask = exports.formatToOnlyASCIICodeText = exports.formatAsPercentage = exports.formatToPriceWithCurrency = exports.formatToPriceWithUSD = exports.formatToAddBitDepthPoints = exports.formatToRemoveComa = exports.formatOnlyNumbers = exports.intlNumbersFormatter = exports.getSafelyValue = void 0;
8
8
 
9
- // The first word "format" in the function name means a
10
- //logic in which the function transforms the incoming value in any case.
11
- // The first word "filter" in the function name means a
12
- // logic in which the function works as a changer for sequential input
9
+ var _utils = require("./utils");
10
+
11
+ //? The first word "format" in the function name means a logic
12
+ //? in which the function transforms the incoming value in any case.
13
+ //? The first word "transform" in the function name means a logic
14
+ //? in which the function converts the whole value, but this is not suitable for sequential input
15
+ //? The first word "filter" in the function name means a logic
16
+ //? in which the function works as a changer for sequential input
17
+ // ****************************
18
+ // Base utils
19
+ // ****************************
13
20
 
14
21
  /**
15
22
  * If the value is not undefined or null, return the value's toString() method, otherwise return an
@@ -26,9 +33,10 @@ exports.getSafelyValue = getSafelyValue;
26
33
 
27
34
  var intlNumbersFormatter = function intlNumbersFormatter(inputValue) {
28
35
  var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
29
- var previousValue = '' + inputValue.slice(0, -1);
30
- var lastSym = '' + inputValue.slice(-1);
31
- var value = lastSym === '.' ? previousValue : inputValue;
36
+ var safelyInputValue = getSafelyValue(inputValue);
37
+ var previousValue = safelyInputValue.slice(0, -1);
38
+ var lastSym = safelyInputValue.slice(-1);
39
+ var value = lastSym === '.' ? previousValue : safelyInputValue;
32
40
  if (Number.isNaN(+value) || !getSafelyValue(value)) return '';
33
41
  var _settings$locale = settings.locale,
34
42
  locale = _settings$locale === void 0 ? 'en-US' : _settings$locale,
@@ -83,17 +91,20 @@ var intlNumbersFormatter = function intlNumbersFormatter(inputValue) {
83
91
  inputMinimumFractionDigits = fractionDigits.minimumFractionDigits,
84
92
  inputMaximumFractionDigits = fractionDigits.maximumFractionDigits,
85
93
  conditionallyMinimumFractionDigits = fractionDigits.conditionallyMinimumFractionDigits;
86
- var dotIndex = inputValue === null || inputValue === void 0 ? void 0 : inputValue.indexOf('.');
87
- var afterDot = dotIndex !== -1 ? inputValue.slice(dotIndex + 1) : '';
94
+ var dotIndex = safelyInputValue === null || safelyInputValue === void 0 ? void 0 : safelyInputValue.indexOf('.');
95
+ var afterDot = dotIndex !== -1 ? safelyInputValue.slice(dotIndex + 1) : '';
88
96
 
89
97
  var minimumFractionDigits = function () {
90
- if (typeof inputMinimumFractionDigits === 'number') return inputMinimumFractionDigits;
98
+ //? Безусловное минимальное количество. Всегда отрендерит дробную часть, в количестве символов сколько указано
99
+ if (typeof inputMinimumFractionDigits === 'number') return inputMinimumFractionDigits; //? Условное минимальное количество. Если есть дробная часть, то отрендерит дробных символов сколько указано
91
100
 
92
101
  if (typeof conditionallyMinimumFractionDigits === 'number') {
93
102
  return afterDot && lastSym !== '.' ? conditionallyMinimumFractionDigits : 0;
94
- }
103
+ } //? Дефолтное минимальное количество. Если есть дробная часть, то отрендерит дробных символов столько, сколько есть
104
+ //? Флаг isRenderAlways превращает дефолтный кейс в безусловное минимальное количество
105
+
95
106
 
96
- return afterDot && lastSym !== '.' ? inputValue.slice(dotIndex).length - 1 : isRenderAlways ? quantity : 0;
107
+ return afterDot && lastSym !== '.' ? safelyInputValue.slice(dotIndex).length - 1 : isRenderAlways ? quantity : 0;
97
108
  }();
98
109
 
99
110
  var priceSettings = {
@@ -107,6 +118,8 @@ var intlNumbersFormatter = function intlNumbersFormatter(inputValue) {
107
118
  //валюта в виде символа
108
119
  //минимально не надо отображать центы, если их нет, иначе всегда будет .00
109
120
  minimumFractionDigits: minimumFractionDigits,
121
+ //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
122
+ //! чем указано в (inputMaximumFractionDigits ?? quantity) - округлит по правилам округления
110
123
  //максимально отображать 2 цифры после запятой, если центы всё же есть
111
124
  maximumFractionDigits: inputMaximumFractionDigits !== null && inputMaximumFractionDigits !== void 0 ? inputMaximumFractionDigits : quantity
112
125
  };
@@ -120,7 +133,9 @@ var intlNumbersFormatter = function intlNumbersFormatter(inputValue) {
120
133
  }
121
134
 
122
135
  return lastSym === '.' ? output + lastSym : output;
123
- }; // *** format ***
136
+ }; // ****************************
137
+ // format
138
+ // ****************************
124
139
 
125
140
 
126
141
  exports.intlNumbersFormatter = intlNumbersFormatter;
@@ -143,32 +158,11 @@ var formatToAddBitDepthPoints = function formatToAddBitDepthPoints(value, settin
143
158
  quantity: (settings === null || settings === void 0 ? void 0 : settings.type) === 'int' ? 0 : settings === null || settings === void 0 ? void 0 : settings.decimalPlaces
144
159
  }
145
160
  });
146
- };
161
+ }; //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
162
+ //! чем указано в quantity - округлит по правилам округления
147
163
 
148
- exports.formatToAddBitDepthPoints = formatToAddBitDepthPoints;
149
164
 
150
- var formatToDollarSign = function formatToDollarSign(value) {
151
- return intlNumbersFormatter(getSafelyValue(value), {
152
- useGrouping: false,
153
- withSymbol: 'currency',
154
- currency: {
155
- currencyType: 'USD'
156
- }
157
- });
158
- };
159
-
160
- exports.formatToDollarSign = formatToDollarSign;
161
-
162
- var formatToTwoDigitAfterDot = function formatToTwoDigitAfterDot(value) {
163
- return intlNumbersFormatter(getSafelyValue(value), {
164
- useGrouping: false,
165
- fractionDigits: {
166
- quantity: 2
167
- }
168
- });
169
- };
170
-
171
- exports.formatToTwoDigitAfterDot = formatToTwoDigitAfterDot;
165
+ exports.formatToAddBitDepthPoints = formatToAddBitDepthPoints;
172
166
 
173
167
  var formatToPriceWithUSD = function formatToPriceWithUSD(value) {
174
168
  if (isNaN(Number(value))) return value;
@@ -180,9 +174,12 @@ var formatToPriceWithUSD = function formatToPriceWithUSD(value) {
180
174
  fractionDigits: {
181
175
  quantity: 2,
182
176
  conditionallyMinimumFractionDigits: 2
183
- }
177
+ },
178
+ text: text
184
179
  });
185
- }; //! symbolPosition временно не реализовано
180
+ }; //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
181
+ //! чем указано в quantity - округлит по правилам округления
182
+ // ToDo - symbolPosition временно не реализовано
186
183
 
187
184
 
188
185
  exports.formatToPriceWithUSD = formatToPriceWithUSD;
@@ -200,35 +197,91 @@ var formatToPriceWithCurrency = function formatToPriceWithCurrency(value, curren
200
197
  conditionallyMinimumFractionDigits: 2
201
198
  }
202
199
  });
203
- }; // eslint-disable-next-line no-control-regex
200
+ }; //? Добавляет в конец знак %. Работает как с одиночными значениями, так и с диапазонами.
201
+ //? value может быть любое, но ожидается что будет
202
+ //? - числом
203
+ //? - строкой в формате "значение"
204
+ //? - строкой в формате "значение - значение" (значение_пробел_тире_пробел_значение)
205
+ //? - объект в формате { from: значение, to: значение }
206
+ //? Предполагается, что "значение" может быть приведено к числу операторм + (пример: +значение приводится к числу).
207
+ //? Если не может быть приведено, то "значение" вернется как есть, к результату добавится %
208
+ //? Если "значение" пустое (getSafelyValue(значение) вернет пустую строку),
209
+ //? то это воспринимается как 0, приводится к 0.00%
210
+ //? Одиноково работает как для ".", так и "," в качестве разделителя дробных разрядов
211
+ //! Важно! Если придет велью с количеством дробных разрядов БОЛЬШИМ
212
+ //! чем указано в decimalPlaces - округлит по правилам округления
204
213
 
205
214
 
206
215
  exports.formatToPriceWithCurrency = formatToPriceWithCurrency;
207
216
 
208
- var formatToOnlyASCIICodeText = function formatToOnlyASCIICodeText(text) {
209
- return getSafelyValue(text).replace(/[^\x00-\x7F]+/g, '');
210
- };
217
+ var formatAsPercentage = function formatAsPercentage(value, settings) {
218
+ var _ref = (0, _utils.getIsOnlyAnObject)(settings) ? settings : {},
219
+ _ref$isCommonPercenta = _ref.isCommonPercentageSymbol,
220
+ isCommonPercentageSymbol = _ref$isCommonPercenta === void 0 ? true : _ref$isCommonPercenta,
221
+ _ref$decimalPlaces = _ref.decimalPlaces,
222
+ decimalPlaces = _ref$decimalPlaces === void 0 ? 2 : _ref$decimalPlaces;
211
223
 
212
- exports.formatToOnlyASCIICodeText = formatToOnlyASCIICodeText;
224
+ var safelyInputValue;
213
225
 
214
- var formatToCutOffDotAtTheEnd = function formatToCutOffDotAtTheEnd(inputValue) {
215
- var value = getSafelyValue(inputValue);
216
- return value.toString().slice(-1) === '.' ? value.slice(0, -1) : value;
226
+ var checkValue = function checkValue(value) {
227
+ return getSafelyValue(value) || '0';
228
+ };
229
+
230
+ var transform = function transform(valueAsSting) {
231
+ var processedValue = valueAsSting.replace(/,/g, '.');
232
+ if (Number.isNaN(+processedValue)) return processedValue;
233
+ return "".concat(intlNumbersFormatter(getSafelyValue(+processedValue), {
234
+ fractionDigits: {
235
+ quantity: decimalPlaces,
236
+ minimumFractionDigits: decimalPlaces
237
+ }
238
+ }));
239
+ };
240
+
241
+ if ((0, _utils.getIsOnlyAnObject)(value)) {
242
+ safelyInputValue = {
243
+ from: checkValue(value.from),
244
+ to: checkValue(value.to)
245
+ };
246
+ } else {
247
+ safelyInputValue = checkValue(value);
248
+
249
+ if (safelyInputValue.includes(' - ')) {
250
+ var valuesArr = safelyInputValue.split(' - ').map(function (partOfValue) {
251
+ return partOfValue.trim();
252
+ });
253
+ safelyInputValue = {
254
+ from: checkValue(valuesArr[0]),
255
+ to: checkValue(valuesArr[1])
256
+ };
257
+ } else {
258
+ return "".concat(transform(safelyInputValue), "%");
259
+ }
260
+ }
261
+
262
+ if (isCommonPercentageSymbol) return "".concat(transform(safelyInputValue.from), " - ").concat(transform(safelyInputValue.to), "%");else return "".concat(transform(safelyInputValue.from), "% - ").concat(transform(safelyInputValue.to), "%");
263
+ }; // eslint-disable-next-line no-control-regex
264
+
265
+
266
+ exports.formatAsPercentage = formatAsPercentage;
267
+
268
+ var formatToOnlyASCIICodeText = function formatToOnlyASCIICodeText(text) {
269
+ return getSafelyValue(text).replace(/[^\x00-\x7F]+/g, '');
217
270
  }; // eslint-disable-next-line default-param-last
218
271
 
219
272
 
220
- exports.formatToCutOffDotAtTheEnd = formatToCutOffDotAtTheEnd;
273
+ exports.formatToOnlyASCIICodeText = formatToOnlyASCIICodeText;
221
274
 
222
275
  var formatNumberValueToMask = function formatNumberValueToMask(inputValue, settings) {
223
276
  var safelyInputValue = getSafelyValue(inputValue); // default valueSymbol === 'n', default mask === 'nnn-nnn-nnnn'
224
277
 
225
- var _ref = settings || {},
226
- _ref$mask = _ref.mask,
227
- mask = _ref$mask === void 0 ? 'XXX-XXX-XXXX' : _ref$mask,
228
- _ref$valueSymbol = _ref.valueSymbol,
229
- valueSymbol = _ref$valueSymbol === void 0 ? 'X' : _ref$valueSymbol,
230
- _ref$isReturnAdvanced = _ref.isReturnAdvanced,
231
- isReturnAdvanced = _ref$isReturnAdvanced === void 0 ? false : _ref$isReturnAdvanced;
278
+ var _ref2 = settings || {},
279
+ _ref2$mask = _ref2.mask,
280
+ mask = _ref2$mask === void 0 ? 'XXX-XXX-XXXX' : _ref2$mask,
281
+ _ref2$valueSymbol = _ref2.valueSymbol,
282
+ valueSymbol = _ref2$valueSymbol === void 0 ? 'X' : _ref2$valueSymbol,
283
+ _ref2$isReturnAdvance = _ref2.isReturnAdvanced,
284
+ isReturnAdvanced = _ref2$isReturnAdvance === void 0 ? false : _ref2$isReturnAdvance;
232
285
 
233
286
  var processing = mask.split('').reduce(function (acc, item) {
234
287
  if (acc.value.length) ++acc.cursorPosition;
@@ -263,9 +316,9 @@ var formatToLimitLength = function formatToLimitLength(inputValue, limit) {
263
316
 
264
317
  exports.formatToLimitLength = formatToLimitLength;
265
318
 
266
- var formatToHex = function formatToHex(_ref2) {
267
- var inputValue = _ref2.inputValue,
268
- withSharp = _ref2.withSharp;
319
+ var formatToHex = function formatToHex(_ref3) {
320
+ var inputValue = _ref3.inputValue,
321
+ withSharp = _ref3.withSharp;
269
322
  var value = getSafelyValue(inputValue);
270
323
  if (withSharp) return "#".concat(value.replace(/[^a-f0-9]/gi, ''));
271
324
  return "".concat(value.replace(/[^#a-f0-9]/gi, ''));
@@ -282,7 +335,13 @@ exports.formatToHex = formatToHex;
282
335
  function formatToReplaceAllWhiteSpace(str) {
283
336
  var value = getSafelyValue(str);
284
337
  return value.replace(/\s+/g, '');
285
- } // *** filter ***
338
+ } // ****************************
339
+ // transform
340
+ // ****************************
341
+ // ...
342
+ // ****************************
343
+ // filter
344
+ // ****************************
286
345
  // export const filterFloat = (inputValue, decimalPlaces = null) => {
287
346
  // const value = getSafelyValue(inputValue);
288
347
  // const replaser = input => ('' + input).replace(/[^\.\d]/g, '');
@@ -312,9 +371,9 @@ var filterFloat = function filterFloat(inputValue) {
312
371
  var value = getSafelyValue(inputValue);
313
372
 
314
373
  var replacer = function replacer(input) {
315
- var _ref3;
374
+ var _ref4;
316
375
 
317
- return (_ref3 = '' + input) === null || _ref3 === void 0 ? void 0 : _ref3.replace(/[^\.\d,]/g, '');
376
+ return (_ref4 = '' + input) === null || _ref4 === void 0 ? void 0 : _ref4.replace(/[^\.\d,]/g, '');
318
377
  };
319
378
 
320
379
  if (value.length === 1 && (value[0] === '.' || value[0] === ',')) return '0.';
@@ -342,10 +401,10 @@ var filterNumeric = function filterNumeric(value, settings) {
342
401
 
343
402
  value = (_getSafelyValue = getSafelyValue(value)) === null || _getSafelyValue === void 0 ? void 0 : _getSafelyValue.replace(/,/g, '');
344
403
 
345
- var _ref4 = settings || {},
346
- _ref4$type = _ref4.type,
347
- type = _ref4$type === void 0 ? 'float' : _ref4$type,
348
- decimalPlaces = _ref4.decimalPlaces;
404
+ var _ref5 = settings || {},
405
+ _ref5$type = _ref5.type,
406
+ type = _ref5$type === void 0 ? 'float' : _ref5$type,
407
+ decimalPlaces = _ref5.decimalPlaces;
349
408
 
350
409
  var executor = type === 'float' ? filterFloat : formatOnlyNumbers;
351
410
  return executor(getSafelyValue(value), decimalPlaces);
@@ -354,13 +413,13 @@ var filterNumeric = function filterNumeric(value, settings) {
354
413
  exports.filterNumeric = filterNumeric;
355
414
 
356
415
  var formatToHideValuePartially = function formatToHideValuePartially(value, settings) {
357
- var _ref5 = settings || {},
358
- _ref5$showSymbolsCoun = _ref5.showSymbolsCount,
359
- showSymbolsCount = _ref5$showSymbolsCoun === void 0 ? 4 : _ref5$showSymbolsCoun,
360
- _ref5$isVisibleFromFr = _ref5.isVisibleFromFront,
361
- isVisibleFromFront = _ref5$isVisibleFromFr === void 0 ? false : _ref5$isVisibleFromFr,
362
- _ref5$isCutOutWhiteSp = _ref5.isCutOutWhiteSpaces,
363
- isCutOutWhiteSpaces = _ref5$isCutOutWhiteSp === void 0 ? true : _ref5$isCutOutWhiteSp;
416
+ var _ref6 = settings || {},
417
+ _ref6$showSymbolsCoun = _ref6.showSymbolsCount,
418
+ showSymbolsCount = _ref6$showSymbolsCoun === void 0 ? 4 : _ref6$showSymbolsCoun,
419
+ _ref6$isVisibleFromFr = _ref6.isVisibleFromFront,
420
+ isVisibleFromFront = _ref6$isVisibleFromFr === void 0 ? false : _ref6$isVisibleFromFr,
421
+ _ref6$isCutOutWhiteSp = _ref6.isCutOutWhiteSpaces,
422
+ isCutOutWhiteSpaces = _ref6$isCutOutWhiteSp === void 0 ? true : _ref6$isCutOutWhiteSp;
364
423
 
365
424
  var safelyValue = getSafelyValue(value);
366
425
  var newValue = isCutOutWhiteSpaces ? safelyValue.replace(/\s/g, '') : safelyValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.2.52",
3
+ "version": "1.2.54",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [