@pinnacle0/web-ui 0.5.41 → 0.5.42
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/package.json +1 -1
- package/util/RecentUsedStorageUtil/index.d.ts +17 -0
- package/util/RecentUsedStorageUtil/index.js +35 -0
- package/util/RecentUsedStorageUtil/index.js.map +1 -0
- package/util/RecentUsedStorageUtil/pushToList.d.ts +1 -0
- package/util/RecentUsedStorageUtil/pushToList.js +44 -0
- package/util/RecentUsedStorageUtil/pushToList.js.map +1 -0
package/package.json
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In mobile Safari, the user may turn on "Block All Cookies".
|
|
3
|
+
* In such situation, accessing to localStorage will throw error.
|
|
4
|
+
*/
|
|
5
|
+
type ListItemType = string | number | boolean;
|
|
6
|
+
declare function get<T extends ListItemType>(key: string, validator?: T[]): T[];
|
|
7
|
+
interface Option {
|
|
8
|
+
maxSize: number;
|
|
9
|
+
actionOnDuplicate: "keep" | "reorder";
|
|
10
|
+
actionOnInsert: "start" | "end";
|
|
11
|
+
}
|
|
12
|
+
declare function put<T extends ListItemType>(key: string, value: T, option?: Partial<Option>): void;
|
|
13
|
+
export declare const RecentUsedStorageUtil: Readonly<{
|
|
14
|
+
get: typeof get;
|
|
15
|
+
put: typeof put;
|
|
16
|
+
}>;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { pushToList } from "./pushToList";
|
|
2
|
+
function get(key, validator) {
|
|
3
|
+
try {
|
|
4
|
+
var rawData = localStorage.getItem(key);
|
|
5
|
+
if (rawData) {
|
|
6
|
+
var parsedList = JSON.parse(rawData);
|
|
7
|
+
if (Array.isArray(parsedList)) {
|
|
8
|
+
return parsedList.filter(function (_) { return !validator || validator.includes(_); });
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function put(key, value, option) {
|
|
18
|
+
if (option === void 0) { option = {}; }
|
|
19
|
+
try {
|
|
20
|
+
var maxSize = option.maxSize || 5;
|
|
21
|
+
var actionOnDuplicate = option.actionOnDuplicate || "reorder";
|
|
22
|
+
var actionOnInsert = option.actionOnInsert || "end";
|
|
23
|
+
var list = get(key);
|
|
24
|
+
var newList = pushToList(list, value, maxSize, actionOnDuplicate, actionOnInsert);
|
|
25
|
+
localStorage.setItem(key, JSON.stringify(newList));
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
// Do nothing
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export var RecentUsedStorageUtil = Object.freeze({
|
|
32
|
+
get: get,
|
|
33
|
+
put: put,
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/RecentUsedStorageUtil/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAQxC,SAAS,GAAG,CAAyB,GAAW,EAAE,SAAe;IAC7D,IAAI,CAAC;QACD,IAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACV,IAAM,UAAU,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAQ,UAAkB,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAnC,CAAmC,CAAC,CAAC;YAChF,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAQD,SAAS,GAAG,CAAyB,GAAW,EAAE,KAAQ,EAAE,MAA4B;IAA5B,uBAAA,EAAA,WAA4B;IACpF,IAAI,CAAC;QACD,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC;QAChE,IAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QACtD,IAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACpF,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,aAAa;IACjB,CAAC;AACL,CAAC;AAED,MAAM,CAAC,IAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,GAAG,KAAA;IACH,GAAG,KAAA;CACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function pushToList<T>(list: T[], newItem: T, maxSize: number, actionOnDuplicate: "keep" | "reorder", actionOnInsert: "start" | "end"): T[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
+
if (ar || !(i in from)) {
|
|
20
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
+
ar[i] = from[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
+
};
|
|
26
|
+
export function pushToList(list, newItem, maxSize, actionOnDuplicate, actionOnInsert) {
|
|
27
|
+
var newList = __spreadArray([], __read(list), false);
|
|
28
|
+
var existIndex = newList.indexOf(newItem);
|
|
29
|
+
if (existIndex >= 0) {
|
|
30
|
+
if (actionOnDuplicate === "reorder") {
|
|
31
|
+
newList.splice(existIndex, 1);
|
|
32
|
+
actionOnInsert === "end" ? newList.push(newItem) : newList.splice(0, 0, newItem);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
actionOnInsert === "end" ? newList.push(newItem) : newList.splice(0, 0, newItem);
|
|
37
|
+
if (newList.length > maxSize) {
|
|
38
|
+
var insertPositionIndex = actionOnInsert === "end" ? 0 : newList.length - 1;
|
|
39
|
+
newList.splice(insertPositionIndex, list.length - maxSize);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return newList;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=pushToList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushToList.js","sourceRoot":"","sources":["../../../src/util/RecentUsedStorageUtil/pushToList.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,UAAU,UAAU,CAAI,IAAS,EAAE,OAAU,EAAE,OAAe,EAAE,iBAAqC,EAAE,cAA+B;IACxI,IAAM,OAAO,4BAAO,IAAI,SAAC,CAAC;IAC1B,IAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC9B,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACjF,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YAC3B,IAAM,mBAAmB,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9E,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
|