intelicoreact 1.2.0 → 1.2.1

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.
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ require("./InputCurrency.scss");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ var InputCurrency = function InputCurrency(_ref) {
25
+ var currencySymbol = _ref.currencySymbol,
26
+ onChange = _ref.onChange,
27
+ className = _ref.className,
28
+ value = _ref.value,
29
+ disabled = _ref.disabled;
30
+
31
+ var _useState = (0, _react.useState)(value || currencySymbol || '$'),
32
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
33
+ inputValue = _useState2[0],
34
+ setInputValue = _useState2[1];
35
+
36
+ var inputRef = (0, _react.useRef)(null);
37
+
38
+ var formatNumberWithCommas = function formatNumberWithCommas(number) {
39
+ return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
40
+ };
41
+
42
+ var formatCurrencyInput = function formatCurrencyInput(event) {
43
+ var newValue = event.target.value;
44
+ newValue = newValue.replace(/[^0-9]/g, '');
45
+ newValue = formatNumberWithCommas(newValue);
46
+ newValue = "".concat(currencySymbol || '$').concat(newValue);
47
+ setInputValue(newValue);
48
+ onChange(newValue.replace(/[^0-9]/g, ''));
49
+ };
50
+
51
+ var onInputClick = function onInputClick() {
52
+ if (!inputValue) {
53
+ inputRef.current.selectionStart = inputRef.current.selectionEnd = currencySymbol ? currencySymbol.length : 1;
54
+ }
55
+ };
56
+
57
+ var onKeyDown = function onKeyDown(event) {
58
+ if (event.key.match(/^[a-zA-Z0-9]$/)) {
59
+ setInputValue(inputValue.slice(0, inputRef.current.selectionStart));
60
+ }
61
+ };
62
+
63
+ (0, _react.useEffect)(function () {
64
+ if (value) {
65
+ setInputValue("".concat(currencySymbol || '$').concat(value));
66
+ }
67
+ }, []);
68
+ return /*#__PURE__*/_react.default.createElement("div", {
69
+ className: (0, _classnames.default)('input-currency-box', className, {
70
+ disabled: disabled
71
+ })
72
+ }, /*#__PURE__*/_react.default.createElement("input", {
73
+ className: "input-currency",
74
+ type: "text",
75
+ ref: inputRef,
76
+ value: inputValue,
77
+ onChange: formatCurrencyInput,
78
+ onClick: onInputClick,
79
+ onKeyDown: onKeyDown
80
+ }));
81
+ };
82
+
83
+ var _default = InputCurrency;
84
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ .input-currency-box {}
2
+
3
+ .input-currency {
4
+ padding: 0 16px;
5
+ height: 40px;
6
+ max-height: 40px;
7
+ border-radius: 6px;
8
+ border: 1px solid #E1E8F1;
9
+ background: #F8FBFF;
10
+ font-size: 16px;
11
+ font-weight: 400;
12
+ line-height: 24px;
13
+ letter-spacing: 0.2px;
14
+ box-sizing:border-box;
15
+ }
@@ -9,17 +9,21 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.transformUTCTimeToLocal = transformUTCTimeToLocal;
11
11
  exports.transformUTCHoursToLocal = transformUTCHoursToLocal;
12
+ exports.transformDateOrTimeOrTogetherToFormat = transformDateOrTimeOrTogetherToFormat;
13
+ exports.transformDateOrTimeOrTogetherToFormattedLocal = transformDateOrTimeOrTogetherToFormattedLocal;
12
14
  exports.downloadEmulation = downloadEmulation;
13
- exports.getIsOnlyAnObject = exports.getCorrectTestId = exports.disableDefaultBehavior = exports.getOS = exports.getUniqueFileExtensions = exports.renderFileSize = exports.getBase64 = exports.compareAlphabetical = exports.setCarretToEnd = exports.compare = exports.downloadFile = exports.checkedRef = exports.capitalized = exports.firstLetterCapital = exports.changeMeta = exports.addBitDepthPoints = exports.throttle = exports.debounce = exports.getColorById = exports.getStyles = exports.logout = exports.omitKeys = exports.clone = exports.useOutsideToggle = exports.handleObjectChange = void 0;
15
+ exports.getCorrectTestId = exports.disableDefaultBehavior = exports.getOS = exports.getUniqueFileExtensions = exports.renderFileSize = exports.getBase64 = exports.compareAlphabetical = exports.setCarretToEnd = exports.compare = exports.downloadFile = exports.checkedRef = exports.capitalized = exports.firstLetterCapital = exports.changeMeta = exports.addBitDepthPoints = exports.throttle = exports.debounce = exports.getColorById = exports.getStyles = exports.logout = exports.omitKeys = exports.clone = exports.useOutsideToggle = exports.handleObjectChange = exports.getIsOnlyAnObject = void 0;
14
16
 
15
17
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
16
18
 
17
19
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
20
 
19
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
20
-
21
21
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
22
22
 
23
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
24
+
25
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
26
+
23
27
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
24
28
 
25
29
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
@@ -32,7 +36,18 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
32
36
 
33
37
  function _toPrimitive(input, hint) { if (_typeof3(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof3(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
34
38
 
39
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
40
+
41
+ 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; }
42
+
43
+ var getIsOnlyAnObject = function getIsOnlyAnObject(input) {
44
+ return (0, _typeof2.default)(input) === 'object' && input instanceof Object && !Array.isArray(input);
45
+ };
35
46
  /* eslint-disable guard-for-in, no-unused-vars */
47
+
48
+
49
+ exports.getIsOnlyAnObject = getIsOnlyAnObject;
50
+
36
51
  var handleObjectChange = function handleObjectChange(updateObject, updateFunction) {
37
52
  return function (data) {
38
53
  var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
@@ -120,6 +135,88 @@ function transformUTCHoursToLocal(time) {
120
135
 
121
136
  if (HH < 0) HH += 24;
122
137
  return "".concat(HH, ":").concat(mm, ":").concat(ss);
138
+ } //? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн
139
+
140
+
141
+ function transformDateOrTimeOrTogetherToFormat(data) {
142
+ var outputFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'HH:mm';
143
+ var additional = arguments.length > 2 ? arguments[2] : undefined;
144
+ var ERROR_VALUE = 'Invalid date';
145
+ var ERROR_MESSGE = "Invalid input data for ".concat(outputFormat, " format");
146
+
147
+ var _ref = getIsOnlyAnObject(additional) ? additional : {},
148
+ parseFormat = _ref.parseFormat,
149
+ isReturnAsMomentInstance = _ref.isReturnAsMomentInstance;
150
+
151
+ if (typeof data !== 'string' && typeof data !== 'number') {
152
+ return isReturnAsMomentInstance ? (0, _momentTimezone.default)('error') : ERROR_MESSGE;
153
+ } //? Игнорируем parseFormat, если data пришла как timestamp или если parseFormat не строка
154
+
155
+
156
+ var momentArgs = [data].concat((0, _toConsumableArray2.default)(!Number.isNaN(+data) || typeof parseFormat === 'string' ? [] : [parseFormat])); //? Задача получить moment-экземпляр, валидный либо невалидный
157
+
158
+ var momentInstance = function () {
159
+ var instance = _momentTimezone.default.apply(void 0, (0, _toConsumableArray2.default)(momentArgs)); //? Проверяем валидность moment-экземпляр-а путем попытки привести его к выходному формату
160
+ //? Попадем в этот кейс если
161
+ //? - data это timestamp
162
+ //? - data это строка в формате date-time
163
+ //? - data это строка в формате date (в этом случае время выставится 00:00:00)
164
+
165
+
166
+ if (instance.format(outputFormat) !== ERROR_VALUE) return instance; //? Если же приведение не удалось, то предполагаем, что data пришла в формате time
167
+ //? В этом случае создадим объект от текущей даты, распарсим data и установим время
168
+ //? Корректно обработаются паттерны: 'HH*mm', 'HH*mm*ss', 'HH*mm*ss*любое_количество_ms', где * - любой разделитель
169
+ else if (/^\d\d.\d\d/.test(data)) {
170
+ instance = (0, _momentTimezone.default)();
171
+ var symbols = data.split('');
172
+ var timeArr = symbols.reduce(function (acc, symbol, idx) {
173
+ if (Number.isNaN(+symbol)) {
174
+ if (acc.group) acc.result.push(acc.group);
175
+ acc.group = '';
176
+ } else acc.group = "".concat(acc.group).concat(symbol);
177
+
178
+ if (idx === symbols.length - 1 && acc.group) acc.result.push(acc.group);
179
+ return acc;
180
+ }, {
181
+ result: [],
182
+ group: ''
183
+ }) //? reverse используется исключительно для того, чтобы после можно было использовать метод pop, а не shift,
184
+ //? т.к. методы добавления/извлечения относительно конца массива работают быстрее,
185
+ //? чем аналогичные относительно начала массива
186
+ .result.reverse();
187
+ instance.hours(+timeArr.pop());
188
+ instance.minutes(+timeArr.pop());
189
+ instance.seconds(timeArr.length ? +timeArr.pop() : 0);
190
+ instance.milliseconds(timeArr.length ? +timeArr.pop() : 0);
191
+ } else instance = (0, _momentTimezone.default)('error'); //? Иначе создаем заведомо невалидный moment-экземпляр
192
+
193
+ return instance;
194
+ }();
195
+
196
+ if (isReturnAsMomentInstance) return momentInstance;
197
+ var output = momentInstance.format(outputFormat);
198
+ return output === ERROR_VALUE ? ERROR_MESSGE : output;
199
+ } //? Намерянно значением по умолчанию назначаю самый информационно-маленький паттерн
200
+
201
+
202
+ function transformDateOrTimeOrTogetherToFormattedLocal(data) {
203
+ var outputFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'HH:mm';
204
+ var additional = arguments.length > 2 ? arguments[2] : undefined;
205
+ var ERROR_VALUE = 'Invalid date';
206
+ var ERROR_MESSGE = "Invalid input data for ".concat(outputFormat, " format");
207
+
208
+ if (additional && !getIsOnlyAnObject(additional)) {
209
+ throw new Error('Bad additional (transformDateOrTimeOrTogetherToFormattedLocal)');
210
+ }
211
+
212
+ var compositeAdditional = _objectSpread(_objectSpread({}, additional || {}), {}, {
213
+ isReturnAsMomentInstance: true
214
+ });
215
+
216
+ var date = transformDateOrTimeOrTogetherToFormat(data, outputFormat, compositeAdditional);
217
+ var dateWithLocale = date.add((0, _momentTimezone.default)().utcOffset(), 'minutes');
218
+ var output = dateWithLocale.format(outputFormat);
219
+ return output === ERROR_VALUE ? ERROR_MESSGE : output;
123
220
  } //принимает обьект и массив ключей обьекта
124
221
  //возвращает обьект с теми полями, которых нет в массиве ключей
125
222
 
@@ -276,16 +373,16 @@ function downloadEmulation(data, filename) {
276
373
  }
277
374
 
278
375
  var downloadFile = /*#__PURE__*/function () {
279
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref) {
376
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(_ref2) {
280
377
  var url, name, type, response;
281
378
  return _regenerator.default.wrap(function _callee2$(_context2) {
282
379
  while (1) {
283
380
  switch (_context2.prev = _context2.next) {
284
381
  case 0:
285
- url = _ref.url, name = _ref.name, type = _ref.type;
382
+ url = _ref2.url, name = _ref2.name, type = _ref2.type;
286
383
  _context2.next = 3;
287
384
  return fetch(url).then( /*#__PURE__*/function () {
288
- var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
385
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(res) {
289
386
  return _regenerator.default.wrap(function _callee$(_context) {
290
387
  while (1) {
291
388
  switch (_context.prev = _context.next) {
@@ -310,7 +407,7 @@ var downloadFile = /*#__PURE__*/function () {
310
407
  }));
311
408
 
312
409
  return function (_x2) {
313
- return _ref3.apply(this, arguments);
410
+ return _ref4.apply(this, arguments);
314
411
  };
315
412
  }());
316
413
 
@@ -327,7 +424,7 @@ var downloadFile = /*#__PURE__*/function () {
327
424
  }));
328
425
 
329
426
  return function downloadFile(_x) {
330
- return _ref2.apply(this, arguments);
427
+ return _ref3.apply(this, arguments);
331
428
  };
332
429
  }();
333
430
 
@@ -532,18 +629,12 @@ String.prototype.lastIndexEqualsTo = function (index) {
532
629
  // };
533
630
 
534
631
 
535
- var getCorrectTestId = function getCorrectTestId(_ref4) {
536
- var _ref4$testId = _ref4.testId,
537
- testId = _ref4$testId === void 0 ? '' : _ref4$testId,
538
- _ref4$withTier = _ref4.withTier,
539
- withTier = _ref4$withTier === void 0 ? true : _ref4$withTier;
632
+ var getCorrectTestId = function getCorrectTestId(_ref5) {
633
+ var _ref5$testId = _ref5.testId,
634
+ testId = _ref5$testId === void 0 ? '' : _ref5$testId,
635
+ _ref5$withTier = _ref5.withTier,
636
+ withTier = _ref5$withTier === void 0 ? true : _ref5$withTier;
540
637
  return testId && testId !== undefined ? "".concat(withTier ? '-' : '').concat(testId) : '';
541
638
  };
542
639
 
543
- exports.getCorrectTestId = getCorrectTestId;
544
-
545
- var getIsOnlyAnObject = function getIsOnlyAnObject(input) {
546
- return (0, _typeof2.default)(input) === 'object' && input instanceof Object && !Array.isArray(input);
547
- };
548
-
549
- exports.getIsOnlyAnObject = getIsOnlyAnObject;
640
+ exports.getCorrectTestId = getCorrectTestId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [