@arcblock/payment-service 1.29.8 → 1.29.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/cf.d.ts +31 -0
  2. package/dist/cf.js +79 -60
  3. package/dist/index.js +163 -44
  4. package/package.json +4 -4
  5. package/web/assets/{account-DETfFe4_.js → account-Clbqiiw3.js} +1 -1
  6. package/web/assets/{action-B_DQJlip.js → action-DENqSeOa.js} +1 -1
  7. package/web/assets/{actions-BtaoyTWt.js → actions-0iWP2mcx.js} +1 -1
  8. package/web/assets/{actions-QPa-8lfB.js → actions-BD9BAp3M.js} +1 -1
  9. package/web/assets/{actions-jxGAdGfb.js → actions-BJDN6Op2.js} +1 -1
  10. package/web/assets/{actions-DJyfN5OU.js → actions-BSNy5bOd.js} +1 -1
  11. package/web/assets/{actions-Bt_jST94.js → actions-CDsj5j8l.js} +1 -1
  12. package/web/assets/{actions-D9MHLBFH.js → actions-CSpJGOX7.js} +1 -1
  13. package/web/assets/{actions-BknL4OyZ.js → actions-CZL47E9r.js} +1 -1
  14. package/web/assets/{actions-EPYeS5p4.js → actions-D3tJgrUn.js} +1 -1
  15. package/web/assets/{actions-BaDh4xWX.js → actions-DGQs8fFF.js} +1 -1
  16. package/web/assets/{add-price-CD-utowo.js → add-price-BpnICuHO.js} +1 -1
  17. package/web/assets/{admin-_nEB-lHn.js → admin-CD8ViZ7D.js} +1 -1
  18. package/web/assets/{assign-CkV5Q2LP.js → assign-0vMUDW_C.js} +1 -1
  19. package/web/assets/{attempts-DySeqBYU.js → attempts-CKlxkJuE.js} +1 -1
  20. package/web/assets/browser-DDv4_sgY.js +1 -0
  21. package/web/assets/{change-payment-CPUCUEER.js → change-payment-gAlRmJpv.js} +1 -1
  22. package/web/assets/{change-plan-CxE-XfWc.js → change-plan-C47wfWH8.js} +1 -1
  23. package/web/assets/{click-boundary-y8dVA_tr.js → click-boundary-CafubiPp.js} +1 -1
  24. package/web/assets/{connect-CC_l_f6Q.js → connect-BHHzrwLA.js} +1 -1
  25. package/web/assets/{copyable-DpX04wZz.js → copyable-QrCyyiou.js} +1 -1
  26. package/web/assets/{create-3SsWCAOC.js → create-0PUtkJZY.js} +1 -1
  27. package/web/assets/{create-BkQAaSvD.js → create-BJ1asdcy.js} +1 -1
  28. package/web/assets/{create-kG09X9gl.js → create-Bgv5ux17.js} +1 -1
  29. package/web/assets/{create-BmcRybZ5.js → create-C7GOgZZM.js} +1 -1
  30. package/web/assets/{create-tYebjhr9.js → create-DNar5UQD.js} +1 -1
  31. package/web/assets/{create-Bs65p5Ne.js → create-ke4FrPx1.js} +1 -1
  32. package/web/assets/{credit-grant-item-list-Bk27jIc7.js → credit-grant-item-list-CeDAM3qV.js} +1 -1
  33. package/web/assets/{credit-overview-DmMSEs14.js → credit-overview-4zh0H02x.js} +2 -2
  34. package/web/assets/{currency-restrictions-DYLv4YyW.js → currency-restrictions-BcEm8W45.js} +1 -1
  35. package/web/assets/{currency-select-DGS-62-L.js → currency-select-B4ieQBvv.js} +1 -1
  36. package/web/assets/{dayjs-B9tvQIKg.js → dayjs-DUTDpcNU.js} +1 -1
  37. package/web/assets/{description-Ym17DL48.js → description-SnR5WxWT.js} +1 -1
  38. package/web/assets/detail-46aLUdJj.js +1 -0
  39. package/web/assets/{detail-Cr2wG4Th.js → detail-B-ceWfZr.js} +1 -1
  40. package/web/assets/detail-B0IHl4MI.js +1 -0
  41. package/web/assets/detail-B8eOBVSQ.js +15 -0
  42. package/web/assets/{detail-DE3OOC5M.js → detail-BO3zglCn.js} +1 -1
  43. package/web/assets/{detail-DG4l2CqN.js → detail-BQpDGZJQ.js} +1 -1
  44. package/web/assets/{detail-CxYQYu_l.js → detail-BXTsnQny.js} +1 -1
  45. package/web/assets/{detail-CT9Unyrf.js → detail-B_lpOomD.js} +1 -1
  46. package/web/assets/{detail-Do9QO5L2.js → detail-Bfnkg0A1.js} +1 -1
  47. package/web/assets/detail-BwH0DwAi.js +1 -0
  48. package/web/assets/{detail-OZeeKI69.js → detail-C1FupF1D.js} +2 -2
  49. package/web/assets/{detail-cwHZbY62.js → detail-CMBRd4Ct.js} +1 -1
  50. package/web/assets/detail-C_Zdfa0y.js +1 -0
  51. package/web/assets/{detail-Cb9HBSMw.js → detail-Cg505nKX.js} +1 -1
  52. package/web/assets/{detail-DB56SG-k.js → detail-CsGZMimg.js} +1 -1
  53. package/web/assets/{detail-K9EVY3r2.js → detail-Ct5QNBqu.js} +1 -1
  54. package/web/assets/{detail-DuO_Jn5X.js → detail-CyMhK5K_.js} +1 -1
  55. package/web/assets/{detail-DuWdZIyp.js → detail-DACnmls3.js} +1 -1
  56. package/web/assets/{detail-BJTcK7mx.js → detail-DCTb8R7F.js} +1 -1
  57. package/web/assets/{detail-DPCTQLOx.js → detail-DNcp_u5S.js} +1 -1
  58. package/web/assets/detail-DbU3p040.js +1 -0
  59. package/web/assets/{detail-D5KRrQDx.js → detail-Tn2R5C8i.js} +1 -1
  60. package/web/assets/{detail-15zxCbV9.js → detail-wU4wNf4s.js} +1 -1
  61. package/web/assets/{drawer-form-Cl0T1Yyt.js → drawer-form-DspWWj3x.js} +1 -1
  62. package/web/assets/{edit-3HUAnaXW.js → edit-Bkj-OTJh.js} +1 -1
  63. package/web/assets/{editor-BF5I0siU.js → editor-AmthipP2.js} +1 -1
  64. package/web/assets/{embed-CsNqeCd0.js → embed-rRKjDoHi.js} +1 -1
  65. package/web/assets/{filter-toolbar-BydfQ-79.js → filter-toolbar-DXGSTq57.js} +1 -1
  66. package/web/assets/{form-DSzMo9UD.js → form-B5WW-lS5.js} +1 -1
  67. package/web/assets/form-BmQlJZ84.js +9 -0
  68. package/web/assets/{form-BGm5NPDn.js → form-CAPjlw7l.js} +1 -1
  69. package/web/assets/{form-CKfKLGXP.js → form-DD-EiA7W.js} +3 -3
  70. package/web/assets/{form-P4luyUpY.js → form-cX026J4G.js} +1 -1
  71. package/web/assets/{gas-Qf0SSUfS.js → gas-nyR96dB0.js} +1 -1
  72. package/web/assets/{generateCategoricalChart-BaWwaXky.js → generateCategoricalChart-BadryV3H.js} +1 -1
  73. package/web/assets/{home-HbrLyxJL.js → home-_eX1aim8.js} +1 -1
  74. package/web/assets/index-BBHMsIxJ.js +1 -0
  75. package/web/assets/{index-Dr_MwbKt.js → index-BQjlhCSt.js} +1 -1
  76. package/web/assets/{index-DPodCQ9c.js → index-BRENdB5m.js} +1 -1
  77. package/web/assets/{index-9xBRL_33.js → index-BTfJ08JU.js} +1 -1
  78. package/web/assets/{index-DgSc1Qy8.js → index-BarN7DfU.js} +17 -17
  79. package/web/assets/index-BhcoukR2.js +1 -0
  80. package/web/assets/index-BturOfxo.js +1 -0
  81. package/web/assets/{index-SYTpMMMH.js → index-BzABukCz.js} +1 -1
  82. package/web/assets/{index-2l22EYw9.js → index-C-RT84yb.js} +1 -1
  83. package/web/assets/{index-C0JaS08f.js → index-C136x0O2.js} +1 -1
  84. package/web/assets/{index-Cw0ugaQL.js → index-CCVDDX0c.js} +1 -1
  85. package/web/assets/index-CDVogp6E.js +1 -0
  86. package/web/assets/{index-Br7_mvEw.js → index-CW8VfoJO.js} +1 -1
  87. package/web/assets/{index-BIoSdRvX.js → index-CbSXdD6E.js} +3 -3
  88. package/web/assets/{index-CdkYrABk.js → index-Cd_BD9TM.js} +1 -1
  89. package/web/assets/index-D-bx9Kam.js +1 -0
  90. package/web/assets/index-D0mynT6_.js +1 -0
  91. package/web/assets/index-DEiuhiEo.js +14 -0
  92. package/web/assets/{index-DE2KzqXl.js → index-DNGmCIRP.js} +1 -1
  93. package/web/assets/{index-CI_EY4YS.js → index-DSe7Dot_.js} +1 -1
  94. package/web/assets/{index-BFML4-2u.js → index-DcddP3R9.js} +1 -1
  95. package/web/assets/index-DcrGSDby.js +1 -0
  96. package/web/assets/{index-fByZjxLy.js → index-DeK5Pqjv.js} +1 -1
  97. package/web/assets/{index-Clbt8nRm.js → index-DoX0A-rP.js} +1 -1
  98. package/web/assets/index-Du0Ieh1F.js +49 -0
  99. package/web/assets/index-Dybqd298.js +1 -0
  100. package/web/assets/index-EXZPddtw.js +1 -0
  101. package/web/assets/{index-Drav4oDH.js → index-Kd_qCyRG.js} +2 -2
  102. package/web/assets/{index-Dc954mDP.js → index-SOzRg0yJ.js} +1 -1
  103. package/web/assets/{index-BMKZToMM.js → index-UYeD8rTJ.js} +2 -2
  104. package/web/assets/{index-DZpJPE1Z.js → index-W2uZUlFs.js} +1 -1
  105. package/web/assets/{index-1y9kjPIr.js → index-XaFn2ySq.js} +1 -1
  106. package/web/assets/{index-fswPX_qe.js → index-YG5oc8O3.js} +1 -1
  107. package/web/assets/{index-B1pTTyGZ.js → index-ajD9Iotk.js} +1 -1
  108. package/web/assets/index-brUCsnBA.js +1 -0
  109. package/web/assets/{index-BP53rZV9.js → index-mn5Zdrtn.js} +1 -1
  110. package/web/assets/index-qulrJQ4J.js +1 -0
  111. package/web/assets/{index.es-BWnfUzLb.js → index.es-C8dcCHdW.js} +1 -1
  112. package/web/assets/{info-card-C1yxhxJG.js → info-card-BvIMFQo5.js} +1 -1
  113. package/web/assets/{info-metric-CNse3r66.js → info-metric-Dl4ZDm0Z.js} +1 -1
  114. package/web/assets/{info-row-group-BeUhWnnY.js → info-row-group-CFuMWJf1.js} +1 -1
  115. package/web/assets/{info-row-DOK2whMn.js → info-row-jI0h_hv4.js} +1 -1
  116. package/web/assets/{libphonenumber-CyphiuxQ.js → libphonenumber-Qs8PCdM-.js} +1 -1
  117. package/web/assets/{link-3eeclTeS.js → link-CmPoIweR.js} +1 -1
  118. package/web/assets/{list-DnePqZ2K.js → list-BdSkPjIa.js} +1 -1
  119. package/web/assets/{list-jHj_5yy3.js → list-CWMEf-_C.js} +1 -1
  120. package/web/assets/{list-C521zE_7.js → list-CkHExntK.js} +1 -1
  121. package/web/assets/{list-CO0X4L3-.js → list-DLB_hd0Q.js} +1 -1
  122. package/web/assets/{list-D-I0msRW.js → list-DVFJwd_I.js} +2 -2
  123. package/web/assets/{list-D1aevUOI.js → list-DaK9287Y.js} +2 -2
  124. package/web/assets/{list-1OG83xc4.js → list-DghnUOc4.js} +1 -1
  125. package/web/assets/{list-CNmzJKIQ.js → list-eFkvVlp5.js} +1 -1
  126. package/web/assets/metadata-BmQTVFku.js +55 -0
  127. package/web/assets/{meter-event-lmNMgmIu.js → meter-event-B1JIhVpb.js} +1 -1
  128. package/web/assets/{metrics-C7U41HWk.js → metrics-UvxyQbUF.js} +1 -1
  129. package/web/assets/{overview-Cs3-8n4e.js → overview-Cxc6WKba.js} +1 -1
  130. package/web/assets/{overview-CH1HnSP-.js → overview-DrMaIptb.js} +1 -1
  131. package/web/assets/{past-due-CGGRZmXY.js → past-due-CUXkxns0.js} +1 -1
  132. package/web/assets/pay-omLYkqRA.js +4 -0
  133. package/web/assets/{payment-method-info-BsOBbA3m.js → payment-method-info-Bsf89VxV.js} +2 -2
  134. package/web/assets/{preview-DjYRpRA8.js → preview-BifsgUGT.js} +1 -1
  135. package/web/assets/{preview-CjYh9dTg.js → preview-C-H8pGVw.js} +1 -1
  136. package/web/assets/{pricing-table-C3Lkhq46.js → pricing-table-B3QOaAB5.js} +2 -2
  137. package/web/assets/{pricing-table-edE6TJGX.js → pricing-table-BUJdtkMq.js} +1 -1
  138. package/web/assets/{product-select-0ScZE2e8.js → product-select-ChEyoJqJ.js} +1 -1
  139. package/web/assets/{recharge-DcPtT8vt.js → recharge-BVT4USAO.js} +1 -1
  140. package/web/assets/{related-credit-grants-BygNGPfb.js → related-credit-grants-JV2ICsR5.js} +22 -22
  141. package/web/assets/{safe-did-address-B0fFbUph.js → safe-did-address-CiG_V6Gy.js} +1 -1
  142. package/web/assets/{source-data-viewer-By_Utay-.js → source-data-viewer-i1q9wNIG.js} +1 -1
  143. package/web/assets/{status-l6pD08fw.js → status-CUVYrUIG.js} +1 -1
  144. package/web/assets/subscription-BYz_k9dq.js +1 -0
  145. package/web/assets/{subscription-Dq22e3D1.js → subscription-DrnSPIfs.js} +1 -1
  146. package/web/assets/table-BrtHemkA.js +1 -0
  147. package/web/assets/{tax-code-select-CWhIIiXi.js → tax-code-select-TS07I0rB.js} +1 -1
  148. package/web/assets/{tax-utils-DqNX34-r.js → tax-utils-bPjALcVG.js} +1 -1
  149. package/web/assets/{uploader-DRXDz_r0.js → uploader-CsQNHG4I.js} +1 -1
  150. package/web/assets/{usage-records-jjJMZ6DI.js → usage-records-DAUQMJAW.js} +1 -1
  151. package/web/assets/{util-mDHAL0lx.js → util-DxXTXkeY.js} +1 -1
  152. package/web/assets/{vendor-arcblock-ChFCRdyx.js → vendor-arcblock-BTCAQSUK.js} +1 -1
  153. package/web/assets/{vendor-blocklet-D_i_QeSo.js → vendor-blocklet-DcLR2Cyf.js} +43 -43
  154. package/web/index.html +1 -1
  155. package/web/assets/browser-DSLTxXlL.js +0 -1
  156. package/web/assets/detail-ASPdMJoW.js +0 -1
  157. package/web/assets/detail-CIx9vkir.js +0 -1
  158. package/web/assets/detail-D5NbV29V.js +0 -1
  159. package/web/assets/detail-DVVzYhdV.js +0 -1
  160. package/web/assets/detail-Dqc0OfCQ.js +0 -1
  161. package/web/assets/detail-uhlID8jD.js +0 -15
  162. package/web/assets/form-BXAuSawq.js +0 -9
  163. package/web/assets/index-0HK7CYm4.js +0 -1
  164. package/web/assets/index-BJ_E6bEO.js +0 -1
  165. package/web/assets/index-Bnyh4rlV.js +0 -1
  166. package/web/assets/index-BoQ7wf3O.js +0 -1
  167. package/web/assets/index-C68x-aau.js +0 -1
  168. package/web/assets/index-C8s2QKoe.js +0 -1
  169. package/web/assets/index-Cn7O-OP7.js +0 -49
  170. package/web/assets/index-DU39aG5u.js +0 -1
  171. package/web/assets/index-DtbqgSK4.js +0 -1
  172. package/web/assets/index-DuRu9NWB.js +0 -14
  173. package/web/assets/index-WMKOiUez.js +0 -1
  174. package/web/assets/index-dmHgoplS.js +0 -1
  175. package/web/assets/index-txVTkoDD.js +0 -1
  176. package/web/assets/metadata-CMSHcSXi.js +0 -55
  177. package/web/assets/pay-CSpHBUh_.js +0 -4
  178. package/web/assets/subscription-DcwhSOpa.js +0 -1
  179. package/web/assets/table-BRU4Enia.js +0 -1
@@ -1 +1 @@
1
- import{j as e,a3 as S,q as j,r as T,B as w,ck as me,N as X,a2 as ae,Y as re,x as Q,w as $,bH as H,I as R,Q as xe,o as he,cA as G,u as ye,A as ge,$ as ee,O as K,be as oe,a8 as fe,a9 as te,cI as ne,aH as se,cB as je,a1 as q,by as be,cJ as ve,cH as ke,br as Ce}from"./vendor-mui-BXZut9Pz.js";import{V as M,X as O,E as V,Y as _,y as ie,cN as we,O as Ie,cO as Se,G as _e}from"./vendor-blocklet-D_i_QeSo.js";import{E as Me,X as Le,aX as N,h as Y,F as J,l as ce,e as A,b8 as D,k as F,ba as Ee,a as Te,b9 as B,I as Re,S as Pe}from"./index-DgSc1Qy8.js";import{I as ze}from"./collapse-BvbJGg1V.js";import{I as Oe}from"./info-card-C1yxhxJG.js";import{I as b}from"./info-row-DOK2whMn.js";import{D as Z}from"./drawer-form-Cl0T1Yyt.js";import{U as De}from"./uploader-DRXDz_r0.js";import{P as Ae,u as Fe}from"./form-BXAuSawq.js";import"./vendor-react-BPknnnEA.js";import"./util-mDHAL0lx.js";import"./lodash-B4Ozcv0x.js";function le({disableKeys:t=[]}){const{t:s}=M(),{control:n,setValue:c}=Me(),l=Le({control:n,name:"logo"}),i=d=>{if(!d.url){c("logo","");return}const p=new URL(d.url);c("logo",p.pathname)};return e.jsxs(S,{direction:"column",spacing:2,sx:{alignItems:"flex-start"},children:[e.jsx(N,{name:"name",type:"text",rules:{required:!0},label:s("admin.paymentMethod.name.label"),placeholder:s("admin.paymentMethod.name.tip"),disabled:t.includes("name"),inputProps:{maxLength:32}},"name"),e.jsx(N,{name:"description",type:"text",rules:{required:!0},label:s("admin.paymentMethod.description.label"),placeholder:s("admin.paymentMethod.description.tip"),disabled:t.includes("description"),inputProps:{maxLength:255}},"description"),e.jsx(N,{name:"contract",type:"text",rules:{required:!0},label:s("admin.paymentCurrency.contract.label"),placeholder:s("admin.paymentCurrency.contract.tip"),disabled:t.includes("contract")},"contract"),e.jsxs(S,{direction:"column",children:[e.jsx(j,{sx:{mb:1},children:s("admin.paymentCurrency.logo.label")}),e.jsx(De,{onUploaded:i,preview:l})]})]})}const Ue=()=>ie(()=>import("./tokenList-9PBdKlKn.js"),[]);function qe({method:t,onClose:s}){const{t:n}=M(),[c,l]=O({loading:!1,tokenListLoading:!1,availableTokens:[]}),i=Y({defaultValues:{payment_method_id:t.id,name:"",description:"",logo:"",contract:""}}),{handleSubmit:d,setValue:p}=i,y=["ethereum","base"].includes(t.type),m=t?.settings?.[t.type]?.chain_id||"";T.useEffect(()=>{y&&!c.availableTokens.length&&(l({tokenListLoading:!0}),Ue().then(a=>{const o=y?(a.default?.[m]||[]).filter(u=>!(t.payment_currencies||[]).find(g=>g.contract===u.address)):[];l({availableTokens:o,tokenListLoading:!1})}))},[y,m]);const f=a=>a.localLogoURI?V(ce(),a.localLogoURI):a.logoURI||"",C=a=>{a&&(p("name",a.name),p("description",`${a.name} (${a.symbol})`),p("logo",f(a)),p("contract",a.address))},v=a=>{l({loading:!0}),A.post("/api/payment-currencies",a).then(()=>{l({loading:!1}),_.success(n("admin.paymentCurrency.saved")),i.reset(),D("drawer.submitted"),D("paymentCurrency.added")}).catch(o=>{l({loading:!1}),console.error(o),_.error(F(o))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:s,text:n("admin.paymentCurrency.add"),width:640,footer:e.jsxs(Q,{variant:"contained",size:"large",onClick:d(v),disabled:c.loading,sx:{width:"100%"},children:[c.loading&&e.jsx($,{size:20})," ",n("common.save")]}),children:e.jsxs(J,{...i,children:[y&&e.jsxs(w,{sx:{mb:3},children:[e.jsx(me,{disablePortal:!0,options:c.availableTokens,loading:c.tokenListLoading,getOptionLabel:a=>a.symbol,onChange:(a,o)=>C(o),renderInput:a=>e.jsx(ae,{...a,label:n("admin.paymentCurrency.quickAdd"),placeholder:n("admin.paymentCurrency.searchToken"),fullWidth:!0}),renderOption:(a,o)=>e.jsxs(w,{component:"li",...a,sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:[e.jsx(X,{src:f(o)||o.symbol,alt:o.symbol,sx:{width:24,height:24}}),e.jsxs(S,{children:[e.jsx(j,{sx:{fontWeight:500},children:o.name}),e.jsx(j,{variant:"caption",sx:{color:"text.secondary"},children:o.symbol})]})]}),isOptionEqualToValue:(a,o)=>a.address===o.address}),e.jsx(re,{sx:{my:3},children:e.jsx(j,{variant:"caption",sx:{color:"text.secondary"},children:n("admin.paymentCurrency.orManualInput")})})]}),e.jsx(le,{})]})})}const Be=()=>ie(()=>import("./tokenList-9PBdKlKn.js"),[]);function Ve({method:t,onClose:s,value:n}){const{t:c}=M(),[l,i]=O({loading:!1,tokenListLoading:!1,contractToTokenMap:new Map}),d=Y({defaultValues:{payment_method_id:t.id,name:n?.name,description:n?.description,logo:n?.logo,contract:n?.contract}}),{handleSubmit:p,setValue:y}=d,m=["ethereum","base"].includes(t.type),f=t?.settings?.[t.type]?.chain_id||"",C=a=>a.localLogoURI?V(ce(),a.localLogoURI):a.logoURI||"";T.useEffect(()=>{m&&f&&(i({tokenListLoading:!0}),new Ee(`tokenMap_${f}`,async()=>{const u=(await Be()).default?.[f]||[],g={};return u.forEach(k=>{k.address&&(g[k.address.toLowerCase()]=k)}),{data:g}},{strategy:"session",ttl:1800*1e3}).fetch().then(o=>{const u=new Map(Object.entries(o));if(i({contractToTokenMap:u,tokenListLoading:!1}),n?.contract){const g=u.get(n.contract.toLowerCase());if(g&&g.localLogoURI){const k=C(g);y("logo",k)}}}).catch(o=>{console.error("Failed to load token map:",o),i({tokenListLoading:!1})}))},[m,f,n?.contract]);const v=a=>{i({loading:!0}),A.put(`/api/payment-currencies/${n.id}`,a).then(()=>{i({loading:!1}),_.success(c("admin.paymentCurrency.saved")),d.reset(),D("drawer.submitted"),D("paymentCurrency.updated")}).catch(o=>{i({loading:!1}),console.error(o),_.error(F(o))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:s,text:c("admin.paymentCurrency.edit"),width:640,footer:e.jsxs(Q,{variant:"contained",size:"large",onClick:p(v),disabled:l.loading,sx:{width:"100%"},children:[l.loading&&e.jsx($,{size:20})," ",c("common.save")]}),children:e.jsx(J,{...d,children:e.jsx(le,{disableKeys:["contract"]})})})}function de({value:t,onSave:s,placeholder:n="",required:c=!0,disabled:l=!1,multiline:i=!1,maxLength:d=255,validate:p=()=>null,successMessage:y="",autoFocus:m=!1,onEdit:f=()=>{},onCancel:C=()=>{},hideSuccessToast:v=!1}){const[a,o]=T.useState(!1),[u,g]=T.useState(t),[k,E]=T.useState(""),[P,U]=T.useState(!1),{t:L}=M();T.useEffect(()=>{a||g(t)},[t,a]);const I=h=>{if(c&&!h.trim())return L("common.required");if(d&&h.length>d)return L("common.maxLength",{len:d});if(p){const z=p(h);if(z)return z}return""},r=async()=>{const h=I(u);if(h){E(h);return}U(!0);try{await s(u),v||_.success(y||L("common.saved")),o(!1),E("")}catch(z){_.error(F(z))}finally{U(!1)}},x=()=>{g(t),o(!1),E(""),C?.()},W=h=>{g(h);const z=I(h);E(z)},ue=()=>{o(!0),g(t),E(""),f?.()};return l?e.jsx(j,{variant:"body2",sx:{color:"text.secondary"},children:t||e.jsx("span",{style:{fontStyle:"italic"},children:n})}):e.jsx(S,{direction:"row",spacing:1,sx:{alignItems:i?"flex-start":"center",flexWrap:"wrap",width:"100%"},children:a?e.jsxs(e.Fragment,{children:[e.jsx(ae,{value:u,onChange:h=>W(h.target.value),variant:"outlined",size:"small",multiline:i,rows:i?3:1,sx:{flex:1,minWidth:"200px"},placeholder:n,error:!!k,disabled:P,autoFocus:m,slotProps:{input:{endAdornment:k?e.jsx(j,{color:"error",sx:{whiteSpace:"nowrap"},children:k}):void 0},htmlInput:{maxLength:d}},onKeyDown:h=>{h.key==="Enter"&&!i&&!h.shiftKey&&(h.preventDefault(),r()),h.key==="Escape"&&(h.preventDefault(),x())}}),e.jsxs(S,{direction:"row",spacing:.5,children:[e.jsx(R,{onClick:r,size:"small",disabled:!!k||P,color:"primary",title:L("common.save"),children:e.jsx(xe,{})}),e.jsx(R,{onClick:x,size:"small",disabled:P,title:L("common.cancel"),children:e.jsx(he,{})})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(j,{variant:"body2",sx:{wordBreak:"break-word",whiteSpace:i?"pre-wrap":"nowrap",overflow:i?"visible":"hidden",textOverflow:i?"clip":"ellipsis"},children:t||e.jsx("span",{style:{color:"#999",fontStyle:"italic"},children:n})}),e.jsx(R,{onClick:ue,size:"small",title:L("common.edit"),children:e.jsx(G,{fontSize:"small"})})]})})}function $e({onClose:t,value:s}){const{t:n}=M(),[c,l]=O({loading:!1}),i=Y({defaultValues:{type:s?.type,name:s?.name,description:s?.description,logo:s?.logo,settings:s?.settings}}),{handleSubmit:d}=i,p=y=>{l({loading:!0}),A.put(`/api/payment-methods/${s?.id}`,y).then(()=>{l({loading:!1}),_.success(n("admin.paymentMethod.saved")),i.reset(),D("drawer.submitted"),D("paymentMethod.updated")}).catch(m=>{l({loading:!1}),console.error(m),_.error(F(m))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:t,text:n("admin.paymentMethod.edit"),width:640,footer:e.jsxs(Q,{variant:"contained",size:"large",onClick:d(p),disabled:c.loading,sx:{width:"100%"},children:[c.loading&&e.jsx($,{size:20})," ",n("common.save")]}),children:e.jsx(J,{...i,children:e.jsx(Ae,{action:"edit",editableKeys:["name","description","logo","settings.base.api_host","settings.base.explorer_host","settings.ethereum.api_host","settings.ethereum.explorer_host","settings.stripe.publishable_key","settings.stripe.secret_key","settings.stripe.dashboard"]})})})}const He=(t={})=>{const s=new URLSearchParams;return Object.keys(t).forEach(n=>{s.set(n,String(t[n]))}),A.get(`/api/payment-methods?${s.toString()}`).then(n=>n.data)},pe=(t,s)=>A.put(`/api/payment-methods/${t}/settings`,{arcblock:s}).then(n=>n.data);function We({method:t,refresh:s}){const{t:n}=M(),c=async l=>{await pe(t.id,{api_host:l}),s()};return e.jsx(b,{label:n("admin.paymentMethod.arcblock.api_host.label"),value:e.jsx(de,{value:t.settings?.arcblock?.api_host||"",onSave:c,placeholder:n("admin.paymentMethod.arcblock.api_host.tip"),required:!0})})}function Ne({method:t,refresh:s}){const{t:n}=M(),c=async l=>{await pe(t.id,{explorer_host:l}),s()};return e.jsx(b,{label:n("admin.paymentMethod.arcblock.explorer_host.label"),value:e.jsx(de,{value:t.settings?.arcblock?.explorer_host||"",onSave:c,placeholder:n("admin.paymentMethod.arcblock.explorer_host.tip"),required:!0})})}const Xe=t=>{const s={};return t.forEach(n=>{s[n.type]=s[n.type]||[],s[n.type].push(n)}),s};function Ge({method:t}){const{t:s}=M(),n=t.settings?.[t.type]?.api_host,{status:c}=Fe(n,{debounce:0,pollInterval:2e3}),l=()=>c.loading?e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx($,{size:14}),e.jsx(j,{sx:{color:"text.secondary"},children:s("admin.paymentMethod.evm.checking")})]}):c.connected?e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(ke,{sx:{fontSize:14},color:"success"}),e.jsx(j,{sx:{color:"text.secondary"},children:s("admin.paymentMethod.evm.connected")})]}):e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(Ce,{sx:{fontSize:14},color:"error"}),e.jsx(j,{color:"error",children:s("admin.paymentMethod.evm.connectionError")})]});return e.jsxs(e.Fragment,{children:[e.jsx(b,{label:s(`admin.paymentMethod.${t.type}.api_host.label`),value:n}),e.jsx(b,{label:s("admin.paymentMethod.evm.rpcStatus"),value:l()}),e.jsx(b,{label:s("admin.paymentMethod.evm.blockHeight"),value:c.blockNumber?.toLocaleString()})]})}function Ke({method:t,balances:s,addresses:n,setDidDialog:c,refresh:l}){const{t:i}=M(),d=(t.payment_currencies||[])?.find(v=>v.id===t.default_currency_id),p=_e(s?.[d?.id]||"0",d?.decimal),y=t?.settings?.[t?.type]?.explorer_host||"",m=()=>t.type==="arcblock"&&n?.arcblock?V(y,"accounts",n?.arcblock,"tokens"):["ethereum","base"].includes(t.type)&&n?.ethereum?V(y,"address",n?.ethereum):"",f=["ethereum","base"].includes(t.type)&&s?.[d?.id]&&s?.[d?.id]==="0",C=v=>["ethereum","base"].includes(v)?n?.ethereum||"":n?.arcblock||"";return e.jsxs(e.Fragment,{children:[t.type==="arcblock"?e.jsx(Ne,{method:t,refresh:l}):e.jsx(b,{label:i("admin.paymentMethod.props.explorer_host"),value:y}),e.jsx(b,{label:e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[i("admin.paymentMethod.props.balance"),["ethereum","base"].includes(t.type)&&e.jsx(K,{title:i("admin.paymentMethod.gasTip",{method:t.type,chain:t.name}),children:e.jsx(oe,{sx:{fontSize:16,cursor:"pointer",color:f?"error.main":"text.secondary"}})})]}),value:e.jsxs(S,{direction:"row",sx:{alignItems:"center",display:"inline-flex",borderRadius:1},children:[e.jsxs(j,{component:"a",href:m(),target:"_blank",rel:"noreferrer",sx:{display:"flex",alignItems:"center",gap:.5,"&.MuiTypography-root":{color:f?"error.main":"text.link"}},children:[p," ",d?.symbol,e.jsx(be,{sx:{fontSize:14}})]}),e.jsx(re,{orientation:"vertical",flexItem:!0,sx:{mx:1}}),e.jsx(K,{title:i("admin.paymentMethod.recharge"),children:e.jsx(R,{size:"small",onClick:()=>c({open:!0,chainId:t.settings?.[t.type]?.chain_id,did:C(t.type)}),sx:{p:.5},children:e.jsx(ve,{sx:{fontSize:16}})})})]})})]})}function Qe(){return e.jsx(e.Fragment,{children:[1].map(t=>e.jsxs(w,{sx:{mt:3},children:[e.jsx(S,{direction:"row",sx:{alignItems:"center",mb:1,flexWrap:"wrap",gap:1},children:e.jsx(q,{variant:"text",width:120,height:32})}),e.jsx(w,{sx:{py:1,borderTop:"1px solid",borderBottom:"1px solid",borderColor:"divider",mb:1},children:e.jsx(S,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center"},children:e.jsxs(S,{direction:"row",spacing:2,sx:{alignItems:"center",flex:1},children:[e.jsx(q,{variant:"rectangular",width:40,height:40}),e.jsxs(w,{sx:{flex:1},children:[e.jsx(q,{variant:"text",width:"20%",height:24}),e.jsx(q,{variant:"text",width:"40%",height:20})]})]})})})]},t))})}function lt(){const{t}=M(),{palette:s}=ye(),[n,c]=we("payment-method-expanded-id",{defaultValue:""}),{loading:l,error:i,data:d={list:[],addresses:{},balances:{}},runAsync:p}=Ie(()=>He({addresses:!0})),y=(I,r)=>{c(r?I:"")},[m,f]=O({open:!1,chainId:"",did:""}),[C,v]=O({open:!1,value:null}),{refresh:a}=Te(),[o,u]=O({action:"",value:null,method:""}),{list:g,addresses:k,balances:E}=d;if(B("paymentMethod.created",()=>{p(),a(!0)},[]),B("paymentMethod.updated",()=>{p(),a(!0)},[]),B("paymentCurrency.added",()=>{p().then(()=>{u({action:"",method:""})}),a(!0)},[]),B("paymentCurrency.updated",()=>{p().then(()=>{u({action:"",method:""})}),a(!0)},[]),i)return e.jsx(ge,{severity:"error",children:i.message});if(l||!d||g?.length===0)return e.jsx(Qe,{});const P=Xe(g),U=async I=>{try{await A.delete(`/api/payment-currencies/${I.id}`),p(),a(!0),_.success(t("admin.paymentCurrency.deleted"))}catch(r){_.error(F(r))}finally{u({action:"",method:""})}},L=()=>{p(),a(!0)};return e.jsxs(e.Fragment,{children:[Object.keys(P).map(I=>e.jsxs(w,{sx:{mt:3},children:[e.jsx(S,{direction:"row",sx:{alignItems:"center",mb:1,flexWrap:"wrap",gap:1},children:e.jsx(j,{variant:"subtitle2",sx:{textTransform:"uppercase"},children:I})}),P[I].map(r=>e.jsx(ze,{trigger:e.jsx(Oe,{...r}),addons:e.jsxs(e.Fragment,{children:[e.jsx(Pe,{checked:r.active,disabled:!0,sx:{cursor:"default"}}),!["arcblock","google_play","app_store"].includes(r.type)&&e.jsx(R,{onClick:x=>{x.stopPropagation(),v({open:!0,value:r})},children:e.jsx(G,{})})]}),style:{py:1,borderTop:`1px solid ${s.divider}`,borderBottom:`1px solid ${s.divider}`,"& :hover":{color:"text.primary"}},value:r.id,expanded:n===r.id,onChange:(x,W)=>y(x,W),lazy:!1,children:e.jsx(ee,{container:!0,spacing:2,sx:{mt:1},children:e.jsxs(ee,{size:{xs:12,md:6},children:[e.jsx(b,{label:t("admin.paymentMethod.props.type"),value:r.type}),r.type==="arcblock"&&e.jsx(We,{method:r,refresh:L}),["ethereum","base"].includes(r.type)&&e.jsx(Ge,{method:r}),["arcblock","ethereum","base"].includes(r.type)&&e.jsx(Ke,{method:r,balances:E,addresses:k,setDidDialog:f,refresh:L}),e.jsx(b,{label:t("admin.paymentMethod.props.confirmation"),value:e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(j,{variant:"body2",children:r.confirmation.type}),r.type==="stripe"&&r.confirmation.type==="callback"&&e.jsx(K,{title:e.jsxs(j,{variant:"body2",component:"span",children:[t("admin.paymentMethod.stripe.webhookHint")," ",e.jsx(j,{variant:"body2",component:"a",href:"/.well-known/service/admin/overview/components",target:"_blank",rel:"noopener noreferrer",sx:{color:"primary.light",textDecoration:"underline","&:hover":{color:"primary.main"}},children:t("admin.paymentMethod.stripe.configureEnv")})]}),placement:"right",arrow:!0,children:e.jsx(oe,{sx:{fontSize:16,color:"info.main",cursor:"help",transition:"color 0.2s","&:hover":{color:"info.dark"}}})})]})}),e.jsx(b,{label:t("admin.paymentMethod.props.recurring"),value:r.features.recurring?t("common.yes"):t("common.no")}),e.jsx(b,{label:t("admin.paymentMethod.props.refund"),value:r.features.refund?t("common.yes"):t("common.no")}),e.jsx(b,{label:t("admin.paymentMethod.props.dispute"),value:r.features.dispute?t("common.yes"):t("common.no")}),e.jsx(b,{alignItems:"flex-start",label:t("admin.paymentMethod.props.currencies"),value:e.jsxs(fe,{children:[r.payment_currencies.map(x=>!x||x.type==="credit"?null:e.jsxs(te,{disablePadding:!0,secondaryAction:x.locked||r.default_currency_id===x.id?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{edge:"end",onClick:()=>{u({action:"edit",value:x,method:r.id})},children:e.jsx(G,{})}),e.jsx(R,{edge:"end",onClick:()=>{u({action:"delete",value:x,method:r.id})},children:e.jsx(je,{})})]}),children:[e.jsx(ne,{children:e.jsx(X,{src:x.logo,alt:x.symbol})}),e.jsx(se,{primary:x.name,secondary:x.description})]},x.id)),r.type!=="stripe"&&e.jsxs(te,{disablePadding:!0,sx:{cursor:"pointer"},onClick:()=>{u({action:"create",method:r.id})},children:[e.jsx(ne,{children:e.jsx(X,{children:e.jsx(H,{fontSize:"small"})})}),e.jsx(se,{primary:t("admin.paymentCurrency.add")})]},"add-currency"),o.method===r.id&&o.action==="create"&&e.jsx(qe,{method:r,onClose:()=>u({action:"",method:""})}),o.method===r.id&&o.action==="edit"&&e.jsx(Ve,{method:r,onClose:()=>u({action:"",method:""}),value:o.value}),o.method===r.id&&o.action==="delete"&&e.jsx(Re,{onConfirm:()=>U(o.value),onCancel:()=>u({action:"",method:""}),title:t("admin.paymentCurrency.delete"),message:t("admin.paymentCurrency.deleteConfirm")})]})})]})})},r.id))]},I)),m.open&&m.did&&e.jsx(Se,{open:m.open,onClose:()=>f({open:!1,chainId:"",did:""}),did:m.did,chainId:m.chainId}),C.open&&C.value&&e.jsx($e,{value:C.value,onClose:()=>v({open:!1,value:null})})]})}export{lt as default};
1
+ import{j as e,a3 as S,q as j,r as E,B as w,ck as me,N as K,a2 as ae,Y as re,x as Y,w as $,bH as H,I as R,Q as xe,o as he,cA as Q,u as ye,A as ge,$ as ee,O as X,be as oe,a8 as fe,a9 as te,cI as ne,aH as se,cB as je,a1 as q,by as be,cJ as ve,cH as ke,br as Ce}from"./vendor-mui-BXZut9Pz.js";import{V as M,Y as O,F as V,Z as _,A as ie,cN as we,P as Ie,cO as Se,H as _e}from"./vendor-blocklet-DcLR2Cyf.js";import{E as Me,X as Le,aX as N,h as G,F as J,l as ce,e as D,b8 as A,k as F,ba as Te,a as Ee,b9 as B,I as Re,S as Pe}from"./index-BarN7DfU.js";import{I as ze}from"./collapse-BvbJGg1V.js";import{I as Oe}from"./info-card-BvIMFQo5.js";import{I as b}from"./info-row-jI0h_hv4.js";import{D as Z}from"./drawer-form-DspWWj3x.js";import{U as Ae}from"./uploader-CsQNHG4I.js";import{P as De,u as Fe}from"./form-BmQlJZ84.js";import"./vendor-react-BPknnnEA.js";import"./util-DxXTXkeY.js";import"./lodash-B4Ozcv0x.js";function le({disableKeys:t=[]}){const{t:s}=M(),{control:n,setValue:c}=Me(),l=Le({control:n,name:"logo"}),i=d=>{if(!d.url){c("logo","");return}const p=new URL(d.url);c("logo",p.pathname)};return e.jsxs(S,{direction:"column",spacing:2,sx:{alignItems:"flex-start"},children:[e.jsx(N,{name:"name",type:"text",rules:{required:!0},label:s("admin.paymentMethod.name.label"),placeholder:s("admin.paymentMethod.name.tip"),disabled:t.includes("name"),inputProps:{maxLength:32}},"name"),e.jsx(N,{name:"description",type:"text",rules:{required:!0},label:s("admin.paymentMethod.description.label"),placeholder:s("admin.paymentMethod.description.tip"),disabled:t.includes("description"),inputProps:{maxLength:255}},"description"),e.jsx(N,{name:"contract",type:"text",rules:{required:!0},label:s("admin.paymentCurrency.contract.label"),placeholder:s("admin.paymentCurrency.contract.tip"),disabled:t.includes("contract")},"contract"),e.jsxs(S,{direction:"column",children:[e.jsx(j,{sx:{mb:1},children:s("admin.paymentCurrency.logo.label")}),e.jsx(Ae,{onUploaded:i,preview:l})]})]})}const Ue=()=>ie(()=>import("./tokenList-9PBdKlKn.js"),[]);function qe({method:t,onClose:s}){const{t:n}=M(),[c,l]=O({loading:!1,tokenListLoading:!1,availableTokens:[]}),i=G({defaultValues:{payment_method_id:t.id,name:"",description:"",logo:"",contract:""}}),{handleSubmit:d,setValue:p}=i,y=["ethereum","base"].includes(t.type),m=t?.settings?.[t.type]?.chain_id||"";E.useEffect(()=>{y&&!c.availableTokens.length&&(l({tokenListLoading:!0}),Ue().then(a=>{const o=y?(a.default?.[m]||[]).filter(u=>!(t.payment_currencies||[]).find(g=>g.contract===u.address)):[];l({availableTokens:o,tokenListLoading:!1})}))},[y,m]);const f=a=>a.localLogoURI?V(ce(),a.localLogoURI):a.logoURI||"",C=a=>{a&&(p("name",a.name),p("description",`${a.name} (${a.symbol})`),p("logo",f(a)),p("contract",a.address))},v=a=>{l({loading:!0}),D.post("/api/payment-currencies",a).then(()=>{l({loading:!1}),_.success(n("admin.paymentCurrency.saved")),i.reset(),A("drawer.submitted"),A("paymentCurrency.added")}).catch(o=>{l({loading:!1}),console.error(o),_.error(F(o))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:s,text:n("admin.paymentCurrency.add"),width:640,footer:e.jsxs(Y,{variant:"contained",size:"large",onClick:d(v),disabled:c.loading,sx:{width:"100%"},children:[c.loading&&e.jsx($,{size:20})," ",n("common.save")]}),children:e.jsxs(J,{...i,children:[y&&e.jsxs(w,{sx:{mb:3},children:[e.jsx(me,{disablePortal:!0,options:c.availableTokens,loading:c.tokenListLoading,getOptionLabel:a=>a.symbol,onChange:(a,o)=>C(o),renderInput:a=>e.jsx(ae,{...a,label:n("admin.paymentCurrency.quickAdd"),placeholder:n("admin.paymentCurrency.searchToken"),fullWidth:!0}),renderOption:(a,o)=>e.jsxs(w,{component:"li",...a,sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:[e.jsx(K,{src:f(o)||o.symbol,alt:o.symbol,sx:{width:24,height:24}}),e.jsxs(S,{children:[e.jsx(j,{sx:{fontWeight:500},children:o.name}),e.jsx(j,{variant:"caption",sx:{color:"text.secondary"},children:o.symbol})]})]}),isOptionEqualToValue:(a,o)=>a.address===o.address}),e.jsx(re,{sx:{my:3},children:e.jsx(j,{variant:"caption",sx:{color:"text.secondary"},children:n("admin.paymentCurrency.orManualInput")})})]}),e.jsx(le,{})]})})}const Be=()=>ie(()=>import("./tokenList-9PBdKlKn.js"),[]);function Ve({method:t,onClose:s,value:n}){const{t:c}=M(),[l,i]=O({loading:!1,tokenListLoading:!1,contractToTokenMap:new Map}),d=G({defaultValues:{payment_method_id:t.id,name:n?.name,description:n?.description,logo:n?.logo,contract:n?.contract}}),{handleSubmit:p,setValue:y}=d,m=["ethereum","base"].includes(t.type),f=t?.settings?.[t.type]?.chain_id||"",C=a=>a.localLogoURI?V(ce(),a.localLogoURI):a.logoURI||"";E.useEffect(()=>{m&&f&&(i({tokenListLoading:!0}),new Te(`tokenMap_${f}`,async()=>{const u=(await Be()).default?.[f]||[],g={};return u.forEach(k=>{k.address&&(g[k.address.toLowerCase()]=k)}),{data:g}},{strategy:"session",ttl:1800*1e3}).fetch().then(o=>{const u=new Map(Object.entries(o));if(i({contractToTokenMap:u,tokenListLoading:!1}),n?.contract){const g=u.get(n.contract.toLowerCase());if(g&&g.localLogoURI){const k=C(g);y("logo",k)}}}).catch(o=>{console.error("Failed to load token map:",o),i({tokenListLoading:!1})}))},[m,f,n?.contract]);const v=a=>{i({loading:!0}),D.put(`/api/payment-currencies/${n.id}`,a).then(()=>{i({loading:!1}),_.success(c("admin.paymentCurrency.saved")),d.reset(),A("drawer.submitted"),A("paymentCurrency.updated")}).catch(o=>{i({loading:!1}),console.error(o),_.error(F(o))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:s,text:c("admin.paymentCurrency.edit"),width:640,footer:e.jsxs(Y,{variant:"contained",size:"large",onClick:p(v),disabled:l.loading,sx:{width:"100%"},children:[l.loading&&e.jsx($,{size:20})," ",c("common.save")]}),children:e.jsx(J,{...d,children:e.jsx(le,{disableKeys:["contract"]})})})}function de({value:t,onSave:s,placeholder:n="",required:c=!0,disabled:l=!1,multiline:i=!1,maxLength:d=255,validate:p=()=>null,successMessage:y="",autoFocus:m=!1,onEdit:f=()=>{},onCancel:C=()=>{},hideSuccessToast:v=!1}){const[a,o]=E.useState(!1),[u,g]=E.useState(t),[k,T]=E.useState(""),[P,U]=E.useState(!1),{t:L}=M();E.useEffect(()=>{a||g(t)},[t,a]);const I=h=>{if(c&&!h.trim())return L("common.required");if(d&&h.length>d)return L("common.maxLength",{len:d});if(p){const z=p(h);if(z)return z}return""},r=async()=>{const h=I(u);if(h){T(h);return}U(!0);try{await s(u),v||_.success(y||L("common.saved")),o(!1),T("")}catch(z){_.error(F(z))}finally{U(!1)}},x=()=>{g(t),o(!1),T(""),C?.()},W=h=>{g(h);const z=I(h);T(z)},ue=()=>{o(!0),g(t),T(""),f?.()};return l?e.jsx(j,{variant:"body2",sx:{color:"text.secondary"},children:t||e.jsx("span",{style:{fontStyle:"italic"},children:n})}):e.jsx(S,{direction:"row",spacing:1,sx:{alignItems:i?"flex-start":"center",flexWrap:"wrap",width:"100%"},children:a?e.jsxs(e.Fragment,{children:[e.jsx(ae,{value:u,onChange:h=>W(h.target.value),variant:"outlined",size:"small",multiline:i,rows:i?3:1,sx:{flex:1,minWidth:"200px"},placeholder:n,error:!!k,disabled:P,autoFocus:m,slotProps:{input:{endAdornment:k?e.jsx(j,{color:"error",sx:{whiteSpace:"nowrap"},children:k}):void 0},htmlInput:{maxLength:d}},onKeyDown:h=>{h.key==="Enter"&&!i&&!h.shiftKey&&(h.preventDefault(),r()),h.key==="Escape"&&(h.preventDefault(),x())}}),e.jsxs(S,{direction:"row",spacing:.5,children:[e.jsx(R,{onClick:r,size:"small",disabled:!!k||P,color:"primary",title:L("common.save"),children:e.jsx(xe,{})}),e.jsx(R,{onClick:x,size:"small",disabled:P,title:L("common.cancel"),children:e.jsx(he,{})})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(j,{variant:"body2",sx:{wordBreak:"break-word",whiteSpace:i?"pre-wrap":"nowrap",overflow:i?"visible":"hidden",textOverflow:i?"clip":"ellipsis"},children:t||e.jsx("span",{style:{color:"#999",fontStyle:"italic"},children:n})}),e.jsx(R,{onClick:ue,size:"small",title:L("common.edit"),children:e.jsx(Q,{fontSize:"small"})})]})})}function $e({onClose:t,value:s}){const{t:n}=M(),[c,l]=O({loading:!1}),i=G({defaultValues:{type:s?.type,name:s?.name,description:s?.description,logo:s?.logo,settings:s?.settings}}),{handleSubmit:d}=i,p=y=>{l({loading:!0}),D.put(`/api/payment-methods/${s?.id}`,y).then(()=>{l({loading:!1}),_.success(n("admin.paymentMethod.saved")),i.reset(),A("drawer.submitted"),A("paymentMethod.updated")}).catch(m=>{l({loading:!1}),console.error(m),_.error(F(m))})};return e.jsx(Z,{open:!0,icon:e.jsx(H,{}),onClose:t,text:n("admin.paymentMethod.edit"),width:640,footer:e.jsxs(Y,{variant:"contained",size:"large",onClick:d(p),disabled:c.loading,sx:{width:"100%"},children:[c.loading&&e.jsx($,{size:20})," ",n("common.save")]}),children:e.jsx(J,{...i,children:e.jsx(De,{action:"edit",editableKeys:["name","description","logo","settings.base.api_host","settings.base.explorer_host","settings.ethereum.api_host","settings.ethereum.explorer_host","settings.stripe.publishable_key","settings.stripe.secret_key","settings.stripe.dashboard"]})})})}const He=(t={})=>{const s=new URLSearchParams;return Object.keys(t).forEach(n=>{s.set(n,String(t[n]))}),D.get(`/api/payment-methods?${s.toString()}`).then(n=>n.data)},pe=(t,s)=>D.put(`/api/payment-methods/${t}/settings`,{arcblock:s}).then(n=>n.data);function We({method:t,refresh:s}){const{t:n}=M(),c=async l=>{await pe(t.id,{api_host:l}),s()};return e.jsx(b,{label:n("admin.paymentMethod.arcblock.api_host.label"),value:e.jsx(de,{value:t.settings?.arcblock?.api_host||"",onSave:c,placeholder:n("admin.paymentMethod.arcblock.api_host.tip"),required:!0})})}function Ne({method:t,refresh:s}){const{t:n}=M(),c=async l=>{await pe(t.id,{explorer_host:l}),s()};return e.jsx(b,{label:n("admin.paymentMethod.arcblock.explorer_host.label"),value:e.jsx(de,{value:t.settings?.arcblock?.explorer_host||"",onSave:c,placeholder:n("admin.paymentMethod.arcblock.explorer_host.tip"),required:!0})})}const Ke=t=>{const s={};return t.forEach(n=>{s[n.type]=s[n.type]||[],s[n.type].push(n)}),s};function Qe({method:t}){const{t:s}=M(),n=t.settings?.[t.type]?.api_host,{status:c}=Fe(n,{debounce:0,pollInterval:2e3}),l=()=>c.loading?e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx($,{size:14}),e.jsx(j,{sx:{color:"text.secondary"},children:s("admin.paymentMethod.evm.checking")})]}):c.connected?e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(ke,{sx:{fontSize:14},color:"success"}),e.jsx(j,{sx:{color:"text.secondary"},children:s("admin.paymentMethod.evm.connected")})]}):e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[e.jsx(Ce,{sx:{fontSize:14},color:"error"}),e.jsx(j,{color:"error",children:s("admin.paymentMethod.evm.connectionError")})]});return e.jsxs(e.Fragment,{children:[e.jsx(b,{label:s(`admin.paymentMethod.${t.type}.api_host.label`),value:n}),e.jsx(b,{label:s("admin.paymentMethod.evm.rpcStatus"),value:l()}),e.jsx(b,{label:s("admin.paymentMethod.evm.blockHeight"),value:c.blockNumber?.toLocaleString()})]})}function Xe({method:t,balances:s,addresses:n,setDidDialog:c,refresh:l}){const{t:i}=M(),d=(t.payment_currencies||[])?.find(v=>v.id===t.default_currency_id),p=_e(s?.[d?.id]||"0",d?.decimal),y=t?.settings?.[t?.type]?.explorer_host||"",m=()=>t.type==="arcblock"&&n?.arcblock?V(y,"accounts",n?.arcblock,"tokens"):["ethereum","base"].includes(t.type)&&n?.ethereum?V(y,"address",n?.ethereum):"",f=["ethereum","base"].includes(t.type)&&s?.[d?.id]&&s?.[d?.id]==="0",C=v=>["ethereum","base"].includes(v)?n?.ethereum||"":n?.arcblock||"";return e.jsxs(e.Fragment,{children:[t.type==="arcblock"?e.jsx(Ne,{method:t,refresh:l}):e.jsx(b,{label:i("admin.paymentMethod.props.explorer_host"),value:y}),e.jsx(b,{label:e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:.5},children:[i("admin.paymentMethod.props.balance"),["ethereum","base"].includes(t.type)&&e.jsx(X,{title:i("admin.paymentMethod.gasTip",{method:t.type,chain:t.name}),children:e.jsx(oe,{sx:{fontSize:16,cursor:"pointer",color:f?"error.main":"text.secondary"}})})]}),value:e.jsxs(S,{direction:"row",sx:{alignItems:"center",display:"inline-flex",borderRadius:1},children:[e.jsxs(j,{component:"a",href:m(),target:"_blank",rel:"noreferrer",sx:{display:"flex",alignItems:"center",gap:.5,"&.MuiTypography-root":{color:f?"error.main":"text.link"}},children:[p," ",d?.symbol,e.jsx(be,{sx:{fontSize:14}})]}),e.jsx(re,{orientation:"vertical",flexItem:!0,sx:{mx:1}}),e.jsx(X,{title:i("admin.paymentMethod.recharge"),children:e.jsx(R,{size:"small",onClick:()=>c({open:!0,chainId:t.settings?.[t.type]?.chain_id,did:C(t.type)}),sx:{p:.5},children:e.jsx(ve,{sx:{fontSize:16}})})})]})})]})}function Ye(){return e.jsx(e.Fragment,{children:[1].map(t=>e.jsxs(w,{sx:{mt:3},children:[e.jsx(S,{direction:"row",sx:{alignItems:"center",mb:1,flexWrap:"wrap",gap:1},children:e.jsx(q,{variant:"text",width:120,height:32})}),e.jsx(w,{sx:{py:1,borderTop:"1px solid",borderBottom:"1px solid",borderColor:"divider",mb:1},children:e.jsx(S,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center"},children:e.jsxs(S,{direction:"row",spacing:2,sx:{alignItems:"center",flex:1},children:[e.jsx(q,{variant:"rectangular",width:40,height:40}),e.jsxs(w,{sx:{flex:1},children:[e.jsx(q,{variant:"text",width:"20%",height:24}),e.jsx(q,{variant:"text",width:"40%",height:20})]})]})})})]},t))})}function lt(){const{t}=M(),{palette:s}=ye(),[n,c]=we("payment-method-expanded-id",{defaultValue:""}),{loading:l,error:i,data:d={list:[],addresses:{},balances:{}},runAsync:p}=Ie(()=>He({addresses:!0})),y=(I,r)=>{c(r?I:"")},[m,f]=O({open:!1,chainId:"",did:""}),[C,v]=O({open:!1,value:null}),{refresh:a}=Ee(),[o,u]=O({action:"",value:null,method:""}),{list:g,addresses:k,balances:T}=d;if(B("paymentMethod.created",()=>{p(),a(!0)},[]),B("paymentMethod.updated",()=>{p(),a(!0)},[]),B("paymentCurrency.added",()=>{p().then(()=>{u({action:"",method:""})}),a(!0)},[]),B("paymentCurrency.updated",()=>{p().then(()=>{u({action:"",method:""})}),a(!0)},[]),i)return e.jsx(ge,{severity:"error",children:i.message});if(l||!d||g?.length===0)return e.jsx(Ye,{});const P=Ke(g),U=async I=>{try{await D.delete(`/api/payment-currencies/${I.id}`),p(),a(!0),_.success(t("admin.paymentCurrency.deleted"))}catch(r){_.error(F(r))}finally{u({action:"",method:""})}},L=()=>{p(),a(!0)};return e.jsxs(e.Fragment,{children:[Object.keys(P).map(I=>e.jsxs(w,{sx:{mt:3},children:[e.jsx(S,{direction:"row",sx:{alignItems:"center",mb:1,flexWrap:"wrap",gap:1},children:e.jsx(j,{variant:"subtitle2",sx:{textTransform:"uppercase"},children:I})}),P[I].map(r=>e.jsx(ze,{trigger:e.jsx(Oe,{...r}),addons:e.jsxs(e.Fragment,{children:[e.jsx(Pe,{checked:r.active,disabled:!0,sx:{cursor:"default"}}),!["arcblock","google_play","app_store"].includes(r.type)&&e.jsx(R,{onClick:x=>{x.stopPropagation(),v({open:!0,value:r})},children:e.jsx(Q,{})})]}),style:{py:1,borderTop:`1px solid ${s.divider}`,borderBottom:`1px solid ${s.divider}`,"& :hover":{color:"text.primary"}},value:r.id,expanded:n===r.id,onChange:(x,W)=>y(x,W),lazy:!1,children:e.jsx(ee,{container:!0,spacing:2,sx:{mt:1},children:e.jsxs(ee,{size:{xs:12,md:6},children:[e.jsx(b,{label:t("admin.paymentMethod.props.type"),value:r.type}),r.type==="arcblock"&&e.jsx(We,{method:r,refresh:L}),["ethereum","base"].includes(r.type)&&e.jsx(Qe,{method:r}),["arcblock","ethereum","base"].includes(r.type)&&e.jsx(Xe,{method:r,balances:T,addresses:k,setDidDialog:f,refresh:L}),e.jsx(b,{label:t("admin.paymentMethod.props.confirmation"),value:e.jsxs(w,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(j,{variant:"body2",children:r.confirmation.type}),r.type==="stripe"&&r.confirmation.type==="callback"&&e.jsx(X,{title:e.jsxs(j,{variant:"body2",component:"span",children:[t("admin.paymentMethod.stripe.webhookHint")," ",e.jsx(j,{variant:"body2",component:"a",href:"/.well-known/service/admin/overview/components",target:"_blank",rel:"noopener noreferrer",sx:{color:"primary.light",textDecoration:"underline","&:hover":{color:"primary.main"}},children:t("admin.paymentMethod.stripe.configureEnv")})]}),placement:"right",arrow:!0,children:e.jsx(oe,{sx:{fontSize:16,color:"info.main",cursor:"help",transition:"color 0.2s","&:hover":{color:"info.dark"}}})})]})}),e.jsx(b,{label:t("admin.paymentMethod.props.recurring"),value:r.features.recurring?t("common.yes"):t("common.no")}),e.jsx(b,{label:t("admin.paymentMethod.props.refund"),value:r.features.refund?t("common.yes"):t("common.no")}),e.jsx(b,{label:t("admin.paymentMethod.props.dispute"),value:r.features.dispute?t("common.yes"):t("common.no")}),e.jsx(b,{alignItems:"flex-start",label:t("admin.paymentMethod.props.currencies"),value:e.jsxs(fe,{children:[r.payment_currencies.map(x=>!x||x.type==="credit"?null:e.jsxs(te,{disablePadding:!0,secondaryAction:x.locked||r.default_currency_id===x.id?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{edge:"end",onClick:()=>{u({action:"edit",value:x,method:r.id})},children:e.jsx(Q,{})}),e.jsx(R,{edge:"end",onClick:()=>{u({action:"delete",value:x,method:r.id})},children:e.jsx(je,{})})]}),children:[e.jsx(ne,{children:e.jsx(K,{src:x.logo,alt:x.symbol})}),e.jsx(se,{primary:x.name,secondary:x.description})]},x.id)),r.type!=="stripe"&&e.jsxs(te,{disablePadding:!0,sx:{cursor:"pointer"},onClick:()=>{u({action:"create",method:r.id})},children:[e.jsx(ne,{children:e.jsx(K,{children:e.jsx(H,{fontSize:"small"})})}),e.jsx(se,{primary:t("admin.paymentCurrency.add")})]},"add-currency"),o.method===r.id&&o.action==="create"&&e.jsx(qe,{method:r,onClose:()=>u({action:"",method:""})}),o.method===r.id&&o.action==="edit"&&e.jsx(Ve,{method:r,onClose:()=>u({action:"",method:""}),value:o.value}),o.method===r.id&&o.action==="delete"&&e.jsx(Re,{onConfirm:()=>U(o.value),onCancel:()=>u({action:"",method:""}),title:t("admin.paymentCurrency.delete"),message:t("admin.paymentCurrency.deleteConfirm")})]})})]})})},r.id))]},I)),m.open&&m.did&&e.jsx(Se,{open:m.open,onClose:()=>f({open:!1,chainId:"",did:""}),did:m.did,chainId:m.chainId}),C.open&&C.value&&e.jsx($e,{value:C.value,onClose:()=>v({open:!1,value:null})})]})}export{lt as default};
@@ -1 +1 @@
1
- import{V as K,O as Se,aH as we,X as De,$ as Ee,Y as te,an as Te,y as E}from"./vendor-blocklet-D_i_QeSo.js";import{j as e,a3 as q,B as j,a2 as re,aZ as Y,I as ue,ci as Ie,r as k,x as Q,aQ as se,aT as ie,ad as R,q as T,Y as le,aX as H,cj as U,a7 as xe,ck as Oe,N as J,c3 as Ve,bH as N,aJ as Ae,w as ze,e as I}from"./vendor-mui-BXZut9Pz.js";import{a as oe,E as je,b7 as me,C as V,Y as ne,X as Z,aX as z,aW as G,N as he,e as pe,f as Re,b8 as de,h as ye,F as ge,k as ve,b9 as ke,S as Le,b as We}from"./index-DgSc1Qy8.js";import{I as ae}from"./collapse-CSrlJ0eG.js";import{l as qe}from"./lodash-B4Ozcv0x.js";import{D as Me}from"./drawer-form-Cl0T1Yyt.js";import{C as ce}from"./currency-select-DGS-62-L.js";import{u as be,P as Pe}from"./product-select-0ScZE2e8.js";import{D as $e,P as Fe,a as He}from"./form-P4luyUpY.js";import{a as Be,e as Xe}from"./vendor-react-BPknnnEA.js";function Ce({prefix:m="",baseCurrencyFieldName:h="currency_id",currencyOptionsFieldName:r="currency_options",unitAmountFieldName:l="amount_off",objectMode:i=!1,showBaseCurrency:_=!0,disabled:p=!1}){const{t:S}=K(),{settings:c}=oe(),{control:w,setValue:f,watch:O,formState:{errors:D},trigger:g}=je(),x=t=>m?`${m}.${t}`:t,y=me({control:w,name:x(r)}),v=O(x(h)),P=O(x(r)),M=()=>!i||!P||typeof P!="object"?[]:Object.entries(P).map(([t,u])=>({currency_id:t,[l]:u[l]||0})),B=t=>{const u=P||{};f(x(r),{...u,[t]:{[l]:0}},{shouldValidate:!0})},A=t=>{const d={...P||{}};delete d[t],f(x(r),d,{shouldValidate:!0})},$=(t,u)=>{const C={...P||{}},F=C[t];delete C[t],C[u]=F,f(x(r),C,{shouldValidate:!0})},L=i?M():y.fields,a=t=>(t?.split(".")).reduce((d,C)=>d?.[C],D),b=t=>Number(t)<=0?S("admin.price.unit_amount.positive"):!0,s=async t=>{i?A(t):(await y.remove(t),g(x(h)))},n=(t,u)=>{if(i)$(t,u);else{const d=t,C={currency_id:u};y?.fields?.[d]?.currency&&(C.currency=ne(c.paymentMethods,u)),y.update(d,{...y.fields[d],...C})}},o=t=>{i?B(t):y.append({currency_id:t,[l.split(".").pop()||"amount_off"]:0})};return e.jsxs(q,{spacing:2,sx:{width:"100%"},children:[_&&e.jsx(j,{sx:{width:"100%"},children:e.jsx(V,{name:x(l),control:w,rules:{required:S("admin.price.unit_amount.required"),validate:t=>b(t)},disabled:p,render:({field:t})=>e.jsx(re,{...t,type:"number",size:"small",fullWidth:!0,disabled:p,error:!!a(x(l)),helperText:a(x(l))?.message,slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(ce,{mode:"selected",hasSelected:u=>y.fields.some(d=>d.currency_id===u.id)||u.id===v,currencyFilter:u=>u.type!=="credit",onSelect:u=>{const d=y.fields.findIndex(C=>C.currency_id===v);d>-1&&n(d,u),f(x("currency"),ne(c.paymentMethods,u),{shouldValidate:!0}),f(x(h),u,{shouldValidate:!0})},value:v,disabled:p,selectSX:{".MuiOutlinedInput-notchedOutline":{border:"none"}}})})}},onChange:u=>{const{value:d}=u.target;if(t.onChange(d),i){const C=P||{};f(x(r),{...C,[v]:{...C[v]||{},[l]:d}})}else{const C=y.fields.findIndex(F=>F.currency_id===v);if(C===-1)return;f(x(`${r}.${C}.${l.split(".").pop()}`),d,{shouldValidate:!0})}}})})}),L.filter(t=>!_||t.currency_id!==v).length>0&&e.jsx(q,{spacing:1.5,sx:{width:"100%"},children:L.map((t,u)=>{if(_&&t.currency_id===v)return null;const d=x(i?`${r}.${t.currency_id}.${l}`:`${r}.${u}.${l.split(".").pop()}`),C=ne(c.paymentMethods,t.currency_id);return e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"start"},children:[e.jsx(j,{sx:{flex:1},children:e.jsx(V,{name:d,control:w,rules:{required:S("admin.price.unit_amount.required"),validate:F=>b(F)},disabled:p,render:({field:F})=>e.jsx(re,{...F,type:"number",size:"small",fullWidth:!0,sx:{minWidth:"300px"},disabled:p,error:!!a(d),helperText:a(d)?.message,onChange:W=>{const{value:X}=W.target;if(F.onChange(X),i){const ee=P||{};f(x(r),{...ee,[t.currency_id]:{...ee[t.currency_id]||{},[l]:parseFloat(X)||0}},{shouldValidate:!0}),g(d)}},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(ce,{mode:"selected",hasSelected:W=>L.some(X=>X.currency_id===W.id)||_&&W.id===v,currencyFilter:W=>W.type!=="credit",onSelect:W=>{if(i)n(t.currency_id,W);else{const X=y.fields.findIndex(ee=>ee.currency_id===C?.id);X>-1&&n(X,W)}},value:C?.id,disabled:p,selectSX:{".MuiOutlinedInput-notchedOutline":{border:"none"}}})})}}})})}),!p&&e.jsx(ue,{size:"small",disabled:p,onClick:()=>s(i?t.currency_id:u),sx:{mt:.5,ml:-1},children:e.jsx(Ie,{color:"error",sx:{opacity:.75}})})]},t.currency_id)})}),!p&&e.jsx(j,{sx:{width:"100%"},children:e.jsx(ce,{mode:"waiting",hasSelected:t=>L.some(u=>u.currency_id===t.id)||_&&t.id===v,currencyFilter:t=>t.type!=="credit",onSelect:o,value:"",width:"100%"})})]})}const Ue={code:"",description:"",active:!0,verification_type:"code",limit_number_redemptions:!1,add_expiration_date:!1,restrictions:{first_time_transaction:!1,require_minimum_amount:!1,currency_options:{}},customer_dids:[],nft_addresses:[],nft_tags:[],trusted_issuers:[],trusted_parents:[],min_balance:1,vc_roles:[],vc_trusted_issuers:[]},Ye=()=>pe.get("/api/customers?limit=1000").then(m=>m.data);function Ke({prefix:m="",showCodeInput:h=!1,showExpandedOptions:r=!0,availableCurrencies:l=[]}){const{t:i}=K(),{control:_,setValue:p,watch:S}=je(),c=a=>m?`${m}.${a}`:a,{data:w}=Se(Ye),f=Z({control:_,name:c("verification_type")}),O=Z({control:_,name:c("limit_number_redemptions")}),D=Z({control:_,name:c("add_expiration_date")}),g=Z({control:_,name:c("restrictions.require_minimum_amount")}),x=Z({control:_,name:c("restrictions.currency_options")}),y=w?.list||[];k.useEffect(()=>{if(g&&x&&typeof x=="object"){const a=Object.entries(x);if(a.length>0){const b=a[0];if(b){const[s,n]=b,o=n.minimum_amount||0;p(c("restrictions.minimum_amount"),o,{shouldValidate:!1}),p(c("restrictions.minimum_amount_currency"),s,{shouldValidate:!1})}}}else g||(p(c("restrictions.minimum_amount"),void 0,{shouldValidate:!1}),p(c("restrictions.minimum_amount_currency"),void 0,{shouldValidate:!1}))},[g,x,p,c]);const v=()=>Math.random().toString(36).substring(2,12).toUpperCase(),P=a=>a.name||a.email||a.did||a.id,M=(a,b)=>{const s=S(c(a))||[];if(b.trim()){const n=[...s,b.trim()];p(c(a),n)}},B=(a,b)=>{const n=(S(c(a))||[]).filter((o,t)=>t!==b);p(c(a),n)},A=(a,b,s)=>{const n=S(c(a))||[];return e.jsxs(j,{sx:{position:"relative"},children:[e.jsx(re,{label:b,placeholder:s,fullWidth:!0,size:"small",onKeyPress:o=>{if(o.key==="Enter"){o.preventDefault();const{value:t}=o.target;M(a,t),o.target.value=""}}}),e.jsx(j,{sx:{position:"absolute",top:8,right:12,fontSize:"0.75rem",color:"text.secondary",pointerEvents:"none",zIndex:1},children:"Press Enter"}),n.length>0&&e.jsx(q,{direction:"row",spacing:1,sx:{mt:1,flexWrap:"wrap"},children:n.map((o,t)=>e.jsx(xe,{label:o,onDelete:()=>B(a,t),size:"small"},o))})]})},$=()=>e.jsxs(j,{children:[e.jsx(T,{variant:"body2",sx:{color:"text.secondary",mb:2},children:i("admin.coupon.minimumAmountHelp")}),e.jsx(Ce,{prefix:c("restrictions"),baseCurrencyFieldName:"minimum_amount_currency",currencyOptionsFieldName:"currency_options",unitAmountFieldName:"minimum_amount",objectMode:!0,showBaseCurrency:!1})]}),L=()=>{const a=S(c("customer_dids"))||[],b=[];return y.forEach(s=>{(a.includes(s.did)||a.includes(s.id))&&b.push(s)}),a.forEach(s=>{y.some(n=>n.did===s||n.id===s)||b.push(s)}),e.jsx(j,{children:e.jsx(Oe,{multiple:!0,options:y,getOptionLabel:P,value:b,onChange:(s,n)=>{const o=n.map(t=>typeof t=="string"?t:t.did||t.id);p(c("customer_dids"),o)},freeSolo:!0,renderInput:s=>e.jsx(re,{...s,label:i("admin.coupon.customerDids"),placeholder:i("admin.coupon.customerDidsPlaceholder"),size:"small",helperText:i("admin.coupon.customerDidsHelp")}),renderOption:(s,n)=>e.jsxs(j,{component:"li",...s,sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(J,{src:he(n.did,n?.updated_at?new Date(n.updated_at).toISOString():void 0),sx:{width:24,height:24},alt:P(n)}),e.jsx(T,{variant:"body2",children:P(n)})]}),renderTags:(s,n)=>s.map((o,t)=>{const u=typeof o=="object",d=u?P(o):o;return k.createElement(xe,{variant:"outlined",label:d,size:"small",color:u?"primary":"default",avatar:u?e.jsx(J,{src:he(o.did,o?.updated_at?new Date(o.updated_at).toISOString():void 0),sx:{width:20,height:20},alt:P(o)}):void 0,...n({index:t}),key:u?o.id:o})}),filterOptions:(s,n)=>{const o=s.filter(d=>P(d).toLowerCase().includes(n.inputValue.toLowerCase())),{inputValue:t}=n,u=s.some(d=>P(d)===t);return t!==""&&!u&&t.length>10&&o.push(t),o}})})};return e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:3},children:[h&&e.jsx(j,{sx:{display:"flex",gap:2,alignItems:"flex-end"},children:e.jsx(z,{name:c("code"),label:i("admin.coupon.codeOptional"),placeholder:"FRIENDS20",helperText:i("admin.coupon.codeHelp"),InputProps:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(Q,{size:"small",onClick:()=>{p(c("code"),v())},children:i("admin.coupon.generate")})})}})}),e.jsx(z,{name:c("description"),label:i("admin.coupon.desc"),placeholder:i("admin.coupon.desc"),multiline:!0,minRows:2,maxRows:4,slotProps:{htmlInput:{maxLength:250}}}),e.jsxs(se,{component:"fieldset",fullWidth:!0,children:[e.jsx(G,{component:"legend",sx:{mb:1,fontSize:"0.875rem",fontWeight:500},children:i("admin.coupon.verificationType")}),e.jsx(V,{name:c("verification_type"),control:_,render:({field:a})=>e.jsxs(ie,{...a,size:"small",displayEmpty:!0,children:[e.jsx(R,{value:"code",children:i("admin.coupon.codeOnly")}),e.jsx(R,{value:"nft",disabled:!0,children:i("admin.coupon.nftVerification")}),e.jsx(R,{value:"vc",disabled:!0,children:i("admin.coupon.vcVerification")}),e.jsx(R,{value:"user_restricted",children:i("admin.coupon.userWhitelist")})]})})]}),f==="nft"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(T,{variant:"h6",children:i("admin.coupon.nftSettings")}),A("nft_addresses",i("admin.coupon.nftAddresses"),i("admin.coupon.nftAddressesPlaceholder")),A("nft_tags",i("admin.coupon.nftTags"),i("admin.coupon.nftTagsPlaceholder")),A("trusted_issuers",i("admin.coupon.trustedIssuers"),i("admin.coupon.trustedIssuersPlaceholder")),A("trusted_parents",i("admin.coupon.trustedParents"),i("admin.coupon.trustedParentsPlaceholder")),e.jsx(z,{name:c("min_balance"),label:i("admin.coupon.minBalance"),type:"number",rules:{min:1}})]}),f==="vc"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(T,{variant:"h6",children:i("admin.coupon.vcSettings")}),A("vc_roles",i("admin.coupon.requiredRoles"),i("admin.coupon.requiredRolesPlaceholder")),A("vc_trusted_issuers",i("admin.coupon.trustedVcIssuers"),i("admin.coupon.trustedVcIssuersPlaceholder"))]}),f==="user_restricted"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(T,{variant:"h6",children:i("admin.coupon.userWhitelistSettings")}),L()]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(le,{}),e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(V,{name:c("restrictions.first_time_transaction"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value||!1}),label:i("admin.coupon.eligibleFirstTime"),sx:{alignItems:"flex-start"}})}),e.jsx(V,{name:c("limit_number_redemptions"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value}),label:i("admin.coupon.limitNumberRedemptions"),sx:{alignItems:"flex-start"}})}),O&&e.jsx(z,{name:c("max_redemptions"),label:i("admin.coupon.maxRedemptions"),type:"number",slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:i("admin.coupon.times")})}}}),e.jsx(V,{name:c("add_expiration_date"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value}),label:i("admin.coupon.addExpirationDate"),sx:{alignItems:"flex-start"}})}),D&&e.jsx(z,{name:c("expires_at"),label:i("admin.coupon.expiresAt"),type:"datetime-local",InputLabelProps:{shrink:!0}}),e.jsx(V,{name:c("restrictions.require_minimum_amount"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value||!1,onChange:b=>{if(a.onChange(b.target.checked),b.target.checked){const s=l[0];s&&p(c("restrictions.currency_options"),{[s.id]:{minimum_amount:0}},{shouldValidate:!0})}else p(c("restrictions.currency_options"),{},{shouldValidate:!0})}}),label:i("admin.coupon.requireMinimumOrder"),sx:{alignItems:"flex-start"}})}),g&&$()]})]})]})}const Je=(m,h)=>(m.prices=m.prices.filter(r=>{const l=r.active,i=!h(r);return l&&i}),m),Qe=(m,h)=>we(m).map(l=>Je(l,h)).filter(l=>l.prices.length);function Ze({value:m=[],onChange:h,disabled:r=!1}){const{t:l}=K(),{products:i}=be(),{settings:_}=oe(),[p,S]=k.useState(null),[c,w]=k.useState(null),[f,O]=k.useState(!1),[D,g]=k.useState(!1),x=(i||[]).filter(s=>m.includes(s.id)),y=(i||[]).filter(s=>!m.includes(s.id)),v=s=>{if(!s.prices||s.prices.length===0)return null;if(s.prices.length===1){const n=s.prices[0];if(n){const o=ne(_.paymentMethods,n.currency_id??"")||_.baseCurrency;return Re(n,o)}}return l("admin.price.count",{count:s.prices.length})},P=s=>{if(s==="add"){de("product.create.request");return}if(s&&!m.includes(s)){const n=[...m,s];h(n),O(!1),g(!1)}},M=s=>{const n=m.filter(o=>o!==s);h(n),S(null),w(null)},B=(s,n)=>{S(s.currentTarget),w(n)},A=()=>{S(null),w(null)},$=()=>{O(!0),g(!0)},L=()=>{g(!1)},a=()=>{g(!0)},b=()=>{const s=Qe(i,()=>!1);return s.length===0?[]:s.map(n=>e.jsx(R,{value:n.id,disabled:m.includes(n.id),children:e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"center",width:"100%"},children:[n.images[0]?e.jsx(J,{src:n.images[0],alt:n.name,variant:"square",sx:{width:24,height:24}}):e.jsx(J,{variant:"square",sx:{width:24,height:24,fontSize:"0.75rem"},children:n.name.slice(0,1)}),e.jsx(j,{sx:{flex:1,minWidth:0},children:e.jsx(T,{variant:"body2",noWrap:!0,children:n.name})}),e.jsx(T,{variant:"body2",sx:{color:"text.secondary",ml:"auto",flexShrink:0},children:m.includes(n.id)?"Added":v(n)})]})},`product-${n.id}`))};return e.jsxs(q,{spacing:2,children:[x.map(s=>e.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:2,p:2,border:"1px solid",borderColor:"divider",borderRadius:1,backgroundColor:"background.paper"},children:[s.images[0]?e.jsx(J,{src:s.images[0],alt:s.name,variant:"square",sx:{width:40,height:40}}):e.jsx(J,{variant:"square",sx:{width:40,height:40,fontSize:"1rem"},children:s.name.slice(0,1)}),e.jsxs(j,{sx:{flex:1,minWidth:0},children:[e.jsx(T,{variant:"body1",noWrap:!0,sx:{fontWeight:"medium"},children:s.name}),v(s)&&e.jsx(T,{variant:"body2",sx:{color:"text.secondary"},children:v(s)})]}),e.jsx(ue,{size:"small",disabled:r,onClick:n=>B(n,s.id),sx:{color:"text.secondary"},children:e.jsx(Ve,{})})]},s.id)),!r&&y.length>0&&(m.length===0||f)&&e.jsx(se,{fullWidth:!0,size:"small",children:e.jsxs(ie,{value:"",open:D,onClose:L,onOpen:a,displayEmpty:!0,onChange:s=>P(s.target.value),renderValue:s=>s||e.jsx(T,{variant:"body2",sx:{color:"text.secondary"},children:l("admin.product.find")}),MenuProps:{style:{maxHeight:480}},children:[e.jsx(R,{value:"add",children:e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[e.jsx(N,{fontSize:"small",color:"primary"}),e.jsx(T,{variant:"body2",sx:{color:"primary.main",fontWeight:"medium"},children:l("admin.product.add")})]})}),b()]})}),!r&&y.length>0&&m.length>0&&!f&&e.jsx(T,{variant:"body2",component:"button",onClick:$,sx:{color:"primary.main",textDecoration:"none",cursor:"pointer",border:"none",background:"none",p:0,textAlign:"left",fontWeight:"normal","&:hover":{textDecoration:"underline"}},children:l("admin.coupon.addProduct")}),e.jsx(Ae,{anchorEl:p,open:!!p,onClose:A,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:e.jsx(R,{onClick:()=>c&&M(c),children:l("admin.product.remove")})})]})}function Ge({simple:m=!0,onSave:h,onCancel:r}){const{t:l}=K(),{settings:i}=oe(),[_,p]=De({loading:!1}),S=ye({mode:"onChange",defaultValues:{type:"service",name:"",description:"",images:[],statement_descriptor:"",unit_label:"",features:[],prices:[{...$e,currency_id:i.baseCurrency.id}],metadata:[]}}),{control:c,handleSubmit:w,reset:f,formState:{errors:O}}=S,D=me({control:c,name:"prices"}),g=y=>(p({loading:!0}),pe.post("/api/products",y).then(()=>{te.success(l("admin.product.saved"))}).catch(v=>{console.error(v),te.error(ve(v))}).finally(()=>{p({loading:!1})})),x=()=>{Object.keys(O).length>0||w(async y=>{await g(y),await f(),await h(null)})()};return e.jsx(Ee,{open:!0,disableEscapeKeyDown:!0,fullWidth:!0,maxWidth:"md",onClose:()=>r(null),showCloseButton:!1,title:l("admin.product.add"),actions:e.jsxs(q,{direction:"row",children:[e.jsx(Q,{size:"small",sx:{mr:2},onClick:r,children:l("common.cancel")}),e.jsxs(Q,{variant:"contained",color:"primary",size:"small",disabled:_.loading,onClick:x,children:[_.loading&&e.jsx(ze,{size:"small"})," ",l("common.save")]})]}),children:e.jsx(ge,{...S,children:e.jsxs(Pe,{children:[e.jsx(Fe,{simple:m}),D.fields.map((y,v)=>e.jsx(He,{prefix:`prices.${v}`,simple:m},y.id))]})})})}function Ne({onClose:m=()=>{},onSubmit:h=()=>{}}){const{t:r}=K(),{settings:l}=oe(),{refresh:i}=be(),[_,p]=k.useState("configuration"),[S,c]=k.useState(!1),w=ye({mode:"onChange",defaultValues:{name:"",description:"",id:"",type:"percentage",percent_off:10,amount_off:"0",currency_id:l.baseCurrency.id,currency_options:[],duration:"once",duration_in_months:void 0,applies_to_products:!1,product_ids:[],limit_date_range:!1,redeem_by:"",limit_total_number:!1,max_redemptions:void 0,use_customer_facing_codes:!1,promotion_codes:[]}}),{control:f,handleSubmit:O,watch:D,formState:{errors:g}}=w,x=me({control:f,name:"promotion_codes"});ke(n=>n.type==="product.create.request",()=>{c(!0)});const y=()=>{c(!1),i()},v=D("type"),P=D("duration"),M=D("use_customer_facing_codes"),B=D("limit_date_range"),A=D("limit_total_number"),$=D("currency_id"),L=D("currency_options")||[],a=()=>{const n=l.paymentMethods?.flatMap(o=>o.payment_currencies)||[];if(v==="fixed_amount"){const o=new Set;return $&&o.add($),L.forEach(t=>{t.currency_id&&o.add(t.currency_id)}),n.filter(t=>o.has(t.id))}return n},s=O(n=>{const o={name:n.name,duration:n.duration,metadata:{}};n.id&&(o.id=n.id),n.description&&(o.description=n.description),n.type==="percentage"?o.percent_off=n.percent_off:(o.amount_off=n.amount_off,o.currency_id=n.currency_id,n.currency_options&&n.currency_options.length>0&&(o.currency_options={},n.currency_options.forEach(t=>{t.currency_id&&t.amount_off&&(o.currency_options[t.currency_id]={amount_off:parseFloat(t.amount_off)||0})}))),n.duration==="repeating"&&(o.duration_in_months=n.duration_in_months||1),n.limit_total_number&&n.max_redemptions&&(o.max_redemptions=n.max_redemptions),n.limit_date_range&&n.redeem_by&&(o.redeem_by=Math.floor(new Date(n.redeem_by).getTime()/1e3)),n.applies_to_products&&n.product_ids&&n.product_ids.length>0&&(o.applies_to={products:n.product_ids}),n.use_customer_facing_codes&&n.promotion_codes.length>0&&(o.promotion_codes=n.promotion_codes.map(t=>{const u={active:t.active,verification_type:t.verification_type,max_redemptions:t.limit_number_redemptions?t.max_redemptions:void 0,expires_at:t.expires_at?Math.floor(new Date(t.expires_at).getTime()/1e3):void 0,restrictions:{},metadata:{}};return t.description&&(u.description=t.description),t.restrictions&&(u.restrictions=t.restrictions),t.code&&t.code.trim()&&(u.code=t.code),t.verification_type==="nft"?u.nft_config={addresses:t.nft_addresses?.filter(d=>d.trim())||[],tags:t.nft_tags?.filter(d=>d.trim())||[],trusted_issuers:t.trusted_issuers?.filter(d=>d.trim())||[],trusted_parents:t.trusted_parents?.filter(d=>d.trim())||[],min_balance:t.min_balance||1}:t.verification_type==="vc"?u.vc_config={roles:t.vc_roles?.filter(d=>d.trim())||[],trusted_issuers:t.vc_trusted_issuers?.filter(d=>d.trim())||[]}:t.verification_type==="user_restricted"&&(u.customer_dids=t.customer_dids?.filter(d=>d.trim())||[]),u})),pe.post("/api/coupons",o).then(()=>{te.success(r("admin.coupon.saved")),de("coupon.created"),w.reset(),de("drawer.submitted"),h&&h(),m&&m()}).catch(t=>{console.error(t),te.error(ve(t))})});return e.jsxs(e.Fragment,{children:[e.jsx(ge,{...w,children:e.jsxs(j,{component:"form",id:"coupon-form",onSubmit:s,children:[e.jsx(T,{variant:"body2",sx:{color:"text.secondary",mb:3},children:r("admin.coupon.description")}),e.jsx(ae,{expanded:_==="configuration",value:"configuration",card:!0,onChange:(n,o)=>{o&&p("configuration")},trigger:r("admin.coupon.couponConfiguration"),children:e.jsxs(j,{sx:{p:2,display:"flex",flexDirection:"column",gap:2},children:[e.jsx(z,{name:"name",label:r("admin.coupon.name"),required:!0,placeholder:"First purchase discount",helperText:g?.name?.message||r("admin.coupon.nameHelp"),rules:{required:r("common.required")}}),e.jsx(z,{name:"description",label:r("admin.coupon.desc"),placeholder:r("admin.coupon.desc"),multiline:!0,minRows:2,maxRows:4,slotProps:{htmlInput:{maxLength:500}}}),e.jsx(z,{name:"id",label:r("admin.coupon.idOptional"),helperText:r("admin.coupon.idHelp")}),e.jsxs(j,{children:[e.jsx(G,{required:!0,children:r("admin.coupon.type")}),e.jsx(V,{name:"type",control:f,render:({field:n})=>e.jsx(se,{fullWidth:!0,size:"small",children:e.jsxs(ie,{...n,children:[e.jsx(R,{value:"percentage",children:r("admin.coupon.percentageOff")}),e.jsx(R,{value:"fixed_amount",children:r("admin.coupon.fixedAmountOff")})]})})})]}),v==="percentage"?e.jsx(z,{name:"percent_off",label:r("admin.coupon.percentageDiscount"),type:"number",required:!0,rules:{min:0,max:100,validate:n=>!n&&n!==0?r("common.required"):Number(n)<=0||Number(n)>100?r("common.invalid"):!0},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:"%"})},htmlInput:{min:0,max:100,precision:2}}}):e.jsxs(j,{children:[e.jsx(G,{required:!0,children:r("admin.coupon.fixedAmount")}),e.jsx(Ce,{baseCurrencyFieldName:"currency_id",currencyOptionsFieldName:"currency_options",unitAmountFieldName:"amount_off"})]}),e.jsx(j,{sx:{pl:2},children:e.jsx(V,{name:"applies_to_products",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(Le,{...n,checked:n.value}),label:r("admin.coupon.applyToProducts"),slotProps:{typography:{sx:{marginLeft:"8px"}}}})})}),D("applies_to_products")&&e.jsxs(j,{children:[e.jsx(G,{children:r("admin.coupon.selectProducts")}),e.jsx(V,{name:"product_ids",control:f,render:({field:n})=>e.jsx(Ze,{value:n.value||[],onChange:n.onChange})})]}),e.jsxs(j,{children:[e.jsx(V,{name:"duration",control:f,render:({field:n})=>e.jsxs(se,{fullWidth:!0,size:"small",children:[e.jsx(G,{required:!0,children:r("admin.coupon.duration")}),e.jsxs(ie,{...n,children:[e.jsx(R,{value:"once",children:r("admin.coupon.once")}),e.jsx(R,{value:"forever",children:r("admin.coupon.forever")}),e.jsx(R,{value:"repeating",children:r("admin.coupon.repeating")})]})]})}),e.jsx(T,{variant:"body2",sx:{color:"text.secondary",mt:1},children:r("admin.coupon.durationHelp")})]}),P==="repeating"&&e.jsx(z,{name:"duration_in_months",label:r("admin.coupon.durationInMonths"),type:"number",rules:{required:"Duration in months is required",min:1},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:r("admin.coupon.months")})}}}),e.jsx(le,{}),e.jsx(T,{variant:"h6",children:r("admin.coupon.redemptionLimits")}),e.jsx(V,{name:"limit_date_range",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.limitDateRange")})}),B&&e.jsx(z,{name:"redeem_by",label:"",type:"datetime-local",InputLabelProps:{shrink:!0}}),e.jsx(V,{name:"limit_total_number",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.limitTotalNumber")})}),A&&e.jsx(z,{name:"max_redemptions",label:r("admin.coupon.maxRedemptions"),type:"number",slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:r("admin.coupon.times")})}}})]})}),e.jsx(ae,{expanded:_==="codes",value:"codes",card:!0,onChange:(n,o)=>{o&&p("codes")},trigger:r("admin.coupon.promotionCodes"),style:{marginTop:2},children:e.jsxs(j,{sx:{p:2,display:"flex",flexDirection:"column",gap:3},children:[e.jsx(V,{name:"use_customer_facing_codes",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.useCustomerFacingCodes")})}),M&&e.jsxs(j,{children:[e.jsx(T,{variant:"body2",sx:{color:"text.secondary",mb:2},children:r("admin.coupon.codeHelp")}),x.fields.map((n,o)=>e.jsxs(k.Fragment,{children:[e.jsx(ae,{expanded:!0,style:{fontWeight:"bold",width:"100%"},addons:e.jsx(ue,{size:"small",onClick:()=>x.remove(o),color:"error",children:e.jsx(N,{style:{transform:"rotate(45deg)"}})}),trigger:`${r("admin.coupon.promotionCodes")} ${o+1}: ${w.watch(`promotion_codes.${o}.code`)||r("admin.coupon.newCode")}`,children:e.jsx(j,{sx:{width:"100%",p:1},children:e.jsx(Ke,{prefix:`promotion_codes.${o}`,showCodeInput:!0,showExpandedOptions:!0,availableCurrencies:a()})})}),e.jsx(le,{sx:{mt:2,mb:2}})]},n.id)),e.jsxs(Q,{variant:"outlined",color:"primary",sx:{color:"text.primary",width:"100%"},onClick:()=>{const n=qe.cloneDeep(Ue);x.append(n)},children:[e.jsx(N,{fontSize:"small"})," ",r("admin.coupon.addAnotherCode")]})]}),!M&&e.jsx(T,{variant:"body2",sx:{color:"text.secondary"},children:r("admin.coupon.promotionCodesHelp")})]})})]})}),S&&e.jsx(Ge,{onCancel:()=>c(!1),onSave:y})]})}function en({open:m=!1,onClose:h=()=>{},onSubmit:r=()=>{}}){const{t:l}=K();return e.jsx(Me,{icon:e.jsx(N,{}),text:l("admin.coupon.create"),open:m,onClose:h,width:640,addons:e.jsx(Q,{variant:"contained",size:"small",form:"coupon-form",type:"submit",children:l("admin.coupon.create")}),children:e.jsx(Pe,{children:e.jsx(Ne,{onClose:h,onSubmit:r})})})}const nn=I.lazy(()=>E(()=>import("./create-Bs65p5Ne.js"),[])),tn=I.lazy(()=>E(()=>import("./detail-CT9Unyrf.js"),[])),rn=I.lazy(()=>E(()=>import("./detail-CxYQYu_l.js"),[])),sn=I.lazy(()=>E(()=>import("./create-BmcRybZ5.js"),[])),on=I.lazy(()=>E(()=>import("./detail-BJTcK7mx.js"),[])),an=I.lazy(()=>E(()=>import("./create-tYebjhr9.js"),[])),cn=I.lazy(()=>E(()=>import("./detail-DuWdZIyp.js"),[])),ln=I.lazy(()=>E(()=>import("./detail-Cb9HBSMw.js"),[])),_e=I.lazy(()=>E(()=>import("./detail-CIx9vkir.js"),[])),dn=I.lazy(()=>E(()=>import("./create-kG09X9gl.js"),[])),fe={products:I.lazy(()=>E(()=>import("./index-fswPX_qe.js"),[])),coupons:I.lazy(()=>E(()=>import("./index-B1pTTyGZ.js"),[])),links:I.lazy(()=>E(()=>import("./index-DE2KzqXl.js"),[])),"pricing-tables":I.lazy(()=>E(()=>import("./index-Cw0ugaQL.js"),[])),passports:I.lazy(()=>E(()=>import("./index-CdkYrABk.js"),[])),vendors:I.lazy(()=>E(()=>import("./index-9xBRL_33.js"),[])),"exchange-rate-providers":I.lazy(()=>E(()=>import("./index-DZpJPE1Z.js"),[]))};function un(){const m=Be(),{t:h}=K(),{page:r="products",id:l,subpage:i}=Xe(),[_,p]=k.useState(!1),[S,c]=k.useState(!1),{startTransition:w}=We(),f=()=>w(()=>m("/admin/products/exchange-rate-providers?create=1"));if(r.startsWith("prod_"))return e.jsx(tn,{id:r});if(r.startsWith("price_"))return e.jsx(rn,{id:r});if(r.startsWith("prctbl_"))return e.jsx(cn,{id:r});if(r.startsWith("plink_"))return e.jsx(on,{id:r});if(r==="coupons"&&i==="promotion-codes"&&l)return e.jsx(_e,{id:l});if(r==="coupons"&&l&&!i)return e.jsx(ln,{id:l});if(r==="promotion-codes"&&l)return e.jsx(_e,{id:l});const O=fe[r]||fe.products;if(r.startsWith("pv_"))return e.jsx(O,{});const D=[{label:h("admin.products"),value:"products"},{label:h("admin.coupons"),value:"coupons"},{label:h("admin.paymentLinks"),value:"links"},{label:h("admin.pricingTables"),value:"pricing-tables"},{label:h("admin.passports"),value:"passports"},{label:h("admin.vendors"),value:"vendors"},{label:h("admin.exchangeRateProvider.title"),value:"exchange-rate-providers"}];let g=null;return r==="products"?g=e.jsx(nn,{open:_,onClose:()=>p(!1)}):r==="links"?g=e.jsx(sn,{}):r==="pricing-tables"?g=e.jsx(an,{}):r==="coupons"?g=e.jsx(en,{open:S,onClose:()=>c(!1)}):r==="vendors"?g=e.jsx(dn,{open:_,onClose:()=>p(!1)}):r==="exchange-rate-providers"&&(g=e.jsx(Q,{variant:"contained",startIcon:e.jsx(N,{}),onClick:f,size:"small",children:h("admin.exchangeRateProvider.create.primaryAction")})),e.jsxs(e.Fragment,{children:[e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"end",flexWrap:"wrap"},children:[e.jsx(Te,{tabs:D,current:r,onChange:x=>w(()=>m(`/admin/products/${x}`)),scrollButtons:"auto",variant:"scrollable",sx:{flex:"1 0 auto",maxWidth:"100%",".MuiTab-root":{color:"text.lighter"},".MuiTabs-indicator":{display:"none"},".Mui-selected":{fontSize:24,color:"text.primary"},".MuiTabs-hideScrollbar":{border:"none !important"},".MuiTouchRipple-root":{display:"none"}}}),e.jsx(j,{children:g})]}),k.isValidElement(O)?O:e.jsx(O,{})]})}const bn=Object.freeze(Object.defineProperty({__proto__:null,default:un},Symbol.toStringTag,{value:"Module"}));export{Ge as C,Ue as D,Ke as P,bn as i};
1
+ import{V as K,P as Se,aI as we,Y as De,$ as Ee,Z as te,ao as Ie,A as E}from"./vendor-blocklet-DcLR2Cyf.js";import{j as e,a3 as q,B as j,a2 as re,aZ as Y,I as ue,ci as Te,r as k,x as J,aQ as se,aT as ie,ad as R,q as I,Y as le,aX as H,cj as U,a7 as xe,ck as Ae,N as Z,c3 as Oe,bH as N,aJ as Ve,w as ze,e as T}from"./vendor-mui-BXZut9Pz.js";import{a as oe,E as je,b7 as me,C as O,Y as ne,X as Q,aX as z,aW as G,N as he,e as pe,f as Re,b8 as de,h as ge,F as ye,k as ve,b9 as ke,S as Le,b as We}from"./index-BarN7DfU.js";import{I as ae}from"./collapse-CSrlJ0eG.js";import{l as qe}from"./lodash-B4Ozcv0x.js";import{D as Me}from"./drawer-form-DspWWj3x.js";import{C as ce}from"./currency-select-B4ieQBvv.js";import{u as be,P as Pe}from"./product-select-ChEyoJqJ.js";import{D as $e,P as Fe,a as He}from"./form-cX026J4G.js";import{a as Be,e as Xe}from"./vendor-react-BPknnnEA.js";function Ce({prefix:m="",baseCurrencyFieldName:h="currency_id",currencyOptionsFieldName:r="currency_options",unitAmountFieldName:l="amount_off",objectMode:i=!1,showBaseCurrency:_=!0,disabled:p=!1}){const{t:S}=K(),{settings:c}=oe(),{control:w,setValue:f,watch:A,formState:{errors:D},trigger:y}=je(),x=t=>m?`${m}.${t}`:t,g=me({control:w,name:x(r)}),v=A(x(h)),P=A(x(r)),M=()=>!i||!P||typeof P!="object"?[]:Object.entries(P).map(([t,u])=>({currency_id:t,[l]:u[l]||0})),B=t=>{const u=P||{};f(x(r),{...u,[t]:{[l]:0}},{shouldValidate:!0})},V=t=>{const d={...P||{}};delete d[t],f(x(r),d,{shouldValidate:!0})},$=(t,u)=>{const C={...P||{}},F=C[t];delete C[t],C[u]=F,f(x(r),C,{shouldValidate:!0})},L=i?M():g.fields,a=t=>(t?.split(".")).reduce((d,C)=>d?.[C],D),b=t=>Number(t)<=0?S("admin.price.unit_amount.positive"):!0,s=async t=>{i?V(t):(await g.remove(t),y(x(h)))},n=(t,u)=>{if(i)$(t,u);else{const d=t,C={currency_id:u};g?.fields?.[d]?.currency&&(C.currency=ne(c.paymentMethods,u)),g.update(d,{...g.fields[d],...C})}},o=t=>{i?B(t):g.append({currency_id:t,[l.split(".").pop()||"amount_off"]:0})};return e.jsxs(q,{spacing:2,sx:{width:"100%"},children:[_&&e.jsx(j,{sx:{width:"100%"},children:e.jsx(O,{name:x(l),control:w,rules:{required:S("admin.price.unit_amount.required"),validate:t=>b(t)},disabled:p,render:({field:t})=>e.jsx(re,{...t,type:"number",size:"small",fullWidth:!0,disabled:p,error:!!a(x(l)),helperText:a(x(l))?.message,slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(ce,{mode:"selected",hasSelected:u=>g.fields.some(d=>d.currency_id===u.id)||u.id===v,currencyFilter:u=>u.type!=="credit",onSelect:u=>{const d=g.fields.findIndex(C=>C.currency_id===v);d>-1&&n(d,u),f(x("currency"),ne(c.paymentMethods,u),{shouldValidate:!0}),f(x(h),u,{shouldValidate:!0})},value:v,disabled:p,selectSX:{".MuiOutlinedInput-notchedOutline":{border:"none"}}})})}},onChange:u=>{const{value:d}=u.target;if(t.onChange(d),i){const C=P||{};f(x(r),{...C,[v]:{...C[v]||{},[l]:d}})}else{const C=g.fields.findIndex(F=>F.currency_id===v);if(C===-1)return;f(x(`${r}.${C}.${l.split(".").pop()}`),d,{shouldValidate:!0})}}})})}),L.filter(t=>!_||t.currency_id!==v).length>0&&e.jsx(q,{spacing:1.5,sx:{width:"100%"},children:L.map((t,u)=>{if(_&&t.currency_id===v)return null;const d=x(i?`${r}.${t.currency_id}.${l}`:`${r}.${u}.${l.split(".").pop()}`),C=ne(c.paymentMethods,t.currency_id);return e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"start"},children:[e.jsx(j,{sx:{flex:1},children:e.jsx(O,{name:d,control:w,rules:{required:S("admin.price.unit_amount.required"),validate:F=>b(F)},disabled:p,render:({field:F})=>e.jsx(re,{...F,type:"number",size:"small",fullWidth:!0,sx:{minWidth:"300px"},disabled:p,error:!!a(d),helperText:a(d)?.message,onChange:W=>{const{value:X}=W.target;if(F.onChange(X),i){const ee=P||{};f(x(r),{...ee,[t.currency_id]:{...ee[t.currency_id]||{},[l]:parseFloat(X)||0}},{shouldValidate:!0}),y(d)}},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(ce,{mode:"selected",hasSelected:W=>L.some(X=>X.currency_id===W.id)||_&&W.id===v,currencyFilter:W=>W.type!=="credit",onSelect:W=>{if(i)n(t.currency_id,W);else{const X=g.fields.findIndex(ee=>ee.currency_id===C?.id);X>-1&&n(X,W)}},value:C?.id,disabled:p,selectSX:{".MuiOutlinedInput-notchedOutline":{border:"none"}}})})}}})})}),!p&&e.jsx(ue,{size:"small",disabled:p,onClick:()=>s(i?t.currency_id:u),sx:{mt:.5,ml:-1},children:e.jsx(Te,{color:"error",sx:{opacity:.75}})})]},t.currency_id)})}),!p&&e.jsx(j,{sx:{width:"100%"},children:e.jsx(ce,{mode:"waiting",hasSelected:t=>L.some(u=>u.currency_id===t.id)||_&&t.id===v,currencyFilter:t=>t.type!=="credit",onSelect:o,value:"",width:"100%"})})]})}const Ue={code:"",description:"",active:!0,verification_type:"code",limit_number_redemptions:!1,add_expiration_date:!1,restrictions:{first_time_transaction:!1,require_minimum_amount:!1,currency_options:{}},customer_dids:[],nft_addresses:[],nft_tags:[],trusted_issuers:[],trusted_parents:[],min_balance:1,vc_roles:[],vc_trusted_issuers:[]},Ye=()=>pe.get("/api/customers?limit=1000").then(m=>m.data);function Ke({prefix:m="",showCodeInput:h=!1,showExpandedOptions:r=!0,availableCurrencies:l=[]}){const{t:i}=K(),{control:_,setValue:p,watch:S}=je(),c=a=>m?`${m}.${a}`:a,{data:w}=Se(Ye),f=Q({control:_,name:c("verification_type")}),A=Q({control:_,name:c("limit_number_redemptions")}),D=Q({control:_,name:c("add_expiration_date")}),y=Q({control:_,name:c("restrictions.require_minimum_amount")}),x=Q({control:_,name:c("restrictions.currency_options")}),g=w?.list||[];k.useEffect(()=>{if(y&&x&&typeof x=="object"){const a=Object.entries(x);if(a.length>0){const b=a[0];if(b){const[s,n]=b,o=n.minimum_amount||0;p(c("restrictions.minimum_amount"),o,{shouldValidate:!1}),p(c("restrictions.minimum_amount_currency"),s,{shouldValidate:!1})}}}else y||(p(c("restrictions.minimum_amount"),void 0,{shouldValidate:!1}),p(c("restrictions.minimum_amount_currency"),void 0,{shouldValidate:!1}))},[y,x,p,c]);const v=()=>Math.random().toString(36).substring(2,12).toUpperCase(),P=a=>a.name||a.email||a.did||a.id,M=(a,b)=>{const s=S(c(a))||[];if(b.trim()){const n=[...s,b.trim()];p(c(a),n)}},B=(a,b)=>{const n=(S(c(a))||[]).filter((o,t)=>t!==b);p(c(a),n)},V=(a,b,s)=>{const n=S(c(a))||[];return e.jsxs(j,{sx:{position:"relative"},children:[e.jsx(re,{label:b,placeholder:s,fullWidth:!0,size:"small",onKeyPress:o=>{if(o.key==="Enter"){o.preventDefault();const{value:t}=o.target;M(a,t),o.target.value=""}}}),e.jsx(j,{sx:{position:"absolute",top:8,right:12,fontSize:"0.75rem",color:"text.secondary",pointerEvents:"none",zIndex:1},children:"Press Enter"}),n.length>0&&e.jsx(q,{direction:"row",spacing:1,sx:{mt:1,flexWrap:"wrap"},children:n.map((o,t)=>e.jsx(xe,{label:o,onDelete:()=>B(a,t),size:"small"},o))})]})},$=()=>e.jsxs(j,{children:[e.jsx(I,{variant:"body2",sx:{color:"text.secondary",mb:2},children:i("admin.coupon.minimumAmountHelp")}),e.jsx(Ce,{prefix:c("restrictions"),baseCurrencyFieldName:"minimum_amount_currency",currencyOptionsFieldName:"currency_options",unitAmountFieldName:"minimum_amount",objectMode:!0,showBaseCurrency:!1})]}),L=()=>{const a=S(c("customer_dids"))||[],b=[];return g.forEach(s=>{(a.includes(s.did)||a.includes(s.id))&&b.push(s)}),a.forEach(s=>{g.some(n=>n.did===s||n.id===s)||b.push(s)}),e.jsx(j,{children:e.jsx(Ae,{multiple:!0,options:g,getOptionLabel:P,value:b,onChange:(s,n)=>{const o=n.map(t=>typeof t=="string"?t:t.did||t.id);p(c("customer_dids"),o)},freeSolo:!0,renderInput:s=>e.jsx(re,{...s,label:i("admin.coupon.customerDids"),placeholder:i("admin.coupon.customerDidsPlaceholder"),size:"small",helperText:i("admin.coupon.customerDidsHelp")}),renderOption:(s,n)=>e.jsxs(j,{component:"li",...s,sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(Z,{src:he(n.did,n?.updated_at?new Date(n.updated_at).toISOString():void 0),sx:{width:24,height:24},alt:P(n)}),e.jsx(I,{variant:"body2",children:P(n)})]}),renderTags:(s,n)=>s.map((o,t)=>{const u=typeof o=="object",d=u?P(o):o;return k.createElement(xe,{variant:"outlined",label:d,size:"small",color:u?"primary":"default",avatar:u?e.jsx(Z,{src:he(o.did,o?.updated_at?new Date(o.updated_at).toISOString():void 0),sx:{width:20,height:20},alt:P(o)}):void 0,...n({index:t}),key:u?o.id:o})}),filterOptions:(s,n)=>{const o=s.filter(d=>P(d).toLowerCase().includes(n.inputValue.toLowerCase())),{inputValue:t}=n,u=s.some(d=>P(d)===t);return t!==""&&!u&&t.length>10&&o.push(t),o}})})};return e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:3},children:[h&&e.jsx(j,{sx:{display:"flex",gap:2,alignItems:"flex-end"},children:e.jsx(z,{name:c("code"),label:i("admin.coupon.codeOptional"),placeholder:"FRIENDS20",helperText:i("admin.coupon.codeHelp"),InputProps:{endAdornment:e.jsx(Y,{position:"end",children:e.jsx(J,{size:"small",onClick:()=>{p(c("code"),v())},children:i("admin.coupon.generate")})})}})}),e.jsx(z,{name:c("description"),label:i("admin.coupon.desc"),placeholder:i("admin.coupon.desc"),multiline:!0,minRows:2,maxRows:4,slotProps:{htmlInput:{maxLength:250}}}),e.jsxs(se,{component:"fieldset",fullWidth:!0,children:[e.jsx(G,{component:"legend",sx:{mb:1,fontSize:"0.875rem",fontWeight:500},children:i("admin.coupon.verificationType")}),e.jsx(O,{name:c("verification_type"),control:_,render:({field:a})=>e.jsxs(ie,{...a,size:"small",displayEmpty:!0,children:[e.jsx(R,{value:"code",children:i("admin.coupon.codeOnly")}),e.jsx(R,{value:"nft",disabled:!0,children:i("admin.coupon.nftVerification")}),e.jsx(R,{value:"vc",disabled:!0,children:i("admin.coupon.vcVerification")}),e.jsx(R,{value:"user_restricted",children:i("admin.coupon.userWhitelist")})]})})]}),f==="nft"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(I,{variant:"h6",children:i("admin.coupon.nftSettings")}),V("nft_addresses",i("admin.coupon.nftAddresses"),i("admin.coupon.nftAddressesPlaceholder")),V("nft_tags",i("admin.coupon.nftTags"),i("admin.coupon.nftTagsPlaceholder")),V("trusted_issuers",i("admin.coupon.trustedIssuers"),i("admin.coupon.trustedIssuersPlaceholder")),V("trusted_parents",i("admin.coupon.trustedParents"),i("admin.coupon.trustedParentsPlaceholder")),e.jsx(z,{name:c("min_balance"),label:i("admin.coupon.minBalance"),type:"number",rules:{min:1}})]}),f==="vc"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(I,{variant:"h6",children:i("admin.coupon.vcSettings")}),V("vc_roles",i("admin.coupon.requiredRoles"),i("admin.coupon.requiredRolesPlaceholder")),V("vc_trusted_issuers",i("admin.coupon.trustedVcIssuers"),i("admin.coupon.trustedVcIssuersPlaceholder"))]}),f==="user_restricted"&&e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(I,{variant:"h6",children:i("admin.coupon.userWhitelistSettings")}),L()]}),r&&e.jsxs(e.Fragment,{children:[e.jsx(le,{}),e.jsxs(j,{sx:{display:"flex",flexDirection:"column",gap:2},children:[e.jsx(O,{name:c("restrictions.first_time_transaction"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value||!1}),label:i("admin.coupon.eligibleFirstTime"),sx:{alignItems:"flex-start"}})}),e.jsx(O,{name:c("limit_number_redemptions"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value}),label:i("admin.coupon.limitNumberRedemptions"),sx:{alignItems:"flex-start"}})}),A&&e.jsx(z,{name:c("max_redemptions"),label:i("admin.coupon.maxRedemptions"),type:"number",slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:i("admin.coupon.times")})}}}),e.jsx(O,{name:c("add_expiration_date"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value}),label:i("admin.coupon.addExpirationDate"),sx:{alignItems:"flex-start"}})}),D&&e.jsx(z,{name:c("expires_at"),label:i("admin.coupon.expiresAt"),type:"datetime-local",InputLabelProps:{shrink:!0}}),e.jsx(O,{name:c("restrictions.require_minimum_amount"),control:_,render:({field:a})=>e.jsx(H,{control:e.jsx(U,{...a,checked:a.value||!1,onChange:b=>{if(a.onChange(b.target.checked),b.target.checked){const s=l[0];s&&p(c("restrictions.currency_options"),{[s.id]:{minimum_amount:0}},{shouldValidate:!0})}else p(c("restrictions.currency_options"),{},{shouldValidate:!0})}}),label:i("admin.coupon.requireMinimumOrder"),sx:{alignItems:"flex-start"}})}),y&&$()]})]})]})}const Ze=(m,h)=>(m.prices=m.prices.filter(r=>{const l=r.active,i=!h(r);return l&&i}),m),Je=(m,h)=>we(m).map(l=>Ze(l,h)).filter(l=>l.prices.length);function Qe({value:m=[],onChange:h,disabled:r=!1}){const{t:l}=K(),{products:i}=be(),{settings:_}=oe(),[p,S]=k.useState(null),[c,w]=k.useState(null),[f,A]=k.useState(!1),[D,y]=k.useState(!1),x=(i||[]).filter(s=>m.includes(s.id)),g=(i||[]).filter(s=>!m.includes(s.id)),v=s=>{if(!s.prices||s.prices.length===0)return null;if(s.prices.length===1){const n=s.prices[0];if(n){const o=ne(_.paymentMethods,n.currency_id??"")||_.baseCurrency;return Re(n,o)}}return l("admin.price.count",{count:s.prices.length})},P=s=>{if(s==="add"){de("product.create.request");return}if(s&&!m.includes(s)){const n=[...m,s];h(n),A(!1),y(!1)}},M=s=>{const n=m.filter(o=>o!==s);h(n),S(null),w(null)},B=(s,n)=>{S(s.currentTarget),w(n)},V=()=>{S(null),w(null)},$=()=>{A(!0),y(!0)},L=()=>{y(!1)},a=()=>{y(!0)},b=()=>{const s=Je(i,()=>!1);return s.length===0?[]:s.map(n=>e.jsx(R,{value:n.id,disabled:m.includes(n.id),children:e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"center",width:"100%"},children:[n.images[0]?e.jsx(Z,{src:n.images[0],alt:n.name,variant:"square",sx:{width:24,height:24}}):e.jsx(Z,{variant:"square",sx:{width:24,height:24,fontSize:"0.75rem"},children:n.name.slice(0,1)}),e.jsx(j,{sx:{flex:1,minWidth:0},children:e.jsx(I,{variant:"body2",noWrap:!0,children:n.name})}),e.jsx(I,{variant:"body2",sx:{color:"text.secondary",ml:"auto",flexShrink:0},children:m.includes(n.id)?"Added":v(n)})]})},`product-${n.id}`))};return e.jsxs(q,{spacing:2,children:[x.map(s=>e.jsxs(j,{sx:{display:"flex",alignItems:"center",gap:2,p:2,border:"1px solid",borderColor:"divider",borderRadius:1,backgroundColor:"background.paper"},children:[s.images[0]?e.jsx(Z,{src:s.images[0],alt:s.name,variant:"square",sx:{width:40,height:40}}):e.jsx(Z,{variant:"square",sx:{width:40,height:40,fontSize:"1rem"},children:s.name.slice(0,1)}),e.jsxs(j,{sx:{flex:1,minWidth:0},children:[e.jsx(I,{variant:"body1",noWrap:!0,sx:{fontWeight:"medium"},children:s.name}),v(s)&&e.jsx(I,{variant:"body2",sx:{color:"text.secondary"},children:v(s)})]}),e.jsx(ue,{size:"small",disabled:r,onClick:n=>B(n,s.id),sx:{color:"text.secondary"},children:e.jsx(Oe,{})})]},s.id)),!r&&g.length>0&&(m.length===0||f)&&e.jsx(se,{fullWidth:!0,size:"small",children:e.jsxs(ie,{value:"",open:D,onClose:L,onOpen:a,displayEmpty:!0,onChange:s=>P(s.target.value),renderValue:s=>s||e.jsx(I,{variant:"body2",sx:{color:"text.secondary"},children:l("admin.product.find")}),MenuProps:{style:{maxHeight:480}},children:[e.jsx(R,{value:"add",children:e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[e.jsx(N,{fontSize:"small",color:"primary"}),e.jsx(I,{variant:"body2",sx:{color:"primary.main",fontWeight:"medium"},children:l("admin.product.add")})]})}),b()]})}),!r&&g.length>0&&m.length>0&&!f&&e.jsx(I,{variant:"body2",component:"button",onClick:$,sx:{color:"primary.main",textDecoration:"none",cursor:"pointer",border:"none",background:"none",p:0,textAlign:"left",fontWeight:"normal","&:hover":{textDecoration:"underline"}},children:l("admin.coupon.addProduct")}),e.jsx(Ve,{anchorEl:p,open:!!p,onClose:V,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:e.jsx(R,{onClick:()=>c&&M(c),children:l("admin.product.remove")})})]})}function Ge({simple:m=!0,onSave:h,onCancel:r}){const{t:l}=K(),{settings:i}=oe(),[_,p]=De({loading:!1}),S=ge({mode:"onChange",defaultValues:{type:"service",name:"",description:"",images:[],statement_descriptor:"",unit_label:"",features:[],prices:[{...$e,currency_id:i.baseCurrency.id}],metadata:[]}}),{control:c,handleSubmit:w,reset:f,formState:{errors:A}}=S,D=me({control:c,name:"prices"}),y=g=>(p({loading:!0}),pe.post("/api/products",g).then(()=>{te.success(l("admin.product.saved"))}).catch(v=>{console.error(v),te.error(ve(v))}).finally(()=>{p({loading:!1})})),x=()=>{Object.keys(A).length>0||w(async g=>{await y(g),await f(),await h(null)})()};return e.jsx(Ee,{open:!0,disableEscapeKeyDown:!0,fullWidth:!0,maxWidth:"md",onClose:()=>r(null),showCloseButton:!1,title:l("admin.product.add"),actions:e.jsxs(q,{direction:"row",children:[e.jsx(J,{size:"small",sx:{mr:2},onClick:r,children:l("common.cancel")}),e.jsxs(J,{variant:"contained",color:"primary",size:"small",disabled:_.loading,onClick:x,children:[_.loading&&e.jsx(ze,{size:"small"})," ",l("common.save")]})]}),children:e.jsx(ye,{...S,children:e.jsxs(Pe,{children:[e.jsx(Fe,{simple:m}),D.fields.map((g,v)=>e.jsx(He,{prefix:`prices.${v}`,simple:m},g.id))]})})})}function Ne({onClose:m=()=>{},onSubmit:h=()=>{}}){const{t:r}=K(),{settings:l}=oe(),{refresh:i}=be(),[_,p]=k.useState("configuration"),[S,c]=k.useState(!1),w=ge({mode:"onChange",defaultValues:{name:"",description:"",id:"",type:"percentage",percent_off:10,amount_off:"0",currency_id:l.baseCurrency.id,currency_options:[],duration:"once",duration_in_months:void 0,applies_to_products:!1,product_ids:[],limit_date_range:!1,redeem_by:"",limit_total_number:!1,max_redemptions:void 0,use_customer_facing_codes:!1,promotion_codes:[]}}),{control:f,handleSubmit:A,watch:D,formState:{errors:y}}=w,x=me({control:f,name:"promotion_codes"});ke(n=>n.type==="product.create.request",()=>{c(!0)});const g=()=>{c(!1),i()},v=D("type"),P=D("duration"),M=D("use_customer_facing_codes"),B=D("limit_date_range"),V=D("limit_total_number"),$=D("currency_id"),L=D("currency_options")||[],a=()=>{const n=l.paymentMethods?.flatMap(o=>o.payment_currencies)||[];if(v==="fixed_amount"){const o=new Set;return $&&o.add($),L.forEach(t=>{t.currency_id&&o.add(t.currency_id)}),n.filter(t=>o.has(t.id))}return n},s=A(n=>{const o={name:n.name,duration:n.duration,metadata:{}};n.id&&(o.id=n.id),n.description&&(o.description=n.description),n.type==="percentage"?o.percent_off=n.percent_off:(o.amount_off=n.amount_off,o.currency_id=n.currency_id,n.currency_options&&n.currency_options.length>0&&(o.currency_options={},n.currency_options.forEach(t=>{t.currency_id&&t.amount_off&&(o.currency_options[t.currency_id]={amount_off:parseFloat(t.amount_off)||0})}))),n.duration==="repeating"&&(o.duration_in_months=n.duration_in_months||1),n.limit_total_number&&n.max_redemptions&&(o.max_redemptions=n.max_redemptions),n.limit_date_range&&n.redeem_by&&(o.redeem_by=Math.floor(new Date(n.redeem_by).getTime()/1e3)),n.applies_to_products&&n.product_ids&&n.product_ids.length>0&&(o.applies_to={products:n.product_ids}),n.use_customer_facing_codes&&n.promotion_codes.length>0&&(o.promotion_codes=n.promotion_codes.map(t=>{const u={active:t.active,verification_type:t.verification_type,max_redemptions:t.limit_number_redemptions?t.max_redemptions:void 0,expires_at:t.expires_at?Math.floor(new Date(t.expires_at).getTime()/1e3):void 0,restrictions:{},metadata:{}};return t.description&&(u.description=t.description),t.restrictions&&(u.restrictions=t.restrictions),t.code&&t.code.trim()&&(u.code=t.code),t.verification_type==="nft"?u.nft_config={addresses:t.nft_addresses?.filter(d=>d.trim())||[],tags:t.nft_tags?.filter(d=>d.trim())||[],trusted_issuers:t.trusted_issuers?.filter(d=>d.trim())||[],trusted_parents:t.trusted_parents?.filter(d=>d.trim())||[],min_balance:t.min_balance||1}:t.verification_type==="vc"?u.vc_config={roles:t.vc_roles?.filter(d=>d.trim())||[],trusted_issuers:t.vc_trusted_issuers?.filter(d=>d.trim())||[]}:t.verification_type==="user_restricted"&&(u.customer_dids=t.customer_dids?.filter(d=>d.trim())||[]),u})),pe.post("/api/coupons",o).then(()=>{te.success(r("admin.coupon.saved")),de("coupon.created"),w.reset(),de("drawer.submitted"),h&&h(),m&&m()}).catch(t=>{console.error(t),te.error(ve(t))})});return e.jsxs(e.Fragment,{children:[e.jsx(ye,{...w,children:e.jsxs(j,{component:"form",id:"coupon-form",onSubmit:s,children:[e.jsx(I,{variant:"body2",sx:{color:"text.secondary",mb:3},children:r("admin.coupon.description")}),e.jsx(ae,{expanded:_==="configuration",value:"configuration",card:!0,onChange:(n,o)=>{o&&p("configuration")},trigger:r("admin.coupon.couponConfiguration"),children:e.jsxs(j,{sx:{p:2,display:"flex",flexDirection:"column",gap:2},children:[e.jsx(z,{name:"name",label:r("admin.coupon.name"),required:!0,placeholder:"First purchase discount",helperText:y?.name?.message||r("admin.coupon.nameHelp"),rules:{required:r("common.required")}}),e.jsx(z,{name:"description",label:r("admin.coupon.desc"),placeholder:r("admin.coupon.desc"),multiline:!0,minRows:2,maxRows:4,slotProps:{htmlInput:{maxLength:500}}}),e.jsx(z,{name:"id",label:r("admin.coupon.idOptional"),helperText:r("admin.coupon.idHelp")}),e.jsxs(j,{children:[e.jsx(G,{required:!0,children:r("admin.coupon.type")}),e.jsx(O,{name:"type",control:f,render:({field:n})=>e.jsx(se,{fullWidth:!0,size:"small",children:e.jsxs(ie,{...n,children:[e.jsx(R,{value:"percentage",children:r("admin.coupon.percentageOff")}),e.jsx(R,{value:"fixed_amount",children:r("admin.coupon.fixedAmountOff")})]})})})]}),v==="percentage"?e.jsx(z,{name:"percent_off",label:r("admin.coupon.percentageDiscount"),type:"number",required:!0,rules:{min:0,max:100,validate:n=>!n&&n!==0?r("common.required"):Number(n)<=0||Number(n)>100?r("common.invalid"):!0},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:"%"})},htmlInput:{min:0,max:100,precision:2}}}):e.jsxs(j,{children:[e.jsx(G,{required:!0,children:r("admin.coupon.fixedAmount")}),e.jsx(Ce,{baseCurrencyFieldName:"currency_id",currencyOptionsFieldName:"currency_options",unitAmountFieldName:"amount_off"})]}),e.jsx(j,{sx:{pl:2},children:e.jsx(O,{name:"applies_to_products",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(Le,{...n,checked:n.value}),label:r("admin.coupon.applyToProducts"),slotProps:{typography:{sx:{marginLeft:"8px"}}}})})}),D("applies_to_products")&&e.jsxs(j,{children:[e.jsx(G,{children:r("admin.coupon.selectProducts")}),e.jsx(O,{name:"product_ids",control:f,render:({field:n})=>e.jsx(Qe,{value:n.value||[],onChange:n.onChange})})]}),e.jsxs(j,{children:[e.jsx(O,{name:"duration",control:f,render:({field:n})=>e.jsxs(se,{fullWidth:!0,size:"small",children:[e.jsx(G,{required:!0,children:r("admin.coupon.duration")}),e.jsxs(ie,{...n,children:[e.jsx(R,{value:"once",children:r("admin.coupon.once")}),e.jsx(R,{value:"forever",children:r("admin.coupon.forever")}),e.jsx(R,{value:"repeating",children:r("admin.coupon.repeating")})]})]})}),e.jsx(I,{variant:"body2",sx:{color:"text.secondary",mt:1},children:r("admin.coupon.durationHelp")})]}),P==="repeating"&&e.jsx(z,{name:"duration_in_months",label:r("admin.coupon.durationInMonths"),type:"number",rules:{required:"Duration in months is required",min:1},slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:r("admin.coupon.months")})}}}),e.jsx(le,{}),e.jsx(I,{variant:"h6",children:r("admin.coupon.redemptionLimits")}),e.jsx(O,{name:"limit_date_range",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.limitDateRange")})}),B&&e.jsx(z,{name:"redeem_by",label:"",type:"datetime-local",InputLabelProps:{shrink:!0}}),e.jsx(O,{name:"limit_total_number",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.limitTotalNumber")})}),V&&e.jsx(z,{name:"max_redemptions",label:r("admin.coupon.maxRedemptions"),type:"number",slotProps:{input:{endAdornment:e.jsx(Y,{position:"end",children:r("admin.coupon.times")})}}})]})}),e.jsx(ae,{expanded:_==="codes",value:"codes",card:!0,onChange:(n,o)=>{o&&p("codes")},trigger:r("admin.coupon.promotionCodes"),style:{marginTop:2},children:e.jsxs(j,{sx:{p:2,display:"flex",flexDirection:"column",gap:3},children:[e.jsx(O,{name:"use_customer_facing_codes",control:f,render:({field:n})=>e.jsx(H,{control:e.jsx(U,{...n,checked:n.value}),label:r("admin.coupon.useCustomerFacingCodes")})}),M&&e.jsxs(j,{children:[e.jsx(I,{variant:"body2",sx:{color:"text.secondary",mb:2},children:r("admin.coupon.codeHelp")}),x.fields.map((n,o)=>e.jsxs(k.Fragment,{children:[e.jsx(ae,{expanded:!0,style:{fontWeight:"bold",width:"100%"},addons:e.jsx(ue,{size:"small",onClick:()=>x.remove(o),color:"error",children:e.jsx(N,{style:{transform:"rotate(45deg)"}})}),trigger:`${r("admin.coupon.promotionCodes")} ${o+1}: ${w.watch(`promotion_codes.${o}.code`)||r("admin.coupon.newCode")}`,children:e.jsx(j,{sx:{width:"100%",p:1},children:e.jsx(Ke,{prefix:`promotion_codes.${o}`,showCodeInput:!0,showExpandedOptions:!0,availableCurrencies:a()})})}),e.jsx(le,{sx:{mt:2,mb:2}})]},n.id)),e.jsxs(J,{variant:"outlined",color:"primary",sx:{color:"text.primary",width:"100%"},onClick:()=>{const n=qe.cloneDeep(Ue);x.append(n)},children:[e.jsx(N,{fontSize:"small"})," ",r("admin.coupon.addAnotherCode")]})]}),!M&&e.jsx(I,{variant:"body2",sx:{color:"text.secondary"},children:r("admin.coupon.promotionCodesHelp")})]})})]})}),S&&e.jsx(Ge,{onCancel:()=>c(!1),onSave:g})]})}function en({open:m=!1,onClose:h=()=>{},onSubmit:r=()=>{}}){const{t:l}=K();return e.jsx(Me,{icon:e.jsx(N,{}),text:l("admin.coupon.create"),open:m,onClose:h,width:640,addons:e.jsx(J,{variant:"contained",size:"small",form:"coupon-form",type:"submit",children:l("admin.coupon.create")}),children:e.jsx(Pe,{children:e.jsx(Ne,{onClose:h,onSubmit:r})})})}const nn=T.lazy(()=>E(()=>import("./create-ke4FrPx1.js"),[])),tn=T.lazy(()=>E(()=>import("./detail-B_lpOomD.js"),[])),rn=T.lazy(()=>E(()=>import("./detail-BXTsnQny.js"),[])),sn=T.lazy(()=>E(()=>import("./create-C7GOgZZM.js"),[])),on=T.lazy(()=>E(()=>import("./detail-DCTb8R7F.js"),[])),an=T.lazy(()=>E(()=>import("./create-DNar5UQD.js"),[])),cn=T.lazy(()=>E(()=>import("./detail-DACnmls3.js"),[])),ln=T.lazy(()=>E(()=>import("./detail-Cg505nKX.js"),[])),_e=T.lazy(()=>E(()=>import("./detail-46aLUdJj.js"),[])),dn=T.lazy(()=>E(()=>import("./create-Bgv5ux17.js"),[])),fe={products:T.lazy(()=>E(()=>import("./index-YG5oc8O3.js"),[])),coupons:T.lazy(()=>E(()=>import("./index-ajD9Iotk.js"),[])),links:T.lazy(()=>E(()=>import("./index-DNGmCIRP.js"),[])),"pricing-tables":T.lazy(()=>E(()=>import("./index-CCVDDX0c.js"),[])),passports:T.lazy(()=>E(()=>import("./index-Cd_BD9TM.js"),[])),vendors:T.lazy(()=>E(()=>import("./index-BTfJ08JU.js"),[])),"exchange-rate-providers":T.lazy(()=>E(()=>import("./index-W2uZUlFs.js"),[]))};function un(){const m=Be(),{t:h}=K(),{page:r="products",id:l,subpage:i}=Xe(),[_,p]=k.useState(!1),[S,c]=k.useState(!1),{startTransition:w}=We(),f=()=>w(()=>m("/admin/products/exchange-rate-providers?create=1"));if(r.startsWith("prod_"))return e.jsx(tn,{id:r});if(r.startsWith("price_"))return e.jsx(rn,{id:r});if(r.startsWith("prctbl_"))return e.jsx(cn,{id:r});if(r.startsWith("plink_"))return e.jsx(on,{id:r});if(r==="coupons"&&i==="promotion-codes"&&l)return e.jsx(_e,{id:l});if(r==="coupons"&&l&&!i)return e.jsx(ln,{id:l});if(r==="promotion-codes"&&l)return e.jsx(_e,{id:l});const A=fe[r]||fe.products;if(r.startsWith("pv_"))return e.jsx(A,{});const D=[{label:h("admin.products"),value:"products"},{label:h("admin.coupons"),value:"coupons"},{label:h("admin.paymentLinks"),value:"links"},{label:h("admin.pricingTables"),value:"pricing-tables"},{label:h("admin.passports"),value:"passports"},{label:h("admin.vendors"),value:"vendors"},{label:h("admin.exchangeRateProvider.title"),value:"exchange-rate-providers"}];let y=null;return r==="products"?y=e.jsx(nn,{open:_,onClose:()=>p(!1)}):r==="links"?y=e.jsx(sn,{}):r==="pricing-tables"?y=e.jsx(an,{}):r==="coupons"?y=e.jsx(en,{open:S,onClose:()=>c(!1)}):r==="vendors"?y=e.jsx(dn,{open:_,onClose:()=>p(!1)}):r==="exchange-rate-providers"&&(y=e.jsx(J,{variant:"contained",startIcon:e.jsx(N,{}),onClick:f,size:"small",children:h("admin.exchangeRateProvider.create.primaryAction")})),e.jsxs(e.Fragment,{children:[e.jsxs(q,{direction:"row",spacing:1,sx:{alignItems:"flex-start",justifyContent:"end",flexWrap:"wrap"},children:[e.jsx(Ie,{tabs:D,current:r,onChange:x=>w(()=>m(`/admin/products/${x}`)),scrollButtons:"auto",variant:"scrollable",sx:{flex:"1 0 auto",maxWidth:"100%",".MuiTab-root":{color:"text.lighter"},".MuiTabs-indicator":{display:"none"},".Mui-selected":{fontSize:24,color:"text.primary"},".MuiTabs-hideScrollbar":{border:"none !important"},".MuiTouchRipple-root":{display:"none"}}}),e.jsx(j,{children:y})]}),k.isValidElement(A)?A:e.jsx(A,{})]})}const bn=Object.freeze(Object.defineProperty({__proto__:null,default:un},Symbol.toStringTag,{value:"Module"}));export{Ge as C,Ue as D,Ke as P,bn as i};