@abtnode/webapp 1.8.30 → 1.8.31
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 +13 -13
- package/build/index.html +1 -1
- package/build/static/js/4897.d9c2e84e.chunk.js +2 -0
- package/build/static/js/4897.d9c2e84e.chunk.js.map +1 -0
- package/build/static/js/5720.cebd5eb8.chunk.js +2 -0
- package/build/static/js/{5720.6a664a49.chunk.js.map → 5720.cebd5eb8.chunk.js.map} +1 -1
- package/build/static/js/7595.2d41497d.chunk.js +2 -0
- package/build/static/js/7595.2d41497d.chunk.js.map +1 -0
- package/build/static/js/8440.0d3e6baf.chunk.js +2 -0
- package/build/static/js/{8440.ad893b9c.chunk.js.map → 8440.0d3e6baf.chunk.js.map} +1 -1
- package/build/static/js/976.d320954f.chunk.js +3 -0
- package/build/static/js/{976.5c646415.chunk.js.LICENSE.txt → 976.d320954f.chunk.js.LICENSE.txt} +0 -0
- package/build/static/js/976.d320954f.chunk.js.map +1 -0
- package/build/static/js/main.89f26b95.js +3 -0
- package/build/static/js/{main.198cee3c.js.LICENSE.txt → main.89f26b95.js.LICENSE.txt} +0 -0
- package/build/static/js/{main.198cee3c.js.map → main.89f26b95.js.map} +1 -1
- package/package.json +1 -1
- package/build/static/js/4897.2d04c339.chunk.js +0 -2
- package/build/static/js/4897.2d04c339.chunk.js.map +0 -1
- package/build/static/js/5720.6a664a49.chunk.js +0 -2
- package/build/static/js/7595.7fbdecd8.chunk.js +0 -2
- package/build/static/js/7595.7fbdecd8.chunk.js.map +0 -1
- package/build/static/js/8440.ad893b9c.chunk.js +0 -2
- package/build/static/js/976.5c646415.chunk.js +0 -3
- package/build/static/js/976.5c646415.chunk.js.map +0 -1
- package/build/static/js/main.198cee3c.js +0 -3
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[4897],{5907:function(e,t,n){n.d(t,{Z:function(){return A}});var r=n(96234),a=n(59740),o=n(33028),s=n(30969),i=n(19611),c=n.n(i),l=n(77491),u=n(51921),d=n(2834),f=n(69180),p=n(42167),h=n(32371),m=n(1934),x=n(78685),v=n(5954),k=n(32723),b=n(34795),y=n(30734),g=n(7017),Z=n(89189),w=n(43658),j=n(61802),C=n(70054),P=n(88029),S=n(60451),R=n(32616),B=n(24883),T=n(61627),U=n(47334),L=n(37574),D=["showPay","meta","lastVersion","buttonText","registryUrl","handleButtonText","handleButtonClick"];function F(e){var t=e.showPay,n=e.meta,i=e.lastVersion,c=e.buttonText,l=e.registryUrl,u=e.handleButtonText,d=e.handleButtonClick,f=(0,a.Z)(e,D),F=(0,Z.useSnackbar)().enqueueSnackbar,N=(0,p.useLocaleContext)().t,E=(0,y.s0)(),W=(0,v.h6)().info,A=(0,R.y0)(),z=A.api,I=A.data.find((function(e){return e.meta.did===n.did}))||{},q=(0,s.useMemo)((function(){return!!I.status}),[I.status]),M=(0,s.useMemo)((function(){var e;return q?null===(e=I.meta)||void 0===e?void 0:e.version:null}),[q,I.meta]),H=!1===(0,g.isFreeBlocklet)(n),_=(0,s.useState)(!1),K=(0,r.Z)(_,2),O=K[0],V=K[1],G=(0,B.Z)(n.did).hasPurchased,J=(0,s.useState)(!1),Y=(0,r.Z)(J,2),$=Y[0],Q=Y[1],X=(0,w.default)("instant-blocklet-install",!1),ee=(0,r.Z)(X,1)[0],te=(0,s.useMemo)((function(){return O?N(q?"blocklet.status.upgrading":H?"blocklet.status.purchasing":"blocklet.status.waiting"):(0,x.wS)(I.status)?N("common.".concat(I.status)):""}),[O,I.status,q,N,H]),ne=(0,s.useMemo)((function(){return!(!i||!M)&&!(!i||!(0,S.gt)(i,M))}),[i,M]),re=(0,o.Z)((0,o.Z)({},e),{},{state:I}),ae=(0,s.useMemo)((function(){return u&&"function"===typeof u?u(re):ne?c.upgrade:q?c.open:H?c.purchase:c.launch}),[q,ne,H,c,u]),oe=(0,s.useMemo)((function(){return!(!d||"function"!==typeof d)||!(q&&!ne)}),[q,ne,d]),se=function(){var t=(0,b.Z)((0,k.Z)().mark((function t(r){var a,s;return(0,k.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.preventDefault(),r.stopPropagation(),t.prev=2,V(!0),!d||"function"!==typeof d){t.next=7;break}return d((0,o.Z)((0,o.Z)({},e),{},{state:I})),t.abrupt("return");case 7:if(q||!H){t.next=10;break}return Q(!0),t.abrupt("return");case 10:if(!ee){t.next=15;break}return a=q?"upgradeBlocklet":"installBlocklet",t.next=14,z[a]({input:{did:n.did,registryUrl:l}});case 14:return t.abrupt("return");case 15:if(q||H){t.next=19;break}return s=(0,m.getLaunchAgreementUrl)(n,W),window.location.href=s,t.abrupt("return");case 19:if(!q){t.next=22;break}return t.next=22,z.upgradeBlocklet({input:{did:n.did,registryUrl:l}});case 22:t.next=28;break;case 24:t.prev=24,t.t0=t.catch(2),F((0,x.Z)(t.t0),{autoHideDuration:5e3,variant:"error"}),console.error("Blocklet installed failed",t.t0);case 28:return t.prev=28,V(!1),t.finish(28);case 31:case"end":return t.stop()}}),t,null,[[2,24,28,31]])})));return function(e){return t.apply(this,arguments)}}();function ie(e){var t=e.disabled;return(0,L.jsx)(P.default,(0,o.Z)((0,o.Z)({onClick:se,size:"small",disabled:Boolean(te||t),variant:"outlined",color:"primary","data-cy":"install-blocklet"},f),{},{children:te?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(j.default,{size:[16,10],style:{marginRight:3}}),te]}):ae}),n.did)}ie.defaultProps={disabled:!1};return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(h.Kk,{children:oe?(0,L.jsx)(T.Z,{permission:"mutate_blocklet",children:function(e){return(0,L.jsx)(ie,{disabled:!e})}}):(0,L.jsx)(P.default,{className:"action-button",variant:"outlined",color:"primary",size:"small",disabled:Boolean(te),"data-cy":"open-blocklet",onClick:function(e){var t;e.preventDefault(),e.stopPropagation(),E("/blocklets/".concat(n.did,"/").concat((t=I)&&(t.configs||[]).some((function(e){return e.required&&!e.value}))?"configuration":"overview"))},children:te?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(j.default,{size:[16,10],style:{marginRight:3}}),te]}):ae})}),q&&H&&t&&(0,L.jsx)(C.Z,{component:"small",style:{fontSize:12,color:"#666",marginLeft:4},children:N("blocklet.status.purchased")}),(G&&!q||$)&&(0,L.jsx)(U.E0,{method:"launch",meta:n,mode:"both",onCancel:function(){V(!1),Q(!1)}})]})}F.defaultProps={lastVersion:"",showPay:!0,handleButtonText:function(){return null},handleButtonClick:function(){return null}};var N=["handleButtonClick","handleSearchSelect","handleButtonText","handleBlockletRegistry","handleBlockletRender","extraFilter"],E=function(e,t,n){var r=(0,m.getLaunchURL)(e,t).serverUrl;return c()(n,"/blocklets/".concat(e.did,"/?server-url=").concat(r))};function W(e){var t=e.blocklet,n=e.blocklets,r=e.handleButtonClick,a=e.handleButtonText,s=e.endpoint,i=(0,p.useLocaleContext)().t,u=(0,v.h6)(),d=c()(u.prefix,"blocklet.png"),f=s;if(f.startsWith("http")&&t.logo)d=c()(f,(0,x.lk)(t.did,t.logo));else{var m=(window.env.apiPrefix||"/").replace(/^\/+/,"").replace(/\/+$/,"");m&&(m="/".concat(m)),d=c()(m,"/blocklet/logo/".concat(t.did))}var k={meta:t,lastVersion:n.reduce((function(e,t){var n=t.did,r=t.version;return e[n]=r,e}),{})[t.did],buttonText:{purchase:i("common.purchase"),open:i("common.open"),launch:i("common.launch"),upgrade:i("common.upgrade")},registryUrl:f,handleButtonClick:!!r&&function(e){return r((0,o.Z)((0,o.Z)({},e),{},{blocklets:n}))},handleButtonText:a};return(0,L.jsx)(l.Z,{href:E(t,u.info,s),style:{color:"initial",textDecoration:"none"},onClick:function(e){return!!e.currentTarget.contains(e.target)||(e.preventDefault(),!1)},target:"_blank",children:(0,L.jsx)(h.ZP,{title:t.title||t.name,description:t.description,did:t.did,cover:t.logo?d:"",version:t.version,button:(0,L.jsx)("div",{style:{display:"flex",alignItems:"center"},children:(0,L.jsx)(F,(0,o.Z)({},k))})})})}function A(e){var t=e.handleButtonClick,n=e.handleSearchSelect,i=e.handleButtonText,c=e.handleBlockletRegistry,l=e.handleBlockletRender,h=e.extraFilter,m=(0,a.Z)(e,N),x=(0,v.h6)().info,k=(0,p.useLocaleContext)().locale,b=(0,s.useState)({}),y=(0,r.Z)(b,2),g=y[0],Z=y[1],w=c||(null===x||void 0===x?void 0:x.blockletRegistry);return(0,s.useEffect)((function(){Z({})}),[w]),(0,L.jsx)(u.ErrorBoundary,{FallbackComponent:d.ErrorFallback,resetKeys:[w],children:(0,L.jsx)("div",(0,o.Z)((0,o.Z)({},m),{},{children:(0,L.jsx)(f.Z,{blockletRender:function(e){var n=W((0,o.Z)((0,o.Z)({},e),{},{handleButtonClick:t,handleButtonText:i,endpoint:w}));return l&&"function"===typeof l?l((0,o.Z)((0,o.Z)({},e),{},{defaultRender:n})):n},endpoint:w,locale:k,onFilterChange:function(e){Z(e)},onSearchSelect:function(e){var r=e.blocklet,a=e.storeUrl,o=e.detailUrl;t?t({meta:r,registryUrl:a}):n&&n({blocklet:r,storeUrl:a,detailUrl:o})},filters:g,extraFilter:h})}))})}W.defaultProps={handleButtonClick:null,handleButtonText:null,endpoint:"",blocklets:[]},A.defaultProps={handleButtonClick:null,handleSearchSelect:null,handleButtonText:null,handleBlockletRegistry:"",handleBlockletRender:null,extraFilter:void 0,blocklets:[]}},47334:function(e,t,n){n.d(t,{k4:function(){return V},E0:function(){return F}});var r=n(32723),a=n(34795),o=n(96234),s=n(30969),i=n(19611),c=n.n(i),l=n(95803),u=n.n(l),d=n(7017),f=n(62068),p=n(42167),h=n(7284),m=n(70054),x=n(1934),v=n(5954),k=n(78685),b=n(83504),y=n(24974),g=n.n(y),Z=n(88503),w=n(17482),j=n(13408),C=n(84957),P=n(64698),S=n(36508),R=n(88029),B=n(19996),T=n(37574),U=(g().object.isRequired,g().func.isRequired,(0,b.Z)((function(){return{dialogAuth:{padding:"0 0 24px !important","& .auth-title":{textAlign:"center !important",marginBottom:"4px !important"},"& .auth-tip--scan":{textAlign:"center !important"}},iconRoot:{minWidth:48}}})));function L(e){var t=e.action,n=e.onSelect,r=e.onNext,a=U(),o=(0,p.useLocaleContext)().t,s=[{action:"purchase",title:o("store.purchase.purchase.title"),description:o("store.purchase.purchase.description")},{action:"verify",title:o("store.purchase.verify.title"),description:o("store.purchase.verify.description")}];return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(Z.Z,{className:a.tabPanel,children:s.map((function(e){return(0,T.jsxs)(w.ZP,{button:!0,selected:t===e.action,onClick:function(){return n(e.action)},children:[(0,T.jsx)(C.Z,{className:a.iconRoot,children:"purchase"===e.action?(0,T.jsx)(P.Z,{style:{color:"purchase"===t?B.default.primary.main:"#AAA",fontSize:32}}):(0,T.jsx)(S.Z,{style:{color:"verify"===t?B.default.primary.main:"#AAA",fontSize:32}})}),(0,T.jsx)(j.Z,{primary:e.title,secondary:e.description})]},e.action)}))}),r&&(0,T.jsx)(R.default,{fullWidth:!0,disabled:!t,variant:"contained",color:"primary",style:{marginTop:16},onClick:r,children:o("common.next")})]})}function D(e){var t=e.meta,n=e.onCancel,i=e.handlePaySuccess,l=(0,p.useLocaleContext)().t,b=(0,v.h6)().info,y=(0,s.useState)("both"),g=(0,o.Z)(y,2),Z=g[0],w=g[1],j=(0,s.useState)(1),C=(0,o.Z)(j,2),P=C[0],S=C[1],R=(0,k.yP)(b),B=b.blockletRegistry,U=(0,x.getLaunchAgreementUrl)(t,b),D=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==Z){e.next=2;break}return e.abrupt("return");case 2:w(t);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),F=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Z){e.next=2;break}return e.abrupt("return");case 2:S(2),"verify"===Z&&(window.location.href=U);case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),N=(0,d.getDisplayName)({meta:t});if("purchase"===Z&&2===P)return(0,T.jsx)(h.default,{open:!0,popup:!0,baseUrl:B,action:"acquire-asset",checkFn:u().create({baseURL:c()(B,"/store")}).get,onSuccess:function(){i(U)},onClose:n,checkTimeout:3e5,extraParams:{factory:t.nftFactory},webWalletUrl:R,disableClose:!0,saveConnect:!1,showDownload:!1,messages:{title:l("store.purchase.auth.title",{name:N}),scan:l("store.purchase.auth.scan"),confirm:l("store.purchase.auth.confirm"),success:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(m.Z,{gutterBottom:!0,children:l("store.purchase.auth.success")}),(0,T.jsxs)(m.Z,{variant:"subtitle2",children:[" ",l("store.purchase.autoLaunch",{name:N})]})]})}});var E=f.default;return(0,T.jsx)(E,{title:l("store.purchase.title",{name:N}),disableEscapeKeyDown:!0,open:!0,fullWidth:!0,onClose:function(e,t){"backdropClick"!==t&&n()},children:(0,T.jsx)("div",{style:{marginBottom:16},children:(0,T.jsx)(L,{action:Z,onNext:F,onSelect:D})})})}D.defaultProps={handlePaySuccess:function(e){setTimeout((function(){window.location.href=e}),1e3)}};var F=D,N=n(33028),E=n(61802),W=n(4485),A=n(24883);function z(e){var t=e.meta,n=e.onCancel,i=e.mode,l=e.installOpts,u=(0,p.useLocaleContext)(),x=u.t,b=u.locale,y=(0,v.h6)(),g=y.info,Z=y.api,w=(0,W.Tt)().api,j=U(),C=(0,s.useState)("both"!==i?i:""),P=(0,o.Z)(C,2),S=P[0],R=P[1],B=(0,s.useState)("both"!==i?2:1),D=(0,o.Z)(B,2),F=D[0],z=D[1],I=(0,A.Z)(t.did),q=I.session,M=I.setSession,H=I.hasCompleted,_=I.doRedirect,K=(0,k.yP)(g),O=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/",V=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==S){e.next=2;break}return e.abrupt("return");case 2:R(t);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),G=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(){var n,o,s;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(S){e.next=2;break}return e.abrupt("return");case 2:if(2!==F){e.next=4;break}return e.abrupt("return");case 4:return n=l&&"component"===l.type?(0,N.Z)((0,N.Z)({},l),{},{blockletDid:t.did,action:S}):{registryUrl:g.blockletRegistry,blockletDid:t.did,action:S},e.next=7,Z.startSession({input:{data:JSON.stringify(n)}});case 7:o=e.sent,s=o.session,M(s),z(2),"purchase"===S&&setTimeout((0,a.Z)((0,r.Z)().mark((function e(){var n,a,o,i,l,u;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(n=new URL(window.location.href)).searchParams.delete("assetDid"),n.searchParams.set("sid",s.id),n.searchParams.set("locale",b),n.searchParams.set("did",t.did),a=encodeURIComponent(n.href),(o=new URL(window.location.href)).pathname=c()(O,"/api/did/verify-purchase/token"),o.searchParams.set("sid",s.id),o.searchParams.set("locale",b),o.searchParams.set("autoConnect","false"),e.next=13,w.get(o.href);case 13:i=e.sent,l=i.data,u=encodeURIComponent(l.url),window.location.href=c()(g.blockletRegistry,"/store/purchase/".concat(t.nftFactory,"?cb=").concat(a,"&nw=").concat(u));case 17:case"end":return e.stop()}}),e)}))),100);case 12:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),J=function(e,t){"backdropClick"!==t&&(_(),n(),z(1))},Y=(0,d.getDisplayName)({meta:t});return 2===F&&"verify"===S&&q?(0,T.jsx)(h.default,{popup:!0,open:!0,className:j.dialogAuth,action:"verify-purchase",checkFn:w.get,checkTimeout:6e5,socketUrl:w.socketUrl,webWalletUrl:K,extraParams:{locale:b,sid:q.id},onSuccess:function(){setTimeout(n,2e3)},onClose:J,showDownload:!1,saveConnect:!1,locale:b,messages:{title:x("store.purchase.verify.auth.title",{name:Y}),scan:x("store.purchase.verify.auth.scan"),confirm:x("store.purchase.verify.auth.confirm"),success:x("store.purchase.verify.auth.success")}}):(0,T.jsxs)(f.default,{title:x("store.purchase.title",{name:Y}),disableEscapeKeyDown:!0,open:!0,fullWidth:!0,onClose:J,children:[1===F&&(0,T.jsx)("div",{style:{marginBottom:16},children:(0,T.jsx)(L,{action:S,onNext:G,onSelect:V})}),2===F&&"purchase"===S&&(0,T.jsxs)("div",{style:{textAlign:"center"},children:[!H&&(0,T.jsx)(E.default,{}),(0,T.jsx)(m.Z,{component:"p",children:function(){if(q){if("confirmed"===q.status)return x("store.purchase.confirmed");if("declined"===q.status)return x("store.purchase.declined");if("error"===q.status)return q.message}return x("store.purchase.waiting")}()})]})]})}z.defaultProps={installOpts:{type:"blocklet",rootDid:"",mountPoint:"",url:"",name:"",did:"",title:""}};var I=n(59740),q=n(54177),M=n(66604),H=n(99042),_=["mode"];function K(e){var t=e.meta,n=e.onCancel,i=e.mode,l=e.handlePaySuccess,u=(0,p.useLocaleContext)(),f=u.t,m=u.locale,x=(0,v.h6)().info,b=(0,k.yP)(x),y=(0,s.useState)(null),g=(0,o.Z)(y,2),Z=g[0],w=g[1],j=new URL(null===t||void 0===t?void 0:t.registryUrl).origin,C=(0,d.getDisplayName)({meta:t}),P=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t,o){var s,c,u,d,p,h;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(d=function(){return d=(0,a.Z)((0,r.Z)().mark((function e(t){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,M.Z)((function(){return H.hi.get(t).then(function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){var n,a;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.data,a=null===n||void 0===n?void 0:n.downloadTokenList,"succeed"!==n.status){e.next=12;break}if(!a||!a.length){e.next=8;break}return e.next=6,s({downloadTokenList:a});case 6:e.next=11;break;case 8:return e.next=10,c(f("blocklet.component.missDownloadTokenTip"));case 10:case 11:case 16:return e.abrupt("return",!0);case 12:if("error"!==n.status){e.next=17;break}return console.error("vc error: ",n),e.next=16,c(null===n||void 0===n?void 0:n.error);case 17:return e.abrupt("return",!1);case 18:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())}),{interval:1e3}));case 1:case"end":return e.stop()}}),e)}))),d.apply(this,arguments)},u=function(e){return d.apply(this,arguments)},s=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){var n;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.downloadTokenList,l({downloadTokenList:n});case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),c=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:q.default.error(t),n(t);case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),"purchase"!==i||!Z){e.next=10;break}return p=(0,k.Pi)(Z),h=p.statusUrl,e.next=8,u(h);case 8:e.next=12;break;case 10:return e.next=12,s({downloadTokenList:t.downloadTokenList&&o(t.downloadTokenList)});case 12:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();if((0,s.useEffect)((function(){if("purchase"===i){var e=new URL(j);e.pathname="/api/did/verify-purchase-blocklet/token",e.searchParams.set("serverDid",x.did),e.searchParams.set("blockletDid",null===t||void 0===t?void 0:t.did);try{H.hi.get(e.href).then((function(e){var t=e.data,n="".concat(t.url);w(n)}))}catch(n){console.error("get next workflow url error: ",n)}}return function(){w(null)}}),[i]),"purchase"===i&&!Z)return"";var S={verify:{action:"verify-purchase-blocklet",checkFn:H.od.create({baseURL:j}).get,extraParams:{serverDid:x.did,blockletDid:null===t||void 0===t?void 0:t.did},messages:{title:f("store.purchase.verify.auth.title",{name:C}),scan:f("store.purchase.verify.auth.scan"),confirm:f("store.purchase.verify.auth.confirm"),success:f("store.purchase.verify.auth.success")}},purchase:{action:"acquire-asset",checkFn:H.od.create({baseURL:c()(j,"/store")}).get,extraParams:{factory:t.nftFactory,nw:Z},messages:{title:f("store.purchase.auth.title",{name:C}),scan:f("store.purchase.auth.scan"),confirm:f("store.purchase.auth.confirm"),success:(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)("p",{children:f("store.purchase.auth.success")}),(0,T.jsx)("p",{children:f("blocklet.component.purchaseComponentSecondCheckTip")})]})}}};return(0,T.jsx)(h.default,(0,N.Z)({open:!0,locale:m,popup:!1,saveConnect:!1,className:"connect",baseUrl:j,onSuccess:P,cancelWhenScanned:n,onClose:n,checkTimeout:3e5,webWalletUrl:b,disableClose:!0,showDownload:!1},S[i]))}K.defaultProps={handlePaySuccess:function(){}};var O=(0,s.forwardRef)((function(e,t){var n=e.mode,i=(0,I.Z)(e,_),c=(0,s.useState)("both"!==n?n:"verify"),l=(0,o.Z)(c,2),u=l[0],d=l[1],f=(0,s.useState)("both"!==n?2:1),p=(0,o.Z)(f,2),h=p[0],m=p[1],x=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(t){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t!==u){e.next=2;break}return e.abrupt("return");case 2:d(t);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),v=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(){return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(u){e.next=2;break}return e.abrupt("return");case 2:if(2!==h){e.next=4;break}return e.abrupt("return");case 4:m(2);case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,s.useImperativeHandle)(t,(function(){return{onNext:v,getCurrentStep:function(){return h}}})),1===h?(0,T.jsx)("div",{style:{maxWidth:520},children:(0,T.jsx)(L,{action:u,onNext:null,onSelect:x})}):(0,T.jsx)(K,(0,N.Z)((0,N.Z)({},i),{},{mode:u}))}));O.defaultProps={ref:{}};var V=O},30740:function(e,t,n){n.d(t,{Z:function(){return Z}});var r=n(32723),a=n(34795),o=n(96234),s=n(30969),i=n(83504),c=n(61802),l=n(62068),u=n(41680),d=n(70054),f=n(35436),p=n(17482),h=n(3715),m=n(42167),x=n(88029),v=n(98169),k=n(5954),b=n(78685),y=n(37574),g=(0,i.Z)((function(e){return{addMenuItemRoot:{justifyContent:"center",color:e.palette.primary.main,lineHeight:"3.2"}}}));function Z(e){var t=e.disabled,n=e.reloadPage,i=(0,k.h6)(),Z=i.api,w=i.info,j=(0,s.useState)(!1),C=(0,o.Z)(j,2),P=C[0],S=C[1],R=(0,s.useState)(!0),B=(0,o.Z)(R,2),T=B[0],U=B[1],L=(0,s.useState)(!1),D=(0,o.Z)(L,2),F=D[0],N=D[1],E=(0,s.useState)(""),W=(0,o.Z)(E,2),A=W[0],z=W[1],I=(0,s.useState)(""),q=(0,o.Z)(I,2),M=q[0],H=q[1],_=(0,m.useLocaleContext)().t,K=g(),O=function(){var e=(0,a.Z)((0,r.Z)().mark((function e(){var t,a,o,s;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(S(!0),e.prev=1,t=(0,b.GI)(A,w.blockletRegistryList),a=t.isNew,o=t.decoded,a){e.next=5;break}throw new Error(_("store.blockletRegistry.haveSameRegistry"));case 5:return e.next=7,Z.addBlockletStore({input:{url:o}});case 7:N(!1),n&&window.location.reload(),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(1),s="".concat(_("store.blockletRegistry.addFailed")," ").concat((0,b.Z)(e.t0)),H(s);case 15:return e.prev=15,S(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[1,11,15,18]])})));return function(){return e.apply(this,arguments)}}();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(p.ZP,{button:!0,disabled:t,className:K.addMenuItemRoot,onClick:function(){N(!0)},children:[(0,y.jsx)(h.default,{font:!0}),(0,y.jsx)(d.Z,{variant:"inherit",children:_("store.blockletRegistry.addRegistry")})]}),(0,y.jsxs)(l.default,{title:_("store.blockletRegistry.addRegistry"),fullWidth:!0,maxWidth:"md",open:F,onClose:function(){return N(!1)},PaperProps:{style:{minHeight:"auto"}},actions:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(x.default,{onClick:function(e){e.stopPropagation(),N(!1)},color:"inherit",children:_("common.cancel")}),(0,y.jsxs)(x.default,{onClick:function(e){e.stopPropagation(),O()},color:"primary","data-cy":"install-blocklet-next-step",disabled:P||!A||T,variant:"contained",autoFocus:!0,children:[P&&(0,y.jsx)(c.default,{size:[16,10]}),_("common.confirm")]})]}),children:[(0,y.jsx)("div",{style:{paddingTop:12,overflowY:"hidden"},children:(0,y.jsx)(u.Z,{component:"div",children:(0,y.jsx)(d.Z,{component:"div",children:(0,y.jsx)(f.Z,{label:_("store.blockletRegistry.registryUrl"),autoComplete:"off",variant:"outlined",name:"url",fullWidth:!0,value:A,onChange:function(e){H(null);var t=!1;e.target.value.trim()||(t=!0),e.target.value.trim()||H(_("store.blockletRegistry.registryUrlEmpty")),z(e.target.value),U(t)},disabled:P,onKeyPress:function(e){"Enter"===e.key&&(e.preventDefault(),e.target.value.trim()?O():H(_("store.blockletRegistry.registryUrlEmpty")))}})})})}),!!M&&(0,y.jsx)(v.default,{type:"error",style:{width:"100%"},children:M})]})]})}Z.defaultProps={disabled:!1,reloadPage:!0}},978:function(e,t,n){n.d(t,{T:function(){return D},Z:function(){return N}});var r=n(33028),a=n(32723),o=n(34795),s=n(96234),i=n(30969),c=n(89189),l=n(83504),u=n(61802),d=n(62068),f=n(70054),p=n(88503),h=n(17482),m=n(13408),x=n(84957),v=n(37102),k=n(97475),b=n(11909),y=n(66581),g=n(42167),Z=n(88029),w=n(30740),j=n(94702),C=n(30291),P=n(22128),S=n(5954),R=n(78685),B=n(37574);function T(e){var t=(0,c.useSnackbar)().enqueueSnackbar,n=(0,S.h6)().api,r=(0,g.useLocaleContext)().t,l=(0,i.useState)(!1),u=(0,s.Z)(l,2),d=u[0],f=u[1],p=(0,i.useState)(null),h=(0,s.Z)(p,2),m=h[0],x=h[1],v=e.blockletRegistry,k=e.reloadPage,b=e.onDelete,Z=(0,j.default)(),w=function(){var e=(0,o.Z)((0,a.Z)().mark((function e(){return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,f(!0),e.next=4,n.deleteBlockletStore({input:{url:v.url}});case 4:b&&"function"===typeof b&&b(),k&&window.location.reload(),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),t("Remove Blocklet Store Error: ".concat((0,R.Z)(e.t0)),{autoHideDuration:2e3,variant:"error"});case 11:return e.prev=11,f(!1),x(null),e.finish(11);case 15:case"end":return e.stop()}}),e,null,[[0,8,11,15]])})));return function(){return e.apply(this,arguments)}}(),T={keyName:v.url,title:r("store.blockletRegistry.deleteRegistry"),description:r("store.blockletRegistry.deleteDesc",{name:"<b>".concat(v.url,"</b>"),color:Z.palette.error.main}),confirmPlaceholder:r("store.blockletRegistry.confirmDesc",{name:v.url}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:w,onCancel:function(){f(!1),x(null)}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(y.Z,{disabled:d,onClick:function(e){e.stopPropagation(),x(T)},size:"large",children:(0,B.jsx)(C.default,{})}),m&&(0,B.jsx)(P.Z,{keyName:m.keyName,title:m.title,description:m.description,confirmPlaceholder:m.confirmPlaceholder,confirm:m.confirm,cancel:m.cancel,params:m.params,onConfirm:m.onConfirm,onCancel:m.onCancel})]})}var U=n(61627),L=(0,l.Z)((function(){return{buttonText:{textTransform:"none !important"},iconRoot:{minWidth:24},menuName:{display:"flex",flexDirection:"column",marginRight:"100px","& span":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}}}));function D(e){var t=L();return(0,B.jsxs)("div",{className:t.menuName,children:[(0,B.jsx)(f.Z,{component:"span",variant:"subtitle1",style:{fontWeight:"400"},children:e.name}),(0,B.jsx)(f.Z,{className:"url",component:"span",variant:"inherit",children:"".concat(e.url)}),(0,B.jsxs)(v.Z,{children:[(0,B.jsx)(y.Z,{onClick:function(t){t.stopPropagation(),window.open(e.url)},size:"large",children:(0,B.jsx)(b.default,{})}),!e.protected&&(0,B.jsx)(T,{blockletRegistry:e,reloadPage:e.reloadPage,onDelete:e.onDelete})]})]})}D.defaultProps={protected:!1,reloadPage:!0,onDelete:function(){}};var F=(0,i.forwardRef)((function(e,t){var n=(0,S.h6)(),l=n.api,v=n.info,b=(0,g.useLocaleContext)().t,y=(0,c.useSnackbar)().enqueueSnackbar,j=(0,i.useState)(!1),C=(0,s.Z)(j,2),P=C[0],T=C[1],F=(0,i.useState)(!1),N=(0,s.Z)(F,2),E=N[0],W=N[1],A=(0,i.useState)(-1),z=(0,s.Z)(A,2),I=z[0],q=z[1],M=L(),H=v.blockletRegistryList.findIndex((function(e){return e.selected})),_=function(){var e=(0,o.Z)((0,a.Z)().mark((function e(t){var n;return(0,a.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,T(!0),q(t),n=v.blockletRegistryList[t],e.next=6,l.selectBlockletStore({input:{url:n.url}});case 6:W(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(0),console.error(e.t0),y("".concat(b("store.blockletRegistry.changeFailed")," ").concat((0,R.Z)(e.t0)),{autoHideDuration:2e3,variant:"error"});case 13:return e.prev=13,T(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[0,9,13,16]])})));return function(t){return e.apply(this,arguments)}}();return(0,i.useImperativeHandle)(t,(function(){return{setOpen:W}})),(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(U.Z,{permission:"mutate_node",children:function(e){return(0,B.jsx)(Z.default,{disabled:!e,classes:{text:M.buttonText},color:"secondary","data-cy":"store-toggle",onClick:function(){W(!0)},endIcon:(0,B.jsx)(k.default,{}),children:(0,B.jsx)(f.Z,{color:"secondary",children:v.blockletRegistryList[H].name})})}}),(0,B.jsx)(d.default,{title:b("store.blockletRegistry.switchRegistry"),disableEscapeKeyDown:!0,disablePortal:!1,fullWidth:!0,open:E,onClose:function(){return W(!1)},children:(0,B.jsxs)(p.Z,{className:M.tabPanel,children:[v.blockletRegistryList.map((function(e,t){return(0,B.jsxs)(h.ZP,{button:!0,disabled:P,selected:H===t,"data-cy":"store-switch",onClick:function(){P||(t!==H?_(t):W(!1))},children:[(0,B.jsx)(x.Z,{className:M.iconRoot,children:I===t&&P&&(0,B.jsx)(u.default,{size:[16,10]})}),(0,B.jsx)(m.Z,{children:(0,B.jsx)(D,(0,r.Z)({},e))})]},e.url)})),(0,B.jsx)(w.Z,{disabled:P})]})})]})})),N=F},24883:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(96234),a=n(30969),o=n(30734),s=n(43658),i=n(59505),c=n(94604),l=n(50692);function u(e){var t=(0,c.Z)(),n=(0,o.s0)(),u=(0,s.default)("sid:blocklet:purchase:".concat(e)),d=(0,r.Z)(u,2),f=d[0],p=d[1],h=(0,a.useState)(!1),m=(0,r.Z)(h,2),x=m[0],v=m[1],k=(0,a.useState)(null),b=(0,r.Z)(k,2),y=b[0],g=b[1],Z=function(){var e=new URL(window.location.href),t=e.pathname,r=e.searchParams,a=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";r.get("sid")&&(p(""),n(t.replace(a,"/"),{replace:!0}))},w=!(!t.get("assetDid")||!f||t.get("sid")!==f);return(0,l.mU)(i.BlockletEvents.purchaseChange,(function(t){t.did===e&&(g(t.session),["declined","confirmed","error"].includes(t.session.status)&&(v(!0),setTimeout(Z,2e3)))})),(0,a.useEffect)((function(){y&&y.id!==f&&p(y.id)}),[y]),{hasCompleted:x,hasPurchased:w,session:y,setSession:g,doRedirect:Z}}},99042:function(e,t,n){n.d(t,{hi:function(){return o},od:function(){return a.a}});var r=n(95803),a=n.n(r);a().defaults.timeout=1e4;var o=a().create()}}]);
|
|
2
|
-
//# sourceMappingURL=4897.2d04c339.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/4897.2d04c339.chunk.js","mappings":"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","sources":["components/blocklet/install.js","components/blocklet/list.js","components/blocklet/purchase/common.js","components/blocklet/purchase/launch-purchase.js","components/blocklet/purchase/server-purchase.js","components/blocklet/purchase/component-purchase.js","components/registry/add.js","components/registry/delete.js","components/registry/switch.js","hooks/blocklet-purchase.js","libs/api.js"],"sourcesContent":["/* eslint-disable react/jsx-one-expression-per-line */\nimport { useState, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport { isFreeBlocklet } from '@blocklet/meta/lib/util';\nimport { useSnackbar } from 'notistack';\nimport { ActionButton } from '@arcblock/ux/lib/Blocklet';\nimport useLocalStorage from 'react-use/lib/useLocalStorage';\n\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Typography from '@mui/material/Typography';\nimport Button from '@arcblock/ux/lib/Button';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport { getLaunchAgreementUrl } from '@abtnode/ux/lib/blocklet/util';\n\nimport { gt } from 'semver';\n\nimport { useBlockletContext } from '../../contexts/blocklets';\nimport { isInstalling, formatError } from '../../libs/util';\nimport useBlockletPurchase from '../../hooks/blocklet-purchase';\nimport Permission from '../permission';\nimport { LaunchPurchaseDialog } from './purchase';\nimport { useNodeContext } from '../../contexts/node';\n\nexport default function InstallOrUpgrade(props) {\n const { showPay, meta, lastVersion, buttonText, registryUrl, handleButtonText, handleButtonClick, ...rest } = props;\n const { enqueueSnackbar } = useSnackbar();\n const { t } = useLocaleContext();\n const navigate = useNavigate();\n const { info } = useNodeContext();\n\n const { api, data: installedBlocklets } = useBlockletContext();\n const state = installedBlocklets.find(d => d.meta.did === meta.did) || {};\n\n const installed = useMemo(() => !!state.status, [state.status]);\n const installedVersion = useMemo(() => (installed ? state.meta?.version : null), [installed, state.meta]);\n const requirePurchase = isFreeBlocklet(meta) === false;\n\n const [loading, setLoading] = useState(false);\n const { hasPurchased } = useBlockletPurchase(meta.did);\n const [showPurchaseDialog, setShowPurchaseDialog] = useState(false);\n const [instantLaunch] = useLocalStorage('instant-blocklet-install', false);\n\n const loadingText = useMemo(() => {\n if (loading) {\n if (installed) {\n return t('blocklet.status.upgrading');\n }\n if (requirePurchase) {\n return t('blocklet.status.purchasing');\n }\n return t('blocklet.status.waiting');\n }\n if (isInstalling(state.status)) return t(`common.${state.status}`);\n return '';\n }, [loading, state.status, installed, t, requirePurchase]);\n\n const needUpgrade = useMemo(() => {\n if (!lastVersion || !installedVersion) {\n return false;\n }\n\n if (lastVersion) {\n if (gt(lastVersion, installedVersion)) {\n return true;\n }\n }\n\n return false;\n }, [lastVersion, installedVersion]);\n\n const btnProps = { ...props, state };\n\n const btnTxt = useMemo(() => {\n // use handleButtonText if provided\n if (handleButtonText && typeof handleButtonText === 'function') return handleButtonText(btnProps);\n if (needUpgrade) return buttonText.upgrade;\n if (installed) return buttonText.open;\n if (requirePurchase) return buttonText.purchase;\n return buttonText.launch;\n }, [installed, needUpgrade, requirePurchase, buttonText, handleButtonText]); // eslint-disable-line\n\n // only installed without upgrade show open button\n const showInstallBtn = useMemo(() => {\n // if provided handleButtonClick, always show install button\n if (handleButtonClick && typeof handleButtonClick === 'function') {\n return true;\n }\n return !(installed && !needUpgrade);\n }, [installed, needUpgrade, handleButtonClick]);\n\n const onAction = async e => {\n e.preventDefault();\n e.stopPropagation();\n\n try {\n setLoading(true);\n\n // use handleButtonClick if provided\n if (handleButtonClick && typeof handleButtonClick === 'function') {\n handleButtonClick({ ...props, state });\n return;\n }\n\n // The purchase dialog should only show on install\n if (!installed && requirePurchase) {\n setShowPurchaseDialog(true);\n return;\n }\n\n if (instantLaunch) {\n const fn = !installed ? 'installBlocklet' : 'upgradeBlocklet';\n await api[fn]({ input: { did: meta.did, registryUrl } });\n return;\n }\n\n if (!installed && !requirePurchase) {\n const url = getLaunchAgreementUrl(meta, info);\n window.location.href = url;\n return;\n }\n if (installed) {\n await api.upgradeBlocklet({ input: { did: meta.did, registryUrl } });\n }\n } catch (err) {\n enqueueSnackbar(formatError(err), { autoHideDuration: 5000, variant: 'error' });\n console.error('Blocklet installed failed', err);\n } finally {\n setLoading(false);\n }\n };\n\n // eslint-disable-next-line react/no-unstable-nested-components\n function InstallButton({ disabled }) {\n return (\n <Button\n key={meta.did}\n onClick={onAction}\n size=\"small\"\n disabled={Boolean(loadingText || disabled)}\n variant=\"outlined\"\n color=\"primary\"\n data-cy=\"install-blocklet\"\n {...rest}>\n {loadingText ? (\n <>\n <Spinner size={[16, 10]} style={{ marginRight: 3 }} />\n {loadingText}\n </>\n ) : (\n btnTxt\n )}\n </Button>\n );\n }\n\n InstallButton.propTypes = {\n disabled: PropTypes.bool,\n };\n\n InstallButton.defaultProps = {\n disabled: false,\n };\n const getTab = d => {\n if (d) {\n return (d.configs || []).some(x => x.required && !x.value) ? 'configuration' : 'overview';\n }\n\n return 'overview';\n };\n\n const onGoDetail = e => {\n e.preventDefault();\n e.stopPropagation();\n navigate(`/blocklets/${meta.did}/${getTab(state)}`);\n };\n\n const onCancelPurchase = () => {\n setLoading(false);\n setShowPurchaseDialog(false);\n };\n\n return (\n <>\n <ActionButton>\n {showInstallBtn ? (\n <Permission permission=\"mutate_blocklet\">\n {hasPermission => <InstallButton disabled={!hasPermission} />}\n </Permission>\n ) : (\n <Button\n className=\"action-button\"\n variant=\"outlined\"\n color=\"primary\"\n size=\"small\"\n disabled={Boolean(loadingText)}\n data-cy=\"open-blocklet\"\n onClick={onGoDetail}>\n {loadingText ? (\n <>\n <Spinner size={[16, 10]} style={{ marginRight: 3 }} />\n {loadingText}\n </>\n ) : (\n btnTxt\n )}\n </Button>\n )}\n </ActionButton>\n\n {installed && requirePurchase && showPay && (\n <Typography component=\"small\" style={{ fontSize: 12, color: '#666', marginLeft: 4 }}>\n {t('blocklet.status.purchased')}\n </Typography>\n )}\n {((hasPurchased && !installed) || showPurchaseDialog) && (\n <LaunchPurchaseDialog method=\"launch\" meta={meta} mode=\"both\" onCancel={onCancelPurchase} />\n )}\n </>\n );\n}\n\nInstallOrUpgrade.propTypes = {\n meta: PropTypes.object.isRequired,\n lastVersion: PropTypes.string,\n buttonText: PropTypes.shape({\n purchase: PropTypes.string.isRequired,\n open: PropTypes.string.isRequired,\n launch: PropTypes.string.isRequired,\n upgrade: PropTypes.string.isRequired,\n }).isRequired,\n showPay: PropTypes.bool,\n registryUrl: PropTypes.string.isRequired,\n handleButtonText: PropTypes.func,\n handleButtonClick: PropTypes.func,\n};\n\nInstallOrUpgrade.defaultProps = {\n lastVersion: '',\n showPay: true,\n handleButtonText: () => null,\n handleButtonClick: () => null,\n};\n","/* eslint-disable react/jsx-wrap-multilines */\nimport { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport joinURL from 'url-join';\nimport Link from '@mui/material/Link';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport { ErrorFallback } from '@arcblock/ux/lib/ErrorBoundary';\nimport InnerList from '@blocklet/list';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Blocklet from '@arcblock/ux/lib/Blocklet';\nimport { getLaunchURL } from '@abtnode/ux/lib/blocklet/util';\n\nimport { formatRegistryLogoPath } from '../../libs/util';\nimport { useNodeContext } from '../../contexts/node';\nimport InstallOrUpgrade from './install';\n\nconst getStoreDetail = (blocklet, info, endpoint) => {\n const { serverUrl } = getLaunchURL(blocklet, info);\n return joinURL(endpoint, `/blocklets/${blocklet.did}/?server-url=${serverUrl}`);\n};\n\nfunction BlockletItem({ blocklet, blocklets, handleButtonClick, handleButtonText, endpoint }) {\n const { t } = useLocaleContext();\n const node = useNodeContext();\n let logoUrl = joinURL(node.prefix, 'blocklet.png');\n\n const blockletRegistry = endpoint;\n\n if (blockletRegistry.startsWith('http') && blocklet.logo) {\n logoUrl = joinURL(blockletRegistry, formatRegistryLogoPath(blocklet.did, blocklet.logo));\n } else {\n const prefix = window.env.apiPrefix || '/';\n let apiPrefix = prefix.replace(/^\\/+/, '').replace(/\\/+$/, '');\n if (apiPrefix) {\n apiPrefix = `/${apiPrefix}`;\n }\n logoUrl = joinURL(apiPrefix, `/blocklet/logo/${blocklet.did}`);\n }\n\n const versions = blocklets.reduce((totalVal, { did, version }) => {\n totalVal[did] = version;\n return totalVal;\n }, {});\n\n const onClickLink = e => {\n if (!e.currentTarget.contains(e.target)) {\n e.preventDefault();\n return false;\n }\n return true;\n };\n\n const buttonProps = {\n meta: blocklet,\n lastVersion: versions[blocklet.did],\n buttonText: {\n purchase: t('common.purchase'),\n open: t('common.open'),\n launch: t('common.launch'),\n upgrade: t('common.upgrade'),\n },\n registryUrl: blockletRegistry,\n // handle the props of button\n handleButtonClick: handleButtonClick\n ? rest => {\n return handleButtonClick({\n ...rest,\n blocklets,\n });\n }\n : false,\n handleButtonText,\n };\n\n return (\n <Link\n href={getStoreDetail(blocklet, node.info, endpoint)}\n style={{ color: 'initial', textDecoration: 'none' }}\n onClick={onClickLink}\n target=\"_blank\">\n <Blocklet\n title={blocklet.title || blocklet.name}\n description={blocklet.description}\n did={blocklet.did}\n cover={blocklet.logo ? logoUrl : ''}\n version={blocklet.version}\n button={\n <div style={{ display: 'flex', alignItems: 'center' }}>\n <InstallOrUpgrade {...buttonProps} />\n </div>\n }\n />\n </Link>\n );\n}\nBlockletItem.propTypes = {\n blocklet: PropTypes.object.isRequired,\n blocklets: PropTypes.array,\n handleButtonClick: PropTypes.func,\n handleButtonText: PropTypes.func,\n endpoint: PropTypes.string,\n};\n\nBlockletItem.defaultProps = {\n handleButtonClick: null,\n handleButtonText: null,\n endpoint: '',\n blocklets: [],\n};\n\nexport default function BlockletList({\n handleButtonClick,\n handleSearchSelect,\n handleButtonText,\n handleBlockletRegistry,\n handleBlockletRender,\n extraFilter,\n ...rest\n}) {\n const { info } = useNodeContext();\n const { locale } = useLocaleContext();\n const [filters, setFilters] = useState({});\n const handleChange = changeData => {\n setFilters(changeData);\n };\n\n const onSearchSelect = ({ blocklet, storeUrl, detailUrl }) => {\n if (handleButtonClick) {\n handleButtonClick({ meta: blocklet, registryUrl: storeUrl });\n } else if (handleSearchSelect) {\n handleSearchSelect({ blocklet, storeUrl, detailUrl });\n }\n };\n const endpoint = handleBlockletRegistry || info?.blockletRegistry;\n\n useEffect(() => {\n setFilters({});\n }, [endpoint]);\n\n return (\n <ErrorBoundary FallbackComponent={ErrorFallback} resetKeys={[endpoint]}>\n <div {...rest}>\n <InnerList\n blockletRender={blockletRenderProps => {\n const defaultRender = BlockletItem({\n ...blockletRenderProps,\n handleButtonClick,\n handleButtonText,\n endpoint,\n });\n\n // use handleBlockletRender if provided\n if (handleBlockletRender && typeof handleBlockletRender === 'function') {\n return handleBlockletRender({\n ...blockletRenderProps,\n defaultRender,\n });\n }\n\n return defaultRender;\n }}\n // use handleBlockletRegistry if provided\n endpoint={endpoint}\n locale={locale}\n onFilterChange={handleChange}\n onSearchSelect={onSearchSelect}\n filters={filters}\n extraFilter={extraFilter}\n />\n </div>\n </ErrorBoundary>\n );\n}\n\nBlockletList.propTypes = {\n blocklets: PropTypes.array,\n handleButtonClick: PropTypes.func,\n handleSearchSelect: PropTypes.func,\n handleButtonText: PropTypes.func,\n handleBlockletRegistry: PropTypes.string,\n handleBlockletRender: PropTypes.func,\n extraFilter: PropTypes.func,\n};\n\nBlockletList.defaultProps = {\n handleButtonClick: null,\n handleSearchSelect: null,\n handleButtonText: null,\n handleBlockletRegistry: '',\n handleBlockletRender: null,\n extraFilter: undefined,\n blocklets: [],\n};\n","import { makeStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport IconPurchase from '@mui/icons-material/ShoppingCart';\nimport IconVerify from '@mui/icons-material/VerifiedUser';\nimport Button from '@arcblock/ux/lib/Button';\nimport colors from '@arcblock/ux/lib/Colors';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nconst commonProps = {\n meta: PropTypes.object.isRequired,\n onCancel: PropTypes.func.isRequired,\n};\nconst useStyles = makeStyles(() => ({\n dialogAuth: {\n padding: '0 0 24px !important',\n '& .auth-title': {\n textAlign: 'center !important',\n marginBottom: '4px !important',\n },\n '& .auth-tip--scan': {\n textAlign: 'center !important',\n },\n },\n iconRoot: {\n minWidth: 48,\n },\n}));\nfunction CustomSelect({ action, onSelect, onNext }) {\n const classes = useStyles();\n const { t } = useLocaleContext();\n const options = [\n {\n action: 'purchase',\n title: t('store.purchase.purchase.title'),\n description: t('store.purchase.purchase.description'),\n },\n {\n action: 'verify',\n title: t('store.purchase.verify.title'),\n description: t('store.purchase.verify.description'),\n },\n ];\n return (\n <>\n <List className={classes.tabPanel}>\n {options.map(x => (\n <ListItem button key={x.action} selected={action === x.action} onClick={() => onSelect(x.action)}>\n <ListItemIcon className={classes.iconRoot}>\n {x.action === 'purchase' ? (\n <IconPurchase style={{ color: action === 'purchase' ? colors.primary.main : '#AAA', fontSize: 32 }} />\n ) : (\n <IconVerify style={{ color: action === 'verify' ? colors.primary.main : '#AAA', fontSize: 32 }} />\n )}\n </ListItemIcon>\n <ListItemText primary={x.title} secondary={x.description} />\n </ListItem>\n ))}\n </List>\n {onNext && (\n <Button\n fullWidth\n disabled={!action}\n variant=\"contained\"\n color=\"primary\"\n style={{ marginTop: 16 }}\n onClick={onNext}>\n {t('common.next')}\n </Button>\n )}\n </>\n );\n}\nCustomSelect.propTypes = {\n action: PropTypes.oneOf(['both', 'purchase', 'verify']).isRequired,\n onSelect: PropTypes.func.isRequired,\n onNext: PropTypes.func.isRequired,\n};\nexport { useStyles, commonProps, CustomSelect };\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { useState } from 'react';\nimport joinURL from 'url-join';\nimport axios from 'axios';\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport Typography from '@mui/material/Typography';\nimport PropTypes from 'prop-types';\n\nimport { getLaunchAgreementUrl } from '@abtnode/ux/lib/blocklet/util';\nimport { useNodeContext } from '../../../contexts/node';\nimport { getWebWalletUrl } from '../../../libs/util';\nimport { commonProps, CustomSelect } from './common';\n\nfunction LaunchPurchaseDialog({ meta, onCancel, handlePaySuccess: handlePaySuccessFn }) {\n const { t } = useLocaleContext();\n const { info } = useNodeContext();\n\n const [action, setAction] = useState('both');\n const [step, setStep] = useState(1);\n const webWalletUrl = getWebWalletUrl(info);\n const registryUrl = info.blockletRegistry;\n const launchAddress = getLaunchAgreementUrl(meta, info);\n\n const onSelect = async act => {\n if (act === action) {\n return;\n }\n\n setAction(act);\n };\n\n const onNext = async () => {\n if (!action) {\n return;\n }\n setStep(2);\n if (action === 'verify') {\n window.location.href = launchAddress;\n }\n };\n\n const handleClose = (e, reason) => {\n if (reason === 'backdropClick') return;\n onCancel();\n };\n\n const handlePaySuccess = () => {\n handlePaySuccessFn(launchAddress);\n };\n\n const name = getDisplayName({ meta });\n\n if (action === 'purchase' && step === 2) {\n return (\n <DidConnect\n open\n popup\n baseUrl={registryUrl}\n action=\"acquire-asset\"\n checkFn={axios.create({ baseURL: joinURL(registryUrl, '/store') }).get}\n onSuccess={handlePaySuccess}\n onClose={onCancel}\n checkTimeout={60 * 5000}\n extraParams={{ factory: meta.nftFactory }}\n webWalletUrl={webWalletUrl}\n disableClose\n saveConnect={false}\n showDownload={false}\n messages={{\n title: t('store.purchase.auth.title', { name }),\n scan: t('store.purchase.auth.scan'),\n confirm: t('store.purchase.auth.confirm'),\n success: (\n <>\n <Typography gutterBottom>{t('store.purchase.auth.success')}</Typography>\n <Typography variant=\"subtitle2\"> {t('store.purchase.autoLaunch', { name })}</Typography>\n </>\n ),\n }}\n />\n );\n }\n\n const Wrapper = Dialog;\n\n return (\n <Wrapper title={t('store.purchase.title', { name })} disableEscapeKeyDown open fullWidth onClose={handleClose}>\n <div style={{ marginBottom: 16 }}>\n <CustomSelect action={action} onNext={onNext} onSelect={onSelect} />\n </div>\n </Wrapper>\n );\n}\nLaunchPurchaseDialog.propTypes = {\n ...commonProps,\n handlePaySuccess: PropTypes.func,\n};\n\nLaunchPurchaseDialog.defaultProps = {\n handlePaySuccess: url => {\n setTimeout(() => {\n window.location.href = url;\n }, 1000);\n },\n};\n\nexport default LaunchPurchaseDialog;\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { useState } from 'react';\nimport joinURL from 'url-join';\nimport PropTypes from 'prop-types';\n\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport Typography from '@mui/material/Typography';\nimport Spinner from '@arcblock/ux/lib/Spinner';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport { getDisplayName } from '@blocklet/meta/lib/util';\n\nimport { useNodeContext } from '../../../contexts/node';\nimport { getWebWalletUrl } from '../../../libs/util';\nimport { useSessionContext } from '../../../contexts/session';\nimport useBlockletPurchase from '../../../hooks/blocklet-purchase';\nimport { useStyles, commonProps, CustomSelect } from './common';\n\nfunction ServerPurchaseDialog({ meta, onCancel, mode, installOpts }) {\n const { t, locale } = useLocaleContext();\n const { info, api: gql } = useNodeContext();\n const { api } = useSessionContext();\n const classes = useStyles();\n const [action, setAction] = useState(mode !== 'both' ? mode : '');\n const [step, setStep] = useState(mode !== 'both' ? 2 : 1);\n const { session, setSession, hasCompleted, doRedirect } = useBlockletPurchase(meta.did);\n\n const webWalletUrl = getWebWalletUrl(info);\n const prefix = window.env && window.env.apiPrefix ? window.env.apiPrefix : '/';\n\n const onSelect = async act => {\n if (act === action) {\n return;\n }\n\n setAction(act);\n };\n\n const onNext = async () => {\n if (!action) {\n return;\n }\n if (step === 2) {\n return;\n }\n\n // Start a new session and persist session id to local storage\n let payload;\n if (installOpts && installOpts.type === 'component') {\n payload = { ...installOpts, blockletDid: meta.did, action };\n } else {\n payload = { registryUrl: info.blockletRegistry, blockletDid: meta.did, action };\n }\n\n const { session: initial } = await gql.startSession({ input: { data: JSON.stringify(payload) } });\n setSession(initial);\n setStep(2);\n\n if (action === 'purchase') {\n setTimeout(async () => {\n const cb = new URL(window.location.href);\n cb.searchParams.delete('assetDid');\n cb.searchParams.set('sid', initial.id);\n cb.searchParams.set('locale', locale);\n cb.searchParams.set('did', meta.did);\n const callback = encodeURIComponent(cb.href);\n\n const nw = new URL(window.location.href);\n nw.pathname = joinURL(prefix, '/api/did/verify-purchase/token');\n nw.searchParams.set('sid', initial.id);\n nw.searchParams.set('locale', locale);\n nw.searchParams.set('autoConnect', 'false');\n const { data } = await api.get(nw.href);\n const nextWorkflow = encodeURIComponent(data.url);\n\n window.location.href = joinURL(\n info.blockletRegistry,\n `/store/purchase/${meta.nftFactory}?cb=${callback}&nw=${nextWorkflow}`\n );\n }, 100);\n }\n };\n\n const onClose = (e, reason) => {\n if (reason === 'backdropClick') return;\n doRedirect();\n onCancel();\n setStep(1);\n };\n\n const onVerifySuccess = () => {\n setTimeout(onCancel, 2000);\n };\n\n const getMessage = () => {\n if (session) {\n if (session.status === 'confirmed') {\n return t('store.purchase.confirmed');\n }\n if (session.status === 'declined') {\n return t('store.purchase.declined');\n }\n if (session.status === 'error') {\n return session.message;\n }\n }\n\n return t('store.purchase.waiting');\n };\n\n const name = getDisplayName({ meta });\n\n if (step === 2 && action === 'verify' && session) {\n return (\n <DidConnect\n popup\n open\n className={classes.dialogAuth}\n action=\"verify-purchase\"\n checkFn={api.get}\n checkTimeout={10 * 60 * 1000}\n socketUrl={api.socketUrl}\n webWalletUrl={webWalletUrl}\n extraParams={{ locale, sid: session.id }}\n onSuccess={onVerifySuccess}\n onClose={onClose}\n showDownload={false}\n saveConnect={false}\n locale={locale}\n messages={{\n title: t('store.purchase.verify.auth.title', { name }),\n scan: t('store.purchase.verify.auth.scan'),\n confirm: t('store.purchase.verify.auth.confirm'),\n success: t('store.purchase.verify.auth.success'),\n }}\n />\n );\n }\n\n return (\n <Dialog title={t('store.purchase.title', { name })} disableEscapeKeyDown open fullWidth onClose={onClose}>\n {step === 1 && (\n <div style={{ marginBottom: 16 }}>\n <CustomSelect action={action} onNext={onNext} onSelect={onSelect} />\n </div>\n )}\n {step === 2 && action === 'purchase' && (\n <div style={{ textAlign: 'center' }}>\n {!hasCompleted && <Spinner />}\n <Typography component=\"p\">{getMessage()}</Typography>\n </div>\n )}\n </Dialog>\n );\n}\nconst installOptsProps = {\n // blocklet: install blocklet. component: install blocklet component\n type: 'blocklet',\n\n // component install params\n rootDid: '',\n mountPoint: '',\n url: '',\n name: '',\n did: '',\n title: '',\n};\nServerPurchaseDialog.propTypes = {\n ...commonProps,\n mode: PropTypes.oneOf(['both', 'purchase']).isRequired,\n installOpts: PropTypes.object,\n};\nServerPurchaseDialog.defaultProps = {\n installOpts: installOptsProps,\n};\n\nexport default ServerPurchaseDialog;\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { useState, useEffect, useImperativeHandle, forwardRef } from 'react';\nimport joinURL from 'url-join';\n\nimport { getDisplayName } from '@blocklet/meta/lib/util';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DidConnect from '@arcblock/did-connect/lib/Connect';\nimport PropTypes from 'prop-types';\nimport Toast from '@abtnode/ux/lib/toast';\nimport pWaitFor from 'p-wait-for';\nimport { useNodeContext } from '../../../contexts/node';\nimport { getWebWalletUrl, extractStatusUrlFromNextWorkflow } from '../../../libs/util';\n\nimport { commonProps, CustomSelect } from './common';\n\nimport { api as $api, axios } from '../../../libs/api';\n\nexport function ComponentPurchase({ meta, onCancel, mode, handlePaySuccess }) {\n const { t, locale } = useLocaleContext();\n const { info } = useNodeContext();\n const webWalletUrl = getWebWalletUrl(info);\n const [nw, setNw] = useState(null);\n\n const baseUrl = new URL(meta?.registryUrl).origin;\n\n const name = getDisplayName({ meta });\n\n const handleConnectSuccess = async (result, decrypt) => {\n const success = async ({ downloadTokenList }) => {\n handlePaySuccess({ downloadTokenList });\n };\n\n const failure = async errorMessage => {\n Toast.error(errorMessage);\n onCancel(errorMessage);\n };\n\n async function handleConnectSessionStatus(url) {\n return pWaitFor(\n () => {\n return $api.get(url).then(async ({ data }) => {\n const downloadTokenList = data?.downloadTokenList;\n if (data.status === 'succeed') {\n if (downloadTokenList && downloadTokenList.length) {\n await success({\n downloadTokenList,\n });\n } else {\n await failure(t('blocklet.component.missDownloadTokenTip'));\n return true;\n }\n\n return true;\n }\n\n if (data.status === 'error') {\n console.error('vc error: ', data);\n await failure(data?.error);\n return true;\n }\n return false;\n });\n },\n {\n interval: 1000,\n }\n );\n }\n\n if (mode === 'purchase' && nw) {\n const { statusUrl } = extractStatusUrlFromNextWorkflow(nw);\n // poll status url, to get download token\n await handleConnectSessionStatus(statusUrl);\n } else {\n await success({\n downloadTokenList: result.downloadTokenList && decrypt(result.downloadTokenList),\n });\n }\n };\n\n useEffect(() => {\n // only purchase mode has nw\n if (mode === 'purchase') {\n const nextWorkflowUrl = new URL(baseUrl);\n nextWorkflowUrl.pathname = '/api/did/verify-purchase-blocklet/token';\n nextWorkflowUrl.searchParams.set('serverDid', info.did);\n nextWorkflowUrl.searchParams.set('blockletDid', meta?.did);\n\n try {\n $api.get(nextWorkflowUrl.href).then(({ data }) => {\n const url = `${data.url}`;\n setNw(url);\n });\n } catch (error) {\n console.error('get next workflow url error: ', error);\n }\n }\n return () => {\n setNw(null);\n };\n }, [mode]); // eslint-disable-line\n\n // If nw does not exist, then connect should not be render\n if (mode === 'purchase' && !nw) {\n return '';\n }\n\n const modePropsMap = {\n verify: {\n action: 'verify-purchase-blocklet',\n checkFn: axios.create({ baseURL: baseUrl }).get,\n extraParams: {\n serverDid: info.did,\n blockletDid: meta?.did,\n },\n messages: {\n title: t('store.purchase.verify.auth.title', { name }),\n scan: t('store.purchase.verify.auth.scan'),\n confirm: t('store.purchase.verify.auth.confirm'),\n success: t('store.purchase.verify.auth.success'),\n },\n },\n purchase: {\n action: 'acquire-asset',\n checkFn: axios.create({ baseURL: joinURL(baseUrl, '/store') }).get,\n extraParams: {\n factory: meta.nftFactory,\n nw,\n },\n messages: {\n title: t('store.purchase.auth.title', { name }),\n scan: t('store.purchase.auth.scan'),\n confirm: t('store.purchase.auth.confirm'),\n success: (\n <>\n <p>{t('store.purchase.auth.success')}</p>\n <p>{t('blocklet.component.purchaseComponentSecondCheckTip')}</p>\n </>\n ),\n },\n },\n };\n\n return (\n <DidConnect\n open\n locale={locale}\n popup={false}\n saveConnect={false}\n className=\"connect\"\n baseUrl={baseUrl}\n onSuccess={handleConnectSuccess}\n cancelWhenScanned={onCancel}\n onClose={onCancel}\n checkTimeout={60 * 5000}\n webWalletUrl={webWalletUrl}\n disableClose\n showDownload={false}\n {...modePropsMap[mode]}\n />\n );\n}\n\nComponentPurchase.propTypes = {\n ...commonProps,\n handlePaySuccess: PropTypes.func,\n mode: PropTypes.oneOf(['verify', 'purchase']).isRequired,\n};\n\nComponentPurchase.defaultProps = {\n handlePaySuccess: () => {},\n};\n\nconst ComponentPurchaseSelect = forwardRef(({ mode, ...rest }, ref) => {\n const [action, setAction] = useState(mode !== 'both' ? mode : 'verify');\n const [step, setStep] = useState(mode !== 'both' ? 2 : 1);\n\n const onSelect = async act => {\n if (act === action) {\n return;\n }\n\n setAction(act);\n };\n\n const onNext = async () => {\n if (!action) {\n return;\n }\n if (step === 2) {\n return;\n }\n setStep(2);\n };\n\n // expose the func and activeStep\n useImperativeHandle(ref, () => ({\n onNext,\n getCurrentStep: () => {\n return step;\n },\n }));\n\n if (step === 1) {\n return (\n <div\n style={{\n maxWidth: 520,\n }}>\n <CustomSelect action={action} onNext={null} onSelect={onSelect} />\n </div>\n );\n }\n\n return <ComponentPurchase {...rest} mode={action} />;\n});\n\nComponentPurchaseSelect.propTypes = {\n mode: PropTypes.oneOf(['both', 'verify', 'purchase']).isRequired,\n ref: PropTypes.any,\n};\n\nComponentPurchaseSelect.defaultProps = {\n ref: {},\n};\n\nexport default ComponentPurchaseSelect;\n","import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { makeStyles } from '@mui/styles';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport Typography from '@mui/material/Typography';\nimport TextField from '@mui/material/TextField';\nimport ListItem from '@mui/material/ListItem';\nimport AddIcon from '@mui/icons-material/Add';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\nimport Alert from '@arcblock/ux/lib/Alert';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { formatError, isNewRegistryUrl } from '../../libs/util';\n\nconst useStyles = makeStyles(theme => ({\n addMenuItemRoot: {\n justifyContent: 'center',\n color: theme.palette.primary.main,\n lineHeight: '3.2',\n },\n}));\n\nexport default function AddBlockletRegistry({ disabled, reloadPage }) {\n const { api, info } = useNodeContext();\n const [loading, setLoading] = useState(false);\n const [disable, setDisable] = useState(true);\n const [open, setOpen] = useState(false);\n const [url, setUrl] = useState('');\n const [error, setError] = useState('');\n const { t } = useLocaleContext();\n const classes = useStyles();\n\n const onConfirm = async () => {\n setLoading(true);\n try {\n const { isNew, decoded } = isNewRegistryUrl(url, info.blockletRegistryList);\n\n if (!isNew) {\n throw new Error(t('store.blockletRegistry.haveSameRegistry'));\n }\n\n await api.addBlockletStore({ input: { url: decoded } });\n\n setOpen(false);\n if (reloadPage) {\n window.location.reload();\n }\n } catch (err) {\n const errMsg = `${t('store.blockletRegistry.addFailed')} ${formatError(err)}`;\n setError(errMsg);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <>\n <ListItem\n button\n disabled={disabled}\n className={classes.addMenuItemRoot}\n onClick={() => {\n setOpen(true);\n }}>\n <AddIcon font />\n <Typography variant=\"inherit\">{t('store.blockletRegistry.addRegistry')}</Typography>\n </ListItem>\n <Dialog\n title={t('store.blockletRegistry.addRegistry')}\n fullWidth\n maxWidth=\"md\"\n open={open}\n onClose={() => setOpen(false)}\n PaperProps={{ style: { minHeight: 'auto' } }}\n actions={\n <>\n <Button\n onClick={e => {\n e.stopPropagation();\n setOpen(false);\n }}\n color=\"inherit\">\n {t('common.cancel')}\n </Button>\n <Button\n onClick={e => {\n e.stopPropagation();\n onConfirm();\n }}\n color=\"primary\"\n data-cy=\"install-blocklet-next-step\"\n disabled={loading || !url || disable}\n variant=\"contained\"\n autoFocus>\n {loading && <Spinner size={[16, 10]} />}\n {t('common.confirm')}\n </Button>\n </>\n }>\n <div style={{ paddingTop: 12, overflowY: 'hidden' }}>\n <DialogContentText component=\"div\">\n <Typography component=\"div\">\n <TextField\n label={t('store.blockletRegistry.registryUrl')}\n autoComplete=\"off\"\n variant=\"outlined\"\n name=\"url\"\n fullWidth\n value={url}\n onChange={e => {\n setError(null);\n let isDisabled = false;\n if (!e.target.value.trim()) {\n isDisabled = true;\n }\n if (!e.target.value.trim()) {\n setError(t('store.blockletRegistry.registryUrlEmpty'));\n }\n setUrl(e.target.value);\n setDisable(isDisabled);\n }}\n disabled={loading}\n onKeyPress={e => {\n if (e.key === 'Enter') {\n e.preventDefault();\n if (!e.target.value.trim()) {\n setError(t('store.blockletRegistry.registryUrlEmpty'));\n } else {\n onConfirm();\n }\n }\n }}\n />\n </Typography>\n </DialogContentText>\n </div>\n {!!error && (\n <Alert type=\"error\" style={{ width: '100%' }}>\n {error}\n </Alert>\n )}\n </Dialog>\n </>\n );\n}\n\nAddBlockletRegistry.propTypes = {\n disabled: PropTypes.bool,\n reloadPage: PropTypes.bool,\n};\n\nAddBlockletRegistry.defaultProps = {\n disabled: false,\n reloadPage: true,\n};\n","/* eslint-disable react/prop-types */\nimport { useState } from 'react';\nimport { useSnackbar } from 'notistack';\nimport IconButton from '@mui/material/IconButton';\nimport useTheme from '@mui/material/styles/useTheme';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';\nimport DelConfirm from '../delete-confirm';\nimport { useNodeContext } from '../../contexts/node';\nimport { formatError } from '../../libs/util';\n\nexport default function DeleteBlockletRegistry(props) {\n const { enqueueSnackbar } = useSnackbar();\n const { api } = useNodeContext();\n const { t } = useLocaleContext();\n const [loading, setLoading] = useState(false);\n const [confirmSetting, setConfirmSetting] = useState(null);\n const { blockletRegistry, reloadPage, onDelete } = props;\n const theme = useTheme();\n\n const onCancel = () => {\n setLoading(false);\n setConfirmSetting(null);\n };\n\n const onConfirm = async () => {\n try {\n setLoading(true);\n await api.deleteBlockletStore({ input: { url: blockletRegistry.url } });\n if (onDelete && typeof onDelete === 'function') {\n onDelete();\n }\n if (reloadPage) {\n window.location.reload();\n }\n } catch (err) {\n enqueueSnackbar(`Remove Blocklet Store Error: ${formatError(err)}`, {\n autoHideDuration: 2000,\n variant: 'error',\n });\n } finally {\n setLoading(false);\n setConfirmSetting(null);\n }\n };\n\n const setting = {\n keyName: blockletRegistry.url,\n title: t('store.blockletRegistry.deleteRegistry'),\n description: t('store.blockletRegistry.deleteDesc', {\n name: `<b>${blockletRegistry.url}</b>`,\n color: theme.palette.error.main,\n }),\n confirmPlaceholder: t('store.blockletRegistry.confirmDesc', { name: blockletRegistry.url }),\n confirm: t('common.delConfirm'),\n cancel: t('common.cancel'),\n onConfirm,\n onCancel,\n };\n\n const onMenuItemClick = e => {\n e.stopPropagation();\n setConfirmSetting(setting);\n };\n\n return (\n <>\n <IconButton disabled={loading} onClick={onMenuItemClick} size=\"large\">\n <DeleteOutlineIcon />\n </IconButton>\n {confirmSetting && (\n <DelConfirm\n keyName={confirmSetting.keyName}\n title={confirmSetting.title}\n description={confirmSetting.description}\n confirmPlaceholder={confirmSetting.confirmPlaceholder}\n confirm={confirmSetting.confirm}\n cancel={confirmSetting.cancel}\n params={confirmSetting.params}\n onConfirm={confirmSetting.onConfirm}\n onCancel={confirmSetting.onCancel}\n />\n )}\n </>\n );\n}\n","/* eslint-disable react/jsx-one-expression-per-line */\nimport { forwardRef, useImperativeHandle, useState } from 'react';\n\nimport { useSnackbar } from 'notistack';\nimport { makeStyles } from '@mui/styles';\nimport Spinner from '@arcblock/ux/lib/Spinner';\nimport Dialog from '@arcblock/ux/lib/Dialog';\nimport Typography from '@mui/material/Typography';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport ListItemSecondaryAction from '@mui/material/ListItemSecondaryAction';\nimport ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport LaunchIcon from '@mui/icons-material/Launch';\nimport IconButton from '@mui/material/IconButton';\nimport PropTypes from 'prop-types';\n\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport Button from '@arcblock/ux/lib/Button';\nimport AddBlockletRegistry from './add';\nimport DeleteBlockletRegistry from './delete';\nimport Permission from '../permission';\n\nimport { useNodeContext } from '../../contexts/node';\nimport { formatError } from '../../libs/util';\n\nconst useStyles = makeStyles(() => ({\n buttonText: {\n textTransform: 'none !important',\n },\n iconRoot: {\n minWidth: 24,\n },\n menuName: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: '100px',\n '& span': { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },\n },\n}));\n\nexport function BlockletRegistryRenderItem(props) {\n const classes = useStyles();\n return (\n <div className={classes.menuName}>\n <Typography component=\"span\" variant=\"subtitle1\" style={{ fontWeight: '400' }}>\n {props.name}\n </Typography>\n <Typography className=\"url\" component=\"span\" variant=\"inherit\">\n {`${props.url}`}\n </Typography>\n <ListItemSecondaryAction>\n <IconButton\n onClick={e => {\n e.stopPropagation();\n window.open(props.url);\n }}\n size=\"large\">\n <LaunchIcon />\n </IconButton>\n {!props.protected && (\n <DeleteBlockletRegistry blockletRegistry={props} reloadPage={props.reloadPage} onDelete={props.onDelete} />\n )}\n </ListItemSecondaryAction>\n </div>\n );\n}\n\nBlockletRegistryRenderItem.propTypes = {\n name: PropTypes.string.isRequired,\n url: PropTypes.string.isRequired,\n protected: PropTypes.bool,\n reloadPage: PropTypes.bool,\n onDelete: PropTypes.func,\n};\n\nBlockletRegistryRenderItem.defaultProps = {\n protected: false,\n reloadPage: true,\n onDelete: () => {},\n};\n\nconst SwitchBlockletRegistry = forwardRef((props, ref) => {\n const { api, info } = useNodeContext();\n const { t } = useLocaleContext();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [open, setOpen] = useState(false);\n const [menuIndex, setMenuIndex] = useState(-1);\n const classes = useStyles();\n const selectedIndex = info.blockletRegistryList.findIndex(x => x.selected);\n\n const onSelect = async index => {\n try {\n setLoading(true);\n setMenuIndex(index);\n\n const blockletRegistry = info.blockletRegistryList[index];\n await api.selectBlockletStore({ input: { url: blockletRegistry.url } });\n setOpen(false);\n } catch (err) {\n console.error(err);\n enqueueSnackbar(`${t('store.blockletRegistry.changeFailed')} ${formatError(err)}`, {\n autoHideDuration: 2000,\n variant: 'error',\n });\n } finally {\n setLoading(false);\n }\n };\n\n useImperativeHandle(ref, () => ({\n setOpen,\n }));\n\n return (\n <>\n <Permission permission=\"mutate_node\">\n {hasPermission => (\n <Button\n disabled={!hasPermission}\n classes={{ text: classes.buttonText }}\n color=\"secondary\"\n data-cy=\"store-toggle\"\n onClick={() => {\n setOpen(true);\n }}\n endIcon={<ArrowDropDownIcon />}>\n <Typography color=\"secondary\">{info.blockletRegistryList[selectedIndex].name}</Typography>\n </Button>\n )}\n </Permission>\n <Dialog\n title={t('store.blockletRegistry.switchRegistry')}\n disableEscapeKeyDown\n disablePortal={false}\n fullWidth\n open={open}\n onClose={() => setOpen(false)}>\n <List className={classes.tabPanel}>\n {info.blockletRegistryList.map((x, index) => (\n <ListItem\n button\n disabled={loading}\n key={x.url}\n selected={selectedIndex === index}\n data-cy=\"store-switch\"\n onClick={() => {\n if (loading) {\n return;\n }\n\n if (index === selectedIndex) {\n setOpen(false);\n return;\n }\n\n onSelect(index);\n }}>\n <ListItemIcon className={classes.iconRoot}>\n {menuIndex === index && loading && <Spinner size={[16, 10]} />}\n </ListItemIcon>\n <ListItemText>\n <BlockletRegistryRenderItem {...x} />\n </ListItemText>\n </ListItem>\n ))}\n <AddBlockletRegistry disabled={loading} />\n </List>\n </Dialog>\n </>\n );\n});\n\nSwitchBlockletRegistry.propTypes = {};\n\nexport default SwitchBlockletRegistry;\n","import { useState, useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport useLocalStorage from 'react-use/lib/useLocalStorage';\n\nimport { BlockletEvents } from '@blocklet/constant';\n\nimport useQuery from './query';\nimport { useSubscription } from '../libs/ws';\n\nexport default function useBlockletPurchase(did) {\n const query = useQuery();\n const navigate = useNavigate();\n const [sessionId, setSessionId] = useLocalStorage(`sid:blocklet:purchase:${did}`);\n const [hasCompleted, setCompleted] = useState(false);\n const [session, setSession] = useState(null);\n\n const doRedirect = () => {\n const { pathname, searchParams } = new URL(window.location.href);\n const prefix = window.env && window.env.apiPrefix ? window.env.apiPrefix : '/';\n if (searchParams.get('sid')) {\n setSessionId('');\n navigate(pathname.replace(prefix, '/'), { replace: true });\n }\n };\n\n const hasPurchased = !!(query.get('assetDid') && sessionId && query.get('sid') === sessionId);\n\n useSubscription(BlockletEvents.purchaseChange, e => {\n if (e.did === did) {\n setSession(e.session);\n\n if (['declined', 'confirmed', 'error'].includes(e.session.status)) {\n setCompleted(true);\n setTimeout(doRedirect, 2000);\n }\n }\n });\n\n useEffect(() => {\n if (session && session.id !== sessionId) {\n setSessionId(session.id);\n }\n }, [session]); // eslint-disable-line\n\n return {\n hasCompleted,\n hasPurchased,\n session,\n setSession,\n doRedirect,\n };\n}\n","import axios from 'axios';\n\naxios.defaults.timeout = 10 * 1000; // 超时时间设为10s\n\nconst api = axios.create();\n\nexport { axios, api };\nexport default api;\n"],"names":["InstallOrUpgrade","props","showPay","meta","lastVersion","buttonText","registryUrl","handleButtonText","handleButtonClick","rest","enqueueSnackbar","useSnackbar","t","useLocaleContext","navigate","useNavigate","info","useNodeContext","useBlockletContext","api","state","data","find","d","did","installed","useMemo","status","installedVersion","version","requirePurchase","isFreeBlocklet","useState","loading","setLoading","hasPurchased","useBlockletPurchase","showPurchaseDialog","setShowPurchaseDialog","useLocalStorage","instantLaunch","loadingText","isInstalling","needUpgrade","gt","btnProps","btnTxt","upgrade","open","purchase","launch","showInstallBtn","onAction","e","preventDefault","stopPropagation","fn","input","url","getLaunchAgreementUrl","window","location","href","upgradeBlocklet","formatError","autoHideDuration","variant","console","error","InstallButton","disabled","Button","onClick","size","Boolean","color","Spinner","style","marginRight","defaultProps","permission","hasPermission","className","configs","some","x","required","value","Typography","component","fontSize","marginLeft","method","mode","onCancel","getStoreDetail","blocklet","endpoint","serverUrl","getLaunchURL","joinURL","BlockletItem","blocklets","node","logoUrl","prefix","blockletRegistry","startsWith","logo","formatRegistryLogoPath","apiPrefix","env","replace","buttonProps","reduce","totalVal","Link","textDecoration","currentTarget","contains","target","Blocklet","title","name","description","cover","button","display","alignItems","BlockletList","handleSearchSelect","handleBlockletRegistry","handleBlockletRender","extraFilter","locale","filters","setFilters","useEffect","ErrorBoundary","FallbackComponent","ErrorFallback","resetKeys","blockletRender","blockletRenderProps","defaultRender","onFilterChange","changeData","onSearchSelect","storeUrl","detailUrl","undefined","useStyles","PropTypes","makeStyles","dialogAuth","padding","textAlign","marginBottom","iconRoot","minWidth","CustomSelect","action","onSelect","onNext","classes","options","List","tabPanel","map","ListItem","selected","ListItemIcon","colors","ListItemText","primary","secondary","fullWidth","marginTop","LaunchPurchaseDialog","handlePaySuccessFn","handlePaySuccess","setAction","step","setStep","webWalletUrl","getWebWalletUrl","launchAddress","act","getDisplayName","popup","baseUrl","checkFn","axios","baseURL","get","onSuccess","onClose","checkTimeout","extraParams","factory","nftFactory","disableClose","saveConnect","showDownload","messages","scan","confirm","success","gutterBottom","Wrapper","Dialog","disableEscapeKeyDown","reason","setTimeout","ServerPurchaseDialog","installOpts","gql","useSessionContext","session","setSession","hasCompleted","doRedirect","payload","type","blockletDid","startSession","JSON","stringify","initial","cb","URL","searchParams","delete","set","id","callback","encodeURIComponent","nw","pathname","nextWorkflow","socketUrl","sid","message","getMessage","rootDid","mountPoint","ComponentPurchase","setNw","origin","handleConnectSuccess","result","decrypt","handleConnectSessionStatus","pWaitFor","$api","then","downloadTokenList","length","failure","interval","errorMessage","Toast","extractStatusUrlFromNextWorkflow","statusUrl","nextWorkflowUrl","modePropsMap","verify","serverDid","cancelWhenScanned","ComponentPurchaseSelect","forwardRef","ref","useImperativeHandle","getCurrentStep","maxWidth","theme","addMenuItemRoot","justifyContent","palette","main","lineHeight","AddBlockletRegistry","reloadPage","disable","setDisable","setOpen","setUrl","setError","onConfirm","isNewRegistryUrl","blockletRegistryList","isNew","decoded","Error","addBlockletStore","reload","errMsg","font","PaperProps","minHeight","actions","autoFocus","paddingTop","overflowY","label","autoComplete","onChange","isDisabled","trim","onKeyPress","key","width","DeleteBlockletRegistry","confirmSetting","setConfirmSetting","onDelete","useTheme","deleteBlockletStore","setting","keyName","confirmPlaceholder","cancel","IconButton","DeleteOutline","params","textTransform","menuName","flexDirection","overflow","textOverflow","whiteSpace","BlockletRegistryRenderItem","fontWeight","ListItemSecondaryAction","Launch","protected","SwitchBlockletRegistry","menuIndex","setMenuIndex","selectedIndex","findIndex","index","selectBlockletStore","text","endIcon","ArrowDropDown","disablePortal","query","useQuery","sessionId","setSessionId","setCompleted","useSubscription","BlockletEvents","includes"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[5720],{65834:function(e,n,t){t.d(n,{BZ:function(){return Z},ZN:function(){return _}});var r=t(56666),a=t(33028),c=t(32723),s=t(34795),o=t(96234),i=t(30969),l=t(19611),u=t.n(l),d=t(20244),m=t(32860),f=t(67615),p=t(67626),h=t.n(p),x=t(32198),v=t.n(x),y=t(42167),g=t(35258),j=t(78685),b=v()((function(e){return h()(u()(new URL(e).origin,d.WELLKNOWN_PING_PREFIX))})),k={};function C(e){var n=e.urls,t=e.checkAccessible,r=void 0===t?h():t,a=e.disableCache,l=void 0!==a&&a,u=(0,i.useRef)(n.filter((function(e){return k[e]})).map((function(e){return k[e]}))),d=u.current.length===n.length,m=(0,i.useState)(d?u.current:[]),p=(0,o.Z)(m,2),x=p[0],v=p[1],y=(0,i.useState)(!d),g=(0,o.Z)(y,2),j=g[0],b=g[1],C=(0,i.useMemo)((function(){return!j&&x.length?x[0]:null}),[x,j]);return(0,i.useEffect)((function(){if((null===n||void 0===n?void 0:n.length)>0&&!d){var e=function(){var e=(0,s.Z)((0,c.Z)().mark((function e(){var t;return(0,c.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(b(!0),!l){e.next=8;break}return e.next=4,(0,f.evaluateURLs)(n,{checkAccessible:r});case 4:(t=e.sent).forEach((function(e){k[e.url]=e})),e.next=13;break;case 8:return e.next=10,(0,f.evaluateURLs)(n.filter((function(e){return!k[e]})),{checkAccessible:r});case 10:e.sent.forEach((function(e){k[e.url]=e})),t=n.map((function(e){return k[e]})).sort((function(e,n){return n.score-e.score}));case 13:v(t),b(!1);case 15:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();e()}}),[n,l,d]),{urlsState:x,loading:j,recommendedUrlState:C,recommendedUrl:null===C||void 0===C?void 0:C.url}}function Z(e){var n=(0,g.lX)().siteMap,t=(0,i.useContext)(y.LocaleContext).locale,r=(0,i.useMemo)((function(){return e?(0,g.A6)({did:e.meta.did,siteMap:n,params:(0,j.f0)(e,t)}):[]}),[e,t,n]),a=C({urls:r,checkAccessible:b});return{urls:r,loading:a.loading,recommendedUrlState:a.recommendedUrlState,recommendedUrl:a.recommendedUrl}}function _(e){var n,t=C({urls:(0,i.useMemo)((function(){return e.map((function(e){return(0,m.Sk)(e)}))}),[e]),checkAccessible:b}),c=t.urlsState,s=t.loading,o=t.recommendedUrl;if(s)n={domainsAccessibility:e.reduce((function(e,n){return(0,a.Z)((0,a.Z)({},e),{},(0,r.Z)({},n,{loading:!0}))}),{}),recommendedDomain:null};else{var l,u=c.reduce((function(e,n){var t=new URL(n.url).hostname;return e[t]=(0,a.Z)((0,a.Z)({},n),{},{domain:t}),e}),{}),d=(null===(l=c.find((function(e){return e.accessible})))||void 0===l?void 0:l.url)||o;n={domainsAccessibility:u,recommendedDomain:d?new URL(d).hostname:null}}return n}},21121:function(e,n,t){t.r(n),t.d(n,{default:function(){return ue}});var r=t(71171),a=t(30969),c=t(16380),s=t(30734),o=t(70054),i=t(3037),l=t(42167),u=t(95050),d=t(98395),m=t(65233),f=t(5954),p=t(79670),h=t(33028),x=t(32723),v=t(34795),y=t(96234),g=t(73930),j=t(70048),b=function(e,n){void 0===n&&(n=[]);var t=(0,a.useState)(0),r=t[0],c=t[1],s=(0,j.Z)(e,(0,g.__spreadArrays)(n,[r])),o=s.loading,i=(0,a.useCallback)((function(){o||c((function(e){return e+1}))}),(0,g.__spreadArrays)(n,[o]));return(0,g.__assign)((0,g.__assign)({},s),{retry:i})},k=t(75066),C=t(90042),Z=t(58165),_=t(61802),w=t(24972),K=t(51193),S=t(20244),N=t(1289),A=t(78685),U=t(3715),I=t(35436),z=t(28712),L=t(89003),R=t(49197),W=t(3562),P=t(88029),B=t(70517),D=t(57016),M=t(37574);function O(e){var n=e.remark,t=e.onCreate,r=(0,l.useLocaleContext)().t,c=(0,a.useState)(!1),s=(0,y.Z)(c,2),i=s[0],u=s[1],d=(0,a.useState)(null),m=(0,y.Z)(d,2),f=m[0],p=m[1],g=(0,D.Z)(),j=S.RBAC_CONFIG.roles.filter((function(e){return e.passport&&e.name!==S.ROLES.OWNER})),b=function(){var e=(0,v.Z)((0,x.Z)().mark((function e(n){var r,a,c,s;return(0,x.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=n.remark,a=n.passport,u(!0),e.next=4,g.createAccessKey({input:{remark:r.trim(),passport:a}});case 4:c=e.sent,s=c.data,t(s),p(null),u(!1);case 9:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),k={title:"".concat(r("common.create")," ").concat(r("common.accessKey")),description:function(e,n,t){return(0,M.jsxs)(o.Z,{component:"div",children:[(0,M.jsx)(I.Z,{label:r("setting.accessKey.tip"),autoComplete:"off",variant:"outlined",name:"remark","data-cy":"remark-input",fullWidth:!0,autoFocus:!0,style:{marginBottom:32},margin:"dense",value:e.remark,onChange:function(a){n((0,h.Z)((0,h.Z)({},e),{},{remark:a.target.value,__disableConfirm:!e.passport||!a.target.value.trim()})),a.target.value.trim()?t(""):t(r("setting.accessKey.remarkInvalid"))}}),(0,M.jsxs)(W.Z,{style:{width:"100%"},variant:"outlined",children:[(0,M.jsx)(R.Z,{children:r("common.passport")}),(0,M.jsx)(L.Z,{"data-cy":"create-access-key-select-passport",value:e.passport,onChange:function(r){var a=r.target.value;t(null),n((0,h.Z)((0,h.Z)({},e),{},{passport:a,__disableConfirm:!e.remark||!a}))},fullWidth:!0,label:r("common.passport"),disabled:i,children:j.map((function(e){return(0,M.jsx)(z.Z,{value:e.name,"data-cy":"create-access-key-passport-option-".concat(e.name),children:(0,M.jsxs)(Z.Z,{children:[(0,M.jsx)("span",{children:e.title||e.name}),(0,M.jsx)(Z.Z,{maxWidth:440,fontSize:12,color:"#999",whiteSpace:"normal",textAlign:"justify",children:e.description})]})},e.name)}))})]})]})},confirm:r("common.confirm"),cancel:r("common.cancel"),color:"primary",params:{remark:n,__disableConfirm:!n.trim()},onConfirm:b,onCancel:function(){u(!1),p(null)}};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(P.default,{edge:"end",variant:"contained",color:"primary","data-cy":"add-access-key-btn",onClick:function(){return p(k)},className:"rule-action",children:[i?(0,M.jsx)(_.default,{size:[16,10]}):(0,M.jsx)(U.default,{style:{fontSize:16}}),r("common.create")]}),f&&(0,M.jsx)(B.Z,{title:f.title,description:f.description,confirm:f.confirm,color:f.color,cancel:f.cancel,params:f.params,onConfirm:f.onConfirm,onCancel:f.onCancel})]})}O.defaultProps={onCreate:function(){},remark:""};var F,E,T,G=t(62068),$=t(78742),q=t(21268),H=t(54258);function X(e){var n=e.onConfirm,t=e.accessKeyId,r=e.accessKeySecret,c=(0,a.useContext)(l.LocaleContext).t,s=(0,a.useState)(!1),o=(0,y.Z)(s,2),i=o[0],u=o[1],d=(0,a.useState)(!0),m=(0,y.Z)(d,2),f=m[0],p=m[1];return(0,M.jsxs)(G.default,{title:c("common.createSuccess"),fullWidth:!0,open:!0,disableEscapeKeyDown:!0,onClose:n,showCloseButton:!1,actions:(0,M.jsx)("div",{children:(0,M.jsx)(P.default,{disabled:!i,onClick:n,color:"primary",autoFocus:!0,variant:"contained","data-cy":"submit-confirm-dialog",children:c("common.confirm")})}),"aria-labelledby":"simple-dialog-title",children:[(0,M.jsx)("div",{children:(0,M.jsx)(Q,{children:c("setting.accessKey.saveSecretTip")})}),(0,M.jsx)("div",{style:{marginTop:"20px"}}),(0,M.jsxs)(J,{children:[(0,M.jsx)(V,{children:"Access Key"}),(0,M.jsx)(H.default,{children:t})]}),(0,M.jsxs)(J,{children:[(0,M.jsx)(V,{children:"Access Secret"}),f?(0,M.jsx)(P.default,{"data-cy":"show-secret-btn",color:"primary",onClick:function(){p(!f)},children:c("setting.accessKey.showSecret")}):(0,M.jsx)(H.default,{children:r})]}),(0,M.jsx)("div",{children:(0,M.jsx)($.Z,{value:"end",disabled:f,control:(0,M.jsx)(q.Z,{checked:i,onChange:function(e){u(e.target.checked)}}),label:c("setting.accessKey.iKnow"),labelPlacement:"end"})})]})}X.defaultProps={onConfirm:function(){}};var V=c.default.div(F||(F=(0,r.Z)(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 16px;\n margin-bottom: 8px;\n"]))),J=c.default.div(E||(E=(0,r.Z)(["\n margin-bottom: 24px;\n"]))),Q=c.default.div(T||(T=(0,r.Z)(["\n font-size: 16px;\n font-weight: bold;\n"]))),Y=t(5543),ee=t(10814),ne=t(22128);function te(e){var n,t=(0,l.useLocaleContext)(),r=t.t,c=t.locale,s=(0,a.useState)(!1),o=(0,y.Z)(s,2),i=o[0],u=o[1],d=(0,a.useState)(null),m=(0,y.Z)(d,2),f=m[0],p=m[1],h=e.accessKeyId,g=e.time,j=e.remark,b=e.onDelete,k=void 0===b?function(){}:b,C=(0,D.Z)(),Z=function(){var e=(0,v.Z)((0,x.Z)().mark((function e(){return(0,x.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return u(!0),e.prev=1,e.next=4,C.deleteAccessKey({input:{accessKeyId:h}});case 4:k(),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(1),console.error(e.t0);case 10:return e.prev=10,u(!1),p(null),e.finish(10);case 14:case"end":return e.stop()}}),e,null,[[1,7,10,14]])})));return function(){return e.apply(this,arguments)}}(),w={keyName:j,title:r("setting.accessKey.title"),description:"".concat(g?r("setting.accessKey.description",(n=g,{key:"<b>".concat(h,"</b>"),name:"<b>".concat(j,"</b>"),time:(0,A.B2)(n),timeAge:(0,Y.WU)(new Date(n),(0,A.FF)(c))})):r("setting.accessKey.descriptionNoTime",{key:"<b>".concat(h,"</b>"),name:"<b>".concat(j,"</b>")})),confirmPlaceholder:r("setting.accessKey.confirm_desc",{name:j}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:Z,onCancel:function(){u(!1),p(null)}};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(P.default,{edge:"end",onClick:function(){return p(w)},size:"small",className:"rule-action",color:"error",children:[i?(0,M.jsx)(_.default,{size:[16,10]}):(0,M.jsx)(ee.default,{style:{fontSize:16}}),r("common.delete")]}),f&&(0,M.jsx)(ne.Z,{keyName:f.keyName,title:f.title,description:f.description,confirmPlaceholder:f.confirmPlaceholder,confirm:f.confirm,cancel:f.cancel,params:f.params,onConfirm:f.onConfirm,onCancel:f.onCancel})]})}te.defaultProps={onDelete:function(){}};var re=t(88356);function ae(e){var n=e.accessKeyId,t=e.remark,r=e.onUpdate,c=e.passport,s=(0,l.useLocaleContext)().t,i=(0,a.useState)(!1),u=(0,y.Z)(i,2),d=u[0],m=u[1],f=(0,a.useState)(null),p=(0,y.Z)(f,2),g=p[0],j=p[1],b=(0,D.Z)(),k=S.RBAC_CONFIG.roles.filter((function(e){return e.passport&&e.name!==S.ROLES.OWNER})),C=function(){var e=(0,v.Z)((0,x.Z)().mark((function e(n){var t,a,c;return(0,x.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=n.accessKeyId,a=n.remark,c=n.passport,m(!0),e.next=4,b.updateAccessKey({input:{accessKeyId:t,remark:a.trim(),passport:c}});case 4:r(),j(null),m(!1);case 7:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),Z={title:"".concat(s("common.update")," ").concat(s("common.accessKey")),description:function(e,n,t){return(0,M.jsxs)(o.Z,{component:"div",children:[(0,M.jsx)(I.Z,{label:s("setting.accessKey.accessKeyId"),autoComplete:"off",variant:"outlined",name:"accessKeyId",fullWidth:!0,autoFocus:!0,style:{marginBottom:32},margin:"dense",value:e.accessKeyId,disabled:!0}),(0,M.jsx)(I.Z,{label:s("common.remark"),autoComplete:"off",variant:"outlined",name:"remark",fullWidth:!0,autoFocus:!0,style:{marginBottom:32},value:e.remark,onChange:function(r){n((0,h.Z)((0,h.Z)({},e),{},{remark:r.target.value,__disableConfirm:!r.target.value.trim()})),r.target.value.trim()?t(""):t(s("setting.accessKey.remarkInvalid"))}}),(0,M.jsxs)(W.Z,{style:{width:"100%"},variant:"outlined",children:[(0,M.jsx)(R.Z,{children:s("common.passport")}),(0,M.jsx)(L.Z,{"data-cy":"update-access-key-select-passport",value:e.passport,onChange:function(r){var a=r.target.value;t(null),n((0,h.Z)((0,h.Z)({},e),{},{passport:a,__disableConfirm:!e.remark||!a}))},fullWidth:!0,label:s("common.passport"),disabled:d,children:k.map((function(e){return(0,M.jsx)(z.Z,{value:e.name,"data-cy":"update-access-key-passport-option-".concat(e.name),children:(0,M.jsx)("span",{children:e.title||e.name})},e.name)}))})]})]})},confirm:s("common.confirm"),cancel:s("common.cancel"),color:"primary",params:{accessKeyId:n,remark:t,passport:c},onConfirm:C,onCancel:function(){m(!1),j(null)}};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(P.default,{edge:"end",onClick:function(){return j(Z)},size:"small",className:"rule-action",color:"primary",children:[d?(0,M.jsx)(_.default,{size:[16,10]}):(0,M.jsx)(re.default,{style:{fontSize:16}}),s("common.update")]}),g&&(0,M.jsx)(B.Z,{title:g.title,description:g.description,confirm:g.confirm,color:g.color,cancel:g.cancel,params:g.params,onConfirm:g.onConfirm,onCancel:g.onCancel})]})}ae.defaultProps={onUpdate:function(){},remark:"",passport:""};var ce,se=t(61627);function oe(){var e=(0,a.useContext)(l.LocaleContext).t,n=(0,f.h6)().api,t=(0,a.useState)({}),r=(0,y.Z)(t,2),c=r[0],s=r[1],o=b((0,v.Z)((0,x.Z)().mark((function e(){var t,r;return(0,x.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.getAccessKeys();case 2:return t=e.sent,r=t.list,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e)})))),i=o.value||[],u=o.loading,d=o.error;return!i.length&&u?(0,M.jsx)("div",{style:{textAlign:"center",marginTop:"50px"},children:(0,M.jsx)(_.default,{})}):!i.length&&d?(0,M.jsx)(C.Z,{severity:"error",children:(0,A.Z)(d)}):(0,M.jsxs)("div",{children:[(0,M.jsxs)(Z.Z,{mb:1,textAlign:"right",children:[(0,M.jsx)(se.Z,{permission:"mutate_node",children:(0,M.jsx)(O,{onCreate:function(e){var n=e.accessKeyId,t=e.accessKeySecret;s({show:!0,accessKeyId:n,accessKeySecret:t})}})}),c.show&&(0,M.jsx)(X,(0,h.Z)({onConfirm:function(){o.retry(),s({show:!1})}},c))]}),!i.length&&(0,M.jsx)(Z.Z,{mt:8,children:(0,M.jsx)(w.default,{children:e("common.noData")})}),!!i.length&&(0,M.jsx)(le,{children:i.map((function(e){var n=e.remark||"N/A",t=S.RBAC_CONFIG.roles.find((function(n){return n.name===e.passport}));return(0,M.jsxs)("div",{className:"access-key-item",children:[(0,M.jsxs)("div",{className:"access-key-item_info-warpper",children:[(0,M.jsx)("div",{className:"access-key-item_icon",children:(0,M.jsx)(k.Z,{})}),(0,M.jsxs)("div",{className:"access-key-item_info",children:[(0,M.jsx)(Z.Z,{fontWeight:700,children:n}),(0,M.jsx)(Z.Z,{minWidth:0,children:(0,M.jsx)(K.default,{showDidLogo:!1,children:e.accessKeyId})}),(0,M.jsxs)("div",{children:["Created at ",(0,A.B2)(e.createdAt)]}),(0,M.jsxs)("div",{children:["Created by ",e.createdBy]}),e.updatedBy&&(0,M.jsxs)("div",{children:["Updated by ",e.updatedBy]}),e.lastUsedAt&&(0,M.jsxs)("div",{children:["Last used at ",(0,A.B2)(e.lastUsedAt)]}),(0,M.jsx)("div",{className:"access-key-item_passport",children:(0,M.jsx)(N.default,{passport:{title:t?t.title:e.passport}})})]})]}),(0,M.jsxs)("div",{className:"access-key-item_actions",children:[(0,M.jsx)(ae,(0,h.Z)((0,h.Z)({},e),{},{onUpdate:o.retry})),(0,M.jsx)(te,{accessKeyId:e.accessKeyId,time:e.lastUsedAt,remark:e.remark||"N/A",onDelete:o.retry})]})]})}))})]})}var ie,le=c.default.div(ce||(ce=(0,r.Z)(["\n border: 1px solid\n ",";\n border-radius: 8px;\n\n .access-key-item {\n display: flex;\n justify-content: space-between;\n padding: 16px 32px;\n .access-key-item_info-warpper {\n display: flex;\n flex-grow: 1;\n .access-key-item_icon {\n display: flex;\n align-items: center;\n color: ",";\n svg {\n font-size: 44px;\n }\n }\n .access-key-item_info {\n flex: 1;\n max-width: 400px;\n padding-left: 44px;\n }\n }\n .access-key-item_actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n }\n\n .access-key-item_passport span {\n margin-top: 4px;\n padding: 2px 12px;\n font-size: 12px;\n }\n }\n .access-key-item + .access-key-item {\n border-top: 1px solid\n ","};\n }\n "," {\n .access-key-item {\n padding: 16px;\n .access-key-item_info-warpper {\n min-width: 0;\n .access-key-item_icon {\n svg {\n font-size: 24px;\n }\n }\n .access-key-item_info {\n max-width: 100%;\n padding-left: 16px;\n }\n }\n .access-key-item_actions {\n flex-direction: column;\n justify-content: center;\n }\n }\n }\n"])),(function(e){return e.theme.palette.grey[300]}),(function(e){return e.theme.palette.grey[400]}),(function(e){return e.theme.palette.grey[300]}),(function(e){return e.theme.breakpoints.down("md")}));function ue(){var e=(0,s.s0)(),n=(0,l.useLocaleContext)().t,t=(0,f.h6)().info,r=(0,s.UO)().tab,c=void 0===r?"members":r,h=(0,a.useCallback)((function(){return(0,M.jsx)(u.Z,{})}),[]),x=(0,a.useCallback)((function(){return(0,M.jsx)(d.Z,{type:"server"})}),[]),v=t.did,y={members:{label:n("common.members"),value:"members",component:x},passports:{label:n("common.passport"),value:"passports",component:m.Z},"access-keys":{label:n("common.accessKey"),value:"access-keys",component:oe},"audit-logs":{label:n("common.auditLogs"),value:"audit-logs",component:h}},g=Object.values(y).map((function(e){return{label:e.label,value:e.value}})),j=y[c]||y.member;return(0,M.jsx)(p.G6,{teamDid:v,children:(0,M.jsxs)(de,{children:[(0,M.jsx)(o.Z,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:n("common.team")}),(0,M.jsx)(i.default,{tabs:g,current:c,onChange:function(n){e("/team/".concat(n))},scrollButtons:"auto"}),(0,M.jsx)("div",{className:"page-content",children:(0,M.jsx)(j.component,{})})]})})}var de=c.default.main(ie||(ie=(0,r.Z)(["\n .page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .page-content {\n margin-top: 24px;\n }\n"])))},8144:function(e,n,t){var r=t(27609).default,a=t(91461).default,c=t(43681).default;Object.defineProperty(n,"__esModule",{value:!0}),n.default=_;var s,o=t(30969),i=Z(t(24974)),l=Z(t(16380)),u=Z(t(52897)),d=Z(t(61802)),m=Z(t(24757)),f=Z(t(45201)),p=Z(t(85865)),h=Z(t(52051)),x=Z(t(95018)),v=Z(t(94702)),y=Z(t(87335)),g=t(42167),j=Z(t(88029)),b=t(85710),k=Z(t(78853)),C=t(37574);function Z(e){return e&&e.__esModule?e:{default:e}}function _(e){var n=e.title,t=e.description,s=e.showCancel,i=e.cancel,l=e.confirm,u=e.color,Z=e.params,_=e.onCancel,w=e.onConfirm,K=(0,o.useState)(Z),N=c(K,2),A=N[0],U=N[1],I=(0,o.useState)(!0),z=c(I,2),L=z[0],R=z[1],W=(0,o.useState)(!1),P=c(W,2),B=P[0],D=P[1],M=(0,o.useState)(""),O=c(M,2),F=O[0],E=O[1],T=(0,g.useLocaleContext)().t,G=(0,v.default)(),$=function(){var e=a(r().mark((function e(n){return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!==typeof n){e.next=17;break}return D(!0),e.prev=2,e.next=5,n(A);case 5:R(!1),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),E((0,b.formatError)(e.t0)),console.error(e.t0);case 12:return e.prev=12,D(!1),e.finish(12);case 15:e.next=18;break;case 17:R(!1);case 18:case"end":return e.stop()}}),e,null,[[2,8,12,15]])})));return function(n){return e.apply(this,arguments)}}(),q="function"===typeof n?n():n,H="function"===typeof t?t(A,U,E):t,X=(0,y.default)(G.breakpoints.down("md")),V=(0,k.default)().minWidth;return(0,C.jsxs)(S,{onClick:function(e){e.stopPropagation()},fullScreen:X,open:L,style:{minWidth:V},children:[(0,C.jsx)(h.default,{children:q}),(0,C.jsxs)(f.default,{style:{minWidth:V},children:[(0,C.jsx)(p.default,{component:"div",children:H}),!!F&&(0,C.jsx)(x.default,{severity:"error",style:{width:"100%",marginTop:8},children:F})]}),(0,C.jsxs)(m.default,{className:"delete-actions",style:{padding:"8px 24px 24px"},children:[s&&(0,C.jsx)(j.default,{onClick:function(e){e.stopPropagation(),$(_)},color:"inherit","data-cy":"cancel-confirm-dialog",children:i||T("common.cancel")}),(0,C.jsxs)(j.default,{onClick:function(e){e.stopPropagation(),$(w)},color:u,disabled:A.__disableConfirm||B,variant:"contained","data-cy":"submit-confirm-dialog",autoFocus:!0,children:[B&&(0,C.jsx)(d.default,{size:[16,10]}),l]})]})]})}_.propTypes={title:i.default.any.isRequired,description:i.default.any.isRequired,showCancel:i.default.bool,cancel:i.default.string,color:i.default.string,confirm:i.default.string,params:i.default.object,onCancel:i.default.func,onConfirm:i.default.func.isRequired},_.defaultProps={onCancel:function(){},showCancel:!0,cancel:"",confirm:"Confirm",color:"error",params:{}};var w,K,S=(0,l.default)(u.default)(s||(w=["\n .delete-actions .Mui-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n box-shadow: none;\n background-color: rgba(0, 0, 0, 0.12) !important;\n }\n"],K||(K=w.slice(0)),s=Object.freeze(Object.defineProperties(w,{raw:{value:Object.freeze(K)}}))))},78853:function(e,n,t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,a=t(28440),c=(r=t(87335))&&r.__esModule?r:{default:r};var s=function(){var e=(0,a.useTheme)();return{minWidth:(0,c.default)(e.breakpoints.down("md"))?300:e.breakpoints.values.sm}};n.default=s},75066:function(e,n,t){var r=t(71600);n.Z=void 0;var a=r(t(48035)),c=t(37574),s=(0,a.default)((0,c.jsx)("path",{d:"M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"}),"VpnKey");n.Z=s},70048:function(e,n,t){t.d(n,{Z:function(){return s}});var r=t(30969),a=t(73930);function c(e,n,t){void 0===n&&(n=[]),void 0===t&&(t={loading:!1});var c=(0,r.useRef)(0),s=function(){var e=(0,r.useRef)(!1),n=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),n}(),o=(0,r.useState)(t),i=o[0],l=o[1],u=(0,r.useCallback)((function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];var r=++c.current;return i.loading||l((function(e){return(0,a.__assign)((0,a.__assign)({},e),{loading:!0})})),e.apply(void 0,n).then((function(e){return s()&&r===c.current&&l({value:e,loading:!1}),e}),(function(e){return s()&&r===c.current&&l({error:e,loading:!1}),e}))}),n);return[i,u]}function s(e,n){void 0===n&&(n=[]);var t=c(e,n,{loading:!0}),a=t[0],s=t[1];return(0,r.useEffect)((function(){s()}),[s]),a}},5543:function(e,n,t){t.d(n,{WU:function(){return l}});var r=["second","minute","hour","day","week","month","year"];var a=["\u79d2","\u5206\u949f","\u5c0f\u65f6","\u5929","\u5468","\u4e2a\u6708","\u5e74"];var c={},s=function(e,n){c[e]=n},o=[60,60,24,7,365/7/12,12];function i(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var l=function(e,n,t){var r=function(e,n){return(+(n?i(n):new Date)-+i(e))/1e3}(e,t&&t.relativeDate);return function(e,n){for(var t=e<0?1:0,r=e=Math.abs(e),a=0;e>=o[a]&&a<o.length;a++)e/=o[a];return(e=Math.floor(e))>(0===(a*=2)?9:1)&&(a+=1),n(e,a,r)[t].replace("%s",e.toString())}(r,function(e){return c[e]||c.en_US}(n))};s("en_US",(function(e,n){if(0===n)return["just now","right now"];var t=r[Math.floor(n/2)];return e>1&&(t+="s"),[e+" "+t+" ago","in "+e+" "+t]})),s("zh_CN",(function(e,n){if(0===n)return["\u521a\u521a","\u7247\u523b\u540e"];var t=a[~~(n/2)];return[e+" "+t+"\u524d",e+" "+t+"\u540e"]}))}}]);
|
|
2
|
-
//# sourceMappingURL=5720.6a664a49.chunk.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_abtnode_webapp=self.webpackChunk_abtnode_webapp||[]).push([[7595],{70517:function(e,t,n){"use strict";n.d(t,{Z:function(){return r.default}});var r=n(8144)},22128:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(33028),o=n(70054),i=n(35436),a=n(90042),c=n(42167),u=n(54258),l=n(70517),s=n(37574);function f(e){var t=e.title,n=e.description,f=e.confirmPlaceholder,d=e.cancel,p=e.confirm,m=e.params,h=e.onCancel,v=e.onConfirm,b=e.keyName,g=(0,c.useLocaleContext)().t,y={title:function(){return(0,s.jsxs)("div",{children:[t," (".concat(b,")")]})},description:function(e,t){return(0,s.jsxs)("div",{children:[(0,s.jsx)(a.Z,{severity:"warning",style:{width:"100%"},children:g("common.notice")}),(0,s.jsx)("div",{style:{marginTop:24,marginBottom:24},dangerouslySetInnerHTML:{__html:n}}),(0,s.jsxs)("div",{style:{marginBottom:24},children:[g("common.click"),"\uff1a",(0,s.jsx)(u.default,{"data-cy":"click-copy",children:b})]}),(0,s.jsx)(o.Z,{component:"div",children:(0,s.jsx)(i.Z,{label:f,autoComplete:"off","data-cy":"delete-confirm-input",variant:"outlined",fullWidth:!0,autoFocus:!0,value:e.inputVal,onChange:function(n){var o;o=(0,r.Z)((0,r.Z)({},e),{},{inputVal:n.target.value,__disableConfirm:b!==n.target.value}),t((0,r.Z)((0,r.Z)({},o),{},{__disableConfirm:o.__disableConfirm}))}})})]})},confirm:p,cancel:d,onConfirm:v,onCancel:h,params:(0,r.Z)({inputVal:"",__disableConfirm:!0},m)};return(0,s.jsx)(l.Z,{title:y.title,description:y.description,confirm:y.confirm,cancel:y.cancel,params:y.params,onConfirm:y.onConfirm,onCancel:y.onCancel})}f.defaultProps={onCancel:function(){},cancel:"",confirm:"Confirm",params:{}}},18721:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return b}});var r,o=n(71171),i=n(30969),a=n(19611),c=n.n(a),u=n(16380),l=n(70054),s=n(58165),f=n(78632),d=(n(23633),n(76129),n(42167)),p=n(5954),m=n(5907),h=n(978),v=n(37574);function b(){var e=(0,d.useLocaleContext)().t,t=(0,p.h6)().info.routing.adminPath,n=c()(window.location.origin,t),r=(0,i.useRef)(null);return(0,v.jsxs)(g,{children:[(0,v.jsxs)(f.Z,{separator:"\u203a","aria-label":"breadcrumb",className:"page-breadcrumb",children:[(0,v.jsx)(l.Z,{color:"textPrimary",children:e("common.store")}),(0,v.jsx)(h.Z,{ref:r})]}),(0,v.jsx)(s.Z,{className:"store-header",display:"flex",justifyContent:"space-between",p:0,m:0,children:(0,v.jsx)(l.Z,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:e("store.headerDescription")})}),(0,v.jsx)(m.Z,{className:"blocklet-list",handleSearchSelect:function(e){var t=e.detailUrl,r=new URL(t);r.searchParams.set("server-url",n),window.open(r.href)}})]})}var g=u.default.main(r||(r=(0,o.Z)(["\n @media (max-width: ","px) {\n .store-header {\n flex-direction: column;\n margin-bottom: 32px !important;\n }\n\n .page-header {\n margin-bottom: 16px !important;\n }\n }\n .blocklet-list {\n aside:hover {\n height: calc(100vh - 235px);\n }\n }\n"])),(function(e){return e.theme.breakpoints.values.sm}))},17128:function(e,t,n){var r=n(44765).Buffer,o=n(64029).types,i=n(2073).toHex,a=n(54186).fromPublicKey;e.exports=function(e){var t=i(r.from("string"===typeof e?e.trim():e));return a(t,{role:o.RoleType.ROLE_ANY})}},1934:function(e,t,n){"use strict";var r=n(27609).default,o=n(91461).default;Object.defineProperty(t,"__esModule",{value:!0}),t.downloadExportedSource=function(e){return g.apply(this,arguments)},t.genExportedMeta=function(e,t){var n=(0,a.default)((0,i.default)(t.meta),(function(e){return null!==e}));return n.name=e,n.did=(0,f.default)(e),n.logo="logo.png",n.interfaces.forEach((function(e){e.services||delete e.services})),t.children.forEach((function(e){e.dynamic&&e.bundleSource&&n.children.push({name:e.meta.name,source:e.bundleSource,title:e.meta.title,mountPoint:e.mountPoint})})),n.environments=(t.configs||[]).map((function(e){return{name:e.key,description:"Automatically generated when exporting",required:!!e.required,secure:!!e.secure,default:e.secure?"":e.value||""}})),n.capabilities.component=!1,n},t.getLaunchURL=t.getLaunchAgreementUrl=void 0,t.getNameByTitle=function(e){return e.replace(/[\s/@_]/g,"-").replace(/[^a-zA-Z0-9_-]/g,"").replace(/(^[-\s]+)|([-\s]+$)/g,"").toLowerCase()};var i=p(n(74082)),a=p(n(35483)),c=p(n(39591)),u=p(n(94920)),l=p(n(21918)),s=p(n(19611)),f=p(n(17128)),d=n(9214);function p(e){return e&&e.__esModule?e:{default:e}}var m=function(e){return function(e){for(var t=window.atob(e),n=new Uint8Array(t.length),r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}((0,d.toDataURL)(e,{size:200}).replace(/^[^,]*,/,""))};var h=function(e){return"Copyright \xa9 2022 ".concat(e||"","\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \u201cSoftware\u201d), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \u201cAS IS\u201d, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.")},v=".DS_Store\n.blocklet",b="name: Deploy\n\non:\n push:\n branches:\n - main\n\njobs:\n Deploy:\n runs-on: ubuntu-latest\n\n steps:\n - name: Checkout repo\n uses: actions/checkout@v2\n\n - name: Blocklet workflow\n uses: blocklet/action-workflow@v1\n with:\n skip-upload: true\n skip-deploy: true\n bundle-command: blocklet bundle --create-release\n github-token: ${{ secrets.GITHUB_TOKEN }}";function g(){return g=o(r().mark((function e(t){var n,o,i,a,s,f,d=arguments;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=d.length>1&&void 0!==d[1]?d[1]:{},o=n.holder,i="".concat(t.name.split("/").pop()),a="# ".concat(t.title,"\n\n## Introduction\n\n").concat(t.description),s=new c.default,(f=s.folder(i)).file("blocklet.yml",u.default.dump(t)),f.file("blocklet.md",a),f.file("README.md",a),f.file("logo.png",m(t.did)),f.file("LICENSE",h(o)),f.file(".gitignore",v),f.folder("screenshots").file(".gitkeep",""),f.folder(".github").folder("workflows").file("main.yml",b),e.next=15,new Promise((function(e,t){s.generateAsync({type:"blob"}).then((function(t){(0,l.default)(t,"".concat(i,".zip")),e()})).catch((function(e){t(e)}))}));case 15:case"end":return e.stop()}}),e)}))),g.apply(this,arguments)}var y=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.routing.adminPath,o=n?encodeURIComponent((0,s.default)(window.location.origin,r)):(0,s.default)(window.location.origin,r),i=(0,s.default)(null===t||void 0===t?void 0:t.blockletRegistry,"/api/blocklets/".concat(e.did,"/blocklet.json"));return{serverUrl:o,metaUrl:i}};t.getLaunchURL=y;t.getLaunchAgreementUrl=function(e,t){var n=y(e,t),r=n.metaUrl,o=n.serverUrl,i=new URL((0,s.default)(o,"/launch-blocklet/agreement"));return i.searchParams.set("blocklet_meta_url",r),i.searchParams.set("from",window.location.href),i.href}},54258:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=m;var r=n(30969),o=l(n(24974)),i=l(n(86186)),a=n(42167),c=n(37574),u=["children"];function l(e){return e&&e.__esModule?e:{default:e}}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function m(e){var t=e.children,n=p(e,u),o=(0,r.useContext)(a.LocaleContext).t;return(0,c.jsx)(i.default,f(f({tip:o("common.copyTip"),copiedTip:o("common.copiedTip")},n),{},{children:t}))}m.propTypes={children:o.default.any.isRequired}},8144:function(e,t,n){"use strict";var r=n(27609).default,o=n(91461).default,i=n(43681).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=j;var a,c=n(30969),u=E(n(24974)),l=E(n(16380)),s=E(n(52897)),f=E(n(61802)),d=E(n(24757)),p=E(n(45201)),m=E(n(85865)),h=E(n(52051)),v=E(n(95018)),b=E(n(94702)),g=E(n(87335)),y=n(42167),w=E(n(88029)),O=n(85710),T=E(n(78853)),x=n(37574);function E(e){return e&&e.__esModule?e:{default:e}}function j(e){var t=e.title,n=e.description,a=e.showCancel,u=e.cancel,l=e.confirm,s=e.color,E=e.params,j=e.onCancel,I=e.onConfirm,C=(0,c.useState)(E),N=i(C,2),R=N[0],S=N[1],P=(0,c.useState)(!0),Z=i(P,2),_=Z[0],A=Z[1],L=(0,c.useState)(!1),U=i(L,2),D=U[0],M=U[1],H=(0,c.useState)(""),F=i(H,2),W=F[0],B=F[1],V=(0,y.useLocaleContext)().t,Y=(0,b.default)(),z=function(){var e=o(r().mark((function e(t){return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("function"!==typeof t){e.next=17;break}return M(!0),e.prev=2,e.next=5,t(R);case 5:A(!1),e.next=12;break;case 8:e.prev=8,e.t0=e.catch(2),B((0,O.formatError)(e.t0)),console.error(e.t0);case 12:return e.prev=12,M(!1),e.finish(12);case 15:e.next=18;break;case 17:A(!1);case 18:case"end":return e.stop()}}),e,null,[[2,8,12,15]])})));return function(t){return e.apply(this,arguments)}}(),G="function"===typeof t?t():t,q="function"===typeof n?n(R,S,B):n,K=(0,g.default)(Y.breakpoints.down("md")),$=(0,T.default)().minWidth;return(0,x.jsxs)(k,{onClick:function(e){e.stopPropagation()},fullScreen:K,open:_,style:{minWidth:$},children:[(0,x.jsx)(h.default,{children:G}),(0,x.jsxs)(p.default,{style:{minWidth:$},children:[(0,x.jsx)(m.default,{component:"div",children:q}),!!W&&(0,x.jsx)(v.default,{severity:"error",style:{width:"100%",marginTop:8},children:W})]}),(0,x.jsxs)(d.default,{className:"delete-actions",style:{padding:"8px 24px 24px"},children:[a&&(0,x.jsx)(w.default,{onClick:function(e){e.stopPropagation(),z(j)},color:"inherit","data-cy":"cancel-confirm-dialog",children:u||V("common.cancel")}),(0,x.jsxs)(w.default,{onClick:function(e){e.stopPropagation(),z(I)},color:s,disabled:R.__disableConfirm||D,variant:"contained","data-cy":"submit-confirm-dialog",autoFocus:!0,children:[D&&(0,x.jsx)(f.default,{size:[16,10]}),l]})]})]})}j.propTypes={title:u.default.any.isRequired,description:u.default.any.isRequired,showCancel:u.default.bool,cancel:u.default.string,color:u.default.string,confirm:u.default.string,params:u.default.object,onCancel:u.default.func,onConfirm:u.default.func.isRequired},j.defaultProps={onCancel:function(){},showCancel:!0,cancel:"",confirm:"Confirm",color:"error",params:{}};var I,C,k=(0,l.default)(s.default)(a||(I=["\n .delete-actions .Mui-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n box-shadow: none;\n background-color: rgba(0, 0, 0, 0.12) !important;\n }\n"],C||(C=I.slice(0)),a=Object.freeze(Object.defineProperties(I,{raw:{value:Object.freeze(C)}}))))},78853:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=n(28440),i=(r=n(87335))&&r.__esModule?r:{default:r};var a=function(){var e=(0,o.useTheme)();return{minWidth:(0,i.default)(e.breakpoints.down("md"))?300:e.breakpoints.values.sm}};t.default=a},23633:function(e,t,n){"use strict";var r=n(71600);t.Z=void 0;var o=r(n(48035)),i=n(37574),a=(0,o.default)((0,i.jsx)("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownwardSharp");t.Z=a},76129:function(e,t,n){"use strict";var r=n(71600);t.Z=void 0;var o=r(n(48035)),i=n(37574),a=(0,o.default)((0,i.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpwardSharp");t.Z=a},76032:function(e,t,n){var r=n(43746),o=n(28342),i=n(32824),a=n(49756),c=n(66274),u=n(25377),l=n(91121),s=n(29239),f=Object.prototype.hasOwnProperty;e.exports=function(e){if(null==e)return!0;if(c(e)&&(a(e)||"string"==typeof e||"function"==typeof e.splice||u(e)||s(e)||i(e)))return!e.length;var t=o(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(l(e))return!r(e).length;for(var n in e)if(f.call(e,n))return!1;return!0}},86539:function(){},33196:function(){},38087:function(){},8092:function(){},50936:function(){},66604:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(32723),o=n(34795),i=n(33028),a=n(87371),c=n(9249),u=n(45754),l=n(13820),s=n(25991),f=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;return(0,c.Z)(this,n),(r=t.call(this,e)).name="TimeoutError",r}return(0,a.Z)(n)}((0,s.Z)(Error)),d=function(e){(0,u.Z)(n,e);var t=(0,l.Z)(n);function n(e){var r;return(0,c.Z)(this,n),(r=t.call(this)).name="AbortError",r.message=e,r}return(0,a.Z)(n)}((0,s.Z)(Error)),p=function(e){return void 0===globalThis.DOMException?new d(e):new DOMException(e)},m=function(e){var t=void 0===e.reason?p("This operation was aborted."):e.reason;return t instanceof Error?t:p(t)};function h(e,t,n,a){var c,u=new Promise((function(u,l){if("number"!==typeof t||1!==Math.sign(t))throw new TypeError("Expected `milliseconds` to be a positive number, got `".concat(t,"`"));if(t!==Number.POSITIVE_INFINITY){if((a=(0,i.Z)({customTimers:{setTimeout:setTimeout,clearTimeout:clearTimeout}},a)).signal){var s=a.signal;s.aborted&&l(m(s)),s.addEventListener("abort",(function(){l(m(s))}))}c=a.customTimers.setTimeout.call(void 0,(function(){if("function"!==typeof n){var r="string"===typeof n?n:"Promise timed out after ".concat(t," milliseconds"),o=n instanceof Error?n:new f(r);"function"===typeof e.cancel&&e.cancel(),l(o)}else try{u(n())}catch(i){l(i)}}),t),(0,o.Z)((0,r.Z)().mark((function t(){return(0,r.Z)().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.t0=u,t.next=4,e;case 4:t.t1=t.sent,(0,t.t0)(t.t1),t.next=11;break;case 8:t.prev=8,t.t2=t.catch(0),l(t.t2);case 11:return t.prev=11,a.customTimers.clearTimeout.call(void 0,c),t.finish(11);case 14:case"end":return t.stop()}}),t,null,[[0,8,11,14]])})))()}else u(e)}));return u.clear=function(){clearTimeout(c),c=void 0},u}function v(e){return b.apply(this,arguments)}function b(){return b=(0,o.Z)((0,r.Z)().mark((function e(t){var n,i,a,c,u,l,s,f,d,p=arguments;return(0,r.Z)().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=p.length>1&&void 0!==p[1]?p[1]:{},i=n.interval,a=void 0===i?20:i,c=n.timeout,u=void 0===c?Number.POSITIVE_INFINITY:c,l=n.before,s=void 0===l||l,d=new Promise((function(e,n){var i=function(){var c=(0,o.Z)((0,r.Z)().mark((function o(){var c;return(0,r.Z)().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,r.next=3,t();case 3:if("boolean"===typeof(c=r.sent)){r.next=6;break}throw new TypeError("Expected condition to return a boolean");case 6:!0===c?e():f=setTimeout(i,a),r.next=12;break;case 9:r.prev=9,r.t0=r.catch(0),n(r.t0);case 12:case"end":return r.stop()}}),o,null,[[0,9]])})));return function(){return c.apply(this,arguments)}}();s?i():f=setTimeout(i,a)})),u===Number.POSITIVE_INFINITY){e.next=14;break}return e.prev=4,e.next=7,h(d,u);case 7:return e.abrupt("return",e.sent);case 10:throw e.prev=10,e.t0=e.catch(4),f&&clearTimeout(f),e.t0;case 14:return e.abrupt("return",d);case 15:case"end":return e.stop()}}),e,null,[[4,10]])}))),b.apply(this,arguments)}}}]);
|
|
2
|
-
//# sourceMappingURL=7595.7fbdecd8.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/7595.7fbdecd8.chunk.js","mappings":"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","sources":["components/delete-confirm.js","pages/store/index.js","../../../blocklet/meta/lib/did.js","../../ux/lib/blocklet/util.js","../../ux/lib/click-to-copy.js","../../ux/lib/confirm.js","../../ux/lib/hooks/mobile-width.js","../../../node_modules/@mui/icons-material/ArrowDownwardSharp.js","../../../node_modules/@mui/icons-material/ArrowUpwardSharp.js","../../../node_modules/lodash/isEmpty.js","../node_modules/p-timeout/index.js","../node_modules/p-wait-for/index.js"],"sourcesContent":["/* eslint-disable react/no-unstable-nested-components */\n/* eslint-disable react/no-danger */\n/* eslint-disable react/prop-types */\nimport PropTypes from 'prop-types';\n\nimport Typography from '@mui/material/Typography';\nimport TextField from '@mui/material/TextField';\n\nimport Alert from '@mui/material/Alert';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\nimport ClickToCopy from '@abtnode/ux/lib/click-to-copy';\n\nimport Confirm from './confirm';\n\nexport default function CancelConfirm({\n title,\n description,\n confirmPlaceholder,\n cancel,\n confirm,\n params: initialParams,\n onCancel,\n onConfirm,\n keyName,\n}) {\n const { t } = useLocaleContext();\n\n const confirmSetting = {\n title: () => (\n <div>\n {title}\n {` (${keyName})`}\n </div>\n ),\n description: (params, setParams) => {\n const setValue = value => {\n // eslint-disable-next-line no-underscore-dangle\n setParams({ ...value, __disableConfirm: value.__disableConfirm });\n };\n\n return (\n <div>\n <Alert severity=\"warning\" style={{ width: '100%' }}>\n {t('common.notice')}\n </Alert>\n <div style={{ marginTop: 24, marginBottom: 24 }} dangerouslySetInnerHTML={{ __html: description }} />\n <div style={{ marginBottom: 24 }}>\n {t('common.click')}:<ClickToCopy data-cy=\"click-copy\">{keyName}</ClickToCopy>\n </div>\n <Typography component=\"div\">\n <TextField\n label={confirmPlaceholder}\n autoComplete=\"off\"\n data-cy=\"delete-confirm-input\"\n variant=\"outlined\"\n fullWidth\n autoFocus\n value={params.inputVal}\n onChange={e => {\n setValue({ ...params, inputVal: e.target.value, __disableConfirm: keyName !== e.target.value });\n }}\n />\n </Typography>\n </div>\n );\n },\n confirm,\n cancel,\n onConfirm,\n onCancel,\n params: {\n inputVal: '',\n __disableConfirm: true,\n ...initialParams,\n },\n };\n\n return (\n <Confirm\n title={confirmSetting.title}\n description={confirmSetting.description}\n confirm={confirmSetting.confirm}\n cancel={confirmSetting.cancel}\n params={confirmSetting.params}\n onConfirm={confirmSetting.onConfirm}\n onCancel={confirmSetting.onCancel}\n />\n );\n}\n\nCancelConfirm.propTypes = {\n title: PropTypes.any.isRequired,\n keyName: PropTypes.any.isRequired,\n description: PropTypes.any.isRequired, // can be a function that renders different content based on params\n confirmPlaceholder: PropTypes.any.isRequired,\n cancel: PropTypes.string,\n confirm: PropTypes.string,\n params: PropTypes.object, // This object holds states managed in the dialog\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func.isRequired,\n};\n\nCancelConfirm.defaultProps = {\n onCancel: () => {},\n cancel: '',\n confirm: 'Confirm',\n params: {},\n};\n","/* eslint-disable react/jsx-one-expression-per-line */\n/* eslint-disable operator-linebreak */\nimport { useRef } from 'react';\nimport joinURL from 'url-join';\nimport styled from '@emotion/styled';\nimport PropTypes from 'prop-types';\n\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport Breadcrumbs from '@mui/material/Breadcrumbs';\nimport ArrowDownwardSharpIcon from '@mui/icons-material/ArrowDownwardSharp';\nimport ArrowUpwardSharpIcon from '@mui/icons-material/ArrowUpwardSharp';\nimport { useLocaleContext } from '@arcblock/ux/lib/Locale/context';\n\nimport { useNodeContext } from '../../contexts/node';\nimport BlockletList from '../../components/blocklet/list';\nimport SwitchBlockletRegistry from '../../components/registry/switch';\n\nfunction SortIcon({ direction }) {\n return direction === 'desc' ? <ArrowDownwardSharpIcon /> : <ArrowUpwardSharpIcon />;\n}\n\nSortIcon.propTypes = {\n direction: PropTypes.string,\n};\nSortIcon.defaultProps = {\n direction: 'asc',\n};\n\nexport default function BlockletStore() {\n const { t } = useLocaleContext();\n const { info } = useNodeContext();\n\n const adminPath = process.env.NODE_ENV === 'production' ? info.routing.adminPath : '';\n const serverUrl = joinURL(window.location.origin, adminPath);\n const handleSearchSelect = ({ detailUrl }) => {\n const tmp = new URL(detailUrl);\n tmp.searchParams.set('server-url', serverUrl);\n window.open(tmp.href);\n };\n\n const switchEl = useRef(null);\n\n return (\n <Main>\n <Breadcrumbs separator=\"›\" aria-label=\"breadcrumb\" className=\"page-breadcrumb\">\n <Typography color=\"textPrimary\">{t('common.store')}</Typography>\n <SwitchBlockletRegistry ref={switchEl} />\n </Breadcrumbs>\n <Box className=\"store-header\" display=\"flex\" justifyContent=\"space-between\" p={0} m={0}>\n <Typography component=\"h2\" variant=\"h4\" className=\"page-header\" color=\"textPrimary\">\n {t('store.headerDescription')}\n </Typography>\n </Box>\n <BlockletList className=\"blocklet-list\" handleSearchSelect={handleSearchSelect} />\n </Main>\n );\n}\n\nconst Main = styled.main`\n @media (max-width: ${props => props.theme.breakpoints.values.sm}px) {\n .store-header {\n flex-direction: column;\n margin-bottom: 32px !important;\n }\n\n .page-header {\n margin-bottom: 16px !important;\n }\n }\n .blocklet-list {\n aside:hover {\n height: calc(100vh - 235px);\n }\n }\n`;\n","const { types } = require('@ocap/mcrypto');\nconst { toHex } = require('@ocap/util');\nconst { fromPublicKey } = require('@arcblock/did');\n\nconst toBlockletDid = (name) => {\n const pk = toHex(Buffer.from(typeof name === 'string' ? name.trim() : name));\n return fromPublicKey(pk, { role: types.RoleType.ROLE_ANY });\n};\n\nmodule.exports = toBlockletDid;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.downloadExportedSource = downloadExportedSource;\nexports.genExportedMeta = genExportedMeta;\nexports.getLaunchURL = exports.getLaunchAgreementUrl = void 0;\nexports.getNameByTitle = getNameByTitle;\nvar _cloneDeep = _interopRequireDefault(require(\"lodash/cloneDeep\"));\nvar _pickBy = _interopRequireDefault(require(\"lodash/pickBy\"));\nvar _jszip = _interopRequireDefault(require(\"jszip\"));\nvar _jsYaml = _interopRequireDefault(require(\"js-yaml\"));\nvar _fileSaver = _interopRequireDefault(require(\"file-saver\"));\nvar _urlJoin = _interopRequireDefault(require(\"url-join\"));\nvar _did = _interopRequireDefault(require(\"@blocklet/meta/lib/did\"));\nvar _didMotif = require(\"@arcblock/did-motif\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst base64ToArrayBuffer = base64 => {\n const bufStr = window.atob(base64);\n const bytes = new Uint8Array(bufStr.length);\n for (let i = 0; i < bufStr.length; i++) {\n bytes[i] = bufStr.charCodeAt(i);\n }\n return bytes;\n};\nconst getLogo = did => {\n const url = (0, _didMotif.toDataURL)(did, {\n size: 200\n });\n const base64 = url.replace(/^[^,]*,/, '');\n return base64ToArrayBuffer(base64);\n};\nfunction getNameByTitle(title) {\n return title.replace(/[\\s/@_]/g, '-').replace(/[^a-zA-Z0-9_-]/g, '').replace(/(^[-\\s]+)|([-\\s]+$)/g, '').toLowerCase();\n}\nfunction genExportedMeta(name, blocklet) {\n const meta = (0, _pickBy.default)((0, _cloneDeep.default)(blocklet.meta), x => x !== null);\n meta.name = name;\n meta.did = (0, _did.default)(name);\n meta.logo = 'logo.png';\n meta.interfaces.forEach(x => {\n // filter null or undefined\n if (!x.services) {\n delete x.services;\n }\n });\n blocklet.children.forEach(child => {\n if (child.dynamic && child.bundleSource) {\n meta.children.push({\n name: child.meta.name,\n source: child.bundleSource,\n title: child.meta.title,\n mountPoint: child.mountPoint\n });\n }\n });\n meta.environments = (blocklet.configs || []).map(x => ({\n name: x.key,\n description: 'Automatically generated when exporting',\n required: !!x.required,\n secure: !!x.secure,\n default: x.secure ? '' : x.value || ''\n }));\n meta.capabilities.component = false;\n return meta;\n}\nconst license = holder => \"Copyright \\xA9 2022 \".concat(holder || '', \"\\n\\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \\u201CSoftware\\u201D), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\\n\\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\\n\\nTHE SOFTWARE IS PROVIDED \\u201CAS IS\\u201D, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\");\nconst Gitignore = \".DS_Store\\n.blocklet\";\nconst GithubAction = \"name: Deploy\\n\\non:\\n push:\\n branches:\\n - main\\n\\njobs:\\n Deploy:\\n runs-on: ubuntu-latest\\n\\n steps:\\n - name: Checkout repo\\n uses: actions/checkout@v2\\n\\n - name: Blocklet workflow\\n uses: blocklet/action-workflow@v1\\n with:\\n skip-upload: true\\n skip-deploy: true\\n bundle-command: blocklet bundle --create-release\\n github-token: ${{ secrets.GITHUB_TOKEN }}\";\nasync function downloadExportedSource(meta) {\n let {\n holder\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const folderName = \"\".concat(meta.name.split('/').pop());\n const readme = \"# \".concat(meta.title, \"\\n\\n## Introduction\\n\\n\").concat(meta.description);\n const zip = new _jszip.default();\n const folder = zip.folder(folderName);\n folder.file('blocklet.yml', _jsYaml.default.dump(meta));\n folder.file('blocklet.md', readme);\n folder.file('README.md', readme);\n folder.file('logo.png', getLogo(meta.did));\n folder.file('LICENSE', license(holder));\n folder.file('.gitignore', Gitignore);\n folder.folder('screenshots').file('.gitkeep', '');\n folder.folder('.github').folder('workflows').file('main.yml', GithubAction);\n await new Promise((resolve, reject) => {\n zip.generateAsync({\n type: 'blob'\n }).then(content => {\n (0, _fileSaver.default)(content, \"\".concat(folderName, \".zip\"));\n resolve();\n }).catch(err => {\n reject(err);\n });\n });\n}\nconst getLaunchURL = function getLaunchURL(meta, info) {\n let encodeURI = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const adminPath = process.env.NODE_ENV === 'production' ? info.routing.adminPath : '';\n const serverUrl = encodeURI ? encodeURIComponent((0, _urlJoin.default)(window.location.origin, adminPath)) : (0, _urlJoin.default)(window.location.origin, adminPath);\n const metaUrl = (0, _urlJoin.default)(info === null || info === void 0 ? void 0 : info.blockletRegistry, \"/api/blocklets/\".concat(meta.did, \"/blocklet.json\"));\n return {\n serverUrl,\n metaUrl\n };\n};\nexports.getLaunchURL = getLaunchURL;\nconst getLaunchAgreementUrl = (meta, info) => {\n const {\n metaUrl,\n serverUrl\n } = getLaunchURL(meta, info);\n const url = new URL((0, _urlJoin.default)(serverUrl, '/launch-blocklet/agreement'));\n url.searchParams.set('blocklet_meta_url', metaUrl);\n url.searchParams.set('from', window.location.href);\n return url.href;\n};\nexports.getLaunchAgreementUrl = getLaunchAgreementUrl;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ClickToCopy;\nvar _react = require(\"react\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _ClickToCopy = _interopRequireDefault(require(\"@arcblock/ux/lib/ClickToCopy\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nconst _excluded = [\"children\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ClickToCopy(_ref) {\n let {\n children\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n const {\n t\n } = (0, _react.useContext)(_context.LocaleContext);\n return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ClickToCopy.default, _objectSpread(_objectSpread({\n tip: t('common.copyTip'),\n copiedTip: t('common.copiedTip')\n }, rest), {}, {\n children: children\n }));\n}\nClickToCopy.propTypes = {\n children: _propTypes.default.any.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ConfirmDialog;\nvar _react = require(\"react\");\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styled = _interopRequireDefault(require(\"@emotion/styled\"));\nvar _Dialog = _interopRequireDefault(require(\"@mui/material/Dialog\"));\nvar _Spinner = _interopRequireDefault(require(\"@arcblock/ux/lib/Spinner\"));\nvar _DialogActions = _interopRequireDefault(require(\"@mui/material/DialogActions\"));\nvar _DialogContent = _interopRequireDefault(require(\"@mui/material/DialogContent\"));\nvar _DialogContentText = _interopRequireDefault(require(\"@mui/material/DialogContentText\"));\nvar _DialogTitle = _interopRequireDefault(require(\"@mui/material/DialogTitle\"));\nvar _Alert = _interopRequireDefault(require(\"@mui/material/Alert\"));\nvar _useTheme = _interopRequireDefault(require(\"@mui/material/styles/useTheme\"));\nvar _useMediaQuery = _interopRequireDefault(require(\"@mui/material/useMediaQuery\"));\nvar _context = require(\"@arcblock/ux/lib/Locale/context\");\nvar _Button = _interopRequireDefault(require(\"@arcblock/ux/lib/Button\"));\nvar _util = require(\"./util\");\nvar _mobileWidth = _interopRequireDefault(require(\"./hooks/mobile-width\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _templateObject;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction ConfirmDialog(_ref) {\n let {\n title,\n description,\n showCancel,\n cancel,\n confirm,\n color,\n params: initialParams,\n onCancel,\n onConfirm\n } = _ref;\n const [params, setParams] = (0, _react.useState)(initialParams);\n const [open, setOpen] = (0, _react.useState)(true);\n const [loading, setLoading] = (0, _react.useState)(false);\n const [error, setError] = (0, _react.useState)('');\n const {\n t: changeLocale\n } = (0, _context.useLocaleContext)();\n const theme = (0, _useTheme.default)();\n const onCallback = async cb => {\n if (typeof cb === 'function') {\n setLoading(true);\n try {\n await cb(params);\n setOpen(false);\n } catch (err) {\n setError((0, _util.formatError)(err));\n console.error(err);\n } finally {\n setLoading(false);\n }\n } else {\n setOpen(false);\n }\n };\n const t = typeof title === 'function' ? title() : title;\n const d = typeof description === 'function' ? description(params, setParams, setError) : description;\n const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('md'));\n const handleClick = e => {\n e.stopPropagation();\n };\n const {\n minWidth\n } = (0, _mobileWidth.default)();\n return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledDialog, {\n onClick: handleClick,\n fullScreen: isBreakpointsDownSm,\n open: open,\n style: {\n minWidth\n },\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogTitle.default, {\n children: t\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogContent.default, {\n style: {\n minWidth\n },\n children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContentText.default, {\n component: \"div\",\n children: d\n }), !!error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {\n severity: \"error\",\n style: {\n width: '100%',\n marginTop: 8\n },\n children: error\n })]\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogActions.default, {\n className: \"delete-actions\",\n style: {\n padding: '8px 24px 24px'\n },\n children: [showCancel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {\n onClick: e => {\n e.stopPropagation();\n onCallback(onCancel);\n },\n color: \"inherit\",\n \"data-cy\": \"cancel-confirm-dialog\",\n children: cancel || changeLocale('common.cancel')\n }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Button.default, {\n onClick: e => {\n e.stopPropagation();\n onCallback(onConfirm);\n },\n color: color\n // eslint-disable-next-line no-underscore-dangle\n ,\n disabled: params.__disableConfirm || loading,\n variant: \"contained\",\n \"data-cy\": \"submit-confirm-dialog\",\n autoFocus: true,\n children: [loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Spinner.default, {\n size: [16, 10]\n }), confirm]\n })]\n })]\n });\n}\nConfirmDialog.propTypes = {\n title: _propTypes.default.any.isRequired,\n description: _propTypes.default.any.isRequired,\n // can be a function that renders different content based on params\n showCancel: _propTypes.default.bool,\n cancel: _propTypes.default.string,\n color: _propTypes.default.string,\n confirm: _propTypes.default.string,\n params: _propTypes.default.object,\n // This object holds states managed in the dialog\n onCancel: _propTypes.default.func,\n onConfirm: _propTypes.default.func.isRequired\n};\nConfirmDialog.defaultProps = {\n onCancel: () => {},\n showCancel: true,\n cancel: '',\n confirm: 'Confirm',\n color: 'error',\n params: {}\n};\nconst StyledDialog = (0, _styled.default)(_Dialog.default)(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n .delete-actions .Mui-disabled {\\n color: rgba(0, 0, 0, 0.26) !important;\\n box-shadow: none;\\n background-color: rgba(0, 0, 0, 0.12) !important;\\n }\\n\"])));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _styles = require(\"@mui/styles\");\nvar _useMediaQuery = _interopRequireDefault(require(\"@mui/material/useMediaQuery\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction useMobileWidth() {\n const theme = (0, _styles.useTheme)();\n const isBreakpointsDownSm = (0, _useMediaQuery.default)(theme.breakpoints.down('md'));\n const minWidth = isBreakpointsDownSm ? 300 : theme.breakpoints.values.sm;\n return {\n minWidth\n };\n}\nvar _default = useMobileWidth;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownwardSharp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpwardSharp');\n\nexports.default = _default;","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined ?\n\tnew AbortError(errorMessage) :\n\tnew DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined ?\n\t\tgetDOMException('This operation was aborted.') :\n\t\tsignal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, milliseconds, fallback, options) {\n\tlet timer;\n\n\tconst cancelablePromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tresolve(promise);\n\t\t\treturn;\n\t\t}\n\n\t\toptions = {\n\t\t\tcustomTimers: {setTimeout, clearTimeout},\n\t\t\t...options\n\t\t};\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\ttimer = options.customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (typeof fallback === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst message = typeof fallback === 'string' ? fallback : `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\tconst timeoutError = fallback instanceof Error ? fallback : new TimeoutError(message);\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\treject(timeoutError);\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t} finally {\n\t\t\t\toptions.customTimers.clearTimeout.call(undefined, timer);\n\t\t\t}\n\t\t})();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import pTimeout from 'p-timeout';\n\nexport default async function pWaitFor(condition, options = {}) {\n\tconst {\n\t\tinterval = 20,\n\t\ttimeout = Number.POSITIVE_INFINITY,\n\t\tbefore = true\n\t} = options;\n\n\tlet retryTimeout;\n\n\tconst promise = new Promise((resolve, reject) => {\n\t\tconst check = async () => {\n\t\t\ttry {\n\t\t\t\tconst value = await condition();\n\n\t\t\t\tif (typeof value !== 'boolean') {\n\t\t\t\t\tthrow new TypeError('Expected condition to return a boolean');\n\t\t\t\t}\n\n\t\t\t\tif (value === true) {\n\t\t\t\t\tresolve();\n\t\t\t\t} else {\n\t\t\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\n\t\tif (before) {\n\t\t\tcheck();\n\t\t} else {\n\t\t\tretryTimeout = setTimeout(check, interval);\n\t\t}\n\t});\n\n\tif (timeout !== Number.POSITIVE_INFINITY) {\n\t\ttry {\n\t\t\treturn await pTimeout(promise, timeout);\n\t\t} catch (error) {\n\t\t\tif (retryTimeout) {\n\t\t\t\tclearTimeout(retryTimeout);\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\treturn promise;\n}\n\nexport {TimeoutError} from 'p-timeout';\n"],"names":["CancelConfirm","title","description","confirmPlaceholder","cancel","confirm","initialParams","params","onCancel","onConfirm","keyName","t","useLocaleContext","confirmSetting","setParams","severity","style","width","marginTop","marginBottom","dangerouslySetInnerHTML","__html","component","label","autoComplete","variant","fullWidth","autoFocus","value","inputVal","onChange","e","target","__disableConfirm","defaultProps","BlockletStore","adminPath","useNodeContext","info","routing","serverUrl","joinURL","window","location","origin","switchEl","useRef","Main","separator","className","color","ref","display","justifyContent","p","m","handleSearchSelect","detailUrl","tmp","URL","searchParams","set","open","href","styled","props","theme","breakpoints","values","sm","types","require","toHex","fromPublicKey","module","exports","name","pk","Buffer","from","trim","role","RoleType","ROLE_ANY","Object","defineProperty","downloadExportedSource","genExportedMeta","blocklet","meta","_pickBy","default","_cloneDeep","x","did","_did","logo","interfaces","forEach","services","children","child","dynamic","bundleSource","push","source","mountPoint","environments","configs","map","key","required","secure","capabilities","getLaunchURL","getLaunchAgreementUrl","getNameByTitle","replace","toLowerCase","_interopRequireDefault","_jszip","_jsYaml","_fileSaver","_urlJoin","_didMotif","obj","__esModule","getLogo","base64","bufStr","atob","bytes","Uint8Array","length","i","charCodeAt","base64ToArrayBuffer","toDataURL","size","license","holder","concat","Gitignore","GithubAction","undefined","folderName","split","pop","readme","zip","folder","file","dump","Promise","resolve","reject","generateAsync","type","then","content","catch","err","encodeURI","arguments","encodeURIComponent","metaUrl","blockletRegistry","url","ClickToCopy","_react","_propTypes","_ClickToCopy","_context","_jsxRuntime","_excluded","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","prototype","propertyIsEnumerable","call","_ref","rest","useContext","LocaleContext","jsx","tip","copiedTip","propTypes","any","isRequired","ConfirmDialog","_templateObject","_styled","_Dialog","_Spinner","_DialogActions","_DialogContent","_DialogContentText","_DialogTitle","_Alert","_useTheme","_useMediaQuery","_Button","_util","_mobileWidth","showCancel","useState","setOpen","loading","setLoading","error","setError","changeLocale","onCallback","cb","formatError","console","d","isBreakpointsDownSm","down","minWidth","jsxs","StyledDialog","onClick","stopPropagation","fullScreen","padding","disabled","bool","string","func","strings","raw","slice","freeze","_styles","_default","useTheme","_createSvgIcon","baseKeys","getTag","isArguments","isArray","isArrayLike","isBuffer","isPrototype","isTypedArray","hasOwnProperty","splice","tag","TimeoutError","message","Error","AbortError","getDOMException","errorMessage","globalThis","DOMException","getAbortedReason","signal","reason","pTimeout","promise","milliseconds","fallback","options","timer","cancelablePromise","Math","sign","TypeError","Number","POSITIVE_INFINITY","customTimers","setTimeout","clearTimeout","aborted","addEventListener","timeoutError","clear","pWaitFor","condition","interval","timeout","before","check","retryTimeout"],"sourceRoot":""}
|