kui-utils 0.0.24 → 0.0.25
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/cjs/index.js +111 -0
- package/cjs/index.js.map +1 -1
- package/index.d.ts +9 -1
- package/index.js +107 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DependencyList } from 'react';
|
|
3
|
+
import { Loader as Loader$1 } from 'kui-utils';
|
|
3
4
|
|
|
4
5
|
declare function useForkRef<Instance>(...refs: Array<React.Ref<Instance> | undefined>): React.RefCallback<Instance> | null;
|
|
5
6
|
|
|
@@ -152,6 +153,13 @@ declare const toNumber: (value?: string | number | null | undefined) => number |
|
|
|
152
153
|
|
|
153
154
|
declare const updateQueryParams: (newLink: string) => void;
|
|
154
155
|
|
|
156
|
+
declare function addToIndexDBWithQueue(db: any, storeName: string, data: any, loader: Loader$1): void;
|
|
157
|
+
declare const readFromIndexDB: (db: any, name: string, loader: Loader$1) => Promise<any>;
|
|
158
|
+
declare const initIndexDB: (dbName: string, onupgradeneeded: (db: any) => void, loader: Loader$1, setIndexDB: (db: any) => void) => void;
|
|
159
|
+
declare const addIndexDBStore: (db: any, name: string) => void;
|
|
160
|
+
declare const clearIndexStore: (db: any, name: string) => void;
|
|
161
|
+
declare const clearIndexStores: (db: any, stores: string[]) => void;
|
|
162
|
+
|
|
155
163
|
declare type CookieOptions = {
|
|
156
164
|
path?: string;
|
|
157
165
|
"max-age"?: number;
|
|
@@ -208,4 +216,4 @@ declare class KUIUtilsSettings {
|
|
|
208
216
|
}
|
|
209
217
|
declare const kuiUtilsSettings: KUIUtilsSettings;
|
|
210
218
|
|
|
211
|
-
export { Editor, kuiUtilsSettings as KUIUtilsSettings, Loader, MultistepForm, ObjectType, PaginationRes, Paginator, PhoneParams, ResHandlerParams, SortOrder, SortingFilter, Values, accountRegExp, addLeadZero, addToArrayByCondition, applyMask, bicRegExp, callPromises, carNumberRegExp, checkIsIOS, cleanEmptyFields, clearNotValidFields, copyInfo, corrAccountRegExp, _default as countries, cropText, dateRegExp, declineByNumber, deleteCookie, emailRegExp, formatError, generateFormDataBody, getChangedValue, getCookie, getFileNameFromFile, getFileNameFromUrl, getNestedData, getPhoneNumberFromPhoneParams, getPhoneParamsFromString, innRegExp, isValidWithMaskExp, mediumPasswordRegExp, monthYearRegExp, phoneRegExp, promisesWithCallback, resHandler, setCookie, simplePasswordRegExp, strongPasswordRegExp, swiftRegExp, toNumber, updateQueryParams, useDebounce, useForkRef, useTabIndex, useToggle, useWindowWidth };
|
|
219
|
+
export { Editor, kuiUtilsSettings as KUIUtilsSettings, Loader, MultistepForm, ObjectType, PaginationRes, Paginator, PhoneParams, ResHandlerParams, SortOrder, SortingFilter, Values, accountRegExp, addIndexDBStore, addLeadZero, addToArrayByCondition, addToIndexDBWithQueue, applyMask, bicRegExp, callPromises, carNumberRegExp, checkIsIOS, cleanEmptyFields, clearIndexStore, clearIndexStores, clearNotValidFields, copyInfo, corrAccountRegExp, _default as countries, cropText, dateRegExp, declineByNumber, deleteCookie, emailRegExp, formatError, generateFormDataBody, getChangedValue, getCookie, getFileNameFromFile, getFileNameFromUrl, getNestedData, getPhoneNumberFromPhoneParams, getPhoneParamsFromString, initIndexDB, innRegExp, isValidWithMaskExp, mediumPasswordRegExp, monthYearRegExp, phoneRegExp, promisesWithCallback, readFromIndexDB, resHandler, setCookie, simplePasswordRegExp, strongPasswordRegExp, swiftRegExp, toNumber, updateQueryParams, useDebounce, useForkRef, useTabIndex, useToggle, useWindowWidth };
|
package/index.js
CHANGED
|
@@ -2,7 +2,8 @@ import * as React from 'react';
|
|
|
2
2
|
import { useState, useMemo, useEffect } from 'react';
|
|
3
3
|
import _ from 'lodash';
|
|
4
4
|
import { useLocation } from 'react-router-dom';
|
|
5
|
-
import { makeAutoObservable } from 'mobx';
|
|
5
|
+
import { isObservable, toJS, makeAutoObservable } from 'mobx';
|
|
6
|
+
import { DateTime } from 'luxon';
|
|
6
7
|
|
|
7
8
|
function setRef(ref, value) {
|
|
8
9
|
if (typeof ref === "function") {
|
|
@@ -2018,6 +2019,110 @@ var updateQueryParams = function (newLink) {
|
|
|
2018
2019
|
window.history.pushState({ route: route }, "", route);
|
|
2019
2020
|
};
|
|
2020
2021
|
|
|
2022
|
+
function cleanObjectForIndexDB(value) {
|
|
2023
|
+
if (typeof value === "undefined")
|
|
2024
|
+
return null;
|
|
2025
|
+
if (value instanceof File)
|
|
2026
|
+
return value;
|
|
2027
|
+
if (value instanceof DateTime)
|
|
2028
|
+
return value.toISO();
|
|
2029
|
+
if (isObservable(value)) {
|
|
2030
|
+
return cleanObjectForIndexDB(toJS(value));
|
|
2031
|
+
}
|
|
2032
|
+
if (Array.isArray(value)) {
|
|
2033
|
+
return value.map(function (item) { return cleanObjectForIndexDB(item); });
|
|
2034
|
+
}
|
|
2035
|
+
if (value !== null && typeof value === "object") {
|
|
2036
|
+
var plainObject = {};
|
|
2037
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
2038
|
+
for (var key in value) {
|
|
2039
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
2040
|
+
if (value.hasOwnProperty(key)) {
|
|
2041
|
+
var objectValue = value[key];
|
|
2042
|
+
if (typeof objectValue !== "function" && objectValue !== undefined) {
|
|
2043
|
+
plainObject[key] = cleanObjectForIndexDB(objectValue);
|
|
2044
|
+
}
|
|
2045
|
+
}
|
|
2046
|
+
}
|
|
2047
|
+
return plainObject;
|
|
2048
|
+
}
|
|
2049
|
+
return value;
|
|
2050
|
+
}
|
|
2051
|
+
var transactionQueue = Promise.resolve();
|
|
2052
|
+
function addToIndexDBWithQueue(db, storeName, data, loader) {
|
|
2053
|
+
transactionQueue = transactionQueue
|
|
2054
|
+
.then(function () {
|
|
2055
|
+
return new Promise(function (resolve, reject) {
|
|
2056
|
+
if (db && db.objectStoreNames.contains(storeName) && data) {
|
|
2057
|
+
var transaction = db.transaction(storeName, "readwrite");
|
|
2058
|
+
var store = transaction.objectStore(storeName);
|
|
2059
|
+
// eslint-disable-next-line no-param-reassign
|
|
2060
|
+
data.id = 1;
|
|
2061
|
+
var formattedData = cleanObjectForIndexDB(data);
|
|
2062
|
+
var request_1 = store.put(formattedData);
|
|
2063
|
+
request_1.onsuccess = function () {
|
|
2064
|
+
resolve(request_1);
|
|
2065
|
+
};
|
|
2066
|
+
request_1.onerror = function () {
|
|
2067
|
+
loader.setError("Не удалось сохранить данные в локальное хранилище");
|
|
2068
|
+
reject();
|
|
2069
|
+
};
|
|
2070
|
+
}
|
|
2071
|
+
});
|
|
2072
|
+
})
|
|
2073
|
+
.catch(function (error) {
|
|
2074
|
+
console.error("Ошибка в очереди транзакций:", error);
|
|
2075
|
+
});
|
|
2076
|
+
}
|
|
2077
|
+
var readFromIndexDB = function (db, name, loader) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2078
|
+
var transaction, request_2;
|
|
2079
|
+
return __generator(this, function (_a) {
|
|
2080
|
+
if (db.objectStoreNames.contains(name)) {
|
|
2081
|
+
transaction = db.transaction(name, "readonly").objectStore(name);
|
|
2082
|
+
request_2 = transaction.getAll();
|
|
2083
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
2084
|
+
request_2.onerror = function () {
|
|
2085
|
+
reject();
|
|
2086
|
+
loader.setError("Не удалось сохранить данные в локальное хранилище");
|
|
2087
|
+
};
|
|
2088
|
+
request_2.onsuccess = function () {
|
|
2089
|
+
var _a;
|
|
2090
|
+
resolve((_a = request_2.result) === null || _a === void 0 ? void 0 : _a[0]);
|
|
2091
|
+
};
|
|
2092
|
+
})];
|
|
2093
|
+
}
|
|
2094
|
+
return [2 /*return*/, null];
|
|
2095
|
+
});
|
|
2096
|
+
}); };
|
|
2097
|
+
var initIndexDB = function (dbName, onupgradeneeded, loader, setIndexDB) {
|
|
2098
|
+
var dbRequest = indexedDB.open(dbName, 1);
|
|
2099
|
+
dbRequest.onerror = function () {
|
|
2100
|
+
loader.setError("Ошибка при открытии хранилища на устройстве. Данные не будут сохраняться локально");
|
|
2101
|
+
};
|
|
2102
|
+
dbRequest.onsuccess = function () {
|
|
2103
|
+
var db = dbRequest.result;
|
|
2104
|
+
setIndexDB(db);
|
|
2105
|
+
};
|
|
2106
|
+
dbRequest.onupgradeneeded = function () { return onupgradeneeded(dbRequest.result); };
|
|
2107
|
+
};
|
|
2108
|
+
var addIndexDBStore = function (db, name) {
|
|
2109
|
+
if (db && !db.objectStoreNames.contains(name)) {
|
|
2110
|
+
db.createObjectStore(name, { keyPath: "id" });
|
|
2111
|
+
}
|
|
2112
|
+
};
|
|
2113
|
+
var clearIndexStore = function (db, name) {
|
|
2114
|
+
if (db) {
|
|
2115
|
+
var transaction = db.transaction(name, "readwrite");
|
|
2116
|
+
var objectStore = transaction.objectStore(name);
|
|
2117
|
+
objectStore.clear();
|
|
2118
|
+
}
|
|
2119
|
+
};
|
|
2120
|
+
var clearIndexStores = function (db, stores) {
|
|
2121
|
+
Array.from(stores).forEach(function (name) {
|
|
2122
|
+
clearIndexStore(db, name);
|
|
2123
|
+
});
|
|
2124
|
+
};
|
|
2125
|
+
|
|
2021
2126
|
function setCookie(name, value, options) {
|
|
2022
2127
|
if (options === void 0) { options = {}; }
|
|
2023
2128
|
var cookieOptions = __assign({ path: "/" }, options);
|
|
@@ -2335,5 +2440,5 @@ var simplePasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{10,
|
|
|
2335
2440
|
var mediumPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{12,}$/;
|
|
2336
2441
|
var strongPasswordRegExp = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{14,}$/;
|
|
2337
2442
|
|
|
2338
|
-
export { Editor, kuiUtilsSettings as KUIUtilsSettings, Loader, MultistepForm, Paginator, SortingFilter, accountRegExp, addLeadZero, addToArrayByCondition, applyMask, bicRegExp, callPromises, carNumberRegExp, checkIsIOS, cleanEmptyFields, clearNotValidFields, copyInfo, corrAccountRegExp, countries, cropText, dateRegExp, declineByNumber, deleteCookie, emailRegExp, formatError, generateFormDataBody, getChangedValue, getCookie, getFileNameFromFile, getFileNameFromUrl, getNestedData, getPhoneNumberFromPhoneParams, getPhoneParamsFromString, innRegExp, isValidWithMaskExp, mediumPasswordRegExp, monthYearRegExp, phoneRegExp, promisesWithCallback, resHandler, setCookie, simplePasswordRegExp, strongPasswordRegExp, swiftRegExp, toNumber, updateQueryParams, useDebounce, useForkRef, useTabIndex, useToggle, useWindowWidth };
|
|
2443
|
+
export { Editor, kuiUtilsSettings as KUIUtilsSettings, Loader, MultistepForm, Paginator, SortingFilter, accountRegExp, addIndexDBStore, addLeadZero, addToArrayByCondition, addToIndexDBWithQueue, applyMask, bicRegExp, callPromises, carNumberRegExp, checkIsIOS, cleanEmptyFields, clearIndexStore, clearIndexStores, clearNotValidFields, copyInfo, corrAccountRegExp, countries, cropText, dateRegExp, declineByNumber, deleteCookie, emailRegExp, formatError, generateFormDataBody, getChangedValue, getCookie, getFileNameFromFile, getFileNameFromUrl, getNestedData, getPhoneNumberFromPhoneParams, getPhoneParamsFromString, initIndexDB, innRegExp, isValidWithMaskExp, mediumPasswordRegExp, monthYearRegExp, phoneRegExp, promisesWithCallback, readFromIndexDB, resHandler, setCookie, simplePasswordRegExp, strongPasswordRegExp, swiftRegExp, toNumber, updateQueryParams, useDebounce, useForkRef, useTabIndex, useToggle, useWindowWidth };
|
|
2339
2444
|
//# sourceMappingURL=index.js.map
|