most-box 0.2.4 → 0.2.5
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/out/admin/index.html +0 -0
- package/out/app/index.html +0 -0
- package/out/assets/{AppShell-gILTcRs-.js → AppShell-oF8wPXde.js} +1 -1
- package/out/assets/{FilePreviewOverlay-CM-fcIaD.js → FilePreviewOverlay-DTBZt89J.js} +1 -1
- package/out/assets/{LanguageToggle-B99eQcTE.js → LanguageToggle-HAJ3D6Ne.js} +1 -1
- package/out/assets/{MarketingHeader-Q2cpkqAM.js → MarketingHeader-B3vYocUz.js} +1 -1
- package/out/assets/{MarketingLayout-X3Nj2JvA.js → MarketingLayout-CapVVXTP.js} +1 -1
- package/out/assets/{MarketingThemeToggle-z4jr4-vt.js → MarketingThemeToggle-B47H68ro.js} +1 -1
- package/out/assets/{MilkdownEditor-Bv2VA3bu.js → MilkdownEditor-CRA9oxMp.js} +1 -1
- package/out/assets/{OpenSidebarButton-CaQJk5LD.js → OpenSidebarButton-D3JRO-Hh.js} +1 -1
- package/out/assets/{SidebarAccount-CpNVqNva.js → SidebarAccount-8_hQAYXx.js} +1 -1
- package/out/assets/{downloadValidation-xzpa5rap.js → downloadValidation-eInMiVSX.js} +1 -1
- package/out/assets/index--p9MKNEl.js +31 -0
- package/out/assets/index-DEu4udaa.css +1 -0
- package/out/assets/{index.lazy-H7NATHUs.js → index.lazy-2K3f5PZe.js} +1 -1
- package/out/assets/{index.lazy-CxpNXlwa.js → index.lazy-B-2etVwK.js} +1 -1
- package/out/assets/index.lazy-B4WTQF5E.js +1 -0
- package/out/assets/index.lazy-BFfsQrRe.js +1 -0
- package/out/assets/{index.lazy-Dzf-q-Vf.js → index.lazy-C5udBnrO.js} +1 -1
- package/out/assets/{index.lazy-CJBRtbWA.js → index.lazy-C84HrZpm.js} +1 -1
- package/out/assets/{index.lazy-erexqght.js → index.lazy-CBC2N5p_.js} +2 -2
- package/out/assets/{index.lazy-b_N8nrYw.js → index.lazy-CzANViGX.js} +1 -1
- package/out/assets/index.lazy-D3cw7yyA.js +2 -0
- package/out/assets/{index.lazy-0DsJzEoI.js → index.lazy-DVVZzbCN.js} +1 -1
- package/out/assets/{index.lazy-DOgKxDuF.js → index.lazy-DxZgywoV.js} +1 -1
- package/out/assets/{index.lazy-CPV-dZxo.js → index.lazy-RBLN4SE9.js} +1 -1
- package/out/assets/index.lazy-s4E2z9AY.js +2 -0
- package/out/assets/{mp-DjXDNjls.js → mp-CJWipckT.js} +1 -1
- package/out/assets/triangle-alert-CO_5uXy2.js +1 -0
- package/out/assets/{useChannelMessages-DS1ntAKN.js → useChannelMessages-D_306Ymv.js} +1 -1
- package/out/assets/{useGameRoom-BSPkCY3n.js → useGameRoom-CURx56m6.js} +1 -1
- package/out/assets/{userProfile-BmzBA_Bk.js → userProfile-oeBvU6ch.js} +1 -1
- package/out/chat/index.html +0 -0
- package/out/chat/join/index.html +0 -0
- package/out/download/index.html +2 -2
- package/out/game/gandengyan/index.html +0 -0
- package/out/game/index.html +0 -0
- package/out/game/zhajinhua/index.html +0 -0
- package/out/index.html +2 -2
- package/out/note/index.html +0 -0
- package/out/ping/index.html +2 -2
- package/out/profile/index.html +0 -0
- package/out/web3/index.html +0 -0
- package/package.json +1 -1
- package/server/src/utils/api.js +149 -9
- package/out/assets/index-CgErXULe.css +0 -1
- package/out/assets/index-DN0kD5zr.js +0 -31
- package/out/assets/index.lazy-CQavt0-9.js +0 -2
- package/out/assets/index.lazy-CUq9lbK_.js +0 -1
- package/out/assets/index.lazy-GtegOPkJ.js +0 -2
- package/out/assets/index.lazy-s3nUpCQ1.js +0 -1
- package/out/assets/triangle-alert-D-qigSSn.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{a as r,c as i,d as a,g as o,i as s,p as c,r as l,t as u,u as d,v as f}from"./userStore-q0BBZsIV.js";import{i as p,r as m}from"./LanguageToggle-B99eQcTE.js";import{n as h,t as g}from"./lock-C0pdaery.js";import{t as _}from"./download-Bhqn6hL1.js";import{t as v}from"./external-link-CNR21yFA.js";import{a as y,i as b,n as x,r as S,t as C}from"./mp-DjXDNjls.js";import{t as w}from"./key-round-BpSdpOHi.js";import{t as T}from"./AppShell-gILTcRs-.js";import{t as E}from"./wallet-DmZMdK9A.js";import{I as D,M as O,N as ee,O as te,i as ne,j as k,m as re}from"./index-DN0kD5zr.js";var ie=o(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),A=o(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),ae=o(`qr-code`,[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]),oe=o(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),se=o(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),j=t(e()),M=n();function ce(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function le({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:c,onTogglePrivateKey:l,onGenerate:u}){let{t:d}=D();return(0,M.jsxs)(`div`,{className:`web3-box-account`,children:[(0,M.jsx)(`div`,{className:`web3-box-account-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:e}),(0,M.jsx)(`p`,{children:d(`web3.box.account.desc`)})]})}),(0,M.jsxs)(`div`,{className:`web3-box-login`,children:[(0,M.jsx)(`input`,{type:`text`,placeholder:d(`login.username.placeholder`),value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:r?`text`:`password`,placeholder:d(`web3.login.passwordOptional`),value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:c,type:`button`,children:r?(0,M.jsx)(O,{size:16}):(0,M.jsx)(k,{size:16})})]}),(0,M.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:u,disabled:!t.trim(),type:`button`,children:[(0,M.jsx)(w,{size:16}),d(`web3.box.account.generate`)]})]}),a?(0,M.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.address`)}),(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:a.address.toLowerCase()}),(0,M.jsx)(S,{text:a.address.toLowerCase()})]})]}),(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.x25519Public`)}),(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:a.publicKey}),(0,M.jsx)(S,{text:a.publicKey})]})]}),(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.x25519Private`)}),(0,M.jsxs)(`div`,{className:`mono-row danger`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:i?a.privateKey:ce(a.privateKey)}),(0,M.jsx)(`button`,{className:`btn btn-icon`,onClick:l,title:d(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,M.jsx)(k,{size:14}):(0,M.jsx)(O,{size:14})})]})]})]}):null]})}function ue(e,t){return Number.isFinite(e)?t(e):`-`}function de({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:o,encryptLabel:s,decryptLabel:c,messagePlaceholder:l,cipherPlaceholder:u,onMessageChange:d,onCipherTextChange:f,onEncrypt:p,onDecrypt:m}){let{t:h,formatDateTime:_}=D(),v=`box-message-${e.replaceAll(/\s+/g,`-`)}`,y=a(r);return(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:e}),(0,M.jsx)(`p`,{children:t})]})}),(0,M.jsx)(`label`,{className:`web3-box-label`,htmlFor:v,children:h(`web3.box.plaintext`)}),(0,M.jsx)(`textarea`,{id:v,className:`textarea`,value:n,onChange:e=>d(e.target.value),rows:4,placeholder:l,translate:`no`}),(0,M.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,M.jsxs)(`button`,{className:`btn btn-primary`,onClick:p,type:`button`,children:[(0,M.jsx)(g,{size:16}),s]}),(0,M.jsxs)(`button`,{className:`btn btn-secondary`,onClick:m,type:`button`,children:[(0,M.jsx)(w,{size:16}),c]})]}),o&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:o}),(0,M.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:h(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>f(e.target.value),rows:5,placeholder:u,translate:`no`})]}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:h(`web3.box.decryptResult`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:h(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]}),y&&(0,M.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,M.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,M.jsx)(`span`,{children:h(`web3.box.timestamp`)}),(0,M.jsx)(`code`,{translate:`no`,children:ue(y.timestampMs,_)})]}),(0,M.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,M.jsx)(`span`,{children:h(`web3.box.nonce`)}),(0,M.jsx)(`code`,{translate:`no`,children:y.nonce})]})]})]})}function fe(e){let{t}=D();return(0,M.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,M.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,M.jsx)(le,{title:t(`web3.box.accountA`),username:e.boxAUsername,password:e.boxAPassword,showPassword:e.boxAShowPassword,showPrivateKey:e.boxAShowPrivateKey,account:e.boxAAccount,onUsernameChange:e.onBoxAUsernameChange,onPasswordChange:e.onBoxAPasswordChange,onTogglePassword:e.onBoxAShowPasswordToggle,onTogglePrivateKey:e.onBoxAShowPrivateKeyToggle,onGenerate:e.onGenerateBoxA}),(0,M.jsx)(le,{title:t(`web3.box.accountB`),username:e.boxBUsername,password:e.boxBPassword,showPassword:e.boxBShowPassword,showPrivateKey:e.boxBShowPrivateKey,account:e.boxBAccount,onUsernameChange:e.onBoxBUsernameChange,onPasswordChange:e.onBoxBPasswordChange,onTogglePassword:e.onBoxBShowPasswordToggle,onTogglePrivateKey:e.onBoxBShowPrivateKeyToggle,onGenerate:e.onGenerateBoxB})]}),(0,M.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,M.jsx)(de,{title:`A → B`,description:t(`web3.box.flowAB.desc`),message:e.boxABMessage,cipherText:e.boxABCipherText,decryptedText:e.boxABDecryptedText,error:e.boxABError,encryptLabel:t(`web3.box.flowAB.encrypt`),decryptLabel:t(`web3.box.flowAB.decrypt`),messagePlaceholder:t(`web3.box.flowAB.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxABMessageChange,onCipherTextChange:e.onBoxABCipherTextChange,onEncrypt:e.onEncryptBoxAB,onDecrypt:e.onDecryptBoxAB}),(0,M.jsx)(de,{title:`B → A`,description:t(`web3.box.flowBA.desc`),message:e.boxBAMessage,cipherText:e.boxBACipherText,decryptedText:e.boxBADecryptedText,error:e.boxBAError,encryptLabel:t(`web3.box.flowBA.encrypt`),decryptLabel:t(`web3.box.flowBA.decrypt`),messagePlaceholder:t(`web3.box.flowBA.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxBAMessageChange,onCipherTextChange:e.onBoxBACipherTextChange,onEncrypt:e.onEncryptBoxBA,onDecrypt:e.onDecryptBoxBA})]}),(0,M.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:t(`web3.box.encryptTitle`)}),(0,M.jsx)(`p`,{children:t(`web3.box.encryptDesc`)})]})}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:e.boxEncryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.senderPrivatePlaceholder`),value:e.boxEncryptSenderPrivateKey,onChange:t=>e.onBoxEncryptSenderPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,M.jsx)(O,{size:16}):(0,M.jsx)(k,{size:16})})]}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,M.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.recipientPublicPlaceholder`),value:e.boxEncryptRecipientPublicKey,onChange:t=>e.onBoxEncryptRecipientPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.plaintext`)})}),(0,M.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:t(`web3.box.messagePlaceholder`),translate:`no`}),(0,M.jsx)(`div`,{className:`web3-box-actions`,children:(0,M.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,M.jsx)(g,{size:16}),t(`web3.box.encryptTitle`)]})}),e.boxEncryptError&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:t(`web3.box.encryptResultPlaceholder`),translate:`no`})]})]}),(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:t(`web3.box.decryptTitle`)}),(0,M.jsx)(`p`,{children:t(`web3.box.decryptDesc`)})]})}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,M.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.senderPublicPlaceholder`),value:e.boxDecryptSenderPublicKey,onChange:t=>e.onBoxDecryptSenderPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:e.boxDecryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.recipientPrivatePlaceholder`),value:e.boxDecryptRecipientPrivateKey,onChange:t=>e.onBoxDecryptRecipientPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,M.jsx)(O,{size:16}):(0,M.jsx)(k,{size:16})})]}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptCipherText,onChange:t=>e.onBoxDecryptCipherTextChange(t.target.value),rows:5,placeholder:t(`web3.box.cipherDecryptPlaceholder`),translate:`no`}),(0,M.jsx)(`div`,{className:`web3-box-actions`,children:(0,M.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,M.jsx)(w,{size:16}),t(`web3.box.decryptTitle`)]})}),e.boxDecryptError&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.decryptResult`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:t(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]})]})]})}function N({icon:e,message:t,className:n=`empty-state glass`}){return(0,M.jsxs)(`div`,{className:n,children:[(0,M.jsx)(`div`,{className:`empty-state-icon`,children:e}),(0,M.jsx)(`p`,{children:t})]})}function pe({label:e,pem:t,filename:n}){let{t:r}=D();function i(){let e=new Blob([t],{type:`text/plain`}),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}return(0,M.jsxs)(`div`,{className:`web3-pem-block`,children:[(0,M.jsxs)(`div`,{className:`web3-pem-header`,children:[(0,M.jsx)(`span`,{className:`web3-pem-label`,children:e}),(0,M.jsxs)(`div`,{className:`web3-pem-actions`,children:[(0,M.jsx)(S,{text:t,label:r(`common.copy`),className:`btn btn-sm`,iconSize:14}),(0,M.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:i,title:r(`common.download`),children:[(0,M.jsx)(_,{size:14}),r(`common.download`)]})]})]}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:t,readOnly:!0,rows:6,translate:`no`})]})}function me({walletResult:e,publicPem:t,privatePem:n}){let{t:r}=D();if(!t||!n)return(0,M.jsx)(N,{icon:(0,M.jsx)(g,{size:36}),message:r(`web3.empty.pem`)});let i=e?.username||`wallet`;return(0,M.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,M.jsx)(pe,{label:`${i}.pub`,pem:t,filename:`${i}.pub`}),(0,M.jsx)(pe,{label:`${i}.pem`,pem:n,filename:`${i}.pem`})]})}var P=Object.defineProperty,F=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,R=(e,t)=>{for(var n in t||={})he.call(t,n)&&L(e,n,t[n]);if(F)for(var n of F(t))I.call(t,n)&&L(e,n,t[n]);return e},z=(e,t)=>{var n={};for(var r in e)he.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&F)for(var r of F(e))t.indexOf(r)<0&&I.call(e,r)&&(n[r]=e[r]);return n},B;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(B||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(B||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(B||={});var V=B,ge={L:V.QrCode.Ecc.LOW,M:V.QrCode.Ecc.MEDIUM,Q:V.QrCode.Ecc.QUARTILE,H:V.QrCode.Ecc.HIGH},H=128,_e=`L`,U=`#FFFFFF`,W=`#000000`,G=!1,K=1,ve=4,ye=0,be=.1;function q(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function xe(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Se(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*be),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Ce(e,t){return t==null?e?ve:ye:Math.max(Math.floor(t),0)}function we({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=j.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...V.QrSegment.makeSegments(t)),e),[]);return V.QrCode.encodeSegments(r,ge[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=j.useMemo(()=>{let e=c.getModules(),t=Ce(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Se(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Te=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Ee=j.forwardRef(function(e,t){let n=e,{value:r,size:i=H,level:a=_e,bgColor:o=U,fgColor:s=W,includeMargin:c=G,minVersion:l=K,boostLevel:u,marginSize:d,imageSettings:f}=n,p=z(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=z(p,[`style`]),g=f?.src,_=j.useRef(null),v=j.useRef(null),y=j.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=j.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=we({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});j.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=xe(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Te?t.fill(new Path2D(q(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),j.useEffect(()=>{x(!1)},[g]);let E=R({height:i,width:i},m),D=null;return g!=null&&(D=j.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),j.createElement(j.Fragment,null,j.createElement(`canvas`,R({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Ee.displayName=`QRCodeCanvas`;var J=j.forwardRef(function(e,t){let n=e,{value:r,size:i=H,level:a=_e,bgColor:o=U,fgColor:s=W,includeMargin:c=G,minVersion:l=K,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=z(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=we({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=xe(g,v.excavation)),b=j.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=q(y,h);return j.createElement(`svg`,R({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&j.createElement(`title`,null,d),j.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),j.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});J.displayName=`QRCodeSVG`;function De({walletResult:e,mnemonicPhrase:t,deriveBatch:n,deriveList:r,deriveShowIndex:i,deriveShowAddress:a,deriveShowPrivateKey:o,showAddressQr:s,showMnemonicReveal:c,showMnemonicQr:l,onToggleAddressQr:u,onToggleMnemonicReveal:d,onToggleMnemonicQr:f,onToggleDeriveIndex:p,onToggleDeriveAddress:m,onToggleDerivePrivateKey:g,onDerive:_}){let{t:v}=D(),y=e?.address||``;return!e||!y?(0,M.jsx)(N,{icon:(0,M.jsx)(E,{size:36}),message:v(`web3.empty.walletTools`)}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,M.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:u,children:[(0,M.jsx)(ae,{size:14}),v(s?`web3.action.hideAddressQr`:`web3.action.showAddressQr`),s?(0,M.jsx)(ie,{size:14}):(0,M.jsx)(h,{size:14})]}),s&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,M.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:y}),(0,M.jsx)(S,{text:y})]}),(0,M.jsx)(`div`,{className:`qr-wrap`,children:(0,M.jsx)(J,{value:y,size:200})})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,M.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:d,children:[(0,M.jsx)(w,{size:14}),v(c?`web3.action.hideMnemonic`:`web3.action.showMnemonic`),c?(0,M.jsx)(ie,{size:14}):(0,M.jsx)(h,{size:14})]}),c&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,M.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:t}),(0,M.jsx)(S,{text:t})]}),(0,M.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,M.jsx)(oe,{size:14}),v(`web3.warning.mnemonic`)]}),(0,M.jsx)(`button`,{className:`web3-tools-toggle`,onClick:f,children:v(l?`web3.action.hideMnemonicQr`:`web3.action.showMnemonicQr`)}),l&&(0,M.jsx)(`div`,{className:`qr-wrap`,children:(0,M.jsx)(J,{value:t,size:260})})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsx)(`div`,{children:(0,M.jsx)(`button`,{className:`btn btn-primary`,onClick:_,children:v(`web3.action.deriveAddresses`,{count:n})})}),(0,M.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,M.jsx)(oe,{size:14}),v(`web3.warning.privateKey`)]}),r.length>0&&(0,M.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,M.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,M.jsx)(`thead`,{children:(0,M.jsxs)(`tr`,{children:[(0,M.jsx)(`th`,{onClick:p,className:`web3-derive-th`,children:v(`web3.label.account`)}),(0,M.jsx)(`th`,{onClick:m,className:`web3-derive-th`,children:v(`web3.label.address`)}),(0,M.jsx)(`th`,{onClick:g,className:`web3-derive-th danger`,children:v(`web3.label.privateKeyToggle`,{action:v(o?`web3.action.hide`:`web3.action.show`)})})]})}),(0,M.jsx)(`tbody`,{children:r.map(e=>(0,M.jsxs)(`tr`,{children:[(0,M.jsx)(`td`,{children:i?e.index+1:``}),(0,M.jsx)(`td`,{translate:`no`,children:a?e.address:``}),(0,M.jsx)(`td`,{className:`danger`,children:(0,M.jsx)(`span`,{translate:`no`,children:o?e.privateKey:``})})]},e.index))})]})})]})]})}function Y({title:e,icon:t,children:n,accent:r=!1}){return(0,M.jsxs)(`div`,{className:`web3-key-card ${r?`accent`:``}`,children:[(0,M.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,M.jsx)(`span`,{className:`web3-key-card-icon`,children:t}),(0,M.jsx)(`span`,{className:`web3-key-card-title`,children:e})]}),(0,M.jsx)(`div`,{className:`web3-key-card-body`,translate:`no`,children:n})]})}function Oe(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function ke({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let{t:o}=D(),s=e?.address||``;return!e||!s?(0,M.jsx)(N,{icon:(0,M.jsx)(b,{size:36}),message:o(`web3.empty.identity`)}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,M.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||o(`web3.notSignedIn`)}),(0,M.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,M.jsx)(`code`,{translate:`no`,children:s.toLowerCase()}),(0,M.jsx)(S,{text:s.toLowerCase()}),(0,M.jsxs)(`a`,{href:`https://debank.com/profile/${s}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,M.jsx)(v,{size:14}),o(`web3.action.view`)]})]})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,M.jsx)(Y,{title:o(`web3.label.ed25519Public`),icon:(0,M.jsx)(y,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:t.ed_public_key}),(0,M.jsx)(S,{text:t.ed_public_key})]})}),(0,M.jsx)(Y,{title:o(`web3.label.x25519Public`),icon:(0,M.jsx)(w,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:t.public_key}),(0,M.jsx)(S,{text:t.public_key})]})}),(0,M.jsx)(Y,{title:o(`web3.label.combinedPrivate`),icon:(0,M.jsx)(se,{size:18}),accent:!0,children:(0,M.jsxs)(`div`,{className:`mono-row danger`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:i?t.private_key:Oe(t.private_key)}),(0,M.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:o(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,M.jsx)(k,{size:14}):(0,M.jsx)(O,{size:14})})]})}),(0,M.jsx)(Y,{title:`IPNS ID`,icon:(0,M.jsx)(A,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,M.jsx)(S,{text:n})]})})]})]})}function Ae({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:s}){let{t:c}=D();return(0,M.jsxs)(`div`,{className:`input-panel`,children:[(0,M.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,M.jsx)(`input`,{type:`text`,placeholder:c(`login.username.placeholder`),value:e,onChange:e=>i(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:n?`text`:`password`,placeholder:c(`web3.login.passwordOptional`),value:t,onChange:e=>a(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,M.jsx)(O,{size:16}):(0,M.jsx)(k,{size:16})})]})]}),(0,M.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:s,disabled:!e.trim()||r,type:`button`,children:r?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`span`,{className:`spinner`}),c(`web3.login.generating`)]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(E,{size:16}),c(`web3.login.generateAndSignIn`)]})})]})}var je=e=>btoa(String.fromCharCode(...e)),Me=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([4,34,4,32,...e.slice(0,32)]),r=new Uint8Array([2,1,0]),i=r.length+t.length+n.length,a=new Uint8Array(2+i);a[0]=48,a[1]=i;let o=2;return a.set(r,o),o+=r.length,a.set(t,o),o+=t.length,a.set(n,o),`-----BEGIN PRIVATE KEY-----\n${je(a).match(/.{1,64}/g)?.join(`
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{a as r,c as i,d as a,g as o,i as s,p as c,r as l,t as u,u as d,v as f}from"./userStore-q0BBZsIV.js";import{i as p,r as m}from"./LanguageToggle-HAJ3D6Ne.js";import{n as h,t as g}from"./lock-C0pdaery.js";import{t as _}from"./download-Bhqn6hL1.js";import{t as v}from"./external-link-CNR21yFA.js";import{a as y,i as b,n as x,r as S,t as C}from"./mp-CJWipckT.js";import{t as w}from"./key-round-BpSdpOHi.js";import{t as T}from"./AppShell-oF8wPXde.js";import{t as E}from"./wallet-DmZMdK9A.js";import{F as ee,M as D,N as O,R as k,i as te,k as ne,m as re}from"./index--p9MKNEl.js";var ie=o(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),A=o(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),ae=o(`qr-code`,[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]),oe=o(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),se=o(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),j=t(e()),M=n();function ce(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function le({title:e,username:t,password:n,showPassword:r,showPrivateKey:i,account:a,onUsernameChange:o,onPasswordChange:s,onTogglePassword:c,onTogglePrivateKey:l,onGenerate:u}){let{t:d}=k();return(0,M.jsxs)(`div`,{className:`web3-box-account`,children:[(0,M.jsx)(`div`,{className:`web3-box-account-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:e}),(0,M.jsx)(`p`,{children:d(`web3.box.account.desc`)})]})}),(0,M.jsxs)(`div`,{className:`web3-box-login`,children:[(0,M.jsx)(`input`,{type:`text`,placeholder:d(`login.username.placeholder`),value:t,onChange:e=>o(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:r?`text`:`password`,placeholder:d(`web3.login.passwordOptional`),value:n,onChange:e=>s(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:c,type:`button`,children:r?(0,M.jsx)(O,{size:16}):(0,M.jsx)(D,{size:16})})]}),(0,M.jsxs)(`button`,{className:`btn btn-primary btn-full`,onClick:u,disabled:!t.trim(),type:`button`,children:[(0,M.jsx)(w,{size:16}),d(`web3.box.account.generate`)]})]}),a?(0,M.jsxs)(`div`,{className:`web3-box-key-list`,children:[(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.address`)}),(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:a.address.toLowerCase()}),(0,M.jsx)(S,{text:a.address.toLowerCase()})]})]}),(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.x25519Public`)}),(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:a.publicKey}),(0,M.jsx)(S,{text:a.publicKey})]})]}),(0,M.jsxs)(`div`,{className:`web3-box-key-row`,children:[(0,M.jsx)(`span`,{children:d(`web3.label.x25519Private`)}),(0,M.jsxs)(`div`,{className:`mono-row danger`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:i?a.privateKey:ce(a.privateKey)}),(0,M.jsx)(`button`,{className:`btn btn-icon`,onClick:l,title:d(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,M.jsx)(D,{size:14}):(0,M.jsx)(O,{size:14})})]})]})]}):null]})}function ue(e,t){return Number.isFinite(e)?t(e):`-`}function de({title:e,description:t,message:n,cipherText:r,decryptedText:i,error:o,encryptLabel:s,decryptLabel:c,messagePlaceholder:l,cipherPlaceholder:u,onMessageChange:d,onCipherTextChange:f,onEncrypt:p,onDecrypt:m}){let{t:h,formatDateTime:_}=k(),v=`box-message-${e.replaceAll(/\s+/g,`-`)}`,y=a(r);return(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:e}),(0,M.jsx)(`p`,{children:t})]})}),(0,M.jsx)(`label`,{className:`web3-box-label`,htmlFor:v,children:h(`web3.box.plaintext`)}),(0,M.jsx)(`textarea`,{id:v,className:`textarea`,value:n,onChange:e=>d(e.target.value),rows:4,placeholder:l,translate:`no`}),(0,M.jsxs)(`div`,{className:`web3-box-actions`,children:[(0,M.jsxs)(`button`,{className:`btn btn-primary`,onClick:p,type:`button`,children:[(0,M.jsx)(g,{size:16}),s]}),(0,M.jsxs)(`button`,{className:`btn btn-secondary`,onClick:m,type:`button`,children:[(0,M.jsx)(w,{size:16}),c]})]}),o&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:o}),(0,M.jsxs)(`div`,{className:`web3-box-result-grid`,children:[(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:h(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:r,onChange:e=>f(e.target.value),rows:5,placeholder:u,translate:`no`})]}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:h(`web3.box.decryptResult`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:i,readOnly:!0,rows:5,placeholder:h(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]}),y&&(0,M.jsxs)(`div`,{className:`web3-box-token-meta`,children:[(0,M.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,M.jsx)(`span`,{children:h(`web3.box.timestamp`)}),(0,M.jsx)(`code`,{translate:`no`,children:ue(y.timestampMs,_)})]}),(0,M.jsxs)(`div`,{className:`web3-box-token-meta-row`,children:[(0,M.jsx)(`span`,{children:h(`web3.box.nonce`)}),(0,M.jsx)(`code`,{translate:`no`,children:y.nonce})]})]})]})}function fe(e){let{t}=k();return(0,M.jsxs)(`div`,{className:`web3-box-workspace`,children:[(0,M.jsxs)(`div`,{className:`web3-box-grid`,children:[(0,M.jsx)(le,{title:t(`web3.box.accountA`),username:e.boxAUsername,password:e.boxAPassword,showPassword:e.boxAShowPassword,showPrivateKey:e.boxAShowPrivateKey,account:e.boxAAccount,onUsernameChange:e.onBoxAUsernameChange,onPasswordChange:e.onBoxAPasswordChange,onTogglePassword:e.onBoxAShowPasswordToggle,onTogglePrivateKey:e.onBoxAShowPrivateKeyToggle,onGenerate:e.onGenerateBoxA}),(0,M.jsx)(le,{title:t(`web3.box.accountB`),username:e.boxBUsername,password:e.boxBPassword,showPassword:e.boxBShowPassword,showPrivateKey:e.boxBShowPrivateKey,account:e.boxBAccount,onUsernameChange:e.onBoxBUsernameChange,onPasswordChange:e.onBoxBPasswordChange,onTogglePassword:e.onBoxBShowPasswordToggle,onTogglePrivateKey:e.onBoxBShowPrivateKeyToggle,onGenerate:e.onGenerateBoxB})]}),(0,M.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,M.jsx)(de,{title:`A → B`,description:t(`web3.box.flowAB.desc`),message:e.boxABMessage,cipherText:e.boxABCipherText,decryptedText:e.boxABDecryptedText,error:e.boxABError,encryptLabel:t(`web3.box.flowAB.encrypt`),decryptLabel:t(`web3.box.flowAB.decrypt`),messagePlaceholder:t(`web3.box.flowAB.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxABMessageChange,onCipherTextChange:e.onBoxABCipherTextChange,onEncrypt:e.onEncryptBoxAB,onDecrypt:e.onDecryptBoxAB}),(0,M.jsx)(de,{title:`B → A`,description:t(`web3.box.flowBA.desc`),message:e.boxBAMessage,cipherText:e.boxBACipherText,decryptedText:e.boxBADecryptedText,error:e.boxBAError,encryptLabel:t(`web3.box.flowBA.encrypt`),decryptLabel:t(`web3.box.flowBA.decrypt`),messagePlaceholder:t(`web3.box.flowBA.messagePlaceholder`),cipherPlaceholder:t(`web3.box.cipherPlaceholder`),onMessageChange:e.onBoxBAMessageChange,onCipherTextChange:e.onBoxBACipherTextChange,onEncrypt:e.onEncryptBoxBA,onDecrypt:e.onDecryptBoxBA})]}),(0,M.jsxs)(`div`,{className:`web3-box-flow-grid`,children:[(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:t(`web3.box.encryptTitle`)}),(0,M.jsx)(`p`,{children:t(`web3.box.encryptDesc`)})]})}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:e.boxEncryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.senderPrivatePlaceholder`),value:e.boxEncryptSenderPrivateKey,onChange:t=>e.onBoxEncryptSenderPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxEncryptShowPrivateKeyToggle,type:`button`,children:e.boxEncryptShowPrivateKey?(0,M.jsx)(O,{size:16}):(0,M.jsx)(D,{size:16})})]}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,M.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.recipientPublicPlaceholder`),value:e.boxEncryptRecipientPublicKey,onChange:t=>e.onBoxEncryptRecipientPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.plaintext`)})}),(0,M.jsx)(`textarea`,{className:`textarea`,value:e.boxEncryptMessage,onChange:t=>e.onBoxEncryptMessageChange(t.target.value),rows:4,placeholder:t(`web3.box.messagePlaceholder`),translate:`no`}),(0,M.jsx)(`div`,{className:`web3-box-actions`,children:(0,M.jsxs)(`button`,{className:`btn btn-primary`,onClick:e.onEncryptOnly,type:`button`,children:[(0,M.jsx)(g,{size:16}),t(`web3.box.encryptTitle`)]})}),e.boxEncryptError&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxEncryptError}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxEncryptCipherText,readOnly:!0,rows:5,placeholder:t(`web3.box.encryptResultPlaceholder`),translate:`no`})]})]}),(0,M.jsxs)(`section`,{className:`web3-box-flow`,children:[(0,M.jsx)(`div`,{className:`web3-box-flow-header`,children:(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h2`,{children:t(`web3.box.decryptTitle`)}),(0,M.jsx)(`p`,{children:t(`web3.box.decryptDesc`)})]})}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.sender`)})}),(0,M.jsx)(`input`,{type:`text`,placeholder:t(`web3.box.senderPublicPlaceholder`),value:e.boxDecryptSenderPublicKey,onChange:t=>e.onBoxDecryptSenderPublicKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.recipient`)})}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:e.boxDecryptShowPrivateKey?`text`:`password`,placeholder:t(`web3.box.recipientPrivatePlaceholder`),value:e.boxDecryptRecipientPrivateKey,onChange:t=>e.onBoxDecryptRecipientPrivateKeyChange(t.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:e.onBoxDecryptShowPrivateKeyToggle,type:`button`,children:e.boxDecryptShowPrivateKey?(0,M.jsx)(O,{size:16}):(0,M.jsx)(D,{size:16})})]}),(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.ciphertext`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptCipherText,onChange:t=>e.onBoxDecryptCipherTextChange(t.target.value),rows:5,placeholder:t(`web3.box.cipherDecryptPlaceholder`),translate:`no`}),(0,M.jsx)(`div`,{className:`web3-box-actions`,children:(0,M.jsxs)(`button`,{className:`btn btn-secondary`,onClick:e.onDecryptOnly,type:`button`,children:[(0,M.jsx)(w,{size:16}),t(`web3.box.decryptTitle`)]})}),e.boxDecryptError&&(0,M.jsx)(`p`,{className:`web3-tools-danger`,children:e.boxDecryptError}),(0,M.jsxs)(`div`,{className:`web3-box-result`,children:[(0,M.jsx)(`label`,{className:`web3-box-result-header`,children:(0,M.jsx)(`span`,{children:t(`web3.box.decryptResult`)})}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:e.boxDecryptResult,readOnly:!0,rows:5,placeholder:t(`web3.box.decryptResultPlaceholder`),translate:`no`})]})]})]})]})}function N({icon:e,message:t,className:n=`empty-state glass`}){return(0,M.jsxs)(`div`,{className:n,children:[(0,M.jsx)(`div`,{className:`empty-state-icon`,children:e}),(0,M.jsx)(`p`,{children:t})]})}function pe({label:e,pem:t,filename:n}){let{t:r}=k();function i(){let e=new Blob([t],{type:`text/plain`}),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=n,i.click(),URL.revokeObjectURL(r)}return(0,M.jsxs)(`div`,{className:`web3-pem-block`,children:[(0,M.jsxs)(`div`,{className:`web3-pem-header`,children:[(0,M.jsx)(`span`,{className:`web3-pem-label`,children:e}),(0,M.jsxs)(`div`,{className:`web3-pem-actions`,children:[(0,M.jsx)(S,{text:t,label:r(`common.copy`),className:`btn btn-sm`,iconSize:14}),(0,M.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:i,title:r(`common.download`),children:[(0,M.jsx)(_,{size:14}),r(`common.download`)]})]})]}),(0,M.jsx)(`textarea`,{className:`textarea mono`,value:t,readOnly:!0,rows:6,translate:`no`})]})}function me({walletResult:e,publicPem:t,privatePem:n}){let{t:r}=k();if(!t||!n)return(0,M.jsx)(N,{icon:(0,M.jsx)(g,{size:36}),message:r(`web3.empty.pem`)});let i=e?.username||`wallet`;return(0,M.jsxs)(`div`,{className:`web3-pem-list`,children:[(0,M.jsx)(pe,{label:`${i}.pub`,pem:t,filename:`${i}.pub`}),(0,M.jsx)(pe,{label:`${i}.pem`,pem:n,filename:`${i}.pem`})]})}var P=Object.defineProperty,F=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,I=Object.prototype.propertyIsEnumerable,L=(e,t,n)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,R=(e,t)=>{for(var n in t||={})he.call(t,n)&&L(e,n,t[n]);if(F)for(var n of F(t))I.call(t,n)&&L(e,n,t[n]);return e},z=(e,t)=>{var n={};for(var r in e)he.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&F)for(var r of F(e))t.indexOf(r)<0&&I.call(e,r)&&(n[r]=e[r]);return n},B;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(B||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(B||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(B||={});var V=B,ge={L:V.QrCode.Ecc.LOW,M:V.QrCode.Ecc.MEDIUM,Q:V.QrCode.Ecc.QUARTILE,H:V.QrCode.Ecc.HIGH},H=128,_e=`L`,U=`#FFFFFF`,W=`#000000`,G=!1,K=1,ve=4,ye=0,be=.1;function q(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function xe(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Se(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*be),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function Ce(e,t){return t==null?e?ve:ye:Math.max(Math.floor(t),0)}function we({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=j.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...V.QrSegment.makeSegments(t)),e),[]);return V.QrCode.encodeSegments(r,ge[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=j.useMemo(()=>{let e=c.getModules(),t=Ce(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Se(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Te=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Ee=j.forwardRef(function(e,t){let n=e,{value:r,size:i=H,level:a=_e,bgColor:o=U,fgColor:s=W,includeMargin:c=G,minVersion:l=K,boostLevel:u,marginSize:d,imageSettings:f}=n,p=z(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=z(p,[`style`]),g=f?.src,_=j.useRef(null),v=j.useRef(null),y=j.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=j.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=we({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});j.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=xe(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Te?t.fill(new Path2D(q(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),j.useEffect(()=>{x(!1)},[g]);let E=R({height:i,width:i},m),ee=null;return g!=null&&(ee=j.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),j.createElement(j.Fragment,null,j.createElement(`canvas`,R({style:E,height:i,width:i,ref:y,role:`img`},h)),ee)});Ee.displayName=`QRCodeCanvas`;var J=j.forwardRef(function(e,t){let n=e,{value:r,size:i=H,level:a=_e,bgColor:o=U,fgColor:s=W,includeMargin:c=G,minVersion:l=K,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=z(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=we({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=xe(g,v.excavation)),b=j.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=q(y,h);return j.createElement(`svg`,R({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&j.createElement(`title`,null,d),j.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),j.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});J.displayName=`QRCodeSVG`;function De({walletResult:e,mnemonicPhrase:t,deriveBatch:n,deriveList:r,deriveShowIndex:i,deriveShowAddress:a,deriveShowPrivateKey:o,showAddressQr:s,showMnemonicReveal:c,showMnemonicQr:l,onToggleAddressQr:u,onToggleMnemonicReveal:d,onToggleMnemonicQr:f,onToggleDeriveIndex:p,onToggleDeriveAddress:m,onToggleDerivePrivateKey:g,onDerive:_}){let{t:v}=k(),y=e?.address||``;return!e||!y?(0,M.jsx)(N,{icon:(0,M.jsx)(E,{size:36}),message:v(`web3.empty.walletTools`)}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,M.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:u,children:[(0,M.jsx)(ae,{size:14}),v(s?`web3.action.hideAddressQr`:`web3.action.showAddressQr`),s?(0,M.jsx)(ie,{size:14}):(0,M.jsx)(h,{size:14})]}),s&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,M.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:y}),(0,M.jsx)(S,{text:y})]}),(0,M.jsx)(`div`,{className:`qr-wrap`,children:(0,M.jsx)(J,{value:y,size:200})})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-tools-section`,children:[(0,M.jsxs)(`button`,{className:`web3-tools-toggle`,onClick:d,children:[(0,M.jsx)(w,{size:14}),v(c?`web3.action.hideMnemonic`:`web3.action.showMnemonic`),c?(0,M.jsx)(ie,{size:14}):(0,M.jsx)(h,{size:14})]}),c&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsxs)(`div`,{className:`web3-mnemonic-card`,children:[(0,M.jsx)(`p`,{className:`web3-mnemonic-text`,translate:`no`,children:t}),(0,M.jsx)(S,{text:t})]}),(0,M.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,M.jsx)(oe,{size:14}),v(`web3.warning.mnemonic`)]}),(0,M.jsx)(`button`,{className:`web3-tools-toggle`,onClick:f,children:v(l?`web3.action.hideMnemonicQr`:`web3.action.showMnemonicQr`)}),l&&(0,M.jsx)(`div`,{className:`qr-wrap`,children:(0,M.jsx)(J,{value:t,size:260})})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-mnemonic-reveal`,children:[(0,M.jsx)(`div`,{children:(0,M.jsx)(`button`,{className:`btn btn-primary`,onClick:_,children:v(`web3.action.deriveAddresses`,{count:n})})}),(0,M.jsxs)(`p`,{className:`web3-tools-danger`,children:[(0,M.jsx)(oe,{size:14}),v(`web3.warning.privateKey`)]}),r.length>0&&(0,M.jsx)(`div`,{className:`web3-derive-table-wrap`,children:(0,M.jsxs)(`table`,{className:`web3-derive-table`,children:[(0,M.jsx)(`thead`,{children:(0,M.jsxs)(`tr`,{children:[(0,M.jsx)(`th`,{onClick:p,className:`web3-derive-th`,children:v(`web3.label.account`)}),(0,M.jsx)(`th`,{onClick:m,className:`web3-derive-th`,children:v(`web3.label.address`)}),(0,M.jsx)(`th`,{onClick:g,className:`web3-derive-th danger`,children:v(`web3.label.privateKeyToggle`,{action:v(o?`web3.action.hide`:`web3.action.show`)})})]})}),(0,M.jsx)(`tbody`,{children:r.map(e=>(0,M.jsxs)(`tr`,{children:[(0,M.jsx)(`td`,{children:i?e.index+1:``}),(0,M.jsx)(`td`,{translate:`no`,children:a?e.address:``}),(0,M.jsx)(`td`,{className:`danger`,children:(0,M.jsx)(`span`,{translate:`no`,children:o?e.privateKey:``})})]},e.index))})]})})]})]})}function Y({title:e,icon:t,children:n,accent:r=!1}){return(0,M.jsxs)(`div`,{className:`web3-key-card ${r?`accent`:``}`,children:[(0,M.jsxs)(`div`,{className:`web3-key-card-header`,children:[(0,M.jsx)(`span`,{className:`web3-key-card-icon`,children:t}),(0,M.jsx)(`span`,{className:`web3-key-card-title`,children:e})]}),(0,M.jsx)(`div`,{className:`web3-key-card-body`,translate:`no`,children:n})]})}function Oe(e){return e?`•`.repeat(Math.min(e.length,32)):`-`}function ke({walletResult:e,keys:t,ipns:n,avatarSrc:r,showPrivateKey:i,onTogglePrivateKey:a}){let{t:o}=k(),s=e?.address||``;return!e||!s?(0,M.jsx)(N,{icon:(0,M.jsx)(b,{size:36}),message:o(`web3.empty.identity`)}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`web3-identity-card`,children:[(0,M.jsx)(`img`,{src:r,alt:`avatar`,className:`web3-identity-avatar`}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h1`,{className:`web3-identity-name`,children:e.username||o(`web3.notSignedIn`)}),(0,M.jsxs)(`div`,{className:`web3-identity-address`,children:[(0,M.jsx)(`code`,{translate:`no`,children:s.toLowerCase()}),(0,M.jsx)(S,{text:s.toLowerCase()}),(0,M.jsxs)(`a`,{href:`https://debank.com/profile/${s}`,target:`_blank`,rel:`noopener noreferrer`,className:`link`,children:[(0,M.jsx)(v,{size:14}),o(`web3.action.view`)]})]})]})]}),t&&(0,M.jsxs)(`div`,{className:`web3-key-grid`,children:[(0,M.jsx)(Y,{title:o(`web3.label.ed25519Public`),icon:(0,M.jsx)(y,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:t.ed_public_key}),(0,M.jsx)(S,{text:t.ed_public_key})]})}),(0,M.jsx)(Y,{title:o(`web3.label.x25519Public`),icon:(0,M.jsx)(w,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:t.public_key}),(0,M.jsx)(S,{text:t.public_key})]})}),(0,M.jsx)(Y,{title:o(`web3.label.combinedPrivate`),icon:(0,M.jsx)(se,{size:18}),accent:!0,children:(0,M.jsxs)(`div`,{className:`mono-row danger`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:i?t.private_key:Oe(t.private_key)}),(0,M.jsx)(`button`,{className:`btn btn-icon`,onClick:a,title:o(i?`web3.action.hidePrivateKey`:`web3.action.showPrivateKey`),type:`button`,children:i?(0,M.jsx)(D,{size:14}):(0,M.jsx)(O,{size:14})})]})}),(0,M.jsx)(Y,{title:`IPNS ID`,icon:(0,M.jsx)(A,{size:18}),children:(0,M.jsxs)(`div`,{className:`mono-row`,children:[(0,M.jsx)(`code`,{className:`mono`,translate:`no`,children:n}),(0,M.jsx)(S,{text:n})]})})]})]})}function Ae({username:e,password:t,showPassword:n,generating:r,onUsernameChange:i,onPasswordChange:a,onTogglePassword:o,onGenerate:s}){let{t:c}=k();return(0,M.jsxs)(`div`,{className:`input-panel`,children:[(0,M.jsxs)(`div`,{className:`web3-tools-inputs`,children:[(0,M.jsx)(`input`,{type:`text`,placeholder:c(`login.username.placeholder`),value:e,onChange:e=>i(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsxs)(`div`,{className:`input-wrap`,children:[(0,M.jsx)(`input`,{type:n?`text`:`password`,placeholder:c(`web3.login.passwordOptional`),value:t,onChange:e=>a(e.target.value),className:`input`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:`false`}),(0,M.jsx)(`button`,{className:`input-eye`,onClick:o,type:`button`,children:n?(0,M.jsx)(O,{size:16}):(0,M.jsx)(D,{size:16})})]})]}),(0,M.jsx)(`button`,{className:`btn btn-primary btn-full`,onClick:s,disabled:!e.trim()||r,type:`button`,children:r?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`span`,{className:`spinner`}),c(`web3.login.generating`)]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(E,{size:16}),c(`web3.login.generateAndSignIn`)]})})]})}var je=e=>btoa(String.fromCharCode(...e)),Me=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([4,34,4,32,...e.slice(0,32)]),r=new Uint8Array([2,1,0]),i=r.length+t.length+n.length,a=new Uint8Array(2+i);a[0]=48,a[1]=i;let o=2;return a.set(r,o),o+=r.length,a.set(t,o),o+=t.length,a.set(n,o),`-----BEGIN PRIVATE KEY-----\n${je(a).match(/.{1,64}/g)?.join(`
|
|
2
2
|
`)}\n-----END PRIVATE KEY-----`},Ne=e=>{let t=new Uint8Array([48,5,6,3,43,101,112]),n=new Uint8Array([3,33,0,...e]),r=t.length+n.length,i=new Uint8Array(2+r);i[0]=48,i[1]=r;let a=2;return i.set(t,a),a+=t.length,i.set(n,a),`-----BEGIN PUBLIC KEY-----\n${je(i).match(/.{1,64}/g)?.join(`
|
|
3
|
-
`)}\n-----END PUBLIC KEY-----`},X=[`wallet`,`pem`,`export`,`EA`];function Pe(){let e=window.location.hash.replace(`#`,``);return X.includes(e)?e:`wallet`}function Fe(){let{t:e}=
|
|
3
|
+
`)}\n-----END PUBLIC KEY-----`},X=[`wallet`,`pem`,`export`,`EA`];function Pe(){let e=window.location.hash.replace(`#`,``);return X.includes(e)?e:`wallet`}function Fe(){let{t:e}=k(),t=ne(),n=re(e=>e.isDarkMode),a=re(e=>e.setIsDarkMode),o=re(e=>e.addToast),f=u(e=>e.setUserIdentity),[h,_]=(0,j.useState)(`wallet`),[v,y]=(0,j.useState)(``),[S,D]=(0,j.useState)(``),[O,ie]=(0,j.useState)(!1),[A,ae]=(0,j.useState)(null),[oe,se]=(0,j.useState)(null),[ce,le]=(0,j.useState)(``),[ue,de]=(0,j.useState)(``),[N,pe]=(0,j.useState)(``),[P,F]=(0,j.useState)(``),[he,I]=(0,j.useState)([]),[L,R]=(0,j.useState)(0),[z,B]=(0,j.useState)(!0),[V,ge]=(0,j.useState)(!0),[H,_e]=(0,j.useState)(!1),[U,W]=(0,j.useState)(!1),[G,K]=(0,j.useState)(!1),[ve,ye]=(0,j.useState)(!1),[be,q]=(0,j.useState)(!1),[xe,Se]=(0,j.useState)(!1),[Ce,we]=(0,j.useState)(``),[Te,Ee]=(0,j.useState)(``),[J,Y]=(0,j.useState)(!1),[Oe,je]=(0,j.useState)(!1),[X,Fe]=(0,j.useState)(null),[Ie,Le]=(0,j.useState)(``),[Re,ze]=(0,j.useState)(``),[Be,Ve]=(0,j.useState)(!1),[He,Ue]=(0,j.useState)(!1),[Z,We]=(0,j.useState)(null),[Ge,Ke]=(0,j.useState)(`Hello B. This is from A.`),[qe,Je]=(0,j.useState)(``),[Ye,Xe]=(0,j.useState)(``),[Ze,Qe]=(0,j.useState)(``),[$e,et]=(0,j.useState)(`Hello A. This is from B.`),[tt,nt]=(0,j.useState)(``),[rt,it]=(0,j.useState)(``),[at,ot]=(0,j.useState)(``),[st,ct]=(0,j.useState)(``),[lt,ut]=(0,j.useState)(``),[dt,ft]=(0,j.useState)(``),[pt,mt]=(0,j.useState)(``),[ht,Q]=(0,j.useState)(``),[gt,_t]=(0,j.useState)(!1),[vt,yt]=(0,j.useState)(``),[bt,xt]=(0,j.useState)(``),[St,Ct]=(0,j.useState)(``),[wt,Tt]=(0,j.useState)(``),[Et,$]=(0,j.useState)(``),[Dt,Ot]=(0,j.useState)(!1);(0,j.useEffect)(()=>{_(Pe());let e=()=>_(Pe());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]);let kt=e=>{_(e),window.location.hash=e},At=(0,j.useCallback)(async()=>{if(!v.trim())return;Se(!0),await new Promise(e=>setTimeout(e,0));let t=d(v.trim(),S),n=`${t.username}#${t.address.slice(-4).toUpperCase()}`;ae(t),f({...t,displayName:n}),o(e(`login.toast.signedIn`,{username:t.username}),`success`),F(i(t.danger));let r=l(t.danger);se(r),le(x(r.private_key,r.ed_public_key));let a=C(r.private_key,r.ed_public_key);de(Me(a.secretKey)),pe(Ne(a.publicKey)),I([]),R(0),W(!1),K(!1),ye(!1),q(!1),Se(!1)},[o,S,f,e,v]);function jt(t,n,r){let i=t.trim();if(!i)return;let a=d(i,n),s=l(a.danger);r({username:a.username,address:a.address,publicKey:s.public_key,privateKey:s.private_key}),Xe(``),Qe(``),it(``),ot(``),o(e(`web3.toast.accountGenerated`),`success`)}function Mt({senderAccount:t,recipientAccount:n,message:i,setCipherText:a,setDecryptedText:o,setError:s}){if(!t||!n){s(e(`web3.error.accountsRequired`));return}if(!i.trim()){s(e(`web3.error.messageRequired`));return}a(r(i,{senderPrivateKey:t.privateKey,recipientPublicKey:n.publicKey})),o(``),s(``)}function Nt({senderAccount:t,recipientAccount:n,cipherText:r,setDecryptedText:i,setError:a}){if(!t||!n){a(e(`web3.error.accountsRequired`));return}if(!r.trim()){a(e(`web3.error.cipherRequired`));return}let o=s(r,{senderPublicKey:t.publicKey,recipientPrivateKey:n.privateKey});if(!o){a(e(`web3.error.decryptFailed`)),i(``);return}i(o),a(``)}function Pt(){if(!st.trim()){Q(e(`web3.error.senderPublicRequired`));return}if(!lt.trim()){Q(e(`web3.error.recipientPrivateRequired`));return}if(!dt.trim()){Q(e(`web3.error.cipherRequired`));return}let t=s(dt,{senderPublicKey:st.trim(),recipientPrivateKey:lt.trim()});if(!t){Q(e(`web3.error.decryptFailed`)),mt(``);return}mt(t),Q(``)}function Ft(){if(!vt.trim()){$(e(`web3.error.senderPrivateRequired`));return}if(!bt.trim()){$(e(`web3.error.recipientPublicRequired`));return}if(!St.trim()){$(e(`web3.error.messageRequired`));return}Tt(r(St,{senderPrivateKey:vt.trim(),recipientPublicKey:bt.trim()})),$(``)}let It=()=>{if(!P)return;let e=[];for(let t=L;t<L+10;t++){let n=`m/44'/60'/0'/0/${t}`,r=c.fromPhrase(P,void 0,n);e.push({index:t,address:r.address,privateKey:r.privateKey})}I(t=>[...t,...e]),R(e=>e+10)},Lt=te(A?.address||void 0),Rt=h===`wallet`?`web3.view.wallet`:h===`pem`?`web3.view.pem`:h===`EA`?`web3.view.asymmetric`:`web3.view.export`,zt=[{id:`wallet`,icon:(0,M.jsx)(b,{size:16}),labelKey:`web3.view.wallet`},{id:`pem`,icon:(0,M.jsx)(g,{size:16}),labelKey:`web3.view.pem`},{id:`export`,icon:(0,M.jsx)(E,{size:16}),labelKey:`web3.view.export`},{id:`EA`,icon:(0,M.jsx)(w,{size:16}),labelKey:`web3.view.asymmetric`}],Bt=h!==`EA`;return(0,M.jsx)(T,{sidebar:({closeSidebar:n})=>(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`button`,{type:`button`,className:`sidebar-header sidebar-header-link`,onClick:t,children:[(0,M.jsx)(ee,{size:18}),(0,M.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,M.jsx)(`nav`,{className:`sidebar-nav`,children:zt.map(t=>(0,M.jsxs)(`button`,{onClick:()=>{kt(t.id),n()},className:`sidebar-nav-btn ${h===t.id?`active`:``}`,children:[t.icon,(0,M.jsx)(`span`,{children:e(t.labelKey)})]},t.id))})]}),headerTitle:(0,M.jsx)(`h2`,{className:`header-title`,children:e(Rt)}),headerRight:(0,M.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>a(!n),title:e(`common.theme.toggle`),children:n?(0,M.jsx)(m,{size:16}):(0,M.jsx)(p,{size:16})}),children:(0,M.jsx)(`div`,{className:`web3-page`,children:(0,M.jsxs)(`div`,{className:`web3-container ${h===`EA`?`wide`:``}`,children:[Bt&&(0,M.jsx)(Ae,{username:v,password:S,showPassword:O,generating:xe,onUsernameChange:y,onPasswordChange:D,onTogglePassword:()=>ie(!O),onGenerate:At}),h===`wallet`&&(0,M.jsx)(ke,{walletResult:A,keys:oe,ipns:ce,avatarSrc:Lt,showPrivateKey:be,onTogglePrivateKey:()=>q(!be)}),h===`pem`&&(0,M.jsx)(me,{walletResult:A,publicPem:N,privatePem:ue}),h===`export`&&(0,M.jsx)(De,{walletResult:A,mnemonicPhrase:P,deriveBatch:10,deriveList:he,deriveShowIndex:z,deriveShowAddress:V,deriveShowPrivateKey:H,showAddressQr:U,showMnemonicReveal:G,showMnemonicQr:ve,onToggleAddressQr:()=>W(!U),onToggleMnemonicReveal:()=>K(!G),onToggleMnemonicQr:()=>ye(!ve),onToggleDeriveIndex:()=>B(!z),onToggleDeriveAddress:()=>ge(!V),onToggleDerivePrivateKey:()=>_e(!H),onDerive:It}),h===`EA`&&(0,M.jsx)(fe,{boxAUsername:Ce,boxAPassword:Te,boxAShowPassword:J,boxAShowPrivateKey:Oe,boxAAccount:X,boxBUsername:Ie,boxBPassword:Re,boxBShowPassword:Be,boxBShowPrivateKey:He,boxBAccount:Z,boxABMessage:Ge,boxABCipherText:qe,boxABDecryptedText:Ye,boxABError:Ze,boxBAMessage:$e,boxBACipherText:tt,boxBADecryptedText:rt,boxBAError:at,boxEncryptSenderPrivateKey:vt,boxEncryptRecipientPublicKey:bt,boxEncryptMessage:St,boxEncryptCipherText:wt,boxEncryptError:Et,boxEncryptShowPrivateKey:Dt,boxDecryptSenderPublicKey:st,boxDecryptRecipientPrivateKey:lt,boxDecryptCipherText:dt,boxDecryptResult:pt,boxDecryptError:ht,boxDecryptShowPrivateKey:gt,onBoxAUsernameChange:we,onBoxAPasswordChange:Ee,onBoxAShowPasswordToggle:()=>Y(!J),onBoxAShowPrivateKeyToggle:()=>je(!Oe),onGenerateBoxA:()=>jt(Ce,Te,Fe),onBoxBUsernameChange:Le,onBoxBPasswordChange:ze,onBoxBShowPasswordToggle:()=>Ve(!Be),onBoxBShowPrivateKeyToggle:()=>Ue(!He),onGenerateBoxB:()=>jt(Ie,Re,We),onBoxABMessageChange:Ke,onBoxABCipherTextChange:Je,onEncryptBoxAB:()=>Mt({senderAccount:X,recipientAccount:Z,message:Ge,setCipherText:Je,setDecryptedText:Xe,setError:Qe}),onDecryptBoxAB:()=>Nt({senderAccount:X,recipientAccount:Z,cipherText:qe,setDecryptedText:Xe,setError:Qe}),onBoxBAMessageChange:et,onBoxBACipherTextChange:nt,onEncryptBoxBA:()=>Mt({senderAccount:Z,recipientAccount:X,message:$e,setCipherText:nt,setDecryptedText:it,setError:ot}),onDecryptBoxBA:()=>Nt({senderAccount:Z,recipientAccount:X,cipherText:tt,setDecryptedText:it,setError:ot}),onBoxEncryptSenderPrivateKeyChange:yt,onBoxEncryptRecipientPublicKeyChange:xt,onBoxEncryptMessageChange:Ct,onBoxEncryptShowPrivateKeyToggle:()=>Ot(!Dt),onEncryptOnly:Ft,onBoxDecryptSenderPublicKeyChange:ct,onBoxDecryptRecipientPrivateKeyChange:ut,onBoxDecryptCipherTextChange:ft,onBoxDecryptShowPrivateKeyToggle:()=>_t(!gt),onDecryptOnly:Pt})]})})})}var Ie=f(`/web3/`)({component:Fe});export{Ie as Route};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{b as r,g as i,v as a}from"./userStore-q0BBZsIV.js";import{t as o}from"./cloud-DAGFCFIp.js";import{t as s}from"./download-Bhqn6hL1.js";import{
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{b as r,g as i,v as a}from"./userStore-q0BBZsIV.js";import{t as o}from"./cloud-DAGFCFIp.js";import{t as s}from"./download-Bhqn6hL1.js";import{R as c}from"./index--p9MKNEl.js";import{t as l}from"./MarketingHeader-B3vYocUz.js";import{n as u}from"./format-CR8oUWq6.js";var d=i(`apple`,[[`path`,{d:`M12 6.528V3a1 1 0 0 1 1-1h0`,key:`11qiee`}],[`path`,{d:`M18.237 21A15 15 0 0 0 22 11a6 6 0 0 0-10-4.472A6 6 0 0 0 2 11a15.1 15.1 0 0 0 3.763 10 3 3 0 0 0 3.648.648 5.5 5.5 0 0 1 5.178 0A3 3 0 0 0 18.237 21`,key:`110c12`}]]),f=i(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),p=i(`laptop`,[[`path`,{d:`M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z`,key:`1pdavp`}],[`path`,{d:`M20.054 15.987H3.946`,key:`14rxg9`}]]),m=i(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),h=t(e(),1),g=n(),_=`https://github.com/most-people/most/releases/latest`,v=`${`https://download.most.box`.replace(/\/+$/,``)}/releases/latest.json`,y=[{platform:`windows`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`windows`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`macos`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`macos`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`linux`,arch:`x64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_},{platform:`linux`,arch:`arm64`,kind:`installer`,filename:`GitHub Releases`,githubUrl:_}],b={windows:{name:`Windows`,ext:`.exe`,descKey:`download.platform.windows.desc`,icon:m},macos:{name:`macOS`,ext:`.dmg`,descKey:`download.platform.macos.desc`,icon:d},linux:{name:`Linux`,ext:`.AppImage`,descKey:`download.platform.linux.desc`,icon:p}};function x(e){return typeof e==`object`&&!!e}function S(e){return x(e)?[`windows`,`macos`,`linux`].includes(String(e.platform))&&[`x64`,`arm64`].includes(String(e.arch))&&(e.kind===`installer`||e.kind===`updater`)&&typeof e.filename==`string`&&typeof e.githubUrl==`string`&&(typeof e.r2Url==`string`||e.r2Url===void 0):!1}function C(e){return!x(e)||typeof e.version!=`string`||typeof e.publishedAt!=`string`||!Array.isArray(e.assets)?!1:e.assets.every(S)}function w(){return[navigator.userAgentData?.platform,navigator.platform,navigator.userAgent].filter(Boolean).join(` `).toLowerCase()}function T(){if(typeof navigator>`u`)return`windows:x64`;let e=w(),t=/arm|aarch64/.test(e)?`arm64`:`x64`;return/mac|darwin/.test(e)?`macos:${t}`:/linux/.test(e)?`linux:${t}`:`windows:${t}`}function E(){let{t:e}=c(),[t,n]=(0,h.useState)(null),[r,i]=(0,h.useState)(v?`loading`:`fallback`),[a,l]=(0,h.useState)(`windows:x64`),[d,p]=(0,h.useState)(`r2`);(0,h.useEffect)(()=>{l(T())},[]),(0,h.useEffect)(()=>{if(!v)return;let e=new AbortController;return fetch(v,{cache:`no-store`,signal:e.signal}).then(e=>{if(!e.ok)throw Error(`Manifest request failed: ${e.status}`);return e.json()}).then(e=>{if(!C(e))throw Error(`Invalid download manifest`);n(e),i(`ready`)}).catch(e=>{e instanceof DOMException&&e.name===`AbortError`||(n(null),i(`fallback`))}),()=>e.abort()},[]),(0,h.useEffect)(()=>{r===`fallback`&&p(`github`)},[r]);let m=t?.assets.filter(e=>e.kind===`installer`)||[],_=m.length?m:y,x=_.some(e=>e.r2Url),S=d===`r2`&&x?`r2`:`github`;return(0,g.jsxs)(`div`,{className:`download-options`,children:[(0,g.jsxs)(`div`,{className:`ui-segmented-control download-source-tabs`,role:`tablist`,"aria-label":e(`download.source.label`),children:[(0,g.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":S===`r2`,disabled:!x,className:S===`r2`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`r2`),children:[(0,g.jsx)(o,{size:15}),`Cloudflare R2`]}),(0,g.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":S===`github`,className:S===`github`?`ui-segmented-option download-source-tab is-active`:`ui-segmented-option download-source-tab`,onClick:()=>p(`github`),children:[(0,g.jsx)(f,{size:15}),`GitHub Releases`]})]}),(0,g.jsx)(`p`,{className:`download-source-note`,children:r===`loading`?e(`download.source.loading`):r===`ready`&&t?e(`download.source.ready`,{version:t.version}):e(`download.source.fallback`)}),(0,g.jsx)(`div`,{className:`download-platform-grid`,children:_.map(t=>{let n=b[t.platform],r=n.icon,i=`${t.platform}:${t.arch}`,o=S===`r2`&&t.r2Url?t.r2Url:t.githubUrl,c=i===a;return(0,g.jsxs)(`article`,{className:c?`download-platform-card is-recommended`:`download-platform-card`,children:[(0,g.jsx)(`div`,{className:`download-platform-icon`,children:(0,g.jsx)(r,{size:32})}),(0,g.jsxs)(`div`,{className:`download-platform-content`,children:[(0,g.jsxs)(`div`,{className:`download-platform-heading`,children:[(0,g.jsx)(`h3`,{children:n.name}),(0,g.jsx)(`span`,{children:t.arch})]}),(0,g.jsx)(`p`,{children:e(n.descKey)}),(0,g.jsxs)(`dl`,{className:`download-platform-meta`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:e(`download.platform.source`)}),(0,g.jsx)(`dd`,{children:S===`r2`&&t.r2Url?e(`download.source.r2Mirror`):`GitHub Releases`})]}),t.size?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:e(`download.platform.size`)}),(0,g.jsx)(`dd`,{children:u(t.size)})]}):null,t.cid?(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`dt`,{children:`CID`}),(0,g.jsx)(`dd`,{children:t.cid.slice(0,12)})]}):null]}),(0,g.jsx)(`div`,{className:`download-platform-actions`,children:(0,g.jsxs)(`a`,{href:o,className:`btn btn-primary`,children:[(0,g.jsx)(s,{size:16}),e(`download.platform.action`,{ext:n.ext})]})})]}),c?(0,g.jsx)(`span`,{className:`download-recommended-badge`,children:e(`download.platform.current`)}):null]},i)})})]})}var D=[{featureKey:`download.comparison.node`,webKey:`download.comparison.webConnectsNode`,desktopKey:`download.comparison.desktopBuiltinNode`},{featureKey:`download.comparison.fileSharing`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopFull`},{featureKey:`download.comparison.verification`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopFull`},{featureKey:`download.comparison.seeding`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktopDefaultOn`},{featureKey:`download.comparison.largeFiles`,webKey:`download.comparison.webDependsNode`,desktopKey:`download.comparison.desktop10gb`}];function O(){let{t:e}=c();return(0,h.useEffect)(()=>{document.title=e(`download.meta.title`)},[e]),(0,g.jsxs)(`div`,{className:`download-page`,children:[(0,g.jsx)(l,{}),(0,g.jsx)(`section`,{className:`download-hero`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`div`,{className:`download-hero-icon`,children:(0,g.jsx)(s,{size:40})}),(0,g.jsx)(`h1`,{className:`download-hero-title`,children:e(`download.hero.title`)}),(0,g.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.hero.desc`)})]})}),(0,g.jsx)(`section`,{className:`download-platforms`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`h2`,{className:`download-section-title`,children:e(`download.platforms.title`)}),(0,g.jsx)(E,{})]})}),(0,g.jsx)(`section`,{className:`download-comparison`,children:(0,g.jsxs)(`div`,{className:`mkt-container`,children:[(0,g.jsx)(`h2`,{className:`download-section-title`,children:e(`download.comparison.title`)}),(0,g.jsx)(`div`,{className:`download-table-wrap`,children:(0,g.jsxs)(`table`,{className:`download-table`,children:[(0,g.jsx)(`thead`,{children:(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`th`,{children:e(`download.comparison.feature`)}),(0,g.jsx)(`th`,{children:e(`download.comparison.web`)}),(0,g.jsx)(`th`,{children:e(`download.comparison.desktop`)})]})}),(0,g.jsx)(`tbody`,{children:D.map(t=>(0,g.jsxs)(`tr`,{children:[(0,g.jsx)(`td`,{children:e(t.featureKey)}),(0,g.jsx)(`td`,{className:`col-web`,children:e(t.webKey)}),(0,g.jsx)(`td`,{className:`col-desktop`,children:e(t.desktopKey)})]},t.featureKey))})]})})]})}),(0,g.jsx)(`section`,{className:`download-cta`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(`p`,{className:`download-hero-desc`,children:e(`download.npmNote`)})})}),(0,g.jsx)(`section`,{className:`download-cta`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(r,{to:`/`,className:`btn btn-primary`,children:e(`common.backHome`)})})}),(0,g.jsx)(`footer`,{className:`mkt-footer`,children:(0,g.jsx)(`div`,{className:`mkt-container`,children:(0,g.jsx)(`div`,{className:`mkt-footer-inner`,children:(0,g.jsx)(`p`,{className:`mkt-footer-copy`,children:`MostBox`})})})})]})}var k=a(`/download/`)({component:O});export{k as Route};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MilkdownEditor-CRA9oxMp.js","assets/jsx-runtime-Bt-cYkS5.js","assets/index--p9MKNEl.js","assets/userStore-q0BBZsIV.js","assets/useNavigate-DWlBD_-b.js","assets/index-DEu4udaa.css","assets/dist-zyJb88Zz.js","assets/dist-CbTzBiwL.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{g as r,o as i,s as ee,t as a,v as o}from"./userStore-q0BBZsIV.js";import{n as s}from"./useNavigate-DWlBD_-b.js";import{i as te,r as c}from"./LanguageToggle-HAJ3D6Ne.js";import{n as l,t as u}from"./lock-C0pdaery.js";import{n as d,t as f}from"./folder-BGJCjyba.js";import{t as p}from"./file-text-CFfvvCnM.js";import{t as ne}from"./AppShell-oF8wPXde.js";import{t as m}from"./notebook-pen-CfdFgaDE.js";import{t as h}from"./OpenSidebarButton-D3JRO-Hh.js";import{t as g}from"./plus-Mlh7r_bm.js";import{t as _}from"./save-DN4eprSt.js";import{t as re}from"./search-CbzMyENy.js";import{t as ie}from"./trash-2-zdhWec_U.js";import{A as ae,D as v,E as y,F as b,M as oe,R as x,T as se,V as ce,d as le,k as ue,l as de,m as S,t as C,u as fe}from"./index--p9MKNEl.js";import{t as pe}from"./SidebarAccount-8_hQAYXx.js";var me=r(`move`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m15 19-3 3-3-3`,key:`11eu04`}],[`path`,{d:`m19 9 3 3-3 3`,key:`1mg7y2`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}],[`path`,{d:`m5 9-3 3 3 3`,key:`j64kie`}],[`path`,{d:`m9 5 3-3 3 3`,key:`l8vdw6`}]]),he=r(`pencil-ruler`,[[`path`,{d:`M13 7 8.7 2.7a2.41 2.41 0 0 0-3.4 0L2.7 5.3a2.41 2.41 0 0 0 0 3.4L7 13`,key:`orapub`}],[`path`,{d:`m8 6 2-2`,key:`115y1s`}],[`path`,{d:`m18 16 2-2`,key:`ee94s4`}],[`path`,{d:`m17 11 4.3 4.3c.94.94.94 2.46 0 3.4l-2.6 2.6c-.94.94-2.46.94-3.4 0L11 17`,key:`cfq27r`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),w=t(e(),1),T=n();function E(e){return e.type===`directory`?v(e.path?`${e.path}/${e.name}`:e.name):y(e)}function ge({target:e,directories:t,onMove:n,onClose:r}){let{t:i}=x(),ee=v(e.path||``),a=E(e),o=t.filter(t=>e.type===`directory`?t.path!==a&&!t.path.startsWith(`${a}/`):!0),[s,te]=(0,w.useState)(ee),[c,u]=(0,w.useState)(``),[p,ne]=(0,w.useState)(new Set),m=v(c),h=c.trim()?m:s,g=v(h)===ee,_=new Map;for(let e of o){let t=_.get(e.parentPath)||[];t.push(e),_.set(e.parentPath,t)}let re=o.filter(e=>{if(!e.parentPath)return!0;let t=e.parentPath.split(`/`).filter(Boolean);return t.every((e,n)=>p.has(t.slice(0,n+1).join(`/`)))}),ie=[{label:i(`note.root`),path:``},...s.split(`/`).filter(Boolean).map((e,t,n)=>({label:e,path:n.slice(0,t+1).join(`/`)}))];function y(e){te(v(e)),u(``)}function b(e){y(e),_.has(e)&&ne(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function oe(){g||n(h)}return(0,T.jsx)(le,{onClose:r,children:(0,T.jsxs)(`div`,{className:`note-move-modal`,onClick:e=>e.stopPropagation(),children:[(0,T.jsxs)(`div`,{className:`modal-header`,children:[(0,T.jsx)(`h3`,{children:i(`note.move.title`)}),(0,T.jsx)(`button`,{className:`btn btn-icon`,onClick:r,children:(0,T.jsx)(ae,{size:18})})]}),(0,T.jsxs)(`div`,{className:`note-move-target`,children:[(0,T.jsx)(`span`,{children:i(`note.move.moving`)}),(0,T.jsx)(`strong`,{translate:`no`,children:e.name})]}),(0,T.jsx)(`div`,{className:`note-move-path`,children:ie.map((e,t)=>(0,T.jsxs)(w.Fragment,{children:[t>0&&(0,T.jsx)(`span`,{children:`/`}),(0,T.jsx)(`button`,{type:`button`,onClick:()=>y(e.path),children:(0,T.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.label})})]},e.path||`root`))}),(0,T.jsxs)(`div`,{className:`note-move-folder-list`,children:[(0,T.jsxs)(`button`,{type:`button`,className:`note-move-folder-item ${s===``?`selected`:``}`,onClick:()=>y(``),children:[(0,T.jsx)(`span`,{className:`note-move-folder-spacer`}),(0,T.jsx)(f,{className:`note-move-folder-icon`,size:16}),(0,T.jsx)(`span`,{children:i(`note.root`)})]}),o.length===0?(0,T.jsx)(`p`,{className:`note-move-empty`,children:i(`note.move.noFolders`)}):re.map(e=>{let t=_.has(e.path),n=p.has(e.path);return(0,T.jsxs)(`button`,{type:`button`,className:`note-move-folder-item note-move-depth-${Math.min(e.depth,4)} ${s===e.path?`selected`:``}`,onClick:()=>b(e.path),children:[t?n?(0,T.jsx)(l,{className:`note-move-expander`,size:14}):(0,T.jsx)(d,{className:`note-move-expander`,size:14}):(0,T.jsx)(`span`,{className:`note-move-folder-spacer`}),(0,T.jsx)(f,{className:`note-move-folder-icon`,size:16}),(0,T.jsx)(`span`,{translate:`no`,children:e.name}),e.parentPath&&(0,T.jsx)(`small`,{translate:`no`,children:e.parentPath})]},e.path)})]}),(0,T.jsx)(`input`,{className:`input input-compact`,value:c,onChange:e=>u(e.target.value),placeholder:i(`note.move.pathPlaceholder`),translate:`no`}),(0,T.jsxs)(`div`,{className:`note-move-destination`,children:[(0,T.jsx)(`span`,{children:i(`note.move.destinationLabel`)}),(0,T.jsx)(`span`,{translate:h?`no`:`yes`,children:h||i(`note.root`)})]}),(0,T.jsxs)(`div`,{className:`modal-actions`,children:[(0,T.jsx)(`button`,{className:`btn btn-secondary`,onClick:r,children:i(`common.cancel`)}),(0,T.jsx)(`button`,{className:`btn btn-primary`,onClick:oe,disabled:g,children:i(`note.action.move`)})]})]})})}function _e({children:e}){return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{type:`button`,className:`sidebar-header sidebar-header-link`,onClick:ue(),children:[(0,T.jsx)(b,{size:18}),(0,T.jsx)(`h1`,{children:`MOST PEOPLE`})]}),e,(0,T.jsx)(pe,{})]})}var ve=(0,w.lazy)(async()=>({default:(await C(()=>import(`./MilkdownEditor-CRA9oxMp.js`),__vite__mapDeps([0,1,2,3,4,5,6,7]))).MilkdownEditor}));function ye(e){let t=new URLSearchParams(e),n=t.get(`mode`);return{cid:t.get(`cid`)||void 0,mode:n===`edit`?`edit`:void 0}}function be(e={}){let t=new URLSearchParams;e.cid&&t.set(`cid`,e.cid),e.mode&&t.set(`mode`,e.mode);let n=t.toString();return n?`/note/?${n}`:`/note/`}function xe(e,t){return e.isSecret||e.content.startsWith(`mp://1`)?t(`note.preview.encrypted`):String(e.content||``).replace(/```[\s\S]*?```/g,` `).replace(/!\[[^\]]*]\([^)]*\)/g,` `).replace(/\[([^\]]+)]\([^)]*\)/g,`$1`).replace(/[#>*_`~|-]/g,` `).replace(/\s+/g,` `).trim()||t(`note.preview.empty`)}var D={"note.error.nameRequired":`note.error.nameRequired`,"note.error.nameNoSlash":`note.error.nameNoSlash`,"note.error.nameNoBackslash":`note.error.nameNoBackslash`,"note.error.nameInvalid":`note.error.nameInvalid`,"note.error.nameConflict":`note.error.nameConflict`,"note.error.moveIntoSelf":`note.error.moveIntoSelf`};function O(e,t,n){let r=e instanceof Error?e.message:``,i=D[r];return i?n(i):r||t}function Se(e){return e.type===`directory`?v(e.path?`${e.path}/${e.name}`:e.name):y(e)}function Ce(e,t){let n=new Set;for(let t of e){let e=v(t.path).split(`/`).filter(Boolean);for(let t=0;t<e.length;t+=1)n.add(e.slice(0,t+1).join(`/`))}return Array.from(n).sort(t).map(e=>{let t=e.split(`/`);return{path:e,name:t[t.length-1]||e,parentPath:t.slice(0,-1).join(`/`),depth:Math.max(t.length-1,0)}})}function k(){let{t:e,formatDate:t,compareStrings:n}=x(),r=s(),o=ce({select:e=>e.searchStr}),l=(0,w.useMemo)(()=>ye(o),[o]),d=(0,w.useRef)(null),b=S(e=>e.addToast),le=S(e=>e.isDarkMode),ue=S(e=>e.setIsDarkMode),C=a(e=>e.wallet),pe=a(e=>e.openLoginModal),E=S(e=>e.notes),D=S(e=>e.notesPath),k=S(e=>e.setNotesPath),A=S(e=>e.saveNote),we=S(e=>e.deleteNote),Te=S(e=>e.renameNote),j=S(e=>e.localDataReady),M=l.cid||``,N=E.find(e=>e.cid===M),P=!!M,F=P&&l.mode===`edit`,[I,Ee]=(0,w.useState)(``),[L,R]=(0,w.useState)(null),[z,B]=(0,w.useState)(null),[V,H]=(0,w.useState)(null),[De,U]=(0,w.useState)(``),[W,G]=(0,w.useState)(``),[Oe,K]=(0,w.useState)(``),[q,J]=(0,w.useState)(``),[ke,Ae]=(0,w.useState)(``),[je,Y]=(0,w.useState)(``),[X,Me]=(0,w.useState)(!1),[Ne,Z]=(0,w.useState)(``),[Pe,Fe]=(0,w.useState)(!1);(0,w.useEffect)(()=>{if(!M){U(``),G(``);return}if(!N){U(``),G(j?e(`note.error.notFound`):``);return}if(N.content.startsWith(`mp://1`)){if(!C){U(``),G(e(`note.error.loginToDecrypt`));return}let t=i(N.content,C.danger);if(!t){U(``),G(e(`note.error.decryptFailed`));return}U(t),G(``);return}U(N.content||``),G(``)},[M,j,N,e,C]),(0,w.useEffect)(()=>{if(!F){Fe(!1);return}if(!M||!N){J(``),Ae(``),Y(``),Me(!1),Z(j?e(`note.error.notFound`):``);return}if(J(N.name),Ae(N.path||``),Me(N.isSecret===!0||N.content.startsWith(`mp://1`)),N.content.startsWith(`mp://1`)){if(!C){Y(``),Z(e(`note.error.loginToDecrypt`));return}let t=i(N.content,C.danger);if(!t){Y(``),Z(e(`note.error.decryptFailed`));return}Y(t),Z(``);return}Y(N.content||``),Z(``)},[M,F,j,N,e,C]),(0,w.useEffect)(()=>{K(N?.name||``)},[N?.cid,N?.name]);let Ie=(0,w.useMemo)(()=>se(E,D,I),[E,D,I]),Le=Ie.filter(e=>e.type===`file`).length,Re=N?.isSecret===!0||N?.content.startsWith(`mp://1`)===!0,ze=e(F?X?`note.privacy.secret`:`note.privacy.public`:Re?`note.privacy.secret`:`note.privacy.public`),Be=(0,w.useMemo)(()=>{let t=D.split(`/`).filter(Boolean);return[{label:e(`note.root`),path:``},...t.map((e,n)=>({label:e,path:t.slice(0,n+1).join(`/`)}))]},[D,e]),Ve=(0,w.useMemo)(()=>Ce(E,n),[n,E]);function Q(e={},t=!1){r({href:be(e),replace:t})}function He(e){Q({cid:e.cid})}function Ue(e){Q({cid:e.cid,mode:`edit`})}function $(){return C?!0:(pe(),!1)}function We(){Q(N?{cid:N.cid}:{})}async function Ge(){if($()){if(!N){b(e(`note.toast.notFound`),`error`);return}if(!q.trim()){b(e(`note.toast.nameRequired`),`warning`);return}Fe(!0);try{let t=d.current?.getMarkdown()??je,n=X?ee(t,C.danger):t,r=await A({cid:N.cid,name:q,path:ke,content:n,isSecret:X});Y(t),Q({cid:r},!0),b(e(`note.toast.saved`),`success`)}catch(t){b(O(t,e(`note.toast.saveFailed`),e),`error`)}finally{Fe(!1)}}}function Ke(){$()&&R({title:e(`note.create.title`),placeholder:e(`note.namePlaceholder`),confirmText:e(`note.create.action`),onConfirm:async t=>{if($())try{let n=await A({name:t,path:D,content:``,isSecret:!1});R(null),b(e(`note.toast.created`),`success`),Q({cid:n,mode:`edit`})}catch(t){b(O(t,e(`note.toast.createFailed`),e),`error`)}}})}async function qe(){if(!$()||!N)return;let t=Oe.trim();if(!t){K(N.name),b(e(`note.toast.nameRequired`),`warning`);return}if(t!==N.name)try{Te(y(N),N.path,t),b(e(`note.toast.renamed`),`success`)}catch(t){K(N.name),b(O(t,e(`note.toast.renameFailed`),e),`error`)}}function Je(e){$()&&H(e)}async function Ye(t){if(V)try{Te(Se(V),t,V.name),H(null),b(e(`note.toast.moved`),`success`)}catch(t){b(O(t,e(`note.toast.moveFailed`),e),`error`)}}function Xe(t){if(!$())return;let n=t.type===`directory`;B({title:e(n?`note.delete.folderTitle`:`note.delete.noteTitle`),message:e(`note.delete.message`,{name:t.name}),confirmText:e(`note.action.delete`),onConfirm:async()=>{we(n?void 0:t.cid,t.path,t.name),B(null),b(e(`note.toast.deleted`),`success`),t.type===`file`&&t.cid===M&&Q()}})}let Ze=(0,T.jsxs)(`div`,{className:`note-header-title`,children:[(0,T.jsx)(`h2`,{className:`header-title`,children:e(`note.title`)}),(0,T.jsx)(`span`,{children:e(`note.count`,{count:E.length})})]}),Qe=(0,T.jsx)(`div`,{className:`note-theme-wrap`,children:(0,T.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>ue(!le),title:e(`common.theme.toggle`),"aria-label":e(`common.theme.toggle`),children:le?(0,T.jsx)(c,{size:16}):(0,T.jsx)(te,{size:16})})}),$e=(0,T.jsxs)(`section`,{className:`note-list-panel note-sidebar-list`,"aria-label":e(`note.listLabel`),children:[(0,T.jsxs)(`div`,{className:`note-list-header`,children:[(0,T.jsx)(`div`,{className:`note-current-location`,children:(0,T.jsx)(`div`,{className:`note-breadcrumbs`,children:Be.map((e,t)=>(0,T.jsxs)(w.Fragment,{children:[t>0&&(0,T.jsx)(`span`,{children:`/`}),(0,T.jsx)(`button`,{onClick:()=>k(e.path),children:(0,T.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.label})})]},e.path||`root`))})}),(0,T.jsx)(`span`,{className:`note-count`,children:e(`note.count`,{count:Le})})]}),(0,T.jsxs)(`div`,{className:`note-search`,children:[(0,T.jsx)(re,{size:16}),(0,T.jsx)(`input`,{className:`input input-flex`,value:I,onChange:e=>Ee(e.target.value),placeholder:e(`note.search.placeholder`)})]}),Ie.length===0?(0,T.jsxs)(`div`,{className:`ui-empty-state note-empty-state`,children:[(0,T.jsx)(m,{size:32}),(0,T.jsx)(`p`,{children:e(I?`note.empty.noMatches`:`note.empty.noNotes`)})]}):(0,T.jsx)(`div`,{className:`note-list`,children:Ie.map(n=>(0,T.jsx)(`article`,{className:`ui-list-item note-list-item ${n.type===`file`&&n.cid===M?`active`:``}`,children:(0,T.jsxs)(`button`,{className:`ui-list-item-main note-list-item-main ${n.type===`directory`?`folder`:``}`,onClick:()=>{n.type===`directory`?k(v(n.path?`${n.path}/${n.name}`:n.name)):He(n)},children:[(0,T.jsx)(`span`,{className:`ui-list-icon note-list-icon ${n.type===`directory`?`warning`:``}`,children:n.type===`directory`?(0,T.jsx)(f,{size:18}):n.isSecret?(0,T.jsx)(u,{size:18}):(0,T.jsx)(p,{size:18})}),(0,T.jsxs)(`span`,{className:`ui-list-copy note-list-copy`,children:[(0,T.jsx)(`span`,{className:`ui-list-title note-list-name`,translate:`no`,children:n.name}),n.type===`file`?(0,T.jsx)(`span`,{className:`ui-list-desc note-list-preview`,translate:`no`,children:xe(n,e)}):(0,T.jsx)(`span`,{className:`ui-list-desc note-list-preview`,children:e(`note.folder`)})]}),n.type===`file`&&(0,T.jsx)(`span`,{className:`ui-list-meta note-list-date`,children:t(n.updated_at)})]})},`${n.cid}:${n.path}:${n.name}`))}),(0,T.jsx)(`div`,{className:`note-create-btn`,children:(0,T.jsxs)(`button`,{className:`btn`,onClick:Ke,children:[(0,T.jsx)(g,{size:16}),e(`note.newNote`)]})})]});return(0,T.jsxs)(ne,{sidebar:()=>(0,T.jsx)(_e,{children:$e}),headerTitle:Ze,headerRight:Qe,children:[(0,T.jsx)(`main`,{className:`note-page note-browser-page ${P?`has-editor`:``}`,children:(0,T.jsx)(`section`,{className:`note-workspace`,children:(0,T.jsx)(`section`,{className:`note-editor-panel`,"aria-label":e(F?`note.editorLabel.edit`:`note.editorLabel.read`),children:P?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`div`,{className:`note-editor-panel-header`,children:[(0,T.jsxs)(`div`,{className:`note-editor-title-area`,children:[F?(0,T.jsx)(`input`,{className:`note-title-input`,value:q,onChange:e=>J(e.target.value),placeholder:e(`note.namePlaceholder`),translate:`no`,disabled:!N}):N?(0,T.jsx)(`input`,{className:`note-title-input`,value:Oe,onBlur:qe,onChange:e=>K(e.target.value),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(K(N.name),e.currentTarget.blur())},placeholder:e(`note.namePlaceholder`),title:e(`app.rename`),translate:`no`}):(0,T.jsx)(`h3`,{children:e(`note.untitled`)}),N&&(0,T.jsxs)(`div`,{className:`note-editor-info`,children:[(0,T.jsx)(`span`,{children:e(F?`note.mode.edit`:`note.mode.read`)}),(0,T.jsx)(`span`,{children:ze}),(0,T.jsx)(`span`,{children:t(N.updated_at)})]})]}),(0,T.jsxs)(`div`,{className:`note-editor-actions`,children:[(0,T.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:F?We:()=>Q(),title:e(F?`common.cancel`:`common.close`),"aria-label":e(F?`common.cancel`:`common.close`),children:(0,T.jsx)(ae,{size:16})}),F?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(`button`,{className:`btn btn-sm ${X?`btn-warning`:`btn-secondary`}`,onClick:()=>Me(!X),disabled:!N,children:[X?(0,T.jsx)(u,{size:16}):(0,T.jsx)(oe,{size:16}),e(X?`note.privacy.secret`:`note.privacy.public`)]}),(0,T.jsxs)(`button`,{className:`btn btn-sm btn-primary`,onClick:Ge,disabled:Pe||!!Ne||!N,children:[(0,T.jsx)(_,{size:16}),e(Pe?`note.action.saving`:`note.action.save`)]})]}):N&&(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(`button`,{type:`button`,className:`btn btn-icon`,onClick:()=>Je(N),title:e(`note.action.move`),"aria-label":e(`note.action.move`),children:(0,T.jsx)(me,{size:16})}),(0,T.jsx)(`button`,{type:`button`,className:`btn btn-icon note-editor-action-danger`,onClick:()=>Xe(N),title:e(`note.action.delete`),"aria-label":e(`note.action.delete`),children:(0,T.jsx)(ie,{size:16})}),(0,T.jsxs)(`button`,{type:`button`,className:`btn btn-sm btn-primary`,onClick:()=>Ue(N),disabled:!!W,title:e(`note.action.edit`),"aria-label":e(`note.action.edit`),children:[(0,T.jsx)(he,{size:16}),e(`note.action.edit`)]})]})]})]}),F?Ne?(0,T.jsxs)(`div`,{className:`note-empty-state editor-error`,children:[(0,T.jsx)(u,{size:36}),(0,T.jsx)(`p`,{children:Ne})]}):N?(0,T.jsx)(`div`,{className:`note-editor-frame editing`,children:(0,T.jsx)(ve,{ref:d,content:je,onChange:Y,className:`milkdown-editor`})}):(0,T.jsxs)(`div`,{className:`note-empty-state editor-error`,children:[(0,T.jsx)(m,{size:36}),(0,T.jsx)(`p`,{children:e(j?`note.error.notFound`:`note.loading`)})]}):W?(0,T.jsxs)(`div`,{className:`ui-empty-state note-empty-state editor-error`,children:[(0,T.jsx)(u,{size:36}),(0,T.jsx)(`p`,{children:W})]}):N?(0,T.jsx)(`div`,{className:`note-editor-frame reading`,children:(0,T.jsx)(ve,{content:De,readOnly:!0,className:`milkdown-editor`})}):(0,T.jsxs)(`div`,{className:`ui-empty-state note-empty-state editor-error`,children:[(0,T.jsx)(m,{size:36}),(0,T.jsx)(`p`,{children:e(j?`note.error.notFound`:`note.loading`)})]})]}):(0,T.jsxs)(`div`,{className:`ui-empty-state note-editor-empty`,children:[(0,T.jsx)(`div`,{className:`ui-empty-icon note-editor-empty-icon`,children:(0,T.jsx)(m,{size:32})}),(0,T.jsx)(`h3`,{className:`ui-empty-title`,children:e(`note.noOpen.title`)}),(0,T.jsx)(`p`,{className:`ui-empty-desc`,children:E.length>0?e(`note.noOpen.select`):e(`note.noOpen.createFirst`)}),(0,T.jsx)(h,{label:e(`note.openList`),variant:`default`})]})})})}),L&&(0,T.jsx)(de,{title:L.title,placeholder:L.placeholder,defaultValue:L.defaultValue,confirmText:L.confirmText,onConfirm:L.onConfirm,onClose:()=>R(null)}),z&&(0,T.jsx)(fe,{title:z.title,message:z.message,confirmText:z.confirmText,danger:!0,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,T.jsx)(ge,{target:V,directories:Ve,onMove:Ye,onClose:()=>H(null)})]})}function A(){let{t:e}=x();return(0,T.jsx)(w.Suspense,{fallback:(0,T.jsx)(`div`,{className:`note-editor-loading`,children:e(`note.loading`)}),children:(0,T.jsx)(k,{})})}var we=o(`/note/`)({component:A});export{we as Route};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{g as r,t as i,v as a}from"./userStore-q0BBZsIV.js";import{i as o,r as s}from"./LanguageToggle-B99eQcTE.js";import{t as c}from"./copy-5aEv78Eq.js";import{t as ee}from"./AppShell-gILTcRs-.js";import{t as l}from"./play-D5r9Yvbq.js";import{t as te}from"./send-D8p6f8OD.js";import{i as ne,n as re,r as ie,t as ae}from"./useGameRoom-BSPkCY3n.js";import{I as oe,i as u,m as d}from"./index-DN0kD5zr.js";var se=r(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),f=t(e(),1),p=[`S`,`H`,`C`,`D`],m=[`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`,`2`],h=m.filter(e=>e!==`2`),g=new Map(m.map((e,t)=>[e,t+3])),ce=5,_=20,v=1e3;function le({roomCode:e,ownerAddress:t,ownerName:n,players:r=[],random:i=Math.random}){let a=E(r);return a.some(e=>e.address===q(t))||a.unshift({address:q(t),name:J(n),avatar:``}),y({id:String(e||``).toUpperCase(),ownerAddress:q(t),status:`lobby`,seq:1,players:a.slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),avatar:Y(e.avatar),seat:t,hand:[],handCount:0,score:v,playedCards:0})),deck:[],discard:[],table:null,currentSeat:0,lastWinnerSeat:null,previousWinnerSeat:null,passSeats:[],baseScore:1,bombCount:0,diceRolls:[],roundResult:null,log:[`房间已创建`],winnerSeat:null,random:i})}function ue(e,t=[]){let n=b(e);if(!n||n.status!==`lobby`)return n;let r=new Map(n.players.map(e=>[e.address,e.score]));return n.players=E(t).slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),avatar:Y(e.avatar),seat:t,hand:[],handCount:0,score:r.get(e.address)??v,playedCards:0})),n.seq+=1,y(n)}function de(e,t=Math.random){let n=b(e);if(!n||n.players.length<2)throw Error(`至少需要 2 名玩家`);n.deck=N(M(),t),n.discard=[],n.table=null,n.passSeats=[],n.winnerSeat=null,n.roundResult=null,n.baseScore=1,n.bombCount=0,n.status=`playing`;for(let e of R(n))e.hand=P(n,ce),e.handCount=e.hand.length,e.playedCards=0,F(e.hand);let r=k(n,t);return n.currentSeat=r.seat,n.lastWinnerSeat=null,n.log=[`新一局开始,${r.name} 先出牌`],n.diceRolls.length>0&&n.log.unshift(`骰子结果:${n.diceRolls.map(e=>`${e.name} ${e.value}`).join(`,`)}`),n.seq+=1,y(n)}function fe(e,t,n){let r=b(e),i=I(r),a=q(t);if(!i||i.address!==a)return{ok:!1,error:`还没轮到你`,state:y(r)};let o=n.map(e=>i.hand.find(t=>t.id===e));if(o.length===0||o.some(e=>!e))return{ok:!1,error:`手牌不存在`,state:y(r)};let s=he(o);return s?T(s,r.table?.combo)?(o.sort(H),i.hand=i.hand.filter(e=>!n.includes(e.id)),i.handCount=i.hand.length,i.playedCards+=o.length,r.discard.push(...o),r.table={seat:i.seat,playerName:i.name,cards:o,combo:s},r.passSeats=[],r.lastWinnerSeat=i.seat,s.type===`bomb`&&(r.bombCount+=1,r.baseScore*=2),r.log.unshift(`${i.name} 出 ${s.label} ${o.map(K).join(` `)}${s.type===`bomb`?`,底分 ${r.baseScore}`:``}`),i.hand.length===0?A(r,i):z(r),r.seq+=1,{ok:!0,state:y(r)}):{ok:!1,error:`出的牌压不过上一手`,state:y(r)}:{ok:!1,error:`这个牌型不合法`,state:y(r)}}function pe(e,t){let n=b(e),r=I(n),i=q(t);return!r||r.address!==i?{ok:!1,error:`还没轮到你`,state:y(n)}:n.table?(n.passSeats.includes(r.seat)||n.passSeats.push(r.seat),n.log.unshift(`${r.name} 不要`),L(n).map(e=>e.seat).filter(e=>e!==n.lastWinnerSeat).every(e=>n.passSeats.includes(e))?(j(n),n.currentSeat=n.lastWinnerSeat,n.table=null,n.passSeats=[],n.log.unshift(`本轮结束,所有玩家各补 1 张,重新领出`)):z(n),n.seq+=1,{ok:!0,state:y(n)}):{ok:!1,error:`领出时不能不要`,state:y(n)}}function me(e,t){let n=b(e);if(!n)return null;let r=q(t),i=n.players.findIndex(e=>e.address===r);if(i===-1)return y(n);let a=n.players[i],o=n.currentSeat===a.seat,s=n.lastWinnerSeat===a.seat;n.players.splice(i,1),n.passSeats=n.passSeats.filter(e=>e!==a.seat),n.log.unshift(`${a.name} 已退出房间`);let c=R(n);if(n.status===`playing`)if(c.length<=1)c.length===1?A(n,c[0]):(n.status=`finished`,n.log.unshift(`玩家不足,本局结束`));else{if(o){let e=L(n);if(e.length>0){let t=e.findIndex(e=>e.seat>a.seat);n.currentSeat=e[t>=0?t:0].seat}}s&&n.table&&(n.table=null,n.passSeats=[])}return n.seq+=1,y(n)}function y(e){return e?{id:e.id,ownerAddress:e.ownerAddress,status:e.status,seq:Number(e.seq||1),deck:Array.isArray(e.deck)?e.deck.map(G):[],deckCount:e.deck?.length||Number(e.deckCount||0),discard:Array.isArray(e.discard)?e.discard.map(G):[],discardCount:e.discard?.length||Number(e.discardCount||0),currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,table:e.table?{...e.table,cards:e.table.cards.map(G)}:null,passSeats:Array.isArray(e.passSeats)?e.passSeats:[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat),log:Array.isArray(e.log)?e.log.slice(0,18):[],players:R(e).map(e=>({address:e.address,name:e.name,avatar:Y(e.avatar),seat:e.seat,handCount:e.hand?.length??e.handCount??0,score:Number(e.score??v),playedCards:Number(e.playedCards||0),hand:Array.isArray(e.hand)?e.hand.map(G):[]}))}:null}function b(e){return!e||typeof e!=`object`?null:{id:String(e.id||``).toUpperCase(),ownerAddress:q(e.ownerAddress),status:e.status===`playing`||e.status===`finished`?e.status:`lobby`,seq:Number(e.seq||1),players:Array.isArray(e.players)?e.players.map(D).filter(Boolean):[],deck:Array.isArray(e.deck)?e.deck.map(_e).filter(Boolean):[],discard:Array.isArray(e.discard)?e.discard.map(O).filter(Boolean):[],table:e.table&&typeof e.table==`object`?{...e.table,cards:Array.isArray(e.table.cards)?e.table.cards.map(O).filter(Boolean):[]}:null,currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),passSeats:Array.isArray(e.passSeats)?e.passSeats.map(Number):[],baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,log:Array.isArray(e.log)?e.log.map(String):[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat)}}function he(e){if(!e?.length)return null;e=[...e].sort(H);let t=e.filter(W).length,n=e.filter(e=>!W(e));if(n.length===0)return null;let r=x(e,n,t);if(r)return r;if(e.length===1&&t===0)return w(`single`,U(e[0]),1,[U(e[0])]);if(e.length===2&&B(n,t)){let e=V(n);return w(`pair`,e,2,[e,e])}return S(e)||C(e)}function x(e,t,n){if(e.length<3||!B(t,n))return null;let r=V(t);return w(`bomb`,r,e.length,Array(e.length).fill(r),n===0)}function S(e){if(e.length<3)return null;let t=e.filter(W).length,n=e.filter(e=>!W(e));for(let r=0;r<=h.length-e.length;r+=1){let i=h.slice(r,r+e.length).map(e=>g.get(e)),a=[...i],o=0;for(let e of n){let t=a.indexOf(U(e));t!==-1&&(a.splice(t,1),o+=1)}if(o+t===e.length&&a.length===t)return w(`straight`,i.at(-1),e.length,i)}return null}function C(e){if(e.length<4||e.length%2!=0)return null;let t=e.length/2,n=e.filter(W).length,r=e.filter(e=>!W(e));for(let i=0;i<=h.length-t;i+=1){let a=h.slice(i,i+t).map(e=>g.get(e)),o=a.flatMap(e=>[e,e]),s=0;for(let e of r){let t=o.indexOf(U(e));t!==-1&&(o.splice(t,1),s+=1)}if(s+n===e.length&&o.length===n){let t=a.flatMap(e=>[e,e]);return w(`pairStraight`,a.at(-1),e.length,t)}}return null}function w(e,t,n,r,i=!0){return{type:e,value:t,length:n,resolvedValues:r,pure:i,label:be({type:e,value:t,length:n,resolvedValues:r,pure:i})}}function T(e,t){return e?!t||e.type===`bomb`&&t.type!==`bomb`?!0:e.type===t.type?e.type===`bomb`?e.length===t.length?e.value===t.value?e.pure&&!t.pure:e.value>t.value:e.length>t.length:e.length===t.length?e.type===`single`||e.type===`pair`?e.value===Se(t.value)||e.value===g.get(`2`)&&t.value!==g.get(`2`):e.value===Se(t.value):!1:!1:!1}function E(e){let t=new Set;return e.map(e=>({address:q(e.address),name:J(e.name),avatar:Y(e.avatar),publicKey:String(e.publicKey||``)})).filter(e=>!e.address||t.has(e.address)?!1:(t.add(e.address),!0))}function D(e){let t=q(e.address);return t?{address:t,name:J(e.name),avatar:Y(e.avatar),seat:Number(e.seat||0),hand:Array.isArray(e.hand)?e.hand.map(O).filter(Boolean):[],handCount:Number(e.handCount||0),score:Number(e.score??v),playedCards:Number(e.playedCards||0)}:null}function O(e){if(!e||typeof e!=`object`)return null;let t=String(e.rank||``),n=String(e.suit||``);return!g.has(t)&&t!==`SJ`&&t!==`BJ`||!p.includes(n)&&n!==`Joker`?null:{id:String(e.id||`${n}-${t}`),suit:n,rank:t,label:e.label||K({suit:n,rank:t}),color:e.color||ye({suit:n,rank:t})}}function k(e,t){if(e.previousWinnerSeat!==null)return e.diceRolls=[],R(e).find(t=>t.seat===e.previousWinnerSeat)||R(e)[0];let n=R(e),r=[];for(;n.length>1;){r=n.map(e=>({seat:e.seat,name:e.name,value:Ce(t)}));let i=Math.max(...r.map(e=>e.value)),a=r.filter(e=>e.value===i);if(a.length===1)return e.diceRolls=r,n.find(e=>e.seat===a[0].seat);n=n.filter(e=>a.some(t=>t.seat===e.seat))}return e.diceRolls=r,n[0]}function A(e,t){e.status=`finished`,e.winnerSeat=t.seat,e.previousWinnerSeat=t.seat;let n=[],r=0;for(let i of R(e)){if(i.seat===t.seat)continue;let a=i.playedCards===0,o=a?_:i.hand.length*e.baseScore*.5;i.score-=o,r+=o,n.push({seat:i.seat,name:i.name,loss:o,sealed:a,cardsLeft:i.hand.length})}t.score+=r,e.roundResult={winnerSeat:t.seat,winnerName:t.name,winnerGain:r,baseScore:e.baseScore,bombCount:e.bombCount,losers:n},e.log.unshift(`${t.name} 获胜,赢 ${r} 分`)}function j(e){for(let t of L(e)){if(e.deck.length===0)break;t.hand.push(...P(e,1)),t.handCount=t.hand.length,F(t.hand)}}function M(){let e=[];for(let t of p)for(let n of m)e.push({id:`${t}-${n}`,suit:t,rank:n});return e.push({id:`SJ`,suit:`Joker`,rank:`SJ`}),e.push({id:`BJ`,suit:`Joker`,rank:`BJ`}),e.map(G)}function N(e,t){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function P(e,t){return e.deck.splice(0,t)}function F(e){e.sort(H)}function I(e){return e.players.find(t=>t.seat===e.currentSeat)}function L(e){return R(e).filter(e=>e.hand.length>0)}function R(e){return[...e?.players||[]].sort((e,t)=>e.seat-t.seat)}function z(e){let t=L(e).map(e=>e.seat);e.currentSeat=t[(t.indexOf(e.currentSeat)+1)%t.length]}function B(e,t=0){if(e.length===0)return!1;let n=e[0].rank;return e.every(e=>e.rank===n)&&e.length+t>=2}function V(e){return U(e[0])}function H(e,t){return U(e)-U(t)||ge(e.suit)-ge(t.suit)}function U(e){return g.get(e.rank)||99}function W(e){return e.rank===`SJ`||e.rank===`BJ`}function ge(e){return{D:0,C:1,H:2,S:3,Joker:4}[e]||0}function _e(e){if(typeof e==`string`){let[t,n]=e.split(`-`);return O({id:e,suit:t,rank:n})}return O(e)}function G(e){return{id:e.id,suit:e.suit,rank:e.rank,label:K(e),color:ye(e)}}function K(e){return e.rank===`SJ`?`小王`:e.rank===`BJ`?`大王`:`${ve(e.suit)}${e.rank}`}function ve(e){return{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[e]||``}function ye(e){return e.suit===`H`||e.suit===`D`||e.rank===`BJ`?`red`:`black`}function be(e){let t=e.resolvedValues?.length?`(${e.resolvedValues.map(xe).join(` `)})`:``;return`${{single:`单张`,pair:`对子`,straight:`顺子`,pairStraight:`连对`,bomb:e.pure?`纯炸弹`:`带王炸弹`}[e.type]}${t}`}function xe(e){return m.find(t=>g.get(t)===e)||String(e)}function Se(e){let t=m.findIndex(t=>g.get(t)===e);return t===-1||t>=m.length-1?null:g.get(m[t+1])}function Ce(e){return Math.floor(e()*6)+1}function q(e){let t=String(e||``).trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():``}function J(e){return String(e||`玩家`).trim().slice(0,16)||`玩家`}function Y(e){return String(e||``).trim().slice(0,4096)}var X={page:`_page_p7qf6_1`,headerActions:`_headerActions_p7qf6_7`,entry:`_entry_p7qf6_13`,entryBrand:`_entryBrand_p7qf6_23`,cardMark:`_cardMark_p7qf6_29`,entryPanel:`_entryPanel_p7qf6_59`,panel:`_panel_p7qf6_60`,handPanel:`_handPanel_p7qf6_61`,accountLine:`_accountLine_p7qf6_74`,scoreMeta:`_scoreMeta_p7qf6_75`,roomBar:`_roomBar_p7qf6_76`,badges:`_badges_p7qf6_77`,actions:`_actions_p7qf6_78`,joinForm:`_joinForm_p7qf6_98`,status:`_status_p7qf6_119`,gameGrid:`_gameGrid_p7qf6_125`,tablePanel:`_tablePanel_p7qf6_136`,seats:`_seats_p7qf6_170`,player:`_player_p7qf6_176`,active:`_active_p7qf6_193`,winner:`_winner_p7qf6_197`,avatar:`_avatar_p7qf6_201`,centerTable:`_centerTable_p7qf6_235`,deckBox:`_deckBox_p7qf6_242`,playedBox:`_playedBox_p7qf6_243`,playedCards:`_playedCards_p7qf6_271`,notice:`_notice_p7qf6_279`,resultDetail:`_resultDetail_p7qf6_287`,sidePanel:`_sidePanel_p7qf6_298`,scoreRow:`_scoreRow_p7qf6_323`,logPanel:`_logPanel_p7qf6_331`,hand:`_hand_p7qf6_61`,cardButton:`_cardButton_p7qf6_358`,picked:`_picked_p7qf6_368`,card:`_card_p7qf6_29`,red:`_red_p7qf6_399`,black:`_black_p7qf6_403`,small:`_small_p7qf6_407`,preview:`_preview_p7qf6_425`,valid:`_valid_p7qf6_448`},Z=n(),Q=`gandengyan`;function $(...e){return e.filter(Boolean).join(` `)}function we(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function Te(e,t){if(typeof window>`u`||!(`speechSynthesis`in window)||!e)return;window.speechSynthesis.cancel();let n=new SpeechSynthesisUtterance(e);n.lang=t,n.rate=1.1,window.speechSynthesis.speak(n)}function Ee(){let{t:e,locale:t}=oe(),n=d(e=>e.isDarkMode),r=d(e=>e.setIsDarkMode),a=d(e=>e.addToast),u=i(e=>e.initializeUser),[p,m]=(0,f.useState)(``),[h,g]=(0,f.useState)([]),[ce,_]=(0,f.useState)(!1),v=(0,f.useRef)(``),y=(0,f.useRef)(!1),b=ae({gameId:Q,onError:e=>a(e,`error`)});(0,f.useEffect)(()=>{u()},[u]),(0,f.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(m(e),v.current=e)},[]),(0,f.useEffect)(()=>{let t=v.current;!t||y.current||!b.isBackendReady||!b.userIdentity||(y.current=!0,v.current=``,b.joinRoom(t).then(t=>{t&&a(e(`game.toast.joinedRoom`),`success`)}))},[b.isBackendReady,b.userIdentity,b.joinRoom,a,e]),(0,f.useEffect)(()=>{if(!b.roomCode)return;let e=`/game/gandengyan?room=${b.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[b.roomCode]);let x=(0,f.useMemo)(()=>re(b.messages,b.roomCode?{gameId:Q,roomCode:b.roomCode}:{gameId:Q}),[b.messages,b.roomCode]),S=(0,f.useMemo)(()=>ie(b.messages,{gameId:Q,roomCode:b.roomCode}),[b.messages,b.roomCode]),C=S?.payload?.state,w=C?.players.find(e=>we(e.address,b.userIdentity?.address)),T=we(C?.ownerAddress||x.hostAddress,b.userIdentity?.address),E=C?.status===`playing`&&C.currentSeat===w?.seat,D=(0,f.useMemo)(()=>h.map(e=>w?.hand.find(t=>t.id===e)).filter(Boolean),[h,w]),O=(0,f.useMemo)(()=>he(D),[D]),k=b.roomCode&&typeof window<`u`?`${window.location.origin}/game/gandengyan?room=${b.roomCode}`:``,A=(0,f.useRef)(-1),j=(0,f.useRef)(!1);(0,f.useEffect)(()=>{g([])},[C?.seq]),(0,f.useEffect)(()=>{if(!C)return;let n=C.seq;if(A.current<0){A.current=n;return}if(n!==A.current&&(A.current=n,C.status!==`finished`&&(j.current=!1),C.status===`finished`&&C.winnerSeat!==null)){j.current||(j.current=!0,Te(e(`game.gandengyan.speech.gameOver`),t));return}},[t,C?.seq,e]),(0,f.useEffect)(()=>{if(!T||!b.roomCode||!b.userIdentity||S||x.players.length===0)return;let e=le({roomCode:b.roomCode,ownerAddress:b.userIdentity.address,ownerName:b.userIdentity.displayName||b.userIdentity.username,players:x.players});b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[b,T,S,x.players]),(0,f.useEffect)(()=>{if(!C||!T||C.status!==`lobby`)return;let e=ue(C,x.players);e&&e.players.length!==C.players.length&&b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[b,T,x.players,C]);let M=(0,f.useRef)(0),N=(0,f.useMemo)(()=>b.roomEvents.filter(e=>e.event?.event===`player:leave`),[b.roomEvents]);(0,f.useEffect)(()=>{if(N.length<=M.current)return;let t=N.slice(M.current);M.current=N.length;for(let n of t)a(e(`game.toast.playerLeft`,{player:n.event?.payload?.player?.name||e(`game.player`)}),`info`)},[N,a,e]),(0,f.useEffect)(()=>{if(!C||!T||C.status!==`playing`)return;let e=new Set(x.players.map(e=>e.address.toLowerCase())),t=C.players.find(t=>!e.has(t.address.toLowerCase()));if(!t)return;let n=me(C,t.address);n&&L(n)},[b,T,x.players,C]);async function P(){await b.createRoom()&&a(e(`game.toast.roomCreated`),`success`)}async function F(t){t.preventDefault(),await b.joinRoom(p)&&a(e(`game.toast.joinedRoom`),`success`)}async function I(){k&&(await navigator.clipboard.writeText(k),_(!0),setTimeout(()=>_(!1),1400))}async function L(e){await b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})}async function R(){if(!(!C||!T))try{await L(de(C))}catch(t){a(t instanceof Error?t.message:e(`game.zhajinhua.error.startFailed`),`error`)}}async function z(){await R()}async function B(){if(!C||!b.userIdentity)return;let t=fe(C,b.userIdentity.address,h);if(!t.ok){a(t.error||e(`game.gandengyan.error.playFailed`),`error`);return}await L(t.state)}async function V(){if(!C||!b.userIdentity)return;let t=pe(C,b.userIdentity.address);if(!t.ok){a(t.error||e(`game.gandengyan.error.actionFailed`),`error`);return}await L(t.state)}function H(e){g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return(0,Z.jsx)(ee,{sidebar:({closeSidebar:e})=>(0,Z.jsx)(ne,{activeGame:`gandengyan`,closeSidebar:e}),headerTitle:(0,Z.jsx)(`h2`,{className:`header-title`,children:e(`game.gandengyan.title`)}),headerRight:(0,Z.jsxs)(`div`,{className:X.headerActions,children:[C&&(0,Z.jsxs)(`button`,{className:`btn btn-sm`,onClick:I,children:[(0,Z.jsx)(c,{size:14}),e(ce?`common.copied`:`game.action.shareRoom`)]}),(0,Z.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>r(!n),title:e(`common.theme.toggle`),children:n?(0,Z.jsx)(s,{size:16}):(0,Z.jsx)(o,{size:16})})]}),children:(0,Z.jsx)(`main`,{className:X.page,children:C?(0,Z.jsxs)(`section`,{className:X.gameGrid,children:[(0,Z.jsxs)(`div`,{className:X.tablePanel,children:[(0,Z.jsxs)(`div`,{className:X.roomBar,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{translate:`no`,children:e(`game.roomLabel`,{room:C.id})}),(0,Z.jsx)(`span`,{children:C.status===`lobby`?e(`game.status.waitingStart`):C.status===`finished`?e(`game.status.finished`):e(`game.status.playing`)})]}),(0,Z.jsx)(`div`,{className:X.badges,children:(0,Z.jsx)(`span`,{children:b.connected?e(`game.status.online`):e(`game.status.offline`)})})]}),(0,Z.jsx)(`div`,{className:X.seats,children:C.players.map(t=>(0,Z.jsx)(De,{player:t,active:C.currentSeat===t.seat,winner:C.winnerSeat===t.seat,relation:ke(w,t,C.players.length,e)},t.seat))}),(0,Z.jsxs)(`div`,{className:X.centerTable,children:[(0,Z.jsxs)(`div`,{className:X.deckBox,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.deck`)}),(0,Z.jsx)(`strong`,{children:C.deckCount})]}),(0,Z.jsx)(`div`,{className:X.playedBox,children:C.table?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`strong`,{children:e(`game.gandengyan.tablePlay`,{player:C.table.playerName,combo:C.table.combo?.label||e(`game.card`)})}),(0,Z.jsx)(`div`,{className:X.playedCards,children:C.table.cards.map(e=>(0,Z.jsx)(Oe,{card:e,small:!0},e.id))})]}):(0,Z.jsx)(`span`,{children:e(`game.gandengyan.waitingLead`)})}),(0,Z.jsxs)(`div`,{className:X.deckBox,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.baseScore`)}),(0,Z.jsx)(`strong`,{children:C.baseScore})]})]}),(0,Z.jsx)(`div`,{className:X.notice,children:C.status===`finished`?C.roundResult?(0,Z.jsxs)(`div`,{className:X.resultDetail,children:[(0,Z.jsxs)(`p`,{children:[e(`game.gandengyan.result.winnerGain`,{player:C.roundResult.winnerName,score:C.roundResult.winnerGain}),C.roundResult.bombCount>0&&e(`game.gandengyan.result.bombCount`,{count:C.roundResult.bombCount})]}),C.roundResult.losers.map(t=>(0,Z.jsx)(`p`,{children:t.sealed?e(`game.gandengyan.result.sealedLoss`,{player:t.name,loss:20}):e(`game.gandengyan.result.cardsLeftLoss`,{player:t.name,cards:t.cardsLeft,loss:t.loss})},t.seat))]}):e(`game.gandengyan.result.winner`,{player:C.players.find(e=>e.seat===C.winnerSeat)?.name||e(`game.player`)}):E?e(`game.gandengyan.status.yourTurn`):e(`game.zhajinhua.status.waitingPlayer`,{player:C.players.find(e=>e.seat===C.currentSeat)?.name||e(`game.player`)})})]}),(0,Z.jsxs)(`aside`,{className:X.sidePanel,children:[(0,Z.jsxs)(`section`,{className:X.panel,children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.roundPanel`)}),T&&C.status===`lobby`&&(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:C.players.length<2,onClick:R,children:[(0,Z.jsx)(l,{size:16}),e(`game.action.startRound`)]}),T&&C.status===`finished`&&(0,Z.jsxs)(`button`,{className:`btn btn-primary`,onClick:z,children:[(0,Z.jsx)(se,{size:16}),e(`game.action.nextRound`)]}),!T&&(0,Z.jsx)(`p`,{className:X.status,children:e(`game.waitingHost`)})]}),(0,Z.jsxs)(`section`,{className:X.panel,children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.score`)}),(0,Z.jsxs)(`div`,{className:X.scoreMeta,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.bombCount`,{count:C.bombCount})}),(0,Z.jsx)(`span`,{children:e(`game.gandengyan.discardCount`,{count:C.discardCount})})]}),C.players.map(e=>(0,Z.jsxs)(`div`,{className:X.scoreRow,children:[(0,Z.jsx)(`span`,{translate:`no`,children:e.name}),(0,Z.jsx)(`strong`,{children:e.score})]},e.seat))]}),(0,Z.jsxs)(`section`,{className:$(X.panel,X.logPanel),children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.log`)}),C.log.map((e,t)=>(0,Z.jsx)(`p`,{translate:`no`,children:e},`${e}-${t}`))]})]}),(0,Z.jsxs)(`div`,{className:X.handPanel,children:[(0,Z.jsx)(De,{player:w,active:E,winner:C.winnerSeat===w?.seat}),(0,Z.jsx)(`div`,{className:X.hand,children:w?.hand.map(e=>(0,Z.jsx)(`button`,{className:$(X.cardButton,h.includes(e.id)&&X.picked),onClick:()=>H(e.id),children:(0,Z.jsx)(Oe,{card:e})},e.id))}),(0,Z.jsxs)(`div`,{className:X.actions,children:[(0,Z.jsxs)(`div`,{className:$(X.preview,O&&X.valid),children:[(0,Z.jsx)(`strong`,{children:O?O.label:h.length?e(`game.gandengyan.invalidCombo`):e(`game.gandengyan.selectCards`)}),(0,Z.jsx)(`span`,{children:D.map(e=>e.label).join(` `)||e(`game.gandengyan.jokerOrderHint`)})]}),(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:!E||h.length===0||!O,onClick:B,children:[(0,Z.jsx)(te,{size:16}),e(`game.gandengyan.action.play`)]}),(0,Z.jsx)(`button`,{className:`btn`,disabled:!E||!C.table,onClick:V,children:e(`game.gandengyan.action.pass`)})]})]})]}):(0,Z.jsxs)(`section`,{className:X.entry,children:[(0,Z.jsxs)(`div`,{className:X.entryBrand,children:[(0,Z.jsx)(`div`,{className:X.cardMark,children:e(`game.gandengyan.mark`)}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{children:e(`game.gandengyan.hero.title`)}),(0,Z.jsx)(`p`,{children:e(`game.hero.desc`)})]})]}),(0,Z.jsxs)(`div`,{className:X.entryPanel,children:[(0,Z.jsxs)(`div`,{className:X.accountLine,children:[(0,Z.jsx)(`span`,{children:e(`game.currentAccount`)}),(0,Z.jsx)(`strong`,{translate:`no`,children:b.userIdentity?.displayName||e(`web3.notSignedIn`)})]}),(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:b.joining,onClick:P,children:[(0,Z.jsx)(l,{size:16}),e(`game.action.createRoom`)]}),(0,Z.jsxs)(`form`,{onSubmit:F,className:X.joinForm,children:[(0,Z.jsxs)(`label`,{children:[e(`game.roomCode`),(0,Z.jsx)(`input`,{value:p,maxLength:8,onChange:e=>m(e.target.value.toUpperCase()),placeholder:e(`game.roomCode.placeholder`)})]}),(0,Z.jsx)(`button`,{className:`btn`,disabled:b.joining||!p,children:e(`game.action.joinRoom`)})]}),(0,Z.jsx)(`p`,{className:X.status,children:b.isBackendReady?e(`game.status.nodeConnected`):e(`game.status.nodeConnecting`)})]})]})})})}function De({player:e,active:t,winner:n,relation:r=``}){let{t:i}=oe();return e?(0,Z.jsxs)(`div`,{className:$(X.player,t&&X.active,n&&X.winner),children:[(0,Z.jsx)(`div`,{className:X.avatar,translate:`no`,children:(0,Z.jsx)(`img`,{src:u(e.address,e.avatar),alt:``})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{translate:`no`,children:e.name}),(0,Z.jsxs)(`span`,{children:[r,r?` · `:``,i(`game.gandengyan.handCount`,{count:e.handCount})]})]})]}):null}function Oe({card:e,small:t=!1}){return(0,Z.jsxs)(`div`,{className:$(X.card,X[e.color],t&&X.small),children:[(0,Z.jsx)(`span`,{children:e.label}),(0,Z.jsx)(`i`,{children:e.suit===`Joker`?`*`:e.label.slice(0,1)})]})}function ke(e,t,n,r){if(!e)return r(`game.gandengyan.position.seat`,{seat:t.seat+1});let i=(t.seat-e.seat+n)%n;return i===0?r(`game.gandengyan.position.me`):n===2?r(`game.gandengyan.position.opponent`):n===3?r(i===1?`game.gandengyan.position.nextOpponent`:`game.gandengyan.position.prevOpponent`):n===4?r(i===1?`game.gandengyan.position.nextOpponent`:i===2?`game.gandengyan.position.partner`:`game.gandengyan.position.prevOpponent`):i%2==0?r(`game.gandengyan.position.seatPartner`,{seat:t.seat+1}):r(`game.gandengyan.position.seatOpponent`,{seat:t.seat+1})}var Ae=a(`/game/gandengyan/`)({component:Ee});export{Ae as Route};
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{g as r,t as i,v as a}from"./userStore-q0BBZsIV.js";import{i as o,r as s}from"./LanguageToggle-HAJ3D6Ne.js";import{t as c}from"./copy-5aEv78Eq.js";import{t as ee}from"./AppShell-oF8wPXde.js";import{t as l}from"./play-D5r9Yvbq.js";import{t as te}from"./send-D8p6f8OD.js";import{i as ne,n as re,r as ie,t as ae}from"./useGameRoom-CURx56m6.js";import{R as oe,i as u,m as d}from"./index--p9MKNEl.js";var se=r(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),f=t(e(),1),p=[`S`,`H`,`C`,`D`],m=[`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`J`,`Q`,`K`,`A`,`2`],h=m.filter(e=>e!==`2`),g=new Map(m.map((e,t)=>[e,t+3])),ce=5,_=20,v=1e3;function le({roomCode:e,ownerAddress:t,ownerName:n,players:r=[],random:i=Math.random}){let a=E(r);return a.some(e=>e.address===q(t))||a.unshift({address:q(t),name:J(n),avatar:``}),y({id:String(e||``).toUpperCase(),ownerAddress:q(t),status:`lobby`,seq:1,players:a.slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),avatar:Y(e.avatar),seat:t,hand:[],handCount:0,score:v,playedCards:0})),deck:[],discard:[],table:null,currentSeat:0,lastWinnerSeat:null,previousWinnerSeat:null,passSeats:[],baseScore:1,bombCount:0,diceRolls:[],roundResult:null,log:[`房间已创建`],winnerSeat:null,random:i})}function ue(e,t=[]){let n=b(e);if(!n||n.status!==`lobby`)return n;let r=new Map(n.players.map(e=>[e.address,e.score]));return n.players=E(t).slice(0,6).map((e,t)=>({address:e.address,name:J(e.name),avatar:Y(e.avatar),seat:t,hand:[],handCount:0,score:r.get(e.address)??v,playedCards:0})),n.seq+=1,y(n)}function de(e,t=Math.random){let n=b(e);if(!n||n.players.length<2)throw Error(`至少需要 2 名玩家`);n.deck=N(M(),t),n.discard=[],n.table=null,n.passSeats=[],n.winnerSeat=null,n.roundResult=null,n.baseScore=1,n.bombCount=0,n.status=`playing`;for(let e of R(n))e.hand=P(n,ce),e.handCount=e.hand.length,e.playedCards=0,F(e.hand);let r=k(n,t);return n.currentSeat=r.seat,n.lastWinnerSeat=null,n.log=[`新一局开始,${r.name} 先出牌`],n.diceRolls.length>0&&n.log.unshift(`骰子结果:${n.diceRolls.map(e=>`${e.name} ${e.value}`).join(`,`)}`),n.seq+=1,y(n)}function fe(e,t,n){let r=b(e),i=I(r),a=q(t);if(!i||i.address!==a)return{ok:!1,error:`还没轮到你`,state:y(r)};let o=n.map(e=>i.hand.find(t=>t.id===e));if(o.length===0||o.some(e=>!e))return{ok:!1,error:`手牌不存在`,state:y(r)};let s=he(o);return s?T(s,r.table?.combo)?(o.sort(H),i.hand=i.hand.filter(e=>!n.includes(e.id)),i.handCount=i.hand.length,i.playedCards+=o.length,r.discard.push(...o),r.table={seat:i.seat,playerName:i.name,cards:o,combo:s},r.passSeats=[],r.lastWinnerSeat=i.seat,s.type===`bomb`&&(r.bombCount+=1,r.baseScore*=2),r.log.unshift(`${i.name} 出 ${s.label} ${o.map(K).join(` `)}${s.type===`bomb`?`,底分 ${r.baseScore}`:``}`),i.hand.length===0?A(r,i):z(r),r.seq+=1,{ok:!0,state:y(r)}):{ok:!1,error:`出的牌压不过上一手`,state:y(r)}:{ok:!1,error:`这个牌型不合法`,state:y(r)}}function pe(e,t){let n=b(e),r=I(n),i=q(t);return!r||r.address!==i?{ok:!1,error:`还没轮到你`,state:y(n)}:n.table?(n.passSeats.includes(r.seat)||n.passSeats.push(r.seat),n.log.unshift(`${r.name} 不要`),L(n).map(e=>e.seat).filter(e=>e!==n.lastWinnerSeat).every(e=>n.passSeats.includes(e))?(j(n),n.currentSeat=n.lastWinnerSeat,n.table=null,n.passSeats=[],n.log.unshift(`本轮结束,所有玩家各补 1 张,重新领出`)):z(n),n.seq+=1,{ok:!0,state:y(n)}):{ok:!1,error:`领出时不能不要`,state:y(n)}}function me(e,t){let n=b(e);if(!n)return null;let r=q(t),i=n.players.findIndex(e=>e.address===r);if(i===-1)return y(n);let a=n.players[i],o=n.currentSeat===a.seat,s=n.lastWinnerSeat===a.seat;n.players.splice(i,1),n.passSeats=n.passSeats.filter(e=>e!==a.seat),n.log.unshift(`${a.name} 已退出房间`);let c=R(n);if(n.status===`playing`)if(c.length<=1)c.length===1?A(n,c[0]):(n.status=`finished`,n.log.unshift(`玩家不足,本局结束`));else{if(o){let e=L(n);if(e.length>0){let t=e.findIndex(e=>e.seat>a.seat);n.currentSeat=e[t>=0?t:0].seat}}s&&n.table&&(n.table=null,n.passSeats=[])}return n.seq+=1,y(n)}function y(e){return e?{id:e.id,ownerAddress:e.ownerAddress,status:e.status,seq:Number(e.seq||1),deck:Array.isArray(e.deck)?e.deck.map(G):[],deckCount:e.deck?.length||Number(e.deckCount||0),discard:Array.isArray(e.discard)?e.discard.map(G):[],discardCount:e.discard?.length||Number(e.discardCount||0),currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,table:e.table?{...e.table,cards:e.table.cards.map(G)}:null,passSeats:Array.isArray(e.passSeats)?e.passSeats:[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat),log:Array.isArray(e.log)?e.log.slice(0,18):[],players:R(e).map(e=>({address:e.address,name:e.name,avatar:Y(e.avatar),seat:e.seat,handCount:e.hand?.length??e.handCount??0,score:Number(e.score??v),playedCards:Number(e.playedCards||0),hand:Array.isArray(e.hand)?e.hand.map(G):[]}))}:null}function b(e){return!e||typeof e!=`object`?null:{id:String(e.id||``).toUpperCase(),ownerAddress:q(e.ownerAddress),status:e.status===`playing`||e.status===`finished`?e.status:`lobby`,seq:Number(e.seq||1),players:Array.isArray(e.players)?e.players.map(D).filter(Boolean):[],deck:Array.isArray(e.deck)?e.deck.map(_e).filter(Boolean):[],discard:Array.isArray(e.discard)?e.discard.map(O).filter(Boolean):[],table:e.table&&typeof e.table==`object`?{...e.table,cards:Array.isArray(e.table.cards)?e.table.cards.map(O).filter(Boolean):[]}:null,currentSeat:Number(e.currentSeat||0),lastWinnerSeat:e.lastWinnerSeat===null||e.lastWinnerSeat===void 0?null:Number(e.lastWinnerSeat),previousWinnerSeat:e.previousWinnerSeat===null||e.previousWinnerSeat===void 0?null:Number(e.previousWinnerSeat),passSeats:Array.isArray(e.passSeats)?e.passSeats.map(Number):[],baseScore:Number(e.baseScore||1),bombCount:Number(e.bombCount||0),diceRolls:Array.isArray(e.diceRolls)?e.diceRolls:[],roundResult:e.roundResult||null,log:Array.isArray(e.log)?e.log.map(String):[],winnerSeat:e.winnerSeat===null||e.winnerSeat===void 0?null:Number(e.winnerSeat)}}function he(e){if(!e?.length)return null;e=[...e].sort(H);let t=e.filter(W).length,n=e.filter(e=>!W(e));if(n.length===0)return null;let r=x(e,n,t);if(r)return r;if(e.length===1&&t===0)return w(`single`,U(e[0]),1,[U(e[0])]);if(e.length===2&&B(n,t)){let e=V(n);return w(`pair`,e,2,[e,e])}return S(e)||C(e)}function x(e,t,n){if(e.length<3||!B(t,n))return null;let r=V(t);return w(`bomb`,r,e.length,Array(e.length).fill(r),n===0)}function S(e){if(e.length<3)return null;let t=e.filter(W).length,n=e.filter(e=>!W(e));for(let r=0;r<=h.length-e.length;r+=1){let i=h.slice(r,r+e.length).map(e=>g.get(e)),a=[...i],o=0;for(let e of n){let t=a.indexOf(U(e));t!==-1&&(a.splice(t,1),o+=1)}if(o+t===e.length&&a.length===t)return w(`straight`,i.at(-1),e.length,i)}return null}function C(e){if(e.length<4||e.length%2!=0)return null;let t=e.length/2,n=e.filter(W).length,r=e.filter(e=>!W(e));for(let i=0;i<=h.length-t;i+=1){let a=h.slice(i,i+t).map(e=>g.get(e)),o=a.flatMap(e=>[e,e]),s=0;for(let e of r){let t=o.indexOf(U(e));t!==-1&&(o.splice(t,1),s+=1)}if(s+n===e.length&&o.length===n){let t=a.flatMap(e=>[e,e]);return w(`pairStraight`,a.at(-1),e.length,t)}}return null}function w(e,t,n,r,i=!0){return{type:e,value:t,length:n,resolvedValues:r,pure:i,label:be({type:e,value:t,length:n,resolvedValues:r,pure:i})}}function T(e,t){return e?!t||e.type===`bomb`&&t.type!==`bomb`?!0:e.type===t.type?e.type===`bomb`?e.length===t.length?e.value===t.value?e.pure&&!t.pure:e.value>t.value:e.length>t.length:e.length===t.length?e.type===`single`||e.type===`pair`?e.value===Se(t.value)||e.value===g.get(`2`)&&t.value!==g.get(`2`):e.value===Se(t.value):!1:!1:!1}function E(e){let t=new Set;return e.map(e=>({address:q(e.address),name:J(e.name),avatar:Y(e.avatar),publicKey:String(e.publicKey||``)})).filter(e=>!e.address||t.has(e.address)?!1:(t.add(e.address),!0))}function D(e){let t=q(e.address);return t?{address:t,name:J(e.name),avatar:Y(e.avatar),seat:Number(e.seat||0),hand:Array.isArray(e.hand)?e.hand.map(O).filter(Boolean):[],handCount:Number(e.handCount||0),score:Number(e.score??v),playedCards:Number(e.playedCards||0)}:null}function O(e){if(!e||typeof e!=`object`)return null;let t=String(e.rank||``),n=String(e.suit||``);return!g.has(t)&&t!==`SJ`&&t!==`BJ`||!p.includes(n)&&n!==`Joker`?null:{id:String(e.id||`${n}-${t}`),suit:n,rank:t,label:e.label||K({suit:n,rank:t}),color:e.color||ye({suit:n,rank:t})}}function k(e,t){if(e.previousWinnerSeat!==null)return e.diceRolls=[],R(e).find(t=>t.seat===e.previousWinnerSeat)||R(e)[0];let n=R(e),r=[];for(;n.length>1;){r=n.map(e=>({seat:e.seat,name:e.name,value:Ce(t)}));let i=Math.max(...r.map(e=>e.value)),a=r.filter(e=>e.value===i);if(a.length===1)return e.diceRolls=r,n.find(e=>e.seat===a[0].seat);n=n.filter(e=>a.some(t=>t.seat===e.seat))}return e.diceRolls=r,n[0]}function A(e,t){e.status=`finished`,e.winnerSeat=t.seat,e.previousWinnerSeat=t.seat;let n=[],r=0;for(let i of R(e)){if(i.seat===t.seat)continue;let a=i.playedCards===0,o=a?_:i.hand.length*e.baseScore*.5;i.score-=o,r+=o,n.push({seat:i.seat,name:i.name,loss:o,sealed:a,cardsLeft:i.hand.length})}t.score+=r,e.roundResult={winnerSeat:t.seat,winnerName:t.name,winnerGain:r,baseScore:e.baseScore,bombCount:e.bombCount,losers:n},e.log.unshift(`${t.name} 获胜,赢 ${r} 分`)}function j(e){for(let t of L(e)){if(e.deck.length===0)break;t.hand.push(...P(e,1)),t.handCount=t.hand.length,F(t.hand)}}function M(){let e=[];for(let t of p)for(let n of m)e.push({id:`${t}-${n}`,suit:t,rank:n});return e.push({id:`SJ`,suit:`Joker`,rank:`SJ`}),e.push({id:`BJ`,suit:`Joker`,rank:`BJ`}),e.map(G)}function N(e,t){let n=[...e];for(let e=n.length-1;e>0;--e){let r=Math.floor(t()*(e+1));[n[e],n[r]]=[n[r],n[e]]}return n}function P(e,t){return e.deck.splice(0,t)}function F(e){e.sort(H)}function I(e){return e.players.find(t=>t.seat===e.currentSeat)}function L(e){return R(e).filter(e=>e.hand.length>0)}function R(e){return[...e?.players||[]].sort((e,t)=>e.seat-t.seat)}function z(e){let t=L(e).map(e=>e.seat);e.currentSeat=t[(t.indexOf(e.currentSeat)+1)%t.length]}function B(e,t=0){if(e.length===0)return!1;let n=e[0].rank;return e.every(e=>e.rank===n)&&e.length+t>=2}function V(e){return U(e[0])}function H(e,t){return U(e)-U(t)||ge(e.suit)-ge(t.suit)}function U(e){return g.get(e.rank)||99}function W(e){return e.rank===`SJ`||e.rank===`BJ`}function ge(e){return{D:0,C:1,H:2,S:3,Joker:4}[e]||0}function _e(e){if(typeof e==`string`){let[t,n]=e.split(`-`);return O({id:e,suit:t,rank:n})}return O(e)}function G(e){return{id:e.id,suit:e.suit,rank:e.rank,label:K(e),color:ye(e)}}function K(e){return e.rank===`SJ`?`小王`:e.rank===`BJ`?`大王`:`${ve(e.suit)}${e.rank}`}function ve(e){return{S:`♠`,H:`♥`,C:`♣`,D:`♦`}[e]||``}function ye(e){return e.suit===`H`||e.suit===`D`||e.rank===`BJ`?`red`:`black`}function be(e){let t=e.resolvedValues?.length?`(${e.resolvedValues.map(xe).join(` `)})`:``;return`${{single:`单张`,pair:`对子`,straight:`顺子`,pairStraight:`连对`,bomb:e.pure?`纯炸弹`:`带王炸弹`}[e.type]}${t}`}function xe(e){return m.find(t=>g.get(t)===e)||String(e)}function Se(e){let t=m.findIndex(t=>g.get(t)===e);return t===-1||t>=m.length-1?null:g.get(m[t+1])}function Ce(e){return Math.floor(e()*6)+1}function q(e){let t=String(e||``).trim();return/^0x[a-fA-F0-9]{40}$/.test(t)?t.toLowerCase():``}function J(e){return String(e||`玩家`).trim().slice(0,16)||`玩家`}function Y(e){return String(e||``).trim().slice(0,4096)}var X={page:`_page_p7qf6_1`,headerActions:`_headerActions_p7qf6_7`,entry:`_entry_p7qf6_13`,entryBrand:`_entryBrand_p7qf6_23`,cardMark:`_cardMark_p7qf6_29`,entryPanel:`_entryPanel_p7qf6_59`,panel:`_panel_p7qf6_60`,handPanel:`_handPanel_p7qf6_61`,accountLine:`_accountLine_p7qf6_74`,scoreMeta:`_scoreMeta_p7qf6_75`,roomBar:`_roomBar_p7qf6_76`,badges:`_badges_p7qf6_77`,actions:`_actions_p7qf6_78`,joinForm:`_joinForm_p7qf6_98`,status:`_status_p7qf6_119`,gameGrid:`_gameGrid_p7qf6_125`,tablePanel:`_tablePanel_p7qf6_136`,seats:`_seats_p7qf6_170`,player:`_player_p7qf6_176`,active:`_active_p7qf6_193`,winner:`_winner_p7qf6_197`,avatar:`_avatar_p7qf6_201`,centerTable:`_centerTable_p7qf6_235`,deckBox:`_deckBox_p7qf6_242`,playedBox:`_playedBox_p7qf6_243`,playedCards:`_playedCards_p7qf6_271`,notice:`_notice_p7qf6_279`,resultDetail:`_resultDetail_p7qf6_287`,sidePanel:`_sidePanel_p7qf6_298`,scoreRow:`_scoreRow_p7qf6_323`,logPanel:`_logPanel_p7qf6_331`,hand:`_hand_p7qf6_61`,cardButton:`_cardButton_p7qf6_358`,picked:`_picked_p7qf6_368`,card:`_card_p7qf6_29`,red:`_red_p7qf6_399`,black:`_black_p7qf6_403`,small:`_small_p7qf6_407`,preview:`_preview_p7qf6_425`,valid:`_valid_p7qf6_448`},Z=n(),Q=`gandengyan`;function $(...e){return e.filter(Boolean).join(` `)}function we(e,t){return String(e||``).toLowerCase()===String(t||``).toLowerCase()}function Te(e,t){if(typeof window>`u`||!(`speechSynthesis`in window)||!e)return;window.speechSynthesis.cancel();let n=new SpeechSynthesisUtterance(e);n.lang=t,n.rate=1.1,window.speechSynthesis.speak(n)}function Ee(){let{t:e,locale:t}=oe(),n=d(e=>e.isDarkMode),r=d(e=>e.setIsDarkMode),a=d(e=>e.addToast),u=i(e=>e.initializeUser),[p,m]=(0,f.useState)(``),[h,g]=(0,f.useState)([]),[ce,_]=(0,f.useState)(!1),v=(0,f.useRef)(``),y=(0,f.useRef)(!1),b=ae({gameId:Q,onError:e=>a(e,`error`)});(0,f.useEffect)(()=>{u()},[u]),(0,f.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`room`)?.toUpperCase();e&&(m(e),v.current=e)},[]),(0,f.useEffect)(()=>{let t=v.current;!t||y.current||!b.isBackendReady||!b.userIdentity||(y.current=!0,v.current=``,b.joinRoom(t).then(t=>{t&&a(e(`game.toast.joinedRoom`),`success`)}))},[b.isBackendReady,b.userIdentity,b.joinRoom,a,e]),(0,f.useEffect)(()=>{if(!b.roomCode)return;let e=`/game/gandengyan?room=${b.roomCode}`;`${window.location.pathname}${window.location.search}`!==e&&window.history.replaceState(null,``,e)},[b.roomCode]);let x=(0,f.useMemo)(()=>re(b.messages,b.roomCode?{gameId:Q,roomCode:b.roomCode}:{gameId:Q}),[b.messages,b.roomCode]),S=(0,f.useMemo)(()=>ie(b.messages,{gameId:Q,roomCode:b.roomCode}),[b.messages,b.roomCode]),C=S?.payload?.state,w=C?.players.find(e=>we(e.address,b.userIdentity?.address)),T=we(C?.ownerAddress||x.hostAddress,b.userIdentity?.address),E=C?.status===`playing`&&C.currentSeat===w?.seat,D=(0,f.useMemo)(()=>h.map(e=>w?.hand.find(t=>t.id===e)).filter(Boolean),[h,w]),O=(0,f.useMemo)(()=>he(D),[D]),k=b.roomCode&&typeof window<`u`?`${window.location.origin}/game/gandengyan?room=${b.roomCode}`:``,A=(0,f.useRef)(-1),j=(0,f.useRef)(!1);(0,f.useEffect)(()=>{g([])},[C?.seq]),(0,f.useEffect)(()=>{if(!C)return;let n=C.seq;if(A.current<0){A.current=n;return}if(n!==A.current&&(A.current=n,C.status!==`finished`&&(j.current=!1),C.status===`finished`&&C.winnerSeat!==null)){j.current||(j.current=!0,Te(e(`game.gandengyan.speech.gameOver`),t));return}},[t,C?.seq,e]),(0,f.useEffect)(()=>{if(!T||!b.roomCode||!b.userIdentity||S||x.players.length===0)return;let e=le({roomCode:b.roomCode,ownerAddress:b.userIdentity.address,ownerName:b.userIdentity.displayName||b.userIdentity.username,players:x.players});b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[b,T,S,x.players]),(0,f.useEffect)(()=>{if(!C||!T||C.status!==`lobby`)return;let e=ue(C,x.players);e&&e.players.length!==C.players.length&&b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})},[b,T,x.players,C]);let M=(0,f.useRef)(0),N=(0,f.useMemo)(()=>b.roomEvents.filter(e=>e.event?.event===`player:leave`),[b.roomEvents]);(0,f.useEffect)(()=>{if(N.length<=M.current)return;let t=N.slice(M.current);M.current=N.length;for(let n of t)a(e(`game.toast.playerLeft`,{player:n.event?.payload?.player?.name||e(`game.player`)}),`info`)},[N,a,e]),(0,f.useEffect)(()=>{if(!C||!T||C.status!==`playing`)return;let e=new Set(x.players.map(e=>e.address.toLowerCase())),t=C.players.find(t=>!e.has(t.address.toLowerCase()));if(!t)return;let n=me(C,t.address);n&&L(n)},[b,T,x.players,C]);async function P(){await b.createRoom()&&a(e(`game.toast.roomCreated`),`success`)}async function F(t){t.preventDefault(),await b.joinRoom(p)&&a(e(`game.toast.joinedRoom`),`success`)}async function I(){k&&(await navigator.clipboard.writeText(k),_(!0),setTimeout(()=>_(!1),1400))}async function L(e){await b.sendRoomEvent(`room:state`,{state:e,seq:e.seq})}async function R(){if(!(!C||!T))try{await L(de(C))}catch(t){a(t instanceof Error?t.message:e(`game.zhajinhua.error.startFailed`),`error`)}}async function z(){await R()}async function B(){if(!C||!b.userIdentity)return;let t=fe(C,b.userIdentity.address,h);if(!t.ok){a(t.error||e(`game.gandengyan.error.playFailed`),`error`);return}await L(t.state)}async function V(){if(!C||!b.userIdentity)return;let t=pe(C,b.userIdentity.address);if(!t.ok){a(t.error||e(`game.gandengyan.error.actionFailed`),`error`);return}await L(t.state)}function H(e){g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}return(0,Z.jsx)(ee,{sidebar:({closeSidebar:e})=>(0,Z.jsx)(ne,{activeGame:`gandengyan`,closeSidebar:e}),headerTitle:(0,Z.jsx)(`h2`,{className:`header-title`,children:e(`game.gandengyan.title`)}),headerRight:(0,Z.jsxs)(`div`,{className:X.headerActions,children:[C&&(0,Z.jsxs)(`button`,{className:`btn btn-sm`,onClick:I,children:[(0,Z.jsx)(c,{size:14}),e(ce?`common.copied`:`game.action.shareRoom`)]}),(0,Z.jsx)(`button`,{className:`btn btn-icon`,onClick:()=>r(!n),title:e(`common.theme.toggle`),children:n?(0,Z.jsx)(s,{size:16}):(0,Z.jsx)(o,{size:16})})]}),children:(0,Z.jsx)(`main`,{className:X.page,children:C?(0,Z.jsxs)(`section`,{className:X.gameGrid,children:[(0,Z.jsxs)(`div`,{className:X.tablePanel,children:[(0,Z.jsxs)(`div`,{className:X.roomBar,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{translate:`no`,children:e(`game.roomLabel`,{room:C.id})}),(0,Z.jsx)(`span`,{children:C.status===`lobby`?e(`game.status.waitingStart`):C.status===`finished`?e(`game.status.finished`):e(`game.status.playing`)})]}),(0,Z.jsx)(`div`,{className:X.badges,children:(0,Z.jsx)(`span`,{children:b.connected?e(`game.status.online`):e(`game.status.offline`)})})]}),(0,Z.jsx)(`div`,{className:X.seats,children:C.players.map(t=>(0,Z.jsx)(De,{player:t,active:C.currentSeat===t.seat,winner:C.winnerSeat===t.seat,relation:ke(w,t,C.players.length,e)},t.seat))}),(0,Z.jsxs)(`div`,{className:X.centerTable,children:[(0,Z.jsxs)(`div`,{className:X.deckBox,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.deck`)}),(0,Z.jsx)(`strong`,{children:C.deckCount})]}),(0,Z.jsx)(`div`,{className:X.playedBox,children:C.table?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`strong`,{children:e(`game.gandengyan.tablePlay`,{player:C.table.playerName,combo:C.table.combo?.label||e(`game.card`)})}),(0,Z.jsx)(`div`,{className:X.playedCards,children:C.table.cards.map(e=>(0,Z.jsx)(Oe,{card:e,small:!0},e.id))})]}):(0,Z.jsx)(`span`,{children:e(`game.gandengyan.waitingLead`)})}),(0,Z.jsxs)(`div`,{className:X.deckBox,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.baseScore`)}),(0,Z.jsx)(`strong`,{children:C.baseScore})]})]}),(0,Z.jsx)(`div`,{className:X.notice,children:C.status===`finished`?C.roundResult?(0,Z.jsxs)(`div`,{className:X.resultDetail,children:[(0,Z.jsxs)(`p`,{children:[e(`game.gandengyan.result.winnerGain`,{player:C.roundResult.winnerName,score:C.roundResult.winnerGain}),C.roundResult.bombCount>0&&e(`game.gandengyan.result.bombCount`,{count:C.roundResult.bombCount})]}),C.roundResult.losers.map(t=>(0,Z.jsx)(`p`,{children:t.sealed?e(`game.gandengyan.result.sealedLoss`,{player:t.name,loss:20}):e(`game.gandengyan.result.cardsLeftLoss`,{player:t.name,cards:t.cardsLeft,loss:t.loss})},t.seat))]}):e(`game.gandengyan.result.winner`,{player:C.players.find(e=>e.seat===C.winnerSeat)?.name||e(`game.player`)}):E?e(`game.gandengyan.status.yourTurn`):e(`game.zhajinhua.status.waitingPlayer`,{player:C.players.find(e=>e.seat===C.currentSeat)?.name||e(`game.player`)})})]}),(0,Z.jsxs)(`aside`,{className:X.sidePanel,children:[(0,Z.jsxs)(`section`,{className:X.panel,children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.roundPanel`)}),T&&C.status===`lobby`&&(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:C.players.length<2,onClick:R,children:[(0,Z.jsx)(l,{size:16}),e(`game.action.startRound`)]}),T&&C.status===`finished`&&(0,Z.jsxs)(`button`,{className:`btn btn-primary`,onClick:z,children:[(0,Z.jsx)(se,{size:16}),e(`game.action.nextRound`)]}),!T&&(0,Z.jsx)(`p`,{className:X.status,children:e(`game.waitingHost`)})]}),(0,Z.jsxs)(`section`,{className:X.panel,children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.score`)}),(0,Z.jsxs)(`div`,{className:X.scoreMeta,children:[(0,Z.jsx)(`span`,{children:e(`game.gandengyan.bombCount`,{count:C.bombCount})}),(0,Z.jsx)(`span`,{children:e(`game.gandengyan.discardCount`,{count:C.discardCount})})]}),C.players.map(e=>(0,Z.jsxs)(`div`,{className:X.scoreRow,children:[(0,Z.jsx)(`span`,{translate:`no`,children:e.name}),(0,Z.jsx)(`strong`,{children:e.score})]},e.seat))]}),(0,Z.jsxs)(`section`,{className:$(X.panel,X.logPanel),children:[(0,Z.jsx)(`h3`,{children:e(`game.gandengyan.log`)}),C.log.map((e,t)=>(0,Z.jsx)(`p`,{translate:`no`,children:e},`${e}-${t}`))]})]}),(0,Z.jsxs)(`div`,{className:X.handPanel,children:[(0,Z.jsx)(De,{player:w,active:E,winner:C.winnerSeat===w?.seat}),(0,Z.jsx)(`div`,{className:X.hand,children:w?.hand.map(e=>(0,Z.jsx)(`button`,{className:$(X.cardButton,h.includes(e.id)&&X.picked),onClick:()=>H(e.id),children:(0,Z.jsx)(Oe,{card:e})},e.id))}),(0,Z.jsxs)(`div`,{className:X.actions,children:[(0,Z.jsxs)(`div`,{className:$(X.preview,O&&X.valid),children:[(0,Z.jsx)(`strong`,{children:O?O.label:h.length?e(`game.gandengyan.invalidCombo`):e(`game.gandengyan.selectCards`)}),(0,Z.jsx)(`span`,{children:D.map(e=>e.label).join(` `)||e(`game.gandengyan.jokerOrderHint`)})]}),(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:!E||h.length===0||!O,onClick:B,children:[(0,Z.jsx)(te,{size:16}),e(`game.gandengyan.action.play`)]}),(0,Z.jsx)(`button`,{className:`btn`,disabled:!E||!C.table,onClick:V,children:e(`game.gandengyan.action.pass`)})]})]})]}):(0,Z.jsxs)(`section`,{className:X.entry,children:[(0,Z.jsxs)(`div`,{className:X.entryBrand,children:[(0,Z.jsx)(`div`,{className:X.cardMark,children:e(`game.gandengyan.mark`)}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{children:e(`game.gandengyan.hero.title`)}),(0,Z.jsx)(`p`,{children:e(`game.hero.desc`)})]})]}),(0,Z.jsxs)(`div`,{className:X.entryPanel,children:[(0,Z.jsxs)(`div`,{className:X.accountLine,children:[(0,Z.jsx)(`span`,{children:e(`game.currentAccount`)}),(0,Z.jsx)(`strong`,{translate:`no`,children:b.userIdentity?.displayName||e(`web3.notSignedIn`)})]}),(0,Z.jsxs)(`button`,{className:`btn btn-primary`,disabled:b.joining,onClick:P,children:[(0,Z.jsx)(l,{size:16}),e(`game.action.createRoom`)]}),(0,Z.jsxs)(`form`,{onSubmit:F,className:X.joinForm,children:[(0,Z.jsxs)(`label`,{children:[e(`game.roomCode`),(0,Z.jsx)(`input`,{value:p,maxLength:8,onChange:e=>m(e.target.value.toUpperCase()),placeholder:e(`game.roomCode.placeholder`)})]}),(0,Z.jsx)(`button`,{className:`btn`,disabled:b.joining||!p,children:e(`game.action.joinRoom`)})]}),(0,Z.jsx)(`p`,{className:X.status,children:b.isBackendReady?e(`game.status.nodeConnected`):e(`game.status.nodeConnecting`)})]})]})})})}function De({player:e,active:t,winner:n,relation:r=``}){let{t:i}=oe();return e?(0,Z.jsxs)(`div`,{className:$(X.player,t&&X.active,n&&X.winner),children:[(0,Z.jsx)(`div`,{className:X.avatar,translate:`no`,children:(0,Z.jsx)(`img`,{src:u(e.address,e.avatar),alt:``})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`strong`,{translate:`no`,children:e.name}),(0,Z.jsxs)(`span`,{children:[r,r?` · `:``,i(`game.gandengyan.handCount`,{count:e.handCount})]})]})]}):null}function Oe({card:e,small:t=!1}){return(0,Z.jsxs)(`div`,{className:$(X.card,X[e.color],t&&X.small),children:[(0,Z.jsx)(`span`,{children:e.label}),(0,Z.jsx)(`i`,{children:e.suit===`Joker`?`*`:e.label.slice(0,1)})]})}function ke(e,t,n,r){if(!e)return r(`game.gandengyan.position.seat`,{seat:t.seat+1});let i=(t.seat-e.seat+n)%n;return i===0?r(`game.gandengyan.position.me`):n===2?r(`game.gandengyan.position.opponent`):n===3?r(i===1?`game.gandengyan.position.nextOpponent`:`game.gandengyan.position.prevOpponent`):n===4?r(i===1?`game.gandengyan.position.nextOpponent`:i===2?`game.gandengyan.position.partner`:`game.gandengyan.position.prevOpponent`):i%2==0?r(`game.gandengyan.position.seatPartner`,{seat:t.seat+1}):r(`game.gandengyan.position.seatOpponent`,{seat:t.seat+1})}var Ae=a(`/game/gandengyan/`)({component:Ee});export{Ae as Route};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{g as r,t as i,v as a}from"./userStore-q0BBZsIV.js";import{a as o,i as s,r as ee}from"./LanguageToggle-B99eQcTE.js";import{n as c,t as l}from"./folder-BGJCjyba.js";import{t as te}from"./copy-5aEv78Eq.js";import{t as u}from"./download-Bhqn6hL1.js";import{t as d}from"./file-text-CFfvvCnM.js";import{a as f,i as ne,n as p,r as re,t as ie}from"./FilePreviewOverlay-CM-fcIaD.js";import{t as ae}from"./loader-ByMmV2_4.js";import{r as oe,t as se}from"./AppShell-gILTcRs-.js";import{t as m}from"./music-Btrhub6z.js";import{t as ce}from"./OpenSidebarButton-CaQJk5LD.js";import{t as le}from"./search-CbzMyENy.js";import{t as ue}from"./trash-2-zdhWec_U.js";import{t as de}from"./upload-BD23c5Pz.js";import{I as fe,N as pe,O as me,S as he,b as ge,d as h,k as g,l as _e,m as _,u as ve,v}from"./index-DN0kD5zr.js";import{t as ye}from"./format-CR8oUWq6.js";import{t as be}from"./SidebarAccount-CpNVqNva.js";import{n as y,r as xe,t as Se}from"./downloadValidation-xzpa5rap.js";var Ce=r(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),we=r(`files`,[[`path`,{d:`M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8`,key:`14sh0y`}],[`path`,{d:`M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z`,key:`1970lx`}],[`path`,{d:`M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1`,key:`l4dndm`}]]),Te=r(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ee=r(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),b=t(e(),1);function De(e={}){let t=e.timeout??2e3,[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(!1),o=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{window.clearTimeout(o.current)},[]);let s=e=>{window.clearTimeout(o.current),o.current=window.setTimeout(()=>a(!1),t),a(e)};return{copy:e=>{`clipboard`in navigator?navigator.clipboard.writeText(e).then(()=>{r(null),s(!0)}).catch(e=>r(e)):r(Error(`useClipboard: navigator.clipboard is not supported`))},reset:()=>{a(!1),r(null),window.clearTimeout(o.current)},error:n,copied:i}}var x=n();function S(e){let t=e.lastIndexOf(`/`);return t===-1?{folder:``,name:e}:{folder:e.substring(0,t),name:e.substring(t+1)}}function Oe({file:e,isSelected:t,onSelect:n,onPreview:r}){let i=p(e.fileName),a=(0,x.jsx)(d,{size:24,color:`#fff`});return i===`image`?a=(0,x.jsx)(ne,{size:24,color:`#fff`}):i===`video`?a=(0,x.jsx)(f,{size:24,color:`#fff`}):i===`audio`&&(a=(0,x.jsx)(m,{size:24,color:`#fff`})),(0,x.jsxs)(`div`,{"data-id":e.cid,onClick:()=>n(e.cid),onDoubleClick:()=>r(e),className:`card ${t?`selected`:``}`,children:[(0,x.jsx)(`div`,{className:`card-icon ${e.starred?`starred`:`file`}`,children:a}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:S(e.fileName).name})]})}function ke({folder:e,onClick:t}){return(0,x.jsxs)(`div`,{onClick:t,className:`card`,children:[(0,x.jsx)(`div`,{className:`card-icon folder`,children:(0,x.jsx)(l,{size:28,color:`#fff`})}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:e.name})]})}function Ae(e,t){return e?[{path:``,name:t},...e.split(`/`).filter(Boolean).map((e,t,n)=>({path:n.slice(0,t+1).join(`/`),name:e}))]:[]}function je({items:e,allFolders:t,currentPath:n,onMove:r,onClose:i}){let[a,o]=(0,b.useState)(``),[s,ee]=(0,b.useState)(n),{t:c}=fe(),te=Ae(a,c(`move.root`));function u(){r(a||s.trim())}let d=t.filter(e=>{if(a===``)return!e.path.includes(`/`);let t=a+`/`;return e.path.startsWith(t)?!e.path.substring(t.length).includes(`/`):!1});return(0,x.jsx)(h,{onClose:i,children:(0,x.jsxs)(`div`,{className:`move-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:c(`move.title`)}),(0,x.jsx)(`button`,{type:`button`,onClick:i,className:`btn btn-icon`,children:(0,x.jsx)(g,{size:18})})]}),(0,x.jsx)(`p`,{className:`move-modal-desc`,children:c(`move.selectedCount`,{count:e.length})}),(0,x.jsx)(`div`,{className:`move-new-folder`,children:(0,x.jsx)(`input`,{type:`text`,className:`input`,value:s,onChange:e=>ee(e.target.value),placeholder:c(`move.pathPlaceholder`),translate:`no`})}),(0,x.jsx)(`p`,{className:`move-modal-hint`,children:c(`move.pathExample`)}),(0,x.jsx)(`div`,{className:`move-breadcrumb`,children:te.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(`span`,{className:`breadcrumb-separator`,children:`/`}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>{o(e.path),ee(e.path)},className:`move-breadcrumb-btn ${a===e.path&&!s?`active`:``}`,children:(0,x.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.name})})]},e.path))}),(0,x.jsxs)(`div`,{className:`move-folder-list`,children:[d.length===0&&(0,x.jsx)(`p`,{className:`move-modal-empty`,children:c(`move.noSubfolders`)}),d.map(e=>(0,x.jsxs)(`button`,{type:`button`,onClick:()=>o(e.path),className:`move-folder-item ${a===e.path&&!s?`selected`:``}`,children:[(0,x.jsx)(l,{size:16}),(0,x.jsx)(`span`,{translate:`no`,children:e.name})]},e.path))]}),(0,x.jsxs)(`div`,{className:`modal-actions`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:i,className:`btn btn-secondary`,children:c(`common.cancel`)}),(0,x.jsx)(`button`,{type:`button`,onClick:u,className:`btn btn-primary`,children:c(`move.action`)})]})]})})}function C(e){return S(e)}function Me(e){let t=new Set;return e.forEach(e=>{let{folder:n}=C(e.fileName),r=n.split(`/`).filter(Boolean),i=``;for(let e of r)i+=(i?`/`:``)+e,t.add(i)}),[...t].sort()}function w(e,t){let n=t?t+`/`:``;return e.filter(e=>{let t=e.toLowerCase().startsWith(n.toLowerCase()),r=e.substring(n.length);return t&&!r.includes(`/`)}).map(e=>({name:e.substring(n.length),path:e}))}function Ne(e,t,n){return{folders:w(t,n),files:e.filter(e=>C(e.fileName).folder===n)}}function Pe(e,t){return e?[{path:``,name:t},...e.split(`/`).filter(Boolean).map((e,t,n)=>({path:n.slice(0,t+1).join(`/`),name:e}))]:[]}function Fe(){let e=_(e=>e.isDarkMode),t=_(e=>e.setIsDarkMode),n=_(e=>e.addToast),r=_(e=>e.hasBackend),a=_(e=>e.openConnectModal),l=i(e=>e.identity),f=i(e=>e.openLoginModal),ne=me(),[m,S]=(0,b.useState)([]),[Ae,w]=(0,b.useState)([]),[Fe,T]=(0,b.useState)(null),[E,Ie]=(0,b.useState)(`all`),[Le,Re]=(0,b.useState)(!1),[D,O]=(0,b.useState)([]),[ze,k]=(0,b.useState)(null),[A,j]=(0,b.useState)(null),[Be,Ve]=oe(!1),[He,Ue]=(0,b.useState)(``),[M,N]=(0,b.useState)(null),[P,We]=(0,b.useState)(!1),[Ge,F]=(0,b.useState)([]),[Ke,I]=oe(!1),[L,R]=(0,b.useState)(``),{copy:qe,copied:Je}=De({timeout:2e3}),[Ye,Xe]=oe(!1),[z,B]=(0,b.useState)(null),[V,Ze]=(0,b.useState)(null),[Qe,$e]=(0,b.useState)(!1),{t:H,formatDate:et}=fe(),U=r===!0,tt=e=>e?et(e):``,W=Fe||``,nt=Me(m),{folders:rt,files:it}=Ne(m,nt,W);function G(){return U?!0:(a(),!1)}function K(){return l?!0:(f(),!1)}let at=L?m.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):it,q=async()=>{if(!U||!l){S([]);return}try{S(await y.listPublishedFiles()||[])}catch{S([])}},J=async()=>{if(!U||!l){w([]);return}try{w(await y.listTrashFiles()||[])}catch{w([])}},ot=e=>{O(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},st=async e=>{if(K()&&G())try{await y.restoreTrashFile(e),n(H(`app.toast.restored`),`success`),q(),J()}catch(e){n(await v(e,H(`app.toast.restoreFailed`)),`error`)}},ct=async()=>{K()&&G()&&B({title:H(`app.clearTrash.title`),message:H(`app.clearTrash.message`),confirmText:H(`app.clear`),danger:!0,onConfirm:async()=>{B(null);try{await y.emptyTrash(),n(H(`app.toast.trashEmptied`),`success`),J()}catch(e){n(await v(e,H(`app.toast.emptyFailed`)),`error`)}}})},lt=async e=>{if(K()&&G())try{let t=await y.toggleStar(e);S(n=>n.map(n=>n.cid===e?{...n,starred:t.starred}:n)),n(t.starred?H(`app.toast.favorited`):H(`app.toast.unfavorited`),`success`)}catch(e){n(await v(e,H(`app.toast.actionFailed`)),`error`)}},ut=async()=>{if(!K()||!G())return;let e=E===`trash`;B({title:H(e?`app.permanentDelete`:`app.batchDelete`),message:H(e?`app.deleteSelectedPermanent`:`app.deleteSelected`,{count:D.length}),confirmText:H(e?`app.permanentDelete`:`app.delete`),danger:!0,onConfirm:async()=>{B(null);try{for(let t of D)e?await y.permanentDeleteTrashFile(t):t.startsWith(`__`)||await y.deletePublishedFile(t);O([]),n(H(e?`app.toast.deletedPermanently`:`app.toast.deleted`),`success`),q(),J()}catch(e){n(await v(e,H(`app.toast.deleteFailed`)),`error`)}}})},dt=async e=>{if(K()&&G())try{for(let t of D){let n=m.find(e=>e.cid===t);if(!n)continue;let{name:r}=C(n.fileName),i=e?`${e}/${r}`:r;n.fileName!==i&&await y.moveFile(t,i)}O([]),Xe.close(),n(H(`app.toast.moved`),`success`),q()}catch(e){n(await v(e,H(`app.toast.moveFailed`)),`error`)}},ft=e=>{let t=!!e.path,r=t?e.name:C(e.fileName).name;Ze({title:H(t?`app.renameFolder`:`app.renameFile`),placeholder:H(`app.enterNewName`),defaultValue:r,confirmText:H(`app.rename`),onConfirm:async i=>{if(i!==r&&K()&&G()){$e(!0);try{if(t){let t=e.path.lastIndexOf(`/`),r=t===-1?``:e.path.substring(0,t),a=r?`${r}/${i}`:i;await y.renameFolder(e.path,a),n(H(`app.toast.renamed`),`success`),q(),Q(a)}else{let{folder:t}=C(e.fileName),r=t?`${t}/${i}`:i;await y.moveFile(e.cid,r),n(H(`app.toast.renamed`),`success`),q()}Ze(null)}catch(e){n(await v(e,H(`app.toast.renameFailed`)),`error`)}finally{$e(!1)}}}})},pt=async e=>{if(!l){f(),n(H(`app.toast.signInBeforePublish`),`warning`);return}if(!G())return;let t=W?W+`/`:``,r=[];for(let i of Array.from(e)){let e=t+i.name;if(m.some(t=>t.fileName===e)){n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`);continue}let a=`upload_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,o={id:a,fileName:i.name,progress:0,type:`upload`,status:`uploading`};r.push(o),F(e=>[...e,o]),r.length>0&&I.open();try{(await y.publishFile(i,e)).alreadyExists?(F(e=>e.map(e=>e.id===a?{...e,status:`completed`}:e)),n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`)):(F(e=>e.map(e=>e.id===a?{...e,progress:100,status:`completed`}:e)),n(H(`app.fileAddedLocal`,{fileName:i.name}),`success`))}catch(e){F(e=>e.map(e=>e.id===a?{...e,status:`error`}:e)),n(await v(e,H(`app.publishFailedWithFile`,{fileName:i.name})),`error`)}}setTimeout(()=>{F(e=>e.filter(e=>e.status!==`completed`&&e.status!==`error`&&e.status!==`cancelled`))},3e3),q()},mt=()=>{qe(`most://${A.cid}?filename=${encodeURIComponent(A.fileName)}`)},[Y,ht]=(0,b.useState)(!1),X=He.trim(),Z=M?.status===`success`&&M.link===X,gt=()=>{Ve.close(),N(null)},_t=e=>{Ue(e.target.value),N(null)},vt=async()=>{let e=Se(X,H);if(e){N({status:`error`,link:X,message:e}),n(e,`warning`);return}if(!(P||Y)&&K()&&G()){We(!0),N(null);try{let e=await y.checkDownload(X);N({status:`success`,link:X,message:e.alreadyExists?H(`app.fileAlreadyLocal`,{fileName:e.fileName}):H(`app.fileAvailable`,{fileName:e.fileName})}),n(e.alreadyExists?H(`app.fileAlreadyExists`,{fileName:e.fileName}):H(`app.toast.checkPassed`),e.alreadyExists?`warning`:`success`)}catch(e){let t=await xe(e);N({status:`error`,link:X,message:t}),n(t,`error`)}finally{We(!1)}}},yt=async()=>{if(!l){f(),n(H(`app.toast.signInBeforeDownload`),`warning`);return}if(!G())return;let e=Se(X,H);if(e){n(e,`warning`);return}if(!Z){n(H(`app.toast.checkLinkFirst`),`warning`);return}if(!Y){ht(!0);try{let e=await y.downloadFile(X);if(Ue(``),N(null),gt(),e.alreadyExists)n(H(`app.fileAlreadyExists`,{fileName:e.fileName}),`warning`);else{let t={id:e.taskId,fileName:H(`app.downloadFallbackName`),progress:0,type:`download`,status:`downloading`};F(e=>[...e,t]),I.open(),n(H(`app.toast.downloadStarted`),`info`)}}catch(e){n(await v(e,H(`app.toast.downloadFailed`)),`error`)}finally{ht(!1)}}},bt=async e=>{if(K()&&G()&&e.type===`download`&&e.status===`downloading`){F(t=>t.map(t=>t.id===e.id?{...t,status:`cancelling`}:t));try{await y.cancelDownload(e.id)}catch(t){F(t=>t.map(t=>t.id===e.id?{...t,status:`downloading`}:t)),n(await v(t,H(`app.toast.cancelFailed`)),`error`)}}},xt=async e=>{if(K()&&G()){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}try{let t=await fetch(y.getFileDownloadUrl(e.cid),{headers:await ge(`GET`,`/api/files/${e.cid}/download`)});if(!t.ok)throw Error(H(`app.toast.getFileFailed`));let r=await t.blob(),i=window.showSaveFilePicker;if(i){let t=await(await i({suggestedName:e.fileName})).createWritable();await t.write(r),await t.close(),n(H(`app.toast.fileSaved`),`success`)}else{let t=URL.createObjectURL(r),i=document.createElement(`a`);i.href=t,i.download=e.fileName,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t),n(H(`app.toast.fileDownloaded`),`success`)}}catch(e){e.name!==`AbortError`&&n(H(`app.saveFailedWithError`,{error:e.message}),`error`)}}},St=async e=>{if(K()&&G())try{n(H(`app.toast.startPullLocal`),`info`),await y.cacheFile(e.cid),n(H(`app.toast.pulledAndSeeding`),`success`),q()}catch(e){n(await v(e,H(`app.toast.pullFailed`)),`error`)}},Q=e=>{T(e||null),O([])};(0,b.useEffect)(()=>{if(r!==!0)return;let e=null,t=!1;return(async()=>{if(e=new WebSocket(await he(`/ws`)),t){e.close();return}e.onmessage=e=>{try{let{event:t,data:r}=JSON.parse(e.data);if(t===`publish:success`||t===`download:success`){q();let e=r.taskId||r.fileName;F(t=>t.map(t=>t.id===e||t.fileName===r.fileName?{...t,progress:100,status:`completed`}:t)),t===`download:success`&&(r.alreadyExists?n(H(`app.fileAlreadyExists`,{fileName:r.fileName}),`warning`):n(H(`app.fileDownloadCompleted`,{fileName:r.fileName}),`success`),setTimeout(()=>{F(t=>t.filter(t=>!(t.id===e&&t.status===`completed`)))},3e3))}t===`publish:progress`&&F(e=>e.map(e=>{if(r.file&&e.fileName===r.file&&e.type===`upload`){let t=50;return r.stage===`calculating-cid`?t=25:r.stage===`uploading`?t=75:r.stage===`complete`&&(t=100),{...e,progress:t}}return e})),t===`download:progress`&&F(e=>e.map(e=>e.id===r.taskId?{...e,progress:r.percent||0,loaded:r.loaded,total:r.total}:e)),t===`download:error`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`error`}:e)),n(H(`app.downloadFailedWithError`,{error:r.error}),`error`)),t===`download:status`&&F(e=>e.map(e=>e.id===r.taskId?{...e,fileName:r.file||e.fileName}:e)),t===`download:cancelled`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`cancelled`}:e)),n(H(`app.toast.downloadCancelled`),`warning`)),t===`user:metadata:updated`&&(q(),J())}catch(e){console.warn(`[App WS] Failed to parse message:`,e.message)}}})(),()=>{t=!0,e?.close()}},[r,l?.address]),(0,b.useEffect)(()=>{if(r===!0&&l){q(),J();return}r===!1&&(S([]),w([]))},[r,l?.address]),(0,b.useEffect)(()=>{l||(O([]),k(null),j(null),Ue(``),N(null),F([]),R(``),T(null),Ie(`all`))},[l?.address]);let Ct=H(E===`all`?`app.nav.local`:E===`starred`?`app.nav.favorites`:`app.nav.trash`),$=E===`all`?at:E===`starred`?m.filter(e=>e.starred&&C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):Ae.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())),wt=E===`starred`?[]:rt.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())),Tt=Pe(W,H(`app.allContent`));return(0,x.jsxs)(se,{sidebar:({closeSidebar:e})=>(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`button`,{type:`button`,className:`sidebar-header sidebar-header-link`,onClick:ne,children:[(0,x.jsx)(pe,{size:18}),(0,x.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,x.jsx)(`nav`,{className:`sidebar-nav`,children:[{id:`all`,icon:(0,x.jsx)(we,{size:18}),label:H(`app.nav.local`)},{id:`starred`,icon:(0,x.jsx)(Ee,{size:18}),label:H(`app.nav.favorites`)},{id:`trash`,icon:(0,x.jsx)(ue,{size:18}),label:H(`app.nav.trash`)}].map(t=>(0,x.jsxs)(`button`,{onClick:()=>{Ie(t.id),T(null),O([]),R(``),e()},className:`sidebar-nav-btn ${E===t.id?`active`:``}`,children:[t.icon,(0,x.jsx)(`span`,{children:t.label})]},t.id))}),(0,x.jsx)(be,{})]}),headerTitle:(0,x.jsx)(`h2`,{className:`header-title`,children:Ct}),headerRight:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`search-box`,children:[(0,x.jsx)(le,{size:14}),(0,x.jsx)(`input`,{type:`text`,value:L,onChange:e=>R(e.target.value),placeholder:H(`app.search.placeholder`)}),L&&(0,x.jsx)(`button`,{onClick:()=>R(``),children:(0,x.jsx)(g,{size:12})})]}),E===`trash`&&Ae.length>0&&(0,x.jsx)(`button`,{onClick:ct,className:`btn btn-sm btn-empty-trash`,children:H(`app.emptyTrash`)}),(0,x.jsx)(`button`,{onClick:()=>I.open(),className:`btn btn-icon`,children:(0,x.jsx)(Ce,{size:16})}),(0,x.jsx)(`button`,{onClick:()=>t(!e),className:`btn btn-icon`,children:e?(0,x.jsx)(ee,{size:16}):(0,x.jsx)(s,{size:16})})]}),children:[E===`all`&&(0,x.jsxs)(`div`,{className:`action-grid`,children:[(0,x.jsxs)(`div`,{className:`action-card upload ${Le?`drag-over`:``}`,onDragOver:e=>{e.preventDefault(),Re(!0)},onDragLeave:()=>Re(!1),onDrop:e=>{e.preventDefault(),Re(!1),!(!K()||!G())&&pt(e.dataTransfer.files)},children:[(0,x.jsx)(`input`,{type:`file`,multiple:!0,onClick:e=>{(!K()||!G())&&e.preventDefault()},onChange:e=>pt(e.target.files),className:`action-card-input`}),(0,x.jsx)(de,{size:20,className:`action-grid-icon`}),(0,x.jsx)(`p`,{children:H(`app.publishFile`)})]}),(0,x.jsxs)(`div`,{className:`action-card action-card-download`,onClick:()=>{!K()||!G()||Ve.open()},children:[(0,x.jsx)(u,{size:20,className:`action-grid-icon`}),(0,x.jsx)(`p`,{children:H(`app.downloadFile`)})]})]}),E===`all`&&(0,x.jsx)(`div`,{className:`breadcrumb`,children:W?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{onClick:()=>Q(``),children:H(`app.allContent`)}),Tt.slice(1).map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[(0,x.jsx)(c,{size:12}),(0,x.jsx)(`button`,{onClick:()=>Q(e.path),className:t===Tt.length-2?`current`:``,children:(0,x.jsx)(`span`,{translate:`no`,children:e.name})}),t===Tt.length-2&&(0,x.jsx)(`button`,{onClick:()=>ft(e),className:`breadcrumb-edit-btn`,children:(0,x.jsx)(re,{size:12})})]},e.path))]}):null}),(0,x.jsxs)(`div`,{className:`content-grid`,children:[E===`trash`&&($.length===0?(0,x.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,x.jsx)(`p`,{children:H(L?`app.noMatches`:`app.trashEmpty`)}),(0,x.jsx)(ce,{label:H(`app.openFileNavigation`)})]}):(0,x.jsx)(`div`,{className:`file-grid`,children:$.map(e=>(0,x.jsxs)(`div`,{onClick:()=>O(t=>t.includes(e.cid)?t.filter(t=>t!==e.cid):[...t,e.cid]),onDoubleClick:()=>st(e.cid),className:`card ${D.includes(e.cid)?`selected`:``}`,children:[(0,x.jsx)(`div`,{className:`card-icon trash`,children:(0,x.jsx)(d,{size:24,color:`#fff`})}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:C(e.fileName).name}),(0,x.jsx)(`p`,{className:`card-date`,children:H(`app.deletedOn`,{date:tt(e.deletedAt)})})]},e.cid))})),E!==`trash`&&($.length===0&&wt.length===0?(0,x.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,x.jsx)(`p`,{children:H(L?`app.noMatches`:E===`starred`?`app.noFavorites`:`app.noLocalFiles`)}),(0,x.jsx)(ce,{label:H(`app.openFileNavigation`)})]}):(0,x.jsxs)(`div`,{className:`file-grid`,children:[wt.map(e=>(0,x.jsx)(ke,{folder:e,onClick:()=>Q(e.path)},e.path)),$.map(e=>(0,x.jsx)(Oe,{file:e,isSelected:D.includes(e.cid),onSelect:ot,onPreview:e=>{if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}k({...e,subtype:p(e.fileName)})}},e.cid))]}))]}),z&&(0,x.jsx)(ve,{title:z.title,message:z.message,confirmText:z.confirmText,danger:z.danger,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,x.jsx)(_e,{title:V.title,placeholder:V.placeholder,defaultValue:V.defaultValue,confirmText:V.confirmText,isLoading:Qe,onConfirm:V.onConfirm,onClose:()=>Ze(null)}),Ye&&(0,x.jsx)(je,{items:D.map(e=>m.find(t=>t.cid===e)).filter(Boolean),allFolders:nt.map(e=>({path:e,name:e.split(`/`).pop()})),currentPath:W,onMove:dt,onClose:()=>Xe.close()}),A&&(0,x.jsx)(h,{onClose:()=>j(null),children:(0,x.jsxs)(`div`,{className:`share-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.shareLink`)}),(0,x.jsx)(`button`,{onClick:()=>j(null),className:`btn btn-icon`,children:(0,x.jsx)(g,{size:18})})]}),(0,x.jsxs)(`div`,{className:`share-link-box`,children:[(0,x.jsx)(`div`,{className:`share-link-text`,translate:`no`,children:`most://${A.cid}?filename=${encodeURIComponent(A.fileName)}`}),(0,x.jsx)(`button`,{onClick:mt,className:`btn btn-circle btn-primary ${Je?`copied`:``}`,children:Je?(0,x.jsx)(o,{size:18}):(0,x.jsx)(te,{size:18})})]}),(0,x.jsx)(`div`,{className:`share-storage-note`,children:(0,x.jsx)(`span`,{children:H(`app.shareSeedNote`)})})]})}),Be&&(0,x.jsx)(h,{onClose:gt,children:(0,x.jsxs)(`div`,{className:`download-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.downloadFile`)}),(0,x.jsx)(`button`,{onClick:gt,className:`btn btn-icon`,children:(0,x.jsx)(g,{size:18})})]}),(0,x.jsxs)(`div`,{className:`download-link-row`,children:[(0,x.jsx)(`input`,{type:`text`,className:`input`,value:He,onChange:_t,placeholder:H(`app.downloadLink.placeholder`)}),(0,x.jsxs)(`button`,{type:`button`,onClick:vt,disabled:!X||P||Y,className:`btn btn-secondary download-check-btn`,children:[P?(0,x.jsx)(ae,{size:14,className:`spin`}):Z?(0,x.jsx)(o,{size:14}):(0,x.jsx)(le,{size:14}),H(P?`app.checking`:Z?`app.passed`:`app.check`)]})]}),M&&(0,x.jsxs)(`div`,{className:`download-check-status ${M.status}`,children:[M.status===`success`?(0,x.jsx)(o,{size:14}):(0,x.jsx)(Te,{size:14}),(0,x.jsx)(`span`,{children:M.message})]}),(0,x.jsxs)(`button`,{onClick:yt,disabled:!Z||Y||P,className:`btn btn-info btn-full`,children:[Y?(0,x.jsx)(ae,{size:14,className:`spin`}):(0,x.jsx)(u,{size:14}),H(Y?`app.downloading`:`app.startDownload`)]})]})}),ze&&(0,x.jsx)(ie,{item:ze,isBackendReady:U,getFileDownloadUrl:y.getFileDownloadUrl,onClose:()=>k(null)}),D.length>0&&(0,x.jsxs)(`div`,{className:`batch-bar`,children:[(0,x.jsx)(`span`,{className:`batch-info`,children:H(`app.selectedItems`,{count:D.length})}),(0,x.jsx)(`button`,{onClick:()=>O([]),className:`batch-dismiss`,children:(0,x.jsx)(g,{size:16})}),(0,x.jsx)(`div`,{className:`batch-divider`}),E===`trash`?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{onClick:async()=>{K()&&G()&&(await Promise.all(D.map(e=>y.restoreTrashFile(e))),O([]),n(H(`app.toast.restored`),`success`),q(),J())},className:`btn btn-sm`,children:H(`app.restore`)}),(0,x.jsx)(`button`,{onClick:ut,className:`btn btn-sm btn-danger`,children:H(`app.permanentDelete`)})]}):(0,x.jsxs)(x.Fragment,{children:[D.length===1&&(()=>{let e=m.find(e=>e.cid===D[0]);return e&&p(e.fileName)!==`file`})()&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);if(e){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}let t=p(e.fileName);k({...e,subtype:t})}},className:`btn btn-sm`,children:H(`app.preview`)}),(0,x.jsx)(`button`,{onClick:()=>{let e=D.some(e=>{let t=m.find(t=>t.cid===e);return t&&!t.starred});D.forEach(t=>{let n=m.find(e=>e.cid===t);n&&(e?!n.starred:n.starred)&<(t)})},className:`btn btn-sm btn-star`,children:H(`app.favorite`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&ft(e)},className:`btn btn-sm`,children:H(`app.rename`)}),(0,x.jsx)(`button`,{onClick:()=>Xe.open(),className:`btn btn-sm btn-move`,children:H(`app.move`)}),(0,x.jsx)(`button`,{onClick:ut,className:`btn btn-sm btn-danger`,children:H(`app.delete`)}),D.length===1&&(()=>{let e=m.find(e=>e.cid===D[0]);return e&&e.localAvailable===!1})()&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&St(e)},className:`btn btn-sm`,children:H(`app.pullToLocal`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>j(m.find(e=>e.cid===D[0])),className:`btn btn-sm`,children:H(`app.share`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&xt(e)},className:`btn btn-sm`,children:H(`app.saveAs`)})]})]}),Ke&&(0,x.jsx)(h,{onClose:()=>I.close(),children:(0,x.jsxs)(`div`,{className:`transfer-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.transfers`)}),(0,x.jsx)(`button`,{onClick:()=>I.close(),className:`btn btn-icon`,children:(0,x.jsx)(g,{size:18})})]}),Ge.length===0?(0,x.jsx)(`div`,{className:`empty-transfer`,children:H(`app.noTransfers`)}):Ge.map(e=>(0,x.jsxs)(`div`,{className:`transfer-item`,children:[(0,x.jsxs)(`div`,{className:`transfer-item-header`,children:[e.type===`upload`?(0,x.jsx)(de,{size:14}):(0,x.jsx)(u,{size:14}),(0,x.jsx)(`span`,{className:`transfer-item-name`,translate:`no`,children:e.fileName}),e.status===`downloading`&&e.type===`download`&&(0,x.jsx)(`button`,{onClick:()=>bt(e),className:`transfer-item-cancel`,children:(0,x.jsx)(g,{size:14})})]}),(0,x.jsxs)(`div`,{className:`transfer-progress-row`,children:[(0,x.jsx)(`progress`,{className:`transfer-progress-meter ${e.type===`download`?`download`:``} ${e.status===`error`?`error`:``} ${e.status===`cancelled`?`cancelled`:``}`,value:Math.max(0,Math.min(100,e.progress)),max:100,"aria-label":H(`app.transferProgress`,{fileName:e.fileName})}),(0,x.jsx)(`span`,{className:`transfer-progress-text`,children:e.status===`completed`?H(`app.completed`):e.status===`error`?H(`app.failed`):e.status===`cancelled`?H(`app.cancelled`):e.status===`cancelling`?H(`app.cancelling`):e.loaded&&e.total?`${ye(e.loaded)}/${ye(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}var T=a(`/app/`)({component:Fe});export{T as Route};
|
|
1
|
+
import{n as e,o as t,t as n}from"./jsx-runtime-Bt-cYkS5.js";import{g as r,t as i,v as a}from"./userStore-q0BBZsIV.js";import{a as o,i as s,r as ee}from"./LanguageToggle-HAJ3D6Ne.js";import{n as c,t as l}from"./folder-BGJCjyba.js";import{t as te}from"./copy-5aEv78Eq.js";import{t as u}from"./download-Bhqn6hL1.js";import{t as d}from"./file-text-CFfvvCnM.js";import{a as f,i as ne,n as p,r as re,t as ie}from"./FilePreviewOverlay-DTBZt89J.js";import{t as ae}from"./loader-ByMmV2_4.js";import{r as oe,t as se}from"./AppShell-oF8wPXde.js";import{t as m}from"./music-Btrhub6z.js";import{t as ce}from"./OpenSidebarButton-D3JRO-Hh.js";import{t as le}from"./search-CbzMyENy.js";import{t as ue}from"./trash-2-zdhWec_U.js";import{t as de}from"./upload-BD23c5Pz.js";import{A as h,F as fe,R as pe,S as me,b as he,d as g,k as ge,l as _e,m as _,u as ve,v}from"./index--p9MKNEl.js";import{t as ye}from"./format-CR8oUWq6.js";import{t as be}from"./SidebarAccount-8_hQAYXx.js";import{n as y,r as xe,t as Se}from"./downloadValidation-eInMiVSX.js";var Ce=r(`arrow-up-down`,[[`path`,{d:`m21 16-4 4-4-4`,key:`f6ql7i`}],[`path`,{d:`M17 20V4`,key:`1ejh1v`}],[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}]]),we=r(`files`,[[`path`,{d:`M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8`,key:`14sh0y`}],[`path`,{d:`M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z`,key:`1970lx`}],[`path`,{d:`M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1`,key:`l4dndm`}]]),Te=r(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ee=r(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),b=t(e(),1);function De(e={}){let t=e.timeout??2e3,[n,r]=(0,b.useState)(null),[i,a]=(0,b.useState)(!1),o=(0,b.useRef)(null);(0,b.useEffect)(()=>()=>{window.clearTimeout(o.current)},[]);let s=e=>{window.clearTimeout(o.current),o.current=window.setTimeout(()=>a(!1),t),a(e)};return{copy:e=>{`clipboard`in navigator?navigator.clipboard.writeText(e).then(()=>{r(null),s(!0)}).catch(e=>r(e)):r(Error(`useClipboard: navigator.clipboard is not supported`))},reset:()=>{a(!1),r(null),window.clearTimeout(o.current)},error:n,copied:i}}var x=n();function S(e){let t=e.lastIndexOf(`/`);return t===-1?{folder:``,name:e}:{folder:e.substring(0,t),name:e.substring(t+1)}}function Oe({file:e,isSelected:t,onSelect:n,onPreview:r}){let i=p(e.fileName),a=(0,x.jsx)(d,{size:24,color:`#fff`});return i===`image`?a=(0,x.jsx)(ne,{size:24,color:`#fff`}):i===`video`?a=(0,x.jsx)(f,{size:24,color:`#fff`}):i===`audio`&&(a=(0,x.jsx)(m,{size:24,color:`#fff`})),(0,x.jsxs)(`div`,{"data-id":e.cid,onClick:()=>n(e.cid),onDoubleClick:()=>r(e),className:`card ${t?`selected`:``}`,children:[(0,x.jsx)(`div`,{className:`card-icon ${e.starred?`starred`:`file`}`,children:a}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:S(e.fileName).name})]})}function ke({folder:e,onClick:t}){return(0,x.jsxs)(`div`,{onClick:t,className:`card`,children:[(0,x.jsx)(`div`,{className:`card-icon folder`,children:(0,x.jsx)(l,{size:28,color:`#fff`})}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:e.name})]})}function Ae(e,t){return e?[{path:``,name:t},...e.split(`/`).filter(Boolean).map((e,t,n)=>({path:n.slice(0,t+1).join(`/`),name:e}))]:[]}function je({items:e,allFolders:t,currentPath:n,onMove:r,onClose:i}){let[a,o]=(0,b.useState)(``),[s,ee]=(0,b.useState)(n),{t:c}=pe(),te=Ae(a,c(`move.root`));function u(){r(a||s.trim())}let d=t.filter(e=>{if(a===``)return!e.path.includes(`/`);let t=a+`/`;return e.path.startsWith(t)?!e.path.substring(t.length).includes(`/`):!1});return(0,x.jsx)(g,{onClose:i,children:(0,x.jsxs)(`div`,{className:`move-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:c(`move.title`)}),(0,x.jsx)(`button`,{type:`button`,onClick:i,className:`btn btn-icon`,children:(0,x.jsx)(h,{size:18})})]}),(0,x.jsx)(`p`,{className:`move-modal-desc`,children:c(`move.selectedCount`,{count:e.length})}),(0,x.jsx)(`div`,{className:`move-new-folder`,children:(0,x.jsx)(`input`,{type:`text`,className:`input`,value:s,onChange:e=>ee(e.target.value),placeholder:c(`move.pathPlaceholder`),translate:`no`})}),(0,x.jsx)(`p`,{className:`move-modal-hint`,children:c(`move.pathExample`)}),(0,x.jsx)(`div`,{className:`move-breadcrumb`,children:te.map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[t>0&&(0,x.jsx)(`span`,{className:`breadcrumb-separator`,children:`/`}),(0,x.jsx)(`button`,{type:`button`,onClick:()=>{o(e.path),ee(e.path)},className:`move-breadcrumb-btn ${a===e.path&&!s?`active`:``}`,children:(0,x.jsx)(`span`,{translate:e.path?`no`:`yes`,children:e.name})})]},e.path))}),(0,x.jsxs)(`div`,{className:`move-folder-list`,children:[d.length===0&&(0,x.jsx)(`p`,{className:`move-modal-empty`,children:c(`move.noSubfolders`)}),d.map(e=>(0,x.jsxs)(`button`,{type:`button`,onClick:()=>o(e.path),className:`move-folder-item ${a===e.path&&!s?`selected`:``}`,children:[(0,x.jsx)(l,{size:16}),(0,x.jsx)(`span`,{translate:`no`,children:e.name})]},e.path))]}),(0,x.jsxs)(`div`,{className:`modal-actions`,children:[(0,x.jsx)(`button`,{type:`button`,onClick:i,className:`btn btn-secondary`,children:c(`common.cancel`)}),(0,x.jsx)(`button`,{type:`button`,onClick:u,className:`btn btn-primary`,children:c(`move.action`)})]})]})})}function C(e){return S(e)}function Me(e){let t=new Set;return e.forEach(e=>{let{folder:n}=C(e.fileName),r=n.split(`/`).filter(Boolean),i=``;for(let e of r)i+=(i?`/`:``)+e,t.add(i)}),[...t].sort()}function w(e,t){let n=t?t+`/`:``;return e.filter(e=>{let t=e.toLowerCase().startsWith(n.toLowerCase()),r=e.substring(n.length);return t&&!r.includes(`/`)}).map(e=>({name:e.substring(n.length),path:e}))}function Ne(e,t,n){return{folders:w(t,n),files:e.filter(e=>C(e.fileName).folder===n)}}function Pe(e,t){return e?[{path:``,name:t},...e.split(`/`).filter(Boolean).map((e,t,n)=>({path:n.slice(0,t+1).join(`/`),name:e}))]:[]}function Fe(){let e=_(e=>e.isDarkMode),t=_(e=>e.setIsDarkMode),n=_(e=>e.addToast),r=_(e=>e.hasBackend),a=_(e=>e.openConnectModal),l=i(e=>e.identity),f=i(e=>e.openLoginModal),ne=ge(),[m,S]=(0,b.useState)([]),[Ae,w]=(0,b.useState)([]),[Fe,T]=(0,b.useState)(null),[E,Ie]=(0,b.useState)(`all`),[Le,Re]=(0,b.useState)(!1),[D,O]=(0,b.useState)([]),[ze,k]=(0,b.useState)(null),[A,j]=(0,b.useState)(null),[Be,Ve]=oe(!1),[He,Ue]=(0,b.useState)(``),[M,N]=(0,b.useState)(null),[P,We]=(0,b.useState)(!1),[Ge,F]=(0,b.useState)([]),[Ke,I]=oe(!1),[L,R]=(0,b.useState)(``),{copy:qe,copied:Je}=De({timeout:2e3}),[Ye,Xe]=oe(!1),[z,B]=(0,b.useState)(null),[V,Ze]=(0,b.useState)(null),[Qe,$e]=(0,b.useState)(!1),{t:H,formatDate:et}=pe(),U=r===!0,tt=e=>e?et(e):``,W=Fe||``,nt=Me(m),{folders:rt,files:it}=Ne(m,nt,W);function G(){return U?!0:(a(),!1)}function K(){return l?!0:(f(),!1)}let at=L?m.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):it,q=async()=>{if(!U||!l){S([]);return}try{S(await y.listPublishedFiles()||[])}catch{S([])}},J=async()=>{if(!U||!l){w([]);return}try{w(await y.listTrashFiles()||[])}catch{w([])}},ot=e=>{O(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},st=async e=>{if(K()&&G())try{await y.restoreTrashFile(e),n(H(`app.toast.restored`),`success`),q(),J()}catch(e){n(await v(e,H(`app.toast.restoreFailed`)),`error`)}},ct=async()=>{K()&&G()&&B({title:H(`app.clearTrash.title`),message:H(`app.clearTrash.message`),confirmText:H(`app.clear`),danger:!0,onConfirm:async()=>{B(null);try{await y.emptyTrash(),n(H(`app.toast.trashEmptied`),`success`),J()}catch(e){n(await v(e,H(`app.toast.emptyFailed`)),`error`)}}})},lt=async e=>{if(K()&&G())try{let t=await y.toggleStar(e);S(n=>n.map(n=>n.cid===e?{...n,starred:t.starred}:n)),n(t.starred?H(`app.toast.favorited`):H(`app.toast.unfavorited`),`success`)}catch(e){n(await v(e,H(`app.toast.actionFailed`)),`error`)}},ut=async()=>{if(!K()||!G())return;let e=E===`trash`;B({title:H(e?`app.permanentDelete`:`app.batchDelete`),message:H(e?`app.deleteSelectedPermanent`:`app.deleteSelected`,{count:D.length}),confirmText:H(e?`app.permanentDelete`:`app.delete`),danger:!0,onConfirm:async()=>{B(null);try{for(let t of D)e?await y.permanentDeleteTrashFile(t):t.startsWith(`__`)||await y.deletePublishedFile(t);O([]),n(H(e?`app.toast.deletedPermanently`:`app.toast.deleted`),`success`),q(),J()}catch(e){n(await v(e,H(`app.toast.deleteFailed`)),`error`)}}})},dt=async e=>{if(K()&&G())try{for(let t of D){let n=m.find(e=>e.cid===t);if(!n)continue;let{name:r}=C(n.fileName),i=e?`${e}/${r}`:r;n.fileName!==i&&await y.moveFile(t,i)}O([]),Xe.close(),n(H(`app.toast.moved`),`success`),q()}catch(e){n(await v(e,H(`app.toast.moveFailed`)),`error`)}},ft=e=>{let t=!!e.path,r=t?e.name:C(e.fileName).name;Ze({title:H(t?`app.renameFolder`:`app.renameFile`),placeholder:H(`app.enterNewName`),defaultValue:r,confirmText:H(`app.rename`),onConfirm:async i=>{if(i!==r&&K()&&G()){$e(!0);try{if(t){let t=e.path.lastIndexOf(`/`),r=t===-1?``:e.path.substring(0,t),a=r?`${r}/${i}`:i;await y.renameFolder(e.path,a),n(H(`app.toast.renamed`),`success`),q(),Q(a)}else{let{folder:t}=C(e.fileName),r=t?`${t}/${i}`:i;await y.moveFile(e.cid,r),n(H(`app.toast.renamed`),`success`),q()}Ze(null)}catch(e){n(await v(e,H(`app.toast.renameFailed`)),`error`)}finally{$e(!1)}}}})},pt=async e=>{if(!l){f(),n(H(`app.toast.signInBeforePublish`),`warning`);return}if(!G())return;let t=W?W+`/`:``,r=[];for(let i of Array.from(e)){let e=t+i.name;if(m.some(t=>t.fileName===e)){n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`);continue}let a=`upload_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,o={id:a,fileName:i.name,progress:0,type:`upload`,status:`uploading`};r.push(o),F(e=>[...e,o]),r.length>0&&I.open();try{(await y.publishFile(i,e)).alreadyExists?(F(e=>e.map(e=>e.id===a?{...e,status:`completed`}:e)),n(H(`app.fileAlreadyExists`,{fileName:i.name}),`warning`)):(F(e=>e.map(e=>e.id===a?{...e,progress:100,status:`completed`}:e)),n(H(`app.fileAddedLocal`,{fileName:i.name}),`success`))}catch(e){F(e=>e.map(e=>e.id===a?{...e,status:`error`}:e)),n(await v(e,H(`app.publishFailedWithFile`,{fileName:i.name})),`error`)}}setTimeout(()=>{F(e=>e.filter(e=>e.status!==`completed`&&e.status!==`error`&&e.status!==`cancelled`))},3e3),q()},mt=()=>{qe(`most://${A.cid}?filename=${encodeURIComponent(A.fileName)}`)},[Y,ht]=(0,b.useState)(!1),X=He.trim(),Z=M?.status===`success`&&M.link===X,gt=()=>{Ve.close(),N(null)},_t=e=>{Ue(e.target.value),N(null)},vt=async()=>{let e=Se(X,H);if(e){N({status:`error`,link:X,message:e}),n(e,`warning`);return}if(!(P||Y)&&K()&&G()){We(!0),N(null);try{let e=await y.checkDownload(X);N({status:`success`,link:X,message:e.alreadyExists?H(`app.fileAlreadyLocal`,{fileName:e.fileName}):H(`app.fileAvailable`,{fileName:e.fileName})}),n(e.alreadyExists?H(`app.fileAlreadyExists`,{fileName:e.fileName}):H(`app.toast.checkPassed`),e.alreadyExists?`warning`:`success`)}catch(e){let t=await xe(e);N({status:`error`,link:X,message:t}),n(t,`error`)}finally{We(!1)}}},yt=async()=>{if(!l){f(),n(H(`app.toast.signInBeforeDownload`),`warning`);return}if(!G())return;let e=Se(X,H);if(e){n(e,`warning`);return}if(!Z){n(H(`app.toast.checkLinkFirst`),`warning`);return}if(!Y){ht(!0);try{let e=await y.downloadFile(X);if(Ue(``),N(null),gt(),e.alreadyExists)n(H(`app.fileAlreadyExists`,{fileName:e.fileName}),`warning`);else{let t={id:e.taskId,fileName:H(`app.downloadFallbackName`),progress:0,type:`download`,status:`downloading`};F(e=>[...e,t]),I.open(),n(H(`app.toast.downloadStarted`),`info`)}}catch(e){n(await v(e,H(`app.toast.downloadFailed`)),`error`)}finally{ht(!1)}}},bt=async e=>{if(K()&&G()&&e.type===`download`&&e.status===`downloading`){F(t=>t.map(t=>t.id===e.id?{...t,status:`cancelling`}:t));try{await y.cancelDownload(e.id)}catch(t){F(t=>t.map(t=>t.id===e.id?{...t,status:`downloading`}:t)),n(await v(t,H(`app.toast.cancelFailed`)),`error`)}}},xt=async e=>{if(K()&&G()){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}try{let t=await fetch(y.getFileDownloadUrl(e.cid),{headers:await he(`GET`,`/api/files/${e.cid}/download`)});if(!t.ok)throw Error(H(`app.toast.getFileFailed`));let r=await t.blob(),i=window.showSaveFilePicker;if(i){let t=await(await i({suggestedName:e.fileName})).createWritable();await t.write(r),await t.close(),n(H(`app.toast.fileSaved`),`success`)}else{let t=URL.createObjectURL(r),i=document.createElement(`a`);i.href=t,i.download=e.fileName,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(t),n(H(`app.toast.fileDownloaded`),`success`)}}catch(e){e.name!==`AbortError`&&n(H(`app.saveFailedWithError`,{error:e.message}),`error`)}}},St=async e=>{if(K()&&G())try{n(H(`app.toast.startPullLocal`),`info`),await y.cacheFile(e.cid),n(H(`app.toast.pulledAndSeeding`),`success`),q()}catch(e){n(await v(e,H(`app.toast.pullFailed`)),`error`)}},Q=e=>{T(e||null),O([])};(0,b.useEffect)(()=>{if(r!==!0)return;let e=null,t=!1;return(async()=>{if(e=new WebSocket(await me(`/ws`)),t){e.close();return}e.onmessage=e=>{try{let{event:t,data:r}=JSON.parse(e.data);if(t===`publish:success`||t===`download:success`){q();let e=r.taskId||r.fileName;F(t=>t.map(t=>t.id===e||t.fileName===r.fileName?{...t,progress:100,status:`completed`}:t)),t===`download:success`&&(r.alreadyExists?n(H(`app.fileAlreadyExists`,{fileName:r.fileName}),`warning`):n(H(`app.fileDownloadCompleted`,{fileName:r.fileName}),`success`),setTimeout(()=>{F(t=>t.filter(t=>!(t.id===e&&t.status===`completed`)))},3e3))}t===`publish:progress`&&F(e=>e.map(e=>{if(r.file&&e.fileName===r.file&&e.type===`upload`){let t=50;return r.stage===`calculating-cid`?t=25:r.stage===`uploading`?t=75:r.stage===`complete`&&(t=100),{...e,progress:t}}return e})),t===`download:progress`&&F(e=>e.map(e=>e.id===r.taskId?{...e,progress:r.percent||0,loaded:r.loaded,total:r.total}:e)),t===`download:error`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`error`}:e)),n(H(`app.downloadFailedWithError`,{error:r.error}),`error`)),t===`download:status`&&F(e=>e.map(e=>e.id===r.taskId?{...e,fileName:r.file||e.fileName}:e)),t===`download:cancelled`&&(F(e=>e.map(e=>e.id===r.taskId?{...e,status:`cancelled`}:e)),n(H(`app.toast.downloadCancelled`),`warning`)),t===`user:metadata:updated`&&(q(),J())}catch(e){console.warn(`[App WS] Failed to parse message:`,e.message)}}})(),()=>{t=!0,e?.close()}},[r,l?.address]),(0,b.useEffect)(()=>{if(r===!0&&l){q(),J();return}r===!1&&(S([]),w([]))},[r,l?.address]),(0,b.useEffect)(()=>{l||(O([]),k(null),j(null),Ue(``),N(null),F([]),R(``),T(null),Ie(`all`))},[l?.address]);let Ct=H(E===`all`?`app.nav.local`:E===`starred`?`app.nav.favorites`:`app.nav.trash`),$=E===`all`?at:E===`starred`?m.filter(e=>e.starred&&C(e.fileName).name.toLowerCase().includes(L.toLowerCase())):Ae.filter(e=>C(e.fileName).name.toLowerCase().includes(L.toLowerCase())),wt=E===`starred`?[]:rt.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())),Tt=Pe(W,H(`app.allContent`));return(0,x.jsxs)(se,{sidebar:({closeSidebar:e})=>(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`button`,{type:`button`,className:`sidebar-header sidebar-header-link`,onClick:ne,children:[(0,x.jsx)(fe,{size:18}),(0,x.jsx)(`h1`,{children:`MOST PEOPLE`})]}),(0,x.jsx)(`nav`,{className:`sidebar-nav`,children:[{id:`all`,icon:(0,x.jsx)(we,{size:18}),label:H(`app.nav.local`)},{id:`starred`,icon:(0,x.jsx)(Ee,{size:18}),label:H(`app.nav.favorites`)},{id:`trash`,icon:(0,x.jsx)(ue,{size:18}),label:H(`app.nav.trash`)}].map(t=>(0,x.jsxs)(`button`,{onClick:()=>{Ie(t.id),T(null),O([]),R(``),e()},className:`sidebar-nav-btn ${E===t.id?`active`:``}`,children:[t.icon,(0,x.jsx)(`span`,{children:t.label})]},t.id))}),(0,x.jsx)(be,{})]}),headerTitle:(0,x.jsx)(`h2`,{className:`header-title`,children:Ct}),headerRight:(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`search-box`,children:[(0,x.jsx)(le,{size:14}),(0,x.jsx)(`input`,{type:`text`,value:L,onChange:e=>R(e.target.value),placeholder:H(`app.search.placeholder`)}),L&&(0,x.jsx)(`button`,{onClick:()=>R(``),children:(0,x.jsx)(h,{size:12})})]}),E===`trash`&&Ae.length>0&&(0,x.jsx)(`button`,{onClick:ct,className:`btn btn-sm btn-empty-trash`,children:H(`app.emptyTrash`)}),(0,x.jsx)(`button`,{onClick:()=>I.open(),className:`btn btn-icon`,children:(0,x.jsx)(Ce,{size:16})}),(0,x.jsx)(`button`,{onClick:()=>t(!e),className:`btn btn-icon`,children:e?(0,x.jsx)(ee,{size:16}):(0,x.jsx)(s,{size:16})})]}),children:[E===`all`&&(0,x.jsxs)(`div`,{className:`action-grid`,children:[(0,x.jsxs)(`div`,{className:`action-card upload ${Le?`drag-over`:``}`,onDragOver:e=>{e.preventDefault(),Re(!0)},onDragLeave:()=>Re(!1),onDrop:e=>{e.preventDefault(),Re(!1),!(!K()||!G())&&pt(e.dataTransfer.files)},children:[(0,x.jsx)(`input`,{type:`file`,multiple:!0,onClick:e=>{(!K()||!G())&&e.preventDefault()},onChange:e=>pt(e.target.files),className:`action-card-input`}),(0,x.jsx)(de,{size:20,className:`action-grid-icon`}),(0,x.jsx)(`p`,{children:H(`app.publishFile`)})]}),(0,x.jsxs)(`div`,{className:`action-card action-card-download`,onClick:()=>{!K()||!G()||Ve.open()},children:[(0,x.jsx)(u,{size:20,className:`action-grid-icon`}),(0,x.jsx)(`p`,{children:H(`app.downloadFile`)})]})]}),E===`all`&&(0,x.jsx)(`div`,{className:`breadcrumb`,children:W?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{onClick:()=>Q(``),children:H(`app.allContent`)}),Tt.slice(1).map((e,t)=>(0,x.jsxs)(b.Fragment,{children:[(0,x.jsx)(c,{size:12}),(0,x.jsx)(`button`,{onClick:()=>Q(e.path),className:t===Tt.length-2?`current`:``,children:(0,x.jsx)(`span`,{translate:`no`,children:e.name})}),t===Tt.length-2&&(0,x.jsx)(`button`,{onClick:()=>ft(e),className:`breadcrumb-edit-btn`,children:(0,x.jsx)(re,{size:12})})]},e.path))]}):null}),(0,x.jsxs)(`div`,{className:`content-grid`,children:[E===`trash`&&($.length===0?(0,x.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,x.jsx)(`p`,{children:H(L?`app.noMatches`:`app.trashEmpty`)}),(0,x.jsx)(ce,{label:H(`app.openFileNavigation`)})]}):(0,x.jsx)(`div`,{className:`file-grid`,children:$.map(e=>(0,x.jsxs)(`div`,{onClick:()=>O(t=>t.includes(e.cid)?t.filter(t=>t!==e.cid):[...t,e.cid]),onDoubleClick:()=>st(e.cid),className:`card ${D.includes(e.cid)?`selected`:``}`,children:[(0,x.jsx)(`div`,{className:`card-icon trash`,children:(0,x.jsx)(d,{size:24,color:`#fff`})}),(0,x.jsx)(`p`,{className:`card-name`,translate:`no`,children:C(e.fileName).name}),(0,x.jsx)(`p`,{className:`card-date`,children:H(`app.deletedOn`,{date:tt(e.deletedAt)})})]},e.cid))})),E!==`trash`&&($.length===0&&wt.length===0?(0,x.jsxs)(`div`,{className:`empty-state app-empty-state`,children:[(0,x.jsx)(`p`,{children:H(L?`app.noMatches`:E===`starred`?`app.noFavorites`:`app.noLocalFiles`)}),(0,x.jsx)(ce,{label:H(`app.openFileNavigation`)})]}):(0,x.jsxs)(`div`,{className:`file-grid`,children:[wt.map(e=>(0,x.jsx)(ke,{folder:e,onClick:()=>Q(e.path)},e.path)),$.map(e=>(0,x.jsx)(Oe,{file:e,isSelected:D.includes(e.cid),onSelect:ot,onPreview:e=>{if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}k({...e,subtype:p(e.fileName)})}},e.cid))]}))]}),z&&(0,x.jsx)(ve,{title:z.title,message:z.message,confirmText:z.confirmText,danger:z.danger,onConfirm:z.onConfirm,onClose:()=>B(null)}),V&&(0,x.jsx)(_e,{title:V.title,placeholder:V.placeholder,defaultValue:V.defaultValue,confirmText:V.confirmText,isLoading:Qe,onConfirm:V.onConfirm,onClose:()=>Ze(null)}),Ye&&(0,x.jsx)(je,{items:D.map(e=>m.find(t=>t.cid===e)).filter(Boolean),allFolders:nt.map(e=>({path:e,name:e.split(`/`).pop()})),currentPath:W,onMove:dt,onClose:()=>Xe.close()}),A&&(0,x.jsx)(g,{onClose:()=>j(null),children:(0,x.jsxs)(`div`,{className:`share-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.shareLink`)}),(0,x.jsx)(`button`,{onClick:()=>j(null),className:`btn btn-icon`,children:(0,x.jsx)(h,{size:18})})]}),(0,x.jsxs)(`div`,{className:`share-link-box`,children:[(0,x.jsx)(`div`,{className:`share-link-text`,translate:`no`,children:`most://${A.cid}?filename=${encodeURIComponent(A.fileName)}`}),(0,x.jsx)(`button`,{onClick:mt,className:`btn btn-circle btn-primary ${Je?`copied`:``}`,children:Je?(0,x.jsx)(o,{size:18}):(0,x.jsx)(te,{size:18})})]}),(0,x.jsx)(`div`,{className:`share-storage-note`,children:(0,x.jsx)(`span`,{children:H(`app.shareSeedNote`)})})]})}),Be&&(0,x.jsx)(g,{onClose:gt,children:(0,x.jsxs)(`div`,{className:`download-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.downloadFile`)}),(0,x.jsx)(`button`,{onClick:gt,className:`btn btn-icon`,children:(0,x.jsx)(h,{size:18})})]}),(0,x.jsxs)(`div`,{className:`download-link-row`,children:[(0,x.jsx)(`input`,{type:`text`,className:`input`,value:He,onChange:_t,placeholder:H(`app.downloadLink.placeholder`)}),(0,x.jsxs)(`button`,{type:`button`,onClick:vt,disabled:!X||P||Y,className:`btn btn-secondary download-check-btn`,children:[P?(0,x.jsx)(ae,{size:14,className:`spin`}):Z?(0,x.jsx)(o,{size:14}):(0,x.jsx)(le,{size:14}),H(P?`app.checking`:Z?`app.passed`:`app.check`)]})]}),M&&(0,x.jsxs)(`div`,{className:`download-check-status ${M.status}`,children:[M.status===`success`?(0,x.jsx)(o,{size:14}):(0,x.jsx)(Te,{size:14}),(0,x.jsx)(`span`,{children:M.message})]}),(0,x.jsxs)(`button`,{onClick:yt,disabled:!Z||Y||P,className:`btn btn-info btn-full`,children:[Y?(0,x.jsx)(ae,{size:14,className:`spin`}):(0,x.jsx)(u,{size:14}),H(Y?`app.downloading`:`app.startDownload`)]})]})}),ze&&(0,x.jsx)(ie,{item:ze,isBackendReady:U,getFileDownloadUrl:y.getFileDownloadUrl,onClose:()=>k(null)}),D.length>0&&(0,x.jsxs)(`div`,{className:`batch-bar`,children:[(0,x.jsx)(`span`,{className:`batch-info`,children:H(`app.selectedItems`,{count:D.length})}),(0,x.jsx)(`button`,{onClick:()=>O([]),className:`batch-dismiss`,children:(0,x.jsx)(h,{size:16})}),(0,x.jsx)(`div`,{className:`batch-divider`}),E===`trash`?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{onClick:async()=>{K()&&G()&&(await Promise.all(D.map(e=>y.restoreTrashFile(e))),O([]),n(H(`app.toast.restored`),`success`),q(),J())},className:`btn btn-sm`,children:H(`app.restore`)}),(0,x.jsx)(`button`,{onClick:ut,className:`btn btn-sm btn-danger`,children:H(`app.permanentDelete`)})]}):(0,x.jsxs)(x.Fragment,{children:[D.length===1&&(()=>{let e=m.find(e=>e.cid===D[0]);return e&&p(e.fileName)!==`file`})()&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);if(e){if(e.localAvailable===!1){n(H(`app.toast.fileNotLocal`),`warning`);return}let t=p(e.fileName);k({...e,subtype:t})}},className:`btn btn-sm`,children:H(`app.preview`)}),(0,x.jsx)(`button`,{onClick:()=>{let e=D.some(e=>{let t=m.find(t=>t.cid===e);return t&&!t.starred});D.forEach(t=>{let n=m.find(e=>e.cid===t);n&&(e?!n.starred:n.starred)&<(t)})},className:`btn btn-sm btn-star`,children:H(`app.favorite`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&ft(e)},className:`btn btn-sm`,children:H(`app.rename`)}),(0,x.jsx)(`button`,{onClick:()=>Xe.open(),className:`btn btn-sm btn-move`,children:H(`app.move`)}),(0,x.jsx)(`button`,{onClick:ut,className:`btn btn-sm btn-danger`,children:H(`app.delete`)}),D.length===1&&(()=>{let e=m.find(e=>e.cid===D[0]);return e&&e.localAvailable===!1})()&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&St(e)},className:`btn btn-sm`,children:H(`app.pullToLocal`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>j(m.find(e=>e.cid===D[0])),className:`btn btn-sm`,children:H(`app.share`)}),D.length===1&&(0,x.jsx)(`button`,{onClick:()=>{let e=m.find(e=>e.cid===D[0]);e&&xt(e)},className:`btn btn-sm`,children:H(`app.saveAs`)})]})]}),Ke&&(0,x.jsx)(g,{onClose:()=>I.close(),children:(0,x.jsxs)(`div`,{className:`transfer-modal`,onClick:e=>e.stopPropagation(),children:[(0,x.jsxs)(`div`,{className:`modal-header`,children:[(0,x.jsx)(`h3`,{children:H(`app.transfers`)}),(0,x.jsx)(`button`,{onClick:()=>I.close(),className:`btn btn-icon`,children:(0,x.jsx)(h,{size:18})})]}),Ge.length===0?(0,x.jsx)(`div`,{className:`empty-transfer`,children:H(`app.noTransfers`)}):Ge.map(e=>(0,x.jsxs)(`div`,{className:`transfer-item`,children:[(0,x.jsxs)(`div`,{className:`transfer-item-header`,children:[e.type===`upload`?(0,x.jsx)(de,{size:14}):(0,x.jsx)(u,{size:14}),(0,x.jsx)(`span`,{className:`transfer-item-name`,translate:`no`,children:e.fileName}),e.status===`downloading`&&e.type===`download`&&(0,x.jsx)(`button`,{onClick:()=>bt(e),className:`transfer-item-cancel`,children:(0,x.jsx)(h,{size:14})})]}),(0,x.jsxs)(`div`,{className:`transfer-progress-row`,children:[(0,x.jsx)(`progress`,{className:`transfer-progress-meter ${e.type===`download`?`download`:``} ${e.status===`error`?`error`:``} ${e.status===`cancelled`?`cancelled`:``}`,value:Math.max(0,Math.min(100,e.progress)),max:100,"aria-label":H(`app.transferProgress`,{fileName:e.fileName})}),(0,x.jsx)(`span`,{className:`transfer-progress-text`,children:e.status===`completed`?H(`app.completed`):e.status===`error`?H(`app.failed`):e.status===`cancelled`?H(`app.cancelled`):e.status===`cancelling`?H(`app.cancelling`):e.loaded&&e.total?`${ye(e.loaded)}/${ye(e.total)}`:`${e.progress}%`})]})]},e.id))]})})]})}var T=a(`/app/`)({component:Fe});export{T as Route};
|