@fctc/interface-logic 4.2.7 → 4.2.9
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/environment.d.mts +1 -0
- package/dist/environment.d.ts +1 -0
- package/dist/hooks.d.mts +4 -1
- package/dist/hooks.d.ts +4 -1
- package/dist/hooks.js +385 -5
- package/dist/hooks.mjs +383 -5
- package/dist/import-snapshot-Ds0gqFFm.d.mts +3 -0
- package/dist/import-snapshot-Ds0gqFFm.d.ts +3 -0
- package/dist/provider.d.mts +4 -1
- package/dist/provider.d.ts +4 -1
- package/dist/provider.js +387 -7
- package/dist/provider.mjs +386 -7
- package/dist/services.d.mts +8 -1
- package/dist/services.d.ts +8 -1
- package/dist/services.js +378 -5
- package/dist/services.mjs +376 -5
- package/dist/store.js +2 -1
- package/dist/store.mjs +2 -1
- package/package.json +91 -90
package/dist/services.js
CHANGED
|
@@ -35,6 +35,7 @@ __export(services_exports, {
|
|
|
35
35
|
useCompanyService: () => useCompanyService,
|
|
36
36
|
useDashboardService: () => useDashboardService,
|
|
37
37
|
useExcelService: () => useExcelService,
|
|
38
|
+
useFileSystemService: () => useFileSystemService,
|
|
38
39
|
useFormService: () => useFormService,
|
|
39
40
|
useKanbanService: () => useKanbanService,
|
|
40
41
|
useModelService: () => useModelService,
|
|
@@ -1652,9 +1653,9 @@ function applyBinaryOp(ast, context) {
|
|
|
1652
1653
|
var DICT = {
|
|
1653
1654
|
get(...args) {
|
|
1654
1655
|
const { key, defValue } = parseArgs(args, ["key", "defValue"]);
|
|
1655
|
-
const
|
|
1656
|
-
if (key in
|
|
1657
|
-
return
|
|
1656
|
+
const self2 = this;
|
|
1657
|
+
if (key in self2) {
|
|
1658
|
+
return self2[key];
|
|
1658
1659
|
} else if (defValue !== void 0) {
|
|
1659
1660
|
return defValue;
|
|
1660
1661
|
}
|
|
@@ -2275,7 +2276,8 @@ var initialState2 = {
|
|
|
2275
2276
|
allowed_company_ids: [],
|
|
2276
2277
|
lang: "vi_VN",
|
|
2277
2278
|
tz: "Asia/Saigon"
|
|
2278
|
-
}
|
|
2279
|
+
},
|
|
2280
|
+
isLocalMode: false
|
|
2279
2281
|
};
|
|
2280
2282
|
var envSlice = (0, import_toolkit2.createSlice)({
|
|
2281
2283
|
name: "env",
|
|
@@ -3905,7 +3907,227 @@ var handleClosingSessionService = (env) => {
|
|
|
3905
3907
|
|
|
3906
3908
|
// src/services/pos-service/load-data-pos-session.ts
|
|
3907
3909
|
var import_react26 = require("react");
|
|
3910
|
+
|
|
3911
|
+
// src/services/filesystem-service/file-service.ts
|
|
3912
|
+
var import_filesystem = require("@capacitor/filesystem");
|
|
3913
|
+
var fileService = {
|
|
3914
|
+
async read(path) {
|
|
3915
|
+
try {
|
|
3916
|
+
const res = await import_filesystem.Filesystem.readFile({
|
|
3917
|
+
path,
|
|
3918
|
+
directory: import_filesystem.Directory.Data,
|
|
3919
|
+
encoding: import_filesystem.Encoding.UTF8
|
|
3920
|
+
});
|
|
3921
|
+
if (typeof res.data === "string") return res.data;
|
|
3922
|
+
if (res.data instanceof Blob) return await res.data.text();
|
|
3923
|
+
return null;
|
|
3924
|
+
} catch {
|
|
3925
|
+
return null;
|
|
3926
|
+
}
|
|
3927
|
+
},
|
|
3928
|
+
async write(path, data) {
|
|
3929
|
+
await import_filesystem.Filesystem.writeFile({
|
|
3930
|
+
path,
|
|
3931
|
+
data,
|
|
3932
|
+
directory: import_filesystem.Directory.Data,
|
|
3933
|
+
encoding: import_filesystem.Encoding.UTF8,
|
|
3934
|
+
recursive: true
|
|
3935
|
+
});
|
|
3936
|
+
},
|
|
3937
|
+
async writeAtomic(path, data) {
|
|
3938
|
+
const tempPath = path + ".tmp";
|
|
3939
|
+
await import_filesystem.Filesystem.writeFile({
|
|
3940
|
+
path: tempPath,
|
|
3941
|
+
data,
|
|
3942
|
+
directory: import_filesystem.Directory.Data,
|
|
3943
|
+
encoding: import_filesystem.Encoding.UTF8,
|
|
3944
|
+
recursive: true
|
|
3945
|
+
});
|
|
3946
|
+
try {
|
|
3947
|
+
await import_filesystem.Filesystem.deleteFile({
|
|
3948
|
+
path,
|
|
3949
|
+
directory: import_filesystem.Directory.Data
|
|
3950
|
+
});
|
|
3951
|
+
} catch {
|
|
3952
|
+
}
|
|
3953
|
+
await import_filesystem.Filesystem.rename({
|
|
3954
|
+
from: tempPath,
|
|
3955
|
+
to: path,
|
|
3956
|
+
directory: import_filesystem.Directory.Data
|
|
3957
|
+
});
|
|
3958
|
+
},
|
|
3959
|
+
async delete(path) {
|
|
3960
|
+
try {
|
|
3961
|
+
await import_filesystem.Filesystem.deleteFile({
|
|
3962
|
+
path,
|
|
3963
|
+
directory: import_filesystem.Directory.Data
|
|
3964
|
+
});
|
|
3965
|
+
} catch {
|
|
3966
|
+
}
|
|
3967
|
+
},
|
|
3968
|
+
async exists(path) {
|
|
3969
|
+
try {
|
|
3970
|
+
await import_filesystem.Filesystem.stat({
|
|
3971
|
+
path,
|
|
3972
|
+
directory: import_filesystem.Directory.Data
|
|
3973
|
+
});
|
|
3974
|
+
return true;
|
|
3975
|
+
} catch {
|
|
3976
|
+
return false;
|
|
3977
|
+
}
|
|
3978
|
+
},
|
|
3979
|
+
async mkdir(path) {
|
|
3980
|
+
try {
|
|
3981
|
+
await import_filesystem.Filesystem.mkdir({
|
|
3982
|
+
path,
|
|
3983
|
+
directory: import_filesystem.Directory.Data,
|
|
3984
|
+
recursive: true
|
|
3985
|
+
});
|
|
3986
|
+
} catch (e) {
|
|
3987
|
+
if (!String(e?.message).includes("Exists")) {
|
|
3988
|
+
throw e;
|
|
3989
|
+
}
|
|
3990
|
+
}
|
|
3991
|
+
},
|
|
3992
|
+
async list(path) {
|
|
3993
|
+
return import_filesystem.Filesystem.readdir({
|
|
3994
|
+
path,
|
|
3995
|
+
directory: import_filesystem.Directory.Data
|
|
3996
|
+
});
|
|
3997
|
+
},
|
|
3998
|
+
async getUri(path) {
|
|
3999
|
+
return import_filesystem.Filesystem.getUri({
|
|
4000
|
+
path,
|
|
4001
|
+
directory: import_filesystem.Directory.Data
|
|
4002
|
+
});
|
|
4003
|
+
}
|
|
4004
|
+
};
|
|
4005
|
+
|
|
4006
|
+
// src/services/filesystem-service/json-worker.ts
|
|
4007
|
+
var import_meta = {};
|
|
4008
|
+
self.addEventListener("message", async (ev) => {
|
|
4009
|
+
const { id, cmd, payload } = ev.data;
|
|
4010
|
+
try {
|
|
4011
|
+
if (cmd === "parse") {
|
|
4012
|
+
const parsed = JSON.parse(payload);
|
|
4013
|
+
self.postMessage({ id, ok: true, result: parsed });
|
|
4014
|
+
} else if (cmd === "stringify") {
|
|
4015
|
+
const str = JSON.stringify(payload);
|
|
4016
|
+
self.postMessage({ id, ok: true, result: str });
|
|
4017
|
+
}
|
|
4018
|
+
} catch (err) {
|
|
4019
|
+
self.postMessage({ id, ok: false, error: err?.message || String(err) });
|
|
4020
|
+
}
|
|
4021
|
+
});
|
|
4022
|
+
function spawnParseWorker(raw) {
|
|
4023
|
+
return new Promise((resolve, reject) => {
|
|
4024
|
+
const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
|
|
4025
|
+
type: "module"
|
|
4026
|
+
});
|
|
4027
|
+
const id = Math.random().toString(36).slice(2);
|
|
4028
|
+
worker.onmessage = (ev) => {
|
|
4029
|
+
const { ok, result, error } = ev.data;
|
|
4030
|
+
if (ok) {
|
|
4031
|
+
resolve(result);
|
|
4032
|
+
} else {
|
|
4033
|
+
reject(new Error(error));
|
|
4034
|
+
}
|
|
4035
|
+
worker.terminate();
|
|
4036
|
+
};
|
|
4037
|
+
worker.postMessage({ id, cmd: "parse", payload: raw });
|
|
4038
|
+
});
|
|
4039
|
+
}
|
|
4040
|
+
function spawnStringifyWorker(obj) {
|
|
4041
|
+
return new Promise((resolve, reject) => {
|
|
4042
|
+
const worker = new Worker(new URL("./json-worker.ts", import_meta.url), {
|
|
4043
|
+
type: "module"
|
|
4044
|
+
});
|
|
4045
|
+
worker.onmessage = (ev) => {
|
|
4046
|
+
const { ok, result, error } = ev.data;
|
|
4047
|
+
if (ok) resolve(result);
|
|
4048
|
+
else reject(new Error(error));
|
|
4049
|
+
worker.terminate();
|
|
4050
|
+
};
|
|
4051
|
+
worker.postMessage({ cmd: "stringify", payload: obj });
|
|
4052
|
+
});
|
|
4053
|
+
}
|
|
4054
|
+
|
|
4055
|
+
// src/services/filesystem-service/memory-cache.ts
|
|
4056
|
+
var MemoryCache = class {
|
|
4057
|
+
map = /* @__PURE__ */ new Map();
|
|
4058
|
+
get(k) {
|
|
4059
|
+
const e = this.map.get(k);
|
|
4060
|
+
if (!e) return null;
|
|
4061
|
+
if (e.ttl && Date.now() - e.t > e.ttl) {
|
|
4062
|
+
this.map.delete(k);
|
|
4063
|
+
return null;
|
|
4064
|
+
}
|
|
4065
|
+
return e.value;
|
|
4066
|
+
}
|
|
4067
|
+
set(k, v, ttl = 5 * 60 * 1e3) {
|
|
4068
|
+
this.map.set(k, { value: v, t: Date.now(), ttl });
|
|
4069
|
+
}
|
|
4070
|
+
del(k) {
|
|
4071
|
+
this.map.delete(k);
|
|
4072
|
+
}
|
|
4073
|
+
clear() {
|
|
4074
|
+
this.map.clear();
|
|
4075
|
+
}
|
|
4076
|
+
};
|
|
4077
|
+
var memoryCache = new MemoryCache();
|
|
4078
|
+
|
|
4079
|
+
// src/services/filesystem-service/model-loader.ts
|
|
4080
|
+
var MODELS_DIR = "pos/models";
|
|
4081
|
+
var MODELS_META_DIR = "pos/models_meta";
|
|
4082
|
+
async function loadData(includeMeta = true) {
|
|
4083
|
+
const exists = await fileService.exists(MODELS_DIR);
|
|
4084
|
+
if (!exists) {
|
|
4085
|
+
console.warn("[loadData] MODELS_DIR not exists:", MODELS_DIR);
|
|
4086
|
+
return {};
|
|
4087
|
+
}
|
|
4088
|
+
let listResult;
|
|
4089
|
+
try {
|
|
4090
|
+
listResult = await fileService.list(MODELS_DIR);
|
|
4091
|
+
} catch (e) {
|
|
4092
|
+
console.error("[loadData] list failed:", e);
|
|
4093
|
+
return {};
|
|
4094
|
+
}
|
|
4095
|
+
if (!listResult || !Array.isArray(listResult.files)) {
|
|
4096
|
+
return {};
|
|
4097
|
+
}
|
|
4098
|
+
const result = {};
|
|
4099
|
+
for (const file of listResult.files) {
|
|
4100
|
+
if (file.type !== "file") continue;
|
|
4101
|
+
if (!file.name.endsWith(".json")) continue;
|
|
4102
|
+
const modelName = file.name.replace(/\.json$/, "");
|
|
4103
|
+
const dataPath = `${MODELS_DIR}/${file.name}`;
|
|
4104
|
+
const metaPath = `${MODELS_META_DIR}/${encodeURIComponent(
|
|
4105
|
+
modelName
|
|
4106
|
+
)}.meta.json`;
|
|
4107
|
+
const rawData = await fileService.read(dataPath);
|
|
4108
|
+
if (!rawData) continue;
|
|
4109
|
+
const parsedData = await spawnParseWorker(rawData);
|
|
4110
|
+
const data = Array.isArray(parsedData) ? parsedData : [];
|
|
4111
|
+
if (!includeMeta) {
|
|
4112
|
+
result[modelName] = { data };
|
|
4113
|
+
continue;
|
|
4114
|
+
}
|
|
4115
|
+
const rawMeta = await fileService.read(metaPath);
|
|
4116
|
+
let fields = [];
|
|
4117
|
+
let relations = {};
|
|
4118
|
+
if (rawMeta) {
|
|
4119
|
+
const parsedMeta = await spawnParseWorker(rawMeta);
|
|
4120
|
+
fields = parsedMeta?.fields ?? [];
|
|
4121
|
+
relations = parsedMeta?.relations ?? {};
|
|
4122
|
+
}
|
|
4123
|
+
result[modelName] = { data, fields, relations };
|
|
4124
|
+
}
|
|
4125
|
+
return result;
|
|
4126
|
+
}
|
|
4127
|
+
|
|
4128
|
+
// src/services/pos-service/load-data-pos-session.ts
|
|
3908
4129
|
var loadDataPosSessionService = (env) => {
|
|
4130
|
+
const isLocalMode = env?.isLocalMode;
|
|
3909
4131
|
const loadDataPosSession = (0, import_react26.useCallback)(
|
|
3910
4132
|
({
|
|
3911
4133
|
model,
|
|
@@ -3916,6 +4138,14 @@ var loadDataPosSessionService = (env) => {
|
|
|
3916
4138
|
modelsToLoad = [],
|
|
3917
4139
|
searchParams
|
|
3918
4140
|
}) => {
|
|
4141
|
+
console.log("isLocalMode", isLocalMode);
|
|
4142
|
+
if (isLocalMode) {
|
|
4143
|
+
return loadData().then((localDb) => ({
|
|
4144
|
+
data: {
|
|
4145
|
+
data: localDb
|
|
4146
|
+
}
|
|
4147
|
+
}));
|
|
4148
|
+
}
|
|
3919
4149
|
const jsonData = {
|
|
3920
4150
|
model,
|
|
3921
4151
|
method: "load_data" /* LOAD_DATA */,
|
|
@@ -3942,7 +4172,7 @@ var loadDataPosSessionService = (env) => {
|
|
|
3942
4172
|
service
|
|
3943
4173
|
);
|
|
3944
4174
|
},
|
|
3945
|
-
[env]
|
|
4175
|
+
[env, isLocalMode]
|
|
3946
4176
|
);
|
|
3947
4177
|
return {
|
|
3948
4178
|
loadDataPosSession
|
|
@@ -4359,6 +4589,9 @@ var import_react_query111 = require("@tanstack/react-query");
|
|
|
4359
4589
|
// src/hooks/pos/use-update-order-status.ts
|
|
4360
4590
|
var import_react_query112 = require("@tanstack/react-query");
|
|
4361
4591
|
|
|
4592
|
+
// src/hooks/pos/use-init-snapshot.ts
|
|
4593
|
+
var import_react_query113 = require("@tanstack/react-query");
|
|
4594
|
+
|
|
4362
4595
|
// src/provider/service-provider.tsx
|
|
4363
4596
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
4364
4597
|
var ServiceContext = (0, import_react35.createContext)(null);
|
|
@@ -6521,6 +6754,145 @@ function useDashboardService() {
|
|
|
6521
6754
|
);
|
|
6522
6755
|
return { readGroup, getDataChart };
|
|
6523
6756
|
}
|
|
6757
|
+
|
|
6758
|
+
// src/services/filesystem-service/manifest.ts
|
|
6759
|
+
var MANIFEST_PATH = "pos/manifest.json";
|
|
6760
|
+
var MANIFEST_BAK_PATH = "pos/manifest.bak.json";
|
|
6761
|
+
async function writeManifest(manifest) {
|
|
6762
|
+
const oldRaw = await fileService.read(MANIFEST_PATH);
|
|
6763
|
+
if (oldRaw !== null) {
|
|
6764
|
+
await fileService.writeAtomic(MANIFEST_BAK_PATH, oldRaw);
|
|
6765
|
+
}
|
|
6766
|
+
await fileService.writeAtomic(MANIFEST_PATH, JSON.stringify(manifest));
|
|
6767
|
+
try {
|
|
6768
|
+
await fileService.delete(MANIFEST_BAK_PATH);
|
|
6769
|
+
} catch {
|
|
6770
|
+
}
|
|
6771
|
+
}
|
|
6772
|
+
|
|
6773
|
+
// src/services/filesystem-service/import-snapshot.ts
|
|
6774
|
+
var DATA_DIR = "pos";
|
|
6775
|
+
var MODELS_DIR2 = `${DATA_DIR}/models`;
|
|
6776
|
+
var MODELS_META_DIR2 = `${DATA_DIR}/models_meta`;
|
|
6777
|
+
var importSnapshot = async ({ data, onProgress }) => {
|
|
6778
|
+
onProgress?.(1, "Parsing snapshot");
|
|
6779
|
+
const parsed = await spawnParseWorker(data);
|
|
6780
|
+
const modelNames = Object.keys(parsed);
|
|
6781
|
+
const total = modelNames.length;
|
|
6782
|
+
const manifest = { version: (/* @__PURE__ */ new Date()).toISOString(), models: {} };
|
|
6783
|
+
const TMP_PREFIX = `pos/data/tmp_import_${Date.now()}`;
|
|
6784
|
+
await fileService.writeAtomic(`${TMP_PREFIX}/.marker`, "1");
|
|
6785
|
+
let i = 0;
|
|
6786
|
+
for (const model of modelNames) {
|
|
6787
|
+
i++;
|
|
6788
|
+
onProgress?.(
|
|
6789
|
+
Math.round(i / total * 100),
|
|
6790
|
+
`Processing ${model} (${i}/${total})`
|
|
6791
|
+
);
|
|
6792
|
+
const block = parsed[model];
|
|
6793
|
+
const dataPart = block?.data ?? block ?? [];
|
|
6794
|
+
const fields = block?.fields ?? [];
|
|
6795
|
+
const relations = block?.relations ?? {};
|
|
6796
|
+
const serialized = await spawnStringifyWorker(dataPart);
|
|
6797
|
+
const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
|
|
6798
|
+
await fileService.writeAtomic(tmpModelPath, serialized);
|
|
6799
|
+
const meta = {
|
|
6800
|
+
fields,
|
|
6801
|
+
relations,
|
|
6802
|
+
count: Array.isArray(dataPart) ? dataPart.length : 0,
|
|
6803
|
+
writtenAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
6804
|
+
};
|
|
6805
|
+
const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
|
|
6806
|
+
await fileService.writeAtomic(tmpMetaPath, JSON.stringify(meta));
|
|
6807
|
+
manifest.models[model] = {
|
|
6808
|
+
file: `${MODELS_DIR2}/${encodeURIComponent(model)}.json`,
|
|
6809
|
+
metaFile: `${MODELS_META_DIR2}/${encodeURIComponent(model)}.meta.json`,
|
|
6810
|
+
count: meta.count,
|
|
6811
|
+
updatedAt: meta.writtenAt
|
|
6812
|
+
};
|
|
6813
|
+
}
|
|
6814
|
+
onProgress?.(95, "Committing import (moving files)");
|
|
6815
|
+
for (const model of modelNames) {
|
|
6816
|
+
const tmpModelPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.json`;
|
|
6817
|
+
const finalModelPath = `${MODELS_DIR2}/${encodeURIComponent(model)}.json`;
|
|
6818
|
+
const tmpMetaPath = `${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`;
|
|
6819
|
+
const finalMetaPath = `${MODELS_META_DIR2}/${encodeURIComponent(
|
|
6820
|
+
model
|
|
6821
|
+
)}.meta.json`;
|
|
6822
|
+
const tmpRaw = await fileService.read(tmpModelPath);
|
|
6823
|
+
if (tmpRaw !== null) await fileService.writeAtomic(finalModelPath, tmpRaw);
|
|
6824
|
+
const tmpMetaRaw = await fileService.read(tmpMetaPath);
|
|
6825
|
+
if (tmpMetaRaw !== null)
|
|
6826
|
+
await fileService.writeAtomic(finalMetaPath, tmpMetaRaw);
|
|
6827
|
+
onProgress?.(
|
|
6828
|
+
95 + Math.round(
|
|
6829
|
+
(Object.keys(manifest.models).indexOf(model) + 1) / modelNames.length * 5
|
|
6830
|
+
),
|
|
6831
|
+
`Committed ${model}`
|
|
6832
|
+
);
|
|
6833
|
+
}
|
|
6834
|
+
await writeManifest(manifest);
|
|
6835
|
+
try {
|
|
6836
|
+
for (const model of modelNames) {
|
|
6837
|
+
await fileService.delete(
|
|
6838
|
+
`${TMP_PREFIX}/${encodeURIComponent(model)}.json`
|
|
6839
|
+
);
|
|
6840
|
+
await fileService.delete(
|
|
6841
|
+
`${TMP_PREFIX}/${encodeURIComponent(model)}.meta.json`
|
|
6842
|
+
);
|
|
6843
|
+
}
|
|
6844
|
+
await fileService.delete(`${TMP_PREFIX}/.marker`);
|
|
6845
|
+
} catch (e) {
|
|
6846
|
+
console.log("Failed to cleanup tmp import files:", e);
|
|
6847
|
+
}
|
|
6848
|
+
onProgress?.(100, "Import complete");
|
|
6849
|
+
return manifest;
|
|
6850
|
+
};
|
|
6851
|
+
var import_snapshot_default = importSnapshot;
|
|
6852
|
+
|
|
6853
|
+
// src/services/filesystem-service/init-snapshot.ts
|
|
6854
|
+
var isSnapshotReady = async () => {
|
|
6855
|
+
try {
|
|
6856
|
+
const raw = await fileService.read("pos/manifest.json");
|
|
6857
|
+
if (!raw) return false;
|
|
6858
|
+
const manifest = JSON.parse(raw);
|
|
6859
|
+
if (!manifest.models || typeof manifest.models !== "object") {
|
|
6860
|
+
return false;
|
|
6861
|
+
}
|
|
6862
|
+
const modelEntries = Object.values(manifest.models);
|
|
6863
|
+
if (modelEntries.length === 0) return false;
|
|
6864
|
+
const firstModel = modelEntries[0];
|
|
6865
|
+
if (!firstModel.file) return false;
|
|
6866
|
+
const modelExists = await fileService.exists(firstModel.file);
|
|
6867
|
+
return modelExists;
|
|
6868
|
+
} catch {
|
|
6869
|
+
return false;
|
|
6870
|
+
}
|
|
6871
|
+
};
|
|
6872
|
+
async function initSnapshot(onProgress) {
|
|
6873
|
+
const ready = await isSnapshotReady();
|
|
6874
|
+
if (ready) {
|
|
6875
|
+
console.log("skip initialization.");
|
|
6876
|
+
return;
|
|
6877
|
+
}
|
|
6878
|
+
console.log("initializing from data.json...");
|
|
6879
|
+
const jsonData = await fetch("/data.json").then((r) => r.text());
|
|
6880
|
+
if (!jsonData) {
|
|
6881
|
+
console.error("cannot load data.json");
|
|
6882
|
+
return;
|
|
6883
|
+
}
|
|
6884
|
+
await import_snapshot_default({
|
|
6885
|
+
data: jsonData,
|
|
6886
|
+
onProgress
|
|
6887
|
+
});
|
|
6888
|
+
}
|
|
6889
|
+
|
|
6890
|
+
// src/services/filesystem-service/index.ts
|
|
6891
|
+
var useFileSystemService = () => {
|
|
6892
|
+
return {
|
|
6893
|
+
initSnapshot
|
|
6894
|
+
};
|
|
6895
|
+
};
|
|
6524
6896
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6525
6897
|
0 && (module.exports = {
|
|
6526
6898
|
useActionService,
|
|
@@ -6528,6 +6900,7 @@ function useDashboardService() {
|
|
|
6528
6900
|
useCompanyService,
|
|
6529
6901
|
useDashboardService,
|
|
6530
6902
|
useExcelService,
|
|
6903
|
+
useFileSystemService,
|
|
6531
6904
|
useFormService,
|
|
6532
6905
|
useKanbanService,
|
|
6533
6906
|
useModelService,
|