intelicoreact 1.2.0 → 1.2.2
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.
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +84 -0
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.scss +15 -0
- package/dist/Classes/RESTAPI/index.js +11 -20
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -1
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +30 -0
- package/dist/Classes/RESTAPI/partials/_utils.js +1 -1
- package/dist/Classes/RESTAPI/readme.txt +28 -22
- package/dist/Functions/utils.js +111 -20
- package/package.json +1 -1
|
@@ -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
|
+
}
|
|
@@ -71,11 +71,13 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
|
|
|
71
71
|
credentialsProcessing = _ref.credentialsProcessing;
|
|
72
72
|
|
|
73
73
|
_this.sendMessage = typeof sendMessage === 'function' ? sendMessage : null; //! Наличие credentialsProcessing подключает ДОБАВЛЕНИЕ ТОКЕНОВ В ЗАПРОСЫ,
|
|
74
|
-
//! НО по умолчанию НЕ добавляет флоу рефреша токенов
|
|
74
|
+
//! НО по умолчанию НЕ добавляет флоу рефреша токенов
|
|
75
|
+
//! (флоу рефреша подключается пропой isUseRefreshTokensPropcessing из credentialsProcessing)
|
|
75
76
|
|
|
76
77
|
if ((0, _utils.getIsOnlyAnObject)(credentialsProcessing)) {
|
|
77
78
|
_this.credentialsProcessing = new _CredentialsProcessing.default(settings); //? credentialsProcessing расположен обособлено для того, чтобы обладать своим независимым this
|
|
78
|
-
//? Однако при описании методов credentialsProcessing
|
|
79
|
+
//? Однако при описании методов credentialsProcessing
|
|
80
|
+
//? может понадобится воспользоваться непосредственными методами класса RESTAPI
|
|
79
81
|
//? Для этого предоставляю возможность дотянуться до верхнего контекста
|
|
80
82
|
|
|
81
83
|
_this.credentialsProcessing.getRESTAPIContext = getRESTAPIContext.bind((0, _assertThisInitialized2.default)(_this));
|
|
@@ -240,7 +242,8 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
|
|
|
240
242
|
while (1) {
|
|
241
243
|
switch (_context7.prev = _context7.next) {
|
|
242
244
|
case 0:
|
|
243
|
-
type = item.type, partialRestFirst = (0, _objectWithoutProperties2.default)(item, _excluded2); //? Предполагалось что пропа type в объекте описания запроса
|
|
245
|
+
type = item.type, partialRestFirst = (0, _objectWithoutProperties2.default)(item, _excluded2); //? Предполагалось что пропа type в объекте описания запроса
|
|
246
|
+
//? будет использоваться исключительно для метода doMonoRequest,
|
|
244
247
|
//? однако оказалось, что type удобно использовать и в мульти запросах (опционально).
|
|
245
248
|
//? В данном месте происходит обработка type для объектов описания запроса из мульти запроса.
|
|
246
249
|
//? 'doRequestMapping' - ключ для управления выходными структурами из метода splitProperties
|
|
@@ -289,9 +292,7 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
|
|
|
289
292
|
_context7.t8 = _context7.t3.concat.call(_context7.t3, _context7.t7);
|
|
290
293
|
_context7.next = 25;
|
|
291
294
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
|
|
292
|
-
var
|
|
293
|
-
|
|
294
|
-
var queryParams, queryParamsString;
|
|
295
|
+
var queryParams, preparedQueryParams;
|
|
295
296
|
return _regenerator.default.wrap(function _callee6$(_context6) {
|
|
296
297
|
while (1) {
|
|
297
298
|
switch (_context6.prev = _context6.next) {
|
|
@@ -299,23 +300,13 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
|
|
|
299
300
|
queryParams = query || queryParameters || ''; //? Т.к.самовызывающаяся ф-я асинхронная, то можем дождаться фактического значения
|
|
300
301
|
|
|
301
302
|
_context6.next = 3;
|
|
302
|
-
return
|
|
303
|
+
return API_CONTEXT.processQueryParams(queryParams);
|
|
303
304
|
|
|
304
305
|
case 3:
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
if (_context6.t0) {
|
|
308
|
-
_context6.next = 6;
|
|
309
|
-
break;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
_context6.t0 = queryParams;
|
|
313
|
-
|
|
314
|
-
case 6:
|
|
315
|
-
queryParamsString = _context6.t0;
|
|
316
|
-
return _context6.abrupt("return", queryParamsString);
|
|
306
|
+
preparedQueryParams = _context6.sent;
|
|
307
|
+
return _context6.abrupt("return", preparedQueryParams);
|
|
317
308
|
|
|
318
|
-
case
|
|
309
|
+
case 5:
|
|
319
310
|
case "end":
|
|
320
311
|
return _context6.stop();
|
|
321
312
|
}
|
|
@@ -377,7 +377,7 @@ var AbortableFetch = /*#__PURE__*/function () {
|
|
|
377
377
|
return Object.keys(value).filter(function (key) {
|
|
378
378
|
return !!key && !!value[key];
|
|
379
379
|
}).map(function (key) {
|
|
380
|
-
return "".concat(key, "=").concat(value[key]);
|
|
380
|
+
return "".concat(key, "=").concat(value[key]).replace(/\?/g, '');
|
|
381
381
|
});
|
|
382
382
|
} else return [];
|
|
383
383
|
} // eslint-disable-next-line class-methods-use-this
|
|
@@ -310,6 +310,36 @@ var ApiUtils = /*#__PURE__*/function () {
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
return addAsCommon;
|
|
313
|
+
}() //! Обработчик квери-параметров для общего процессинга,
|
|
314
|
+
//! Например для кодирования decodeURIComponent или/и приведения в формат массива
|
|
315
|
+
//? Планируется, что метод будет перегружаться на экземпляре,
|
|
316
|
+
//? т.к. на разных проектах могут быть разные договоренности по форматам
|
|
317
|
+
//? Метод не планировался как асинхронный,
|
|
318
|
+
//? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
|
|
319
|
+
|
|
320
|
+
}, {
|
|
321
|
+
key: "processQueryParams",
|
|
322
|
+
value: function () {
|
|
323
|
+
var _processQueryParams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(queryParams) {
|
|
324
|
+
return _regenerator.default.wrap(function _callee7$(_context7) {
|
|
325
|
+
while (1) {
|
|
326
|
+
switch (_context7.prev = _context7.next) {
|
|
327
|
+
case 0:
|
|
328
|
+
return _context7.abrupt("return", queryParams);
|
|
329
|
+
|
|
330
|
+
case 1:
|
|
331
|
+
case "end":
|
|
332
|
+
return _context7.stop();
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}, _callee7);
|
|
336
|
+
}));
|
|
337
|
+
|
|
338
|
+
function processQueryParams(_x7) {
|
|
339
|
+
return _processQueryParams.apply(this, arguments);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
return processQueryParams;
|
|
313
343
|
}()
|
|
314
344
|
}]);
|
|
315
345
|
return ApiUtils;
|
|
@@ -148,7 +148,7 @@ function _getInstanceOfFetchSystem() {
|
|
|
148
148
|
method: 'GET',
|
|
149
149
|
//? Заголовки по умолчанию
|
|
150
150
|
headers: _objectSpread(_objectSpread({}, headersToAbortableFetchInstance), credentials.token ? (CREDENTIALS_CONTEXT === null || CREDENTIALS_CONTEXT === void 0 ? void 0 : (_CREDENTIALS_CONTEXT$ = CREDENTIALS_CONTEXT.getHeadersForAuthorize) === null || _CREDENTIALS_CONTEXT$ === void 0 ? void 0 : _CREDENTIALS_CONTEXT$.call(CREDENTIALS_CONTEXT, credentials.token)) || {} : {}),
|
|
151
|
-
queryParameters: queryParamsToAbortableFetchInstance,
|
|
151
|
+
queryParameters: API_CONTEXT.processQueryParams(queryParamsToAbortableFetchInstance),
|
|
152
152
|
//? Опции по умолчанию
|
|
153
153
|
options: _objectSpread({
|
|
154
154
|
mode: 'cors',
|
|
@@ -58,28 +58,34 @@ utils
|
|
|
58
58
|
В классе имеются базовые утилиты, которые можно перегрузить на экземпляре, передав одноименные методы в объекте utils
|
|
59
59
|
(базовые методы содержаться в классе ApiUtils)
|
|
60
60
|
|
|
61
|
-
splitProperties -
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
getRootPath -
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
getResponseBody -
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
getErrorMessage -
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
checkResponseCode -
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
addAsCommon -
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
61
|
+
splitProperties - метод используемый ВСЕМИ requestСreator-ами.
|
|
62
|
+
Разделяет пропы из единого входного аргумента на пропы для описания запроса и пропы общих настроек
|
|
63
|
+
Прегрузка НЕ рекомендуется
|
|
64
|
+
|
|
65
|
+
getRootPath - Обработчик пропы api из объекта описания запроса (Пример: { path: 'https://example', api: 'auth', ... })
|
|
66
|
+
Базовый метод просто возвращает API_PATH
|
|
67
|
+
Если планируется в путь добавлять некие постфиксы РЕКОМЕНДУЕТСЯ перегрузить метод на экземпляре
|
|
68
|
+
|
|
69
|
+
getResponseBody - метод извлечения тела из объекта Response
|
|
70
|
+
Метод проверенный на практике, без реальной необходимости прегрузка НЕ рекомендуется
|
|
71
|
+
|
|
72
|
+
getErrorMessage - Обработчик структуры для ошибки
|
|
73
|
+
Базовый метод просто возвращает response (предполагается, что response - уже извлеченное тело ответа)
|
|
74
|
+
РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре, передав свой метод, умеющий оценивать принятую на проекте структуру тела ошибки
|
|
75
|
+
|
|
76
|
+
checkResponseCode - метод для внутренней работы, который триггерит ф-ю sendMessage
|
|
77
|
+
Прегрузка НЕ рекомендуется
|
|
78
|
+
|
|
79
|
+
addAsCommon - метод, который возвращает структуры, которые будут использованы для КАЖДОГО запроса, совершаемого методами экземпляра RESTAPI
|
|
80
|
+
Под структурами подразумевается информация о headers, queryParameters и options (подробнее смотри класс ApiUtils)
|
|
81
|
+
Базовый метод просто возвращает {}
|
|
82
|
+
Если планируется вводить что-то общее для каждого запроса, то РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре
|
|
83
|
+
|
|
84
|
+
processQueryParams - метод, который предназначен для обработки квери-параметров каждого запроса
|
|
85
|
+
с помощь его будет удобно осуществлять какой-либо общий процессинг входных квери-параметров.
|
|
86
|
+
Например:
|
|
87
|
+
- кодировние утилитой decodeURIComponent
|
|
88
|
+
- преобразование каких либо локальных форматов (допустим преобразование специфических значений параметра к формату массива)
|
|
83
89
|
|
|
84
90
|
|
|
85
91
|
----------
|
package/dist/Functions/utils.js
CHANGED
|
@@ -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.
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
536
|
-
var
|
|
537
|
-
testId =
|
|
538
|
-
|
|
539
|
-
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;
|