hfs 3.2.2 → 3.3.0-beta2
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/admin/assets/AccountsPage-DB7ljNHT.js +3 -0
- package/admin/assets/ArrayField-Qj2iHD7I.js +2 -0
- package/admin/assets/ConfigFilePage-TErmt0PK.js +4 -0
- package/admin/assets/CustomHtmlPage-CVmk-_JS.js +2 -0
- package/admin/assets/DataTable-DmnQXyFO.js +119 -0
- package/admin/assets/DateTimeField-BUWd2w9-.js +1 -0
- package/admin/assets/EventManager-9vwKg8as.js +1 -0
- package/admin/assets/FileField-DoBaSTxF.js +117 -0
- package/admin/assets/InternetPage-Biuer1tb.js +8 -0
- package/admin/assets/LangPage-Vd24DNK5.js +2 -0
- package/admin/assets/LogsPage-BdvttEqM.js +3 -0
- package/admin/assets/MenuButton-CHLgqU5W.js +1 -0
- package/admin/assets/MonitorPage-DlXkZUmT.js +2 -0
- package/admin/assets/OptionsPage-Zi8FmrjE.js +3 -0
- package/admin/assets/PluginsPage-BzwEIFt5.js +1 -0
- package/admin/assets/Tabs-CVipqhB9.js +1 -0
- package/admin/assets/TextEditor-BeS-mR2I.css +1 -0
- package/admin/assets/TextEditor-clbVugYM.js +34 -0
- package/admin/assets/VfsPathField-YUCV9PfL.js +1 -0
- package/admin/assets/{af-BDoqNBMg.js → af-B1Gi_bpo.js} +1 -1
- package/admin/assets/agentIcons-DW9QViyx.js +1 -0
- package/admin/assets/{am-DXBvKJ3X.js → am-B-dZnhsM.js} +1 -1
- package/admin/assets/{ar-BJIoxKTh.js → ar-DsQGp6kZ.js} +1 -1
- package/admin/assets/{ar-dz-C9l3uc_3.js → ar-dz-CxlYiKtP.js} +1 -1
- package/admin/assets/{ar-iq-DKH8u2lX.js → ar-iq-y4_Puo4B.js} +1 -1
- package/admin/assets/{ar-kw-D3gJalQp.js → ar-kw-DTOZ0VC7.js} +1 -1
- package/admin/assets/{ar-ly-BZJzWFeR.js → ar-ly-lPV9gApv.js} +1 -1
- package/admin/assets/{ar-ma-DabiOCr0.js → ar-ma-DZqLSpeB.js} +1 -1
- package/admin/assets/{ar-sa-C7suzSCY.js → ar-sa-v-5vsIOR.js} +1 -1
- package/admin/assets/{ar-tn-BvBucEx0.js → ar-tn-a4q8lhXy.js} +1 -1
- package/admin/assets/{az-CPUppH2M.js → az-Cj4yq-j-.js} +1 -1
- package/admin/assets/baseUrl-Do5CYuBZ.js +2 -0
- package/admin/assets/{be-vzvhX2dl.js → be-B-3QlFM8.js} +1 -1
- package/admin/assets/{bg-09Xbj_Y3.js → bg-A8-93xdK.js} +1 -1
- package/admin/assets/{bi-CvhiuiE9.js → bi-bwwEWGG2.js} +1 -1
- package/admin/assets/{bm-DtJAZAkZ.js → bm-DpLmtYXC.js} +1 -1
- package/admin/assets/{bn-Dnzh2x6I.js → bn-DPL_BgLw.js} +1 -1
- package/admin/assets/{bn-bd-xEy4797g.js → bn-bd-DukmY_R5.js} +1 -1
- package/admin/assets/{bo-vuPmptG3.js → bo-68KDEKGI.js} +1 -1
- package/admin/assets/{br-C9xH4OD3.js → br-gA86uwqY.js} +1 -1
- package/admin/assets/{bs-BB_uCUp1.js → bs-SfthSp42.js} +1 -1
- package/admin/assets/{ca-D7LKaf98.js → ca-8qUtZKFe.js} +1 -1
- package/admin/assets/{cs-DMFTNdNC.js → cs-CTHcqPCX.js} +1 -1
- package/admin/assets/{cv-DNUjJwnO.js → cv-BhBW7hcO.js} +1 -1
- package/admin/assets/{cy-qmAOTPwC.js → cy-BYTS4PNY.js} +1 -1
- package/admin/assets/{da-DDX54iM9.js → da-BiwfOrRd.js} +1 -1
- package/admin/assets/{de-BBmlsfbM.js → de-BFqyDxvo.js} +1 -1
- package/admin/assets/{de-at-CuMZqYfu.js → de-at-C7zUXXVL.js} +1 -1
- package/admin/assets/{de-ch-s8OXKb-5.js → de-ch-BVHosAzt.js} +1 -1
- package/admin/assets/dist-DC2A6cD2.js +1 -0
- package/admin/assets/{dv-Cjs3QDBN.js → dv-dvig99nB.js} +1 -1
- package/admin/assets/{el-BsAOrUDP.js → el-BtJcYjoT.js} +1 -1
- package/admin/assets/en-B26lXzkx.js +1 -0
- package/admin/assets/{en-au-8tMHM2OT.js → en-au-CWzJ565h.js} +1 -1
- package/admin/assets/{en-ca-c9jM4M_8.js → en-ca-nou5bZ6q.js} +1 -1
- package/admin/assets/{en-in-D2ULzXMp.js → en-gb-kl3giCnh.js} +1 -1
- package/admin/assets/{en-ie-D4_e3kV6.js → en-ie-C55e3apX.js} +1 -1
- package/admin/assets/{en-il-BoaZOven.js → en-il-HYabE6j7.js} +1 -1
- package/admin/assets/{en-tt-Cn72OR4N.js → en-in-Bri93cNM.js} +1 -1
- package/admin/assets/{en-nz-grrmB3dg.js → en-nz-BqhpzeuX.js} +1 -1
- package/admin/assets/{en-sg-Cmqxpoir.js → en-sg-q8xv-C8V.js} +1 -1
- package/admin/assets/{en-gb-unFIXx9f.js → en-tt-BqzQXPA5.js} +1 -1
- package/admin/assets/{eo-Cqxmc0TT.js → eo-5Y962E4S.js} +1 -1
- package/admin/assets/{es-CkjKdFZ3.js → es-DOQ7swrW.js} +1 -1
- package/admin/assets/{es-do-CTcTshup.js → es-do-Diob7juh.js} +1 -1
- package/admin/assets/{es-mx-DMXgMMxs.js → es-mx-miy7RFDh.js} +1 -1
- package/admin/assets/{es-pr-DNCV91L3.js → es-pr-CZa5Iw2n.js} +1 -1
- package/admin/assets/{es-us-C7o2mlIH.js → es-us-BX03CBQf.js} +1 -1
- package/admin/assets/{esm-DvUbRuYx.js → esm-Dtaf0rWK.js} +1 -1
- package/admin/assets/{et-DaPpH-gK.js → et-DGWOmMlC.js} +1 -1
- package/admin/assets/{eu-DfKyFruu.js → eu-D1Qj8RMh.js} +1 -1
- package/admin/assets/{fa-xWrBjePb.js → fa--TfwKnl9.js} +1 -1
- package/admin/assets/{fi-BOWDMsDS.js → fi-Dcbkv925.js} +1 -1
- package/admin/assets/{fo-B3FupW8R.js → fo-BPGX_WF4.js} +1 -1
- package/admin/assets/{fr-DZBDBkwp.js → fr-CNsDHzNh.js} +1 -1
- package/admin/assets/{fr-ca-CRePPJJ5.js → fr-ca-BsNs3KIJ.js} +1 -1
- package/admin/assets/{fr-ch-pFKvYU8D.js → fr-ch-BBmdtvlB.js} +1 -1
- package/admin/assets/{fy-0k7RzHUH.js → fy-q3UE-mqp.js} +1 -1
- package/admin/assets/{ga-D31rB2ys.js → ga-C-DOgnYh.js} +1 -1
- package/admin/assets/{gd-CbgY-FFE.js → gd-mLMfry_l.js} +1 -1
- package/admin/assets/{gl-DrtvS9gt.js → gl-CO8Bj9I_.js} +1 -1
- package/admin/assets/{gom-latn-Dkke3GyE.js → gom-latn-myglMmHV.js} +1 -1
- package/admin/assets/{gu-BlEipYhR.js → gu-Bdz1OpMU.js} +1 -1
- package/admin/assets/{he-BrHT6OLB.js → he-C4lqk2AA.js} +1 -1
- package/admin/assets/{hi-Bx0zlAgr.js → hi-h0Byc_UN.js} +1 -1
- package/admin/assets/{hr-CoFYGbr6.js → hr-CZV7Za1n.js} +1 -1
- package/admin/assets/{ht-Df5xKo4a.js → ht-Dg2blNvl.js} +1 -1
- package/admin/assets/{hu-BFTN3q6-.js → hu-DbOVhd9K.js} +1 -1
- package/admin/assets/{hy-am-DuZTJQed.js → hy-am-E48Q7kWE.js} +1 -1
- package/admin/assets/icons-3rupj9Xr.js +1 -0
- package/admin/assets/{id-DBZ5nPkf.js → id-Cd4yWevW.js} +1 -1
- package/admin/assets/{index-eeRX25da.css → index-11n5z0Ez.css} +1 -1
- package/admin/assets/index-Dsq-sVu9.js +477 -0
- package/admin/assets/{is-CmeHm47B.js → is-BJZYSfrA.js} +1 -1
- package/admin/assets/{it-Cv3fjOA9.js → it-BRaqqFz4.js} +1 -1
- package/admin/assets/{it-ch-DCTyHA3T.js → it-ch-BkLqxaff.js} +1 -1
- package/admin/assets/{ja-DHNVXAM5.js → ja-X_I-25cD.js} +1 -1
- package/admin/assets/{jv-BdNIxhWv.js → jv-BBBx3R3v.js} +1 -1
- package/admin/assets/{ka-D-joD0QB.js → ka-D9Yrujqk.js} +1 -1
- package/admin/assets/{kk-8wRNNjxz.js → kk-Bz450_o8.js} +1 -1
- package/admin/assets/{km-dUWOg1uK.js → km-CKOAqvHM.js} +1 -1
- package/admin/assets/{kn-CwQbzel0.js → kn-k2xTBR7a.js} +1 -1
- package/admin/assets/{ko-D_gn9Sfw.js → ko-BCvoCYib.js} +1 -1
- package/admin/assets/{ku-Dh3MRML3.js → ku-D6Rloctr.js} +1 -1
- package/admin/assets/{ky-CWYuRvil.js → ky-C54qnEzk.js} +1 -1
- package/admin/assets/{lb-Cc2xsSIx.js → lb-y3rkrWB2.js} +1 -1
- package/admin/assets/{lo-CkwNFDBz.js → lo-nA_dPnOU.js} +1 -1
- package/admin/assets/{lt-HWyFDLXu.js → lt-hjPmCCML.js} +1 -1
- package/admin/assets/{lv-C7Zx3OLO.js → lv-Bh4qmUa_.js} +1 -1
- package/admin/assets/{me-DH3AqnfF.js → me-e32suC_n.js} +1 -1
- package/admin/assets/{mi-DMmUry6m.js → mi-Dwbsuyr9.js} +1 -1
- package/admin/assets/{mk-D6MNZrzX.js → mk-DjUXwKRn.js} +1 -1
- package/admin/assets/{ml-B_ur8Zqf.js → ml-CWjFAViF.js} +1 -1
- package/admin/assets/{mn-DeL8Ry7x.js → mn-BU4qTvEl.js} +1 -1
- package/admin/assets/{mr-C01qRXFL.js → mr-Bvnduzfb.js} +1 -1
- package/admin/assets/{ms-DFUZJzOm.js → ms-XuKVAni7.js} +1 -1
- package/admin/assets/{ms-my-CUYHkebs.js → ms-my-CDbnYp0g.js} +1 -1
- package/admin/assets/{mt-CE8t5jSj.js → mt-PDuxJf8J.js} +1 -1
- package/admin/assets/{my-Df96A8jZ.js → my-7N6SHnsD.js} +1 -1
- package/admin/assets/{nb-D0837ewu.js → nb-Cu3KUtTR.js} +1 -1
- package/admin/assets/{ne-BdK5TR0R.js → ne-CYW0uI2a.js} +1 -1
- package/admin/assets/{nl-oYKmSma6.js → nl-DL7cw699.js} +1 -1
- package/admin/assets/{nl-be-BfVC0cur.js → nl-be-B3NSF-2w.js} +1 -1
- package/admin/assets/{nn-IEUPnyc8.js → nn-BHITVkGB.js} +1 -1
- package/admin/assets/{oc-lnc-g_wSIROr.js → oc-lnc-dp3c4Bty.js} +1 -1
- package/admin/assets/{pa-in-gWhcLmZE.js → pa-in-BxgIlP1T.js} +1 -1
- package/admin/assets/{pl-H3-LoxVn.js → pl-GrG6yjkB.js} +1 -1
- package/admin/assets/{pt-br-B8UcNR6_.js → pt-br-BxTgeF95.js} +1 -1
- package/admin/assets/{pt-hiX8RqVw.js → pt-cVbj6hL6.js} +1 -1
- package/admin/assets/{rn-BKupViLr.js → rn-DiVJ2_Jy.js} +1 -1
- package/admin/assets/{ro-DmhgIvml.js → ro-D1WeRyXR.js} +1 -1
- package/admin/assets/rolldown-runtime-CacB07dV.js +1 -0
- package/admin/assets/routing-Cjyek7O_.js +1 -0
- package/admin/assets/{ru-CcpO-b8g.js → ru-DZCu4V9W.js} +1 -1
- package/admin/assets/{rw-DWX_5ZK0.js → rw-DfFpVc_g.js} +1 -1
- package/admin/assets/{sd-Dat8YgLw.js → sd-yDyBYxtQ.js} +1 -1
- package/admin/assets/{se-nTBYCwx3.js → se-EJKibocp.js} +1 -1
- package/admin/assets/sha512-DJtGRwVu.js +1 -0
- package/admin/assets/{si-DG88w5El.js → si-BCBV00rO.js} +1 -1
- package/admin/assets/{sk-s5FxW36J.js → sk-B2VvG_mo.js} +1 -1
- package/admin/assets/{sl-B-HyGrpA.js → sl-BTYmt65M.js} +1 -1
- package/admin/assets/{sq-DPFtfEC8.js → sq-BaLGKAHu.js} +1 -1
- package/admin/assets/{sr-bBPg1zz4.js → sr-DarE-95b.js} +1 -1
- package/admin/assets/{sr-cyrl-cXkYHMcP.js → sr-cyrl-CrwXFtkw.js} +1 -1
- package/admin/assets/{ss-7nSqXJN7.js → ss-CbBe1RUs.js} +1 -1
- package/admin/assets/{sv-B8mG1QK4.js → sv-Baw7Je9j.js} +1 -1
- package/admin/assets/{sv-fi-CotGRXSH.js → sv-fi-CVHORXkw.js} +1 -1
- package/admin/assets/{sw-fAxU-Uck.js → sw-k1H_OzIi.js} +1 -1
- package/admin/assets/{ta-Dl0Z1pan.js → ta-Bc4ZaZT9.js} +1 -1
- package/admin/assets/{te-DmcKasFF.js → te-ClciACZi.js} +1 -1
- package/admin/assets/{tet-D6mmvYpQ.js → tet-B75w1oSG.js} +1 -1
- package/admin/assets/{tg-39Hf2-oO.js → tg-CuH2ARRk.js} +1 -1
- package/admin/assets/{th-BSmTJSFN.js → th-LvExAoJ6.js} +1 -1
- package/admin/assets/{tk-m85E5igC.js → tk-2CFwTMKo.js} +1 -1
- package/admin/assets/{tl-ph-BlYxVvNt.js → tl-ph-CNJ_lViV.js} +1 -1
- package/admin/assets/{tlh-D1POnIeE.js → tlh-9UbKQkHo.js} +1 -1
- package/admin/assets/{tr-BurtfrLy.js → tr-Cu4P4OMe.js} +1 -1
- package/admin/assets/{tzl-BvyD0lOf.js → tzl-D97WsZW-.js} +1 -1
- package/admin/assets/{tzm-DZHS0dK6.js → tzm-CURkYgMY.js} +1 -1
- package/admin/assets/{tzm-latn-yNW7CNCH.js → tzm-latn-BRGsWK-9.js} +1 -1
- package/admin/assets/{ug-cn-rxs2pf5Y.js → ug-cn-Cd4exKOc.js} +1 -1
- package/admin/assets/{uk-CgZM-NnA.js → uk-DEXM3PIH.js} +1 -1
- package/admin/assets/{ur-YxIR8yYD.js → ur-DpUycj07.js} +1 -1
- package/admin/assets/{uz-CE9QsQMG.js → uz-CznjzufA.js} +1 -1
- package/admin/assets/{uz-latn-DiVdSW6G.js → uz-latn-Baga58FN.js} +1 -1
- package/admin/assets/{vi-DKARV6qf.js → vi-BrZWcL2C.js} +1 -1
- package/admin/assets/{x-pseudo-BuAdOrXQ.js → x-pseudo-BY6J4I7_.js} +1 -1
- package/admin/assets/{yo-BcB85DhC.js → yo-Dkeaym0x.js} +1 -1
- package/admin/assets/{zh-DLmxfxzl.js → zh-C2fOZUKR.js} +1 -1
- package/admin/assets/{zh-cn-ILRADZJi.js → zh-cn-CiA7hMZm.js} +1 -1
- package/admin/assets/{zh-hk-fT7fQk9_.js → zh-hk-EkoniWh0.js} +1 -1
- package/admin/assets/{zh-tw-NqRXGP6v.js → zh-tw-KDgos-kB.js} +1 -1
- package/admin/index.html +3 -2
- package/frontend/assets/{dist-legacy-BPToXNXu.js → dist-legacy-BNFW04Ss.js} +1 -1
- package/frontend/assets/index-legacy-2akkos6t.js +1 -0
- package/frontend/assets/{lib-legacy-CBk-_G90.js → lib-legacy-CO5spnaN.js} +1 -1
- package/frontend/assets/{sha512-legacy-CWrR2rkQ.js → sha512-legacy-BuJAJxVV.js} +1 -1
- package/frontend/index.html +1 -1
- package/npm-shrinkwrap.json +6 -6
- package/package.json +1 -1
- package/src/AsapStream.js +18 -14
- package/src/SendList.js +42 -16
- package/src/ThrottledStream.js +3 -3
- package/src/acme.js +23 -10
- package/src/adminApis.js +7 -6
- package/src/api.accounts.js +11 -7
- package/src/api.auth.js +8 -5
- package/src/api.cert.js +1 -1
- package/src/api.get_file_list.js +14 -11
- package/src/api.lang.js +3 -2
- package/src/api.monitor.js +1 -1
- package/src/api.net.js +3 -1
- package/src/api.plugins.js +2 -0
- package/src/api.vfs.js +9 -12
- package/src/apiMiddleware.js +5 -1
- package/src/basicWeb.js +3 -2
- package/src/block.js +1 -1
- package/src/commands.js +6 -5
- package/src/comments.js +29 -13
- package/src/config.js +7 -4
- package/src/consoleLog.js +14 -12
- package/src/const.js +1 -1
- package/src/cross-const.js +27 -1
- package/src/cross.js +37 -34
- package/src/ddns.js +1 -4
- package/src/events.js +1 -4
- package/src/fileAttr.js +1 -1
- package/src/frontEndApis.js +7 -3
- package/src/geo.js +8 -2
- package/src/github.js +10 -9
- package/src/index.js +2 -1
- package/src/ips.js +24 -3
- package/src/langs/hfs-lang-ar.json +1 -0
- package/src/langs/hfs-lang-bg.json +1 -0
- package/src/langs/hfs-lang-de.json +1 -0
- package/src/langs/hfs-lang-el.json +1 -0
- package/src/langs/hfs-lang-es.json +1 -0
- package/src/langs/hfs-lang-fi.json +1 -0
- package/src/langs/hfs-lang-fr.json +1 -0
- package/src/langs/hfs-lang-hu.json +1 -0
- package/src/langs/hfs-lang-it.json +1 -0
- package/src/langs/hfs-lang-ja.json +1 -0
- package/src/langs/hfs-lang-ko.json +1 -0
- package/src/langs/hfs-lang-lt.json +1 -0
- package/src/langs/hfs-lang-ms.json +1 -0
- package/src/langs/hfs-lang-nl.json +1 -0
- package/src/langs/hfs-lang-pl.json +1 -0
- package/src/langs/hfs-lang-pt-br.json +1 -0
- package/src/langs/hfs-lang-ro.json +1 -0
- package/src/langs/hfs-lang-ru.json +1 -0
- package/src/langs/hfs-lang-sr-latn.json +1 -0
- package/src/langs/hfs-lang-sr.json +1 -0
- package/src/langs/hfs-lang-th.json +1 -0
- package/src/langs/hfs-lang-tr.json +1 -0
- package/src/langs/hfs-lang-uk.json +1 -0
- package/src/langs/hfs-lang-vi.json +1 -0
- package/src/langs/hfs-lang-zh-tw.json +1 -0
- package/src/langs/hfs-lang-zh.json +1 -0
- package/src/listen.js +17 -13
- package/src/log.js +11 -2
- package/src/middlewares.js +4 -4
- package/src/misc.js +3 -3
- package/src/multipartUpload.js +1 -2
- package/src/nat.js +1 -1
- package/src/outboundProxy.js +7 -0
- package/src/perm.js +5 -3
- package/src/plugins.js +60 -37
- package/src/selfCheck.js +4 -3
- package/src/serveFile.js +3 -3
- package/src/serveGuiAndSharedFiles.js +7 -6
- package/src/serveGuiFiles.js +15 -2
- package/src/serverCode.js +27 -0
- package/src/throttler.js +3 -2
- package/src/update.js +9 -3
- package/src/upload.js +29 -11
- package/src/uploadOwners.js +95 -0
- package/src/util-files.js +4 -2
- package/src/util-http.js +3 -1
- package/src/vfs.js +67 -30
- package/src/walkDir.js +24 -11
- package/src/watchLoad.js +13 -2
- package/src/webdav.js +33 -31
- package/src/zip.js +1 -1
- package/admin/assets/dist-CHP3cW_n.js +0 -1
- package/admin/assets/en-DQ460ET7.js +0 -1
- package/admin/assets/index-BGIe1xaR.js +0 -760
- package/admin/assets/sha512-CZz40GwW.js +0 -1
- package/frontend/assets/index-legacy-CmusDwvl.js +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-CacB07dV.js";import{t}from"./DateTimeField-BUWd2w9-.js";import{n,r,t as i}from"./MenuButton-CHLgqU5W.js";import{n as a,t as o}from"./VfsPathField-YUCV9PfL.js";import{$n as s,Aa as c,C as l,Ca as u,Ct as d,Da as f,E as p,Ea as m,Et as h,F as g,Ft as _,H as v,Hr as y,Lt as b,M as x,Ma as S,N as C,O as w,Pr as T,R as E,Rn as D,S as O,St as k,Ta as A,U as j,Ut as M,W as ee,Yt as N,_ as te,ei as ne,en as re,er as ie,ft as P,gi as F,gt as ae,hi as I,hr as oe,ht as se,it as L,j as R,kr as ce,lt as le,mt as z,q as ue,ri as B,sr as V,st as de,ti as fe,tt as H,ur as pe,w as me,wa as U,y as W,zt as he}from"./index-Dsq-sVu9.js";import{$ as ge,J as _e,Q as ve,X as ye,Y as be,Z as xe,et as G,it as Se,nt as Ce,rt as K,tt as we}from"./icons-3rupj9Xr.js";var q=e(S());A();var Te=[`password`,`password2`,`adminActualAccess`,`hasPassword`,`invalidated`,`canLogin`,`members`];function Ee({account:e,done:n,groups:r,addToBar:i,reload:a}){var f,m;let{username:g}=L(),[_,y]=(0,q.useState)(e),[b,S]=(0,q.useState)([]),C=re();(0,q.useEffect)(()=>{var t;y(e),S(r.filter(t=>t!==e.username)),C||(t=E.current)==null||(t=t.querySelector(`input`))==null||t.focus()},[JSON.stringify(e)]);let w=!e.username,{isGroup:T}=_,E=(0,q.useRef)(),{members:A}=e,j=(f=e.plugin)==null?void 0:f.auth;return(0,q.createElement)(le,{key:e.username,formRef:E,values:_,set(e,t){y(n=>U(U({},n),{},{[t]:e}))},barSx:U({gap:2,width:`100%`},ue()),stickyBar:!0,addToBar:[!w&&(0,q.createElement)(l,U(U({icon:K,title:`Delete`,confirm:`Delete ${e.username}?`},g===e.username&&{disabled:!0,title:`Cannot delete current account`}),{},{onClick:()=>V(`del_account`,{username:e.username}).then(a)})),(0,q.createElement)(l,{icon:be,title:`Invalidate past sessions${D(`
|
|
2
|
+
(already invalidated sessions before `,k(e.invalidated||0),`)`)}`,confirm:`Invalidate all sessions up to now for "${e.username}"?`,doneMessage:!0,onClick:()=>V(`invalidate_sessions`,{username:e.username}).then(a)}),...s(i)],fields:[{k:`username`,label:T?`Group name`:void 0,autoComplete:`off`,required:!0,md:T&&!j?12:4,getError:t=>t!==e.username&&V(`get_account`,{username:t}).then(t=>(t==null?void 0:t.username)===e.username?`usernames are case-insensitive`:`already used`,()=>!1)},j&&{k:``,md:8,comp:(0,q.createElement)(F,{severity:`info`},` Authentication handled by a plugin`)},!T&&!j&&{k:`password`,xs:6,md:4,type:`password`,autoComplete:`new-password`,required:w,label:w?`Password`:`Change password`},!T&&!j&&{k:`password2`,xs:6,md:4,type:`password`,autoComplete:`new-password`,label:`Repeat password`,getError:(e,{values:t})=>(e||``)!==(t.password||``)&&`Enter same password`},{k:`disabled`,comp:P,fromField:e=>!e,toField:e=>!e,label:`Enabled`,xs:12,sm:6,lg:4,helperText:_.disabled||_.canLogin!==!1?`Login is prevented if account is disabled, or all its groups are disabled`:(0,q.createElement)(B,{sx:{color:`warning.main`},component:`span`},new Date(e.expire)<new Date?`Login is prevented because account is expired`:`Login is prevented because all of its groups are disabled`)},{k:`ignore_limits`,comp:P,xs:12,sm:6,lg:4,helperText:_.ignore_limits?`Speed limits don't apply to this account`:`Speed limits apply to this account`},U({k:`admin`,comp:P,fromField:e=>e||null,label:`Admin-panel access`,xs:12,sm:6,lg:4,helperText:`To access THIS interface you are using right now`},!e.admin&&e.adminActualAccess&&{value:!0,disabled:!0,helperText:`This permission is inherited. To disable it, act on the groups.`}),!T&&{k:`require_password_change`,comp:P,xs:12,sm:6,lg:4,helperText:`At next login`},{k:`disable_password_change`,label:`Password change`,comp:ae,xs:12,sm:6,lg:4,defaultValue:null,options:{[`Default (${_.canChangePassword?`Allowed`:`Disabled`})`]:null,Allowed:!1,Disabled:!0}},A?T&&!A.length?(0,q.createElement)(B,{},`No members`):A.length>0&&(0,q.createElement)(O,{gap:0,flexWrap:`wrap`},`${A.length} members: `,N(`,\xA0`,(m=e.members)==null?void 0:m.map(e=>(0,q.createElement)(r.includes(e)?`i`:`span`,{},e))),(0,q.createElement)(W,{icon:K,confirm:`Delete ${e.members.length} accounts?`,onClick:()=>V(`del_account`,{username:e.members}).then(a),sx:{verticalAlign:`text-top`}})):null,T&&(0,q.createElement)(F,{severity:`info`},`To add users to this group, select the user and then click "Inherit"`),{k:`belongs`,comp:se,label:`Inherit from groups`,options:b,sm:6,lg:4,helperText:`Specify groups to inherit permissions from`+(T?`. A group can inherit from another group`:``)+(b.length?``:`. Now disabled because there are no groups to select, create one first.`)},{k:`allow_net`,comp:p,label:`Allowed network address`,sm:6,lg:4,placeholder:`any address`},!T&&{k:`auto_login_net`,comp:p,label:`Auto-login by IP address`,sm:6,lg:4,placeholder:`none`},{k:`redirect`,comp:o,placeholder:`no`,sm:6,lg:4,helperText:`If you want this account to be redirected to a specific folder/address (or even file) at login time`},{k:`expire`,label:`Expiration`,sm:6,lg:4,comp:t,toField:e=>e&&new Date(e),helperText:`When expired, login won't be allowed`},U(U({k:`days_to_live`,sm:6,lg:4,comp:z,step:`any`,min:1/1e3},_.expire&&{xs:12,disabled:!0,sx:{opacity:.2}}),{},{helperText:`Used to set expiration on first login`}),{k:`notes`,multiline:!0,sm:6,lg:4}],onError:v,save:U(U({},x(d(_,e))),{},{onClick(){return c(function*(){var t;let{password:r=``,password2:i,adminActualAccess:a,hasPassword:o,invalidated:s,canLogin:c,members:l}=_,d=u(_,Te),f=((t=E.current)==null?void 0:t.querySelector(`button.saveBtn`))||void 0;if(w){let e=yield V(`add_account`,d);if(r)try{yield h(_.username,r)}catch(e){throw V(`del_account`,{username:_.username}),e}n(e==null?void 0:e.username,f);return}let p=yield V(`set_account`,{username:e.username,changes:d});r&&(yield h(_.username,r)),e.username===g&&(H.username=_.username),n(p==null?void 0:p.username,f)})()}})})}var J=e(pe());f(),A();var Y={fieldSeparator:`,`,lineSeparator:`
|
|
3
|
+
`,quote:`"`},X={field:0,fieldOffset:0,line:0,lineOffset:0,quoted:!1,appendCell:!1,appendField:!1,appendRow:!1},De=class extends Error{constructor(e,t){super(`Invalid CSV at ${e}:${t}`)}},Oe=class{constructor(e=Y){m(this,`_rows`,[]),m(this,`_row`,[]),m(this,`_cell`,``),m(this,`_options`,Y),m(this,`_state`,U({},X)),m(this,`_index`,0),m(this,`_current`,``),m(this,`_previous`,``),m(this,`_quoteState`,U({},X)),this._options=Object.assign({},Y,e)}parse(e){for(this.reset(),this._index=0;this._index<e.length;this._index++)this._state.appendCell=!0,this._previous=this._current,this._current=e[this._index],this.handleNext();if(this._row.length>0&&(this.addField(this.fieldValue(this._cell),this._row,this._state),this.addRow(this._row,this._rows,this._state)),this._state.quoted)throw new De(this._quoteState.line,this._quoteState.lineOffset);return this.makeImmutable(),this._rows}get rows(){return this._rows}get json(){if(this.rows.length>0){let e=this.rows[0].filter(e=>typeof e==`string`);return Object.freeze(this.rows.filter((e,t)=>e&&t>0).map(t=>{let n={};return e.forEach((e,r)=>{n[e]=t[r]}),Object.freeze(n)}))}return Object.freeze([])}handleNext(){this.handleQuote()||this.handleFieldSeparator()||this.handleLineSeparator(),this.processState()}handleQuote(){return this._current===this._options.quote?(this._quoteState=U({},this._state),this._previous===`\\`?this.handleQuoteEscaped():this.handleQuoteNotEscaped(),!0):!1}handleQuoteEscaped(){this._cell=this._cell.slice(0,Math.max(0,this._cell.length-1))}handleQuoteNotEscaped(){if(this._cell.length===0||this._state.quoted)this._state.quoted=!this._state.quoted;else throw new De(this._state.line,this._state.lineOffset);this._state.appendCell=!1}handleFieldSeparator(){return this._current===this._options.fieldSeparator?(this._state.quoted||(this._state.appendCell=!1,this._state.appendField=!0),!0):!1}handleLineSeparator(){return this._current===this._options.lineSeparator?(this._state.quoted||(this._state.appendCell=!1,this._state.appendField=!0,this._state.appendRow=!0),!0):!1}processState(){this._state.appendCell&&(this._cell+=this._current),this._state.appendField&&(this.addField(this.fieldValue(this._cell),this._row,this._state),this._cell=``),this._state.appendRow&&(this.addRow(this._row,this._rows,this._state),this._row=[]),this._state.lineOffset++,this._state.fieldOffset++}fieldValue(e){return e}addField(e,t,n){t.push(e),n.field++,n.fieldOffset=-1,n.appendField=!1}addRow(e,t,n){t.push(e),n.field=0,n.line++,n.lineOffset=-1,n.appendRow=!1}makeImmutable(){this.rows.forEach(e=>{e.forEach(e=>Object.freeze(e)),Object.freeze(e)}),Object.freeze(this._rows)}reset(){this._rows=[],this._row=[],this._cell=``,this._state=U({},X),this._index=0,this._current=``,this._previous=``,this._quoteState=U({},X)}};A();function ke(e){return Z.apply(this,arguments)}function Z(){return Z=c(function*(e){b(function(){var t=c(function*(t){let n=t==null?void 0:t[0];if(!n)return;let r=yield _(n);if(!r)return;let i=new Oe().parse(r.trim()),a={comp:z,min:1,max:9,xs:6,typing:!0},o={skipFirstLines:0,usernameColumn:1,passwordColumn:2,groupColumn:3,redirectColumn:4,overwriteExistingAccounts:!1},s=yield ee({title:`Import accounts from CSV`,dialogProps:{maxWidth:`sm`},values:o,form:e=>{let t=i[e.skipFirstLines||0],n=u(t,U(U({},o),e));return{save:{startIcon:(0,q.createElement)(_e),children:`Go`},fields:[(0,q.createElement)(B,{sx:{p:1}},`Total lines:`,i.length),{k:`skipFirstLines`,comp:z,max:i.length-1,typing:!0,md:6,helperText:(0,q.createElement)(q.Fragment,{},`First line: `,(0,q.createElement)(`code`,{},t.join(`, `)))},{k:`overwriteExistingAccounts`,comp:P,md:6},U(U({k:`usernameColumn`},a),{},{helperText:(0,q.createElement)(q.Fragment,{},`First username: `,n.u)}),U(U({k:`passwordColumn`},a),{},{helperText:(0,q.createElement)(q.Fragment,{},`First password: `,n.p)}),U(U({k:`groupColumn`},a),{},{helperText:(0,q.createElement)(q.Fragment,{},`First group: `,n.g)}),U(U({k:`redirectColumn`},a),{},{helperText:(0,q.createElement)(q.Fragment,{},`First redirect: `,n.r)})]}}});if(!s)return;let{close:l}=M({title:`Importing...`,Content(){let[t,n]=(0,q.useState)(0),[r,a]=(0,q.useState)();return(0,q.useEffect)(()=>{let t=!1;return setTimeout(c(function*(){if(t)return;let r=0,o=0,c=s.skipFirstLines,d=i.length-c;try{let e=0;for(let l of i){var f;if(t)return;if(c){c--;continue}let i=u(l,s);a(i),n(e++/d),yield V(`add_account`,{username:i.u,belongs:(f=i.g)==null?void 0:f.split(`,`),redirect:i.r,overwrite:s.overwriteExistingAccounts}).then(()=>{if(i.p)return h(i.u,i.p)},e=>{if(e.code===409)return o++;r++})}}finally{l();let t=d-r-o;v(`Results: `+[D(``,r,` failed`),D(``,t,` succeeded`),D(``,o,` skipped because already present`)].filter(Boolean).join(`, `),!t&&r?`error`:r||o?`warning`:`success`),e==null||e()}})),()=>{t=!0}},[]),(0,q.createElement)(B,{sx:{display:`flex`,gap:2,alignItems:`center`}},(0,q.createElement)(me,{icon:G,progress:t}),r==null?void 0:r.u)}});function u(e,t){return{u:e[t.usernameColumn-1],p:e[t.passwordColumn-1],g:e[t.groupColumn-1],r:e[t.redirectColumn-1]}}});return function(e){return t.apply(this,arguments)}}(),{multiple:!1,accept:`.csv`})}),Z.apply(this,arguments)}A();var Ae=` `,Q=e=>e==null?void 0:e.split(Ae).at(-1);function je(){let{username:e,accountsAsTree:t}=L(),{data:o,reload:s,element:u}=te(`get_accounts`),[d,f]=(0,q.useState)([]),p=Array.isArray(d);(0,q.useEffect)(()=>{Array.isArray(o==null?void 0:o.list)&&p&&f(d.filter(e=>o.list.find(t=>(t==null?void 0:t.username)===Q(e))))},[o]);let m=(0,q.useMemo)(()=>o&&J.default.sortBy(o.list,[e=>!e.isGroup,e=>!e.adminActualAccess,`username`]),[o]),h=p&&J.default.find(m,{username:Q(d[0])}),_=g(`md`),b=!(d.length>0)||!m?null:p&&d.length>1?(0,q.createElement)(q.Fragment,{},(0,q.createElement)(O,{},(0,q.createElement)(I,{variant:`h6`},d.length+` selected`),(0,q.createElement)(W,{onClick:ee,icon:K},`Remove`)),(0,q.createElement)(T,{},J.default.uniq(d.map(Q)).map(e=>(0,q.createElement)(a,{key:e},(0,q.createElement)(ce,{},e))))):ie(h||k(),e=>(0,q.createElement)(Ee,{account:e,groups:m.filter(e=>e.isGroup).map(e=>e.username),addToBar:_&&[(0,q.createElement)(B,{sx:{flex:1}}),$(e,{fontSize:`large`,sx:{p:1}}),(0,q.createElement)(l,{icon:de,title:`Close`,onClick:A})],reload:s,done(e,t){f(_?[e]:[]),s(),w(``,t)}}));(0,q.useEffect)(()=>{if(_||!b||!d.length)return;let{close:e}=M({title:J.default.isString(d)?J.default.startCase(d):d.length>1?`Multiple selection`:h?(h.isGroup?`Group: `:`User: `)+h.username:`?`,Content:()=>b,onClose:A});return()=>void e()},[_,d,h]);let x={height:`100%`,display:`flex`,flexDirection:`column`,overflow:`auto`},[S,D]=E(`Show tree`,`Show list`,()=>({icon:oe}),t);return H.accountsAsTree=S,u||(0,q.createElement)(y,{container:!0,sx:{rowSpacing:1,columnSpacing:2,top:0,flex:`1 1 auto`,height:0}},(0,q.createElement)(y,{size:{xs:12,md:5,lg:4,xl:5},sx:x},(0,q.createElement)(B,{sx:{display:`flex`,flexWrap:`wrap`,gap:2,mb:2,boxShadow:e=>`0px -8px 4px 10px ${e.palette.background.paper}`,position:`sticky`,top:0,zIndex:2,backgroundColor:`background.paper`,width:`fit-content`}},(0,q.createElement)(i,{variant:`contained`,startIcon:(0,q.createElement)(xe),items:[{children:`user`,onClick:()=>f(`new-user`)},{children:`group`,onClick:()=>f(`new-group`)},{children:`from CSV`,onClick:()=>ke(s)}]},`Add`),C(s),D,(m==null?void 0:m.length)>0&&(0,q.createElement)(I,{sx:{p:1}},`${m.length} account(s)`)),!(m!=null&&m.length)&&(0,q.createElement)(F,{severity:`info`},he`To access administration <u>remotely</u> you will need to create a user account with admin permission`),(0,q.createElement)(r,{multiSelect:!0,sx:{pr:4,pb:2,minWidth:`15em`},selectedItems:p?d:[],slots:{collapseIcon:we,expandIcon:Se},onSelectedItemsChange(e,t){var n,r;!(e==null||(n=e.target)==null||(r=n.closest)==null)&&r.call(n,`.MuiTreeItem-iconContainer`)||f(t)}},m&&(function e(t,r=``){return t.map(t=>{var i,a;return(0,q.createElement)(n,{key:t.username,itemId:r+t.username,label:(0,q.createElement)(B,{sx:{display:`flex`,flexWrap:`wrap`,padding:`.2em 0`,columnGap:`.5em`,alignItems:`center`}},$(t),(t.disabled||t.canLogin===!1)&&R(Ce,t.disabled?`Disabled`:`Disabled by its groups`,t.disabled?void 0:{color:`text.secondary`}),(t.expire||t.days_to_live)&&(0,q.createElement)(ye),t.adminActualAccess&&R(ge,`Can login into Admin`),t.username,!!((i=t.belongs)!=null&&i.length)&&(0,q.createElement)(B,{sx:{color:`text.secondary`,fontSize:`small`}},`(`,(a=t.belongs)==null?void 0:a.join(`, `),`)`))},S&&e(m.filter(e=>{var n;return(n=t.directMembers)==null?void 0:n.includes(e.username)}),r+t.username+Ae))})})(S?m.filter(e=>!m.some(t=>{var n;return(n=t.members)==null?void 0:n.includes(e.username)})):m))),_&&b&&(0,q.createElement)(y,{size:`grow`,sx:U(U({},x),{},{maxWidth:`100%`})},(0,q.createElement)(fe,{sx:{overflow:`initial`}},(0,q.createElement)(ne,{},b))));function k(){return{username:``,hasPassword:d===`new-user`,adminActualAccess:!1,invalidated:void 0,canLogin:!0,canChangePassword:!0,isGroup:d===`new-group`,members:[],directMembers:[]}}function A(){f([])}function ee(){return N.apply(this,arguments)}function N(){return N=c(function*(){if(typeof d==`string`)return;let t=J.default.without(J.default.uniq(d.map(Q)),e);if(d.length>t.length&&!(yield j(`You cannot ask to delete the account you are using. Continue with the rest?`)))return;if(!t.length)return v(`Nothing to delete`,`info`);if(!(yield j(`Delete ${t.length} item(s)?`)))return;let n=[];for(let e of t)(yield V(`del_account`,{username:e}).then(()=>1,()=>0))||n.push(e);if(s(),n.length)return v(`The following items couldn't be deleted: `+n.join(`, `),`error`)}),N.apply(this,arguments)}}function $(e,t={}){return(0,q.createElement)(e.isGroup?G:ve,t)}export{je as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-CacB07dV.js";import{n as t,t as n}from"./DataTable-DmnQXyFO.js";import{t as r}from"./DateTimeField-BUWd2w9-.js";import{Aa as i,C as a,Ca as o,F as s,Hn as c,I as l,Ma as u,Oa as d,S as f,St as p,Ta as m,Ur as ee,W as h,Wr as g,b as _,ct as v,dt as y,ft as b,ka as x,ni as S,qn as C,ri as w,un as T,ur as E,ut as D,wa as O,wn as te}from"./index-Dsq-sVu9.js";import{F as ne,I as re,L as ie,P as ae,q as oe,rt as se}from"./icons-3rupj9Xr.js";var k=e(u()),A=e(E());m(),d();var j=[`label`,`helperText`,`fields`,`value`,`onChange`,`onError`,`setApi`,`reorder`,`prepend`,`noRows`,`valuesForAdd`,`autoRowHeight`,`dialog`,`form`,`details`,`objectK`,`saveOn`,`applyButton`,`height`,`error`,`sx`],M=[`$width`,`$column`,`$type`,`$hideUnder`,`showIf`,`$render`,`$mergeRender`];function N(e){let{label:r,helperText:l,fields:u,value:d,onChange:p,onError:m,setApi:v,reorder:b,prepend:S,noRows:E,valuesForAdd:N,autoRowHeight:I,dialog:L,form:R,details:z,objectK:B,saveOn:V,applyButton:H,height:U,error:W,sx:G}=e,ce=o(e,j),K=Array.isArray(d)?d:!B||!d?[]:Object.entries(d).map(([e,t])=>O({[B]:e},t)),q=(0,k.useMemo)(()=>K.map((e,t)=>c(O({},e),e.hasOwnProperty(`id`)?{$idx:t}:{id:t})),[JSON.stringify(K)]),J=!!W||void 0,Y=e=>t=>O(O({fields:T(u,t).map(e=>{var n;let{$width:r,$column:i,$type:a,$hideUnder:s,showIf:c,$render:l,$mergeRender:u}=e,d=o(e,M);return(!c||c(t))&&A.default.defaults(d,(n=F[a])==null?void 0:n.field)})},R),e);v==null||v({isEqual:te});let[X,le]=(0,k.useState)();return(0,k.createElement)(k.Fragment,{},(0,k.createElement)(f,{rowGap:0,flexWrap:`wrap`,ml:`2px`},r&&(0,k.createElement)(ee,{error:J,sx:{color:J?void 0:`text.primary`}},r),l&&(0,k.createElement)(g,{error:J},l)),(0,k.createElement)(w,O(O({},ce),{},{sx:y({height:U},G)}),(0,k.createElement)(n,O(O(O({rows:q,details:z},I&&{getRowHeight:()=>`auto`}),!s(`sm`)&&{compact:!0}),{},{sx:O({".MuiDataGrid-virtualScroller":{minHeight:`3em`}},I&&{".MuiDataGrid-cell":{minHeight:`52px !important`}}),hideFooterSelectedRowCount:!0,hideFooter:!0,slots:{noRowsOverlay:()=>(0,k.createElement)(_,{},E||`No entries`)},slotProps:{pagination:{showFirstButton:!0,showLastButton:!0}},onCellDoubleClick({field:e,row:t},n){var r;let i=T(u,!1).find(t=>!(0,k.isValidElement)(t)&&t.k===e&&t.$type===`boolean`);if(!i)return;let a=(r=t.$idx)==null?t.id:r,o=t[e],s=!(i.toField||A.default.identity)(o);Z(a,O(O({},K[a]),{},{[e]:(i.fromField||A.default.identity)(s,{originalValue:o})}),n)},columns:[...T(u,!1).map(e=>{var t,n;if((0,k.isValidElement)(e))return;let r=(t=F[e.$type])==null?void 0:t.column;return A.default.defaults(O(O({field:e.k,headerName:(n=e.headerName)==null?typeof e.label==`string`?e.label:D(e.k):n,disableColumnMenu:!0,valueGetter:t=>(e.toField||A.default.identity)(t)},e.$width?{[e.$width>=8?`width`:`flex`]:e.$width}:!(r!=null&&r.width)&&!(r!=null&&r.flex)&&{flex:1}),{},{renderCell:e.$render,mergeRender:e.$mergeRender,hideUnder:e.$hideUnder},e.$column),r)}).filter(Boolean),{field:``,type:`actions`,width:90,headerAlign:`center`,renderHeader(){return(0,k.createElement)(k.Fragment,{},(0,k.createElement)(a,{icon:ie,title:`Add`,size:`small`,onClick(e){return i(function*(){let t=yield h({form:Y({}),title:`Add`,values:N,dialogProps:L});if(!t)return;let n=K.slice()||[];S?n.unshift(t):n.push(t),Q(n,e)})()}}),X!==void 0&&(0,k.createElement)(a,{icon:ae,title:`Undo`,size:`small`,onClick:e=>Q(X,e)}))},getActions({row:e}){let{$idx:n=e.id}=e,a=`Modify`;return[(0,k.createElement)(t,{key:`edit`,icon:(0,k.createElement)(oe),label:a,title:a,onClick(t){return i(function*(){t.stopPropagation();let o=yield h({values:e,form:(e,{submit:t})=>Y(V===`change`&&{save:!1,onChange(e){Z(n,e,`change`)}}||H&&{addToBar:(0,k.createElement)(P,O(O({children:`Apply`,sx:O({ml:2},H.sx)},H),{},{onClick(){t(function(){var e=i(function*(e){let t=Z(n,O(O({},K[n]),e),`save`);yield H.onClick(t)});return function(t){return e.apply(this,arguments)}}())}}))}||V&&{save:!1})(e),title:(0,k.createElement)(k.Fragment,{},a,r&&` - `,r),dialogProps:L});o&&Z(n,o,t)})()}}),(0,k.createElement)(t,{key:`delete`,icon:(0,k.createElement)(se),label:`Delete`,showInMenu:b,onClick(e){e.stopPropagation(),Q(K.filter((e,t)=>t!==n),e)}}),b&&n&&(0,k.createElement)(t,{key:`up`,icon:(0,k.createElement)(re),label:`Move up`,showInMenu:!0,onClick(e){e.stopPropagation(),Q(C(K.slice(),n,n-1),e)}}),b&&n<q.length-1&&(0,k.createElement)(t,{key:`down`,icon:(0,k.createElement)(ne),label:`Move down`,showInMenu:!0,onClick(e){e.stopPropagation(),Q(C(K.slice(),n,n+1),e)}})].filter(Boolean)}}]}))));function Z(e,t,n){return Q(K.map((n,r)=>r===e?t:n),n)}function Q(e,t){let n=$(e);return p(n,{was:d,event:t}),V!==`change`&&le(K),n}function $(e){return B?Object.fromEntries(e.map(e=>{let{[B]:t}=e;return[t,o(e,[B].map(x))]})):e}}function P(e){return(0,k.createElement)(S,O({ref:l([`s`]).ref,title:`Apply
|
|
2
|
+
(ctrl+s)`},e))}var F={boolean:{field:{comp:b},column:{renderCell:({value:e})=>e&&(0,k.createElement)(v)}},dateTime:{field:{comp:r},column:{minWidth:96,flex:.5,renderCell:({value:e})=>p(e)}}};export{N as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-CacB07dV.js";import{C as t,Jt as n,Ma as r,N as i,Nt as a,Rn as o,S as s,_ as c,gi as l,jt as u,pt as d,qt as f,ri as p,sr as m,tt as h,vt as g,y as _}from"./index-Dsq-sVu9.js";import{K as v,q as y}from"./icons-3rupj9Xr.js";import{t as b}from"./TextEditor-clbVugYM.js";var x=e(r());function S(){h.title=`Config file`;let{data:e,reload:r,element:S}=c(`get_config_text`,{}),[C,w]=(0,x.useState)(),[T,E]=(0,x.useState)(),[D,O]=(0,x.useState)(!1);return(0,x.useEffect)(()=>{E(e==null?void 0:e.text)},[e]),(0,x.useEffect)(()=>{T!==void 0&&w(T||``)},[T]),S||(0,x.createElement)(x.Fragment,{},(0,x.createElement)(s,{flexWrap:`wrap`,justifyContent:`space-between`},(0,x.createElement)(_,{icon:v,onClick:A,disabled:!e},`Export without passwords`),D?(0,x.createElement)(x.Fragment,{},i(r),(0,x.createElement)(t,{icon:g,title:`Save
|
|
2
|
+
(ctrl+enter)`,modified:C!==T,onClick:k}),(0,x.createElement)(l,{severity:`warning`,sx:{minWidth:`10em`}},`Be careful, you can easily break things here`)):(0,x.createElement)(_,{icon:y,variant:`outlined`,onClick(){O(!0),setTimeout(()=>a(`main textarea`),500)}},`Edit`),(0,x.createElement)(p,{sx:{flex:1,minWidth:`fit-content`}},(0,x.createElement)(d,{label:`File path`,value:e==null?void 0:e.fullPath,size:`small`}))),S||C!==void 0&&(0,x.createElement)(p,{sx:{"& pre,& textarea":{wordBreak:`break-all !important`}}},(0,x.createElement)(f,{margin:10},(0,x.createElement)(b,{value:C,disabled:!D,style:{background:`#8881`},onValueChange:w,onKeyDown(e){[`s`,`Enter`].includes(n(e))&&(k(),e.preventDefault())}}))));function k(){return m(`set_config_text`,{text:C}).then(()=>E(C))}function A(){var t;let n=(C||``).replace(/^(\s*(\w*password|_\w*|token|srp|dynamic_dns_url):\s*).+\n/gm,`$1removed
|
|
3
|
+
`).replace(/(:\/\/)[^/@\s]+@/g,`$1removed@`)+o(`custom_html: | # this is currently ignored by hfs, just here for reference
|
|
4
|
+
`,(t=e.customHtml)==null?void 0:t.replace(/^/gm,` `));n&&u(`config_no_passwords.yaml`,n)}}export{S as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-CacB07dV.js";import{A as t,Aa as n,C as r,Cn as i,I as a,Ma as o,N as s,Rn as c,Ta as l,_ as u,ea as d,gi as f,gt as p,ir as m,it as h,nn as g,nr as _,ri as v,sr as y,tt as b,ur as x,vt as S,wa as C,yr as w,z as T,zt as E}from"./index-Dsq-sVu9.js";import{t as D}from"./TextEditor-clbVugYM.js";var O=e(x()),k=e(o());l();function A(e,t,n){return(0,k.createElement)(j,C({checked:e||!1,onChange(e,n){t(n)},disabled:e===void 0},n))}var j=d(w)(({theme:e,size:t})=>{let n=t&&t===`small`;return{height:n?36:48,width:n?18:26,padding:5,"& .MuiSwitch-switchBase":{margin:1,padding:0,transform:`translateY(${n?16:22}px)`,"&.Mui-checked":{color:e.palette.primary.contrastText,transform:`translateY(2px)`,"& .MuiSwitch-thumb:before":{backgroundImage:`url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="${n?14:20}" width="20" viewBox="0 0 20 20"><path fill="${encodeURIComponent(e.palette.primary.contrastText)}" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"/></svg>')`},"& + .MuiSwitch-track":{backgroundColor:e.palette.grey[500]}}},"& .Mui-checked .MuiSwitch-thumb":{backgroundColor:e.palette.primary.main,boxShadow:`0px 2px 1px 1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)`},"& .MuiSwitch-thumb":{width:n?16:24,height:n?16:24,backgroundColor:e.palette.grey[700],"&::before":{content:`''`,position:`absolute`,width:`85%`,height:`85%`,left:0,top:0,backgroundRepeat:`no-repeat`,backgroundPosition:`center`,backgroundImage:`url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="${n?14:20}" width="20" viewBox="0 0 20 20"><path fill="${encodeURIComponent(e.palette.primary.contrastText)}" d="M19,13H5V11H19V13Z"/></svg>')`}},"& .MuiSwitch-track":{backgroundColor:e.palette.grey[500],borderRadius:20/2}}});l();var M={top:`Top of HTML Body`,bottom:`Bottom of HTML Body`};function N({setTitleSide:e}){let{data:o,reload:l}=u(`get_custom_html`),{customHtmlSection:d}=h(),[x,w]=(0,k.useState)({}),[j,N]=(0,k.useState)({});(0,k.useEffect)(()=>{o&&(N(o.sections),L(o.enabled))},[o]),(0,k.useEffect)(()=>w(j),[j]);let P=(0,k.useMemo)(()=>{let e=O.default.sortBy(Object.keys(x),i);return e.length&&!e.includes(d)&&(b.customHtmlSection=O.default.findKey(x,Boolean)||(e==null?void 0:e[0])||``),e.map(e=>{var t;return{value:e,label:(M[e]||c(`HTTP `,m[e])||O.default.startCase(e))+((t=x[e])!=null&&t.trim()?` *`:``)}})},[g(x,500)]),F=(0,k.useMemo)(()=>!O.default.isEqualWith(j,x,(e,t)=>!e&&!t||void 0),[j,x]),[I,L]=(0,k.useState)();return e((0,k.useMemo)(()=>(0,k.createElement)(v,{sx:{display:{xs:`none`,md:`block`}}},(0,k.createElement)(f,{severity:`info`},E("Add HTML code to some parts of the Front-end. It's saved to file `custom.html`, that you can edit directly with your editor of choice. "),T(`customization`,`More help`)),(0,k.createElement)(f,{severity:`info`},`To customize icons `,T(`customization#icons`,`read documentation`))),[])),(0,k.createElement)(k.Fragment,{},(0,k.createElement)(v,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1}},(0,k.createElement)(p,{label:`Section`,value:d,options:P,onChange:e=>b.customHtmlSection=e}),s(l),(0,k.createElement)(r,{ref:a([`s`,`Enter`]).ref,icon:S,title:`Save
|
|
2
|
+
(ctrl+s)`,modified:F,doneAnimation:!0,onClick:R}),t(`Enable all sections`,void 0,A(I,function(){var e=n(function*(e){yield y(`set_config`,{values:{[_.disable_custom_html]:!e}}),L(e)});return function(t){return e.apply(this,arguments)}}()))),(0,k.createElement)(D,{lang:d===`style`?`css`:d===`script`?`js`:`html`,value:(x==null?void 0:x[d])||``,style:{background:`#8881`},onValueChange(e){w(t=>C(C({},t),{},{[d]:e}))}}));function R(){return y(`set_custom_html`,{sections:x}).then(()=>N(x))}}export{N as default};
|