@xyo-network/react-app-settings 2.64.0-rc.6 → 2.64.0
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/browser/WebAppNavigationType.cjs +19 -0
- package/dist/browser/WebAppNavigationType.cjs.map +1 -0
- package/dist/browser/WebAppNavigationType.d.cts +2 -0
- package/dist/browser/WebAppNavigationType.d.cts.map +1 -0
- package/dist/browser/components/DarkModeIconButton.cjs +62 -0
- package/dist/browser/components/DarkModeIconButton.cjs.map +1 -0
- package/dist/browser/components/DarkModeIconButton.d.cts +4 -0
- package/dist/browser/components/DarkModeIconButton.d.cts.map +1 -0
- package/dist/browser/components/Developer.cjs +56 -0
- package/dist/browser/components/Developer.cjs.map +1 -0
- package/dist/browser/components/Developer.d.cts +5 -0
- package/dist/browser/components/Developer.d.cts.map +1 -0
- package/dist/browser/components/index.cjs +71 -0
- package/dist/browser/components/index.cjs.map +1 -0
- package/dist/browser/components/index.d.cts +3 -0
- package/dist/browser/components/index.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/Context.cjs +42 -0
- package/dist/browser/contexts/AppSettings/Context.cjs.map +1 -0
- package/dist/browser/contexts/AppSettings/Context.d.cts +18 -0
- package/dist/browser/contexts/AppSettings/Context.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/Provider.cjs +226 -0
- package/dist/browser/contexts/AppSettings/Provider.cjs.map +1 -0
- package/dist/browser/contexts/AppSettings/Provider.d.cts +9 -0
- package/dist/browser/contexts/AppSettings/Provider.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/Slug.cjs +35 -0
- package/dist/{node/contexts/AppSettings/Slug.mjs.map → browser/contexts/AppSettings/Slug.cjs.map} +1 -1
- package/dist/browser/contexts/AppSettings/Slug.d.cts +9 -0
- package/dist/browser/contexts/AppSettings/Slug.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/Storage.cjs +157 -0
- package/dist/browser/contexts/AppSettings/Storage.cjs.map +1 -0
- package/dist/browser/contexts/AppSettings/Storage.d.cts +18 -0
- package/dist/browser/contexts/AppSettings/Storage.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/StorageBase.cjs +100 -0
- package/dist/{node/contexts/AppSettings/StorageBase.mjs.map → browser/contexts/AppSettings/StorageBase.cjs.map} +1 -1
- package/dist/browser/contexts/AppSettings/StorageBase.d.cts +16 -0
- package/dist/browser/contexts/AppSettings/StorageBase.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/appSettingDefault.cjs +36 -0
- package/dist/{node/contexts/AppSettings/appSettingDefault.mjs.map → browser/contexts/AppSettings/appSettingDefault.cjs.map} +1 -1
- package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts +2 -0
- package/dist/browser/contexts/AppSettings/appSettingDefault.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/index.cjs +250 -0
- package/dist/browser/contexts/AppSettings/index.cjs.map +1 -0
- package/dist/browser/contexts/AppSettings/index.d.cts +7 -0
- package/dist/browser/contexts/AppSettings/index.d.cts.map +1 -0
- package/dist/browser/contexts/AppSettings/useAppSettings.cjs +50 -0
- package/dist/browser/contexts/AppSettings/useAppSettings.cjs.map +1 -0
- package/dist/browser/contexts/AppSettings/useAppSettings.d.cts +2 -0
- package/dist/browser/contexts/AppSettings/useAppSettings.d.cts.map +1 -0
- package/dist/browser/contexts/index.cjs +250 -0
- package/dist/browser/contexts/index.cjs.map +1 -0
- package/dist/browser/contexts/index.d.cts +2 -0
- package/dist/browser/contexts/index.d.cts.map +1 -0
- package/dist/browser/index.cjs +272 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.cts +4 -0
- package/dist/browser/index.d.cts.map +1 -0
- package/dist/docs.json +4102 -0
- package/dist/node/WebAppNavigationType.cjs +19 -0
- package/dist/node/WebAppNavigationType.cjs.map +1 -0
- package/dist/node/WebAppNavigationType.d.cts +2 -0
- package/dist/node/WebAppNavigationType.d.cts.map +1 -0
- package/dist/node/WebAppNavigationType.js +0 -16
- package/dist/node/WebAppNavigationType.js.map +1 -1
- package/dist/node/components/DarkModeIconButton.cjs +66 -0
- package/dist/node/components/DarkModeIconButton.cjs.map +1 -0
- package/dist/node/components/DarkModeIconButton.d.cts +4 -0
- package/dist/node/components/DarkModeIconButton.d.cts.map +1 -0
- package/dist/node/components/DarkModeIconButton.js +34 -32
- package/dist/node/components/DarkModeIconButton.js.map +1 -1
- package/dist/node/components/Developer.cjs +60 -0
- package/dist/node/components/Developer.cjs.map +1 -0
- package/dist/node/components/Developer.d.cts +5 -0
- package/dist/node/components/Developer.d.cts.map +1 -0
- package/dist/node/components/Developer.js +27 -27
- package/dist/node/components/Developer.js.map +1 -1
- package/dist/node/components/index.cjs +76 -0
- package/dist/node/components/index.cjs.map +1 -0
- package/dist/node/components/index.d.cts +3 -0
- package/dist/node/components/index.d.cts.map +1 -0
- package/dist/node/components/index.js +46 -23
- package/dist/node/components/index.js.map +1 -1
- package/dist/node/contexts/AppSettings/Context.cjs +46 -0
- package/dist/node/contexts/AppSettings/Context.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/Context.d.cts +18 -0
- package/dist/node/contexts/AppSettings/Context.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/Context.js +18 -28
- package/dist/node/contexts/AppSettings/Context.js.map +1 -1
- package/dist/node/contexts/AppSettings/Provider.cjs +231 -0
- package/dist/node/contexts/AppSettings/Provider.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/Provider.d.cts +9 -0
- package/dist/node/contexts/AppSettings/Provider.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/Provider.js +152 -37
- package/dist/node/contexts/AppSettings/Provider.js.map +1 -1
- package/dist/node/contexts/AppSettings/Slug.cjs +39 -0
- package/dist/node/contexts/AppSettings/Slug.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/Slug.d.cts +9 -0
- package/dist/node/contexts/AppSettings/Slug.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/Slug.js +3 -26
- package/dist/node/contexts/AppSettings/Slug.js.map +1 -1
- package/dist/node/contexts/AppSettings/Storage.cjs +162 -0
- package/dist/node/contexts/AppSettings/Storage.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/Storage.d.cts +18 -0
- package/dist/node/contexts/AppSettings/Storage.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/Storage.js +104 -41
- package/dist/node/contexts/AppSettings/Storage.js.map +1 -1
- package/dist/node/contexts/AppSettings/StorageBase.cjs +105 -0
- package/dist/node/contexts/AppSettings/StorageBase.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/StorageBase.d.cts +16 -0
- package/dist/node/contexts/AppSettings/StorageBase.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/StorageBase.js +19 -41
- package/dist/node/contexts/AppSettings/StorageBase.js.map +1 -1
- package/dist/node/contexts/AppSettings/appSettingDefault.cjs +40 -0
- package/dist/node/contexts/AppSettings/appSettingDefault.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/appSettingDefault.d.cts +2 -0
- package/dist/node/contexts/AppSettings/appSettingDefault.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/appSettingDefault.js +10 -34
- package/dist/node/contexts/AppSettings/appSettingDefault.js.map +1 -1
- package/dist/node/contexts/AppSettings/index.cjs +260 -0
- package/dist/node/contexts/AppSettings/index.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/index.d.cts +7 -0
- package/dist/node/contexts/AppSettings/index.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/index.js +226 -31
- package/dist/node/contexts/AppSettings/index.js.map +1 -1
- package/dist/node/contexts/AppSettings/useAppSettings.cjs +54 -0
- package/dist/node/contexts/AppSettings/useAppSettings.cjs.map +1 -0
- package/dist/node/contexts/AppSettings/useAppSettings.d.cts +2 -0
- package/dist/node/contexts/AppSettings/useAppSettings.d.cts.map +1 -0
- package/dist/node/contexts/AppSettings/useAppSettings.js +25 -29
- package/dist/node/contexts/AppSettings/useAppSettings.js.map +1 -1
- package/dist/node/contexts/index.cjs +260 -0
- package/dist/node/contexts/index.cjs.map +1 -0
- package/dist/node/contexts/index.d.cts +2 -0
- package/dist/node/contexts/index.d.cts.map +1 -0
- package/dist/node/contexts/index.js +226 -21
- package/dist/node/contexts/index.js.map +1 -1
- package/dist/node/index.cjs +284 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +4 -0
- package/dist/node/index.d.cts.map +1 -0
- package/dist/node/index.js +249 -26
- package/dist/node/index.js.map +1 -1
- package/package.json +14 -14
- package/dist/node/WebAppNavigationType.mjs +0 -1
- package/dist/node/WebAppNavigationType.mjs.map +0 -1
- package/dist/node/components/DarkModeIconButton.mjs +0 -15
- package/dist/node/components/DarkModeIconButton.mjs.map +0 -1
- package/dist/node/components/Developer.mjs +0 -9
- package/dist/node/components/Developer.mjs.map +0 -1
- package/dist/node/components/index.mjs +0 -3
- package/dist/node/components/index.mjs.map +0 -1
- package/dist/node/contexts/AppSettings/Context.mjs +0 -7
- package/dist/node/contexts/AppSettings/Context.mjs.map +0 -1
- package/dist/node/contexts/AppSettings/Provider.mjs +0 -67
- package/dist/node/contexts/AppSettings/Provider.mjs.map +0 -1
- package/dist/node/contexts/AppSettings/Slug.mjs +0 -13
- package/dist/node/contexts/AppSettings/Storage.mjs +0 -48
- package/dist/node/contexts/AppSettings/Storage.mjs.map +0 -1
- package/dist/node/contexts/AppSettings/StorageBase.mjs +0 -78
- package/dist/node/contexts/AppSettings/appSettingDefault.mjs +0 -15
- package/dist/node/contexts/AppSettings/index.mjs +0 -7
- package/dist/node/contexts/AppSettings/index.mjs.map +0 -1
- package/dist/node/contexts/AppSettings/useAppSettings.mjs +0 -9
- package/dist/node/contexts/AppSettings/useAppSettings.mjs.map +0 -1
- package/dist/node/contexts/index.mjs +0 -2
- package/dist/node/contexts/index.mjs.map +0 -1
- package/dist/node/index.mjs +0 -4
- package/dist/node/index.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/AppSettings/Slug.ts"],"sourcesContent":["export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,cAAW;AACX,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,yBAAsB;AACtB,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,iBAAc;AANJ,SAAAA;AAAA,GAAA;","names":["AppSettingSlug"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare enum AppSettingSlug {
|
|
2
|
+
DarkMode = "darkmode",
|
|
3
|
+
Developer = "developer",
|
|
4
|
+
NavigationType = "navigationType",
|
|
5
|
+
NavigationCollapsed = "navigationCollapsed",
|
|
6
|
+
SeedPhrase = "seedPhrase",
|
|
7
|
+
MaxAccounts = "maxAccounts"
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=Slug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slug.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Slug.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;IAC3C,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B"}
|
|
@@ -1,26 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var Slug_exports = {};
|
|
20
|
-
__export(Slug_exports, {
|
|
21
|
-
AppSettingSlug: () => AppSettingSlug
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(Slug_exports);
|
|
1
|
+
// src/contexts/AppSettings/Slug.ts
|
|
24
2
|
var AppSettingSlug = /* @__PURE__ */ ((AppSettingSlug2) => {
|
|
25
3
|
AppSettingSlug2["DarkMode"] = "darkmode";
|
|
26
4
|
AppSettingSlug2["Developer"] = "developer";
|
|
@@ -30,8 +8,7 @@ var AppSettingSlug = /* @__PURE__ */ ((AppSettingSlug2) => {
|
|
|
30
8
|
AppSettingSlug2["MaxAccounts"] = "maxAccounts";
|
|
31
9
|
return AppSettingSlug2;
|
|
32
10
|
})(AppSettingSlug || {});
|
|
33
|
-
|
|
34
|
-
0 && (module.exports = {
|
|
11
|
+
export {
|
|
35
12
|
AppSettingSlug
|
|
36
|
-
}
|
|
13
|
+
};
|
|
37
14
|
//# sourceMappingURL=Slug.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/contexts/AppSettings/Slug.ts"],"sourcesContent":["export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/AppSettings/Slug.ts"],"sourcesContent":["export enum AppSettingSlug {\n DarkMode = 'darkmode',\n Developer = 'developer',\n NavigationType = 'navigationType',\n NavigationCollapsed = 'navigationCollapsed',\n SeedPhrase = 'seedPhrase',\n MaxAccounts = 'maxAccounts',\n}\n"],"mappings":";AAAO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,cAAW;AACX,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,oBAAiB;AACjB,EAAAA,gBAAA,yBAAsB;AACtB,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,iBAAc;AANJ,SAAAA;AAAA,GAAA;","names":["AppSettingSlug"]}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/contexts/AppSettings/Storage.ts
|
|
21
|
+
var Storage_exports = {};
|
|
22
|
+
__export(Storage_exports, {
|
|
23
|
+
AppSettingsStorage: () => AppSettingsStorage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(Storage_exports);
|
|
26
|
+
|
|
27
|
+
// src/contexts/AppSettings/appSettingDefault.ts
|
|
28
|
+
var appSettingDefault = () => {
|
|
29
|
+
return {
|
|
30
|
+
["darkmode" /* DarkMode */]: false,
|
|
31
|
+
["developer" /* Developer */]: false,
|
|
32
|
+
["navigationType" /* NavigationType */]: "menu",
|
|
33
|
+
["navigationCollapsed" /* NavigationCollapsed */]: false,
|
|
34
|
+
["seedPhrase" /* SeedPhrase */]: "",
|
|
35
|
+
["maxAccounts" /* MaxAccounts */]: 1
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/contexts/AppSettings/StorageBase.ts
|
|
40
|
+
var import_assert = require("@xylabs/assert");
|
|
41
|
+
var import_react_shared = require("@xyo-network/react-shared");
|
|
42
|
+
var AppSettingsStorageBase = class {
|
|
43
|
+
defaults;
|
|
44
|
+
prefix;
|
|
45
|
+
constructor(prefix = "AppSettings", defaults) {
|
|
46
|
+
this.prefix = prefix;
|
|
47
|
+
this.defaults = defaults ?? {};
|
|
48
|
+
}
|
|
49
|
+
getBoolean(name) {
|
|
50
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
51
|
+
if (!storedValue) {
|
|
52
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "boolean", "Default value is not boolean");
|
|
53
|
+
const defaultValue = this.defaults[name];
|
|
54
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
55
|
+
return defaultValue;
|
|
56
|
+
}
|
|
57
|
+
return storedValue !== "false";
|
|
58
|
+
}
|
|
59
|
+
getNumber(name) {
|
|
60
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
61
|
+
if (!storedValue) {
|
|
62
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "number", "Default value is not a number");
|
|
63
|
+
const defaultValue = this.defaults[name];
|
|
64
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
65
|
+
return defaultValue;
|
|
66
|
+
}
|
|
67
|
+
return parseFloat(storedValue);
|
|
68
|
+
}
|
|
69
|
+
getObject(name) {
|
|
70
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
71
|
+
const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null;
|
|
72
|
+
if (!parsedStoredValue) {
|
|
73
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "object", "Default value is not object");
|
|
74
|
+
return (0, import_assert.assertEx)(this.defaults[name], `Missing Default for ${name}`);
|
|
75
|
+
}
|
|
76
|
+
return parsedStoredValue;
|
|
77
|
+
}
|
|
78
|
+
getString(name) {
|
|
79
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
80
|
+
if (!storedValue) {
|
|
81
|
+
(0, import_react_shared.assertDefinedEx)(typeof this.defaults[name] === "string", "Default value is not string");
|
|
82
|
+
const defaultValue = this.defaults[name];
|
|
83
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
84
|
+
return defaultValue;
|
|
85
|
+
}
|
|
86
|
+
return storedValue;
|
|
87
|
+
}
|
|
88
|
+
getStringArray(name) {
|
|
89
|
+
var _a;
|
|
90
|
+
const storedValue = (_a = localStorage.getItem(`${this.prefix}|${name}`)) == null ? void 0 : _a.split(",");
|
|
91
|
+
if (!storedValue) {
|
|
92
|
+
(0, import_react_shared.assertDefinedEx)(Array.isArray(this.defaults[name]), "Default value is not array");
|
|
93
|
+
const defaultValue = this.defaults[name];
|
|
94
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
95
|
+
return defaultValue;
|
|
96
|
+
}
|
|
97
|
+
return storedValue;
|
|
98
|
+
}
|
|
99
|
+
setBoolean(name, value) {
|
|
100
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
101
|
+
}
|
|
102
|
+
setNumber(name, value) {
|
|
103
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
104
|
+
}
|
|
105
|
+
setObject(name, value) {
|
|
106
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
107
|
+
}
|
|
108
|
+
setString(name, value) {
|
|
109
|
+
localStorage.setItem(`${this.prefix}|${name}`, value);
|
|
110
|
+
}
|
|
111
|
+
setStringArray(name, value) {
|
|
112
|
+
localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// src/contexts/AppSettings/Storage.ts
|
|
117
|
+
var AppSettingsStorage = class extends AppSettingsStorageBase {
|
|
118
|
+
constructor(prefix = "AppSettings", defaults) {
|
|
119
|
+
super(prefix, { ...appSettingDefault(), ...defaults });
|
|
120
|
+
}
|
|
121
|
+
get darkMode() {
|
|
122
|
+
return this.getBoolean("darkmode" /* DarkMode */);
|
|
123
|
+
}
|
|
124
|
+
set darkMode(value) {
|
|
125
|
+
this.setBoolean("darkmode" /* DarkMode */, value);
|
|
126
|
+
}
|
|
127
|
+
get developerMode() {
|
|
128
|
+
return this.getBoolean("developer" /* Developer */);
|
|
129
|
+
}
|
|
130
|
+
set developerMode(value) {
|
|
131
|
+
this.setBoolean("developer" /* Developer */, value);
|
|
132
|
+
}
|
|
133
|
+
get maxAccounts() {
|
|
134
|
+
return this.getNumber("maxAccounts" /* MaxAccounts */);
|
|
135
|
+
}
|
|
136
|
+
set maxAccounts(value) {
|
|
137
|
+
this.setNumber("maxAccounts" /* MaxAccounts */, value);
|
|
138
|
+
}
|
|
139
|
+
get navigationCollapsed() {
|
|
140
|
+
return this.getBoolean("navigationCollapsed" /* NavigationCollapsed */);
|
|
141
|
+
}
|
|
142
|
+
set navigationCollapsed(value) {
|
|
143
|
+
this.setBoolean("navigationCollapsed" /* NavigationCollapsed */, value);
|
|
144
|
+
}
|
|
145
|
+
get navigationType() {
|
|
146
|
+
return this.getString("navigationType" /* NavigationType */);
|
|
147
|
+
}
|
|
148
|
+
set navigationType(value) {
|
|
149
|
+
this.setString("navigationType" /* NavigationType */, value);
|
|
150
|
+
}
|
|
151
|
+
get seedPhrase() {
|
|
152
|
+
return this.getString("seedPhrase" /* SeedPhrase */);
|
|
153
|
+
}
|
|
154
|
+
set seedPhrase(value) {
|
|
155
|
+
this.setString("seedPhrase" /* SeedPhrase */, value);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
159
|
+
0 && (module.exports = {
|
|
160
|
+
AppSettingsStorage
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=Storage.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/AppSettings/Storage.ts","../../../../src/contexts/AppSettings/appSettingDefault.ts","../../../../src/contexts/AppSettings/StorageBase.ts"],"sourcesContent":["import { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\nimport { AppSettingSlug } from './Slug'\nimport { AppSettingsStorageBase } from './StorageBase'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n","import { AppSettingSlug } from './Slug'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n public getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n public getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return parseFloat(storedValue)\n }\n\n public getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')\n return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n public getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n public setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { WebAppNavigationType } from '../../WebAppNavigationType';
|
|
2
|
+
import { AppSettingsStorageBase } from './StorageBase';
|
|
3
|
+
export declare class AppSettingsStorage extends AppSettingsStorageBase {
|
|
4
|
+
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
|
5
|
+
get darkMode(): boolean;
|
|
6
|
+
set darkMode(value: boolean);
|
|
7
|
+
get developerMode(): boolean;
|
|
8
|
+
set developerMode(value: boolean);
|
|
9
|
+
get maxAccounts(): number;
|
|
10
|
+
set maxAccounts(value: number);
|
|
11
|
+
get navigationCollapsed(): boolean;
|
|
12
|
+
set navigationCollapsed(value: boolean);
|
|
13
|
+
get navigationType(): WebAppNavigationType;
|
|
14
|
+
set navigationType(value: WebAppNavigationType);
|
|
15
|
+
get seedPhrase(): string;
|
|
16
|
+
set seedPhrase(value: string);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storage.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/Storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAEtD,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,MAAM,SAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItE,IAAI,QAAQ,IAIQ,OAAO,CAF1B;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,aAAa,IAIQ,OAAO,CAF/B;IAED,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAE/B;IAED,IAAI,WAAW,IAIQ,MAAM,CAF5B;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAE5B;IAED,IAAI,mBAAmB,IAIQ,OAAO,CAFrC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAErC;IAED,IAAI,cAAc,IAIQ,oBAAoB,CAF7C;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAE7C;IAED,IAAI,UAAU,IAIQ,MAAM,CAF3B;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAE3B;CACF"}
|
|
@@ -1,72 +1,135 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
// src/contexts/AppSettings/appSettingDefault.ts
|
|
2
|
+
var appSettingDefault = () => {
|
|
3
|
+
return {
|
|
4
|
+
["darkmode" /* DarkMode */]: false,
|
|
5
|
+
["developer" /* Developer */]: false,
|
|
6
|
+
["navigationType" /* NavigationType */]: "menu",
|
|
7
|
+
["navigationCollapsed" /* NavigationCollapsed */]: false,
|
|
8
|
+
["seedPhrase" /* SeedPhrase */]: "",
|
|
9
|
+
["maxAccounts" /* MaxAccounts */]: 1
|
|
10
|
+
};
|
|
9
11
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
|
|
13
|
+
// src/contexts/AppSettings/StorageBase.ts
|
|
14
|
+
import { assertEx } from "@xylabs/assert";
|
|
15
|
+
import { assertDefinedEx } from "@xyo-network/react-shared";
|
|
16
|
+
var AppSettingsStorageBase = class {
|
|
17
|
+
defaults;
|
|
18
|
+
prefix;
|
|
19
|
+
constructor(prefix = "AppSettings", defaults) {
|
|
20
|
+
this.prefix = prefix;
|
|
21
|
+
this.defaults = defaults ?? {};
|
|
22
|
+
}
|
|
23
|
+
getBoolean(name) {
|
|
24
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
25
|
+
if (!storedValue) {
|
|
26
|
+
assertEx(typeof this.defaults[name] === "boolean", "Default value is not boolean");
|
|
27
|
+
const defaultValue = this.defaults[name];
|
|
28
|
+
assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
29
|
+
return defaultValue;
|
|
30
|
+
}
|
|
31
|
+
return storedValue !== "false";
|
|
32
|
+
}
|
|
33
|
+
getNumber(name) {
|
|
34
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
35
|
+
if (!storedValue) {
|
|
36
|
+
assertEx(typeof this.defaults[name] === "number", "Default value is not a number");
|
|
37
|
+
const defaultValue = this.defaults[name];
|
|
38
|
+
assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
39
|
+
return defaultValue;
|
|
40
|
+
}
|
|
41
|
+
return parseFloat(storedValue);
|
|
42
|
+
}
|
|
43
|
+
getObject(name) {
|
|
44
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
45
|
+
const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null;
|
|
46
|
+
if (!parsedStoredValue) {
|
|
47
|
+
assertEx(typeof this.defaults[name] === "object", "Default value is not object");
|
|
48
|
+
return assertEx(this.defaults[name], `Missing Default for ${name}`);
|
|
49
|
+
}
|
|
50
|
+
return parsedStoredValue;
|
|
51
|
+
}
|
|
52
|
+
getString(name) {
|
|
53
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
54
|
+
if (!storedValue) {
|
|
55
|
+
assertDefinedEx(typeof this.defaults[name] === "string", "Default value is not string");
|
|
56
|
+
const defaultValue = this.defaults[name];
|
|
57
|
+
assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
58
|
+
return defaultValue;
|
|
59
|
+
}
|
|
60
|
+
return storedValue;
|
|
61
|
+
}
|
|
62
|
+
getStringArray(name) {
|
|
63
|
+
var _a;
|
|
64
|
+
const storedValue = (_a = localStorage.getItem(`${this.prefix}|${name}`)) == null ? void 0 : _a.split(",");
|
|
65
|
+
if (!storedValue) {
|
|
66
|
+
assertDefinedEx(Array.isArray(this.defaults[name]), "Default value is not array");
|
|
67
|
+
const defaultValue = this.defaults[name];
|
|
68
|
+
assertEx(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
69
|
+
return defaultValue;
|
|
70
|
+
}
|
|
71
|
+
return storedValue;
|
|
72
|
+
}
|
|
73
|
+
setBoolean(name, value) {
|
|
74
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
75
|
+
}
|
|
76
|
+
setNumber(name, value) {
|
|
77
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
78
|
+
}
|
|
79
|
+
setObject(name, value) {
|
|
80
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
81
|
+
}
|
|
82
|
+
setString(name, value) {
|
|
83
|
+
localStorage.setItem(`${this.prefix}|${name}`, value);
|
|
84
|
+
}
|
|
85
|
+
setStringArray(name, value) {
|
|
86
|
+
localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
|
|
15
87
|
}
|
|
16
|
-
return to;
|
|
17
88
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
AppSettingsStorage: () => AppSettingsStorage
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(Storage_exports);
|
|
24
|
-
var import_appSettingDefault = require("./appSettingDefault");
|
|
25
|
-
var import_Slug = require("./Slug");
|
|
26
|
-
var import_StorageBase = require("./StorageBase");
|
|
27
|
-
class AppSettingsStorage extends import_StorageBase.AppSettingsStorageBase {
|
|
89
|
+
|
|
90
|
+
// src/contexts/AppSettings/Storage.ts
|
|
91
|
+
var AppSettingsStorage = class extends AppSettingsStorageBase {
|
|
28
92
|
constructor(prefix = "AppSettings", defaults) {
|
|
29
|
-
super(prefix, { ...
|
|
93
|
+
super(prefix, { ...appSettingDefault(), ...defaults });
|
|
30
94
|
}
|
|
31
95
|
get darkMode() {
|
|
32
|
-
return this.getBoolean(
|
|
96
|
+
return this.getBoolean("darkmode" /* DarkMode */);
|
|
33
97
|
}
|
|
34
98
|
set darkMode(value) {
|
|
35
|
-
this.setBoolean(
|
|
99
|
+
this.setBoolean("darkmode" /* DarkMode */, value);
|
|
36
100
|
}
|
|
37
101
|
get developerMode() {
|
|
38
|
-
return this.getBoolean(
|
|
102
|
+
return this.getBoolean("developer" /* Developer */);
|
|
39
103
|
}
|
|
40
104
|
set developerMode(value) {
|
|
41
|
-
this.setBoolean(
|
|
105
|
+
this.setBoolean("developer" /* Developer */, value);
|
|
42
106
|
}
|
|
43
107
|
get maxAccounts() {
|
|
44
|
-
return this.getNumber(
|
|
108
|
+
return this.getNumber("maxAccounts" /* MaxAccounts */);
|
|
45
109
|
}
|
|
46
110
|
set maxAccounts(value) {
|
|
47
|
-
this.setNumber(
|
|
111
|
+
this.setNumber("maxAccounts" /* MaxAccounts */, value);
|
|
48
112
|
}
|
|
49
113
|
get navigationCollapsed() {
|
|
50
|
-
return this.getBoolean(
|
|
114
|
+
return this.getBoolean("navigationCollapsed" /* NavigationCollapsed */);
|
|
51
115
|
}
|
|
52
116
|
set navigationCollapsed(value) {
|
|
53
|
-
this.setBoolean(
|
|
117
|
+
this.setBoolean("navigationCollapsed" /* NavigationCollapsed */, value);
|
|
54
118
|
}
|
|
55
119
|
get navigationType() {
|
|
56
|
-
return this.getString(
|
|
120
|
+
return this.getString("navigationType" /* NavigationType */);
|
|
57
121
|
}
|
|
58
122
|
set navigationType(value) {
|
|
59
|
-
this.setString(
|
|
123
|
+
this.setString("navigationType" /* NavigationType */, value);
|
|
60
124
|
}
|
|
61
125
|
get seedPhrase() {
|
|
62
|
-
return this.getString(
|
|
126
|
+
return this.getString("seedPhrase" /* SeedPhrase */);
|
|
63
127
|
}
|
|
64
128
|
set seedPhrase(value) {
|
|
65
|
-
this.setString(
|
|
129
|
+
this.setString("seedPhrase" /* SeedPhrase */, value);
|
|
66
130
|
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
0 && (module.exports = {
|
|
131
|
+
};
|
|
132
|
+
export {
|
|
70
133
|
AppSettingsStorage
|
|
71
|
-
}
|
|
134
|
+
};
|
|
72
135
|
//# sourceMappingURL=Storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/contexts/AppSettings/Storage.ts"],"sourcesContent":["import { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\nimport { AppSettingSlug } from './Slug'\nimport { AppSettingsStorageBase } from './StorageBase'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/AppSettings/appSettingDefault.ts","../../../../src/contexts/AppSettings/StorageBase.ts","../../../../src/contexts/AppSettings/Storage.ts"],"sourcesContent":["import { AppSettingSlug } from './Slug'\n\nexport const appSettingDefault = (): Record<string, unknown> => {\n return {\n [AppSettingSlug.DarkMode]: false,\n [AppSettingSlug.Developer]: false,\n [AppSettingSlug.NavigationType]: 'menu',\n [AppSettingSlug.NavigationCollapsed]: false,\n [AppSettingSlug.SeedPhrase]: '',\n [AppSettingSlug.MaxAccounts]: 1,\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n public getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n public getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return parseFloat(storedValue)\n }\n\n public getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')\n return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n public getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n public setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n","import { WebAppNavigationType } from '../../WebAppNavigationType'\nimport { appSettingDefault } from './appSettingDefault'\nimport { AppSettingSlug } from './Slug'\nimport { AppSettingsStorageBase } from './StorageBase'\n\nexport class AppSettingsStorage extends AppSettingsStorageBase {\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n super(prefix, { ...appSettingDefault(), ...defaults })\n }\n\n get darkMode() {\n return this.getBoolean(AppSettingSlug.DarkMode)\n }\n\n set darkMode(value: boolean) {\n this.setBoolean(AppSettingSlug.DarkMode, value)\n }\n\n get developerMode() {\n return this.getBoolean(AppSettingSlug.Developer)\n }\n\n set developerMode(value: boolean) {\n this.setBoolean(AppSettingSlug.Developer, value)\n }\n\n get maxAccounts() {\n return this.getNumber(AppSettingSlug.MaxAccounts)\n }\n\n set maxAccounts(value: number) {\n this.setNumber(AppSettingSlug.MaxAccounts, value)\n }\n\n get navigationCollapsed() {\n return this.getBoolean(AppSettingSlug.NavigationCollapsed)\n }\n\n set navigationCollapsed(value: boolean) {\n this.setBoolean(AppSettingSlug.NavigationCollapsed, value)\n }\n\n get navigationType() {\n return this.getString(AppSettingSlug.NavigationType) as WebAppNavigationType\n }\n\n set navigationType(value: WebAppNavigationType) {\n this.setString(AppSettingSlug.NavigationType, value)\n }\n\n get seedPhrase() {\n return this.getString(AppSettingSlug.SeedPhrase)\n }\n\n set seedPhrase(value: string) {\n this.setString(AppSettingSlug.SeedPhrase, value)\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/contexts/AppSettings/StorageBase.ts
|
|
21
|
+
var StorageBase_exports = {};
|
|
22
|
+
__export(StorageBase_exports, {
|
|
23
|
+
AppSettingsStorageBase: () => AppSettingsStorageBase
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(StorageBase_exports);
|
|
26
|
+
var import_assert = require("@xylabs/assert");
|
|
27
|
+
var import_react_shared = require("@xyo-network/react-shared");
|
|
28
|
+
var AppSettingsStorageBase = class {
|
|
29
|
+
defaults;
|
|
30
|
+
prefix;
|
|
31
|
+
constructor(prefix = "AppSettings", defaults) {
|
|
32
|
+
this.prefix = prefix;
|
|
33
|
+
this.defaults = defaults ?? {};
|
|
34
|
+
}
|
|
35
|
+
getBoolean(name) {
|
|
36
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
37
|
+
if (!storedValue) {
|
|
38
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "boolean", "Default value is not boolean");
|
|
39
|
+
const defaultValue = this.defaults[name];
|
|
40
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
41
|
+
return defaultValue;
|
|
42
|
+
}
|
|
43
|
+
return storedValue !== "false";
|
|
44
|
+
}
|
|
45
|
+
getNumber(name) {
|
|
46
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
47
|
+
if (!storedValue) {
|
|
48
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "number", "Default value is not a number");
|
|
49
|
+
const defaultValue = this.defaults[name];
|
|
50
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
51
|
+
return defaultValue;
|
|
52
|
+
}
|
|
53
|
+
return parseFloat(storedValue);
|
|
54
|
+
}
|
|
55
|
+
getObject(name) {
|
|
56
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
57
|
+
const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null;
|
|
58
|
+
if (!parsedStoredValue) {
|
|
59
|
+
(0, import_assert.assertEx)(typeof this.defaults[name] === "object", "Default value is not object");
|
|
60
|
+
return (0, import_assert.assertEx)(this.defaults[name], `Missing Default for ${name}`);
|
|
61
|
+
}
|
|
62
|
+
return parsedStoredValue;
|
|
63
|
+
}
|
|
64
|
+
getString(name) {
|
|
65
|
+
const storedValue = localStorage.getItem(`${this.prefix}|${name}`);
|
|
66
|
+
if (!storedValue) {
|
|
67
|
+
(0, import_react_shared.assertDefinedEx)(typeof this.defaults[name] === "string", "Default value is not string");
|
|
68
|
+
const defaultValue = this.defaults[name];
|
|
69
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
70
|
+
return defaultValue;
|
|
71
|
+
}
|
|
72
|
+
return storedValue;
|
|
73
|
+
}
|
|
74
|
+
getStringArray(name) {
|
|
75
|
+
var _a;
|
|
76
|
+
const storedValue = (_a = localStorage.getItem(`${this.prefix}|${name}`)) == null ? void 0 : _a.split(",");
|
|
77
|
+
if (!storedValue) {
|
|
78
|
+
(0, import_react_shared.assertDefinedEx)(Array.isArray(this.defaults[name]), "Default value is not array");
|
|
79
|
+
const defaultValue = this.defaults[name];
|
|
80
|
+
(0, import_assert.assertEx)(defaultValue !== void 0, `Missing Default for ${name}`);
|
|
81
|
+
return defaultValue;
|
|
82
|
+
}
|
|
83
|
+
return storedValue;
|
|
84
|
+
}
|
|
85
|
+
setBoolean(name, value) {
|
|
86
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
87
|
+
}
|
|
88
|
+
setNumber(name, value) {
|
|
89
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
90
|
+
}
|
|
91
|
+
setObject(name, value) {
|
|
92
|
+
localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value));
|
|
93
|
+
}
|
|
94
|
+
setString(name, value) {
|
|
95
|
+
localStorage.setItem(`${this.prefix}|${name}`, value);
|
|
96
|
+
}
|
|
97
|
+
setStringArray(name, value) {
|
|
98
|
+
localStorage.setItem(`${this.prefix}|${name}`, value.join(","));
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
102
|
+
0 && (module.exports = {
|
|
103
|
+
AppSettingsStorageBase
|
|
104
|
+
});
|
|
105
|
+
//# sourceMappingURL=StorageBase.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/contexts/AppSettings/StorageBase.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { assertDefinedEx } from '@xyo-network/react-shared'\n\nexport class AppSettingsStorageBase {\n private defaults: Record<string, unknown>\n private prefix: string\n constructor(prefix = 'AppSettings', defaults?: Record<string, unknown>) {\n this.prefix = prefix\n this.defaults = defaults ?? {}\n }\n\n public getBoolean(name: string): boolean {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'boolean', 'Default value is not boolean')\n const defaultValue = this.defaults[name] as boolean\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue !== 'false'\n }\n\n public getNumber(name: string): number {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertEx(typeof this.defaults[name] === 'number', 'Default value is not a number')\n const defaultValue = this.defaults[name] as number\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return parseFloat(storedValue)\n }\n\n public getObject<T>(name: string): T {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n const parsedStoredValue = storedValue ? JSON.parse(storedValue) : null\n if (!parsedStoredValue) {\n assertEx(typeof this.defaults[name] === 'object', 'Default value is not object')\n return assertEx(this.defaults[name] as T, `Missing Default for ${name}`)\n }\n return parsedStoredValue as T\n }\n\n public getString(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)\n if (!storedValue) {\n assertDefinedEx(typeof this.defaults[name] === 'string', 'Default value is not string')\n const defaultValue = this.defaults[name] as string\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public getStringArray(name: string) {\n const storedValue = localStorage.getItem(`${this.prefix}|${name}`)?.split(',')\n if (!storedValue) {\n assertDefinedEx(Array.isArray(this.defaults[name]), 'Default value is not array')\n const defaultValue = this.defaults[name] as string[]\n assertEx(defaultValue !== undefined, `Missing Default for ${name}`)\n return defaultValue\n }\n return storedValue\n }\n\n public setBoolean(name: string, value: boolean) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setNumber(name: string, value: number) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setObject<T>(name: string, value: T) {\n localStorage.setItem(`${this.prefix}|${name}`, JSON.stringify(value))\n }\n\n public setString(name: string, value: string) {\n localStorage.setItem(`${this.prefix}|${name}`, value)\n }\n\n public setStringArray(name: string, value: string[]) {\n localStorage.setItem(`${this.prefix}|${name}`, value.join(','))\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class AppSettingsStorageBase {
|
|
2
|
+
private defaults;
|
|
3
|
+
private prefix;
|
|
4
|
+
constructor(prefix?: string, defaults?: Record<string, unknown>);
|
|
5
|
+
getBoolean(name: string): boolean;
|
|
6
|
+
getNumber(name: string): number;
|
|
7
|
+
getObject<T>(name: string): T;
|
|
8
|
+
getString(name: string): string;
|
|
9
|
+
getStringArray(name: string): string[];
|
|
10
|
+
setBoolean(name: string, value: boolean): void;
|
|
11
|
+
setNumber(name: string, value: number): void;
|
|
12
|
+
setObject<T>(name: string, value: T): void;
|
|
13
|
+
setString(name: string, value: string): void;
|
|
14
|
+
setStringArray(name: string, value: string[]): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=StorageBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBase.d.ts","sourceRoot":"","sources":["../../../../src/contexts/AppSettings/StorageBase.ts"],"names":[],"mappings":"AAGA,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAQ;gBACV,MAAM,SAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK/D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAWjC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAW/B,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAU7B,SAAS,CAAC,IAAI,EAAE,MAAM;IAWtB,cAAc,CAAC,IAAI,EAAE,MAAM;IAW3B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAIvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAInC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAIrC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CAGpD"}
|