@fde-desktop/fde-core 0.4.8 → 0.4.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/{AccordionChevron-CJXAq5o5.js → AccordionChevron-DxpOyInK.js} +1 -1
- package/dist/AccordionChevron-kn5kSrEc.cjs +1 -0
- package/dist/{ActionIcon-CtVbYlGY.js → ActionIcon-Drh4p6Fv.js} +32 -32
- package/dist/ActionIcon-alk2zZD6.cjs +1 -0
- package/dist/AppEmptyState-BWCUbf-B.cjs +1 -0
- package/dist/AppEmptyState-Bxpit0JV.js +49 -0
- package/dist/AppIcon-BU7a3ZNH.cjs +1 -0
- package/dist/{AppIcon-DCDuaU-t.js → AppIcon-XumS3bIG.js} +4 -4
- package/dist/AppMenuBar-B9U0n1Vv.cjs +1 -0
- package/dist/AppMenuBar-CnIEVjr8.js +2049 -0
- package/dist/{Box-DRm8EabO.js → Box-DSKR_qaa.js} +257 -271
- package/dist/Box-zW6Twge8.cjs +1 -0
- package/dist/Button-DMlnrqyx.cjs +1 -0
- package/dist/{Button-k7SxX1Xl.js → Button-wTOTQKxF.js} +38 -38
- package/dist/CalendarApp-B_e1B1Yn.cjs +1 -0
- package/dist/CalendarApp-C-l9D6nd.cjs +1 -0
- package/dist/CalendarApp-D0ftTCTG.js +1399 -0
- package/dist/{Center-CyryG5zn.js → Center-CmxXB9ql.js} +1 -1
- package/dist/Center-DKUE2pER.cjs +1 -0
- package/dist/CheckIcon-CZhtJD1O.cjs +1 -0
- package/dist/{CheckIcon-C3WjIR2i.js → CheckIcon-N5qBqXQJ.js} +1 -1
- package/dist/CodeServerApp-BOoGwZ7r.cjs +1 -0
- package/dist/CodeServerApp-Be3I5EGg.cjs +1 -0
- package/dist/{CodeServerApp-DY94cy1a.js → CodeServerApp-DW18EZxa.js} +48 -47
- package/dist/{ColorPicker-DvRR-wlQ.js → ColorPicker-BCNqi02x.js} +364 -364
- package/dist/ColorPicker-BrDE7tMO.cjs +1 -0
- package/dist/CreateItemApp-B12M1E_1.cjs +1 -0
- package/dist/{CreateItemApp-CtdH1K1g.js → CreateItemApp-TAAprby3.js} +13 -13
- package/dist/CreateItemApp-ePB6ujNl.cjs +1 -0
- package/dist/DeviceInfoApp-BMF18BGo.cjs +1 -0
- package/dist/DeviceInfoApp-DRy0H3aT.cjs +1 -0
- package/dist/{DeviceInfoApp-C306YvtZ.js → DeviceInfoApp-lgpwkeRR.js} +7 -7
- package/dist/{DownloadProgress-hdupSUBT.js → DownloadProgress-EoyCaD5O.js} +15 -15
- package/dist/DownloadProgress-VNdj22U8.cjs +1 -0
- package/dist/{FileIcon-BCpGMI5U.js → FileIcon-7JaSR3Gn.js} +26 -25
- package/dist/FileIcon-CIXopWLv.cjs +1 -0
- package/dist/{FilePickerApp-DMGuvahM.js → FilePickerApp-DaMgEqKh.js} +115 -115
- package/dist/FilePickerApp-DjmuSFqa.cjs +1 -0
- package/dist/FilesApp-Bp7wfrBZ.cjs +1 -0
- package/dist/FilesApp-BpJJRKhi.cjs +1 -0
- package/dist/{FilesApp-VXrmtt63.js → FilesApp-Cj94QG5o.js} +21 -21
- package/dist/{Group-BzwlMeob.js → Group-CtBJSfCo.js} +1 -1
- package/dist/Group-Dsrf6lEK.cjs +1 -0
- package/dist/{ImageViewerApp-CWiP6zx-.js → ImageViewerApp-BaLP3gkO.js} +18 -17
- package/dist/ImageViewerApp-DlHGeB3S.cjs +1 -0
- package/dist/ImageViewerApp-DoXd_Swu.cjs +1 -0
- package/dist/{ImageViewerMenuBar-BULkh_Ku.js → ImageViewerMenuBar-CabGSi9r.js} +15 -14
- package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +1 -0
- package/dist/ImageViewerMenuBar-_Jr29gii.cjs +1 -0
- package/dist/MenuEditApp-BJjlPTOa.cjs +1 -0
- package/dist/MenuEditApp-BTRppYnD.js +497 -0
- package/dist/MenuEditApp-JPsGT-S3.cjs +1 -0
- package/dist/MenuEditMenuBar-BydGkqMw.cjs +1 -0
- package/dist/MenuEditMenuBar-DptlwVPQ.cjs +1 -0
- package/dist/{MenuEditMenuBar-B94z4Umw.js → MenuEditMenuBar-x1IQrHP2.js} +13 -12
- package/dist/NotesApp-BOcRGO7w.cjs +1 -0
- package/dist/NotesApp-CQe7UfBC.js +364 -0
- package/dist/NotesApp-OL07JXRE.cjs +1 -0
- package/dist/NotesMenuBar-BSI_2Y7p.cjs +1 -0
- package/dist/NotesMenuBar-Df6aW85J.cjs +1 -0
- package/dist/{NotesMenuBar-BB4NkKGf.js → NotesMenuBar-VhpIe68v.js} +10 -9
- package/dist/{Paper-DtUYKmYn.js → Paper-BX_9odR6.js} +3 -3
- package/dist/Paper-D8-BaBx2.cjs +1 -0
- package/dist/PdfApp-CNEbty5v.cjs +1 -0
- package/dist/PdfApp-CVv3ZCaM.cjs +1 -0
- package/dist/PdfApp-DL_R9-Nc.js +39 -0
- package/dist/PdfMenuBar--E6kDyrT.cjs +1 -0
- package/dist/PdfMenuBar-DZCLSOpR.js +39 -0
- package/dist/PdfMenuBar-Dj5cJUkg.cjs +1 -0
- package/dist/SettingsApp-BlmHuAjT.js +1831 -0
- package/dist/SettingsApp-CNvIgf5B.cjs +1 -0
- package/dist/SettingsApp-DWxanNE4.cjs +1 -0
- package/dist/SettingsMenuBar-CBoOBCfx.cjs +1 -0
- package/dist/SettingsMenuBar-DQooFkZN.cjs +1 -0
- package/dist/SettingsMenuBar-YWiJHaxq.js +42 -0
- package/dist/Slider-BUiHxjKO.cjs +1 -0
- package/dist/{Slider-BNO-vDFn.js → Slider-t-NcD60t.js} +148 -147
- package/dist/{Stack-CuDEaP7e.js → Stack-Bp1Ek2Gp.js} +1 -1
- package/dist/Stack-D4jAiRfc.cjs +1 -0
- package/dist/StorybookApp-CDLV_kja.cjs +1 -0
- package/dist/{StorybookApp-WYninkJo.js → StorybookApp-DKwlPCmo.js} +1 -1
- package/dist/TerminalApp-BCB7i1lR.cjs +1 -0
- package/dist/TerminalApp-BYc_gHLe.js +326 -0
- package/dist/TerminalApp-Dviz6aP2.cjs +1 -0
- package/dist/{TerminalMenuBar-iKLydNda.js → TerminalMenuBar-D5tPmgR_.js} +15 -14
- package/dist/TerminalMenuBar-DNshPmCa.cjs +1 -0
- package/dist/TerminalMenuBar-HzMSR7XP.cjs +1 -0
- package/dist/{TextInput-C3qfxxWI.js → TextInput-C-JtGWn1.js} +264 -263
- package/dist/TextInput-CrsmcOip.cjs +1 -0
- package/dist/Tooltip-D5Cd9wtz.cjs +1 -0
- package/dist/Tooltip-DOeIvhrO.js +1142 -0
- package/dist/{UnstyledButton-CI3kyRck.js → UnstyledButton-DGaG-e_G.js} +1 -1
- package/dist/UnstyledButton-DX2pTahr.cjs +1 -0
- package/dist/UploaderApp-C6xA5Rrf2.cjs +1 -0
- package/dist/UploaderApp-DnHIRxB_.cjs +1 -0
- package/dist/{UploaderApp-C9W_yCT-.js → UploaderApp-qBfpukR_.js} +118 -117
- package/dist/VscIcon-CcMdrFoJ.cjs +1 -0
- package/dist/{VscIcon-DueRJVTe.js → VscIcon-DBfVnArE.js} +1 -1
- package/dist/create-safe-context-Bboj0GWC.cjs +1 -0
- package/dist/desktopStore-CZoA9VHO.cjs +1 -0
- package/dist/{desktopStore-B0R1-BeA.js → desktopStore-F8bgLqFl.js} +256 -393
- package/dist/getRuntime-BFK0-8R1.cjs +1 -0
- package/dist/{getRuntime-CCRXVzJH.js → getRuntime-DAPqFH2W.js} +5 -5
- package/dist/imageViewerStore-BB_tssZR.cjs +1 -0
- package/dist/{imageViewerStore-CJMRXaQh.js → imageViewerStore-C5kWz0o7.js} +1 -1
- package/dist/index.cjs +1 -53
- package/dist/index.css +1 -1
- package/dist/index.js +1293 -5468
- package/dist/is-element-CdV0xajp.cjs +1 -0
- package/dist/menuEditStore-CTeM_dns.cjs +1 -0
- package/dist/{menuEditStore-C8S_EedM.js → menuEditStore-Cj1zAwxQ.js} +1 -1
- package/dist/notesStore-BCEl1D_v.cjs +1 -0
- package/dist/{notesStore-DKRgTTFn.js → notesStore-BPyRTHEc.js} +1 -1
- package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
- package/dist/{settingsAppStore-KOeWRO6h.js → settingsAppStore-BDQ3ts1y.js} +1 -1
- package/dist/settingsAppStore-CMBc13VU.cjs +1 -0
- package/dist/{terminalStore-LWWjCvCe.js → terminalStore-IWdf4Mm6.js} +1 -1
- package/dist/terminalStore-iIuyodfK.cjs +1 -0
- package/dist/use-merged-ref-n9Gw9LNn.cjs +1 -0
- package/dist/{use-resolved-styles-api-AVDygMKo.cjs → use-resolved-styles-api-8OXE2oRq.cjs} +1 -1
- package/dist/{use-resolved-styles-api-pEOi2wiK.js → use-resolved-styles-api-DNUlJJZf.js} +1 -1
- package/dist/use-uncontrolled-DDJVQiM_.cjs +1 -0
- package/dist/{useAdaptiveDimensions-CunsU0mn.js → useAdaptiveDimensions-AVDc_qPa.js} +1 -1
- package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +1 -0
- package/dist/{useCloseInterceptor-CuKAAFnj.js → useCloseInterceptor-BZd3VILp.js} +12 -12
- package/dist/useCloseInterceptor-yntBEzNc.cjs +1 -0
- package/dist/{useDynamicIcon-GJg3vWsJ.js → useDynamicIcon-Bf0t2foA.js} +1 -1
- package/dist/useDynamicIcon-DJ_il30E.cjs +1 -0
- package/dist/{useOpenApp-JHCPTBWa.js → useOpenApp-CBIm7Gzl.js} +3 -3
- package/dist/useOpenApp-DW4x79Zg.cjs +1 -0
- package/dist/useResolvedUrl-BkMPM1fM.cjs +1 -0
- package/dist/{useResolvedUrl-DFKXq598.js → useResolvedUrl-DQpLqOoL.js} +2 -2
- package/package.json +1 -1
- package/dist/AccordionChevron-DBXp38Lm.cjs +0 -1
- package/dist/ActionIcon-C_SfdBfx.cjs +0 -1
- package/dist/AppEmptyState-BTujnL_b.js +0 -4962
- package/dist/AppEmptyState-Dc4GaDfu.cjs +0 -1
- package/dist/AppIcon--qzR4sgf.cjs +0 -1
- package/dist/AppMenuBar-BiHbNg9V.cjs +0 -9
- package/dist/AppMenuBar-CHJy8OF0.js +0 -2639
- package/dist/Box-D_64wv6n.cjs +0 -1
- package/dist/Button-D0FXpkur.cjs +0 -1
- package/dist/CalendarApp-C1HvuJoa.cjs +0 -1
- package/dist/CalendarApp-DBEQqsS_.js +0 -1721
- package/dist/Center-T4No_FAa.cjs +0 -1
- package/dist/CheckIcon-CBMLR6Gc.cjs +0 -1
- package/dist/CodeServerApp-B3l5QPuG.cjs +0 -1
- package/dist/CodeServerApp-BpeALSaX.js +0 -2
- package/dist/CodeServerApp-CRjCngFv.cjs +0 -1
- package/dist/ColorPicker-BL4UbKCV.cjs +0 -1
- package/dist/CreateItemApp-BU9wmjKM.cjs +0 -1
- package/dist/CreateItemApp-t9F-a6wD.cjs +0 -1
- package/dist/DeviceInfoApp-Cdju_LIB.cjs +0 -1
- package/dist/DeviceInfoApp-CyB01v4D.cjs +0 -1
- package/dist/DownloadProgress-IRw1dzLX.cjs +0 -1
- package/dist/FileIcon-BCrsxmtt.cjs +0 -1
- package/dist/FilePickerApp-Eu0cr2Cm.cjs +0 -1
- package/dist/FilesApp-30OjnOuP.cjs +0 -1
- package/dist/FilesApp-BvlzPNuO.cjs +0 -1
- package/dist/Group-DhwePB84.cjs +0 -1
- package/dist/ImageViewerApp-BOz59TGc.cjs +0 -1
- package/dist/ImageViewerApp-BeqY6voE.cjs +0 -1
- package/dist/ImageViewerApp-DBAfJPSo.js +0 -2
- package/dist/ImageViewerMenuBar-Cb0Nr5-M.js +0 -2
- package/dist/ImageViewerMenuBar-CoEp0RxK.cjs +0 -1
- package/dist/ImageViewerMenuBar-zOkJtqKo.cjs +0 -1
- package/dist/MenuEditApp-BoKtj2GH.js +0 -2
- package/dist/MenuEditApp-D21sEp86.js +0 -2615
- package/dist/MenuEditApp-k3cPfTG9.cjs +0 -1
- package/dist/MenuEditApp-sz9GlLVH.cjs +0 -5
- package/dist/MenuEditMenuBar-6QxlIDpl.cjs +0 -1
- package/dist/MenuEditMenuBar-Bv6R42lf.js +0 -2
- package/dist/MenuEditMenuBar-CBsmH_-T.cjs +0 -1
- package/dist/NotesApp-BtR55Hva.cjs +0 -207
- package/dist/NotesApp-C59exz_9.js +0 -16154
- package/dist/NotesApp-D47I5LS_.js +0 -2
- package/dist/NotesApp-lOwsi2sg.cjs +0 -1
- package/dist/NotesMenuBar-BZITC74y.cjs +0 -1
- package/dist/NotesMenuBar-Bp0sPqyR.cjs +0 -1
- package/dist/NotesMenuBar-xlfODmMA.js +0 -2
- package/dist/Paper-DwCpwWwH.cjs +0 -1
- package/dist/PdfApp-1XbFGfoY.cjs +0 -1
- package/dist/PdfApp-BhIoJWeK.cjs +0 -1
- package/dist/PdfApp-C5Rt1Zaw.js +0 -2
- package/dist/PdfApp-C8Hwxxqh.js +0 -38
- package/dist/PdfMenuBar-BA9rKuMP.cjs +0 -1
- package/dist/PdfMenuBar-JXHqwxhZ.cjs +0 -1
- package/dist/PdfMenuBar-R0fu7oYF.js +0 -2
- package/dist/PdfMenuBar-sd-9Vk3h.js +0 -38
- package/dist/SettingsApp-BA-5B4RA.cjs +0 -1
- package/dist/SettingsApp-B_rev1xh.cjs +0 -1
- package/dist/SettingsApp-Ck4aUXs5.js +0 -2
- package/dist/SettingsApp-DUMKSA3K.js +0 -2425
- package/dist/SettingsMenuBar-BPwv8JQK.js +0 -41
- package/dist/SettingsMenuBar-D8R7hOik.js +0 -2
- package/dist/SettingsMenuBar-DDrjZLmg.cjs +0 -1
- package/dist/SettingsMenuBar-DQjUa8g1.cjs +0 -1
- package/dist/Slider-Bg_EIBg6.cjs +0 -1
- package/dist/Stack-BOaJgV3N.cjs +0 -1
- package/dist/StorybookApp-Bkr-7mXp.cjs +0 -1
- package/dist/TerminalApp-8XbsKAWa.js +0 -10041
- package/dist/TerminalApp-Bq2e7QQu.cjs +0 -1
- package/dist/TerminalApp-CVu3Axc9.js +0 -2
- package/dist/TerminalApp-b7_d0jRO.cjs +0 -36
- package/dist/TerminalMenuBar-Cb8x9laS.js +0 -2
- package/dist/TerminalMenuBar-De-FH5AE.cjs +0 -1
- package/dist/TerminalMenuBar-yOaWd-hn.cjs +0 -1
- package/dist/TextInput-DcYns3hz.cjs +0 -1
- package/dist/Tooltip-CAOO-qdx.js +0 -3185
- package/dist/Tooltip-DDh_x-CB.cjs +0 -1
- package/dist/UnstyledButton-Cl5RuIid.cjs +0 -1
- package/dist/UploaderApp-BZXW75A0.cjs +0 -1
- package/dist/UploaderApp-CPpStgP5.cjs +0 -1
- package/dist/UploaderApp-DHsMQN-f.js +0 -2
- package/dist/VscIcon-CxEmqD80.cjs +0 -1
- package/dist/chunk-BQCxAhux.js +0 -23
- package/dist/chunk-CiTBaPhY.cjs +0 -1
- package/dist/create-safe-context-95P-Bfg3.cjs +0 -1
- package/dist/desktopStore-Cox-Og1z.cjs +0 -1
- package/dist/fc-DejOsQyD.cjs +0 -1
- package/dist/fc-kd8WzIER.js +0 -20536
- package/dist/fc-xJ_v2ayq.cjs +0 -184
- package/dist/fi-BahYsbim.js +0 -9993
- package/dist/fi-BkhyTcZo.cjs +0 -1
- package/dist/getRuntime-BLXyQZBB.cjs +0 -1
- package/dist/iconBase-B4UCuSvv.cjs +0 -1
- package/dist/iconBase-D7iPes7B.js +0 -108
- package/dist/imageViewerStore-CH1qW6md.cjs +0 -1
- package/dist/is-element-BocgicRg.cjs +0 -1
- package/dist/menuEditStore-CU7IAg3L.cjs +0 -1
- package/dist/notesStore-zKmChTfF.cjs +0 -1
- package/dist/react-DYmzHD0X.js +0 -27
- package/dist/react-Dldg32sN.cjs +0 -1
- package/dist/settingsAppStore-BrlImdAH.cjs +0 -1
- package/dist/terminalStore-fZe5t7Ty.cjs +0 -1
- package/dist/use-merged-ref-BI9n1hUK.cjs +0 -1
- package/dist/use-uncontrolled-BPrfGv0W.cjs +0 -1
- package/dist/useAdaptiveDimensions-Btp0m5Pm.cjs +0 -1
- package/dist/useCloseInterceptor-a_6Lcuqj.cjs +0 -1
- package/dist/useDynamicIcon-SytdL1Tu.cjs +0 -1
- package/dist/useOpenApp-BdarhIgl.cjs +0 -1
- package/dist/useResolvedUrl-Be5ZlCX7.cjs +0 -1
- package/dist/useTranslation-DMRGdqZi.js +0 -279
- package/dist/useTranslation-D_O7S4RJ.cjs +0 -1
- package/dist/vsc-Ciibqbxo.cjs +0 -1
- package/dist/vsc-DGKSpOAR.js +0 -9574
- /package/dist/{Colors-hca6raEG.js → Colors-ClnDxnyA.js} +0 -0
- /package/dist/{Colors-BxX4G8kX.cjs → Colors-zP2AFgU3.cjs} +0 -0
- /package/dist/{useMenuBarUtils-Bp5PiztD.cjs → useMenuBarUtils-nJIPJGIQ.cjs} +0 -0
- /package/dist/{useMenuBarUtils-ChmpZjwu.js → useMenuBarUtils-nmu9yehT.js} +0 -0
|
@@ -1,181 +1,44 @@
|
|
|
1
|
-
import { i as e, n as t } from "./getRuntime-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
let n;
|
|
6
|
-
try {
|
|
7
|
-
n = e();
|
|
8
|
-
} catch {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
return {
|
|
12
|
-
getItem: (e) => {
|
|
13
|
-
let r = (e) => e === null ? null : JSON.parse(e, t?.reviver), i = n.getItem(e) ?? null;
|
|
14
|
-
return i instanceof Promise ? i.then(r) : r(i);
|
|
15
|
-
},
|
|
16
|
-
setItem: (e, r) => n.setItem(e, JSON.stringify(r, t?.replacer)),
|
|
17
|
-
removeItem: (e) => n.removeItem(e)
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
var i = (e) => (t) => {
|
|
21
|
-
try {
|
|
22
|
-
let n = e(t);
|
|
23
|
-
return n instanceof Promise ? n : {
|
|
24
|
-
then(e) {
|
|
25
|
-
return i(e)(n);
|
|
26
|
-
},
|
|
27
|
-
catch(e) {
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
} catch (e) {
|
|
32
|
-
return {
|
|
33
|
-
then(e) {
|
|
34
|
-
return this;
|
|
35
|
-
},
|
|
36
|
-
catch(t) {
|
|
37
|
-
return i(t)(e);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
}, a = (e, t) => (n, a, o) => {
|
|
42
|
-
let s = {
|
|
43
|
-
storage: r(() => window.localStorage),
|
|
44
|
-
partialize: (e) => e,
|
|
45
|
-
version: 0,
|
|
46
|
-
merge: (e, t) => ({
|
|
47
|
-
...t,
|
|
48
|
-
...e
|
|
49
|
-
}),
|
|
50
|
-
...t
|
|
51
|
-
}, c = !1, l = 0, u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Set(), f = s.storage;
|
|
52
|
-
if (!f) return e((...e) => {
|
|
53
|
-
console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`), n(...e);
|
|
54
|
-
}, a, o);
|
|
55
|
-
let p = () => {
|
|
56
|
-
let e = s.partialize({ ...a() });
|
|
57
|
-
return f.setItem(s.name, {
|
|
58
|
-
state: e,
|
|
59
|
-
version: s.version
|
|
60
|
-
});
|
|
61
|
-
}, m = o.setState;
|
|
62
|
-
o.setState = (e, t) => (m(e, t), p());
|
|
63
|
-
let h = e((...e) => (n(...e), p()), a, o);
|
|
64
|
-
o.getInitialState = () => h;
|
|
65
|
-
let g, _ = () => {
|
|
66
|
-
if (!f) return;
|
|
67
|
-
let e = ++l;
|
|
68
|
-
c = !1, u.forEach((e) => e(a() ?? h));
|
|
69
|
-
let t = s.onRehydrateStorage?.call(s, a() ?? h) || void 0;
|
|
70
|
-
return i(f.getItem.bind(f))(s.name).then((e) => {
|
|
71
|
-
if (e) if (typeof e.version == "number" && e.version !== s.version) {
|
|
72
|
-
if (s.migrate) {
|
|
73
|
-
let t = s.migrate(e.state, e.version);
|
|
74
|
-
return t instanceof Promise ? t.then((e) => [!0, e]) : [!0, t];
|
|
75
|
-
}
|
|
76
|
-
console.error("State loaded from storage couldn't be migrated since no migrate function was provided");
|
|
77
|
-
} else return [!1, e.state];
|
|
78
|
-
return [!1, void 0];
|
|
79
|
-
}).then((t) => {
|
|
80
|
-
if (e !== l) return;
|
|
81
|
-
let [r, i] = t;
|
|
82
|
-
if (g = s.merge(i, a() ?? h), n(g, !0), r) return p();
|
|
83
|
-
}).then(() => {
|
|
84
|
-
e === l && (t?.(a(), void 0), g = a(), c = !0, d.forEach((e) => e(g)));
|
|
85
|
-
}).catch((n) => {
|
|
86
|
-
e === l && t?.(void 0, n);
|
|
87
|
-
});
|
|
88
|
-
};
|
|
89
|
-
return o.persist = {
|
|
90
|
-
setOptions: (e) => {
|
|
91
|
-
s = {
|
|
92
|
-
...s,
|
|
93
|
-
...e
|
|
94
|
-
}, e.storage && (f = e.storage);
|
|
95
|
-
},
|
|
96
|
-
clearStorage: () => {
|
|
97
|
-
f?.removeItem(s.name);
|
|
98
|
-
},
|
|
99
|
-
getOptions: () => s,
|
|
100
|
-
rehydrate: () => _(),
|
|
101
|
-
hasHydrated: () => c,
|
|
102
|
-
onHydrate: (e) => (u.add(e), () => {
|
|
103
|
-
u.delete(e);
|
|
104
|
-
}),
|
|
105
|
-
onFinishHydration: (e) => (d.add(e), () => {
|
|
106
|
-
d.delete(e);
|
|
107
|
-
})
|
|
108
|
-
}, s.skipHydration || _(), g || h;
|
|
109
|
-
}, o = [];
|
|
110
|
-
for (let e = 0; e < 256; ++e) o.push((e + 256).toString(16).slice(1));
|
|
111
|
-
function s(e, t = 0) {
|
|
112
|
-
return (o[e[t + 0]] + o[e[t + 1]] + o[e[t + 2]] + o[e[t + 3]] + "-" + o[e[t + 4]] + o[e[t + 5]] + "-" + o[e[t + 6]] + o[e[t + 7]] + "-" + o[e[t + 8]] + o[e[t + 9]] + "-" + o[e[t + 10]] + o[e[t + 11]] + o[e[t + 12]] + o[e[t + 13]] + o[e[t + 14]] + o[e[t + 15]]).toLowerCase();
|
|
113
|
-
}
|
|
114
|
-
//#endregion
|
|
115
|
-
//#region ../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/rng.js
|
|
116
|
-
var c, l = new Uint8Array(16);
|
|
117
|
-
function u() {
|
|
118
|
-
if (!c) {
|
|
119
|
-
if (typeof crypto > "u" || !crypto.getRandomValues) throw Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
120
|
-
c = crypto.getRandomValues.bind(crypto);
|
|
121
|
-
}
|
|
122
|
-
return c(l);
|
|
123
|
-
}
|
|
124
|
-
var d = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
|
|
125
|
-
//#endregion
|
|
126
|
-
//#region ../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v4.js
|
|
127
|
-
function f(e, t, n) {
|
|
128
|
-
e ||= {};
|
|
129
|
-
let r = e.random ?? e.rng?.() ?? u();
|
|
130
|
-
if (r.length < 16) throw Error("Random bytes length must be >= 16");
|
|
131
|
-
if (r[6] = r[6] & 15 | 64, r[8] = r[8] & 63 | 128, t) {
|
|
132
|
-
if (n ||= 0, n < 0 || n + 16 > t.length) throw RangeError(`UUID byte range ${n}:${n + 15} is out of buffer bounds`);
|
|
133
|
-
for (let e = 0; e < 16; ++e) t[n + e] = r[e];
|
|
134
|
-
return t;
|
|
135
|
-
}
|
|
136
|
-
return s(r);
|
|
137
|
-
}
|
|
138
|
-
function p(e, t, n) {
|
|
139
|
-
return d.randomUUID && !t && !e ? d.randomUUID() : f(e, t, n);
|
|
140
|
-
}
|
|
141
|
-
//#endregion
|
|
1
|
+
import { i as e, n as t } from "./getRuntime-DAPqFH2W.js";
|
|
2
|
+
import { create as n } from "zustand";
|
|
3
|
+
import { createJSONStorage as r, persist as i } from "zustand/middleware";
|
|
4
|
+
import { v4 as a, v4 as o } from "uuid";
|
|
142
5
|
//#region src/utils/uuid.ts
|
|
143
|
-
function
|
|
144
|
-
return
|
|
6
|
+
function s() {
|
|
7
|
+
return a();
|
|
145
8
|
}
|
|
146
9
|
//#endregion
|
|
147
10
|
//#region src/domain/entities/Window.ts
|
|
148
|
-
var
|
|
11
|
+
var c = (e) => ({
|
|
149
12
|
alwaysOnTop: !1,
|
|
150
13
|
...e,
|
|
151
|
-
id:
|
|
14
|
+
id: s(),
|
|
152
15
|
isOpen: !0,
|
|
153
16
|
state: "normal",
|
|
154
17
|
zIndex: 0
|
|
155
|
-
}),
|
|
18
|
+
}), l = (e) => ({
|
|
156
19
|
...e,
|
|
157
|
-
id:
|
|
158
|
-
}),
|
|
159
|
-
id:
|
|
20
|
+
id: s()
|
|
21
|
+
}), u = (e) => ({
|
|
22
|
+
id: s(),
|
|
160
23
|
name: e.name,
|
|
161
24
|
fcIcon: e.fcIcon,
|
|
162
25
|
appIds: e.appIds ?? [],
|
|
163
26
|
isExpanded: e.isExpanded ?? !1,
|
|
164
27
|
isPredefined: e.isPredefined ?? !1,
|
|
165
28
|
order: e.order ?? 0
|
|
166
|
-
}),
|
|
167
|
-
id:
|
|
29
|
+
}), d = (e) => ({
|
|
30
|
+
id: s(),
|
|
168
31
|
name: e.name,
|
|
169
32
|
fcIcon: e.fcIcon,
|
|
170
33
|
appIds: e.appIds ?? [],
|
|
171
34
|
isExpanded: e.isExpanded ?? !1,
|
|
172
35
|
isPredefined: !0,
|
|
173
36
|
order: e.order ?? 0
|
|
174
|
-
}),
|
|
37
|
+
}), f = (e, t) => ({
|
|
175
38
|
...e,
|
|
176
39
|
...t
|
|
177
|
-
}),
|
|
178
|
-
id:
|
|
40
|
+
}), p = (e, t = null, n = {}) => ({
|
|
41
|
+
id: s(),
|
|
179
42
|
name: e,
|
|
180
43
|
type: "folder",
|
|
181
44
|
parentId: t,
|
|
@@ -183,8 +46,8 @@ var h = (e) => ({
|
|
|
183
46
|
createdAt: /* @__PURE__ */ new Date(),
|
|
184
47
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
185
48
|
...n
|
|
186
|
-
}),
|
|
187
|
-
id:
|
|
49
|
+
}), m = (e, t, n = null, r, i) => ({
|
|
50
|
+
id: s(),
|
|
188
51
|
name: e,
|
|
189
52
|
type: "file",
|
|
190
53
|
content: t,
|
|
@@ -193,12 +56,12 @@ var h = (e) => ({
|
|
|
193
56
|
createdAt: /* @__PURE__ */ new Date(),
|
|
194
57
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
195
58
|
...i === void 0 ? {} : { url: i }
|
|
196
|
-
}),
|
|
59
|
+
}), ee = 1e4, te = class {
|
|
197
60
|
windows = /* @__PURE__ */ new Map();
|
|
198
61
|
nextZIndex = 1;
|
|
199
62
|
assignZIndex(e) {
|
|
200
63
|
let t = this.nextZIndex++;
|
|
201
|
-
return e ?
|
|
64
|
+
return e ? ee + t : t;
|
|
202
65
|
}
|
|
203
66
|
reset() {
|
|
204
67
|
this.windows.clear(), this.nextZIndex = 1;
|
|
@@ -208,7 +71,7 @@ var h = (e) => ({
|
|
|
208
71
|
let t = 0;
|
|
209
72
|
for (let n of e) {
|
|
210
73
|
this.windows.set(n.id, n);
|
|
211
|
-
let e = n.alwaysOnTop ?? !1 ? n.zIndex -
|
|
74
|
+
let e = n.alwaysOnTop ?? !1 ? n.zIndex - ee : n.zIndex;
|
|
212
75
|
e > t && (t = e);
|
|
213
76
|
}
|
|
214
77
|
this.nextZIndex = t + 1;
|
|
@@ -220,7 +83,7 @@ var h = (e) => ({
|
|
|
220
83
|
return this.windows.get(e);
|
|
221
84
|
}
|
|
222
85
|
open(e) {
|
|
223
|
-
let t =
|
|
86
|
+
let t = c(e);
|
|
224
87
|
return t.zIndex = this.assignZIndex(t.alwaysOnTop ?? !1), this.windows.set(t.id, t), t;
|
|
225
88
|
}
|
|
226
89
|
close(e) {
|
|
@@ -260,7 +123,7 @@ var h = (e) => ({
|
|
|
260
123
|
...t
|
|
261
124
|
});
|
|
262
125
|
}
|
|
263
|
-
},
|
|
126
|
+
}, ne = {
|
|
264
127
|
".txt": "text/plain",
|
|
265
128
|
".md": "text/markdown",
|
|
266
129
|
".markdown": "text/markdown",
|
|
@@ -281,28 +144,28 @@ var h = (e) => ({
|
|
|
281
144
|
".jsdos": "application/jsdos",
|
|
282
145
|
".zip": "application/zip"
|
|
283
146
|
};
|
|
284
|
-
function
|
|
147
|
+
function h(e) {
|
|
285
148
|
let t = e.lastIndexOf(".");
|
|
286
|
-
if (!(t === -1 || t === e.length - 1)) return
|
|
149
|
+
if (!(t === -1 || t === e.length - 1)) return ne[e.slice(t).toLowerCase()];
|
|
287
150
|
}
|
|
288
151
|
//#endregion
|
|
289
152
|
//#region src/utils/hashBlob.ts
|
|
290
|
-
function
|
|
153
|
+
function re(e) {
|
|
291
154
|
let t = 5381;
|
|
292
155
|
for (let n = 0; n < e.length; n++) t = (t << 5) + t ^ e[n], t >>>= 0;
|
|
293
156
|
return t.toString(16).padStart(8, "0") + e.length.toString(16).padStart(8, "0");
|
|
294
157
|
}
|
|
295
|
-
async function
|
|
158
|
+
async function g(e) {
|
|
296
159
|
let t = await e.arrayBuffer(), n = new Uint8Array(t);
|
|
297
160
|
if (crypto?.subtle) {
|
|
298
161
|
let e = await crypto.subtle.digest("SHA-256", n);
|
|
299
162
|
return Array.from(new Uint8Array(e)).map((e) => e.toString(16).padStart(2, "0")).join("");
|
|
300
163
|
}
|
|
301
|
-
return console.warn("[hashBlob] crypto.subtle unavailable (non-secure context), using fallback hash"),
|
|
164
|
+
return console.warn("[hashBlob] crypto.subtle unavailable (non-secure context), using fallback hash"), re(n);
|
|
302
165
|
}
|
|
303
166
|
//#endregion
|
|
304
167
|
//#region src/infrastructure/adapters/IndexedDBFileSystem.ts
|
|
305
|
-
var
|
|
168
|
+
var ie = "fde-desktop-fs", _ = "nodes", v = "blobs", y = "metadata", ae = 2, oe = class {
|
|
306
169
|
db = null;
|
|
307
170
|
nodes = /* @__PURE__ */ new Map();
|
|
308
171
|
ready = !1;
|
|
@@ -317,20 +180,20 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
317
180
|
}
|
|
318
181
|
openDatabase() {
|
|
319
182
|
return new Promise((e, t) => {
|
|
320
|
-
let n = indexedDB.open(
|
|
183
|
+
let n = indexedDB.open(ie, ae);
|
|
321
184
|
n.onerror = () => t(n.error), n.onsuccess = () => {
|
|
322
185
|
this.db = n.result, e();
|
|
323
186
|
}, n.onupgradeneeded = () => {
|
|
324
187
|
let e = n.result;
|
|
325
|
-
e.objectStoreNames.contains(
|
|
188
|
+
e.objectStoreNames.contains(_) || e.createObjectStore(_), e.objectStoreNames.contains(v) || e.createObjectStore(v), e.objectStoreNames.contains(y) || e.createObjectStore(y);
|
|
326
189
|
};
|
|
327
190
|
});
|
|
328
191
|
}
|
|
329
192
|
async loadNodes() {
|
|
330
193
|
if (this.db) return new Promise((e, t) => {
|
|
331
|
-
let n = this.db.transaction(
|
|
194
|
+
let n = this.db.transaction(_, "readonly"), r = n.objectStore(_).getAll();
|
|
332
195
|
r.onsuccess = () => {
|
|
333
|
-
let i = n.objectStore(
|
|
196
|
+
let i = n.objectStore(_).getAllKeys();
|
|
334
197
|
i.onsuccess = () => {
|
|
335
198
|
let t = r.result, n = i.result;
|
|
336
199
|
for (let e = 0; e < t.length; e++) {
|
|
@@ -358,7 +221,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
358
221
|
}
|
|
359
222
|
persistAllNodes() {
|
|
360
223
|
return this.db ? new Promise((e, t) => {
|
|
361
|
-
let n = this.db.transaction(
|
|
224
|
+
let n = this.db.transaction(_, "readwrite"), r = n.objectStore(_);
|
|
362
225
|
for (let [e, t] of this.nodes.entries()) r.put(t, e);
|
|
363
226
|
n.oncomplete = () => e(), n.onerror = () => t(n.error);
|
|
364
227
|
}) : Promise.resolve();
|
|
@@ -372,7 +235,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
372
235
|
if (!this.db || this.persistQueue.length === 0) return;
|
|
373
236
|
let e = [...this.persistQueue];
|
|
374
237
|
this.persistQueue = [];
|
|
375
|
-
let t = this.db.transaction(
|
|
238
|
+
let t = this.db.transaction(_, "readwrite"), n = t.objectStore(_);
|
|
376
239
|
t.onerror = () => {
|
|
377
240
|
console.error("IndexedDB write failed", t.error);
|
|
378
241
|
};
|
|
@@ -393,9 +256,9 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
393
256
|
}
|
|
394
257
|
async saveBlob(e) {
|
|
395
258
|
this.db || await this.initialize();
|
|
396
|
-
let t = await
|
|
259
|
+
let t = await g(e);
|
|
397
260
|
return await this.getBlob(`idb://${t}`) ? `idb://${t}` : new Promise((n, r) => {
|
|
398
|
-
let i = this.db.transaction(
|
|
261
|
+
let i = this.db.transaction(v, "readwrite").objectStore(v).put(e, t);
|
|
399
262
|
i.onsuccess = () => n(`idb://${t}`), i.onerror = () => r(i.error);
|
|
400
263
|
});
|
|
401
264
|
}
|
|
@@ -403,7 +266,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
403
266
|
this.db || await this.initialize();
|
|
404
267
|
let t = e.startsWith("idb://") ? e.slice(6) : e;
|
|
405
268
|
return new Promise((e, n) => {
|
|
406
|
-
let r = this.db.transaction(
|
|
269
|
+
let r = this.db.transaction(v, "readonly").objectStore(v).get(t);
|
|
407
270
|
r.onsuccess = () => e(r.result ?? null), r.onerror = () => n(r.error);
|
|
408
271
|
});
|
|
409
272
|
}
|
|
@@ -414,7 +277,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
414
277
|
}
|
|
415
278
|
async clearBlobs() {
|
|
416
279
|
if (this.db) return new Promise((e, t) => {
|
|
417
|
-
let n = this.db.transaction(
|
|
280
|
+
let n = this.db.transaction(v, "readwrite").objectStore(v).clear();
|
|
418
281
|
n.onsuccess = () => e(), n.onerror = () => t(n.error);
|
|
419
282
|
});
|
|
420
283
|
}
|
|
@@ -439,11 +302,11 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
439
302
|
return this.nodes.size === 0;
|
|
440
303
|
}
|
|
441
304
|
async createFile(e, t, n, r) {
|
|
442
|
-
let i =
|
|
305
|
+
let i = m(e, t, n, h(e), r);
|
|
443
306
|
return this.nodes.set(i.id, i), n && this.addChildToFolder(n, i.id), this.persistNode(i.id, i), i;
|
|
444
307
|
}
|
|
445
308
|
async createFolder(e, t, n, r) {
|
|
446
|
-
let i =
|
|
309
|
+
let i = p(e, t, {
|
|
447
310
|
iconName: n,
|
|
448
311
|
iconColor: r
|
|
449
312
|
});
|
|
@@ -483,36 +346,36 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
483
346
|
}
|
|
484
347
|
async getManifestSha() {
|
|
485
348
|
return this.db || await this.initialize(), new Promise((e, t) => {
|
|
486
|
-
let n = this.db.transaction(
|
|
349
|
+
let n = this.db.transaction(y, "readonly").objectStore(y).get("manifestSha");
|
|
487
350
|
n.onsuccess = () => e(n.result ?? null), n.onerror = () => t(n.error);
|
|
488
351
|
});
|
|
489
352
|
}
|
|
490
353
|
async saveManifestSha(e) {
|
|
491
354
|
return this.db || await this.initialize(), new Promise((t, n) => {
|
|
492
|
-
let r = this.db.transaction(
|
|
355
|
+
let r = this.db.transaction(y, "readwrite").objectStore(y).put(e, "manifestSha");
|
|
493
356
|
r.onsuccess = () => t(), r.onerror = () => n(r.error);
|
|
494
357
|
});
|
|
495
358
|
}
|
|
496
359
|
async clearAll() {
|
|
497
360
|
this.nodes.clear(), this.ready = !1, this.initPromise = null, this.db &&= (await Promise.all([
|
|
498
361
|
new Promise((e, t) => {
|
|
499
|
-
let n = this.db.transaction(
|
|
500
|
-
n.objectStore(
|
|
362
|
+
let n = this.db.transaction(_, "readwrite");
|
|
363
|
+
n.objectStore(_).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
|
|
501
364
|
}),
|
|
502
365
|
new Promise((e, t) => {
|
|
503
|
-
let n = this.db.transaction(
|
|
504
|
-
n.objectStore(
|
|
366
|
+
let n = this.db.transaction(v, "readwrite");
|
|
367
|
+
n.objectStore(v).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
|
|
505
368
|
}),
|
|
506
369
|
new Promise((e, t) => {
|
|
507
|
-
let n = this.db.transaction(
|
|
508
|
-
n.objectStore(
|
|
370
|
+
let n = this.db.transaction(y, "readwrite");
|
|
371
|
+
n.objectStore(y).clear(), n.oncomplete = () => e(), n.onerror = () => t(n.error);
|
|
509
372
|
})
|
|
510
373
|
]), this.db.close(), null);
|
|
511
374
|
}
|
|
512
375
|
async seed(e) {
|
|
513
376
|
let t = this.buildFolderMapFromManifest(e);
|
|
514
377
|
for (let n of e.files) {
|
|
515
|
-
let e = t.get(n.folder), r =
|
|
378
|
+
let e = t.get(n.folder), r = m(n.name, "", e?.id ?? null, n.mimeType, n.url);
|
|
516
379
|
if (this.nodes.set(r.id, r), e) {
|
|
517
380
|
let i = {
|
|
518
381
|
...e,
|
|
@@ -539,7 +402,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
539
402
|
}
|
|
540
403
|
continue;
|
|
541
404
|
}
|
|
542
|
-
let i =
|
|
405
|
+
let i = m(n.name, "", e.id, n.mimeType, n.url);
|
|
543
406
|
this.nodes.set(i.id, i);
|
|
544
407
|
let a = {
|
|
545
408
|
...e,
|
|
@@ -560,7 +423,7 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
560
423
|
continue;
|
|
561
424
|
}
|
|
562
425
|
}
|
|
563
|
-
let c =
|
|
426
|
+
let c = p(i, s);
|
|
564
427
|
if (this.nodes.set(c.id, c), n.set(e, c), o) {
|
|
565
428
|
let e = {
|
|
566
429
|
...o,
|
|
@@ -596,8 +459,8 @@ var oe = "fde-desktop-fs", S = "nodes", C = "blobs", w = "metadata", se = 2, T =
|
|
|
596
459
|
e && (e.type === "folder" && this.deleteRecursive(e), this.nodes.delete(t), this.deleteNodeFromPersist(t));
|
|
597
460
|
}
|
|
598
461
|
}
|
|
599
|
-
},
|
|
600
|
-
async function
|
|
462
|
+
}, se = "/api/fs", ce = 6e4;
|
|
463
|
+
async function le(e, t = {}, n = ce) {
|
|
601
464
|
let r = new AbortController(), i = setTimeout(() => r.abort(), n);
|
|
602
465
|
try {
|
|
603
466
|
return await fetch(e, {
|
|
@@ -608,25 +471,25 @@ async function ue(e, t = {}, n = le) {
|
|
|
608
471
|
clearTimeout(i);
|
|
609
472
|
}
|
|
610
473
|
}
|
|
611
|
-
var
|
|
612
|
-
function
|
|
613
|
-
|
|
474
|
+
var b = se;
|
|
475
|
+
function ue(e) {
|
|
476
|
+
b = e;
|
|
614
477
|
}
|
|
615
|
-
var
|
|
478
|
+
var de = class {
|
|
616
479
|
nodes = /* @__PURE__ */ new Map();
|
|
617
480
|
pathToId = /* @__PURE__ */ new Map();
|
|
618
481
|
ready = !1;
|
|
619
482
|
rootFolderId;
|
|
620
483
|
initPromise = null;
|
|
621
484
|
constructor() {
|
|
622
|
-
this.rootFolderId =
|
|
485
|
+
this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId);
|
|
623
486
|
}
|
|
624
487
|
async initialize() {
|
|
625
488
|
return this.initPromise ||= this.doInitialize(), this.initPromise;
|
|
626
489
|
}
|
|
627
490
|
async doInitialize() {
|
|
628
491
|
try {
|
|
629
|
-
let e = await fetch(`${
|
|
492
|
+
let e = await fetch(`${b}?action=readdir&path=/`);
|
|
630
493
|
if (e.ok) {
|
|
631
494
|
let t = await e.json();
|
|
632
495
|
await this.syncFromEntries(t, null);
|
|
@@ -637,7 +500,7 @@ var fe = class {
|
|
|
637
500
|
this.ready = !0;
|
|
638
501
|
}
|
|
639
502
|
async reinitialize() {
|
|
640
|
-
this.ready = !1, this.nodes.clear(), this.pathToId.clear(), this.rootFolderId =
|
|
503
|
+
this.ready = !1, this.nodes.clear(), this.pathToId.clear(), this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId), this.initPromise = null, await this.initialize();
|
|
641
504
|
}
|
|
642
505
|
isReady() {
|
|
643
506
|
return this.ready;
|
|
@@ -660,32 +523,32 @@ var fe = class {
|
|
|
660
523
|
return Array.from(this.nodes.values());
|
|
661
524
|
}
|
|
662
525
|
async createFile(e, t, n, r) {
|
|
663
|
-
let i =
|
|
664
|
-
...
|
|
526
|
+
let i = s(), a = n ? this.getPathFromId(n) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, c = r ?? `/api/fs?action=file&path=${encodeURIComponent(o)}`, l = {
|
|
527
|
+
...m(e, t, n, this.getMimeType(e), c),
|
|
665
528
|
id: i
|
|
666
529
|
};
|
|
667
|
-
this.nodes.set(i,
|
|
530
|
+
this.nodes.set(i, l), this.pathToId.set(o, i);
|
|
668
531
|
try {
|
|
669
532
|
await this.writeFileToServer(o, t);
|
|
670
533
|
} catch (e) {
|
|
671
534
|
throw this.nodes.delete(i), this.pathToId.delete(o), e;
|
|
672
535
|
}
|
|
673
|
-
return
|
|
536
|
+
return l;
|
|
674
537
|
}
|
|
675
538
|
async createFolder(e, t, n, r) {
|
|
676
|
-
let i =
|
|
677
|
-
n && (
|
|
678
|
-
let
|
|
679
|
-
...
|
|
539
|
+
let i = s(), a = t ? this.getPathFromId(t) : "/", o = a ? `${a}/${e}`.replace("//", "/") : `/${e}`, c = {};
|
|
540
|
+
n && (c.iconName = n), r && (c.iconColor = r);
|
|
541
|
+
let l = {
|
|
542
|
+
...p(e, t, c),
|
|
680
543
|
id: i
|
|
681
544
|
};
|
|
682
|
-
this.nodes.set(i,
|
|
545
|
+
this.nodes.set(i, l), this.pathToId.set(o, i);
|
|
683
546
|
try {
|
|
684
|
-
await this.createDirOnServer(o,
|
|
547
|
+
await this.createDirOnServer(o, c);
|
|
685
548
|
} catch (e) {
|
|
686
549
|
throw this.nodes.delete(i), this.pathToId.delete(o), e;
|
|
687
550
|
}
|
|
688
|
-
return
|
|
551
|
+
return l;
|
|
689
552
|
}
|
|
690
553
|
async updateFile(e, t) {
|
|
691
554
|
let n = this.nodes.get(e);
|
|
@@ -713,7 +576,7 @@ var fe = class {
|
|
|
713
576
|
let r = this.getPathFromId(e), i = t ? this.getPathFromId(t) : "/", a = i ? `${i}/${n.name}`.replace("//", "/") : `/${n.name}`;
|
|
714
577
|
if (!r) throw Error(`Cannot determine path for node ${e}`);
|
|
715
578
|
if (!i && t !== null) throw Error(`Cannot determine parent path for ${t}`);
|
|
716
|
-
let o = await
|
|
579
|
+
let o = await le(`${b}?action=move&oldPath=${encodeURIComponent(r)}&newPath=${encodeURIComponent(a)}`);
|
|
717
580
|
if (!o.ok) {
|
|
718
581
|
let e = await o.json().catch(() => ({}));
|
|
719
582
|
throw Error(e.error || `HTTP ${o.status}`);
|
|
@@ -734,7 +597,7 @@ var fe = class {
|
|
|
734
597
|
}
|
|
735
598
|
async readFile(e) {
|
|
736
599
|
try {
|
|
737
|
-
let t = await fetch(`${
|
|
600
|
+
let t = await fetch(`${b}?action=read&path=${encodeURIComponent(e)}`);
|
|
738
601
|
if (t.ok) return (await t.json()).content;
|
|
739
602
|
} catch (t) {
|
|
740
603
|
console.warn(`[DockerFS] Failed to read file ${e}:`, t);
|
|
@@ -745,9 +608,9 @@ var fe = class {
|
|
|
745
608
|
await this.writeFileToServer(e, t);
|
|
746
609
|
}
|
|
747
610
|
async saveBlob(e) {
|
|
748
|
-
let t = `/.blobs/${await
|
|
611
|
+
let t = `/.blobs/${await g(e)}.${e.type.split("/")[1] || "bin"}`;
|
|
749
612
|
try {
|
|
750
|
-
await fetch(`${
|
|
613
|
+
await fetch(`${b}?action=writeBinary&path=${encodeURIComponent(t)}`, {
|
|
751
614
|
method: "POST",
|
|
752
615
|
body: e
|
|
753
616
|
});
|
|
@@ -787,10 +650,10 @@ var fe = class {
|
|
|
787
650
|
return Promise.resolve();
|
|
788
651
|
}
|
|
789
652
|
async clearAll() {
|
|
790
|
-
this.nodes.clear(), this.pathToId.clear(), this.ready = !1, this.initPromise = null, this.rootFolderId =
|
|
653
|
+
this.nodes.clear(), this.pathToId.clear(), this.ready = !1, this.initPromise = null, this.rootFolderId = s(), this.pathToId.set("/", this.rootFolderId);
|
|
791
654
|
}
|
|
792
655
|
getMimeType(e) {
|
|
793
|
-
return
|
|
656
|
+
return h(e) || "application/octet-stream";
|
|
794
657
|
}
|
|
795
658
|
getPathFromId(e) {
|
|
796
659
|
if (!e) return null;
|
|
@@ -808,9 +671,9 @@ var fe = class {
|
|
|
808
671
|
}
|
|
809
672
|
async syncFromEntries(e, t) {
|
|
810
673
|
for (let n of e) {
|
|
811
|
-
let e =
|
|
674
|
+
let e = s();
|
|
812
675
|
if (n.type === "directory") {
|
|
813
|
-
let r =
|
|
676
|
+
let r = p(n.name, t);
|
|
814
677
|
this.nodes.set(e, {
|
|
815
678
|
...r,
|
|
816
679
|
id: e
|
|
@@ -818,7 +681,7 @@ var fe = class {
|
|
|
818
681
|
let i = await this.fetchReaddir(n.path);
|
|
819
682
|
await this.syncFromEntries(i, e);
|
|
820
683
|
} else {
|
|
821
|
-
let r = `/api/fs?action=file&path=${encodeURIComponent(n.path)}`, i =
|
|
684
|
+
let r = `/api/fs?action=file&path=${encodeURIComponent(n.path)}`, i = m(n.name, "", t, this.getMimeType(n.name), r);
|
|
822
685
|
this.nodes.set(e, {
|
|
823
686
|
...i,
|
|
824
687
|
id: e
|
|
@@ -828,7 +691,7 @@ var fe = class {
|
|
|
828
691
|
}
|
|
829
692
|
async fetchReaddir(e) {
|
|
830
693
|
try {
|
|
831
|
-
let t = await fetch(`${
|
|
694
|
+
let t = await fetch(`${b}?action=readdir&path=${encodeURIComponent(e)}`);
|
|
832
695
|
if (t.ok) return await t.json();
|
|
833
696
|
} catch (t) {
|
|
834
697
|
console.warn(`[DockerFS] Failed to readdir ${e}:`, t);
|
|
@@ -836,7 +699,7 @@ var fe = class {
|
|
|
836
699
|
return [];
|
|
837
700
|
}
|
|
838
701
|
async writeFileToServer(e, t) {
|
|
839
|
-
let n = await fetch(`${
|
|
702
|
+
let n = await fetch(`${b}`, {
|
|
840
703
|
method: "POST",
|
|
841
704
|
headers: { "Content-Type": "application/json" },
|
|
842
705
|
body: JSON.stringify({
|
|
@@ -847,7 +710,7 @@ var fe = class {
|
|
|
847
710
|
if (!n.ok) throw Error(`Failed to write file ${e}: HTTP ${n.status}`);
|
|
848
711
|
}
|
|
849
712
|
async createDirOnServer(e, t) {
|
|
850
|
-
let n = await fetch(`${
|
|
713
|
+
let n = await fetch(`${b}`, {
|
|
851
714
|
method: "PUT",
|
|
852
715
|
headers: { "Content-Type": "application/json" },
|
|
853
716
|
body: JSON.stringify({
|
|
@@ -859,12 +722,12 @@ var fe = class {
|
|
|
859
722
|
}
|
|
860
723
|
async deleteFromServer(e) {
|
|
861
724
|
try {
|
|
862
|
-
await fetch(`${
|
|
725
|
+
await fetch(`${b}?path=${encodeURIComponent(e)}`, { method: "DELETE" });
|
|
863
726
|
} catch (t) {
|
|
864
727
|
console.warn(`[DockerFS] Failed to delete ${e}:`, t);
|
|
865
728
|
}
|
|
866
729
|
}
|
|
867
|
-
},
|
|
730
|
+
}, x = "launcher-folder-custom-apps", S = [
|
|
868
731
|
{
|
|
869
732
|
id: "launcher-folder-social-links",
|
|
870
733
|
name: "Social Links",
|
|
@@ -911,7 +774,7 @@ var fe = class {
|
|
|
911
774
|
order: 3
|
|
912
775
|
},
|
|
913
776
|
{
|
|
914
|
-
id:
|
|
777
|
+
id: x,
|
|
915
778
|
name: "Custom Apps",
|
|
916
779
|
fcIcon: "VscExtensions",
|
|
917
780
|
appIds: [],
|
|
@@ -919,59 +782,59 @@ var fe = class {
|
|
|
919
782
|
isPredefined: !0,
|
|
920
783
|
order: 4
|
|
921
784
|
}
|
|
922
|
-
],
|
|
923
|
-
async function
|
|
785
|
+
], C = [...S], w = null, T = null, E = 0, fe = 5e3, D = "/dist-apps/apps-manifest.json";
|
|
786
|
+
async function O(e = !1) {
|
|
924
787
|
let t = Date.now();
|
|
925
|
-
if (!e &&
|
|
926
|
-
if (
|
|
927
|
-
let n = `${
|
|
928
|
-
return
|
|
788
|
+
if (!e && w && t - E < fe) return w;
|
|
789
|
+
if (T) return T;
|
|
790
|
+
let n = `${D}?t=${t}`;
|
|
791
|
+
return T = fetch(n).then(async (e) => {
|
|
929
792
|
if (!e.ok) {
|
|
930
|
-
if (e.status === 404) return console.warn("[CustomApps] No apps manifest found at",
|
|
793
|
+
if (e.status === 404) return console.warn("[CustomApps] No apps manifest found at", D), null;
|
|
931
794
|
throw Error(`Failed to fetch manifest: ${e.status}`);
|
|
932
795
|
}
|
|
933
796
|
return e.json();
|
|
934
|
-
}).then((e) => (
|
|
797
|
+
}).then((e) => (w = e, E = Date.now(), T = null, console.log(`[CustomApps] Loaded manifest with ${e.apps.length} apps`), e)).catch((e) => (console.error("[CustomApps] Error fetching manifest:", e), T = null, null)), T;
|
|
935
798
|
}
|
|
936
|
-
function
|
|
937
|
-
return
|
|
799
|
+
function pe() {
|
|
800
|
+
return w;
|
|
938
801
|
}
|
|
939
|
-
function
|
|
940
|
-
|
|
802
|
+
function k() {
|
|
803
|
+
w = null, E = 0;
|
|
941
804
|
}
|
|
942
|
-
function
|
|
943
|
-
if (!
|
|
944
|
-
|
|
805
|
+
function me(e) {
|
|
806
|
+
if (!w) {
|
|
807
|
+
w = {
|
|
945
808
|
version: "1.0.0",
|
|
946
809
|
generated: (/* @__PURE__ */ new Date()).toISOString(),
|
|
947
810
|
apps: [e]
|
|
948
811
|
};
|
|
949
812
|
return;
|
|
950
813
|
}
|
|
951
|
-
|
|
952
|
-
...
|
|
953
|
-
apps:
|
|
814
|
+
w = w.apps.some((t) => t.id === e.id) ? {
|
|
815
|
+
...w,
|
|
816
|
+
apps: w.apps.map((t) => t.id === e.id ? e : t)
|
|
954
817
|
} : {
|
|
955
|
-
...
|
|
956
|
-
apps: [...
|
|
818
|
+
...w,
|
|
819
|
+
apps: [...w.apps, e]
|
|
957
820
|
};
|
|
958
821
|
}
|
|
959
|
-
function
|
|
960
|
-
|
|
961
|
-
...
|
|
962
|
-
apps:
|
|
822
|
+
function he(e) {
|
|
823
|
+
w &&= {
|
|
824
|
+
...w,
|
|
825
|
+
apps: w.apps.filter((t) => t.id !== e)
|
|
963
826
|
};
|
|
964
827
|
}
|
|
965
|
-
async function
|
|
966
|
-
return (await
|
|
828
|
+
async function ge() {
|
|
829
|
+
return (await O())?.apps ?? [];
|
|
967
830
|
}
|
|
968
|
-
async function
|
|
969
|
-
return (await
|
|
831
|
+
async function _e(e) {
|
|
832
|
+
return (await ge()).find((t) => t.id === e);
|
|
970
833
|
}
|
|
971
|
-
function
|
|
972
|
-
return
|
|
834
|
+
function ve(e) {
|
|
835
|
+
return w ? w.apps.some((t) => t.id === e) : !1;
|
|
973
836
|
}
|
|
974
|
-
function
|
|
837
|
+
function ye(e) {
|
|
975
838
|
return {
|
|
976
839
|
id: e.id,
|
|
977
840
|
name: e.name,
|
|
@@ -985,7 +848,7 @@ function Ce(e) {
|
|
|
985
848
|
alwaysOnTop: e.window.alwaysOnTop
|
|
986
849
|
};
|
|
987
850
|
}
|
|
988
|
-
function
|
|
851
|
+
function be(e, t) {
|
|
989
852
|
let n = new Set(t.map((e) => e.id)), r = e.filter((e) => !n.has(e.id)), i = t.map((e) => {
|
|
990
853
|
let t = {
|
|
991
854
|
id: e.id,
|
|
@@ -1002,9 +865,9 @@ function we(e, t) {
|
|
|
1002
865
|
});
|
|
1003
866
|
return [...r, ...i];
|
|
1004
867
|
}
|
|
1005
|
-
async function
|
|
1006
|
-
|
|
1007
|
-
let t = await
|
|
868
|
+
async function xe(e) {
|
|
869
|
+
k();
|
|
870
|
+
let t = await O(!0);
|
|
1008
871
|
if (!t) return {
|
|
1009
872
|
added: [],
|
|
1010
873
|
removed: [],
|
|
@@ -1019,26 +882,26 @@ async function Te(e) {
|
|
|
1019
882
|
}
|
|
1020
883
|
//#endregion
|
|
1021
884
|
//#region src/utils/sortNodes.ts
|
|
1022
|
-
var
|
|
885
|
+
var A = (e) => {
|
|
1023
886
|
let t = e.filter((e) => e.type === "folder"), n = e.filter((e) => e.type === "file"), r = (e, t) => e.name.localeCompare(t.name);
|
|
1024
887
|
return [...t.sort(r), ...n.sort(r)];
|
|
1025
|
-
},
|
|
888
|
+
}, Se = {
|
|
1026
889
|
BY_TYPE: "byType",
|
|
1027
890
|
BY_NAME: "byName",
|
|
1028
891
|
BY_DATE: "byDate"
|
|
1029
892
|
};
|
|
1030
|
-
function
|
|
893
|
+
function j(e) {
|
|
1031
894
|
return e.nodeId ? e.appId === "files" ? "folder" : "file" : "app";
|
|
1032
895
|
}
|
|
1033
|
-
var
|
|
896
|
+
var M = {
|
|
1034
897
|
app: 0,
|
|
1035
898
|
folder: 1,
|
|
1036
899
|
file: 2
|
|
1037
900
|
};
|
|
1038
|
-
function
|
|
901
|
+
function N(e, t) {
|
|
1039
902
|
return [...e].sort((e, n) => {
|
|
1040
|
-
let r =
|
|
1041
|
-
if (r !== i) return
|
|
903
|
+
let r = j(e), i = j(n);
|
|
904
|
+
if (r !== i) return M[r] - M[i];
|
|
1042
905
|
if (r === "app") {
|
|
1043
906
|
if (!t) return e.name.localeCompare(n.name);
|
|
1044
907
|
let r = t.indexOf(e.appId), i = t.indexOf(n.appId);
|
|
@@ -1047,38 +910,38 @@ function I(e, t) {
|
|
|
1047
910
|
return e.name.localeCompare(n.name);
|
|
1048
911
|
});
|
|
1049
912
|
}
|
|
1050
|
-
var
|
|
913
|
+
var P = (e, t) => {
|
|
1051
914
|
switch (t) {
|
|
1052
|
-
case "default": return
|
|
915
|
+
case "default": return N(e);
|
|
1053
916
|
case "name-asc": return [...e].sort((e, t) => e.name.localeCompare(t.name));
|
|
1054
917
|
case "name-desc": return [...e].sort((e, t) => t.name.localeCompare(e.name));
|
|
1055
918
|
case "type": return [...e].sort((e, t) => {
|
|
1056
|
-
let n =
|
|
1057
|
-
return n === r ? e.name.localeCompare(t.name) :
|
|
919
|
+
let n = j(e), r = j(t);
|
|
920
|
+
return n === r ? e.name.localeCompare(t.name) : M[n] - M[r];
|
|
1058
921
|
});
|
|
1059
|
-
default: return
|
|
922
|
+
default: return N(e);
|
|
1060
923
|
}
|
|
1061
|
-
},
|
|
924
|
+
}, Ce = (e, t) => {
|
|
1062
925
|
switch (t) {
|
|
1063
926
|
case "default":
|
|
1064
|
-
case "type": return
|
|
927
|
+
case "type": return A(e);
|
|
1065
928
|
case "name-asc": return [...e].sort((e, t) => e.name.localeCompare(t.name));
|
|
1066
929
|
case "name-desc": return [...e].sort((e, t) => t.name.localeCompare(e.name));
|
|
1067
|
-
default: return
|
|
930
|
+
default: return A(e);
|
|
1068
931
|
}
|
|
1069
|
-
},
|
|
932
|
+
}, F = {
|
|
1070
933
|
defaultWidth: 800,
|
|
1071
934
|
defaultHeight: 600,
|
|
1072
935
|
minWidth: 640,
|
|
1073
936
|
minHeight: 480
|
|
1074
|
-
},
|
|
937
|
+
}, I = [
|
|
1075
938
|
{
|
|
1076
939
|
id: "files",
|
|
1077
940
|
name: "FilesApp",
|
|
1078
941
|
icon: "📁",
|
|
1079
942
|
fcIcon: "FcOpenedFolder",
|
|
1080
943
|
hasContextMenu: !0,
|
|
1081
|
-
...
|
|
944
|
+
...F
|
|
1082
945
|
},
|
|
1083
946
|
{
|
|
1084
947
|
id: "settings",
|
|
@@ -1086,14 +949,14 @@ var De = (e, t) => {
|
|
|
1086
949
|
icon: "⚙️",
|
|
1087
950
|
fcIcon: "FcSettings",
|
|
1088
951
|
singleWindow: !0,
|
|
1089
|
-
...
|
|
952
|
+
...F
|
|
1090
953
|
},
|
|
1091
954
|
{
|
|
1092
955
|
id: "notepad",
|
|
1093
956
|
name: "Notepad",
|
|
1094
957
|
icon: "📝",
|
|
1095
958
|
fcIcon: "FcEditImage",
|
|
1096
|
-
...
|
|
959
|
+
...F
|
|
1097
960
|
},
|
|
1098
961
|
{
|
|
1099
962
|
id: "image-viewer",
|
|
@@ -1120,7 +983,7 @@ var De = (e, t) => {
|
|
|
1120
983
|
name: "Uploader",
|
|
1121
984
|
icon: "📤",
|
|
1122
985
|
fcIcon: "FcUpload",
|
|
1123
|
-
...
|
|
986
|
+
...F
|
|
1124
987
|
},
|
|
1125
988
|
{
|
|
1126
989
|
id: "menuedit",
|
|
@@ -1128,7 +991,7 @@ var De = (e, t) => {
|
|
|
1128
991
|
icon: "📁",
|
|
1129
992
|
fcIcon: "FcFolder",
|
|
1130
993
|
singleWindow: !0,
|
|
1131
|
-
...
|
|
994
|
+
...F
|
|
1132
995
|
},
|
|
1133
996
|
{
|
|
1134
997
|
id: "device-info",
|
|
@@ -1155,7 +1018,7 @@ var De = (e, t) => {
|
|
|
1155
1018
|
canMaximize: !1,
|
|
1156
1019
|
singleWindow: !0
|
|
1157
1020
|
}
|
|
1158
|
-
],
|
|
1021
|
+
], we = I.map((e) => e.id), L = [
|
|
1159
1022
|
{
|
|
1160
1023
|
id: "welcome",
|
|
1161
1024
|
name: "Welcome",
|
|
@@ -1199,7 +1062,7 @@ var De = (e, t) => {
|
|
|
1199
1062
|
name: "Terminal",
|
|
1200
1063
|
icon: "💻",
|
|
1201
1064
|
fcIcon: "FcCommandLine",
|
|
1202
|
-
...
|
|
1065
|
+
...F
|
|
1203
1066
|
},
|
|
1204
1067
|
{
|
|
1205
1068
|
id: "code-server",
|
|
@@ -1237,7 +1100,7 @@ var De = (e, t) => {
|
|
|
1237
1100
|
name: "DOOM"
|
|
1238
1101
|
}
|
|
1239
1102
|
}
|
|
1240
|
-
],
|
|
1103
|
+
], Te = L.map((e) => e.id), R = [...I, ...L], z = [
|
|
1241
1104
|
"welcome",
|
|
1242
1105
|
"uploader",
|
|
1243
1106
|
"terminal",
|
|
@@ -1250,46 +1113,46 @@ var De = (e, t) => {
|
|
|
1250
1113
|
"files",
|
|
1251
1114
|
"doom"
|
|
1252
1115
|
];
|
|
1253
|
-
function
|
|
1254
|
-
for (let t of e)
|
|
1116
|
+
function Ee(e) {
|
|
1117
|
+
for (let t of e) R.find((e) => e.id === t.id) || R.push(t);
|
|
1255
1118
|
}
|
|
1256
|
-
function
|
|
1257
|
-
for (let t of e)
|
|
1119
|
+
function De(e) {
|
|
1120
|
+
for (let t of e) z.includes(t) || z.push(t);
|
|
1258
1121
|
}
|
|
1259
1122
|
//#endregion
|
|
1260
1123
|
//#region src/utils/getAppIdForMime.ts
|
|
1261
|
-
var
|
|
1262
|
-
|
|
1263
|
-
},
|
|
1124
|
+
var B = [], V = (e) => {
|
|
1125
|
+
B.push(e);
|
|
1126
|
+
}, Oe = new Set([
|
|
1264
1127
|
"image/jpeg",
|
|
1265
1128
|
"image/png",
|
|
1266
1129
|
"image/gif",
|
|
1267
1130
|
"image/svg+xml",
|
|
1268
1131
|
"image/webp",
|
|
1269
1132
|
"image/bmp"
|
|
1270
|
-
]),
|
|
1133
|
+
]), H = new Set([
|
|
1271
1134
|
"text/plain",
|
|
1272
1135
|
"text/markdown",
|
|
1273
1136
|
"text/x-markdown",
|
|
1274
1137
|
"application/json"
|
|
1275
1138
|
]);
|
|
1276
|
-
|
|
1139
|
+
V({
|
|
1277
1140
|
appId: "pdf",
|
|
1278
1141
|
mimeTypes: ["application/pdf"],
|
|
1279
1142
|
transformContentData: (e) => ({ src: e.url ?? e.name })
|
|
1280
|
-
}),
|
|
1143
|
+
}), V({
|
|
1281
1144
|
appId: "image-viewer",
|
|
1282
|
-
mimeTypes: (e) =>
|
|
1145
|
+
mimeTypes: (e) => Oe.has(e) || e.startsWith("image/"),
|
|
1283
1146
|
transformContentData: (e) => ({ src: e.url ?? e.name })
|
|
1284
|
-
}),
|
|
1147
|
+
}), V({
|
|
1285
1148
|
appId: "notepad",
|
|
1286
|
-
mimeTypes: (e) =>
|
|
1149
|
+
mimeTypes: (e) => H.has(e) || e.startsWith("text/"),
|
|
1287
1150
|
transformContentData: (e) => ({
|
|
1288
1151
|
url: e.url,
|
|
1289
1152
|
initialName: e.name,
|
|
1290
1153
|
fileId: e.id
|
|
1291
1154
|
})
|
|
1292
|
-
}),
|
|
1155
|
+
}), V({
|
|
1293
1156
|
appId: "dos-emulator",
|
|
1294
1157
|
mimeTypes: [
|
|
1295
1158
|
"application/jsdos",
|
|
@@ -1301,14 +1164,14 @@ H({
|
|
|
1301
1164
|
name: e.name
|
|
1302
1165
|
} })
|
|
1303
1166
|
});
|
|
1304
|
-
function
|
|
1167
|
+
function ke(e) {
|
|
1305
1168
|
if (!e) return null;
|
|
1306
|
-
for (let t of
|
|
1169
|
+
for (let t of B) if (typeof t.mimeTypes == "function" ? t.mimeTypes(e) : t.mimeTypes.includes(e)) return t;
|
|
1307
1170
|
return null;
|
|
1308
1171
|
}
|
|
1309
1172
|
function U(e) {
|
|
1310
|
-
if (typeof e == "string" || e === void 0) return
|
|
1311
|
-
let t =
|
|
1173
|
+
if (typeof e == "string" || e === void 0) return ke(e)?.appId ?? "files";
|
|
1174
|
+
let t = ke(e.mimeType);
|
|
1312
1175
|
return t ? {
|
|
1313
1176
|
appId: t.appId,
|
|
1314
1177
|
contentData: t.transformContentData(e)
|
|
@@ -1390,11 +1253,11 @@ var W = {
|
|
|
1390
1253
|
setDevServerOffline: (t) => e({ devServerOffline: t }),
|
|
1391
1254
|
incrementHmrRetry: () => e((e) => ({ hmrRetryCount: e.hmrRetryCount + 1 })),
|
|
1392
1255
|
resetHmrRetry: () => e({ hmrRetryCount: 0 })
|
|
1393
|
-
})),
|
|
1394
|
-
function
|
|
1256
|
+
})), Ae = "/", K = null, q = null;
|
|
1257
|
+
function je(e) {
|
|
1395
1258
|
q = e, K = null;
|
|
1396
1259
|
}
|
|
1397
|
-
function
|
|
1260
|
+
function Me() {
|
|
1398
1261
|
if (K !== null) return K;
|
|
1399
1262
|
if (q !== null) return K = q, K;
|
|
1400
1263
|
let e = document.querySelector("base[href]");
|
|
@@ -1402,44 +1265,44 @@ function ze() {
|
|
|
1402
1265
|
let t = e.getAttribute("href");
|
|
1403
1266
|
if (t) return K = t, t;
|
|
1404
1267
|
}
|
|
1405
|
-
return K =
|
|
1268
|
+
return K = Ae, K;
|
|
1406
1269
|
}
|
|
1407
|
-
function
|
|
1270
|
+
function Ne() {
|
|
1408
1271
|
K = null;
|
|
1409
1272
|
}
|
|
1410
|
-
function
|
|
1273
|
+
function Pe(e) {
|
|
1411
1274
|
if (!e || e.startsWith("http://") || e.startsWith("https://") || e.startsWith("idb://") || e.startsWith("blob:") || e.startsWith("/")) return e;
|
|
1412
|
-
let t =
|
|
1275
|
+
let t = Me();
|
|
1413
1276
|
return (t.endsWith("/") ? t : `${t}/`) + e;
|
|
1414
1277
|
}
|
|
1415
1278
|
//#endregion
|
|
1416
1279
|
//#region src/constants/breakpoints.ts
|
|
1417
|
-
var
|
|
1280
|
+
var Fe = {
|
|
1418
1281
|
MOBILE: 768,
|
|
1419
1282
|
TABLET: 1024,
|
|
1420
1283
|
DESKTOP: 1280
|
|
1421
|
-
},
|
|
1284
|
+
}, Ie = {
|
|
1422
1285
|
WIDTH: 1280,
|
|
1423
1286
|
HEIGHT: 800
|
|
1424
|
-
},
|
|
1425
|
-
let e = await fetch(
|
|
1287
|
+
}, Le = 48, Re = 80, ze = 80, Be = 20, Ve = Ie.WIDTH, He = Ie.HEIGHT, Ue = async () => {
|
|
1288
|
+
let e = await fetch(Pe("fs-manifest.json")), t = e.headers.get("content-type")?.includes("application/json");
|
|
1426
1289
|
return e.ok && t ? await e.json() : null;
|
|
1427
|
-
},
|
|
1428
|
-
function
|
|
1429
|
-
return e() ? (console.log("[FileSystem] Using DockerFileSystemAdapter"), new
|
|
1290
|
+
}, J = new te();
|
|
1291
|
+
function We() {
|
|
1292
|
+
return e() ? (console.log("[FileSystem] Using DockerFileSystemAdapter"), new de()) : (console.log("[FileSystem] Using IndexedDBFileSystem"), new oe());
|
|
1430
1293
|
}
|
|
1431
|
-
var
|
|
1432
|
-
|
|
1433
|
-
},
|
|
1434
|
-
async function
|
|
1294
|
+
var Y = We(), Ge = () => {
|
|
1295
|
+
Y.clearAll().catch(() => {});
|
|
1296
|
+
}, Ke = () => J.reset();
|
|
1297
|
+
async function qe(e, t) {
|
|
1435
1298
|
if (e.startsWith("idb://")) {
|
|
1436
|
-
let t = await
|
|
1299
|
+
let t = await Y.getBlob(e);
|
|
1437
1300
|
return t ? t.text() : "";
|
|
1438
1301
|
}
|
|
1439
1302
|
let n = e.startsWith("http") || e.startsWith("/") ? e : `/${e}`, r = await fetch(n, { signal: t });
|
|
1440
1303
|
return r.ok ? r.text() : "";
|
|
1441
1304
|
}
|
|
1442
|
-
var
|
|
1305
|
+
var X = () => Y.getRootNodes().find((e) => e.type === "folder" && e.name === "Desktop")?.id ?? null, Je = (e, t) => {
|
|
1443
1306
|
let n = new Set(e.map((e) => `${e.x},${e.y}`)), r = Math.max(1, Math.floor((t - 20) / 80));
|
|
1444
1307
|
for (let e = 0;; e++) {
|
|
1445
1308
|
let t = 20 + e * 80;
|
|
@@ -1451,22 +1314,22 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1451
1314
|
};
|
|
1452
1315
|
}
|
|
1453
1316
|
}
|
|
1454
|
-
},
|
|
1317
|
+
}, Ye = (e, t) => {
|
|
1455
1318
|
let n = Math.max(1, Math.floor((t - 20) / 80)), r = Math.floor(e / n), i = e % n;
|
|
1456
1319
|
return {
|
|
1457
1320
|
x: 20 + r * 80,
|
|
1458
1321
|
y: 20 + i * 80
|
|
1459
1322
|
};
|
|
1460
|
-
},
|
|
1461
|
-
let r =
|
|
1462
|
-
return [...e,
|
|
1323
|
+
}, Z = (e, t, n) => {
|
|
1324
|
+
let r = Je(e, n);
|
|
1325
|
+
return [...e, l({
|
|
1463
1326
|
...t,
|
|
1464
1327
|
...r
|
|
1465
1328
|
})];
|
|
1466
|
-
},
|
|
1467
|
-
let e =
|
|
1468
|
-
if (!e || !
|
|
1469
|
-
let t =
|
|
1329
|
+
}, Q = () => {
|
|
1330
|
+
let e = X();
|
|
1331
|
+
if (!e || !Y.isReady()) return;
|
|
1332
|
+
let t = Y.getChildren(e), n = new Set(t.map((e) => e.id)), r = new Set(t.map((e) => e.name)), { icons: i, viewportHeight: a } = $.getState(), o = i.filter((e) => !e.nodeId || n.has(e.nodeId) || r.has(e.name));
|
|
1470
1333
|
for (let e of t) {
|
|
1471
1334
|
let t = o.find((t) => t.name === e.name);
|
|
1472
1335
|
if (t) t.nodeId !== e.id && (o = o.map((t) => t.name === e.name ? {
|
|
@@ -1475,7 +1338,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1475
1338
|
} : t));
|
|
1476
1339
|
else {
|
|
1477
1340
|
let t = e.type === "folder", n = t ? e : null, r = t ? null : e, i = t ? "files" : r ? U(r)?.appId ?? "" : "";
|
|
1478
|
-
o =
|
|
1341
|
+
o = Z(o, {
|
|
1479
1342
|
name: e.name,
|
|
1480
1343
|
icon: t ? "📁" : "📄",
|
|
1481
1344
|
iconName: n?.iconName,
|
|
@@ -1485,52 +1348,52 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1485
1348
|
}, a);
|
|
1486
1349
|
}
|
|
1487
1350
|
}
|
|
1488
|
-
let s =
|
|
1351
|
+
let s = N(o);
|
|
1489
1352
|
$.setState({ icons: s.map((e, t) => ({
|
|
1490
1353
|
...e,
|
|
1491
|
-
...
|
|
1354
|
+
...Ye(t, a)
|
|
1492
1355
|
})) });
|
|
1493
|
-
}, $ = n()(
|
|
1356
|
+
}, $ = n()(i((e, n) => ({
|
|
1494
1357
|
windows: [],
|
|
1495
1358
|
openWindow: (t) => {
|
|
1496
|
-
let n =
|
|
1359
|
+
let n = J.open(t);
|
|
1497
1360
|
e((e) => ({ windows: [...e.windows, n] }));
|
|
1498
1361
|
},
|
|
1499
1362
|
closeWindow: (t) => {
|
|
1500
|
-
|
|
1363
|
+
J.close(t), e((e) => ({ windows: e.windows.filter((e) => e.id !== t) }));
|
|
1501
1364
|
},
|
|
1502
1365
|
minimizeWindow: (t) => {
|
|
1503
|
-
|
|
1366
|
+
J.minimize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
|
|
1504
1367
|
...e,
|
|
1505
1368
|
state: "minimized"
|
|
1506
1369
|
} : e) }));
|
|
1507
1370
|
},
|
|
1508
1371
|
maximizeWindow: (t) => {
|
|
1509
|
-
|
|
1372
|
+
J.maximize(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
|
|
1510
1373
|
...e,
|
|
1511
1374
|
state: "maximized"
|
|
1512
1375
|
} : e) }));
|
|
1513
1376
|
},
|
|
1514
1377
|
restoreWindow: (t) => {
|
|
1515
|
-
|
|
1378
|
+
J.restore(t), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
|
|
1516
1379
|
...e,
|
|
1517
1380
|
state: "normal"
|
|
1518
1381
|
} : e) }));
|
|
1519
1382
|
},
|
|
1520
1383
|
focusWindow: (t) => {
|
|
1521
|
-
|
|
1522
|
-
let n =
|
|
1384
|
+
J.focus(t);
|
|
1385
|
+
let n = J.getById(t);
|
|
1523
1386
|
n && e((e) => ({ windows: e.windows.map((e) => e.id === t ? n : e) }));
|
|
1524
1387
|
},
|
|
1525
1388
|
moveWindow: (t, n, r) => {
|
|
1526
|
-
|
|
1389
|
+
J.move(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
|
|
1527
1390
|
...e,
|
|
1528
1391
|
x: n,
|
|
1529
1392
|
y: r
|
|
1530
1393
|
} : e) }));
|
|
1531
1394
|
},
|
|
1532
1395
|
resizeWindow: (t, n, r) => {
|
|
1533
|
-
|
|
1396
|
+
J.resize(t, n, r), e((e) => ({ windows: e.windows.map((e) => e.id === t ? {
|
|
1534
1397
|
...e,
|
|
1535
1398
|
width: n,
|
|
1536
1399
|
height: r
|
|
@@ -1538,7 +1401,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1538
1401
|
},
|
|
1539
1402
|
icons: [],
|
|
1540
1403
|
addIcon: (t) => {
|
|
1541
|
-
let n =
|
|
1404
|
+
let n = l(t);
|
|
1542
1405
|
e((e) => ({ icons: [...e.icons, n] }));
|
|
1543
1406
|
},
|
|
1544
1407
|
removeIcon: (t) => {
|
|
@@ -1549,24 +1412,24 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1549
1412
|
isFsReady: !1,
|
|
1550
1413
|
initFs: async () => {
|
|
1551
1414
|
try {
|
|
1552
|
-
|
|
1553
|
-
let r = await
|
|
1415
|
+
Y.isReady() && Y.reinitialize ? await Y.reinitialize() : Y.isReady() || await Y.initialize();
|
|
1416
|
+
let r = await Ue();
|
|
1554
1417
|
if (r) {
|
|
1555
|
-
let e = r.sha ?? null, t = await
|
|
1556
|
-
|
|
1418
|
+
let e = r.sha ?? null, t = await Y.getManifestSha();
|
|
1419
|
+
Y.isEmpty() ? (await Y.seed(r), e && await Y.saveManifestSha(e)) : t !== e && e !== null && (await Y.mergeSeed(r), await Y.saveManifestSha(e));
|
|
1557
1420
|
}
|
|
1558
1421
|
if (e({
|
|
1559
|
-
fsNodes:
|
|
1560
|
-
desktopFolderId:
|
|
1422
|
+
fsNodes: Y.getAllNodes(),
|
|
1423
|
+
desktopFolderId: X(),
|
|
1561
1424
|
isFsReady: !0
|
|
1562
1425
|
}), !t()) {
|
|
1563
1426
|
let t = null;
|
|
1564
1427
|
try {
|
|
1565
|
-
if (t = await
|
|
1428
|
+
if (t = await O(), t?.apps?.length) {
|
|
1566
1429
|
e({ customApps: t.apps });
|
|
1567
1430
|
for (let e of t.apps) G.getState().registerApp(e);
|
|
1568
1431
|
}
|
|
1569
|
-
let r = new Set(t?.apps?.map((e) => e.id) ?? []), i = n().icons.filter((e) => e.appId && !
|
|
1432
|
+
let r = new Set(t?.apps?.map((e) => e.id) ?? []), i = n().icons.filter((e) => e.appId && !R.find((t) => t.id === e.appId) && !r.has(e.appId)).map((e) => e.appId);
|
|
1570
1433
|
i.length > 0 && e((e) => ({
|
|
1571
1434
|
icons: e.icons.filter((e) => !i.includes(e.appId)),
|
|
1572
1435
|
customApps: e.customApps.filter((e) => !i.includes(e.id))
|
|
@@ -1575,9 +1438,9 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1575
1438
|
console.warn("[DesktopStore] Failed to load custom apps manifest:", e);
|
|
1576
1439
|
}
|
|
1577
1440
|
}
|
|
1578
|
-
for (let t of
|
|
1579
|
-
let r =
|
|
1580
|
-
r && (n().icons.some((e) => e.appId === t) || e({ icons:
|
|
1441
|
+
for (let t of z) {
|
|
1442
|
+
let r = R.find((e) => e.id === t);
|
|
1443
|
+
r && (n().icons.some((e) => e.appId === t) || e({ icons: Z(n().icons, {
|
|
1581
1444
|
name: r.name,
|
|
1582
1445
|
icon: r.icon,
|
|
1583
1446
|
appId: t
|
|
@@ -1585,45 +1448,45 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1585
1448
|
}
|
|
1586
1449
|
if (!t()) {
|
|
1587
1450
|
let t = n().customApps;
|
|
1588
|
-
if (t.length) for (let r of t) n().icons.some((e) => e.appId === r.id) || e({ icons:
|
|
1451
|
+
if (t.length) for (let r of t) n().icons.some((e) => e.appId === r.id) || e({ icons: Z(n().icons, {
|
|
1589
1452
|
name: r.name,
|
|
1590
1453
|
icon: r.icon,
|
|
1591
1454
|
appId: r.id
|
|
1592
1455
|
}, n().viewportHeight) });
|
|
1593
1456
|
}
|
|
1594
|
-
let i =
|
|
1457
|
+
let i = X();
|
|
1595
1458
|
if (!i) return;
|
|
1596
|
-
|
|
1459
|
+
Y.getChildren(i).forEach((t) => {
|
|
1597
1460
|
if (t.type !== "file") return;
|
|
1598
1461
|
let r = n().icons.find((e) => e.name === t.name);
|
|
1599
1462
|
r ? r.nodeId || e({ icons: n().icons.map((e) => e.name === t.name ? {
|
|
1600
1463
|
...e,
|
|
1601
1464
|
nodeId: t.id
|
|
1602
|
-
} : e) }) : e({ icons:
|
|
1465
|
+
} : e) }) : e({ icons: Z(n().icons, {
|
|
1603
1466
|
name: t.name,
|
|
1604
1467
|
icon: "📄",
|
|
1605
1468
|
appId: U(t.mimeType),
|
|
1606
1469
|
nodeId: t.id
|
|
1607
1470
|
}, n().viewportHeight) });
|
|
1608
|
-
}),
|
|
1471
|
+
}), Q();
|
|
1609
1472
|
} catch (t) {
|
|
1610
1473
|
console.error("Failed to initialize filesystem:", t), e({ isFsReady: !0 });
|
|
1611
1474
|
}
|
|
1612
1475
|
},
|
|
1613
1476
|
createFile: async (t, r, i, a) => {
|
|
1614
|
-
let o = await
|
|
1477
|
+
let o = await Y.createFile(t, r, i, a), s = X(), { icons: c, viewportHeight: l } = n(), u = i && i === s && !c.some((e) => e.name === o.name) ? Z(c, {
|
|
1615
1478
|
name: o.name,
|
|
1616
1479
|
icon: "📄",
|
|
1617
1480
|
appId: U(o.mimeType),
|
|
1618
1481
|
nodeId: o.id
|
|
1619
1482
|
}, l) : c;
|
|
1620
1483
|
return e({
|
|
1621
|
-
fsNodes:
|
|
1484
|
+
fsNodes: Y.getAllNodes(),
|
|
1622
1485
|
icons: u
|
|
1623
1486
|
}), o;
|
|
1624
1487
|
},
|
|
1625
1488
|
createFolder: async (t, r, i, a) => {
|
|
1626
|
-
let o = await
|
|
1489
|
+
let o = await Y.createFolder(t, r, i, a), s = X(), { icons: c, viewportHeight: l } = n(), u = r && r === s && !c.some((e) => e.name === o.name) ? Z(c, {
|
|
1627
1490
|
name: o.name,
|
|
1628
1491
|
icon: "📁",
|
|
1629
1492
|
iconName: o.iconName,
|
|
@@ -1632,28 +1495,28 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1632
1495
|
nodeId: o.id
|
|
1633
1496
|
}, l) : c;
|
|
1634
1497
|
return e({
|
|
1635
|
-
fsNodes:
|
|
1498
|
+
fsNodes: Y.getAllNodes(),
|
|
1636
1499
|
icons: u
|
|
1637
1500
|
}), o;
|
|
1638
1501
|
},
|
|
1639
1502
|
updateFile: async (t, n) => {
|
|
1640
|
-
await
|
|
1503
|
+
await Y.updateFile(t, n), e({ fsNodes: Y.getAllNodes() });
|
|
1641
1504
|
},
|
|
1642
1505
|
deleteNode: async (t) => {
|
|
1643
|
-
let n =
|
|
1644
|
-
if (await
|
|
1645
|
-
let t =
|
|
1506
|
+
let n = Y.getNode(t);
|
|
1507
|
+
if (await Y.delete(t), e({ fsNodes: Y.getAllNodes() }), n?.type === "file" || n?.type === "folder") {
|
|
1508
|
+
let t = X();
|
|
1646
1509
|
n.parentId && n.parentId === t && e((e) => ({ icons: e.icons.filter((e) => e.name !== n.name) }));
|
|
1647
1510
|
}
|
|
1648
1511
|
},
|
|
1649
1512
|
moveNode: async (t, n) => {
|
|
1650
|
-
await
|
|
1513
|
+
await Y.move(t, n), e({ fsNodes: Y.getAllNodes() });
|
|
1651
1514
|
},
|
|
1652
1515
|
setFsNodes: (t) => {
|
|
1653
1516
|
e({ fsNodes: t });
|
|
1654
1517
|
},
|
|
1655
1518
|
syncIcons: () => {
|
|
1656
|
-
|
|
1519
|
+
Q();
|
|
1657
1520
|
},
|
|
1658
1521
|
clipboard: {
|
|
1659
1522
|
content: [],
|
|
@@ -1703,22 +1566,22 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1703
1566
|
} });
|
|
1704
1567
|
},
|
|
1705
1568
|
mergeSeed: async (t) => {
|
|
1706
|
-
await
|
|
1707
|
-
fsNodes:
|
|
1708
|
-
desktopFolderId:
|
|
1569
|
+
await Y.mergeSeed(t), e({
|
|
1570
|
+
fsNodes: Y.getAllNodes(),
|
|
1571
|
+
desktopFolderId: X()
|
|
1709
1572
|
});
|
|
1710
1573
|
},
|
|
1711
1574
|
mergeDesktopApps: (t) => {
|
|
1712
1575
|
for (let r of t) {
|
|
1713
|
-
let t =
|
|
1714
|
-
t && (n().icons.some((e) => e.appId === r) || e({ icons:
|
|
1576
|
+
let t = R.find((e) => e.id === r);
|
|
1577
|
+
t && (n().icons.some((e) => e.appId === r) || e({ icons: Z(n().icons, {
|
|
1715
1578
|
name: t.name,
|
|
1716
1579
|
icon: t.icon,
|
|
1717
1580
|
appId: r
|
|
1718
1581
|
}, n().viewportHeight) }));
|
|
1719
1582
|
}
|
|
1720
|
-
let r =
|
|
1721
|
-
if (r) for (let t of
|
|
1583
|
+
let r = X();
|
|
1584
|
+
if (r) for (let t of Y.getChildren(r)) t.type === "file" && (n().icons.some((e) => e.name === t.name) || e({ icons: Z(n().icons, {
|
|
1722
1585
|
name: t.name,
|
|
1723
1586
|
icon: "📄",
|
|
1724
1587
|
appId: U(t.mimeType),
|
|
@@ -1752,8 +1615,8 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1752
1615
|
removeNotification: (t) => {
|
|
1753
1616
|
e((e) => ({ notifications: e.notifications.filter((e) => e.id !== t) }));
|
|
1754
1617
|
},
|
|
1755
|
-
viewportWidth:
|
|
1756
|
-
viewportHeight:
|
|
1618
|
+
viewportWidth: Ve,
|
|
1619
|
+
viewportHeight: He,
|
|
1757
1620
|
isViewportInitialized: !1,
|
|
1758
1621
|
setViewportSize: (t, r) => {
|
|
1759
1622
|
let i = n().viewportWidth, a = n().viewportHeight, o = n().isViewportInitialized;
|
|
@@ -1796,32 +1659,32 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1796
1659
|
height: d
|
|
1797
1660
|
};
|
|
1798
1661
|
});
|
|
1799
|
-
for (let e of c)
|
|
1662
|
+
for (let e of c) J.move(e.id, e.x, e.y), J.resize(e.id, e.width, e.height);
|
|
1800
1663
|
e({ windows: c });
|
|
1801
1664
|
},
|
|
1802
1665
|
desktopSortMode: "default",
|
|
1803
1666
|
filesSortMode: "default",
|
|
1804
1667
|
setDesktopSortMode: (t) => {
|
|
1805
1668
|
e({ desktopSortMode: t });
|
|
1806
|
-
let r = n().icons, i =
|
|
1669
|
+
let r = n().icons, i = P(r, t), a = n().viewportHeight;
|
|
1807
1670
|
e({ icons: i.map((e, t) => ({
|
|
1808
1671
|
...e,
|
|
1809
|
-
...
|
|
1672
|
+
...Ye(t, a)
|
|
1810
1673
|
})) });
|
|
1811
1674
|
},
|
|
1812
1675
|
setFilesSortMode: (t) => {
|
|
1813
1676
|
e({ filesSortMode: t });
|
|
1814
1677
|
},
|
|
1815
|
-
launcherFolders:
|
|
1678
|
+
launcherFolders: C,
|
|
1816
1679
|
setLauncherFolders: (t) => {
|
|
1817
1680
|
e({ launcherFolders: t });
|
|
1818
1681
|
},
|
|
1819
1682
|
createLauncherFolder: (t) => {
|
|
1820
|
-
let n =
|
|
1683
|
+
let n = u(t);
|
|
1821
1684
|
return e((e) => ({ launcherFolders: [...e.launcherFolders, n].sort((e, t) => e.order - t.order) })), n;
|
|
1822
1685
|
},
|
|
1823
1686
|
updateLauncherFolder: (t, n) => {
|
|
1824
|
-
e((e) => ({ launcherFolders: e.launcherFolders.map((e) => e.id === t ?
|
|
1687
|
+
e((e) => ({ launcherFolders: e.launcherFolders.map((e) => e.id === t ? f(e, n) : e) }));
|
|
1825
1688
|
},
|
|
1826
1689
|
deleteLauncherFolder: (t) => {
|
|
1827
1690
|
e((e) => ({ launcherFolders: e.launcherFolders.filter((e) => e.id !== t || e.isPredefined) }));
|
|
@@ -1849,7 +1712,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1849
1712
|
e({ customApps: t });
|
|
1850
1713
|
},
|
|
1851
1714
|
handleCustomAppRegistered: (t) => {
|
|
1852
|
-
e((e) => ({ customApps: e.customApps.some((e) => e.id === t.id) ? e.customApps.map((e) => e.id === t.id ? t : e) : [...e.customApps, t] })), n().icons.find((e) => e.appId === t.id) || e((e) => ({ icons:
|
|
1715
|
+
e((e) => ({ customApps: e.customApps.some((e) => e.id === t.id) ? e.customApps.map((e) => e.id === t.id ? t : e) : [...e.customApps, t] })), n().icons.find((e) => e.appId === t.id) || e((e) => ({ icons: Z(e.icons, {
|
|
1853
1716
|
name: t.name,
|
|
1854
1717
|
icon: t.icon || "FcDataSheet",
|
|
1855
1718
|
appId: t.id
|
|
@@ -1873,7 +1736,7 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1873
1736
|
}),
|
|
1874
1737
|
merge: (e, t) => {
|
|
1875
1738
|
let n = e, r = ["createItem"], i = (n.windows ?? []).filter((e) => !r.includes(e.content)).map((e) => {
|
|
1876
|
-
let r =
|
|
1739
|
+
let r = R.find((t) => t.id === e.content), i = (n.customApps ?? t.customApps)?.find((t) => t.id === e.content);
|
|
1877
1740
|
return {
|
|
1878
1741
|
...e,
|
|
1879
1742
|
icon: e.icon ?? r?.icon ?? i?.icon,
|
|
@@ -1881,12 +1744,12 @@ var Z = () => X.getRootNodes().find((e) => e.type === "folder" && e.name === "De
|
|
|
1881
1744
|
iconUrl: e.iconUrl ?? r?.iconUrl,
|
|
1882
1745
|
iconColor: r?.iconColor,
|
|
1883
1746
|
canMaximize: r?.canMaximize ?? i?.window?.canMaximize,
|
|
1884
|
-
minWidth: r?.minWidth === !1 || i?.window?.minWidth === !1 ? void 0 : r?.minWidth ?? i?.window?.minWidth ??
|
|
1885
|
-
minHeight: r?.minHeight === !1 || i?.window?.minHeight === !1 ? void 0 : r?.minHeight ?? i?.window?.minHeight ??
|
|
1747
|
+
minWidth: r?.minWidth === !1 || i?.window?.minWidth === !1 ? void 0 : r?.minWidth ?? i?.window?.minWidth ?? F.minWidth,
|
|
1748
|
+
minHeight: r?.minHeight === !1 || i?.window?.minHeight === !1 ? void 0 : r?.minHeight ?? i?.window?.minHeight ?? F.minHeight
|
|
1886
1749
|
};
|
|
1887
1750
|
});
|
|
1888
|
-
|
|
1889
|
-
let a = new Set(
|
|
1751
|
+
J.loadWindows(i);
|
|
1752
|
+
let a = new Set(C.map((e) => e.id)), o = (n.launcherFolders ?? []).filter((e) => !a.has(e.id)), s = [...C, ...o].sort((e, t) => e.order - t.order), c = n.viewportWidth != null && n.viewportHeight != null;
|
|
1890
1753
|
return {
|
|
1891
1754
|
...t,
|
|
1892
1755
|
...n,
|
|
@@ -1902,4 +1765,4 @@ typeof window < "u" && (window.__DESKTOP_STATE__ = $.getState(), $.subscribe((e)
|
|
|
1902
1765
|
window.__DESKTOP_STATE__ = e;
|
|
1903
1766
|
}));
|
|
1904
1767
|
//#endregion
|
|
1905
|
-
export {
|
|
1768
|
+
export { oe as $, we as A, pe as B, R as C, L as D, De as E, A as F, he as G, ge as H, Ce as I, x as J, xe as K, k as L, Se as M, N, Te as O, P, ue as Q, ye as R, V as S, Ee as T, ve as U, _e as V, be as W, S as X, C as Y, de as Z, je as _, qe as a, u as at, H as b, Ve as c, l as ct, ze as d, o as dt, g as et, Le as f, Pe as g, Ne as h, Ke as i, p as it, F as j, I as k, Re as l, c as lt, Me as m, Y as n, te as nt, $ as o, d as ot, Fe as p, me as q, Ge as r, m as rt, He as s, f as st, Ue as t, h as tt, Be as u, s as ut, G as v, z as w, U as x, Oe as y, O as z };
|