@abtnode/webapp 1.16.25 → 1.16.26-beta-bdd2d7c0
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/blocklet.js +1 -1
- package/blocklet.yml +1 -1
- package/build/asset-manifest.json +47 -47
- package/build/index.html +1 -1
- package/build/service-worker.js +1 -1
- package/build/static/js/1059.cd52ca65.chunk.js +1 -0
- package/build/static/js/{1371.384ff23d.chunk.js → 1371.c21feb0c.chunk.js} +1 -1
- package/build/static/js/1575.eebd3dd7.chunk.js +1 -0
- package/build/static/js/{1667.dc49a80d.chunk.js → 1667.34ff0c47.chunk.js} +1 -1
- package/build/static/js/1846.6e3f3612.chunk.js +1 -0
- package/build/static/js/2019.2d3a40ae.chunk.js +1 -0
- package/build/static/js/{2098.6c45c749.chunk.js → 2098.a38c7200.chunk.js} +1 -1
- package/build/static/js/{2183.ddd3936e.chunk.js → 2183.0f4144d9.chunk.js} +1 -1
- package/build/static/js/2264.f2eb6130.chunk.js +1 -0
- package/build/static/js/233.a4c19158.chunk.js +1 -0
- package/build/static/js/2611.b0ece77c.chunk.js +1 -0
- package/build/static/js/{2960.b8de1df9.chunk.js → 2960.ba10b91c.chunk.js} +1 -1
- package/build/static/js/{3389.83a58684.chunk.js → 3389.7f3e3f8a.chunk.js} +1 -1
- package/build/static/js/3803.df3cb936.chunk.js +1 -0
- package/build/static/js/3930.31250151.chunk.js +1 -0
- package/build/static/js/4423.0b4a3962.chunk.js +1 -0
- package/build/static/js/4465.d622f2c2.chunk.js +1 -0
- package/build/static/js/{4549.40b371f5.chunk.js → 4549.40465785.chunk.js} +1 -1
- package/build/static/js/{4550.6398038b.chunk.js → 4550.b2afea4a.chunk.js} +1 -1
- package/build/static/js/{4775.bc1f9bc3.chunk.js → 4775.6cffbd67.chunk.js} +1 -1
- package/build/static/js/4906.9b6bdc77.chunk.js +1 -0
- package/build/static/js/{5059.963d527c.chunk.js → 5059.af256250.chunk.js} +1 -1
- package/build/static/js/{5526.09906842.chunk.js → 5526.1aec6323.chunk.js} +2 -2
- package/build/static/js/{5672.c3cf88bf.chunk.js → 5672.12d96543.chunk.js} +1 -1
- package/build/static/js/5748.12e93155.chunk.js +1 -0
- package/build/static/js/5979.a7c1a387.chunk.js +1 -0
- package/build/static/js/{6230.a542a601.chunk.js → 6230.4c0db690.chunk.js} +1 -1
- package/build/static/js/6471.cc995637.chunk.js +1 -0
- package/build/static/js/6511.94eda291.chunk.js +1 -0
- package/build/static/js/670.cc95cf88.chunk.js +1 -0
- package/build/static/js/{6743.fc32eb89.chunk.js → 6743.f19f7583.chunk.js} +2 -2
- package/build/static/js/6906.244f97fe.chunk.js +1 -0
- package/build/static/js/{6931.fa818149.chunk.js → 6931.3b4c19d0.chunk.js} +1 -1
- package/build/static/js/6944.d847d48d.chunk.js +1 -0
- package/build/static/js/{7022.76c60285.chunk.js → 7022.7b668dae.chunk.js} +1 -1
- package/build/static/js/7534.58ee2840.chunk.js +1 -0
- package/build/static/js/8170.38d0b64e.chunk.js +1 -0
- package/build/static/js/{8219.bc63e11b.chunk.js → 8219.0110ce93.chunk.js} +1 -1
- package/build/static/js/8427.b510fa70.chunk.js +2 -0
- package/build/static/js/8590.f59207df.chunk.js +1 -0
- package/build/static/js/9041.62504f43.chunk.js +1 -0
- package/build/static/js/{2677.491ccc30.chunk.js → 9237.82494039.chunk.js} +2 -2
- package/build/static/js/9552.d10aac40.chunk.js +1 -0
- package/build/static/js/9586.efb66311.chunk.js +1 -0
- package/build/static/js/main.914d9380.js +2 -0
- package/build/static/js/{main.20a607fe.js.LICENSE.txt → main.914d9380.js.LICENSE.txt} +8 -5
- package/package.json +1 -1
- package/build/static/js/1059.446f653a.chunk.js +0 -1
- package/build/static/js/1575.9889e444.chunk.js +0 -1
- package/build/static/js/1846.8091d9b8.chunk.js +0 -1
- package/build/static/js/2019.c4e134a4.chunk.js +0 -1
- package/build/static/js/233.5cf94cae.chunk.js +0 -1
- package/build/static/js/2365.a3571172.chunk.js +0 -1
- package/build/static/js/2611.4eb6822b.chunk.js +0 -1
- package/build/static/js/3217.ca7a654b.chunk.js +0 -1
- package/build/static/js/3803.a22da8fb.chunk.js +0 -1
- package/build/static/js/3930.5079b881.chunk.js +0 -1
- package/build/static/js/4423.fc17ebc1.chunk.js +0 -1
- package/build/static/js/4465.88a081e5.chunk.js +0 -1
- package/build/static/js/4906.0bf02a4f.chunk.js +0 -1
- package/build/static/js/5748.d017d106.chunk.js +0 -1
- package/build/static/js/5979.73ce82e4.chunk.js +0 -1
- package/build/static/js/6511.6b799f59.chunk.js +0 -1
- package/build/static/js/670.6c2a6ee0.chunk.js +0 -1
- package/build/static/js/6906.6c830eaf.chunk.js +0 -1
- package/build/static/js/6944.ac06ea4a.chunk.js +0 -1
- package/build/static/js/7534.ea3b613f.chunk.js +0 -1
- package/build/static/js/8170.4ad15204.chunk.js +0 -1
- package/build/static/js/8427.9d00acc3.chunk.js +0 -2
- package/build/static/js/8590.f6c87639.chunk.js +0 -1
- package/build/static/js/9041.a5b13c5d.chunk.js +0 -1
- package/build/static/js/9552.be5312c3.chunk.js +0 -1
- package/build/static/js/9586.e21d0d28.chunk.js +0 -1
- package/build/static/js/main.20a607fe.js +0 -2
- /package/build/static/css/{2677.bceba133.chunk.css → 9237.bceba133.chunk.css} +0 -0
- /package/build/static/js/{5526.09906842.chunk.js.LICENSE.txt → 5526.1aec6323.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{6743.fc32eb89.chunk.js.LICENSE.txt → 6743.f19f7583.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{8427.9d00acc3.chunk.js.LICENSE.txt → 8427.b510fa70.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{2677.491ccc30.chunk.js.LICENSE.txt → 9237.82494039.chunk.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[3389],{13455:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(55898),s=n.n(o),a=n(36687),r=n(72333);const i="data:image/png;base64,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";var l=n(74094),c=n(96266);function d(e){let{blocklet:t,blockletMetaUrl:n}=e;const{did:o,logo:s}=t.meta;let d;return d=s?(0,c.jsx)(a.Z,{src:(0,l.aZ)({did:o,logoPath:s,baseUrl:new URL(n).origin}),fallback:i,width:64,size:"contain",placeholder:"application logo"}):(0,c.jsx)(r.Z,{did:o,size:64}),d}d.propTypes={blocklet:s().object.isRequired,blockletMetaUrl:s().string.isRequired}},13932:(e,t,n)=>{"use strict";n.d(t,{Z:()=>x});var o,s=n(71171),a=n(68420),r=n(77277),i=n(33518),l=n(39948),c=n(5057),d=n(11397),p=n.n(d),u=n(34937),h=n(96266);const m=p()("@abtnode/webapp:launch-blocklet:download-progress");const f=(e,t)=>{m("getDownloadBundleStep",e);return(e||[]).map((e=>{var n;const o=t("launchBlocklet.waiting.".concat("extracting"===e.status?"extractingComponent":"downloadingComponent"),{name:(null===(n=e.component)||void 0===n?void 0:n.title)||""}),s=e.total&&e.current?": ".concat(Math.floor(e.current/e.total*100)," %"):"";let a=e.name?": ".concat(e.name):"";return s||(a+="..."),"".concat(o).concat(s).concat(a)})).join("\n")};function x(e){let{appDid:t,visible:n}=e;const{t:o}=(0,a.PE)(),s=function(e){let{appDid:t}=e;const[n,o]=(0,c.useState)([]),s=(0,u.ZP)();return(0,c.useEffect)((()=>(s.on(r.BlockletEvents.downloadBundleProgress,(e=>{t&&t===(null===e||void 0===e?void 0:e.appDid)&&o((t=>{const n=[...t],o=n.findIndex((t=>{var n,o;return(null===(n=t.component)||void 0===n?void 0:n.did)===(null===(o=e.component)||void 0===o?void 0:o.did)}));return"completed"===e.status?-1!==o&&n.splice(o,1):-1!==o?n[o]=e:n.push(e),[...n]}))})),()=>{s.off(r.BlockletEvents.downloadBundleProgress)})),[t,s]),n}({appDid:t});return(0,h.jsx)(g,{style:{display:n?"block":"none"},children:f(s,o)})}x.defaultProps={appDid:"",visible:!0};const g=(0,i.Z)(l.Z)(o||(o=(0,s.Z)(["\n flex: 0 0 auto;\n white-space: pre;\n overflow-y: auto;\n overflow-x: auto;\n max-height: 10em;\n max-width: 500px;\n min-width: auto;\n @media (max-width: ","px) {\n max-width: 90%;\n max-height: 30vh;\n }\n"])),(e=>e.theme.breakpoints.values.md))},66436:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var o,s=n(71171),a=n(33518),r=n(96266);function i(e){let{children:t}=e;return(0,r.jsx)(l,{children:t})}const l=a.Z.div(o||(o=(0,s.Z)(["\n color: #1dc1c7;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n"])))},11476:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var o=n(5057),s=n(77277),a=n(31853),r=n(11397),i=n.n(r),l=n(34937),c=n(10155);const d=i()("@abtnode/webapp:launch-blocklet:runtime-state"),p=Object.keys(s.BlockletStatus),u=Object.values(s.BlockletStatus),h=Object.values(s.BlockletEvents).filter((e=>![s.BlockletEvents.purchaseChange,s.BlockletEvents.domainStatus].includes(e))),m=(e,t)=>{var n;return(null===e||void 0===e?void 0:e.appDid)===t||(null===e||void 0===e||null===(n=e.meta)||void 0===n?void 0:n.did)===t},f=8e3,x=2e3;function g(e){const t=(0,c.Z)(),n=(0,l.ZP)(),s=(0,o.useRef)(null),r=()=>{e&&!s.current&&(s.current=setInterval((()=>{e&&(d("polling blocklet state"),v())}),x))},[i,g]=(0,a.Z)({status:null,eventName:"",runtimeBlocklet:null,error:"",isGetBlocklet:!1,startPolling:r,stopPolling:()=>{s.current&&clearInterval(s.current)}}),v=()=>{t.getBlocklet({input:{did:e,attachRuntimeInfo:!0}}).then((e=>{g({status:e.blocklet?e.blocklet.status:"",eventName:"",runtimeBlocklet:e.blocklet,isGetBlocklet:!0})})).catch((e=>{console.error("get blocklet failed",e)}))};(0,o.useEffect)((()=>{let t=null;return e&&(d("schedule polling blocklet state"),t=setTimeout((()=>{r()}),f)),()=>{t&&clearInterval(t)}}),[e]),(0,o.useEffect)((()=>{e?null===i.status&&(d("polling blocklet state on start"),v()):g({status:"",eventName:"",runtimeBlocklet:null})}),[e,i.status]);const k=t=>n=>{if(m(n,e)){const e={status:null,eventName:t,runtimeBlocklet:n,isGetBlocklet:!1};if(n.error)d("blocklet error",{blockletEventName:t,error:n.error}),e.status="error",e.error=n.error;else{const o=p[u.indexOf(n.status)];d("blocklet event",{blockletEventName:t,status:o}),o&&(e.status=o)}g(e)}};for(const a of h)(0,o.useEffect)((()=>{const t=k(a);return e&&n.on(a,t),()=>{e&&n.off(a,t)}}),[e]);return i}},53389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Ot});var o,s=n(71171),a=n(5057),r=n(53616),i=n.n(r),l=n(85493),c=n(6352),d=n.n(c),p=n(21371),u=n(15715),h=n(33518),m=n(68420),f=n(63902),x=n(51703),g=n(12073),v=n(10866),k=n(4456),w=n(99641),y=n(4651),b=n(14491),j=n(25339),A=n(75793),Z=n(2660),E=n(39948),S=n(19577),C=n(2478),P=n(44067),B=n(28726),D=n(42876),T=n(55898),R=n(96266);function M(e){let{children:t,selected:n}=e;return(0,R.jsxs)(L,{children:[t,(0,R.jsx)(E.Z,{className:"selected-container ".concat(n?"selected":""),children:(0,R.jsx)(D.default,{className:"selected-icon"})})]})}const L=(0,h.Z)(E.Z)(o||(o=(0,s.Z)(["\n position: relative;\n\n .selected-container {\n display: flex !important;\n position: absolute;\n right: 0px;\n bottom: 0px;\n -webkit-box-pack: end;\n justify-content: flex-end;\n align-items: flex-end;\n width: 32px;\n height: 32px;\n border-radius: 0px 0px 8px;\n color: rgb(255, 255, 255);\n overflow: hidden;\n transition: all 0.4s ease 0s;\n\n &::after {\n position: absolute;\n z-index: 0;\n left: 60px;\n top: 60px;\n display: block;\n width: 0px;\n height: 0px;\n border-width: 16px;\n border-style: solid;\n border-color: transparent #1dc1c7 #1dc1c7 transparent;\n transition: all 0.1s ease 0s;\n content: '';\n }\n\n .selected-icon {\n visibility: hidden;\n width: 60%;\n height: 60%;\n position: relative;\n z-index: 2;\n margin: 0px 1px 1px 0px;\n font-size: 16px;\n transition: all 0.2s ease 0s;\n }\n }\n\n .selected-container.selected {\n &::after {\n left: 0px;\n top: 0px;\n }\n\n .selected-icon {\n visibility: visible;\n }\n }\n"])));M.propTypes={children:T.node.isRequired,selected:T.bool},M.defaultProps={selected:!1};var N=n(67654),F=n(65873),Q=n(94639);const O=(0,a.createContext)({}),{Provider:U,Consumer:G}=O;function I(e){let{children:t}=e;const{t:n}=(0,m.PE)(),[o,s]=(0,N.Z)("spaceGatewaysForRestore",[{name:"Prod DID Spaces",url:"https://www.didspaces.com/app",protected:!0},{name:"Staging DID Spaces",url:"https://spaces.staging.arcblock.io/app",protected:!0}]),[r,i]=(0,N.Z)("selectedSpaceGatewayForRestore",o.find((e=>"https://www.didspaces.com/app"===e.url)));return(0,a.useEffect)((()=>{!async function(){const e=await Promise.all(o.map((async e=>{var t;const{data:n}=await Q.Z.get(d()(e.url,"/__blocklet__.js?type=json"),{timeout:5e3}).catch((e=>(console.error(e),{data:{}}))),o=null!==(t=n.appName)&&void 0!==t?t:e.name;return(0,F.merge)(e,{name:o})})));s(e)}()}),[]),(0,R.jsx)(U,{value:{spaceGateways:o,selectedSpaceGateway:r,addSpaceGateway:e=>{const t=o.find((t=>e.url===t.url));if(t)throw new Error(n("storage.spaces.gateway.add.duplicate",{name:t.name}));s((()=>[...o,(0,F.cloneDeep)(e)])),i(e)},deleteSpaceGateway:e=>{if(e.url===r.url)throw new Error(n("storage.spaces.gateway.delete.failedForSelected"));s((()=>o.filter((t=>t.url!==e.url))))},handleSelectSpaceGateway:e=>{i(e)}},children:t})}I.defaultProps={};var J=n(92877),z=n(11750),H=n(83580),X=n(94552),K=n(67680),Y=n(19778),W=n(47595),_=n(60939),V=n(86229),q=n(72443),$=n.n(q);function ee(e){let{spaceGateway:t,onDeleteSpaceGateway:n}=e;const{t:o}=(0,m.PE)(),[s,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(!1),c=(e,t)=>{null===e||void 0===e||e.stopPropagation(),r(t)};return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(K.Z,{size:"small",onClick:e=>c(e,!0),children:(0,R.jsx)(W.default,{})}),(0,R.jsx)(_.Z,{title:o("common.delConfirmDescription",{data:"".concat(null===t||void 0===t?void 0:t.name)}),open:s,confirmButton:{text:o("common.confirm"),props:{variant:"contained",color:"error",loading:i}},cancelButton:{text:o("common.cancel"),props:{variant:"contained",color:"primary"}},onConfirm:async e=>{try{null===e||void 0===e||e.stopPropagation(),l(!0),await n(t),r(!1)}catch(s){console.error(s),V.Z.error("".concat(o("storage.spaces.gateway.delete.failed"),": ").concat($()(s)))}finally{l(!1)}},onCancel:e=>c(e,!1)})]})}ee.defaultProps={onDeleteSpaceGateway:()=>{}};const te=ee;var ne=n(95335);const oe=function(){const e=(0,ne.Z)(),t=(0,u.Z)(e.breakpoints.down("md"));return{minWidth:t?300:e.breakpoints.values.sm,isMobile:t}};var se,ae=n(74094);const re=(0,J.Z)((()=>({menuName:{display:"flex",flex:1,flexDirection:"column",paddingRight:"24px","& span":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})));function ie(e){let{spaceGateway:t,selected:n,onDeleteSpaceGateway:o,onSelectGateway:s,...a}=e;const r=re(),{t:i}=(0,m.PE)(),{isMobile:l}=oe();return(0,R.jsxs)(le,{...a,children:[(0,R.jsx)(E.Z,{display:"inline-flex",marginRight:"8px",alignItems:"center",children:(0,R.jsx)("img",{alt:t.name,src:d()(t.url,"favicon.ico"),width:"48px",height:"48px"})}),(0,R.jsxs)(E.Z,{className:r.menuName,onClick:s,children:[(0,R.jsxs)(z.Z,{component:"span",variant:"subtitle1",style:{fontWeight:"400"},children:[null===t||void 0===t?void 0:t.name," ",n&&(0,R.jsx)(Y.Z,{color:"primary",style:{marginLeft:"8px"},children:i("common.selected")})]}),(0,R.jsx)(z.Z,{className:"url",component:"span",variant:"inherit",children:"".concat(l?(0,ae.aS)(null===t||void 0===t?void 0:t.url,38):null===t||void 0===t?void 0:t.url)})]}),(0,R.jsxs)(H.Z,{children:[(0,R.jsx)(K.Z,{onClick:e=>{e.stopPropagation(),window.open(t.url)},size:"small",children:(0,R.jsx)(X.Z,{})}),!0!==(null===t||void 0===t?void 0:t.protected)&&(0,R.jsx)(te,{spaceGateway:t,onDeleteSpaceGateway:async()=>{await o(t)}})]})]})}const le=(0,h.Z)(E.Z)(se||(se=(0,s.Z)(["\n display: flex;\n"])));ie.defaultProps={onDeleteSpaceGateway:()=>{},selected:!1,onSelectGateway:()=>{}};var ce=n(13128),de=n(44846),pe=n(47020),ue=n(55372),he=n(88574),me=n(84584);function fe(e){let{onAddGateway:t,...n}=e;const{t:o,locale:s}=(0,m.PE)(),[r,i]=(0,a.useState)(""),[l,c]=(0,a.useState)(!1),[p,u]=(0,a.useState)(!1),[h,f]=(0,a.useState)(""),x=async()=>{try{c(!0);const e=await(0,me.Z3)(r,{withSearchParams:!1});if(!await(0,me.w2)(e))throw new Error(o("storage.spaces.gateway.add.invalidUrl"));const{data:n}=await Q.Z.get(d()(new URL(e).origin,"/__blocklet__.js?type=json")),s={name:n.appName,url:e,protected:!1};await t(s),V.Z.success(o("storage.spaces.addedWithName",{name:s.name})),u(!1)}catch(e){f("".concat(o("storage.spaces.gateway.add.failed",s),": ").concat($()(e)))}finally{c(!1)}};return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(B.Z,{size:"middle",color:"primary",variant:"outlined",onClick:()=>u(!0),...n,children:o("storage.spaces.gateway.add.title")}),(0,R.jsxs)(ce.ZP,{title:o("storage.spaces.gateway.add.title"),fullWidth:!0,maxWidth:"md",open:p,onClose:()=>u(!1),PaperProps:{style:{minHeight:"auto"}},actions:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(B.Z,{onClick:e=>{e.stopPropagation(),u(!1)},color:"inherit",children:o("common.cancel")}),(0,R.jsxs)(B.Z,{onClick:e=>{e.stopPropagation(),x()},color:"primary","data-cy":"install-blocklet-next-step",disabled:l||!r,variant:"contained",autoFocus:!0,children:[l&&(0,R.jsx)(de.Z,{size:16}),o("common.confirm")]})]}),children:[(0,R.jsx)("div",{style:{paddingTop:12,overflowY:"hidden"},children:(0,R.jsx)(ue.Z,{component:"div",children:(0,R.jsx)(z.Z,{component:"div",children:(0,R.jsx)(pe.Z,{label:o("storage.spaces.gateway.add.label"),autoComplete:"off",variant:"outlined",name:"url",fullWidth:!0,value:r,onChange:e=>{f(null),i(e.target.value)},disabled:l,onKeyPress:async e=>{"Enter"===e.key&&(e.preventDefault(),await x())},autoFocus:!0})})})}),!!h&&(0,R.jsx)(he.Z,{type:"error",style:{width:"100%"},children:h})]})]})}fe.defaultProps={onAddGateway:()=>{}};const xe=fe;function ge(e){let{onConnect:t,...n}=e;const{spaceGateways:o,selectedSpaceGateway:s,handleSelectSpaceGateway:r,addSpaceGateway:i,deleteSpaceGateway:l}=(0,a.useContext)(O),{t:c}=(0,m.PE)(),d=async e=>{await l(e)};return(0,R.jsxs)(E.Z,{...n,children:[(0,R.jsx)(S.Z,{children:o.map((e=>{const t=(null===e||void 0===e?void 0:e.url)===s.url;return(0,R.jsx)(M,{selected:t,children:(0,R.jsx)(C.ZP,{button:!0,selected:t,"data-cy":"get-space-endpoint-for-restore",children:(0,R.jsx)(P.Z,{children:(0,R.jsx)(ie,{spaceGateway:e,onDeleteSpaceGateway:d,selected:t,onSelectGateway:()=>(e=>{r(e)})(e)})})},e.url)})}))}),(0,R.jsxs)(E.Z,{display:"flex",marginTop:"16px",justifyContent:"center",alignItems:"center",children:[(0,R.jsx)(xe,{onAddGateway:async e=>{await i(e)}}),(0,R.jsx)(B.Z,{sx:{marginLeft:"16px"},size:"middle",variant:"contained",onClick:()=>{t(s)},children:c("storage.spaces.connect.now")})]})]})}ge.defaultProps={onConnect:()=>{}};const ve=ge;var ke;const we=(0,h.Z)("div")(ke||(ke=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"])));const ye=function(){const{info:e}=(0,A.h6)(),{t:t,locale:n}=(0,a.useContext)(m.RD),o=(0,a.useMemo)((()=>e?(0,y.RU)(e):""),[e]);return(0,R.jsx)(I,{children:(0,R.jsxs)(we,{children:[(0,R.jsx)(Z.Z,{title:t("blocklet.restoreFromSpaces.connect.title"),subTitle:t("blocklet.restoreFromSpaces.connect.subTitle"),onClickBack:()=>window.history.back()}),(0,R.jsx)(E.Z,{display:"flex",justifyContent:"center",children:(0,R.jsx)(ve,{sx:{marginTop:"64px",marginBottom:"32px",width:"720px"},onConnect:e=>{const t=new URL(d()(e.url,"restore")),s=d()(o,"blocklets/restore/verify-ownership");t.searchParams.set("redirectUrl",s),t.searchParams.set("locale",n),window.location.href=t.toString()}})})]})})};var be,je=n(15849),Ae=n(73545),Ze=n(22425),Ee=n(17450),Se=n(38898),Ce=n(39463),Pe=n(70461),Be=n(31853),De=n(13455),Te=n(13932),Re=n(31910),Me=n(93040);const Le=(0,h.Z)("div")(be||(be=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),Ne="verify-app-ownership-spaces";const Fe=function(){const{session:e}=(0,Ae.T)(),[t]=(0,je.useSearchParams)(),{t:n}=(0,m.PE)(),{api:o,info:s}=(0,A.h6)(),{api:r}=(0,Ae.T)(),{meta:i}=(0,Re.J_)(),c=(0,l.useNavigate)(),p=(0,a.useMemo)((()=>s?(0,y.RU)(s):""),[s]),[u,h]=(0,Be.Z)({isRestoring:!1,isComplete:!1,isOverwrite:!1,shouldReconnect:!1,exists:!1,accessUrl:"",isConnectOpen:!1,isConfirmOpen:!1,connectData:{action:"",checkFn:()=>{},extraParams:{}},connectMessages:{}}),f=t.get("launchType"),x=t.get("nftId"),g=t.get("chainHost"),v=t.get("from"),k=t.get("blocklet_meta_url"),w=t.get("launcherSessionId")||"",b=t.get("launcherUrl")||"",j=(e=>{const t=e.split("/").filter(Boolean);return t[t.length-2]})(i.spaceEndpoint),S=(0,Ce.getServerAuthMethod)(s,f,w,e.user),C=async(t,n)=>{const o=Array.isArray(t)?t.find((e=>!!e.sessionToken)):t;null!==o&&void 0!==o&&o.sessionToken&&((0,ae.ZB)(n(o.sessionToken)),await e.refresh()),h({isConnectOpen:!1}),setTimeout((()=>{const e=new URLSearchParams({appDid:j});[{name:"launchType",value:f},{name:"nftId",value:x},{name:"from",value:v},{name:"blocklet_meta_url",value:k},{name:"chainHost",value:g}].forEach((t=>{let{name:n,value:o}=t;o&&e.set(n,o)})),c("/blocklets/restore/restore-blocklet?".concat(e.toString()))}),0)},P=async function(){var t,s,a;let l=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!l){if(u.shouldReconnect)return void(window.location.href=d()(p,"blocklets/restore/connect-space"));if(e.user){const e=await o.getBlocklet({input:{did:j,attachRuntimeInfo:!0}});if(e.blocklet){const t=await(0,Me.DB)(e.blocklet);if(t){const n=new URL(t);"running"!==e.blocklet.status&&n.searchParams.set("__start__","1"),h({shouldReconnect:!0,exists:!0,accessUrl:n.href})}return}}}if("nft"===S){var c,m,v;const e=new URL(window.location.href);e.pathname=d()(null!==(c=null===(m=window)||void 0===m||null===(v=m.env)||void 0===v?void 0:v.apiPrefix)&&void 0!==c?c:"/","/api/did/".concat(Ne,"/token")),e.searchParams.set("appDid",j),e.searchParams.set("endpoint",i.spaceEndpoint),e.searchParams.set("referrer",window.location.href),e.searchParams.set("nftId",x),e.searchParams.set("appPid",i.did);const t={autoConnect:!1,launchType:f,nftId:x};g&&(e.searchParams.set("chainHost",g),t.chainHost=g),l&&e.searchParams.set("overwrite","1");const{data:o}=await r.get(e.href);return o.error?void V.Z.error(o.error):(t.nw=o.url,void h({isConnectOpen:!0,connectData:{action:"verify-restore-by-nft",extraParams:t},connectMessages:{title:n("blocklet.restoreFromSpaces.nftAuthDialog.title"),scan:n("blocklet.restoreFromSpaces.nftAuthDialog.scan"),confirm:n("blocklet.restoreFromSpaces.nftAuthDialog.confirm"),success:n("blocklet.restoreFromSpaces.nftAuthDialog.success")}}))}if("launcher"===S){const{launcherSession:e,error:t}=await o.getLauncherSession({input:{launcherUrl:b,launcherSessionId:w}});return void(e?h({isConnectOpen:!0,connectData:{action:Ne,extraParams:{appDid:j,appPid:i.did,endpoint:i.spaceEndpoint,referrer:window.location.href,restoreFrom:"spaces",overwrite:l?"1":void 0,launcherUrl:b,launcherSessionId:w,chainHost:g}},connectMessages:{title:n("blocklet.restoreBlocklet.verify.title"),scan:n("blocklet.restoreBlocklet.verify.scan"),confirm:n("blocklet.restoreBlocklet.verify.confirm"),success:n("blocklet.restoreBlocklet.verify.success")}}):V.Z.error("Launch session invalid: ".concat(t)))}if("session"===S)return void h({isConnectOpen:!0,connectData:{action:Ne,extraParams:{appDid:j,appPid:i.did,endpoint:i.spaceEndpoint,referrer:window.location.href,overwrite:l?"1":void 0,restoreFrom:"spaces"}},connectMessages:{title:n("blocklet.restoreBlocklet.verify.title"),scan:n("blocklet.restoreBlocklet.verify.scan"),confirm:n("blocklet.restoreBlocklet.verify.confirm"),success:n("blocklet.restoreBlocklet.verify.success")}});const k=new URL(window.location.href);k.pathname=d()(null!==(t=null===(s=window)||void 0===s||null===(a=s.env)||void 0===a?void 0:a.apiPrefix)&&void 0!==t?t:"/","/api/did/".concat(Ne,"/token")),k.searchParams.set("appDid",j),k.searchParams.set("appPid",i.did),k.searchParams.set("endpoint",i.spaceEndpoint),k.searchParams.set("referrer",window.location.href),k.searchParams.set("restoreFrom","spaces");const{data:y}=await r.get(k.href);e.login(C,{nw:y.url,openMode:"popup"})};return(0,a.useEffect)((()=>{P()}),[]),(0,R.jsxs)(Le,{children:[(0,R.jsx)(Z.Z,{title:n("blocklet.restoreBlocklet.verify.title"),subTitle:n("blocklet.restoreBlocklet.verify.subTitle"),onClickBack:()=>window.history.back()}),(0,R.jsxs)(E.Z,{textAlign:"center",mt:6,children:[(0,R.jsx)(De.Z,{blocklet:{meta:i},blockletMetaUrl:k}),(0,R.jsxs)(E.Z,{mt:2,mb:2,children:[(0,R.jsx)(z.Z,{variant:"body2",children:i.title}),(0,R.jsx)(Ee.Z,{did:j})]}),u.exists&&u.accessUrl&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(z.Z,{component:"p",variant:"body1",gutterBottom:!0,sx:{color:"orange"},children:n("blocklet.restoreBlocklet.verify.exists")}),(0,R.jsxs)(z.Z,{component:"div",sx:{marginTop:"32px"},children:[u.accessUrl&&(0,R.jsx)(B.Z,{variant:"contained",component:Se.Z,href:u.accessUrl,sx:{width:"160px",height:"100%"},children:n("blocklet.restoreBlocklet.verify.open")}),(0,R.jsx)(B.Z,{variant:"contained",color:"error",onClick:()=>{h({isConfirmOpen:!0})},sx:{width:"160px",height:"100%",marginLeft:"32px"},children:n("blocklet.restoreBlocklet.verify.overwrite")})]})]}),!u.exists&&(0,R.jsx)(B.Z,{variant:"contained",disabled:u.isConnectOpen,onClick:P,sx:{width:"180px",height:"100%"},children:n("blocklet.restoreBlocklet.verify.".concat(u.shouldReconnect?"reconnect":"verify"))})]}),u.connectData.isConnectOpen&&(0,R.jsx)(Te.Z,{appDid:j,visible:!1}),(0,R.jsx)(Ze.Z,{popup:!0,open:u.isConnectOpen,forceConnected:!1,saveConnect:!1,action:u.connectData.action,checkFn:r.get,checkTimeout:3e5,webWalletUrl:(0,ae.yP)(s),onSuccess:C,extraParams:u.connectData.extraParams,messages:u.connectMessages,onClose:()=>{h({isConnectOpen:!1})}}),u.isConfirmOpen&&(0,R.jsx)(Pe.Z,{color:"error",title:n("blocklet.restoreBlocklet.overwrite.title"),description:n("blocklet.restoreBlocklet.overwrite.description"),confirm:n("common.confirm"),onCancel:()=>{h({isConfirmOpen:!1})},onConfirm:()=>{h({isConfirmOpen:!1,isOverwrite:!0}),P(!0)}})]})};var Qe,Oe=n(55309);const Ue=(0,h.Z)(Oe.Z)(Qe||(Qe=(0,s.Z)(["\n && .result-footer {\n height: 120px;\n > div {\n flex-wrap: wrap;\n }\n }\n"])));var Ge,Ie,Je,ze=n(35266),He=n(77277),Xe=n(77429),Ke=n(75506),Ye=n.n(Ke),We=n(50482),_e=n.n(We),Ve=n(11397),qe=n.n(Ve),$e=n(11476),et=n(34937),tt=n(66436);const nt=qe()("@abtnode/webapp:restore-blocklet:step-install"),ot=(0,h.Z)("div")(Ge||(Ge=(0,s.Z)(["\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),st=h.Z.div(Ie||(Ie=(0,s.Z)(["\n line-height: 1.4em;\n .error-desc {\n margin-top: 8px;\n word-wrap: break-word;\n color: ",";\n }\n"])),(e=>e.theme.palette.grey[500])),at={[He.RESTORE_PROGRESS_STATUS.waiting]:0,[He.RESTORE_PROGRESS_STATUS.start]:1,[He.RESTORE_PROGRESS_STATUS.importData]:2,[He.RESTORE_PROGRESS_STATUS.downloading]:3,[He.RESTORE_PROGRESS_STATUS.importDataSuccess]:4,[He.RESTORE_PROGRESS_STATUS.installing]:5,[He.RESTORE_PROGRESS_STATUS.completed]:10};const rt=(0,h.Z)(E.Z)(Je||(Je=(0,s.Z)(["\n padding-top: 24px;\n"]))),it=function(){var e,t,n,o;const s=new URL(window.location.href),r=s.searchParams.get("appDid"),i=s.searchParams.get("launchType"),l=s.searchParams.get("nftId"),c=s.searchParams.get("fromLauncher"),d=s.searchParams.get("from"),p=s.searchParams.get("chainHost"),u=function(e){let{appDid:t}=e;const[n,o]=(0,a.useState)(He.RESTORE_PROGRESS_STATUS.waiting),s=(0,et.ZP)();return s.connect(),(0,a.useEffect)((()=>(s.on(He.BlockletEvents.restoreProgress,(e=>{t===(null===e||void 0===e?void 0:e.appDid)&&o(e)})),()=>{s.off(He.BlockletEvents.restoreProgress)})),[t,s]),n}({appDid:r}),[h,f]=(0,a.useState)(0),x=(0,a.useRef)(null),{meta:g}=(0,Re.J_)(),{t:v}=(0,m.PE)(),{api:k,info:w}=(0,A.h6)(),[b,j]=(0,Be.Z)({nextAccessUrl:"",installError:null}),E=(0,$e.Z)(r),{status:S,eventName:C}=E,P=()=>{f(12),x.current&&(clearTimeout(x.current),x.current=null),x.current=setTimeout((()=>{k.getBlocklet({input:{did:r,attachRuntimeInfo:!0}}).then((e=>{e.blocklet&&M(e.blocklet)}))}),500)},D=()=>{var e,t;null!==E&&void 0!==E&&null!==(e=E.runtimeBlocklet)&&void 0!==e&&null!==(t=e.settings)&&void 0!==t&&t.initialized?f(11):P()},T=[v("blocklet.restoreFromSpaces.progress.waiting"),v("blocklet.restoreFromSpaces.progress.restoring"),v("blocklet.restoreFromSpaces.progress.importData"),v("blocklet.restoreFromSpaces.progress.downloading",{progress:"".concat(null!==(e=null===u||void 0===u||null===(t=u.data)||void 0===t?void 0:t.completed)&&void 0!==e?e:100,"/").concat(null!==(n=null===u||void 0===u||null===(o=u.data)||void 0===o?void 0:o.total)&&void 0!==n?n:100)}),v("blocklet.restoreFromSpaces.progress.importSuccess"),v("launchBlocklet.waiting.downloading"),v("launchBlocklet.waiting.verifying"),v("launchBlocklet.waiting.downloading"),v("launchBlocklet.waiting.extracting"),v("upgrading"===S?"common.upgrading":"launchBlocklet.waiting.installing"),v("launchBlocklet.waiting.installed"),v("launchBlocklet.waiting.starting"),v("launchBlocklet.waiting.done")];(0,a.useEffect)((()=>{if(u.status===He.RESTORE_PROGRESS_STATUS.error){const e={message:u.message,name:"restoreFailed",action:"retryRestore"};return _e()(e,b.installError)||V.Z.error($()(e)),void j({installError:e})}f(at[u.status]||0)}),[u.status]),(0,a.useEffect)((()=>{if("serverless"!==i||C!==He.BlockletEvents.nftConsumed)switch(S){case"waiting":f(6);break;case"downloading":f(7);break;case"installing":case"upgrading":f(8);break;case"installed":if("serverless"===i&&!(0,Me.MZ)(E))break;D();break;case"starting":f(11);break;case"running":f(12),P();break;case"stopped":P();break;case"corrupted":case"error":{var e;null===E||void 0===E||E.stopPolling();const t={message:null===E||void 0===E||null===(e=E.error)||void 0===e?void 0:e.message,name:null===E||void 0===E?void 0:E.eventName,action:"retryRestore"},n=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!_e()(t,b.installError)&&null!==E&&void 0!==E&&null!==(e=E.error)&&void 0!==e&&e.message&&V.Z.error($()(E.error)),j({installError:t,...n})};k.getBlocklet({input:{did:r,attachRuntimeInfo:!0}}).then((e=>{var o;let{blocklet:s}=e;null!==s&&void 0!==s&&null!==(o=s.settings)&&void 0!==o&&o.initialized&&(t.action="retryStart"),n()})).catch((()=>{n()}))}}else D()}),[S,C,E]);const M=async e=>{const t=await(0,Me.DB)(e);if(Ye()(t))return;const n=new URL(t);n.searchParams.set("serverUrl",(0,y.RU)(w)),"running"!==e.status&&n.searchParams.set("__start__","1"),c&&n.searchParams.set("fromLauncher",c),d&&n.searchParams.set("from",d),i&&n.searchParams.set("launchType",i),l&&n.searchParams.set("nftId",l),p&&n.searchParams.set("chainHost",p),null===E||void 0===E||E.stopPolling(),j({nextAccessUrl:n.href,status:e.status,resultMessage:"running"===e.status?{variant:"success",title:v("blocklet.restoreFromSpaces.restore.completeTitle"),subTitle:"",footer:v("common.open")}:{variant:"info",title:v("blocklet.restoreFromSpaces.restore.installedTitle"),subTitle:v("blocklet.restoreFromSpaces.restore.installedSubTitle"),footer:v("common.configuration")}})};if(b.installError){const e={retryRestore:(0,R.jsx)(B.Z,{variant:"contained",className:"bottom-button","data-cy":"retry-install",component:je.Link,to:"/blocklets/restore/verify-ownership".concat(window.location.search),children:v("common.retry")}),retryStart:(0,R.jsx)(B.Z,{variant:"contained",className:"bottom-button","data-cy":"retry-start",onClick:()=>(async()=>{j({installError:null,nextAccessUrl:""}),await k.startBlocklet({input:{did:r}}),null===E||void 0===E||E.startPolling()})(),children:v("common.retry")})},t=b.installError.name?b.installError.name.replace("blocklet.",""):"installFailed";return(0,R.jsx)(Ue,{variant:"error",title:null===g||void 0===g?void 0:g.title,subTitle:(0,R.jsxs)(st,{children:[(0,R.jsx)("div",{children:v("launchBlocklet.error.".concat(t))}),b.installError.message&&(0,R.jsx)("div",{className:"error-desc",children:v("common.errorMessage")+b.installError.message})]}),footer:(0,R.jsxs)(rt,{children:[e[b.installError.action],"serverless"===i&&(0,R.jsx)("div",{style:{marginTop:"24px"},dangerouslySetInnerHTML:{__html:v("blocklet.restoreFromSpaces.restore.support",{communityLink:"https://community.arcblock.io/",supportEmail:"launcher@arcblock.io"})}})]})})}const L=!!b.nextAccessUrl;return nt("render",{status:S,eventName:C,launchType:i,runtimeBlockletState:E,state:b}),(0,R.jsxs)(ot,{children:[!L&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Z.Z,{title:v("blocklet.restoreBlocklet.restore.title"),subTitle:v("blocklet.restoreFromSpaces.restore.subTitle")}),(0,R.jsxs)(tt.Z,{children:[(0,R.jsx)(ze.Z,{increaseSpeed:.3,messageLoop:!1,message:(0,R.jsx)(Xe.Z,{steps:T,stepIndex:h,autoGrowth:10===h?1e3:4e3})}),[5,7,8].includes(h)&&(0,R.jsx)(Te.Z,{appDid:r})]})]}),L&&(0,R.jsx)(Ue,{variant:b.resultMessage.variant,title:b.resultMessage.title,subTitle:b.resultMessage.subTitle,footer:(0,R.jsx)(rt,{children:(0,R.jsx)(B.Z,{variant:"contained",style:{width:"200px"},component:Se.Z,href:b.nextAccessUrl,children:b.resultMessage.footer})})})]})};const lt=function(){return(0,R.jsx)(it,{})};var ct,dt,pt,ut=n(23484);function ht(){const e=(0,u.Z)((e=>e.breakpoints.down("md"))),{t:t,locale:n}=(0,m.PE)(),{info:o}=(0,A.h6)(),s=(0,ut.Z)(),{meta:r}=(0,Re.J_)(),c=(0,a.useMemo)((()=>o?(0,y.RU)(o):""),[o]),h=(0,b.yP)(o),Z=d()((0,b.Y5)(),"/blocklets/restore"),E=[{key:"verify-ownership",name:t("blocklet.restoreBlocklet.verify.title"),path:d()(Z,"verify-ownership")},{key:"restore-blocklet",name:t("blocklet.restoreFromSpaces.restore.title"),path:d()(Z,"restore-blocklet")}];let S=[];S="launcher"===i()(s.get("from"))?[{key:"purchase-space",name:t("launchBlocklet.steps.purchaseSpace")},{key:"prepare-space",name:t("launchBlocklet.steps.prepareSpace")},...E]:[{key:"connect-space",name:t("blocklet.restoreFromSpaces.connect.title"),path:d()(Z,"connect-space")},{key:"select-blocklet",name:t("blocklet.restoreFromSpaces.selectBlocklet.title")},...E];const C=(0,R.jsx)(xt,{className:"".concat(c?"logo-can-click":""),children:(0,R.jsx)(w.Z,{onClick:()=>{c&&window.open(c)},logo:e?(0,R.jsx)(v.Z,{width:"32",height:"32"}):(0,R.jsx)(k.Z,{width:"128",height:"48"})})});return(0,R.jsx)(x.W,{steps:S,children:(0,R.jsx)(f.Z,{blockletMeta:r,locale:n,useOfSkeleton:!1,navLogo:C,navSubTitle:t("blocklet.restoreFromSpaces.navSubTitle"),loading:!1,headerEndAddons:(0,R.jsx)(g.Z,{webWalletUrl:h,SessionContext:j.B3}),pcWidth:"80%",style:{height:"100%"},logoUrl:null===r||void 0===r?void 0:r.logo,children:(0,R.jsxs)(ft,{children:[(0,R.jsx)(p.Global,{styles:mt}),(0,R.jsxs)(l.Routes,{children:[(0,R.jsx)(l.Route,{path:"connect-space",element:(0,R.jsx)(ye,{})}),(0,R.jsx)(l.Route,{path:"verify-ownership",element:(0,R.jsx)(Fe,{})}),(0,R.jsx)(l.Route,{path:"restore-blocklet",element:(0,R.jsx)(lt,{})}),(0,R.jsx)(l.Route,{path:"*",element:(0,R.jsx)(l.Navigate,{to:"connect-space",replace:!0})})]})]})})})}const mt=(0,p.css)(ct||(ct=(0,s.Z)(["\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n"]))),ft=h.Z.div(dt||(dt=(0,s.Z)(["\n "," {\n padding-top: 34px;\n }\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n .bottom-button {\n min-width: 200px;\n }\n"])),(e=>e.theme.breakpoints.up("md"))),xt=h.Z.div(pt||(pt=(0,s.Z)(["\n margin-top: -1px;\n &.logo-can-click {\n cursor: pointer;\n }\n"])));var gt,vt,kt,wt=n(83294),yt=n(72333),bt=n(25710);function jt(e){let{onSelect:t}=e;const{api:n}=(0,A.h6)(),{t:o,locale:s}=(0,m.PE)(),[r,i]=(0,a.useState)(!1),[c,d]=(0,a.useState)([]),[p,u]=(0,a.useState)(""),[h,f]=(0,a.useState)(null),x=(0,l.useNavigate)();(0,a.useEffect)((()=>{(async()=>{try{i(!0),f(!1);const{getBlocklets:{blocklets:e},getBlockletsFromBackup:{backups:t}}=await n.doBatchQuery({getBlocklets:{input:{}},getBlockletsFromBackup:{input:{}}});d((t||[]).filter((t=>!(e||[]).some((e=>{var n;return t.appPid===(null===(n=e.meta)||void 0===n?void 0:n.did)})))).sort(((e,t)=>t.createdAt-e.createdAt)).slice(0,200)),i(!1)}catch(e){i(!1),f(e.message)}})()}),[]);let g=null;return g=h?(0,R.jsx)(he.Z,{type:"error",style:{width:"100%",marginTop:8},children:h}):r?(0,R.jsx)(de.Z,{size:16}):c.length?(0,R.jsx)(Zt,{children:c.map((e=>(0,R.jsxs)(Et,{className:"middle-font-size space ".concat(p===e.appDid?"selected":""),onClick:()=>(e=>{u(e.appDid)})(e),children:[(0,R.jsxs)("div",{className:"left",children:[(0,R.jsx)("div",{className:"header",children:(0,R.jsx)(E.Z,{sx:{width:40,height:40},children:(0,R.jsx)(yt.Z,{did:e.appDid,size:40})})}),(0,R.jsxs)("div",{className:"body",children:[(0,R.jsx)(z.Z,{className:"text",children:e.name}),(0,R.jsx)(z.Z,{className:"text middle-font-size",children:(0,R.jsx)(Ee.Z,{responsive:!1,compact:!0,inline:!0,copyable:!1,size:12,did:e.appDid})})]}),(0,R.jsxs)(E.Z,{color:"text.secondary",className:"footer small-font-size",children:[o("blocklet.restoreFromServer.backupIn")," ",(0,b.B2)(e.createdAt,s)]})]}),(0,R.jsx)("div",{className:"right",children:(0,R.jsx)("div",{className:"more",children:(0,R.jsx)(K.Z,{onClick:()=>{},className:"more-btn",size:"large","aria-label":"more functions",children:(0,R.jsx)(wt.Z,{color:"disabled"})})})}),(0,R.jsx)("div",{className:"selected-container",children:(0,R.jsx)(D.default,{className:"selected-icon"})})]},e.appDid)))}):(0,R.jsx)(bt.Z,{children:o("common.empty")}),(0,R.jsxs)(At,{style:{width:"100%"},children:[(0,R.jsx)(Z.Z,{title:o("blocklet.restoreFromServer.selectTitle"),subTitle:o("blocklet.restoreFromServer.description")}),(0,R.jsx)(E.Z,{mt:4,mx:3,className:"main-body",children:g}),(0,R.jsx)(E.Z,{className:"main-footer",display:"flex",justifyContent:"center",children:(0,R.jsx)(B.Z,{sx:{width:"180px",height:"100%"},onClick:e=>{e.stopPropagation(),(()=>{const e=c.find((e=>e.appDid===p));t({did:e.appDid,name:e.appDid,title:e.name});const n=new URL(window.location.href);n.searchParams.set("appDid",e.appDid),n.searchParams.set("appName",e.name),x("/blocklets/restore/verify-ownership".concat(n.search))})()},color:"primary","data-cy":"install-blocklet-next-step",variant:"contained",disabled:r||h||!p,children:o("common.restore")})})]})}jt.defaultProps={onSelect:()=>{}};const At=(0,h.Z)(E.Z)(gt||(gt=(0,s.Z)(["\n .main-body {\n height: 50vh;\n "," {\n height: 80vh;\n }\n\n overflow: auto;\n }\n .main-footer {\n padding-top: 24px;\n padding-bottom: 24px;\n "," {\n position: fixed;\n bottom: 16px;\n width: 100%;\n padding-bottom: 0;\n }\n }\n"])),(e=>e.theme.breakpoints.down("md")),(e=>e.theme.breakpoints.down("md"))),Zt=(0,h.Z)(E.Z)(vt||(vt=(0,s.Z)(["\n display: block;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n max-width: 1000px;\n margin: 0 auto;\n\n .space {\n display: flex;\n margin: 8px auto;\n\n .selected-container {\n position: absolute;\n right: 0px;\n bottom: 0px;\n display: flex;\n -webkit-box-pack: end;\n justify-content: flex-end;\n align-items: flex-end;\n width: 30px;\n height: 30px;\n border-radius: 0px 0px 7px;\n color: rgb(255, 255, 255);\n overflow: hidden;\n transition: all 0.3s ease 0s;\n\n &::after {\n position: absolute;\n z-index: 0;\n left: 30px;\n top: 30px;\n display: block;\n width: 0px;\n height: 0px;\n border-width: 15px;\n border-style: solid;\n /* border-color: transparent rgb(29, 193, 199) rgb(29, 193, 199) transparent; */\n border-color: transparent ","\n "," transparent;\n transition: all 0.1s ease 0s;\n content: '';\n }\n\n .selected-icon {\n visibility: hidden;\n width: 60%;\n height: 60%;\n position: relative;\n z-index: 2;\n margin: 0px 1px 1px 0px;\n font-size: 16px;\n transition: all 0.2s ease 0s;\n }\n }\n }\n\n .space.selected {\n background-color: rgb(236, 251, 253);\n border-color: rgb(236, 251, 253);\n\n .selected-container {\n &::after {\n left: 0px;\n top: 0px;\n }\n\n .selected-icon {\n visibility: visible;\n }\n }\n }\n"])),(e=>e.theme.palette.primary.main),(e=>e.theme.palette.primary.main)),Et=(0,h.Z)("div")(kt||(kt=(0,s.Z)(["\n display: flex;\n position: relative;\n width: 100%;\n padding: 10px;\n border: 1 solid #ccc;\n cursor: pointer;\n\n .left {\n display: flex;\n align-items: flex-start;\n width: 100%;\n margin: 0px 20px 0px 0px;\n\n .header {\n padding: 5px 16px 0 0;\n }\n\n .body {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .footer {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: 100%;\n }\n }\n\n .right {\n display: flex;\n }\n\n "," {\n .left {\n display: flex;\n flex-direction: column;\n margin-right: 20px;\n\n .header {\n display: none;\n }\n\n .footer {\n margin-top: 6px;\n margin-left: 0px;\n padding: 2px 0px;\n height: auto;\n }\n }\n\n .right {\n width: auto;\n }\n\n .text {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n }\n }\n\n // \u516c\u5171\u5c5e\u6027\n .middle-font-size {\n font-size: 14px;\n }\n\n .small-font-size {\n font-size: 12px;\n }\n"])),(e=>e.theme.breakpoints.down("md")));var St,Ct=n(95712);const Pt=(0,h.Z)("div")(St||(St=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),Bt="verify-app-ownership-disk";const Dt=function(){const e=new URL(window.location.href),t=e.searchParams.get("appDid"),n=e.searchParams.get("appName"),{t:o}=(0,m.PE)(),{api:s,info:r}=(0,A.h6)(),{session:i,api:l}=(0,Ae.T)(),c=(0,a.useMemo)((()=>r?(0,y.RU)(r):""),[r]),[p,u]=(0,Be.Z)({isRestoring:!1,isComplete:!1,connectData:{isConnectOpen:!1,action:"",checkFn:()=>{},extraParams:{}}}),h=()=>{u({connectData:{isConnectOpen:!1}}),setTimeout((()=>{const e=new URL(d()(c,"blocklets/restore/restore-blocklet".concat(window.location.search)));window.location.href=e.href}),0)},f=async()=>{if(i.user)await(async()=>{if((await s.getBlocklet({input:{did:t}})).blocklet)return V.Z.error("Blocklet ".concat(n,"(").concat(t,") already exists")),void u({shouldReconnect:!0});u({connectData:{isConnectOpen:!0,action:Bt,extraParams:{appDid:t,restoreFrom:"disk"}}})})();else{var e,o,a;const n=new URL(window.location.href);n.pathname=d()(null!==(e=null===(o=window)||void 0===o||null===(a=o.env)||void 0===a?void 0:a.apiPrefix)&&void 0!==e?e:"/","/api/did/".concat(Bt,"/token")),n.searchParams.set("appDid",t),n.searchParams.set("restoreFrom","disk");const{data:s}=await l.get(n.href);i.login(h,{nw:s.url,openMode:"popup"})}};return(0,a.useEffect)((()=>{f()}),[]),(0,R.jsxs)(Pt,{children:[(0,R.jsx)(Z.Z,{title:o("blocklet.restoreBlocklet.verify.title"),subTitle:o("blocklet.restoreBlocklet.verify.subTitle")}),(0,R.jsxs)(E.Z,{textAlign:"center",mt:6,children:[(0,R.jsx)(Ct.Z,{did:t,size:128}),(0,R.jsxs)(E.Z,{mt:2,mb:2,children:[(0,R.jsx)(z.Z,{variant:"body2",children:n}),(0,R.jsx)(Ee.Z,{did:t})]}),(0,R.jsx)(B.Z,{variant:"contained",disabled:p.connectData.isConnectOpen,onClick:f,sx:{width:"180px",height:"100%"},children:o("blocklet.restoreBlocklet.verify.".concat(p.shouldReconnect?"reconnect":"verify"))})]}),p.connectData.isConnectOpen&&(0,R.jsx)(Te.Z,{appDid:t,visible:!1}),(0,R.jsx)(Ze.Z,{popup:!0,open:p.connectData.isConnectOpen,forceConnected:!1,saveConnect:!1,action:p.connectData.action,checkFn:l.get,checkTimeout:3e5,webWalletUrl:(0,ae.yP)(r),onSuccess:h,extraParams:p.connectData.extraParams,messages:{title:o("blocklet.restoreBlocklet.verify.title"),scan:o("blocklet.restoreBlocklet.verify.scan"),confirm:o("blocklet.restoreBlocklet.verify.confirm"),success:o("blocklet.restoreBlocklet.verify.success")},onClose:()=>{u({connectData:{isConnectOpen:!1}})}})]})};var Tt,Rt,Mt;function Lt(){const e=(0,u.Z)((e=>e.breakpoints.down("md"))),{t:t,locale:n}=(0,m.PE)(),{info:o}=(0,A.h6)(),{meta:s,setMeta:r}=(0,a.useState)({}),i=(0,a.useMemo)((()=>o?(0,y.RU)(o):""),[o]),c=(0,b.yP)(o),h=d()((0,b.Y5)(),"/blocklets/restore"),Z=[{key:"select",name:t("blocklet.restoreFromServer.selectTitle"),path:d()(h,"select")},{key:"verify-ownership",name:t("blocklet.restoreBlocklet.verify.title"),path:d()(h,"verify-ownership")},{key:"restore-blocklet",name:t("blocklet.restoreBlocklet.restore.title"),path:d()(h,"restore-blocklet")}],E=(0,R.jsx)(Qt,{className:"".concat(i?"logo-can-click":""),children:(0,R.jsx)(w.Z,{onClick:()=>{i&&window.open(i)},logo:e?(0,R.jsx)(v.Z,{width:"32",height:"32"}):(0,R.jsx)(k.Z,{width:"128",height:"48"})})});return(0,R.jsx)(x.W,{steps:Z,children:(0,R.jsx)(f.Z,{blockletMeta:{...s,registryUrl:""},locale:n,useOfSkeleton:!1,navLogo:E,headerEndAddons:(0,R.jsx)(g.Z,{webWalletUrl:c,SessionContext:j.B3}),pcWidth:"80%",style:{height:"100%"},logoUrl:null===s||void 0===s?void 0:s.logo,children:(0,R.jsxs)(Ft,{children:[(0,R.jsx)(p.Global,{styles:Nt}),(0,R.jsxs)(l.Routes,{children:[(0,R.jsx)(l.Route,{path:"select",element:(0,R.jsx)(jt,{onSelect:r})}),(0,R.jsx)(l.Route,{path:"verify-ownership",element:(0,R.jsx)(Dt,{})}),(0,R.jsx)(l.Route,{path:"restore-blocklet",element:(0,R.jsx)(lt,{})}),(0,R.jsx)(l.Route,{path:"*",element:(0,R.jsx)(l.Navigate,{to:"select".concat(window.location.search),replace:!0})})]})]})})})}const Nt=(0,p.css)(Tt||(Tt=(0,s.Z)(["\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n"]))),Ft=h.Z.div(Rt||(Rt=(0,s.Z)(["\n "," {\n padding-top: 34px;\n }\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n .bottom-button {\n min-width: 200px;\n }\n"])),(e=>e.theme.breakpoints.up("md"))),Qt=h.Z.div(Mt||(Mt=(0,s.Z)(["\n margin-top: -1px;\n &.logo-can-click {\n cursor: pointer;\n }\n"])));function Ot(){const{search:e}=window.location;return e.includes("restoreFrom=server")?(0,R.jsx)(Lt,{}):(0,R.jsx)(ht,{})}},99641:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o,s,a=n(71171),r=n(55898),i=n.n(r),l=n(33518),c=n(96266);function d(e){let{logo:t,name:n,subname:o,previousData:s,...a}=e,r=(0,c.jsx)(p,{logo:t}),i=n,l=o;return s.logo&&(r=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(p,{logo:t,className:"left-fade-in-ele"}),(0,c.jsx)(p,{logo:s.logo,className:"postion-abs left-fade-out-ele"})]})),s.name&&s.name!==n&&(i=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"right-fade-in-ele",style:{display:"inline-block"},children:n}),(0,c.jsx)("span",{className:"postion-abs right-fade-out-ele",children:s.name})]})),s.subname&&s.subname!==o&&(l=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"right-fade-in-ele",style:{display:"inline-block"},children:o}),(0,c.jsx)("span",{className:"postion-abs right-fade-out-ele",children:s.subname})]})),(0,c.jsx)(h,{...a,children:(0,c.jsxs)("div",{className:"logo-inner",children:[(0,c.jsx)("div",{className:"logo-img-content",children:r}),(0,c.jsxs)("div",{className:"logo-info ".concat(n||o?"":"zero-left"),children:[(0,c.jsx)("div",{className:"logo-name",children:i}),(0,c.jsx)("div",{className:"logo-subname",children:l})]})]})})}function p(e){let{logo:t,...n}=e;return(0,c.jsx)(u,{...n,children:t})}d.propTypes={logo:i().element.isRequired,name:i().string,subname:i().string,previousData:i().object},d.defaultProps={name:"",subname:"",previousData:{logo:"",name:"",subname:""}};const u=l.Z.div(o||(o=(0,a.Z)(["\n display: block;\n > * {\n display: block;\n }\n"]))),h=l.Z.div(s||(s=(0,a.Z)(["\n position: relative;\n display: block;\n\n .logo-inner {\n display: flex;\n align-items: center;\n height: 100%;\n .logo-img-content {\n position: relative;\n display: block;\n }\n .logo-info {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 10px;\n letter-spacing: 0.1px;\n &.zero-left {\n margin-left: 0%;\n }\n .logo-name {\n position: relative;\n line-height: 16px;\n font-size: 16px;\n color: #121319;\n }\n .logo-subname {\n position: relative;\n line-height: 13px;\n font-size: 13px;\n color: #7d8085;\n }\n }\n }\n\n .postion-abs {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n }\n\n .right-fade-out-ele {\n animation: right-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .right-fade-in-ele {\n animation: right-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes right-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n }\n\n @keyframes right-fade-in {\n 0% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n\n .left-fade-out-ele {\n animation: left-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .left-fade-in-ele {\n animation: left-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes left-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n }\n\n @keyframes left-fade-in {\n 0% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n"])))},60344:(e,t,n)=>{"use strict";n.d(t,{hi:()=>a,od:()=>s.a});var o=n(10458),s=n.n(o);s().defaults.timeout=1e4;const a=s().create()},84584:(e,t,n)=>{"use strict";n.d(t,{EJ:()=>v,Jf:()=>g,LQ:()=>p,Nb:()=>u,UV:()=>k,Xv:()=>c,Z3:()=>w,ag:()=>m,mo:()=>h,nD:()=>d,nU:()=>x,w2:()=>f});var o=n(82434),s=n.n(o),a=n(77277),r=n(65873),i=n(2842),l=n(60344);function c(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/"),o=n.at(-4),s=n.at(-2);return(0,i.xn)(t,"space",o,"apps",s,"explorer?key=/apps/".concat(s,"/.did-objects/").concat(s,"/"))}function d(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/").at(-4);return(0,i.xn)(t,"space",n)}function p(e){return e.replace(/\/$/,"").split("/").at(-4)}async function u(e){try{if(!s()(e))return!1;const{headers:t}=await l.hi.head(e,{timeout:5e3});return"true"===t["x-listable"]&&"true"===t["x-readable"]&&"true"===t["x-writeable"]}catch(t){return console.error(t),!1}}function h(e){var t;return(null===e||void 0===e||null===(t=e.find((e=>e.key===a.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_BACKUP_ENDPOINT)))||void 0===t?void 0:t.value)||""}function m(e){const t=new URL(e);return(0,i.xn)(t.origin,t.pathname)}async function f(e){try{if(!s()(e))return!1;const t=m(e),n=(0,i.xn)(t,"space/api/did/one-click-authorization/token"),{status:o,data:a}=await l.hi.get(n,{timeout:5e3});return 200===o&&(0,r.isObject)(a)}catch(t){return console.error(t),!1}}async function x(e){let{timeout:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{timeout:3e3};try{if(!s()(e))return"";const{headers:n}=await l.hi.head(e,{timeout:t}),o=n["x-space-name"];return o?decodeURIComponent(o):""}catch(n){return console.error(n),""}}function g(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/").at(-4);return(0,i.xn)(t,"/api/space/nft/display?spaceDid=".concat(n))}const v=e=>{var t;return(null===e||void 0===e||null===(t=e.configs)||void 0===t||null===(t=t.find((e=>e.key===a.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT)))||void 0===t?void 0:t.value)||null};async function k(e){const t={};return t.did=p(e),t.name=await x(e),t.url=function(e){return null===e||void 0===e?void 0:e.replace(/\/api\/space\/.+/,"")}(e),t.endpoint=e,t}async function w(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{timeout:3e4,withSearchParams:!0};if(!(0,r.isString)(e))throw new Error("url(".concat(e,") must be a string"));const o=e.startsWith("http")?e:"https://".concat(e),s=new URL(o),{data:a}=await l.hi.get((0,i.xn)(s.origin,"/__blocklet__.js?type=json"),{timeout:n.timeout}),c=null===(t=a.componentMountPoints.findLast((e=>"z8iZnaYxnkMD5AKRjTKiCb8pQr1ut8UantAcf"===e.did)))||void 0===t?void 0:t.mountPoint;if(!c)throw new Error("MountPoint(".concat(c,") not found"));const d=(0,i.xn)(s.origin,c);return n.withSearchParams&&s.searchParams.get("spaceDid")?(0,i.xn)(d,"?spaceDid=".concat(s.searchParams.get("spaceDid"))):d}},47595:(e,t,n)=>{"use strict";var o=n(71600);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=o(n(56930)),a=n(96266);t.default=(0,s.default)((0,a.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline")},94552:(e,t,n)=>{"use strict";var o=n(71600);t.Z=void 0;var s=o(n(56930)),a=n(96266);t.Z=(0,s.default)((0,a.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"}),"Launch")},83294:(e,t,n)=>{"use strict";var o=n(71600);t.Z=void 0;var s=o(n(56930)),a=n(96266);t.Z=(0,s.default)((0,a.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert")},53616:(e,t,n)=>{var o=n(26849);e.exports=function(e){return o(e).toLowerCase()}}}]);
|
|
1
|
+
(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[3389],{13455:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(55898),s=n.n(o),a=n(36687),r=n(72333);const i="data:image/png;base64,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";var l=n(74094),c=n(96266);function d(e){let{blocklet:t,blockletMetaUrl:n}=e;const{did:o,logo:s}=t.meta;let d;return d=s?(0,c.jsx)(a.Z,{src:(0,l.aZ)({did:o,logoPath:s,baseUrl:new URL(n).origin}),fallback:i,width:64,size:"contain",placeholder:"application logo"}):(0,c.jsx)(r.Z,{did:o,size:64}),d}d.propTypes={blocklet:s().object.isRequired,blockletMetaUrl:s().string.isRequired}},13932:(e,t,n)=>{"use strict";n.d(t,{Z:()=>x});var o,s=n(71171),a=n(68420),r=n(77277),i=n(33518),l=n(39948),c=n(5057),d=n(11397),p=n.n(d),u=n(34937),h=n(96266);const m=p()("@abtnode/webapp:launch-blocklet:download-progress");const f=(e,t)=>{m("getDownloadBundleStep",e);return(e||[]).map((e=>{var n;const o=t("launchBlocklet.waiting.".concat("extracting"===e.status?"extractingComponent":"downloadingComponent"),{name:(null===(n=e.component)||void 0===n?void 0:n.title)||""}),s=e.total&&e.current?": ".concat(Math.floor(e.current/e.total*100)," %"):"";let a=e.name?": ".concat(e.name):"";return s||(a+="..."),"".concat(o).concat(s).concat(a)})).join("\n")};function x(e){let{appDid:t,visible:n}=e;const{t:o}=(0,a.PE)(),s=function(e){let{appDid:t}=e;const[n,o]=(0,c.useState)([]),s=(0,u.ZP)();return(0,c.useEffect)((()=>(s.on(r.BlockletEvents.downloadBundleProgress,(e=>{t&&t===(null===e||void 0===e?void 0:e.appDid)&&o((t=>{const n=[...t],o=n.findIndex((t=>{var n,o;return(null===(n=t.component)||void 0===n?void 0:n.did)===(null===(o=e.component)||void 0===o?void 0:o.did)}));return"completed"===e.status?-1!==o&&n.splice(o,1):-1!==o?n[o]=e:n.push(e),[...n]}))})),()=>{s.off(r.BlockletEvents.downloadBundleProgress)})),[t,s]),n}({appDid:t});return(0,h.jsx)(g,{style:{display:n?"block":"none"},children:f(s,o)})}x.defaultProps={appDid:"",visible:!0};const g=(0,i.Z)(l.Z)(o||(o=(0,s.Z)(["\n flex: 0 0 auto;\n white-space: pre;\n overflow-y: auto;\n overflow-x: auto;\n max-height: 10em;\n max-width: 500px;\n min-width: auto;\n @media (max-width: ","px) {\n max-width: 90%;\n max-height: 30vh;\n }\n"])),(e=>e.theme.breakpoints.values.md))},66436:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var o,s=n(71171),a=n(33518),r=n(96266);function i(e){let{children:t}=e;return(0,r.jsx)(l,{children:t})}const l=a.Z.div(o||(o=(0,s.Z)(["\n color: #1dc1c7;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n"])))},11476:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var o=n(5057),s=n(77277),a=n(31853),r=n(11397),i=n.n(r),l=n(34937),c=n(10155);const d=i()("@abtnode/webapp:launch-blocklet:runtime-state"),p=Object.keys(s.BlockletStatus),u=Object.values(s.BlockletStatus),h=Object.values(s.BlockletEvents).filter((e=>![s.BlockletEvents.purchaseChange,s.BlockletEvents.domainStatus].includes(e))),m=(e,t)=>{var n;return(null===e||void 0===e?void 0:e.appDid)===t||(null===e||void 0===e||null===(n=e.meta)||void 0===n?void 0:n.did)===t},f=8e3,x=2e3;function g(e){const t=(0,c.Z)(),n=(0,l.ZP)(),s=(0,o.useRef)(null),r=()=>{e&&!s.current&&(s.current=setInterval((()=>{e&&(d("polling blocklet state"),v())}),x))},[i,g]=(0,a.Z)({status:null,eventName:"",runtimeBlocklet:null,error:"",isGetBlocklet:!1,startPolling:r,stopPolling:()=>{s.current&&clearInterval(s.current)}}),v=()=>{t.getBlocklet({input:{did:e,attachRuntimeInfo:!0}}).then((e=>{g({status:e.blocklet?e.blocklet.status:"",eventName:"",runtimeBlocklet:e.blocklet,isGetBlocklet:!0})})).catch((e=>{console.error("get blocklet failed",e)}))};(0,o.useEffect)((()=>{let t=null;return e&&(d("schedule polling blocklet state"),t=setTimeout((()=>{r()}),f)),()=>{t&&clearInterval(t)}}),[e]),(0,o.useEffect)((()=>{e?null===i.status&&(d("polling blocklet state on start"),v()):g({status:"",eventName:"",runtimeBlocklet:null})}),[e,i.status]);const k=t=>n=>{if(m(n,e)){const e={status:null,eventName:t,runtimeBlocklet:n,isGetBlocklet:!1};if(n.error)d("blocklet error",{blockletEventName:t,error:n.error}),e.status="error",e.error=n.error;else{const o=p[u.indexOf(n.status)];d("blocklet event",{blockletEventName:t,status:o}),o&&(e.status=o)}g(e)}};for(const a of h)(0,o.useEffect)((()=>{const t=k(a);return e&&n.on(a,t),()=>{e&&n.off(a,t)}}),[e]);return i}},53389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Ot});var o,s=n(71171),a=n(5057),r=n(53616),i=n.n(r),l=n(85493),c=n(6352),d=n.n(c),p=n(21371),u=n(15715),h=n(33518),m=n(68420),f=n(63902),x=n(51703),g=n(12073),v=n(10866),k=n(4456),w=n(99641),y=n(4651),b=n(46090),j=n(25339),A=n(75793),Z=n(2660),E=n(39948),S=n(19577),C=n(2478),P=n(44067),B=n(28726),D=n(42876),T=n(55898),R=n(96266);function M(e){let{children:t,selected:n}=e;return(0,R.jsxs)(L,{children:[t,(0,R.jsx)(E.Z,{className:"selected-container ".concat(n?"selected":""),children:(0,R.jsx)(D.default,{className:"selected-icon"})})]})}const L=(0,h.Z)(E.Z)(o||(o=(0,s.Z)(["\n position: relative;\n\n .selected-container {\n display: flex !important;\n position: absolute;\n right: 0px;\n bottom: 0px;\n -webkit-box-pack: end;\n justify-content: flex-end;\n align-items: flex-end;\n width: 32px;\n height: 32px;\n border-radius: 0px 0px 8px;\n color: rgb(255, 255, 255);\n overflow: hidden;\n transition: all 0.4s ease 0s;\n\n &::after {\n position: absolute;\n z-index: 0;\n left: 60px;\n top: 60px;\n display: block;\n width: 0px;\n height: 0px;\n border-width: 16px;\n border-style: solid;\n border-color: transparent #1dc1c7 #1dc1c7 transparent;\n transition: all 0.1s ease 0s;\n content: '';\n }\n\n .selected-icon {\n visibility: hidden;\n width: 60%;\n height: 60%;\n position: relative;\n z-index: 2;\n margin: 0px 1px 1px 0px;\n font-size: 16px;\n transition: all 0.2s ease 0s;\n }\n }\n\n .selected-container.selected {\n &::after {\n left: 0px;\n top: 0px;\n }\n\n .selected-icon {\n visibility: visible;\n }\n }\n"])));M.propTypes={children:T.node.isRequired,selected:T.bool},M.defaultProps={selected:!1};var N=n(67654),F=n(65873),Q=n(94639);const O=(0,a.createContext)({}),{Provider:U,Consumer:G}=O;function I(e){let{children:t}=e;const{t:n}=(0,m.PE)(),[o,s]=(0,N.Z)("spaceGatewaysForRestore",[{name:"Prod DID Spaces",url:"https://www.didspaces.com/app",protected:!0},{name:"Staging DID Spaces",url:"https://spaces.staging.arcblock.io/app",protected:!0}]),[r,i]=(0,N.Z)("selectedSpaceGatewayForRestore",o.find((e=>"https://www.didspaces.com/app"===e.url)));return(0,a.useEffect)((()=>{!async function(){const e=await Promise.all(o.map((async e=>{var t;const{data:n}=await Q.Z.get(d()(e.url,"/__blocklet__.js?type=json"),{timeout:5e3}).catch((e=>(console.error(e),{data:{}}))),o=null!==(t=n.appName)&&void 0!==t?t:e.name;return(0,F.merge)(e,{name:o})})));s(e)}()}),[]),(0,R.jsx)(U,{value:{spaceGateways:o,selectedSpaceGateway:r,addSpaceGateway:e=>{const t=o.find((t=>e.url===t.url));if(t)throw new Error(n("storage.spaces.gateway.add.duplicate",{name:t.name}));s((()=>[...o,(0,F.cloneDeep)(e)])),i(e)},deleteSpaceGateway:e=>{if(e.url===r.url)throw new Error(n("storage.spaces.gateway.delete.failedForSelected"));s((()=>o.filter((t=>t.url!==e.url))))},handleSelectSpaceGateway:e=>{i(e)}},children:t})}I.defaultProps={};var J=n(92877),z=n(11750),H=n(83580),X=n(94552),K=n(67680),Y=n(19778),W=n(47595),_=n(60939),V=n(86229),q=n(72443),$=n.n(q);function ee(e){let{spaceGateway:t,onDeleteSpaceGateway:n}=e;const{t:o}=(0,m.PE)(),[s,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(!1),c=(e,t)=>{null===e||void 0===e||e.stopPropagation(),r(t)};return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(K.Z,{size:"small",onClick:e=>c(e,!0),children:(0,R.jsx)(W.default,{})}),(0,R.jsx)(_.Z,{title:o("common.delConfirmDescription",{data:"".concat(null===t||void 0===t?void 0:t.name)}),open:s,confirmButton:{text:o("common.confirm"),props:{variant:"contained",color:"error",loading:i}},cancelButton:{text:o("common.cancel"),props:{variant:"contained",color:"primary"}},onConfirm:async e=>{try{null===e||void 0===e||e.stopPropagation(),l(!0),await n(t),r(!1)}catch(s){console.error(s),V.Z.error("".concat(o("storage.spaces.gateway.delete.failed"),": ").concat($()(s)))}finally{l(!1)}},onCancel:e=>c(e,!1)})]})}ee.defaultProps={onDeleteSpaceGateway:()=>{}};const te=ee;var ne=n(95335);const oe=function(){const e=(0,ne.Z)(),t=(0,u.Z)(e.breakpoints.down("md"));return{minWidth:t?300:e.breakpoints.values.sm,isMobile:t}};var se,ae=n(74094);const re=(0,J.Z)((()=>({menuName:{display:"flex",flex:1,flexDirection:"column",paddingRight:"24px","& span":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})));function ie(e){let{spaceGateway:t,selected:n,onDeleteSpaceGateway:o,onSelectGateway:s,...a}=e;const r=re(),{t:i}=(0,m.PE)(),{isMobile:l}=oe();return(0,R.jsxs)(le,{...a,children:[(0,R.jsx)(E.Z,{display:"inline-flex",marginRight:"8px",alignItems:"center",children:(0,R.jsx)("img",{alt:t.name,src:d()(t.url,"favicon.ico"),width:"48px",height:"48px"})}),(0,R.jsxs)(E.Z,{className:r.menuName,onClick:s,children:[(0,R.jsxs)(z.Z,{component:"span",variant:"subtitle1",style:{fontWeight:"400"},children:[null===t||void 0===t?void 0:t.name," ",n&&(0,R.jsx)(Y.Z,{color:"primary",style:{marginLeft:"8px"},children:i("common.selected")})]}),(0,R.jsx)(z.Z,{className:"url",component:"span",variant:"inherit",children:"".concat(l?(0,ae.aS)(null===t||void 0===t?void 0:t.url,38):null===t||void 0===t?void 0:t.url)})]}),(0,R.jsxs)(H.Z,{children:[(0,R.jsx)(K.Z,{onClick:e=>{e.stopPropagation(),window.open(t.url)},size:"small",children:(0,R.jsx)(X.Z,{})}),!0!==(null===t||void 0===t?void 0:t.protected)&&(0,R.jsx)(te,{spaceGateway:t,onDeleteSpaceGateway:async()=>{await o(t)}})]})]})}const le=(0,h.Z)(E.Z)(se||(se=(0,s.Z)(["\n display: flex;\n"])));ie.defaultProps={onDeleteSpaceGateway:()=>{},selected:!1,onSelectGateway:()=>{}};var ce=n(13128),de=n(44846),pe=n(47020),ue=n(55372),he=n(88574),me=n(84584);function fe(e){let{onAddGateway:t,...n}=e;const{t:o,locale:s}=(0,m.PE)(),[r,i]=(0,a.useState)(""),[l,c]=(0,a.useState)(!1),[p,u]=(0,a.useState)(!1),[h,f]=(0,a.useState)(""),x=async()=>{try{c(!0);const e=await(0,me.Z3)(r,{withSearchParams:!1});if(!await(0,me.w2)(e))throw new Error(o("storage.spaces.gateway.add.invalidUrl"));const{data:n}=await Q.Z.get(d()(new URL(e).origin,"/__blocklet__.js?type=json")),s={name:n.appName,url:e,protected:!1};await t(s),V.Z.success(o("storage.spaces.addedWithName",{name:s.name})),u(!1)}catch(e){f("".concat(o("storage.spaces.gateway.add.failed",s),": ").concat($()(e)))}finally{c(!1)}};return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(B.Z,{size:"middle",color:"primary",variant:"outlined",onClick:()=>u(!0),...n,children:o("storage.spaces.gateway.add.title")}),(0,R.jsxs)(ce.ZP,{title:o("storage.spaces.gateway.add.title"),fullWidth:!0,maxWidth:"md",open:p,onClose:()=>u(!1),PaperProps:{style:{minHeight:"auto"}},actions:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(B.Z,{onClick:e=>{e.stopPropagation(),u(!1)},color:"inherit",children:o("common.cancel")}),(0,R.jsxs)(B.Z,{onClick:e=>{e.stopPropagation(),x()},color:"primary","data-cy":"install-blocklet-next-step",disabled:l||!r,variant:"contained",autoFocus:!0,children:[l&&(0,R.jsx)(de.Z,{size:16}),o("common.confirm")]})]}),children:[(0,R.jsx)("div",{style:{paddingTop:12,overflowY:"hidden"},children:(0,R.jsx)(ue.Z,{component:"div",children:(0,R.jsx)(z.Z,{component:"div",children:(0,R.jsx)(pe.Z,{label:o("storage.spaces.gateway.add.label"),autoComplete:"off",variant:"outlined",name:"url",fullWidth:!0,value:r,onChange:e=>{f(null),i(e.target.value)},disabled:l,onKeyPress:async e=>{"Enter"===e.key&&(e.preventDefault(),await x())},autoFocus:!0})})})}),!!h&&(0,R.jsx)(he.Z,{type:"error",style:{width:"100%"},children:h})]})]})}fe.defaultProps={onAddGateway:()=>{}};const xe=fe;function ge(e){let{onConnect:t,...n}=e;const{spaceGateways:o,selectedSpaceGateway:s,handleSelectSpaceGateway:r,addSpaceGateway:i,deleteSpaceGateway:l}=(0,a.useContext)(O),{t:c}=(0,m.PE)(),d=async e=>{await l(e)};return(0,R.jsxs)(E.Z,{...n,children:[(0,R.jsx)(S.Z,{children:o.map((e=>{const t=(null===e||void 0===e?void 0:e.url)===s.url;return(0,R.jsx)(M,{selected:t,children:(0,R.jsx)(C.ZP,{button:!0,selected:t,"data-cy":"get-space-endpoint-for-restore",children:(0,R.jsx)(P.Z,{children:(0,R.jsx)(ie,{spaceGateway:e,onDeleteSpaceGateway:d,selected:t,onSelectGateway:()=>(e=>{r(e)})(e)})})},e.url)})}))}),(0,R.jsxs)(E.Z,{display:"flex",marginTop:"16px",justifyContent:"center",alignItems:"center",children:[(0,R.jsx)(xe,{onAddGateway:async e=>{await i(e)}}),(0,R.jsx)(B.Z,{sx:{marginLeft:"16px"},size:"middle",variant:"contained",onClick:()=>{t(s)},children:c("storage.spaces.connect.now")})]})]})}ge.defaultProps={onConnect:()=>{}};const ve=ge;var ke;const we=(0,h.Z)("div")(ke||(ke=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"])));const ye=function(){const{info:e}=(0,A.h6)(),{t:t,locale:n}=(0,a.useContext)(m.RD),o=(0,a.useMemo)((()=>e?(0,y.RU)(e):""),[e]);return(0,R.jsx)(I,{children:(0,R.jsxs)(we,{children:[(0,R.jsx)(Z.Z,{title:t("blocklet.restoreFromSpaces.connect.title"),subTitle:t("blocklet.restoreFromSpaces.connect.subTitle"),onClickBack:()=>window.history.back()}),(0,R.jsx)(E.Z,{display:"flex",justifyContent:"center",children:(0,R.jsx)(ve,{sx:{marginTop:"64px",marginBottom:"32px",width:"720px"},onConnect:e=>{const t=new URL(d()(e.url,"restore")),s=d()(o,"blocklets/restore/verify-ownership");t.searchParams.set("redirectUrl",s),t.searchParams.set("locale",n),window.location.href=t.toString()}})})]})})};var be,je=n(15849),Ae=n(73545),Ze=n(22425),Ee=n(17450),Se=n(38898),Ce=n(39463),Pe=n(70461),Be=n(31853),De=n(13455),Te=n(13932),Re=n(31910),Me=n(93040);const Le=(0,h.Z)("div")(be||(be=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),Ne="verify-app-ownership-spaces";const Fe=function(){const{session:e}=(0,Ae.T)(),[t]=(0,je.useSearchParams)(),{t:n}=(0,m.PE)(),{api:o,info:s}=(0,A.h6)(),{api:r}=(0,Ae.T)(),{meta:i}=(0,Re.J_)(),c=(0,l.useNavigate)(),p=(0,a.useMemo)((()=>s?(0,y.RU)(s):""),[s]),[u,h]=(0,Be.Z)({isRestoring:!1,isComplete:!1,isOverwrite:!1,shouldReconnect:!1,exists:!1,accessUrl:"",isConnectOpen:!1,isConfirmOpen:!1,connectData:{action:"",checkFn:()=>{},extraParams:{}},connectMessages:{}}),f=t.get("launchType"),x=t.get("nftId"),g=t.get("chainHost"),v=t.get("from"),k=t.get("blocklet_meta_url"),w=t.get("launcherSessionId")||"",b=t.get("launcherUrl")||"",j=(e=>{const t=e.split("/").filter(Boolean);return t[t.length-2]})(i.spaceEndpoint),S=(0,Ce.getServerAuthMethod)(s,f,w,e.user),C=async(t,n)=>{const o=Array.isArray(t)?t.find((e=>!!e.sessionToken)):t;null!==o&&void 0!==o&&o.sessionToken&&((0,ae.ZB)(n(o.sessionToken)),await e.refresh()),h({isConnectOpen:!1}),setTimeout((()=>{const e=new URLSearchParams({appDid:j});[{name:"launchType",value:f},{name:"nftId",value:x},{name:"from",value:v},{name:"blocklet_meta_url",value:k},{name:"chainHost",value:g}].forEach((t=>{let{name:n,value:o}=t;o&&e.set(n,o)})),c("/blocklets/restore/restore-blocklet?".concat(e.toString()))}),0)},P=async function(){var t,s,a;let l=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!l){if(u.shouldReconnect)return void(window.location.href=d()(p,"blocklets/restore/connect-space"));if(e.user){const e=await o.getBlocklet({input:{did:j,attachRuntimeInfo:!0}});if(e.blocklet){const t=await(0,Me.DB)(e.blocklet);if(t){const n=new URL(t);"running"!==e.blocklet.status&&n.searchParams.set("__start__","1"),h({shouldReconnect:!0,exists:!0,accessUrl:n.href})}return}}}if("nft"===S){var c,m,v;const e=new URL(window.location.href);e.pathname=d()(null!==(c=null===(m=window)||void 0===m||null===(v=m.env)||void 0===v?void 0:v.apiPrefix)&&void 0!==c?c:"/","/api/did/".concat(Ne,"/token")),e.searchParams.set("appDid",j),e.searchParams.set("endpoint",i.spaceEndpoint),e.searchParams.set("referrer",window.location.href),e.searchParams.set("nftId",x),e.searchParams.set("appPid",i.did);const t={autoConnect:!1,launchType:f,nftId:x};g&&(e.searchParams.set("chainHost",g),t.chainHost=g),l&&e.searchParams.set("overwrite","1");const{data:o}=await r.get(e.href);return o.error?void V.Z.error(o.error):(t.nw=o.url,void h({isConnectOpen:!0,connectData:{action:"verify-restore-by-nft",extraParams:t},connectMessages:{title:n("blocklet.restoreFromSpaces.nftAuthDialog.title"),scan:n("blocklet.restoreFromSpaces.nftAuthDialog.scan"),confirm:n("blocklet.restoreFromSpaces.nftAuthDialog.confirm"),success:n("blocklet.restoreFromSpaces.nftAuthDialog.success")}}))}if("launcher"===S){const{launcherSession:e,error:t}=await o.getLauncherSession({input:{launcherUrl:b,launcherSessionId:w}});return void(e?h({isConnectOpen:!0,connectData:{action:Ne,extraParams:{appDid:j,appPid:i.did,endpoint:i.spaceEndpoint,referrer:window.location.href,restoreFrom:"spaces",overwrite:l?"1":void 0,launcherUrl:b,launcherSessionId:w,chainHost:g}},connectMessages:{title:n("blocklet.restoreBlocklet.verify.title"),scan:n("blocklet.restoreBlocklet.verify.scan"),confirm:n("blocklet.restoreBlocklet.verify.confirm"),success:n("blocklet.restoreBlocklet.verify.success")}}):V.Z.error("Launch session invalid: ".concat(t)))}if("session"===S)return void h({isConnectOpen:!0,connectData:{action:Ne,extraParams:{appDid:j,appPid:i.did,endpoint:i.spaceEndpoint,referrer:window.location.href,overwrite:l?"1":void 0,restoreFrom:"spaces"}},connectMessages:{title:n("blocklet.restoreBlocklet.verify.title"),scan:n("blocklet.restoreBlocklet.verify.scan"),confirm:n("blocklet.restoreBlocklet.verify.confirm"),success:n("blocklet.restoreBlocklet.verify.success")}});const k=new URL(window.location.href);k.pathname=d()(null!==(t=null===(s=window)||void 0===s||null===(a=s.env)||void 0===a?void 0:a.apiPrefix)&&void 0!==t?t:"/","/api/did/".concat(Ne,"/token")),k.searchParams.set("appDid",j),k.searchParams.set("appPid",i.did),k.searchParams.set("endpoint",i.spaceEndpoint),k.searchParams.set("referrer",window.location.href),k.searchParams.set("restoreFrom","spaces");const{data:y}=await r.get(k.href);e.login(C,{nw:y.url,openMode:"popup"})};return(0,a.useEffect)((()=>{P()}),[]),(0,R.jsxs)(Le,{children:[(0,R.jsx)(Z.Z,{title:n("blocklet.restoreBlocklet.verify.title"),subTitle:n("blocklet.restoreBlocklet.verify.subTitle"),onClickBack:()=>window.history.back()}),(0,R.jsxs)(E.Z,{textAlign:"center",mt:6,children:[(0,R.jsx)(De.Z,{blocklet:{meta:i},blockletMetaUrl:k}),(0,R.jsxs)(E.Z,{mt:2,mb:2,children:[(0,R.jsx)(z.Z,{variant:"body2",children:i.title}),(0,R.jsx)(Ee.Z,{did:j})]}),u.exists&&u.accessUrl&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(z.Z,{component:"p",variant:"body1",gutterBottom:!0,sx:{color:"orange"},children:n("blocklet.restoreBlocklet.verify.exists")}),(0,R.jsxs)(z.Z,{component:"div",sx:{marginTop:"32px"},children:[u.accessUrl&&(0,R.jsx)(B.Z,{variant:"contained",component:Se.Z,href:u.accessUrl,sx:{width:"160px",height:"100%"},children:n("blocklet.restoreBlocklet.verify.open")}),(0,R.jsx)(B.Z,{variant:"contained",color:"error",onClick:()=>{h({isConfirmOpen:!0})},sx:{width:"160px",height:"100%",marginLeft:"32px"},children:n("blocklet.restoreBlocklet.verify.overwrite")})]})]}),!u.exists&&(0,R.jsx)(B.Z,{variant:"contained",disabled:u.isConnectOpen,onClick:P,sx:{width:"180px",height:"100%"},children:n("blocklet.restoreBlocklet.verify.".concat(u.shouldReconnect?"reconnect":"verify"))})]}),u.connectData.isConnectOpen&&(0,R.jsx)(Te.Z,{appDid:j,visible:!1}),(0,R.jsx)(Ze.Z,{popup:!0,open:u.isConnectOpen,forceConnected:!1,saveConnect:!1,action:u.connectData.action,checkFn:r.get,checkTimeout:3e5,webWalletUrl:(0,ae.yP)(s),onSuccess:C,extraParams:u.connectData.extraParams,messages:u.connectMessages,onClose:()=>{h({isConnectOpen:!1})}}),u.isConfirmOpen&&(0,R.jsx)(Pe.Z,{color:"error",title:n("blocklet.restoreBlocklet.overwrite.title"),description:n("blocklet.restoreBlocklet.overwrite.description"),confirm:n("common.confirm"),onCancel:()=>{h({isConfirmOpen:!1})},onConfirm:()=>{h({isConfirmOpen:!1,isOverwrite:!0}),P(!0)}})]})};var Qe,Oe=n(55309);const Ue=(0,h.Z)(Oe.Z)(Qe||(Qe=(0,s.Z)(["\n && .result-footer {\n height: 120px;\n > div {\n flex-wrap: wrap;\n }\n }\n"])));var Ge,Ie,Je,ze=n(35266),He=n(77277),Xe=n(77429),Ke=n(75506),Ye=n.n(Ke),We=n(50482),_e=n.n(We),Ve=n(11397),qe=n.n(Ve),$e=n(11476),et=n(34937),tt=n(66436);const nt=qe()("@abtnode/webapp:restore-blocklet:step-install"),ot=(0,h.Z)("div")(Ge||(Ge=(0,s.Z)(["\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),st=h.Z.div(Ie||(Ie=(0,s.Z)(["\n line-height: 1.4em;\n .error-desc {\n margin-top: 8px;\n word-wrap: break-word;\n color: ",";\n }\n"])),(e=>e.theme.palette.grey[500])),at={[He.RESTORE_PROGRESS_STATUS.waiting]:0,[He.RESTORE_PROGRESS_STATUS.start]:1,[He.RESTORE_PROGRESS_STATUS.importData]:2,[He.RESTORE_PROGRESS_STATUS.downloading]:3,[He.RESTORE_PROGRESS_STATUS.importDataSuccess]:4,[He.RESTORE_PROGRESS_STATUS.installing]:5,[He.RESTORE_PROGRESS_STATUS.completed]:10};const rt=(0,h.Z)(E.Z)(Je||(Je=(0,s.Z)(["\n padding-top: 24px;\n"]))),it=function(){var e,t,n,o;const s=new URL(window.location.href),r=s.searchParams.get("appDid"),i=s.searchParams.get("launchType"),l=s.searchParams.get("nftId"),c=s.searchParams.get("fromLauncher"),d=s.searchParams.get("from"),p=s.searchParams.get("chainHost"),u=function(e){let{appDid:t}=e;const[n,o]=(0,a.useState)(He.RESTORE_PROGRESS_STATUS.waiting),s=(0,et.ZP)();return s.connect(),(0,a.useEffect)((()=>(s.on(He.BlockletEvents.restoreProgress,(e=>{t===(null===e||void 0===e?void 0:e.appDid)&&o(e)})),()=>{s.off(He.BlockletEvents.restoreProgress)})),[t,s]),n}({appDid:r}),[h,f]=(0,a.useState)(0),x=(0,a.useRef)(null),{meta:g}=(0,Re.J_)(),{t:v}=(0,m.PE)(),{api:k,info:w}=(0,A.h6)(),[b,j]=(0,Be.Z)({nextAccessUrl:"",installError:null}),E=(0,$e.Z)(r),{status:S,eventName:C}=E,P=()=>{f(12),x.current&&(clearTimeout(x.current),x.current=null),x.current=setTimeout((()=>{k.getBlocklet({input:{did:r,attachRuntimeInfo:!0}}).then((e=>{e.blocklet&&M(e.blocklet)}))}),500)},D=()=>{var e,t;null!==E&&void 0!==E&&null!==(e=E.runtimeBlocklet)&&void 0!==e&&null!==(t=e.settings)&&void 0!==t&&t.initialized?f(11):P()},T=[v("blocklet.restoreFromSpaces.progress.waiting"),v("blocklet.restoreFromSpaces.progress.restoring"),v("blocklet.restoreFromSpaces.progress.importData"),v("blocklet.restoreFromSpaces.progress.downloading",{progress:"".concat(null!==(e=null===u||void 0===u||null===(t=u.data)||void 0===t?void 0:t.completed)&&void 0!==e?e:100,"/").concat(null!==(n=null===u||void 0===u||null===(o=u.data)||void 0===o?void 0:o.total)&&void 0!==n?n:100)}),v("blocklet.restoreFromSpaces.progress.importSuccess"),v("launchBlocklet.waiting.downloading"),v("launchBlocklet.waiting.verifying"),v("launchBlocklet.waiting.downloading"),v("launchBlocklet.waiting.extracting"),v("upgrading"===S?"common.upgrading":"launchBlocklet.waiting.installing"),v("launchBlocklet.waiting.installed"),v("launchBlocklet.waiting.starting"),v("launchBlocklet.waiting.done")];(0,a.useEffect)((()=>{if(u.status===He.RESTORE_PROGRESS_STATUS.error){const e={message:u.message,name:"restoreFailed",action:"retryRestore"};return _e()(e,b.installError)||V.Z.error($()(e)),void j({installError:e})}f(at[u.status]||0)}),[u.status]),(0,a.useEffect)((()=>{if("serverless"!==i||C!==He.BlockletEvents.nftConsumed)switch(S){case"waiting":f(6);break;case"downloading":f(7);break;case"installing":case"upgrading":f(8);break;case"installed":if("serverless"===i&&!(0,Me.MZ)(E))break;D();break;case"starting":f(11);break;case"running":f(12),P();break;case"stopped":P();break;case"corrupted":case"error":{var e;null===E||void 0===E||E.stopPolling();const t={message:null===E||void 0===E||null===(e=E.error)||void 0===e?void 0:e.message,name:null===E||void 0===E?void 0:E.eventName,action:"retryRestore"},n=function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!_e()(t,b.installError)&&null!==E&&void 0!==E&&null!==(e=E.error)&&void 0!==e&&e.message&&V.Z.error($()(E.error)),j({installError:t,...n})};k.getBlocklet({input:{did:r,attachRuntimeInfo:!0}}).then((e=>{var o;let{blocklet:s}=e;null!==s&&void 0!==s&&null!==(o=s.settings)&&void 0!==o&&o.initialized&&(t.action="retryStart"),n()})).catch((()=>{n()}))}}else D()}),[S,C,E]);const M=async e=>{const t=await(0,Me.DB)(e);if(Ye()(t))return;const n=new URL(t);n.searchParams.set("serverUrl",(0,y.RU)(w)),"running"!==e.status&&n.searchParams.set("__start__","1"),c&&n.searchParams.set("fromLauncher",c),d&&n.searchParams.set("from",d),i&&n.searchParams.set("launchType",i),l&&n.searchParams.set("nftId",l),p&&n.searchParams.set("chainHost",p),null===E||void 0===E||E.stopPolling(),j({nextAccessUrl:n.href,status:e.status,resultMessage:"running"===e.status?{variant:"success",title:v("blocklet.restoreFromSpaces.restore.completeTitle"),subTitle:"",footer:v("common.open")}:{variant:"info",title:v("blocklet.restoreFromSpaces.restore.installedTitle"),subTitle:v("blocklet.restoreFromSpaces.restore.installedSubTitle"),footer:v("common.configuration")}})};if(b.installError){const e={retryRestore:(0,R.jsx)(B.Z,{variant:"contained",className:"bottom-button","data-cy":"retry-install",component:je.Link,to:"/blocklets/restore/verify-ownership".concat(window.location.search),children:v("common.retry")}),retryStart:(0,R.jsx)(B.Z,{variant:"contained",className:"bottom-button","data-cy":"retry-start",onClick:()=>(async()=>{j({installError:null,nextAccessUrl:""}),await k.startBlocklet({input:{did:r}}),null===E||void 0===E||E.startPolling()})(),children:v("common.retry")})},t=b.installError.name?b.installError.name.replace("blocklet.",""):"installFailed";return(0,R.jsx)(Ue,{variant:"error",title:null===g||void 0===g?void 0:g.title,subTitle:(0,R.jsxs)(st,{children:[(0,R.jsx)("div",{children:v("launchBlocklet.error.".concat(t))}),b.installError.message&&(0,R.jsx)("div",{className:"error-desc",children:v("common.errorMessage")+b.installError.message})]}),footer:(0,R.jsxs)(rt,{children:[e[b.installError.action],"serverless"===i&&(0,R.jsx)("div",{style:{marginTop:"24px"},dangerouslySetInnerHTML:{__html:v("blocklet.restoreFromSpaces.restore.support",{communityLink:"https://community.arcblock.io/",supportEmail:"launcher@arcblock.io"})}})]})})}const L=!!b.nextAccessUrl;return nt("render",{status:S,eventName:C,launchType:i,runtimeBlockletState:E,state:b}),(0,R.jsxs)(ot,{children:[!L&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Z.Z,{title:v("blocklet.restoreBlocklet.restore.title"),subTitle:v("blocklet.restoreFromSpaces.restore.subTitle")}),(0,R.jsxs)(tt.Z,{children:[(0,R.jsx)(ze.Z,{increaseSpeed:.3,messageLoop:!1,message:(0,R.jsx)(Xe.Z,{steps:T,stepIndex:h,autoGrowth:10===h?1e3:4e3})}),[5,7,8].includes(h)&&(0,R.jsx)(Te.Z,{appDid:r})]})]}),L&&(0,R.jsx)(Ue,{variant:b.resultMessage.variant,title:b.resultMessage.title,subTitle:b.resultMessage.subTitle,footer:(0,R.jsx)(rt,{children:(0,R.jsx)(B.Z,{variant:"contained",style:{width:"200px"},component:Se.Z,href:b.nextAccessUrl,children:b.resultMessage.footer})})})]})};const lt=function(){return(0,R.jsx)(it,{})};var ct,dt,pt,ut=n(23484);function ht(){const e=(0,u.Z)((e=>e.breakpoints.down("md"))),{t:t,locale:n}=(0,m.PE)(),{info:o}=(0,A.h6)(),s=(0,ut.Z)(),{meta:r}=(0,Re.J_)(),c=(0,a.useMemo)((()=>o?(0,y.RU)(o):""),[o]),h=(0,b.yP)(o),Z=d()((0,b.Y5)(),"/blocklets/restore"),E=[{key:"verify-ownership",name:t("blocklet.restoreBlocklet.verify.title"),path:d()(Z,"verify-ownership")},{key:"restore-blocklet",name:t("blocklet.restoreFromSpaces.restore.title"),path:d()(Z,"restore-blocklet")}];let S=[];S="launcher"===i()(s.get("from"))?[{key:"purchase-space",name:t("launchBlocklet.steps.purchaseSpace")},{key:"prepare-space",name:t("launchBlocklet.steps.prepareSpace")},...E]:[{key:"connect-space",name:t("blocklet.restoreFromSpaces.connect.title"),path:d()(Z,"connect-space")},{key:"select-blocklet",name:t("blocklet.restoreFromSpaces.selectBlocklet.title")},...E];const C=(0,R.jsx)(xt,{className:"".concat(c?"logo-can-click":""),children:(0,R.jsx)(w.Z,{onClick:()=>{c&&window.open(c)},logo:e?(0,R.jsx)(v.Z,{width:"32",height:"32"}):(0,R.jsx)(k.Z,{width:"128",height:"48"})})});return(0,R.jsx)(x.W,{steps:S,children:(0,R.jsx)(f.Z,{blockletMeta:r,locale:n,useOfSkeleton:!1,navLogo:C,navSubTitle:t("blocklet.restoreFromSpaces.navSubTitle"),loading:!1,headerEndAddons:(0,R.jsx)(g.Z,{webWalletUrl:h,SessionContext:j.B3}),pcWidth:"80%",style:{height:"100%"},logoUrl:null===r||void 0===r?void 0:r.logo,children:(0,R.jsxs)(ft,{children:[(0,R.jsx)(p.Global,{styles:mt}),(0,R.jsxs)(l.Routes,{children:[(0,R.jsx)(l.Route,{path:"connect-space",element:(0,R.jsx)(ye,{})}),(0,R.jsx)(l.Route,{path:"verify-ownership",element:(0,R.jsx)(Fe,{})}),(0,R.jsx)(l.Route,{path:"restore-blocklet",element:(0,R.jsx)(lt,{})}),(0,R.jsx)(l.Route,{path:"*",element:(0,R.jsx)(l.Navigate,{to:"connect-space",replace:!0})})]})]})})})}const mt=(0,p.css)(ct||(ct=(0,s.Z)(["\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n"]))),ft=h.Z.div(dt||(dt=(0,s.Z)(["\n "," {\n padding-top: 34px;\n }\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n .bottom-button {\n min-width: 200px;\n }\n"])),(e=>e.theme.breakpoints.up("md"))),xt=h.Z.div(pt||(pt=(0,s.Z)(["\n margin-top: -1px;\n &.logo-can-click {\n cursor: pointer;\n }\n"])));var gt,vt,kt,wt=n(83294),yt=n(72333),bt=n(25710);function jt(e){let{onSelect:t}=e;const{api:n}=(0,A.h6)(),{t:o,locale:s}=(0,m.PE)(),[r,i]=(0,a.useState)(!1),[c,d]=(0,a.useState)([]),[p,u]=(0,a.useState)(""),[h,f]=(0,a.useState)(null),x=(0,l.useNavigate)();(0,a.useEffect)((()=>{(async()=>{try{i(!0),f(!1);const{getBlocklets:{blocklets:e},getBlockletsFromBackup:{backups:t}}=await n.doBatchQuery({getBlocklets:{input:{}},getBlockletsFromBackup:{input:{}}});d((t||[]).filter((t=>!(e||[]).some((e=>{var n;return t.appPid===(null===(n=e.meta)||void 0===n?void 0:n.did)})))).sort(((e,t)=>t.createdAt-e.createdAt)).slice(0,200)),i(!1)}catch(e){i(!1),f(e.message)}})()}),[]);let g=null;return g=h?(0,R.jsx)(he.Z,{type:"error",style:{width:"100%",marginTop:8},children:h}):r?(0,R.jsx)(de.Z,{size:16}):c.length?(0,R.jsx)(Zt,{children:c.map((e=>(0,R.jsxs)(Et,{className:"middle-font-size space ".concat(p===e.appDid?"selected":""),onClick:()=>(e=>{u(e.appDid)})(e),children:[(0,R.jsxs)("div",{className:"left",children:[(0,R.jsx)("div",{className:"header",children:(0,R.jsx)(E.Z,{sx:{width:40,height:40},children:(0,R.jsx)(yt.Z,{did:e.appDid,size:40})})}),(0,R.jsxs)("div",{className:"body",children:[(0,R.jsx)(z.Z,{className:"text",children:e.name}),(0,R.jsx)(z.Z,{className:"text middle-font-size",children:(0,R.jsx)(Ee.Z,{responsive:!1,compact:!0,inline:!0,copyable:!1,size:12,did:e.appDid})})]}),(0,R.jsxs)(E.Z,{color:"text.secondary",className:"footer small-font-size",children:[o("blocklet.restoreFromServer.backupIn")," ",(0,b.B2)(e.createdAt,s)]})]}),(0,R.jsx)("div",{className:"right",children:(0,R.jsx)("div",{className:"more",children:(0,R.jsx)(K.Z,{onClick:()=>{},className:"more-btn",size:"large","aria-label":"more functions",children:(0,R.jsx)(wt.Z,{color:"disabled"})})})}),(0,R.jsx)("div",{className:"selected-container",children:(0,R.jsx)(D.default,{className:"selected-icon"})})]},e.appDid)))}):(0,R.jsx)(bt.Z,{children:o("common.empty")}),(0,R.jsxs)(At,{style:{width:"100%"},children:[(0,R.jsx)(Z.Z,{title:o("blocklet.restoreFromServer.selectTitle"),subTitle:o("blocklet.restoreFromServer.description")}),(0,R.jsx)(E.Z,{mt:4,mx:3,className:"main-body",children:g}),(0,R.jsx)(E.Z,{className:"main-footer",display:"flex",justifyContent:"center",children:(0,R.jsx)(B.Z,{sx:{width:"180px",height:"100%"},onClick:e=>{e.stopPropagation(),(()=>{const e=c.find((e=>e.appDid===p));t({did:e.appDid,name:e.appDid,title:e.name});const n=new URL(window.location.href);n.searchParams.set("appDid",e.appDid),n.searchParams.set("appName",e.name),x("/blocklets/restore/verify-ownership".concat(n.search))})()},color:"primary","data-cy":"install-blocklet-next-step",variant:"contained",disabled:r||h||!p,children:o("common.restore")})})]})}jt.defaultProps={onSelect:()=>{}};const At=(0,h.Z)(E.Z)(gt||(gt=(0,s.Z)(["\n .main-body {\n height: 50vh;\n "," {\n height: 80vh;\n }\n\n overflow: auto;\n }\n .main-footer {\n padding-top: 24px;\n padding-bottom: 24px;\n "," {\n position: fixed;\n bottom: 16px;\n width: 100%;\n padding-bottom: 0;\n }\n }\n"])),(e=>e.theme.breakpoints.down("md")),(e=>e.theme.breakpoints.down("md"))),Zt=(0,h.Z)(E.Z)(vt||(vt=(0,s.Z)(["\n display: block;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n max-width: 1000px;\n margin: 0 auto;\n\n .space {\n display: flex;\n margin: 8px auto;\n\n .selected-container {\n position: absolute;\n right: 0px;\n bottom: 0px;\n display: flex;\n -webkit-box-pack: end;\n justify-content: flex-end;\n align-items: flex-end;\n width: 30px;\n height: 30px;\n border-radius: 0px 0px 7px;\n color: rgb(255, 255, 255);\n overflow: hidden;\n transition: all 0.3s ease 0s;\n\n &::after {\n position: absolute;\n z-index: 0;\n left: 30px;\n top: 30px;\n display: block;\n width: 0px;\n height: 0px;\n border-width: 15px;\n border-style: solid;\n /* border-color: transparent rgb(29, 193, 199) rgb(29, 193, 199) transparent; */\n border-color: transparent ","\n "," transparent;\n transition: all 0.1s ease 0s;\n content: '';\n }\n\n .selected-icon {\n visibility: hidden;\n width: 60%;\n height: 60%;\n position: relative;\n z-index: 2;\n margin: 0px 1px 1px 0px;\n font-size: 16px;\n transition: all 0.2s ease 0s;\n }\n }\n }\n\n .space.selected {\n background-color: rgb(236, 251, 253);\n border-color: rgb(236, 251, 253);\n\n .selected-container {\n &::after {\n left: 0px;\n top: 0px;\n }\n\n .selected-icon {\n visibility: visible;\n }\n }\n }\n"])),(e=>e.theme.palette.primary.main),(e=>e.theme.palette.primary.main)),Et=(0,h.Z)("div")(kt||(kt=(0,s.Z)(["\n display: flex;\n position: relative;\n width: 100%;\n padding: 10px;\n border: 1 solid #ccc;\n cursor: pointer;\n\n .left {\n display: flex;\n align-items: flex-start;\n width: 100%;\n margin: 0px 20px 0px 0px;\n\n .header {\n padding: 5px 16px 0 0;\n }\n\n .body {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .footer {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n height: 100%;\n }\n }\n\n .right {\n display: flex;\n }\n\n "," {\n .left {\n display: flex;\n flex-direction: column;\n margin-right: 20px;\n\n .header {\n display: none;\n }\n\n .footer {\n margin-top: 6px;\n margin-left: 0px;\n padding: 2px 0px;\n height: auto;\n }\n }\n\n .right {\n width: auto;\n }\n\n .text {\n display: -webkit-box;\n overflow: hidden;\n -webkit-box-orient: vertical;\n }\n }\n\n // \u516c\u5171\u5c5e\u6027\n .middle-font-size {\n font-size: 14px;\n }\n\n .small-font-size {\n font-size: 12px;\n }\n"])),(e=>e.theme.breakpoints.down("md")));var St,Ct=n(95712);const Pt=(0,h.Z)("div")(St||(St=(0,s.Z)(["\n width: 100%;\n height: 100%;\n overflow-y: auto;\n"]))),Bt="verify-app-ownership-disk";const Dt=function(){const e=new URL(window.location.href),t=e.searchParams.get("appDid"),n=e.searchParams.get("appName"),{t:o}=(0,m.PE)(),{api:s,info:r}=(0,A.h6)(),{session:i,api:l}=(0,Ae.T)(),c=(0,a.useMemo)((()=>r?(0,y.RU)(r):""),[r]),[p,u]=(0,Be.Z)({isRestoring:!1,isComplete:!1,connectData:{isConnectOpen:!1,action:"",checkFn:()=>{},extraParams:{}}}),h=()=>{u({connectData:{isConnectOpen:!1}}),setTimeout((()=>{const e=new URL(d()(c,"blocklets/restore/restore-blocklet".concat(window.location.search)));window.location.href=e.href}),0)},f=async()=>{if(i.user)await(async()=>{if((await s.getBlocklet({input:{did:t}})).blocklet)return V.Z.error("Blocklet ".concat(n,"(").concat(t,") already exists")),void u({shouldReconnect:!0});u({connectData:{isConnectOpen:!0,action:Bt,extraParams:{appDid:t,restoreFrom:"disk"}}})})();else{var e,o,a;const n=new URL(window.location.href);n.pathname=d()(null!==(e=null===(o=window)||void 0===o||null===(a=o.env)||void 0===a?void 0:a.apiPrefix)&&void 0!==e?e:"/","/api/did/".concat(Bt,"/token")),n.searchParams.set("appDid",t),n.searchParams.set("restoreFrom","disk");const{data:s}=await l.get(n.href);i.login(h,{nw:s.url,openMode:"popup"})}};return(0,a.useEffect)((()=>{f()}),[]),(0,R.jsxs)(Pt,{children:[(0,R.jsx)(Z.Z,{title:o("blocklet.restoreBlocklet.verify.title"),subTitle:o("blocklet.restoreBlocklet.verify.subTitle")}),(0,R.jsxs)(E.Z,{textAlign:"center",mt:6,children:[(0,R.jsx)(Ct.Z,{did:t,size:128}),(0,R.jsxs)(E.Z,{mt:2,mb:2,children:[(0,R.jsx)(z.Z,{variant:"body2",children:n}),(0,R.jsx)(Ee.Z,{did:t})]}),(0,R.jsx)(B.Z,{variant:"contained",disabled:p.connectData.isConnectOpen,onClick:f,sx:{width:"180px",height:"100%"},children:o("blocklet.restoreBlocklet.verify.".concat(p.shouldReconnect?"reconnect":"verify"))})]}),p.connectData.isConnectOpen&&(0,R.jsx)(Te.Z,{appDid:t,visible:!1}),(0,R.jsx)(Ze.Z,{popup:!0,open:p.connectData.isConnectOpen,forceConnected:!1,saveConnect:!1,action:p.connectData.action,checkFn:l.get,checkTimeout:3e5,webWalletUrl:(0,ae.yP)(r),onSuccess:h,extraParams:p.connectData.extraParams,messages:{title:o("blocklet.restoreBlocklet.verify.title"),scan:o("blocklet.restoreBlocklet.verify.scan"),confirm:o("blocklet.restoreBlocklet.verify.confirm"),success:o("blocklet.restoreBlocklet.verify.success")},onClose:()=>{u({connectData:{isConnectOpen:!1}})}})]})};var Tt,Rt,Mt;function Lt(){const e=(0,u.Z)((e=>e.breakpoints.down("md"))),{t:t,locale:n}=(0,m.PE)(),{info:o}=(0,A.h6)(),{meta:s,setMeta:r}=(0,a.useState)({}),i=(0,a.useMemo)((()=>o?(0,y.RU)(o):""),[o]),c=(0,b.yP)(o),h=d()((0,b.Y5)(),"/blocklets/restore"),Z=[{key:"select",name:t("blocklet.restoreFromServer.selectTitle"),path:d()(h,"select")},{key:"verify-ownership",name:t("blocklet.restoreBlocklet.verify.title"),path:d()(h,"verify-ownership")},{key:"restore-blocklet",name:t("blocklet.restoreBlocklet.restore.title"),path:d()(h,"restore-blocklet")}],E=(0,R.jsx)(Qt,{className:"".concat(i?"logo-can-click":""),children:(0,R.jsx)(w.Z,{onClick:()=>{i&&window.open(i)},logo:e?(0,R.jsx)(v.Z,{width:"32",height:"32"}):(0,R.jsx)(k.Z,{width:"128",height:"48"})})});return(0,R.jsx)(x.W,{steps:Z,children:(0,R.jsx)(f.Z,{blockletMeta:{...s,registryUrl:""},locale:n,useOfSkeleton:!1,navLogo:E,headerEndAddons:(0,R.jsx)(g.Z,{webWalletUrl:c,SessionContext:j.B3}),pcWidth:"80%",style:{height:"100%"},logoUrl:null===s||void 0===s?void 0:s.logo,children:(0,R.jsxs)(Ft,{children:[(0,R.jsx)(p.Global,{styles:Nt}),(0,R.jsxs)(l.Routes,{children:[(0,R.jsx)(l.Route,{path:"select",element:(0,R.jsx)(jt,{onSelect:r})}),(0,R.jsx)(l.Route,{path:"verify-ownership",element:(0,R.jsx)(Dt,{})}),(0,R.jsx)(l.Route,{path:"restore-blocklet",element:(0,R.jsx)(lt,{})}),(0,R.jsx)(l.Route,{path:"*",element:(0,R.jsx)(l.Navigate,{to:"select".concat(window.location.search),replace:!0})})]})]})})})}const Nt=(0,p.css)(Tt||(Tt=(0,s.Z)(["\n html,\n body,\n #root,\n #root > .wrapper {\n height: 100%;\n }\n"]))),Ft=h.Z.div(Rt||(Rt=(0,s.Z)(["\n "," {\n padding-top: 34px;\n }\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n\n .bottom-button {\n min-width: 200px;\n }\n"])),(e=>e.theme.breakpoints.up("md"))),Qt=h.Z.div(Mt||(Mt=(0,s.Z)(["\n margin-top: -1px;\n &.logo-can-click {\n cursor: pointer;\n }\n"])));function Ot(){const{search:e}=window.location;return e.includes("restoreFrom=server")?(0,R.jsx)(Lt,{}):(0,R.jsx)(ht,{})}},99641:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o,s,a=n(71171),r=n(55898),i=n.n(r),l=n(33518),c=n(96266);function d(e){let{logo:t,name:n,subname:o,previousData:s,...a}=e,r=(0,c.jsx)(p,{logo:t}),i=n,l=o;return s.logo&&(r=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(p,{logo:t,className:"left-fade-in-ele"}),(0,c.jsx)(p,{logo:s.logo,className:"postion-abs left-fade-out-ele"})]})),s.name&&s.name!==n&&(i=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"right-fade-in-ele",style:{display:"inline-block"},children:n}),(0,c.jsx)("span",{className:"postion-abs right-fade-out-ele",children:s.name})]})),s.subname&&s.subname!==o&&(l=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("span",{className:"right-fade-in-ele",style:{display:"inline-block"},children:o}),(0,c.jsx)("span",{className:"postion-abs right-fade-out-ele",children:s.subname})]})),(0,c.jsx)(h,{...a,children:(0,c.jsxs)("div",{className:"logo-inner",children:[(0,c.jsx)("div",{className:"logo-img-content",children:r}),(0,c.jsxs)("div",{className:"logo-info ".concat(n||o?"":"zero-left"),children:[(0,c.jsx)("div",{className:"logo-name",children:i}),(0,c.jsx)("div",{className:"logo-subname",children:l})]})]})})}function p(e){let{logo:t,...n}=e;return(0,c.jsx)(u,{...n,children:t})}d.propTypes={logo:i().element.isRequired,name:i().string,subname:i().string,previousData:i().object},d.defaultProps={name:"",subname:"",previousData:{logo:"",name:"",subname:""}};const u=l.Z.div(o||(o=(0,a.Z)(["\n display: block;\n > * {\n display: block;\n }\n"]))),h=l.Z.div(s||(s=(0,a.Z)(["\n position: relative;\n display: block;\n\n .logo-inner {\n display: flex;\n align-items: center;\n height: 100%;\n .logo-img-content {\n position: relative;\n display: block;\n }\n .logo-info {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-left: 10px;\n letter-spacing: 0.1px;\n &.zero-left {\n margin-left: 0%;\n }\n .logo-name {\n position: relative;\n line-height: 16px;\n font-size: 16px;\n color: #121319;\n }\n .logo-subname {\n position: relative;\n line-height: 13px;\n font-size: 13px;\n color: #7d8085;\n }\n }\n }\n\n .postion-abs {\n position: absolute;\n left: 0;\n top: 0;\n height: 100%;\n }\n\n .right-fade-out-ele {\n animation: right-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .right-fade-in-ele {\n animation: right-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes right-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n }\n\n @keyframes right-fade-in {\n 0% {\n opacity: 0;\n transform: translate(8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n\n .left-fade-out-ele {\n animation: left-fade-out ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: forwards;\n }\n\n .left-fade-in-ele {\n animation: left-fade-in ease 0.5s;\n animation-delay: 2s;\n animation-fill-mode: both;\n }\n\n @keyframes left-fade-out {\n 0% {\n opacity: 1;\n transform: translate(0, 0);\n }\n 100% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n }\n\n @keyframes left-fade-in {\n 0% {\n opacity: 0;\n transform: translate(-8px, 0);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n }\n"])))},60344:(e,t,n)=>{"use strict";n.d(t,{hi:()=>a,od:()=>s.a});var o=n(10458),s=n.n(o);s().defaults.timeout=1e4;const a=s().create()},84584:(e,t,n)=>{"use strict";n.d(t,{EJ:()=>v,Jf:()=>g,LQ:()=>p,Nb:()=>u,UV:()=>k,Xv:()=>c,Z3:()=>w,ag:()=>m,mo:()=>h,nD:()=>d,nU:()=>x,w2:()=>f});var o=n(82434),s=n.n(o),a=n(77277),r=n(65873),i=n(2842),l=n(60344);function c(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/"),o=n.at(-4),s=n.at(-2);return(0,i.xn)(t,"space",o,"apps",s,"explorer?key=/apps/".concat(s,"/.did-objects/").concat(s,"/"))}function d(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/").at(-4);return(0,i.xn)(t,"space",n)}function p(e){return e.replace(/\/$/,"").split("/").at(-4)}async function u(e){try{if(!s()(e))return!1;const{headers:t}=await l.hi.head(e,{timeout:5e3});return"true"===t["x-listable"]&&"true"===t["x-readable"]&&"true"===t["x-writeable"]}catch(t){return console.error(t),!1}}function h(e){var t;return(null===e||void 0===e||null===(t=e.find((e=>e.key===a.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_BACKUP_ENDPOINT)))||void 0===t?void 0:t.value)||""}function m(e){const t=new URL(e);return(0,i.xn)(t.origin,t.pathname)}async function f(e){try{if(!s()(e))return!1;const t=m(e),n=(0,i.xn)(t,"space/api/did/one-click-authorization/token"),{status:o,data:a}=await l.hi.get(n,{timeout:5e3});return 200===o&&(0,r.isObject)(a)}catch(t){return console.error(t),!1}}async function x(e){let{timeout:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{timeout:3e3};try{if(!s()(e))return"";const{headers:n}=await l.hi.head(e,{timeout:t}),o=n["x-space-name"];return o?decodeURIComponent(o):""}catch(n){return console.error(n),""}}function g(e){const t=e.replace(/\/api\/space\/.+/,""),n=e.replace(/\/$/,"").split("/").at(-4);return(0,i.xn)(t,"/api/space/nft/display?spaceDid=".concat(n))}const v=e=>{var t;return(null===e||void 0===e||null===(t=e.configs)||void 0===t||null===(t=t.find((e=>e.key===a.BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPACE_ENDPOINT)))||void 0===t?void 0:t.value)||null};async function k(e){const t={};return t.did=p(e),t.name=await x(e),t.url=function(e){return null===e||void 0===e?void 0:e.replace(/\/api\/space\/.+/,"")}(e),t.endpoint=e,t}async function w(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{timeout:3e4,withSearchParams:!0};if(!(0,r.isString)(e))throw new Error("url(".concat(e,") must be a string"));const o=e.startsWith("http")?e:"https://".concat(e),s=new URL(o),{data:a}=await l.hi.get((0,i.xn)(s.origin,"/__blocklet__.js?type=json"),{timeout:n.timeout}),c=null===(t=a.componentMountPoints.findLast((e=>"z8iZnaYxnkMD5AKRjTKiCb8pQr1ut8UantAcf"===e.did)))||void 0===t?void 0:t.mountPoint;if(!c)throw new Error("MountPoint(".concat(c,") not found"));const d=(0,i.xn)(s.origin,c);return n.withSearchParams&&s.searchParams.get("spaceDid")?(0,i.xn)(d,"?spaceDid=".concat(s.searchParams.get("spaceDid"))):d}},47595:(e,t,n)=>{"use strict";var o=n(71600);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var s=o(n(56930)),a=n(96266);t.default=(0,s.default)((0,a.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5-1-1h-5l-1 1H5v2h14V4z"}),"DeleteOutline")},94552:(e,t,n)=>{"use strict";var o=n(71600);t.Z=void 0;var s=o(n(56930)),a=n(96266);t.Z=(0,s.default)((0,a.jsx)("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"}),"Launch")},83294:(e,t,n)=>{"use strict";var o=n(71600);t.Z=void 0;var s=o(n(56930)),a=n(96266);t.Z=(0,s.default)((0,a.jsx)("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"}),"MoreVert")},53616:(e,t,n)=>{var o=n(26849);e.exports=function(e){return o(e).toLowerCase()}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[3803],{43803:(e,n,i)=>{i.r(n),i.d(n,{default:()=>t});const t={setup:{connect:{title:"Unterschrift erforderlich",scan:"Verbinden Sie Ihre DID Wallet, um der Besitzer dieses Servers zu werden",confirm:"\xdcberpr\xfcfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Dein Konto ist mit diesem Server verbunden"},keyPair:{title:"Ben\xf6tigtes abgeleitetes KeyPair",scan:"Verbinden Sie Ihre DID Wallet, um ein Schl\xfcsselpaar f\xfcr diese App zu generieren",confirm:"Bitte \xfcberpr\xfcfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Ihr Schl\xfcsselpaar wird sicher gespeichert"},verify:{title:"Eigentumsnachweis erforderlich",scan:"Verbinden Sie Ihre DID-Wallet, um Besitznachweise bereitzustellen",confirm:"\xdcberpr\xfcfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Dein Konto ist mit diesem Server verbunden."},accept:{title:"Serverzertifikate akzeptieren Besitznachweise",scan:"Verbinden Sie Ihre DID-Brieftasche, um Eigentumsnachweise bereitzustellen",confirm:"\xdcberpr\xfcfe diese Operation in deiner DID-Geldb\xf6rse",success:"Dein Konto ist mit diesem Server verbunden"},title:"Richte Blocklet-Server ein",steps:{eula:"Endnutzer-Lizenzvereinbarung",eulaFooter:"Ich habe die Bedingungen der EULA gelesen und akzeptiere sie.",connect:"Verbinde Owner-DID-Wallet",verify:"Eigentumsrechte verifizieren",basicSettings:"Grundeinstellungen",launchApp:"Starte Anwendung",complete:"Vollst\xe4ndig"},congratulation:"Herzlichen Gl\xfcckwunsch! Dein Blocklet Server ist sicher und bereit zur Verwendung",redirectButton:"Bring mich zum Dashboard!"},login:{loginTo:"Verbinden mit",description:"Nur Serverbesitzer und genehmigte Mitglieder k\xf6nnen auf das Dashboard zugreifen",dialog:{title:"Verbinden Sie die DID Wallet",scan:"Verbinden Sie Ihre DID-Brieftasche, um Ihren Reisepass bereitzustellen",confirm:"Best\xe4tigen Sie in Ihrer DID-Brieftasche",success:"Du bist erfolgreich verbunden"},switchDid:{title:"Schalte DID Wallet um",scan:"Scannen Sie den folgenden QR-Code, um das Konto zu wechseln",confirm:"Best\xe4tigen Sie den Wechsel in Ihrem DID-Wallet",success:"Erfolgreich umgeschaltet"},switchSpecifiedDid:{title:"Wechsle auf DID Wallet",scan:"Du musst DID auf {did} umschalten, um die folgenden Aktionen abzuschlie\xdfen",confirm:"Best\xe4tige den Wechsel in deiner DID-Brieftasche",success:"Erfolgreich gewechselt"},connect:{title:"Verbinden Sie das DID-Wallet",scan:"Verbinden Sie Ihre DID Wallet, um einen Pass zu hinterlegen",confirm:"Best\xe4tige in deinem DID Wallet",success:"Du bist erfolgreich verbunden"}},acceptServer:{title:"Behauptung Server mit Ownership NFT",tooltip:"Wenn Sie ein Server-Besitzernft erhalten haben, k\xf6nnen Sie Ihren Eigent\xfcmerpass mit diesem Link beanspruchen."},exchangePassport:{title:"Passeport gegen NFT austauschen",success:"Sie haben Ihren Reisepass erfolgreich ausgetauscht und sich mit dem Reisepass angemeldet",login:"Anmelden",tooltip:"Wenn du ein NFT aus der Sammlung {collections} besitzt, kannst du deinen Reisepass mit diesem Link austauschen.",dialog:{title:"Tausche Reisepass mit NFT",scan:"Verbinden Sie Ihre DID-Wallet, um Ihr NFT vorzustellen und einen Reisepass zu erhalten",confirm:"W\xe4hle NFT in deiner DID Wallet aus",success:"Der Reisepass wurde erfolgreich ausgetauscht"}},payablePassport:{title:"Pass mit Zahlung kaufen",tooltip:"Wenn Sie keinen Reisepass haben, k\xf6nnen Sie \xfcber diesen Link einen Reisepass erwerben."},sidebar:{dashboard:"Dashboard",blocklets:"Blocklets",console:"Konsole",settings:"Einstellungen"},system:{total:"Gesamt",used:"Benutzt",free:"Frei",cores:"Anzahl der Kerne",instances:"Anzahl der Instanzen"},common:{invalid:"Ung\xfcltig",about:"\xdcber",access:"Zugriff",accessKey:"Zugriffsschl\xfcssel",action:"Aktion",actions:"Aktionen",add:"Hinzuf\xfcgen",address:"Adresse",afterTime:"Nach {time}",allow:"Erlauben",alreadyExist:"Existiert bereits",approve:"Genehmigen",approved:"Genehmigt",appUrl:"APP-URL",auditLogs:"Pr\xfcfspur",author:"Autor",avatar:"Avatar",back:"Zur\xfcck",basic:"Grundlegend",basicInfo:"Grundinformation",profile:"Profil",bind:"Binden",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets-Speicher",cacheStorage:"Cache-Speicher",cancel:"Abbrechen",certificate:"Zertifikat",category:"Protokollthema",click:"Klicken zum Kopieren",close:"Schlie\xdfen",collapseAll:"Alles zusammenklappen",community:"Gemeinschaft",complete:"Komplett",componentBasicInfo:"Komponentengrundinformation",components:"Komponenten",config:"Konfigurieren",configuration:"Konfiguration",configNavigation:"Navigation",configSuccess:"Konfiguration erfolgreich",confirm:"Best\xe4tigen",connect:"Verbinden",console:"Konsole",continue:"Weitermachen",continueWith:"Weitermachen mit",copiedTip:"Kopiert",copyAndClose:"Kopieren & Schlie\xdfen",copyTip:"Klicken zum Kopieren",coreStorage:"Kernspeicher",cpu:"CPU",create:"Erstellen",createSuccess:"Erstelle Zugriffsschl\xfcssel",created:"Erstellt am",createdAt:"Erstellt am",createdBy:"Erstellt von",dAddress:"Dezentrale Identifikatoren (DID)",dataStorage:"Speicher auf lokaler Festplatte",delConfirm:"L\xf6schen",delConfirmDescription:"Best\xe4tigen Sie das L\xf6schen von {data}?",delete:"L\xf6schen",dependents:"Abh\xe4ngige",description:"Beschreibung",detail:"Detail",did:"HAST",disk:"Festplatte",diskInfo:"Festplatteninformation",docker:"IST Docker",documentation:"Dokumentation",domain:"Domain",downgradeTo:"Herabstufung auf",download:"Downloaden",downloading:"Herunterladen",edit:"Bearbeiten",email:"E-Mail",phone:"Telefon",empty:"Leer",emptyData:"Keine Ergebnisse gefunden",enable:"Aktivieren",engine:"Motor",env:"Umgebung",environment:"Umgebung",expandAll:"Alle erweitern",expired:"Abgelaufen",expires:"L\xe4uft ab",export:"Exportieren",externalIp:"Externe IP",failed:"Fehlgeschlagen",filter:"Protokollfilter",fingerprint:"Fingerabdruck",finish:"Fertig",forbid:"Verbieten",free:"Frei",general:"Allgemein",gitpod:"IST Gitpod",goEULA:"Klicken Sie hier, um die 'Endbenutzer-Lizenzvereinbarung' anzuzeigen",group:"Gruppe",image:"IST Bild",install:"Installieren",installed:"Installiert",installedAt:"Installiert bei",installSuccess:"Erfolgreich installiert",installing:"Installieren",internalIp:"Interne IP",introduction:"Einf\xfchrung",invite:"Einladen",inviting:"Einladen",ip:"IP",isPublic:"\xd6ffentlich",issue:"Problem",issuer:"Emittent",item:"Artikel",joined:"Beigetreten",key:"Schl\xfcssel",lastPublishedAt:"Ver\xf6ffentlicht am",launcher:"Starterinformationen",leavePageTip:"Bist du sicher, die Seite zu verlassen?",link:"Link",loading:"Laden",log:"Logs anzeigen",logStorage:"Protokollspeicherung",login:"Anmelden",logo:"Logo",logout:"Abmelden",logs:"Protokolle",manageTeam:"Team verwalten",marketplace:"Marktplatz",member:"Mitglied",members:"Mitglieder",memory:"Erinnerung",meta:"Meta Daten",analytics:"Analytik",runtime:"Laufzeit",traffic:"Verkehr",more:"Mehr",mountPoint:"Berggipfel",name:"Name",next:"N\xe4chstes",no:"Nein",noData:"Keine Eintr\xe4ge vorhanden",notice:"Unerwartete schlechte Dinge werden passieren, wenn du das nicht liest!",noticeTitle:"Hinweis",notification:"Benachrichtigung",open:"\xd6ffnen",management:"Management",os:"Betriebssystem",overview:"\xdcbersicht",owner:"Besitzer",page404:"404 Seite",passport:"Pass",permission:"Genehmigung",port:"Hafen",pre:"Vorherige",preferences:"Pr\xe4ferenzen",preview:"Vorschau",protected:"Gesch\xfctzt",protocol:"Protokoll",publish:"Ver\xf6ffentlichen",published:"Ver\xf6ffentlicht",purchase:"Kauf",readMore:"Mehr",redirect:"Umleiten",redirectCode:"Weiterleitungscode",redirectPermanently:"Permanente Weiterleitung",redirectTemporary:"Tempor\xe4re Umleitung",redirectUrl:"Weiterleitungs-URL",rewrite:"Umformulieren",release:"Freigabe",rewriteUrl:"URL umschreiben",reject:"Ablehnen",reload:"Neu laden",remark:"Bemerkung",remove:"Entfernen",removeSuccess:"Erfolgreich entfernt",renew:"Erneuern",reportIssue:"Melde ein Problem",required:"Erforderlich",requiredErrorText:"{name} wird ben\xf6tigt",resource:"Ressource",restart:"Neustart",restore:"Wiederherstellen",retry:"Wiederholen",revoke:"Widerrufen",role:"Rolle",running:"Laufen",runtimeInfo:"Laufzeitinformationen",save:"Speichern",saveChanges:"\xc4nderungen speichern",saveSuccess:"Erfolgreich gespeichert",scheduleFailed:"Terminkalender fehlgeschlagen",scheduleSuccess:"Erfolgreich geplant",scope:"Bereich",screenshot:"Screenshot",search:"Suche",security:"Sicherheit",serverDid:"Server DID",serverVersion:"Serverversion",setting:"Einstellungen",start:"Start",status:"Status",stop:"Stopp",storage:"Speicher",backup:"Backup",store:"Gesch\xe4ft",succeeded:"Erfolgreich",subscription:"Abonnement",support:"Unterst\xfctzung",switch:"Schalter",team:"Team",the:"Der",timeAgo:"{time} vor",title:"Titel",type:"Typ",unavailable:"Nicht verf\xfcgbar",update:"Aktualisieren",updateAvailable:"Neue Version {version} verf\xfcgbar",updatedAt:"Aktualisiert am",updatedBy:"Aktualisiert von",upgrade:"Upgrade",upgradeTo:"Upgrade auf",upgrading:"Upgrade",uptime:"Betriebszeit",url:"URL",valid:"G\xfcltig",value:"Wert",version:"Version",visit:"Besuch",waiting:"Warten",webhook:"Integrationen",yes:"Ja",invalidParam:"Ung\xfcltige Parameter",launch:"Start",price:"Preis",redirecting:"Umleitung",error:"Fehler",reminder:"Erinnerung",normal:"Normal",gateway:"Gateway",verifyNFT:"Verifizieren Sie NFT",errorMessage:"Fehlermeldung",slugifyHint:"Der tats\xe4chliche Einh\xe4ngepunkt wird sein: {value}",strategy:"Strategie",auto:"Auto",manual:"Handbuch",progress:"In Bearbeitung",startTime:"Startzeit",endTime:"Endzeit",selected:"Ausgew\xe4hlt",timeoutError:"Zeit\xfcberschreitungsfehler",tags:"Tags",publishToStore:"Im Store ver\xf6ffentlichen",connectToStore:"Verbinden Sie mit dem Gesch\xe4ft",uploaded:"Hochgeladen",uploadToStore:"Upload in den Shop",upload:"Hochladen"},blocklet:{external:"Extern",notFound:"Blocklet auf diesem Server nicht gefunden, vielleicht wurde es gel\xf6scht",installFromMarket:"Installiere neue Blocklets",installFromUrl:"Installiere von URL",installFromCreate:"Erstellen Sie Blocklet",installFromDiskBackup:"Wiederherstellen von diesem Server",installedAt:"Installiert am",internal:"Intern",startedAt:"Gestartet um",stoppedAt:"Gestoppt bei",urlEmptyTip:"Kein Zugriffs-URL",goToAddRule:"Gehe zu Hinzuf\xfcgen",services:"\xd6ffentliche Dienste",upstreamPort:"Upstream-Anschluss",noService:"Keine Dienstleistungen",appId:"App DID",appPid:"Permanente DID",alsoKnownAs:"Auch bekannt als",skSource:"Besitzer Wallet",reloadSuccess:"Blocklet wurde erfolgreich neu geladen",statusTip:"Blocklet ist {status}",initialUptime:"Weniger als 1m",dashboard:"Blocklet-Dashboard",noComponent:"Die Anwendung hat keine Komponenten und kann nicht gestartet werden",fromUrl:{title:"Blocklet installieren",label:"Blocklet Meta URL",description:"Die URL sollte auf die Meta-Datei des Blocklets zeigen. Wenn Sie auf eine lokale Datei verweisen m\xf6chten, f\xfcgen Sie bitte das Pr\xe4fix file:// hinzu, z.B. file:///Users/foo/blocklet.json.",confirm:"Installieren",step0:"Eingabe-URL",step1:"Best\xe4tige Metadaten",existTipPrefix:"Blocklet mit der gleichen DID existiert bereits, die Version ist",existTipSuffix:"Bitte installieren Sie eine h\xf6here Version."},action:{stopDescription:"Das Stoppen des Blocklets macht seine \xf6ffentlichen Schnittstellen unzug\xe4nglich, was zu Fehlern f\xfcr Endbenutzer f\xfchren kann",stopComponentDescription:"Das Stoppen des Komponenten macht ihre \xf6ffentlichen Schnittstellen unzug\xe4nglich, was m\xf6glicherweise zu Fehlern f\xfcr Endbenutzer f\xfchren kann.",confirmStop:"Ja, H\xf6r auf",cancelDownloadDescription:"Download von {name} abbrechen?",removeApplicationDescription:"Das Entfernen der Anwendung l\xf6scht den von dieser Anwendung generierten Code und die Daten, die nicht wiederhergestellt werden k\xf6nnen, wenn Sie keine Sicherungskopien haben",removeApplicationAfterBackup:"Sichern und entfernen Sie die Anwendung. Sie k\xf6nnen die Anwendung von diesem Server wiederherstellen, wenn Sie sie ben\xf6tigen.",removeApplicationComplete:"Entferne sowohl den Code als auch die Daten f\xfcr diese Anwendung",removeComponentDescription:"Das Entfernen der Komponente l\xf6scht den vom Komponente generierten Code und Daten, die nicht wiederhergestellt werden k\xf6nnen, wenn Sie keine Sicherungskopien haben.",removeComponentKeepData:"Behalte die Daten f\xfcr dieses Bauteil, entferne nur den Code",removeComponentComplete:"Entferne sowohl den Code als auch die Daten f\xfcr diese Komponente",confirmRemove:"Ja, entferne es",confirmComponentRemove:"Ja, Entferne es",upgradeDescription:"Das Upgrade des Blocklets wird es vor\xfcbergehend nicht verf\xfcgbar machen. Sind Sie sicher, dass Sie fortfahren m\xf6chten?",confirmUpgrade:"Ja, aktualisieren Sie es",confirmRestart:"Ja, starte es neu",restartDescription:"Das Blocklet wird vor\xfcbergehend angehalten und k\xf6nnte aufgrund einer Konfigurations\xe4nderung m\xf6glicherweise nicht neu gestartet werden."},dev:{modeTip:"Bitte schalten Sie den Blocklet Server in den DEBUG-Modus um"},index:{tableTitle:"Verwalten Sie Ihre Blocklets",noBlocklet:"Keine Blocklets in diesem Blocklet Server gefunden, installieren Sie ein Blocklet aus dem Marktplatz, um zu beginnen."},admin:{iframeTitle:"Blocklet Admin Schnittstelle",title:"Admin-Oberfl\xe4che",noContent:"Dieses Blocklet hat keine Administrator-Schnittstelle",securityError:"Sicherheitsfehler: Kann die Admin-URL nicht \xf6ffnen, da auf einen Cross-Origin-Frame zugegriffen wird"},config:{name:"App-Name",description:"App-Beschreibung",sk:"Geheimer Schl\xfcssel f\xfcr die App-Brieftasche",logoSquare:"App-Logo",logoRect:"Rechteckiges Logo",logoRectDesc:"Normalerweise oben auf der Seite angezeigt, Standard-App-Logo",logoFavicon:"Favicon",logoFaviconDesc:"Normalerweise in der Adressleiste des Browsers oder auf der Registerkarte angezeigt, standardm\xe4\xdfig das App-Logo",clusterSize:"Instanzanzahl beim Ausf\xfchren dieses Blockets im Cluster-Modus",copyrightOwner:"Urheberrecht Eigent\xfcmer (im Fu\xdfbereich anzeigen)",copyrightYear:"Urheberrecht {year} (Im Footer anzeigen)",deletable:{name:"L\xf6sche Schutz",enable:"Dieses Blocklet kann derzeit NICHT gel\xf6scht werden",disable:"Dieses Blocklet kann derzeit gel\xf6scht werden."},walletType:{name:"Brieftasche-Typ",description:"Blocklet Instanz Wallet Typ, wird die abgeleitete DID \xe4ndern"},languages:"Unterst\xfctzte Sprachen",selectLanguagesTip:"Passe die Reihenfolge an, indem du entfernst und erneut hinzuf\xfcgst",languagesSearch:"Suche nach dem lokalen Namen, englischen Namen oder ISO-Code des Landes...",passportColor:"Passfarbe",appUrl:"App-URL",access:{title:"Wer kann darauf zugreifen",description:"Wer kann das Blocklet anzeigen?",useDefault:"Verwenden Sie die Standardeinstellungen",defaultDescription:"Verwenden Sie die Standardkonfiguration der Anwendung",whoCanAccess:{all:{title:"F\xfcr alle zug\xe4nglich",description:"Offen f\xfcr die Welt, jeder kann ohne Reisepass darauf zugreifen"},owner:{title:"Nur ich habe Zugriff",description:"Sie m\xfcssen den Besitzerpass vorlegen, um auf diese Anwendung zugreifen zu k\xf6nnen"},invited:{title:"Nur eingeladene Personen haben Zugriff",description:"Sie k\xf6nnen Mitglieder sp\xe4ter auf der Administrationsseite einladen"}},publicToStore:"\xd6ffentlich im Gesch\xe4ft",publicInstanceTip:"Die Zugriffsadresse dieses Blocklets wird im Store angezeigt (zusammen mit Ihrer DID zur Entgegennahme von Spenden)",updatedTip:"Zugriffskontrolle ge\xe4ndert"},changedTip:"Konfiguration aktualisiert, bitte Blocklet neu starten",missingRequired:"Fehlende erforderliche Konfiguration, um das Blocklet zu starten",gotoFix:"Gehe zur Reparatur",environment:{key:"Konfigurationsschl\xfcssel",value:"Konfigurationswert",keyValueRequired:"Konfigurationsschl\xfcssel und Wert m\xfcssen angegeben werden",invalidKey:"Die Konfigurationsschl\xfcssel d\xfcrfen nicht mit BLOCKLET_ oder COMPONENT_ beginnen.",deleteForbidden:"Diese Konfiguration ist erforderlich und sollte nicht gel\xf6scht werden",tip:"Konfigurationen, die mit BWA_ beginnen, sollten keine sensiblen Informationen enthalten, da sie an den Browser gesendet werden."},dangerZone:"Gefahrenzone",blockletTypeChangeTip:"Der Brieftaschentyp wird zu <b>{value}</b> ge\xe4ndert",appDidChangeTip:"Diese Operation \xe4ndert die DID der Anwendung und f\xfchrt zu den folgenden Problemen. Bitte best\xe4tigen Sie dies nach sorgf\xe4ltiger Bewertung:",appDidChangeTipL1:"Das Benutzerkonto, das mit dieser Anwendung verbunden ist, wird sich \xe4ndern",appDidChangeTipL2:"Der DID-Domainname der Anwendung wird sich \xe4ndern und der urspr\xfcngliche Domainname wird ung\xfcltig werden",appSkChangeTip:"Du \xe4nderst den geheimen Anwendungsschl\xfcssel",walletTypeTitle:"Aktualisiere Wallet-Typ",appSkTitle:"Aktualisiere Anwendungsgeheimnis",sharedToAllComponents:"Wird an alle Komponenten geteilt werden",session:{ttl:"G\xfcltigkeitsdauer der Anmeldesitzung (Der Benutzer wird gebeten, sich erneut anzumelden, wenn keine Aktivit\xe4t auf dieser Seite f\xfcr {day} Tage festgestellt wird)",day:"{day} Tag",days:"{day} Tage"},clearCache:{name:"Cache-Verwaltung",purpose:"Verwalten Sie Dateien, die im Router und Blocklet-Dienst zwischengespeichert sind",title:"Cache l\xf6schen best\xe4tigen?",action:"Cache l\xf6schen",success:"Erfolgreich {count} Cache-Eintr\xe4ge gel\xf6scht",description:"Bist du sicher, dass du zwischengespeicherte Dateien im Router und Blocklet-Service l\xf6schen m\xf6chtest? Diese Operation kann in naher Zukunft zu einer leichten Leistungseinbu\xdfe f\xfchren."}},overview:{source:"Quelle",deployedFrom:"Bereitgestellt von",accessControl:"Zugangskontrolle",viewInStore:"Im Gesch\xe4ft anzeigen"},diskInfo:{empty:"Daten \xfcber die Festplatte sind derzeit nicht verf\xfcgbar!",appDir:"App-Verzeichnis",dataDir:"Datenverzeichnis",logDir:"Log-Verzeichnis",cacheDir:"Cache-Verzeichnis"},runtimeInfo:{noRunning:"Laufzeitinformationen sind verf\xfcgbar, wenn das Blocklet ausgef\xfchrt wird!",memoryUsage:"Speichernutzung",cpuUsage:"CPU-Auslastung",uptime:"Betriebszeit",port:"Hafen",processId:"Prozess-ID"},dist:{downloadLink:"Download-Link",verify:"\xdcberpr\xfcfen"},status:{added:"Hinzugef\xfcgt",waiting:"Warten",downloading:"Herunterladen",extracting:"Extrahieren",installing:"Installieren",upgrading:"Aktualisieren",installed:"Installiert",created:"Erstellt",starting:"Beginnend",running:"Laufen",stopping:"Anhalten",stopped:"Gestoppt",error:"Fehler",deleting:"L\xf6schen",corrupted:"Korrupt",purchasing:"Warten auf den Kauf",purchased:"Gekauft",verifying:"Kauf \xfcberpr\xfcfen"},list:{download:"Herunterladen",star:"Stern"},component:{container:"Globale Konfiguration",showContainer:"Zeige globale Konfiguration",didSpaceConfig:"Konfiguriere DID Spaces",didSpaceConfigTip:"Schlie\xdfen Sie den folgenden Autorisierungsprozess ab, um Anwendungsdaten in DID Spaces zu speichern",didSpaceConnected:"Speicherung berechtigt f\xfcr: {endpoint}",checkUpdateTitle:"Nach Updates suchen",updateTitle:"Komponenten aktualisieren",noUpdate:"Keine Komponenten zum Aktualisieren",add:"Komponente hinzuf\xfcgen",selectComponent:"W\xe4hlen Sie Komponente",selectRegistry:"W\xe4hle Blocklet Store",selectRegistryTip:"Sie k\xf6nnen den Blocklet Store umschalten, um mehr Komponenten zu sehen",selectInstance:"W\xe4hlen Sie die Instanz",selectInstanceTip:"Sie k\xf6nnen eine vorhandene Instanz ausw\xe4hlen oder eine neue Instanz erstellen. Vorhandene Instanzen verwenden zuvor gespeicherte Konfigurationen und Daten.",newInstance:"Erstelle eine neue Instanz",noComponent:"Keine Komponenten",mountPoint:"Was ist der Einh\xe4ngepunkt?",mountPointTip:"Wenn Sie den Einh\xe4ngepunkt auf '/my-prefix' setzen, werden alle Anfragen, die mit diesem Einh\xe4ngepunkt beginnen, an das ausgew\xe4hlte Bauteil weitergeleitet.",delete:"L\xf6sche Komponente",deleteDescription:"Dieses Bauteil wird nach dem L\xf6schen nicht zug\xe4nglich sein. L\xf6schen best\xe4tigen?",purchase:"Zahlung erforderlich",tip:{stopBlocklet:"Bitte halten Sie zuerst das Blocklet an.",requiredBy:"Die Komponente wird von {name} ben\xf6tigt"},choose:"W\xe4hlen",addWithName:"F\xfcge Komponente hinzu zu {name}",installingCanCloseWindowTip:"Installation der Komponente im Hintergrund, Sie k\xf6nnen dieses Fenster sicher schlie\xdfen",installSuccessTip:"Herzlichen Gl\xfcckwunsch, das Bauteil wurde erfolgreich installiert!",missDownloadTokenTip:"Bezahlte Komponente kann ohne g\xfcltiges Download-Token nicht hinzugef\xfcgt werden",purchaseComponentSecondCheckTip:"Bitte pr\xe4sentieren Sie Ihren Blocklet-Kauf-NFT, um fortzufahren",installComponentError:"Es ist ein Fehler beim Installieren des Komponenten aufgetreten, bitte versuche es erneut",downloadComponentError:"Beim Herunterladen des Komponenten ist ein Fehler aufgetreten, bitte versuchen Sie es erneut",addComponentTip:{introduction:"Willkommen im Add Component Assistenten",isFree:"Sie k\xf6nnen <b>{name}</b> kostenlos als Komponente verwenden;",isPurchase:"Du musst das NFT \xfcberpr\xfcfen, bevor du <b>{name}</b> als Komponente verwendest",belowInformation:"Unten befinden sich die Informationen f\xfcr die Komponente:",verifyNFT:"Bitte w\xe4hlen Sie die NFT-\xdcberpr\xfcfungsmethode",config:"Bitte f\xfcllen Sie die Konfiguration des Komponenten aus",environment:"Bitte f\xfcllen Sie die Umgebung der Komponente aus",fromUrl:"Komponente von URL hinzuf\xfcgen"},addNext:"F\xfcge {name} hinzu",upgradeNext:"Upgrade {name}",setting:"Einstellungen",components:"Abh\xe4ngigkeiten von Komponente {name}",noDependencies:"{name} hat keine Abh\xe4ngigkeiten",relatedComponents:"Verbundene Komponenten",required:"Erforderlich"},router:{urlPath:"URL Pfad",noRunning:"Der Blocklet ist derzeit nicht gestartet. Nicht in der Lage, \xfcber die folgende Adresse zuzugreifen!",securitySetting:"Sicherheitseinstellung",checkUrlAccessible:"\xdcberpr\xfcfen Sie die Zug\xe4nglichkeit der Adresse",urlInaccessible:"Es kann aufgrund von Netzwerkproblemen sein, dass die Adresse vor\xfcbergehend nicht erreichbar ist.",noAccessibleUrl:"Keine zug\xe4ngliche URL",domainLockTooltip:"Die vom System generierte Domain kann nicht bearbeitet werden.",urlLockTooltip:"Der vom System generierte URL-Pfad kann nicht bearbeitet werden.",showAllDomains:"Alle Domains anzeigen",showAllDIDs:"Zeige alle DIDs",currentDomainTip:"Sie greifen \xfcber diese Domain auf die aktuelle Seite zu"},export:{title:"Exportiere Blocklet",name:"Bundle-Name",nameTip:'z.B. "mein-blocklet-name" oder "@mein-scope/blocklet-name"',result:"Was kommt als N\xe4chstes",exportSource:"Exportquelle",success:"Blocklet erfolgreich exportiert",resultTipStart:"Mit",resultTipEnd:"Du kannst diese Blocklet in wenigen Minuten erstellen und ver\xf6ffentlichen",uploadedComponentTip:"Direkt hochgeladene Komponenten k\xf6nnen nicht exportiert werden:"},migrate:{title:"Anwendung migrieren",scan:"Verbinden Sie Ihre DID Wallet, um ein Schl\xfcsselpaar f\xfcr diese Anwendung zu generieren",confirm:"Bitte \xfcberpr\xfcfen Sie diese Operation in Ihrer DID Wallet",success:"Ihre Anwendung wurde erfolgreich migriert. Die Seite wird in {sec} Sekunden aktualisiert.",intro:{l1:"Klicken Sie hier",l2:"Bitte migrieren Sie Ihre Anwendung auf die neue Version (\xc4nderungen sind w\xe4hrend der Migration deaktiviert)",l3:"Die Anwendung DDI wird vollst\xe4ndig von Ihrer DDI-Brieftasche aus gesteuert.",l4:"Die Anwendungsdaten werden migriert und es sind keine weiteren \xc4nderungen erforderlich.",l5:"Die neue Anwendungsstruktur gibt Ihnen mehr Flexibilit\xe4t beim \xc4ndern von Komponenten.",l6:"4. Bitte \xe4ndern Sie keine Komponenten-Bindungspunkte, bevor eine neue Version der Komponente ver\xf6ffentlicht wird."},tip:{duplicate:"Finde doppelte Komponente {name}, bitte l\xf6sche unn\xf6tige Komponenten und migriere erneut",running:"Bitte h\xf6r auf, Blocklet vor der Migration zu blockieren"}},error:{isRunning:"Blocklet l\xe4uft, bitte stoppen Sie es zuerst",isInProgress:"Blocklet wird gerade bearbeitet, bitte warten Sie, bis es abgeschlossen ist"},publish:{createResource:"Erstellen Ressource",addResource:"Release hinzuf\xfcgen",productTitle:"Produkt",versionTitle:"Version",imgTitle:"Bilder",resourceTitle:"Ressourcen",blockletEmptyTip:"Es gibt hier keine Blocklets",createBlockletTip:"Sie k\xf6nnen \xfcber vorhandene Ressourcen, Komponenten und Konfigurationen in dieser Anwendung einen neuen Blocklet erstellen",createBlocklet:"Neuer Blocklet",deleteBlockletTip:"Der Blocklet kann nach dem L\xf6schen nicht wiederhergestellt werden, bitte best\xe4tigen",componentNotRunning:"Komponente {name} l\xe4uft nicht, starten Sie sie bitte zuerst",releaseEmptyTip:"Hier gibt es keine Ver\xf6ffentlichungen",createReleaseTip:"Du kannst eine Ver\xf6ffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen k\xf6nnen.",createRelease:"Neue Ver\xf6ffentlichung",deleteReleaseTip:"Die Ver\xf6ffentlichung kann nach L\xf6schung nicht wiederhergestellt werden",createBlockletDid:"Erstelle aus dem DID Wallet",createReleaseSuccess:"Freigabe erfolgreich erstellt",saveDraftSuccess:"Entwurf erfolgreich gespeichert",connect:{title:"Erstelle Blocklet DID",scan:"Scannen Sie den QR-Code unten, um eine Blocklet-DID zu generieren",confirm:"Best\xe4tigen Sie die Verwendung von DID Wallet",success:"Blocklet DID wurde generiert, setzen Sie bitte Ihren Vorgang fort"},saveDraft:"Entwurf speichern",releaseNote:"Versionshinweis",errorTip:{noDid:"Blocklet DID wird ben\xf6tigt",noTitle:"Blockleit-Titel ist erforderlich",noVersion:"Die Blocklet-Version ist erforderlich",noDescription:"Blocklet-Beschreibung ist erforderlich",noNote:"Versionshinweis wird ben\xf6tigt"},packTip:"Derzeit k\xf6nnen Blocklets direkt als Anwendungen installiert werden. Komponenten und Anwendungskonfigurationen werden automatisch in das Blocklet aufgenommen.",resourceChangedWarning:"Sie haben die Ressource ge\xe4ndert, bitte rechtzeitig speichern",installResourceTip:"Installations-URL:",installResourceTip2:"Wenn du mehr Tipps sehen m\xf6chtest, besuche bitte",installResourceHelp:"Hilfe-Dokument",componentIncluded:"Eingeschlossen",componentForceRequired:"Erzwungen Erforderlich",productListTitle:"Ver\xf6ffentliche Blocklets",download:"Download {name}",delete:"L\xf6sche {name}",copyInstallUrl:"Kopiere Installations-URL",install:"Installiere {name}",publishToStoreSuccess:"Blocklet erfolgreich im Store ver\xf6ffentlicht",connectStoreSuccess:"Blocklet Store erfolgreich verbunden",uploadToStoreSuccess:"Blocklet erfolgreich im Store hochgeladen, du musst es im Store ver\xf6ffentlichen"},titleValidationError:"Die L\xe4nge des Titels muss mindestens 3 Zeichen betragen",descriptionValidationError:"Die Beschreibungsl\xe4nge muss zwischen 3 und 160 Zeichen liegen"},dashboard:{nodeDid:"Knoten",ownerDid:"Eigent\xfcmer",routingEngine:"Routing-Engine",ownerNftURL:"Besitzer NFT",expirationLeft:"Verbleibende Ablaufzeit",startFromCrashTip:"Blocklet Server ist beim letzten Mal nicht ordnungsgem\xe4\xdf beendet worden. Bitte starten Sie manuell die Blocklets, die ausgef\xfchrt werden sollen.",runtimeConfig:{blockletMaxMemoryLimit:"Blocklet Max Speichergrenze",daemonMaxMemoryLimit:"Server Max Speicherbegrenzung",proxyMaxMemoryLimit:"Event Bus Max Arbeitsspeicherbegrenzung"}},store:{nameSort:"Name",popularSort:"Beliebtheit",headerDescription:"Finde und installiere deine Blocklets",detail:{purchase:"Kaufe {name}",open:"\xd6ffne {name}",install:"Installiere {name}",upgrade:"Upgrade {name}",empty:"Keine Einleitung"},blockletRegistry:{changeFailed:"Blocklet Speicher\xe4nderung fehlgeschlagen:",addFailed:"Blocklet Store konnte nicht hinzugef\xfcgt werden",editFailed:"Bearbeitung des Blocklet Store fehlgeschlagen",switchRegistry:"Schalte Blocklet Store um",addRegistry:"F\xfcge Blocklet Store hinzu",editRegistry:"Blocklet Store bearbeiten",deleteRegistry:"Blocklet-Store l\xf6schen",haveSameRegistry:"Der gleiche Blocklet Store existiert",registryName:"Blocklet Store Name",registryUrl:"Blocklet Store URL",registryNameEmpty:"Blocklet Store-Name darf nicht leer sein",registryUrlEmpty:"Die Blocklet-Store-URL darf nicht leer sein",deleteDesc:"Blocklet-Store {name} l\xf6schen best\xe4tigen?",confirmDesc:"Bitte geben Sie {name} zum L\xf6schen ein"},purchase:{title:"Kaufe {name}",confirmed:"Dein Blocklet-Kauf-NFT ist verifiziert",declined:"Sie haben keinen g\xfcltigen Blocklet-Kauf NFT angegeben",waiting:"Warten auf abgeschlossenen Kauf...",purchase:{title:"Kaufe NFT",description:"Bevor Sie diese Blocklet installieren, zahlen Sie bitte einen Token, wenn Sie dieses Blocklet nicht gekauft haben."},verify:{title:"\xdcberpr\xfcfe NFT",description:"Ihr NFT wird vor der Installation dieses Blocklet \xfcberpr\xfcft, wenn Sie das Kauf-NFT gekauft und in Ihrer DID Wallet halten.",auth:{title:"Kaufnachweis erforderlich",scan:"Verbinden Sie die DID Wallet, um Blocklet-K\xe4ufe von NFTs anzubieten",confirm:"\xdcberpr\xfcfe diese Operation in deiner DID-Brieftasche",success:"Ihr Kauf-NFT wurde verifiziert und die Installation wurde gestartet."}},auth:{title:"Kaufe {name}",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet",confirm:"Best\xe4tige in deinem DID Wallet",success:"Kauf des NFTs wurde an Ihre DID Wallet gesendet"},launch:"Starte {name}",autoLaunch:"{name} erfolgreich gekauft, Weiterleitung zur Startseite..."}},setting:{saveSuccess:"Einstellungen erfolgreich gespeichert",unSavedTip:'Es gibt nicht gespeicherte \xc4nderungen. Klicken Sie bitte auf "\xc4nderungen speichern", um sie zu speichern.',unSavedLeaveTip:"Es gibt ungespeicherte \xc4nderungen, sind Sie sicher, die Seite zu verlassen?",form:{name:"Name deines Servers",nameRequired:"Serverbeschreibung ist erforderlich",namePlaceholder:"Servername",description:"Beschreiben Sie Ihren Server",descriptionHolder:"Serverbeschreibung",descriptionRequired:"Serverbeschreibung erforderlich",domain:"Deine Server Domain Name",domainPlaceholder:"Server-Dom\xe4nenname",domainRequired:"Der Server-Domain-Name ist erforderlich",ipPlaceholder:"IP",ipRequired:"IP ist erforderlich",registry:"Blocklet Store",registryPlaceholder:"Blocklet Store, um Blocklets abzurufen",registryRequired:"Der Blocklet Store ist erforderlich",registerUrl:"Blocklet Launcher-URL",registerUrlPlaceholder:"Geben Sie die URL Ihres bevorzugten Blocklet Launchers ein. Sie k\xf6nnen den offiziellen sicher verwenden.",webWalletUrl:"DID Wallet URL",webWalletUrlPlaceholder:'Bitte geben Sie die URL Ihres gehosteten "DID Wallets" ein. Sie k\xf6nnen das offizielle sicher nutzen',nftDomainUrl:"NFT-Dom\xe4nen-URL",nftDomainUrlPlaceholder:"Bitte geben Sie die URL Ihrer gehosteten 'NFT-Domain' ein. Sie k\xf6nnen die offizielle sicher verwenden",enableWelcomePage:"Aktiviere Willkommensseite",welcome:{switchLabel:"Willkommen Seite"},upgrade:{title:"Blocklet-Server aktualisieren",description:"W\xe4hrend des Upgrades wird Ihr Blocklet Server f\xfcr einige Minuten in den Wartungsmodus wechseln, w\xe4hrend das Update abgeschlossen wird.",dialog:"Klicken Sie auf 'Best\xe4tigen', um das Update zu installieren. Der Blocklet Server wird in den Wartungsmodus wechseln, bis das Update abgeschlossen ist, und kehrt automatisch in den Produktionsmodus zur\xfcck.",confirm:"Upgrade",switchLabel:"Automatischer Update-Check",enableBetaRelease:"Aktiviere Beta-Version",setup:"Vorbereitung des Upgrades",installing:"Installation von Blocklet Server v{version}",restarting:"Blocklet Server wird neu gestartet",cleanup:"Migration der Blocklet Server-Daten",verifying:"\xdcberpr\xfcfe Blocklet Server v{version}",rollback:"Rollback Blocklet Server",complete:"Upgrade abgeschlossen!",progress:"Upgrading {name}",check:"Such nach Aktualisierungen",latest:"Sie nutzen die neueste Version."},restart:{title:"Blocklet-Server neu starten",description:"W\xe4hrend des Neustarts wird Ihr Blocklet Server in den Wartungsmodus versetzt, bis der Neustart abgeschlossen ist.",dialog:'Klicken Sie auf "Best\xe4tigen", um neu zu starten. Der Blocklet-Server befindet sich im Wartungsmodus, bis der Neustart abgeschlossen ist, und kehrt automatisch in den Produktionsmodus zur\xfcck.',confirm:"Neustart",setup:"Vorbereitung des Neustarts",verifying:"Blocklet Server verifizieren",restarting:"Neustart des Blocklet-Servers",cleanup:"Stelle sicher, dass alles in Ordnung ist",rollback:"Reinige den schmutzigen Zustand",complete:"Instandhaltung komplett!",progress:"Neustart {name}"},register:{titleAdded:"Hinzugef\xfcgt zu Blocklet Launcher",title:"Zu Blocklet Launcher hinzuf\xfcgen",description:"Sobald hinzugef\xfcgt, k\xf6nnen Sie Blocklets zu diesem Blocklet-Server von {url} aus starten.",descriptionOnAdded:"Du kannst Blocklets auf diesem Blocklet-Server von {url} aus starten.",btn:"Hinzuf\xfcgen",update:"Aktualisieren",added:"Hinzugef\xfcgt",addSucceed:"Hinzuf\xfcgen erfolgreich",updateSucceed:"Update erfolgreich",detecting:"Erkennen",timeout:"Zeit\xfcberschreitung der Erkennung, bitte \xfcberpr\xfcfen Sie, ob der Blocklet Launcher gestartet ist"},monitor:{diskThreshold:"Sende eine Warnung, wenn die Festplattenauslastung (%) \xfcberschritten wird",diskThresholdPlaceholder:"Bitte legen Sie die Schwelle f\xfcr die Festplattenauslastungs-Warnung fest"}},accessKey:{accessKeyId:"ZUGRIFFSSCHL\xdcSSEL",lastUsed:"Zuletzt verwendet am",tip:"Bitte geben Sie einen Namen f\xfcr diesen Zugriffsschl\xfcssel f\xfcr zuk\xfcnftige Referenz ein:",saveSecretTip:"Dies ist die einzige Zeit, in der Ihr Zugriffsgeheimnis angezeigt, aber nicht wiederhergestellt werden kann. Sie k\xf6nnen jedoch jederzeit neue Zugriffsschl\xfcssel erstellen.",iKnow:"Ich habe den Zugriffs-Geheimcode kopiert und gespeichert",showSecret:"Zeige geheimen Zugriffsschl\xfcssel",hideSecret:"Verstecke Geheimnis",title:"L\xf6sche Zugriffsschl\xfcssel",descriptionNoTime:"Dieser Zugangsschl\xfcssel {key} mit dem Namen {name} wird unwiderruflich gel\xf6scht, da er (noch nie verwendet wurde)",description:"Dies l\xf6scht dauerhaft den Zugriffsschl\xfcssel {key} mit dem Namen {name}, der zuletzt am {time}, {timeAge} verwendet wurde.",confirm_desc:"Bitte geben Sie {name} zum L\xf6schen ein",remark:"Zugriffsschl\xfcsselname",remarkInvalid:"Zugriffsschl\xfcsselname ist erforderlich"},webhook:{add:"Integration hinzuf\xfcgen",delTitle:"L\xf6sche Integration",requiredError:"Bitte geben Sie einen g\xfcltigen {type} an",confirm_desc:"Bitte geben Sie {name} zum L\xf6schen ein",test:"Test",description:"Diese Integration mit der ID {id} wird dauerhaft gel\xf6scht.",columns:{description:"ID",params:"Parameter",createdAt:"Erstellt am"}}},notification:{title:"Aktivit\xe4ten",empty:"Keine Aktivit\xe4ten bisher",viewAll:"Alle anzeigen",showRead:"Zeige Lesen",markAllAsRead:"Alle als gelesen markieren",markAsRead:"Als gelesen markieren",proceed:"Weitermachen",checkingForUpdates:"Suche nach Updates...",email:{enable:"E-Mail-Benachrichtigung aktivieren",from:"E-Mail-Absender",host:"SMTP Server Host",port:"SMTP-Server Port",user:"SMTP-Server-Benutzername",secure:"Aktivieren Sie eine sichere Verbindung",password:"SMTP-Server Benutzer Passwort",fromRequired:"Absender der E-Mail ist erforderlich",fromInvalid:"E-Mail-Absender ist ung\xfcltig",receiverRequired:"E-Mail-Empf\xe4nger ist erforderlich",receiverInvalid:"Empf\xe4nger der E-Mail ist ung\xfcltig",hostRequired:"SMTP Server-Host wird ben\xf6tigt",hostInvalid:"Der SMTP-Server-Host ist ung\xfcltig",portRequired:"Der Port des SMTP-Servers ist erforderlich.",portInvalid:"Der SMTP-Server-Port ist ung\xfcltig. Der Port sollte zwischen 1 und 65535 liegen.",userRequired:"SMTP-Server-Benutzername ist erforderlich",passwordRequired:"SMTP-Server-Benutzerkennwort erforderlich",testSuccess:"Test-E-Mail erfolgreich gesendet",testFailed:"Test-E-Mail senden fehlgeschlagen",testReceiver:"E-Mail-Empf\xe4nger",testSendEmail:"Test E-Mail senden",inputTestReceiver:"Bitte geben Sie die E-Mail-Adresse des Testempf\xe4ngers ein",disable:"E-Mail-Benachrichtigung abbestellen",disableDescription:"Nach dem Abmelden erhalten Sie keine E-Mail-Benachrichtigungen mehr. Um E-Mail-Benachrichtigungen zu erhalten, k\xf6nnen Sie sich auf dieser Seite erneut anmelden.",unsubscribe:"Abmelden E-Mail-Benachrichtigung",unsubscribeDescription:"Nach der Abmeldung erhalten Sie keine weiteren E-Mail-Benachrichtigungen mehr.",subscribe:"Abonnieren",subscribeDescription:"Um E-Mail-Benachrichtigungen zu erhalten, k\xf6nnen Sie es erneut auf der Einstellungsseite abonnieren."},comingSoon:"Weitere Benachrichtigungskan\xe4le befinden sich im Aufbau",unsubscribe:"Abmelden",unsubscribeSucceed:"Abmeldung erfolgreich",unsubscribeFailed:"Abmeldung fehlgeschlagen",unsubscribeTokenRequired:"Abmelde-Token ist erforderlich",unsubscribeTokenExpired:"Abmeldetoken ist abgelaufen",unsubscribeTokenInvalid:"Das Abonnement-Token ist ung\xfcltig",installComponentError:"Nicht gefunden deinstallierte Komponente {name}",installingComponent:"Installiere Komponente {name}"},router:{routerSetting:"Domains & URLs",certSetting:"SSL-Zertifikate",defaultSite:"Standard",urlHelperText:"URLs, die nicht mit HTTP/HTTPS beginnen, gelten als relative Pfade",empty:"Klicke auf Aktionen, um die URL-Zuordnung einzurichten",healthy:{ok:"Blocklet oder Dienst l\xe4uft",error:"Blocklet oder Dienst l\xe4uft nicht oder ist nicht installiert"},service:{select:"Blocklet-Dienste ausw\xe4hlen (optional)",what:"Blocklet-Dienste sind Pipelines, die vor der Weiterleitung an die \xfcbergeordnete Blocklet-Anwendung ausgef\xfchrt werden."},nonProvider:{title:"Motorwechselwarnung",description:"Wenn Sie den Motor auf 'keiner' \xe4ndern, funktioniert Ihre aktuelle Seite m\xf6glicherweise nicht ordnungsgem\xe4\xdf, da der vorherige Motor gestoppt wird. Sind Sie sicher, dass Sie fortfahren m\xf6chten?",confirm:"Ich verstehe, fahre fort"},validation:{urlRequired:"URL wird ben\xf6tigt",redirectCodeRequired:"Weiterleitungscode ist erforderlich",didRequired:"Blocklet ist erforderlich",pathPrefixTooLong:"Der URL-Pr\xe4fix darf nicht l\xe4nger als {length} Zeichen sein",pathPrefixCannotBeEmpty:"Der URL-Prefix darf nicht leer sein",domainRequired:"Server-Dom\xe4ne ist erforderlich",invalidUrl:"Bitte geben Sie eine g\xfcltige URL ein",pathPrefixRequired:"URL-Pr\xe4fix ist erforderlich",redirectUrlRequired:"Die Weiterleitungs-URL ist erforderlich",rewriteUrlRequired:"Die URL muss neu geschrieben werden"},domain:{addSite:"Website hinzuf\xfcgen",validate:{emptyTip:"Die Website-Dom\xe4ne darf nicht leer sein",suffixTip:"Die Website-Domain kann {suffix} nicht enthalten"},add:{title:"Domainnamen hinzuf\xfcgen",description:"Bitte geben Sie einen g\xfcltigen Domainnamen an",confirm:"Hinzuf\xfcgen",cancel:"Abbrechen",blocklet:"Blocklet ausw\xe4hlen",redirect:"Wohin soll der Verkehr umgeleitet werden?",port:"Auf welchem Port muss Ihr Anfrage-Handler h\xf6ren?",portTip:"Dies ist der Standardwert f\xfcr den Hauptport des Anforderungsverarbeitungsmoduls. Sie k\xf6nnen dies anpassen",type:"Verkehrshandler",component:"Komponente ausw\xe4hlen",pageGroup:"Seite Gruppe",pageGroupTip:"Diese Komponente kann jede Gruppe von oben aufgef\xfchrten Seiten rendern. Leer lassen, um alle Seiten zu rendern."},update:{title:"Aktualisierung der Website-Dom\xe4ne",label:"Website-Domain",description:"Bitte geben Sie eine g\xfcltige Website-Domain an"},setup:{tipStart:"F\xfcgen Sie die DNS-Eintr\xe4ge f\xfcr die Domain hinzu",tipEnd:"Gem\xe4\xdf den folgenden Richtlinien",recordType:"Rekordtyp",recordValue:"Aufnahme Wert"},verify:{ok:"Die Domainaufl\xf6sung ist normal",notResolved:"Diese Domain ist weder aufgel\xf6st noch erreichbar. Bitte \xfcberpr\xfcfen Sie Ihre DNS-Konfiguration."},https:{ok:"Diese Domain ist mit HTTPS aktiviert",bad:"Diese Domain hat https nicht aktiviert"},delete:{title:"L\xf6sche Website",description:'Durch Best\xe4tigung l\xf6schen Sie Ihre bestehende Website "{name}". Geben Sie "{name}" unten ein und w\xe4hlen Sie L\xf6schen, um die \xc4nderung abzuschlie\xdfen, oder w\xe4hlen Sie Abbrechen, um Ihre Website beizubehalten.',confirm_desc:"Bitte geben Sie {name} zur Best\xe4tigung ein"}},domainAlias:{inputDomain:"Manuell Domain konfigurieren",nftDomain:"Automatische Konfiguration mit DID-Dom\xe4ne",showTipHint:"Wie konfiguriere ich die Aufl\xf6sung des Dom\xe4nennamens?",add:{title:"Zus\xe4tzliche Domain hinzuf\xfcgen",domainDescription:"Bitte geben Sie einen g\xfcltigen Domainnamen an",forceTip:"Erzwinge Hinzuf\xfcgen, wenn der Domainname bereits existiert",helperText:"Wenn eine HTTP- oder HTTPS-URL eingegeben wird, wird sie automatisch in einen Domainnamen umgewandelt.",isDidDomainError:"Diese Domain ist eine DID-Dom\xe4ne. Bitte f\xfcgen Sie sie unter Verwendung der Methode zur automatischen Dom\xe4nenkonfiguration hinzu."},addCustomDomain:{name:"Benutzerdefinierte Dom\xe4ne"},addDomainNFT:{showNFT:"Konfiguriere die Domain automatisch",tips:"DID-Domain l\xf6st den Domainnamen automatisch auf, es ist keine manuelle Konfiguration erforderlich, und die Anwendung aktualisiert den Aufl\xf6sungsdatensatz des Domainnamens automatisch, wenn n\xf6tig.",connect:{title:"Bitte zeigen Sie Ihr Domain-NFT",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet, um blocklet zu autorisieren, Ihre Domain zu verwenden.",confirm:"Bitte best\xe4tigen Sie in Ihrem DID Wallet",success:"Autorisierung erfolgreich"},buyTip:"Wenn Sie noch keine DID-Domain-NFT haben,",buy:"Jetzt kaufen!"},delete:{title:"L\xf6schen",description:"Nach dem Entfernen einer Domain-Alias wird m\xf6glicherweise nicht ordnungsgem\xe4\xdf auf diesen Alias zugegriffen."}},domainSecurity:{title:"Domain Sicherheit",cors:{title:"Erlaubte CORS-Domains",description:'Dom\xe4nenliste, von denen aus Cross-Origin-Anfragen an {name} gesendet werden k\xf6nnen, durch Kommas getrennt. Verwenden Sie "*", um jedem zu erlauben, was nicht empfohlen wird.',domainInvalid:"Bitte geben Sie eine g\xfcltige Liste von Domainnamen ein"}},rule:{add:{title:"URL-Zuordnung hinzuf\xfcgen",confirm:"Hinzuf\xfcgen",pathPrefix:"Was ist das URL-Pr\xe4fix?",pathPrefixTip:"Wenn Sie das Pr\xe4fix auf '/mein-pr\xe4fix' setzen, werden alle Anfragen, die mit diesem Pr\xe4fix beginnen, zum konfigurierten Blocklet weitergeleitet",blocklet:"Welcher Blocklet wird diese Anfragen bearbeiten?",port:"Welcher Port des Blocklet wird Anfragen bearbeiten?",portTip:"Dies ist standardm\xe4\xdfig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, k\xf6nnen Sie dies anpassen.",responseType:"Antworttyp",responseBody:"Antwortinhalt",responseBodyTip:"F\xfcgen Sie hier Ihren Antwortinhalt ein, der 4096 Zeichen nicht \xfcberschreiten sollte.",responseBodyRequired:"Der Antwortinhalt darf nicht leer sein"},delete:{title:"URL-Mapping l\xf6schen",description:'Durch Best\xe4tigen werden Sie Ihre vorhandene URL-Mapping f\xfcr "{name}" l\xf6schen. Geben Sie "{name}" in das Feld ein und w\xe4hlen Sie L\xf6schen, um die \xc4nderung abzuschlie\xdfen, oder w\xe4hlen Sie Abbrechen, wenn Sie Ihr URL-Mapping beibehalten m\xf6chten.',confirm_desc:"Bitte geben Sie {name} ein, um zu l\xf6schen",cancel:"Abbrechen"},update:{title:"URL-Mapping aktualisieren",confirm:"Ja, Aktualisieren",cancel:"Abbrechen"}},cert:{name:"Zertifikatsname",domain:"Domain Name",action:"Handlung",commonName:"Gemeinsamer Name",boundDomains:"Domains",source:"Quelle",expired:"Abgelaufen",leftDays:"Tage \xfcbrig",issuedOn:"Ausgestellt am",expiryOn:"Ablaufdatum am",fingerprintAlg:"Fingerabdruckalgorithmus",validityPeriod:"G\xfcltigkeitsdauer",matchedSites:"\xdcbereinstimmende Websites",upload:"Manueller Upload",publicCertHelperText:"\xd6ffentliche Zertifikate k\xf6nnen heruntergeladen werden",nonPublicCertHelperText:"Nicht \xf6ffentliche Zertifikate k\xf6nnen nicht heruntergeladen werden",protectedCertHelperText:"Gesch\xfctzte Zertifikate k\xf6nnen nicht bearbeitet werden",unprotectedCertHelperText:"Unsichere Zertifikate k\xf6nnen bearbeitet werden",issuing:"Zertifikat wird erstellt",sourceTypes:{upload:"Manueller Upload",lets_encrypt:"Lass uns verschl\xfcsseln"},table:{nodata:"Keine Daten"},delete:{title:"Zertifikat l\xf6schen",description:"L\xf6schen des Zertifikats der Domain {domain} best\xe4tigen? Das L\xf6schen kann sich auf verwandte Dienste auswirken. Bitte best\xe4tigen Sie, dass dies sicher ist, bevor Sie mit dem L\xf6schen fortfahren.",confirm:"Best\xe4tigen"},nginx:{title:"Zertifikat aktualisieren",titleAdd:"Zertifikat hinzuf\xfcgen",pem:"SSL-Zertifikat-Datei",pemTip:'Bitte legen Sie Ihr Server-Zertifikat hier ab. Es sollte mit ".pem" oder ".crt" enden.',key:"Privater Schl\xfcsseldatei",keyTip:'Bitte geben Sie hier Ihre Server-Private-Key-Datei ein. Sie sollte mit ".pem" oder ".key" enden.',confirm:"Speichern",cancel:"Abbrechen",invalidFile:"Sie haben eine ung\xfcltige Datei ausgew\xe4hlt",empty:"Noch keine Datei ausgew\xe4hlt",source:"Quelle",sourceTypes:{upload:"Manuelles Hochladen",lets_encrypt:"Lass uns verschl\xfcsseln"}},detail:{title:"Zertifikatdetails"},genLetsEncryptCert:{title:"Generiere Let's Encrypt Zertifikat",dnsTip:"Bitte stellen Sie sicher, dass der Dom\xe4nenname auf den aktuellen Blocklet-Server verweist.",description:"Das Hinzuf\xfcgen eines Zertifikats erh\xf6ht die Sicherheit des Dienstes und der Blocklet Server erneuert das Zertifikat automatisch, bevor es abl\xe4uft."}},gateway:{reqLimit:{status:{true:"Aktiviert",false:"Deaktiviert"},switchLabel:"Anforderungslimit",rate:"Anforderungslimit ({rate} Anfragen/Sekunde)",ipHeaderLabel:"Benutzerdefinierten Client-IP-Header anpassen (optional)",ipHeaderDesc:"Wenn der Blocklet-Server hinter Proxies l\xe4uft, k\xf6nnen Sie hier den Header der echten IP des Clients festlegen. Optional, lassen Sie es leer, um die Standardeinstellung zu verwenden."},cacheEnabled:{switchLabel:"Aktiviere Gateway-Cache"}}},noMatch:{desc:"Wir k\xf6nnen die von Ihnen gesuchte Seite nicht finden"},health:{connectionErrorTip:"Blocklet-Server kann keine Verbindung zum Netzwerk herstellen. Bitte \xfcberpr\xfcfen Sie, ob der Blocklet-Server gestoppt wurde oder es ein Netzwerkproblem gibt.",connectionRecoveryTip:"Die Blocklet Server-Konnektivit\xe4t konnte wiederhergestellt werden",connectionStoppedTip:"Der Blocklet Server wurde gestoppt",wrongAccessUrlTip:"Die Blocklet Server-Zugriffsadresse ist falsch. Bitte verwenden Sie die richtige Zugriffsadresse."},debug:{title:"Ihr Blocklet Server ist aktiv und l\xe4uft!"},team:{invite:"Neu einladen",add:"Neu hinzuf\xfcgen",member:{name:"Name",passport:"Reisepass",passports:"P\xe4sse",lastLogin:"Letzter Login",lastLoginIp:"Letzte Login-IP",source:"Registerquelle",source_derived:"Abgeleitet von OAuth",source_wallet:"DID Brieftasche",filter:"Filtern nach",forbidLogin:"Login verbieten",forbidLoginDescription:"Der Benutzer wird sich nicht mit dieser Anwendung verbinden k\xf6nnen",allowLogin:"Anmeldung erlauben",allowLoginDescription:"Der Benutzer kann sich mit dieser Anwendung verbinden",updateRole:"Rolle aktualisieren",deleteUser:"L\xf6sche Benutzer",deleteUserDescription:"Benutzer '{name}' wirklich l\xf6schen?",revokePassport:"Reisepass zur\xfccknehmen",revokePassportDescription:"Sobald der Reisepass widerrufen wurde, kann der Inhaber ihn nicht erneut zur Anmeldung verwenden. Sind Sie sicher, dass Sie fortfahren m\xf6chten?",enablePassport:"Aktiviere den Reisepass",enablePassportDescription:"Sobald der annullierte Reisepass wieder aktiviert ist, kann der Passinhaber ihn erneut verwenden, um sich einzuloggen. Sind Sie sicher, dass Sie fortfahren m\xf6chten?",passportPermissionTitle:"Der Reisepass hat folgende Berechtigungen:",search:"Suche Mitglied",hideBlockedMember:"Unbest\xe4tigte Mitglieder verbergen",inviteDialog:{createInviteLink:"Generiere Einladungslink",createSuccessTip:"Der Einladungslink wurde erfolgreich erstellt. Klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Beachten Sie bitte, dass dieser Einladungslink nicht wiederverwendet werden kann und am {expireDate} abl\xe4uft."},error:{passportEmpty:"Der Reisepass darf nicht leer sein"},connectedAccounts:"Verbundene Konten",connections:"Verbindungen",federated:"Federated",switch:{did:"Wechseln Sie DID",profile:"Profil wechseln",passport:"Reisepass wechseln"},settings:{notification:"Benachrichtigungen",email:"Sende mir eine E-Mail, wenn bestimmte Ereignisse eintreten",wallet:"Benachrichtigung an mein Wallet senden, wenn Ereignisse auftreten",phone:"Sende mir eine Textnachricht, wenn bestimmte Ereignisse auftreten",webhook:"Webhooks",add:"Neuen Webhook hinzuf\xfcgen",url:"Benutzerdefinierte URL",slack:"Slack-Webhook",tested:"Testnachricht gesendet"},activeUserSessions:"Aktive Benutzersitzungen",forceLogout:"Erzwungenes Abmelden",forceLogoutDescription:"Best\xe4tigen Sie die erzwungene Abmeldung dieses Benutzers?"},transferNode:{name:"\xc4nderung des Eigentums",inviteDialog:{title:"Transfer Blocklet Server",tips:{progress:"Der Servertransfer muss vom Empf\xe4nger akzeptiert werden, um den \xdcbertragungsvorgang abzuschlie\xdfen. Sobald der Empf\xe4nger es akzeptiert hat, k\xf6nnen Sie sich nicht erneut mit dem aktuellen Reisepass am Server anmelden.",newOwnerPermissions:"Der neue Eigent\xfcmer wird das Recht haben, alle Operationen wie Mitglieder, P\xe4sse und Blocklets zu verwalten.",revoke:'Wenn Sie die \xdcbertragungseinladung zur\xfcckziehen m\xf6chten, k\xf6nnen Sie den Einladungslink auf der Seite "Team -> Mitglieder -> Einladen" l\xf6schen.'},createInviteLink:"Erzeugen Sie den Einladungslink",createSuccessTip:"Der Einladungslink wurde erfolgreich erstellt. Klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Beachten Sie bitte, dass dieser Einladungslink nicht erneut verwendet werden kann und am {expireDate} abl\xe4uft."},delegateDialog:{title:"Autorisierung erforderlich",scan:"Scannen Sie den folgenden QR-Code mit der DID-Brieftasche, um dem Server die \xdcbertragung des Servereigentums-NFT zu autorisieren.",confirm:"Best\xe4tige in deiner DID-Brieftasche",success:"Autorisierung erfolgreich"}},transferApp:{name:"\xdcbertragung des Eigentums",transferDialog:{title:"\xdcbertragungsantrag",tips:{progress:"Die Anwendung muss vom Empf\xe4nger akzeptiert werden, um den \xdcbertragungsvorgang abzuschlie\xdfen. Sobald der Empf\xe4nger es akzeptiert hat, k\xf6nnen Sie sich nicht erneut mit dem aktuellen Reisepass in der Anwendung anmelden.",newOwnerPermissions:"Der neue Eigent\xfcmer hat das Recht, alle Vorg\xe4nge wie Mitglieder, P\xe4sse und Einstellungen zu verwalten."},createTransferLink:"Generieren Sie einen \xdcberweisungslink",createSuccessTip1:'Der Transferlink wurde erfolgreich erstellt. Der Eingeladene muss <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> verwenden, um das Eigentum an der App zu erhalten.',createSuccessTip2:"Bitte klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Bitte beachten Sie, dass dieser \xdcbertragungslink nicht wiederverwendet werden kann und am {expireDate} abl\xe4uft. Ihr \xdcbertragungslink wird nur einmal angezeigt und kann nach dem Schlie\xdfen dieses Dialogs nicht mehr angesehen werden.",createSuccessTip3:"Nach erfolgreichem Transfer wird die Anwendung automatisch neu gestartet, um die \xc4nderungen wirksam werden zu lassen",link:"Transfer-Link",iKnow:"Ich habe den Link kopiert und gespeichert"},connectDialog:{title:"Autorisierung erforderlich",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet, um der Anwendung die \xdcbertragung des Eigentums zu autorisieren.",confirm:"Best\xe4tigen Sie in Ihrer DID-Brieftasche",success:"Autorisierung erfolgreich"},receiveDialog:{title:"Empfange Anwendungseigentum",scan:"Scannen Sie den folgenden QR-Code mit der DID Wallet, um das Eigentum der Anwendung zu erhalten.",confirm:"Best\xe4tigen Sie in Ihrer DID-Brieftasche",success:"Eigentum erfolgreich empfangen"},successTitle:"Du bist der neue Besitzer dieser Anwendung",visitDashboard:"Besuche das Anwendungsdashboard"},permission:{create:{title:"Erstellen Sie eine Berechtigung",description:"Format: <Aktion>_<Ressource>"},delete:{title:"L\xf6schen Sie die Berechtigung",description:"L\xf6schen von {name} best\xe4tigen?"},error:{actionEmpty:"Aktion kann nicht leer sein",resourceEmpty:"Die Ressource darf nicht leer sein",permissionTooLong:"Die Erlaubnis darf {length} Zeichen nicht \xfcberschreiten",descriptionTooLong:"Beschreibung darf nicht l\xe4nger als {length} Zeichen sein"}},passport:{create:{title:"Erstellen Sie einen Reisepass",titleTip:"Der Titel kann nach der Erstellung nicht ge\xe4ndert werden, sollte innerhalb von 14 Zeichen empfohlen werden"},bind:{title:"Bindungsgenehmigung",roleTip:"Sie erhalten alle Berechtigungen des ausgew\xe4hlten Reisepasses nach der Bindung.",permissionTip:"Sie erhalten die ausgew\xe4hlten Berechtigungen nach der Bindung",transferLeftTitle:"Alle Berechtigungen",transferRightTitle:"Gew\xe4hrte Berechtigungen"},delete:{title:"L\xf6sche Reisepass",description:"Die P\xe4sse, die vom Benutzer gehalten werden, verlieren alle Berechtigungen, nachdem sie gel\xf6scht wurden. Sind Sie sicher, dass Sie fortfahren m\xf6chten?"},error:{titleEmpty:"Der Titel darf nicht leer sein",titleTooLong:"Der Titel darf maximal {length} Zeichen nicht \xfcberschreiten",descriptionEmpty:"Beschreibung darf nicht leer sein"},issuance:{pending:"Ausstehend",create:{title:"Generiere Link"},delete:{title:"L\xf6schen Sie den Empfangslink",description:"L\xf6schen von {link} best\xe4tigen?"}},issue:"Reisepass ausstellen",disableIssuance:"Deaktiviere die Ausstellung von P\xe4ssen",enableIssuance:"Aktivieren Sie den Reisepassausstellung",disableIssuanceTip:'"Issue Passport", "Invite Member" und andere Operationen werden deaktiviert sein.',enableIssuanceTip:"Passe ausstellen",trustedPassportIssuers:"Vertrauensw\xfcrdige Reisepassaussteller",trustedIssuers:"Vertrauensw\xfcrdige Aussteller",trustedFactories:"Vertrauensw\xfcrdige NFT-Sammlungen",trustedFactoriesTip:"Verwalten Sie vertrauensw\xfcrdige NFT-Sammlungen, die zum Austausch gegen einen Reisepass verwendet werden k\xf6nnen",searchFactoryAddress:"Suche Sammlung DID",configFactories:"Vertrauensw\xfcrdige NFT-Sammlungen konfigurieren",configFactoriesTip:"Erm\xf6glichen Sie Benutzern, NFTs gegen Reisep\xe4sse auszutauschen",factoryAddress:"NFT-Sammlungsadresse",factory404:"NFT-Sammlung nicht gefunden",factoryAddressTip:"Die NFT-Sammlungsadresse muss auf der ArcBlock Main Chain existieren",role:"Passporttyp",ttl:"Passport-Ablaufpolitik",ttlNever:"Nie ablaufen",ttlMint:"Seit dem NFT-Kauf",ttlExchange:"Da Reisepass Austausch",ttlNeverTip:"Der Reisepass ist g\xfcltig bis auf Widerruf",ttlMintTip:"Der Reisepass bleibt g\xfcltig, solange der NFT gekauft wird, bis Sie ttl angegeben haben oder ihn widerrufen haben",ttlExchangeTip:"Der Reisepass wird g\xfcltig sein, seit der Benutzer erfolgreich umgetauscht hat, bis Sie ttl angegeben oder widerrufen haben.",ttlTip:'365d bedeutet 365 Tage, du kannst auch "30 Tage" oder "24h" verwenden',validUntil:"G\xfcltig bis: {date}",externalPassport:"Externer Reisepass",notTrustedIssuerTip:"Der Reisepass kann nicht verwendet werden, da der Aussteller nicht in der Liste vertrauensw\xfcrdiger Aussteller steht",issuerDid:"Herausgeber-DID",addNodeToTrustedIssuers:"F\xfcgen Sie den aktuellen Server als vertrauensw\xfcrdigen Reisepass-Aussteller hinzu",revoked:"Widerrufen",noPermission:"Keine Berechtigung, diese Aktion auszuf\xfchren",shouldNotDeleteCurrent:"Du kannst deinen derzeit verwendeten Pass nicht widerrufen",mappingRule:"Zuordnungsregel",defaultRule:"Standardregel",search:"Suche Reisepass",searchIssuerDid:"Suche Aussteller-DID",issueBy:"Problem von {name}",configColor:"Konfiguration Reisepassfarbe",configColorTip:"Passe die Farbe des Reisepasses an",color:"Passfarbe",description:"Verwenden Sie diesen Pass, um {teamName} als {title} zu verbinden"},inviting:{link:"Einladungslink",inviter:"Einladen",delete:{title:"L\xf6sche Einladungslink",description:"L\xf6schen von {link} best\xe4tigen?"},disabledTip:"Einladung ist nicht aktiviert"},whoCanAccess:{all:{title:"F\xfcr alle zug\xe4nglich"},owner:{title:"Nur Eigent\xfcmer"},invited:{title:"Nur eingeladene Benutzer"}}},launcher:{provider:"Anbieter",adminUrl:"URL"},session:{forbidLogin:"Du wurdest von diesem Server blockiert"},launchBlocklet:{appInfo:"Anwendungsinformationen",appInfoDesc:"Best\xe4tigen Sie die Antragsinformationen",author:"Anwendungsautor: {author}",setup:"Setup-Blocklet",redirect:"Weiterleitung",alreadyRunning:"Anwendung {name} l\xe4uft bereits auf diesem Blocklet Server",alreadyInstalled:"Die Anwendung {name} ist bereits auf diesem Blocklet Server installiert.",alreadyExists:"Diese Anwendung existiert bereits, Umleitung...",purchased:"Bereits gekauft",purchase:"Kauf",nextStep:"N\xe4chster Schritt",agreement:"Lizenzvereinbarung",agreeAll:"Zustimmen und Fortfahren",installing:"Installiere {appName} auf {serverName}. Es kann mehrere Minuten dauern. Bitte bleiben Sie dran...",redirecting:"{appName} wurde erfolgreich installiert, jetzt wird gestartet...",start:"Starten",launch:"Installiere Blocklet auf Server",launchSuccess:"{appName} wurde erfolgreich gestartet!",installSuccess:"Blocklet wurde erfolgreich auf {serverName} installiert und gestartet",openInRegistry:"Ansehen im Blocklet Store",subTitle:"Bereit, Blocklet {appName} auf {serverName} zu installieren",installingSubTitle:"{appName} wird installiert",access:"\xd6ffne die Anwendung",viewApplication:"Bewerbung anzeigen",newVersion:"Neue Version",newVersionDesc:"Die Anwendung existiert bereits, aber die aktuelle Version kann aktualisiert werden",upgradeNow:"Jetzt upgraden",later:"Sp\xe4ter",introduction:"Einf\xfchrung",welcome:"Willkommen beim Blocklet Startassistenten",accept:"Ich stimme den Blocklet-Endbenutzer-Lizenzbedingungen zu",license:"Anwendungslizenz",next:"Stimme den EULA zu und fahre fort",purchaseApp:"Kaufen Sie Blocklet",setupAppDesc:"Initialisiere deinen Blocklet",launched:"Vollst\xe4ndig",confirmInstall:"Best\xe4tige Installation",dialog:{title:"Werden Sie App-Besitzer",nftFreeDescription:"Bitte pr\xe4sentieren Sie den App-Space-NFT und erstellen Sie ein App-Konto, um fortzufahren.",nftPaidDescription:"Bitte pr\xe4sentieren Sie den App-Space-NFT und den App-Kauf-NFT, um fortzufahren",freeDescription:"Bitte erstellen Sie ein App-Konto, um fortzufahren",paidDescription:"Bitte pr\xe4sentiere den App-Kauf-NFT und erstelle ein App-Konto, um fortzufahren.",confirm:"Best\xe4tigen Sie in Ihrer DID-Brieftasche",success:"Autorisierung erfolgreich",authorizationTimeout:"Autorisierungstimeout"},waiting:{verifying:"\xdcberpr\xfcfung der App-Metadaten ...",downloading:"App-Bundle wird heruntergeladen...",downloadingComponent:"Herunterladen von {name}",extractingComponent:"Extrahieren von {name}",extracting:"Extrahiere App Bundle...",installing:"Installiere App-Komponenten...",installed:"Installiert",starting:"Die App wird gestartet...",done:"Warten auf App-Bereitschaft..."},error:{loadMetaFailed:"App-Informationen konnten nicht geladen werden",appMetaNotFound:"Keine Informationen f\xfcr diese App gefunden",downloadFailed:"Der App-Download ist fehlgeschlagen. Bitte versuche es erneut.",installFailed:"Die App konnte nicht installiert werden, bitte versuche es erneut",startFailed:"Fehler beim Starten der App, bitte versuche es erneut",launchFailed:"Die App konnte nicht gestartet werden, bitte versuchen Sie es erneut",installedButStopped:"Die App wurde erfolgreich installiert, kann jedoch nicht gestartet werden. Sie k\xf6nnen sie manuell starten, nachdem Sie die blockierenden Probleme behoben haben.",installedButError:"Die App wurde erfolgreich installiert, konnte jedoch nicht gestartet werden",restoreFailed:"Fehler beim Wiederherstellen der App, bitte versuchen Sie es erneut",resourceBlocklet:"Das Ressourcen-Blocklet kann nicht als Anwendung installiert werden. Du kannst dieses Blocklet in bestehende Anwendungen einbinden."},steps:{introduction:"Einf\xfchrung",installApp:"Installiere Anwendung",purchaseSpace:"Kaufe Platz",prepareSpace:"Bereite den Weltraum vor"},installRelatedDependencies:"Installieren Sie relevante Abh\xe4ngigkeiten",installRelatedComponents:"Komponenten installieren"},issuePassport:{title:"Reisepass empfangen",description:"Verwenden Sie das DID Wallet, um den von {name} ausgestellten Reisepass zu erhalten",dialog:{scan:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass zu beantragen",confirm:"Best\xe4tigen Sie auf Ihrer DID Wallet",success:"Der Reisepass wurde erfolgreich zu Ihrer Brieftasche hinzugef\xfcgt",loginWithPassport:"Verbinden Sie sich mit diesem Reisepass",autoClose:"Die Seite schlie\xdft automatisch in {seconds}s",autoJump:"Die Seite wird in {seconds}s automatisch weitergeleitet."}},lostPassport:{title:"Verlorenen Pass",description:"Der Besitzer von {name} kann den QR-Code scannen, um den Reisepass abzurufen. Mitglieder kontaktieren bitte den Besitzer, um den Reisepass neu ausstellen zu lassen.",dialog:{title:"Pass wiederherstellen",scan:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass wiederherzustellen",confirm:"Best\xe4tigen Sie in Ihrer DID Wallet",success:"Der Reisepass wurde erfolgreich in Ihrer Brieftasche hinzugef\xfcgt"},return:"Verbinde mit Reisepass",selectPassport:"W\xe4hlen Sie den Reisepass aus",receivePassport:"Empfange den Reisepass"},invite:{message:"{name} l\xe4dt Sie ein, {role} von {dapp} zu sein",success:"Sie haben erfolgreich an {dapp} teilgenommen",receive:"Empfange mit",validUntil:"G\xfcltig bis:",viewPermission:"Ansichtsberechtigung",emptyPermission:"Leere Berechtigung",open:"\xd6ffnen",description:{step1:"Lade {wallet} herunter und richte es ein",step2:"Klicken Sie auf die obige Schaltfl\xe4che, um den Reisepass zu erhalten",step3:"Einloggen in {dapp} mit erhaltenem Reisepass"},transferNFTDialog:{title:"Akzeptieren Sie Blocklet Server {name}",scan:"Verbinden Sie den Launcher, um den Empfang des Blocklet-Servers abzuschlie\xdfen.",confirm:"\xdcberpr\xfcfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Erfolgreich verbunden, warten auf Best\xe4tigung des Serverempfangs"}},receive:{dialog:{title:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass zu erhalten",scan:"Verbinden Sie Ihre DID Wallet, um Ihren Reisepass zu erhalten",confirm:"Best\xe4tigen Sie in Ihrer DID-Brieftasche",success:"Sie sind erfolgreich verbunden"}},navigation:{navigation:"Navigation",actionFailed:"Aktion fehlgeschlagen",form:{title:"Titel",titlePlaceholder:"Bitte geben Sie den Navigationstitel ein",titleTooLong:"Die Titell\xe4nge sollte kleiner sein als {len}",icon:"Navigationsikone",iconPlaceholder:"Bitte Eingabe Navigationssymbol",invalidIcon:"Symbol ist ung\xfcltig",findMoreIcon:"Finde mehr Symbole",link:"Link",linkPlaceholder:"Bitte geben Sie den Navigationslink ein",invalidLink:"Der Link ist ung\xfcltig",component:"Komponente",componentPlaceholder:"Bitte w\xe4hle das Navigationskomponente aus",role:"Rolle",rolePlaceholder:"Bitte w\xe4hlen Sie die Navigationsrolle",locale:"Sprachumgebung",localePlaceholder:"Bitte geben Sie die gew\xfcnschte Lokalisierung hinzu",localeExists:"{value} existiert bereits"},action:{add:"F\xfcge Navigation hinzu",addSub:"Unternavigation hinzuf\xfcgen",edit:"Navigation bearbeiten",hide:"Navigation ausblenden",show:"Navigationsleiste anzeigen",del:"Navigation l\xf6schen",new:"Neu",noAddSub:"Deinstallierte Komponente kann keine Unter-Navigation hinzuf\xfcgen",noEdit:"Deinstallierte Komponente kann nicht bearbeitet werden",noDel:"Das L\xf6schen der integrierten Navigation ist nicht zul\xe4ssig",reset:"Zur\xfccksetzen",restConfirmTitle:"M\xf6chten Sie alle benutzerdefinierten Navigationseinstellungen l\xf6schen?",restConfirmDesc:"Nach dem L\xf6schen wird die Navigation auf die urspr\xfcngliche Standardkonfiguration von Blocklet zur\xfcckgesetzt.",resetSuccessful:"Reset erfolgreich"}},storage:{spaces:{tips:"Tipps",label:"Geben Sie den DID Spaces Gateway ein",connected:{title:"Verbundene DID Spaces",tag:"Verbunden"},connectedWithName:"Sie haben sich erfolgreich mit {name} verbunden",addedWithName:"Du hast erfolgreich {name} hinzugef\xfcgt",connects:"Verbinden",reconnect:"Verbinde erneut",addressCannotEmpty:"Die Adresse darf nicht leer sein",addressNotValid:"{url} ist keine g\xfcltige Adresse",authorize:{title:"Verbinde {appName} mit DID Spaces",scan:"Verwenden Sie Ihre DID-Brieftasche, um den unten stehenden QR-Code zu scannen, um die App {appName} mit DID Spaces zu verbinden.",success:"Verbindung erfolgreich hergestellt"},provideNFT:{title:"Bitte zeige die DID Spaces NFT f\xfcr {appName}",scan:"Verwenden Sie Ihre DID-Brieftasche, um den QR-Code unten zu scannen, um der App {appName} den DID-Space-NFT anzuzeigen",success:"Erfolgreich verbunden"},backup:{title:"Sicherungskopie",records:"Sicherungsdatens\xe4tze"},autoBackup:{title:"Auto-Backup",enabled:"Automatisches Backup ist aktiviert",disabled:"Die automatische Sicherung ist ausgeschaltet"},autoCheckUpdate:{title:"Automatische Benachrichtigung \xfcber neue Version \xfcberpr\xfcfen",enabled:"Automatisches \xdcberpr\xfcfen auf neue Version ist aktiviert",disabled:"Automatische \xdcberpr\xfcfung auf neue Version ist deaktiviert"},backupSuccessfully:"Backup erfolgreich durchgef\xfchrt",restore:"Wiederherstellen",restoreSuccessfully:"Erfolgreich wiederhergestellt",gateway:{title:"Gateway",select:"W\xe4hle einen DID-Space aus",add:{title:"DID Spaces hinzuf\xfcgen",label:"Geben Sie die URL der DID Spaces ein",failed:"Fehler beim Hinzuf\xfcgen von DID Spaces",invalidUrl:"Ung\xfcltige DID-Spaces-Gateway-URL",duplicate:"DID Space({name}) existiert bereits"},delete:{title:"L\xf6sche Gateway",succeeded:"L\xf6schen Sie DID Spaces {name} Erfolg",failed:"L\xf6schen des Gateways fehlgeschlagen",failedForConnected:"Es ist nicht m\xf6glich, einen verbundenen DID Space zu l\xf6schen",failedForSelected:"Kann den ausgew\xe4hlten DID-Space nicht l\xf6schen"},connect:{title:"Verbinde DID Spaces",add:"Verbinde dich jetzt mit DID Spaces",addTips:"Du bist noch mit keinem Space verbunden",switch:"Wechseln Sie DID Spaces",switchTips:"Sie sind mit {name} verbunden",connected:"Verbunden"},switch:{failedForMismatchSpace:"Bitte verbinde dich mit dem korrekten Space{name}"},connectTo:"Verbinde mit DID Spaces"},strategy:{title:"Backup-Strategie",autoBackup:"Auto-Backup",backupNow:"Sichern Sie jetzt",viewBackupFiles:"Backup-Dateien anzeigen"},progress:{title:"Backup-Fortschritt"},record:{title:"Sicherungsaufzeichnungen",emptyData:"Keine Eintr\xe4ge"},notYet:"Es gibt noch kein Backup in Arbeit...",connect:{now:"Verbinden Sie sich jetzt",title:"Verbinde DID Spaces",provider:"Geben Sie Ihre DID Spaces an, um mit dem Backup zu beginnen",providerForStorage:"Bitte verbinde dich mit deinem DID Spaces",useWallet:"Verbinde mit DID Wallet",useWalletReconnect:"Verbindung mit DID Wallet wiederherstellen",useSpaceGateway:"Verbinden Sie sich \xfcber das DID Spaces Gateway",useSpaceGatewayReconnect:"Verbinden Sie sich erneut mit dem DID Spaces Gateway",switchToSpace:"Wechsel zu Space",switchToSpaceSucceeded:"Wechselte zu Space{name}",succeeded:"Sie haben erfolgreich eine Verbindung zu DID Spaces hergestellt",disconnect:"Trennen"},disconnected:{tag:"Getrennt",reconnectNow:"Verbinde jetzt erneut"}}},log:{lastDays:{1:"Letzter 1 Tag",7:"Letzte 1 Woche"}},oauth:{commonSettings:"Allgemeine Einstellungen",save:"Speichern",saveSuccess:"Speichern erfolgreich",saveFailed:"Speichern fehlgeschlagen",issued:"Ausgegeben",thirdPartyLogin:"Drittanbieter-Anmeldung",alreadyBindOAuth:"Bereits Drittanbieter-Anmeldung verkn\xfcpft",alreadyBindWallet:"Bereits DID Wallet binden",auth0:{enable:"Auth0-Anmeldung aktivieren",domain:"Domain",domainDescription:"Die Dom\xe4ne von Auth0 ist erforderlich",clientId:"Kundennummer",clientIdDescribe:"Die clientId von Auth0 ist erforderlich"},comingSoon:"Es werden weitere Anmeldeverfahren entwickelt.",moreLogin:"Mehr Anmeldung",federated:"F\xf6deriertes Login",runTest:"Test"},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Abgelaufen"},loadFailed:"Wiederholen!"},desktop:{tips:{success:"Das Abonnement wird nach {validity} ablaufen",warning:"Das Abonnement l\xe4uft nach {validity} ab",error:"Abonnement abgelaufen"},loading:"Abonnement laden...",loadFailed:"Fehler beim Laden der Abonnementinformationen, bitte erneut versuchen!"}},analytics:{trend:"Trends",detail:"St\xf6rung",traffic:{totalRequests:"Gesamtanfragen",validRequests:"Erfolgreiche Anfragen",failedRequests:"Fehlgeschlagene Anfragen",uniqueVisitors:"Einzigartige Besucher",uniqueFiles:"Einzigartige URLs",uniqueReferrers:"Einzigartige \xdcberweisende",uniqueNotFound:"Einzigartiger 404",uniqueStaticFiles:"Einzigartige statische Dateien",logSize:"Log Gr\xf6\xdfe",bandwidth:"Bandbreite"}},federated:{inviteJoinFederatedLogin:"Einladung zum Beitritt zur dezentralen Anmeldung",inviteJoinFederatedLoginDescription:"Kopieren Sie die folgende Adresse und f\xfcllen Sie sie in der Anwendung aus, wo Sie sich anmelden m\xfcssen, um sich f\xfcr eine f\xf6derierte Anmeldung zu bewerben.",federatedLogin:"F\xf6deriertes Login",joinFederatedLogin:"Federiertes Anmelden beitreten",joinFederatedLoginDescription:"Bitte geben Sie die federierte Login-Adresse ein, die Ihnen von Master Blocklet zur Verf\xfcgung gestellt wurde, um sich beim f\xf6derierten Login anzumelden",quitFederatedLogin:"Abgemeldeter Verbundlogin",quitFederatedLoginDescription:"Nach dem Beenden der f\xf6derierten Anmeldung ist die normale Anmeldung immer verf\xfcgbar.",federatedJoinAppUrl:"Mitglied werden bei federiertem Login appUrl",federatedJoinAppUrlRequired:"Bitte geben Sie die URL der F\xf6derierten Anmeldung ein",failedToGetFederatedLoginAppUrl:"Fehler beim Abrufen der f\xf6derativen Anmeldung join appUrl",federatedJoinAppUrlInvalid:"Die URL der f\xf6derierten Anmeldung (Federated login) ist ung\xfcltig.",siteDetail:"Seitendetail",approveToJoinLogin:"Mitgliedschaft in der Verbandseinwahl genehmigen",approve:"Anmeldung aktivieren",revoke:"Deaktiviere die Anmeldung",enableFederatedLogin:"Aktivieren Sie die f\xf6derierte Anmeldung",disableFederatedLogin:"Deaktivierte f\xf6derierte Anmeldung",enableFederatedLoginDescription:"Nach Aktivierung der f\xf6derierten Anmeldung wird diese Seite automatisch angemeldet.",disableFederatedLoginDescription:"Nachdem die dezentrale Anmeldung deaktiviert wurde, wird diese Seite nicht automatisch angemeldet werden",enableFederatedAutoLogin:"Aktiviere die automatische Anmeldung",enableFederatedAutoLoginDescription:"Nachdem die automatische Anmeldung aktiviert wurde, wird sich die Seite automatisch mit den Anmeldedaten des Verbund-Logins anmelden, falls derzeit ein einheitlicher Anmeldestatus besteht.",disableFederatedAutoLogin:"Deaktiviere automatischen Login",disableFederatedAutoLoginDescription:"Nachdem die automatische Anmeldung deaktiviert ist, wird die Website die Benutzerinformationen der gemeinsamen Anmeldung nicht mehr automatisch einloggen und Sie k\xf6nnen immer noch w\xe4hlen, sich manuell mit der Identit\xe4t der F\xf6derationsanmeldung anzumelden.",info:{appId:"APP HAT",appPid:"Permanente ID",migratedFrom:"Auch bekannt als",appName:"Blocklet-Name",appDescription:"Blocklet-Beschreibung",appUrl:"Blocklet-URL",appLogo:"Blocklet Logo",did:"Blocklet DID",serverId:"Blocklet Server ID",serverVersion:"Blocklet Server Version",version:"Blocklet-Version",appliedAt:"Bewerben Sie sich bei",status:"Status"},status:{pending:"Ausstehend",approved:"Genehmigt",rejected:"Abgelehnt",revoked:"Widerrufen"},disbandFederatedLogin:"Deaktiviere f\xf6derierte Anmeldung",disbandFederatedLoginDescription:"Nach der Aufl\xf6sung der f\xf6derierten Anmeldung werden sich alle Mitgliedsseiten automatisch von der f\xf6derierten Anmeldung abmelden."},optionsOrder:{1:"Option Eins",2:"Option Zwei"}}}}]);
|