@acedatacloud/nexior 3.278.8 → 3.278.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{ApiCodeButton-BQo_4udE.js → ApiCodeButton-fiGmi1qu.js} +1 -1
- package/dist/assets/{AskUserQuestionCard-DPzo4vFE.js → AskUserQuestionCard-DiOwxeOm.js} +1 -1
- package/dist/assets/{Auth-BgiVsk8w.js → Auth-BStXEwCw.js} +1 -1
- package/dist/assets/{Bare-C-KAIO7i.js → Bare-Dw6EnvHm.js} +1 -1
- package/dist/assets/{BotPlaceholder-S_2rdIXu.js → BotPlaceholder-DhxmfW9u.js} +1 -1
- package/dist/assets/{BottomFooter-CQSbPPD6.js → BottomFooter-DnrRI7LR.js} +1 -1
- package/dist/assets/{Callback-Chmact_e.js → Callback-5Umcw6Tz.js} +1 -1
- package/dist/assets/{Console-BlFq3cac.js → Console-DGL5yKDC.js} +1 -1
- package/dist/assets/{Consumption-ROdyTlzZ.js → Consumption-BR-vJ_zs.js} +1 -1
- package/dist/assets/{Conversation-DXF4smpc.js → Conversation-Ch-lS2k2.js} +2 -2
- package/dist/assets/{CopyToClipboard-C3QEb9UR.js → CopyToClipboard-CF3D_XDP.js} +1 -1
- package/dist/assets/{Detail-DSreYbUH.css → Detail-CxdHh9Lx.css} +1 -1
- package/dist/assets/Detail-Da8jmBFW.js +2 -0
- package/dist/assets/Extra-CezJxw96.js +1 -0
- package/dist/assets/{Extra-CV-flHCt.css → Extra-DkhhIhJ-.css} +1 -1
- package/dist/assets/{FilePreview-B1NSX03A.js → FilePreview-S7Y8117j.js} +1 -1
- package/dist/assets/{Hailuo-BpujPIT_.js → Hailuo-oTZUG_YR.js} +1 -1
- package/dist/assets/{History-CtGK4UXT.js → History-KnQ7zUqn.js} +1 -1
- package/dist/assets/{ImagePreview-DQ-JKX9Y.js → ImagePreview-DBpc1Y4c.js} +1 -1
- package/dist/assets/{ImageWrapper-Cxgu2GRn.js → ImageWrapper-C_7JmHBT.js} +1 -1
- package/dist/assets/{Index-DIEPKmcd.js → Index-B2xemiC4.js} +1 -1
- package/dist/assets/{Index-CzGVOhQV.js → Index-B4AWjHvr.js} +1 -1
- package/dist/assets/{Index-8p9ssK6T.js → Index-BNyOrgGd.js} +1 -1
- package/dist/assets/{Index-DC3t8Esa.js → Index-BRzAq_x-.js} +1 -1
- package/dist/assets/{Index-Di-eO9AQ.js → Index-Bf45aUKq.js} +1 -1
- package/dist/assets/{Index-fsYjYbMv.js → Index-Bf8aWc_9.js} +1 -1
- package/dist/assets/Index-Bh_vJ5cW.js +1 -0
- package/dist/assets/{Index-B5g_KMFW.js → Index-Bj3DvohR.js} +1 -1
- package/dist/assets/Index-C8E_Nnso.js +1 -0
- package/dist/assets/Index-CBequ2rX.js +1 -0
- package/dist/assets/Index-CdAN0R19.js +1 -0
- package/dist/assets/{Index-FSOdrb6z.js → Index-CqyyC4J4.js} +1 -1
- package/dist/assets/{Index-Dv6QH5PC.css → Index-D3mLso2o.css} +1 -1
- package/dist/assets/Index-D7K9C6LS.js +1 -0
- package/dist/assets/{Index-C-qP44CK.js → Index-D7NubzT5.js} +1 -1
- package/dist/assets/{Index-BBM2wCh0.js → Index-D8QG5z09.js} +1 -1
- package/dist/assets/{Index-Dg45lJC6.js → Index-DMbZyouF.js} +1 -1
- package/dist/assets/{Index-D0GqcqqI.js → Index-DYdKTux8.js} +1 -1
- package/dist/assets/Index-DdQFjIyG.js +1 -0
- package/dist/assets/{Index-B9BHoWpc.js → Index-Dyra9ELV.js} +1 -1
- package/dist/assets/Index-FLfx5sEo.js +1 -0
- package/dist/assets/{Index-wy_UlRY_.js → Index-FgL2c8yR.js} +1 -1
- package/dist/assets/Index-U0XAzHnv.js +1 -0
- package/dist/assets/{Index-ltcyh5hU.js → Index-VVF4ll7o.js} +1 -1
- package/dist/assets/{Index-B7G39CPj.js → Index-ahXVwmXf.js} +2 -2
- package/dist/assets/{Index-DBu-bhtO.js → Index-flaGhrlr.js} +1 -1
- package/dist/assets/{Index-CThzFndD.js → Index-qi9p5tkr.js} +1 -1
- package/dist/assets/{Invitees-BbFJ42mV.js → Invitees-5-HoIDNh.js} +1 -1
- package/dist/assets/{List-C1O7bes5.js → List-270XCjh4.js} +1 -1
- package/dist/assets/List-DCXxqCdH.js +1 -0
- package/dist/assets/List-DWTjLJnX.js +1 -0
- package/dist/assets/{Main-CtOOKcC_.js → Main-DcrJSPiU.js} +1 -1
- package/dist/assets/Model-BnNa6Ejg.js +1 -0
- package/dist/assets/{Navigator-B8piOCvb.js → Navigator-BT72r5-S.js} +2 -2
- package/dist/assets/{NoTasks-D4_5MJEF.js → NoTasks-BgpB38go.js} +1 -1
- package/dist/assets/{NotFound-CtyL_RD8.js → NotFound-DI0WTM0o.js} +1 -1
- package/dist/assets/{Pagination-Bjfu2oYQ.js → Pagination-q5Qrsqvv.js} +1 -1
- package/dist/assets/Pay-CacvwpeV.js +1 -0
- package/dist/assets/{Player-ByilKkjK.js → Player-CiVVpV_R.js} +1 -1
- package/dist/assets/{Seedance-B7_9ANjg.js → Seedance-Bfkm3zk0.js} +1 -1
- package/dist/assets/{Status-DVwnw6w-.js → Status-C6rAYiXq.js} +1 -1
- package/dist/assets/{Subscribe-D3TcdhAl.js → Subscribe-B1I06xyZ.js} +1 -1
- package/dist/assets/{TabSwitcher-BSGoqobQ.js → TabSwitcher-CWKS1vll.js} +1 -1
- package/dist/assets/{Tts-qBBIMN6S.js → Tts-CFMm-qda.js} +1 -1
- package/dist/assets/{VideoPlayer-CbdIBJlV.js → VideoPlayer-DyHu8Aqk.js} +1 -1
- package/dist/assets/{avatar-VaZQ6cmM.js → avatar-DYKoI-qg.js} +1 -1
- package/dist/assets/{basic-to-hiY3d.js → basic-TQAfsjJ8.js} +1 -1
- package/dist/assets/{chat-7ZyUGI4R.js → chat-Cjw1kdBE.js} +1 -1
- package/dist/assets/codingBridge-CuoYoXR3.js +2 -0
- package/dist/assets/{codingBridgeNotify-Bm82bFHu.js → codingBridgeNotify-BTSvNvJF.js} +2 -2
- package/dist/assets/{collapse-CyeVqzFR.js → collapse-DjCo_1UV.js} +1 -1
- package/dist/assets/{constants-CwLEZ_AF.js → constants-Doj9A7vw.js} +1 -1
- package/dist/assets/{createTaskActions-CU-Q65M2.js → createTaskActions-CZwpPZA6.js} +1 -1
- package/dist/assets/{date-picker-Da3Oc5xT.js → date-picker-p_3r2gZz.js} +1 -1
- package/dist/assets/{dropdown-CLah_iIA.js → dropdown-6nhKllbG.js} +1 -1
- package/dist/assets/{esm-98Prvw4_.js → esm-B8rbFNky.js} +2 -2
- package/dist/assets/{esm-BeadKULw.js → esm-BPAm2ZU8.js} +1 -1
- package/dist/assets/{esm-CNv-yCpc.js → esm-BeqA3YBX.js} +3 -3
- package/dist/assets/esm-CJ7E8o6L.js +1 -0
- package/dist/assets/{esm-DJf1u1xl.js → esm-CMz4ztSO.js} +2 -2
- package/dist/assets/{esm-Ds7Sxi27.js → esm-QlzFl90K.js} +1 -1
- package/dist/assets/{esm-DL836-7X.js → esm-sduXTE0q.js} +1 -1
- package/dist/assets/fish-CHdmnbnJ.js +1 -0
- package/dist/assets/{flux-fHoOLwHl.js → flux-FLOfJmjc.js} +1 -1
- package/dist/assets/{grokvideo-DXtR4vF-.js → grokvideo-DRBLY_CE.js} +1 -1
- package/dist/assets/{hailuo-DgTSfO8u.js → hailuo-BVgKKzn3.js} +1 -1
- package/dist/assets/{veo-Br4CCKzZ.js → headshots-BmMUFy7g.js} +1 -1
- package/dist/assets/image-D8-aqKyG.js +1 -0
- package/dist/assets/{index-CpdVsIF6.js → index-De1puGQZ.js} +15 -15
- package/dist/assets/{index.browser.esm-9Ndx86vl.js → index.browser.esm-ED6MC0dI.js} +1 -1
- package/dist/assets/{index.es-CDdR7p2P.js → index.es-CdmaWL6t.js} +1 -1
- package/dist/assets/{input-number-XUHPu2j7.js → input-number-CfuESgWH.js} +1 -1
- package/dist/assets/{kling-BbQNp2Ku.js → kling-BhO4SZCW.js} +1 -1
- package/dist/assets/{luma-DJ_K9gTL.js → luma-CINBiDmj.js} +1 -1
- package/dist/assets/{midjourney-CubbOZb9.js → midjourney-BpKn09Ep.js} +1 -1
- package/dist/assets/{nanobanana-BsUFLYNI.js → nanobanana-DNEzCjP_.js} +1 -1
- package/dist/assets/{openaiimage-16H6Nty7.js → openaiimage-4Ea3045-.js} +1 -1
- package/dist/assets/order-951WMlMO.js +1 -0
- package/dist/assets/order-AYr_5JAl.js +1 -0
- package/dist/assets/order-B0EBRnrR.js +1 -0
- package/dist/assets/order-B9nvhcba.js +1 -0
- package/dist/assets/order-BP-d22ki.js +1 -0
- package/dist/assets/order-BtW-1BR1.js +1 -0
- package/dist/assets/order-CFWVNd0G.js +1 -0
- package/dist/assets/order-CKw7aUKA.js +1 -0
- package/dist/assets/order-D-2vCSQK.js +1 -0
- package/dist/assets/order-DO5yhSIl.js +1 -0
- package/dist/assets/order-DPFt7jqR.js +1 -0
- package/dist/assets/order-DUWP5NLv.js +1 -0
- package/dist/assets/order-Dra6-7qr.js +1 -0
- package/dist/assets/order-KZfbIS6C.js +1 -0
- package/dist/assets/order-N0_f7Z7x.js +1 -0
- package/dist/assets/order-TwU3_XwG.js +1 -0
- package/dist/assets/order-aaJ7aU0W.js +1 -0
- package/dist/assets/order-fBvkxOIl.js +1 -0
- package/dist/assets/{pagination-BA3umXxP.js → pagination-BVJMN1HT.js} +1 -1
- package/dist/assets/{pika-CwKMHVNQ.js → pika-bmZhNART.js} +1 -1
- package/dist/assets/{pixverse-BlMnSJ4q.js → pixverse-DWiTO6uS.js} +1 -1
- package/dist/assets/{popover-Ukd7CnBu.js → popover-BXB2P2cK.js} +1 -1
- package/dist/assets/{producer-y6k3FBHr.js → producer-Sa-Prn3s.js} +1 -1
- package/dist/assets/{qrart-CH7WB5sD.js → qrart-Csu-lXnW.js} +1 -1
- package/dist/assets/{row-a-LM4Swm.js → row-Ccl653J6.js} +1 -1
- package/dist/assets/{seedance-DVYKX0nA.js → seedance-CtMB-JU0.js} +1 -1
- package/dist/assets/{seedream-A0txkcjo.js → seedream-td2TO2fB.js} +1 -1
- package/dist/assets/{select-DytAga_S.js → select-CPnJWYIb.js} +1 -1
- package/dist/assets/{serp-BZVjzT7P.js → serp-BZ7ULtg8.js} +1 -1
- package/dist/assets/{slider-xjdU45pG.js → slider-BQ4LUxQR.js} +1 -1
- package/dist/assets/{solana-wallets-DU4mK46H.js → solana-wallets-CuUuKJOf.js} +2 -2
- package/dist/assets/{solana-wallets-vue-Dih2SspA.js → solana-wallets-vue-Dw6yIewl.js} +1 -1
- package/dist/assets/{sora-CQ8xqjuB.js → sora-DqJrlRWK.js} +1 -1
- package/dist/assets/{suno-CvcnIjVw.js → suno-Cg3ISs4p.js} +1 -1
- package/dist/assets/{switch-CDyGh37G.js → switch-DFIgN0tr.js} +1 -1
- package/dist/assets/{tabs--BgsET1r.js → tabs-GPvlIiKc.js} +1 -1
- package/dist/assets/{upload-DAbs1_7g.js → upload-BOWpUG79.js} +1 -1
- package/dist/assets/{headshots-D4mDEMNJ.js → veo-CeeFShZz.js} +1 -1
- package/dist/assets/{wan-DiKI2LyP.js → wan-DK0ljHB3.js} +1 -1
- package/dist/assets/{web-BoqlGY10.js → web-4EBu-kmt.js} +1 -1
- package/dist/assets/{web-DEiY_jHJ.js → web-BCL6k8kH.js} +1 -1
- package/dist/assets/{web-Fv-syrYK.js → web-CEA-SLiU.js} +1 -1
- package/dist/assets/{web-CTFoDsSX.js → web-C_KZ3P1O.js} +1 -1
- package/dist/assets/{web-Ltd_62LC.js → web-DxE9ZgCR.js} +1 -1
- package/dist/assets/webextrator-CQk7-zmV.js +1 -0
- package/dist/index.html +2 -2
- package/package.json +2 -1
- package/dist/assets/Detail-CnaZxcbt.js +0 -2
- package/dist/assets/Extra-EU8GkMvS.js +0 -1
- package/dist/assets/Index-43IQ1vuc.js +0 -1
- package/dist/assets/Index-BTsgwhPo.js +0 -1
- package/dist/assets/Index-C1WUTC7e.js +0 -1
- package/dist/assets/Index-Cje5T18N.js +0 -1
- package/dist/assets/Index-DGdrAVKj.js +0 -1
- package/dist/assets/Index-WZ-C3qIz.js +0 -1
- package/dist/assets/Index-WiTXfbSY.js +0 -1
- package/dist/assets/Index-hcgw9UZU.js +0 -1
- package/dist/assets/List-C3IhhJY6.js +0 -1
- package/dist/assets/List-O8PZaNTB.js +0 -1
- package/dist/assets/Model-B3PAOst1.js +0 -1
- package/dist/assets/Pay-C4Wc63FL.js +0 -1
- package/dist/assets/codingBridge-BBuGFLSH.js +0 -2
- package/dist/assets/esm-ClyIhE3c.js +0 -1
- package/dist/assets/fish-B2EIxI1z.js +0 -1
- package/dist/assets/image-DfwS7MgU.js +0 -1
- package/dist/assets/order-96R8hXMB.js +0 -1
- package/dist/assets/order-AikO0nN3.js +0 -1
- package/dist/assets/order-B7hChY7H.js +0 -1
- package/dist/assets/order-BKSdEomZ.js +0 -1
- package/dist/assets/order-BbUK3tUw.js +0 -1
- package/dist/assets/order-BeBjQZu1.js +0 -1
- package/dist/assets/order-BvFvNV0M.js +0 -1
- package/dist/assets/order-BzG_nMU2.js +0 -1
- package/dist/assets/order-C3uw6Joi.js +0 -1
- package/dist/assets/order-C6f_TSrt.js +0 -1
- package/dist/assets/order-CTGolp9r.js +0 -1
- package/dist/assets/order-CzVaaAtr.js +0 -1
- package/dist/assets/order-DFTQvCIo.js +0 -1
- package/dist/assets/order-DNN4JAqd.js +0 -1
- package/dist/assets/order-DUW30zpd.js +0 -1
- package/dist/assets/order-DbK_ZfGe.js +0 -1
- package/dist/assets/order-DcrfRv-u.js +0 -1
- package/dist/assets/order-Z-95_QUw.js +0 -1
- package/dist/assets/webextrator-C7ouJHUS.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,a as u,c as d,dt as f,i as ee,k as p,n as m,nt as h,o as g,r as _,s as v,t as y,tt as b,ut as x,v as S}from"./vendor-chart-BJCvKk8-.js";import{t as C}from"./button-DfsQodL-.js";import{r as w,t as T}from"./select-DytAga_S.js";import{n as E,t as D}from"./table-lRQt4LGt.js";import{n as O,t as k}from"./tabs--BgsET1r.js";import{t as A}from"./date-picker-Da3Oc5xT.js";import{t as j}from"./card-DjyfNde2.js";import{n as M,r as N}from"./radio-BmBXySlN.js";import{n as P,t as F}from"./row-a-LM4Swm.js";import{t as I}from"./Pagination-Bjfu2oYQ.js";import{n as L,t as R}from"./skeleton-C4sltx62.js";import{An as z,E as B,En as V,Mr as H,Pr as U,Tn as W,_r as G,lr as K,ur as q,wn as J}from"./index-CpdVsIF6.js";import{t as Y}from"./index.es-CDdR7p2P.js";import{t as X}from"./CopyToClipboard-C3QEb9UR.js";ee.register(_,u,m,v,d,g);var Z=r({name:`ConsoleUsageList`,components:{Pagination:I,ElTag:U,ElDatePicker:A,ElTable:D,ElSelect:w,ElOption:T,CopyToClipboard:X,ElRow:F,ElCol:P,ElTableColumn:E,ElCard:j,ElRadioButton:M,ElRadioGroup:N,ElSkeleton:R,ElSkeletonItem:L,ElDialog:H,ElTabs:O,ElTabPane:k,ElButton:C,FontAwesomeIcon:Y,BarChart:y},data(){return{applicationIds:this.$route.query.application_id?.toString()?this.$route.query.application_id?.toString().split(`,`):[],apiIds:this.$route.query.api_id?.toString()?this.$route.query.api_id?.toString().split(`,`):[],applications:[],apis:[],apisLoading:!1,credentialType:K,serviceType:q,apiUsages:[],proxyUsages:[],createdAtRange:(()=>{let e=this.$route.query.created_at_to?.toString(),t=this.$route.query.created_at_from?.toString();if(t&&e)return[new Date(t),new Date(e)];let n=new Date,r=new Date;return r.setDate(1),r.setHours(0,0,0,0),[r,n]})(),shortcuts:[{text:this.$t(`usage.shortcuts.thisMonth`),value:()=>{let e=new Date,t=new Date;return t.setDate(1),t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last1Day`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),[t,e]}},{text:this.$t(`usage.shortcuts.last3Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}],type:this.$route.query.type?.toString()||q.API,loading:!1,total:void 0,limit:15,totalUsed:0,barChartLabels:[],barChartSeries:[],aggLoading:!1,detailDialogVisible:!1,detailRow:null,detailActiveTab:`request`,detailLoading:!1,exporting:!1,statusCodeFilter:this.$route.query.status_code?.toString()||``,statusCodeOptions:[],statusCodeOptionsLoading:!1}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},totalUsedString(){return`${(this.totalUsed||0).toFixed(2)}`},barChartData(){return{labels:this.barChartLabels,datasets:this.barChartSeries.map(e=>({label:e.label,data:e.data,backgroundColor:e.color}))}},barChartOptions(){return{responsive:!0,plugins:{legend:{position:`top`,onClick:(e,t,n)=>{let r=n?.chart;if(!r||t?.datasetIndex===void 0)return;let i=t.datasetIndex,a=r.data?.datasets||[];a.some((e,t)=>t!==i&&r.isDatasetVisible(t))?a.forEach((e,t)=>r.setDatasetVisibility(t,t===i)):a.forEach((e,t)=>r.setDatasetVisibility(t,!0)),r.update()}},title:{display:!0,text:this.$t(`usage.title.usageTrend`)}},scales:{x:{stacked:!0},y:{stacked:!0,beginAtZero:!0}}}}},watch:{page:{handler(){this.onFetchUsages()}},type:{handler(){this.applicationIds=[],this.apiIds=[],this.onApplicationsChange(this.applicationIds),this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()}}},mounted(){this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},methods:{async onFetchUsages(){this.type===q.API?this.onFetchApiUsages():this.type===q.Proxy&&this.onFetchProxyUsages()},async onApiChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onApisChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e&&e.length?e.join(`,`):``}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onTimeRangeChanged(){console.log(`onTimeRangeChanged`,this.createdAtRange),await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,created_at_from:this.createdAtRange?this.$dayjs.format(this.createdAtRange[0].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``,created_at_to:this.createdAtRange?this.$dayjs.format(this.createdAtRange[1].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``}}),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},async onApplicationChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e}}),this.onFetchUsages(),this.onFetchAggregate()},async onApplicationsChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e&&e.length?e.join(`,`):``}}),this.onFetchUsages(),this.onFetchAggregate()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`},getDeductedAmount(e){if(e?.deducted_amount===void 0||e?.deducted_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.deducted_amount?.toFixed(6)} ${t}`},getOriginalAmount(e){if(e?.original_amount===void 0||e?.original_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.original_amount?.toFixed(6)} ${t}`},onStatusCodeChange(e){let t={...this.$route.query},n=(e||``).trim();n?t.status_code=n:delete t.status_code,delete t.status_code_filter,this.$router.push({name:this.$route.name?.toString(),query:t}),this.onFetchUsages(),this.onFetchAggregate()},async onFetchStatusCodeOptions(){this.statusCodeOptionsLoading=!0;try{let{data:e}=await W.getStatusCodes({user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}});this.statusCodeOptions=(e?.items||[]).slice().sort((e,t)=>e-t)}catch{this.statusCodeOptions=[]}finally{this.statusCodeOptionsLoading=!1}},formatElapsed(e){return e==null||Number.isNaN(e)?`-`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`},getSimpleMetadata(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))n===`request`||n===`response`||typeof r==`object`&&r||(t[n]=r);return t},onShowDetail(e){this.detailRow={...e,metadata:void 0},this.detailActiveTab=`request`,this.detailDialogVisible=!0,this.detailLoading=!0,e.id&&W.get(e.id).then(e=>{this.detailRow=e.data}).finally(()=>{this.detailLoading=!1})},formatJson(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}},onFetchApplications(){z.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,type:G.USAGE}).then(({data:e})=>{this.applications=e.items.filter(e=>e?.service?.type===this.type)}).catch(()=>{})},onFetchApis(){this.apisLoading=!0,J.getAll({limit:100,offset:0,ordering:`-created_at`}).then(({data:e})=>{this.apis=e.items}).catch(()=>{}).finally(()=>{this.apisLoading=!1})},onFetchApiUsages(){console.log(`onFetchApiUsages`,this.createdAtRange),this.loading=!0,W.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{this.apiUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onFetchProxyUsages(){this.loading=!0,V.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{}}).then(({data:e})=>{this.proxyUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onExport(){this.exporting=!0,W.exportCsv({user_id:this.$store.getters.user.id,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`usages.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})},async onFetchAggregate(){if(this.aggLoading=!0,this.type!==this.serviceType.API)return;let e={user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}};try{let{data:t}=await W.getAggregate(e);this.totalUsed=t.total||0;let n=Array.from(new Set((t.items||[]).map(e=>e.date))).sort(),r=Array.from(new Set((t.items||[]).map(e=>e.api_id))),i=e=>`hsl(${e*57%360}, 70%, 60%)`,a=r.map((e,r)=>{let a=t.apis?.[e]?.title||e,o={};return(t.items||[]).filter(t=>t.api_id===e).forEach(e=>{o[e.date]=e.amount||0}),{key:e,label:a,data:n.map(e=>o[e]||0),color:i(r)}});this.barChartLabels=n,this.barChartSeries=a}finally{this.aggLoading=!1}}}}),Q={class:`text-[26px] font-bold mb-5 text-[var(--el-text-color-primary)]`},$={class:`inline-block w-9`},te={class:`inline-block`},ne={key:1,class:`summary-card`},re={class:`icon-wrapper`},ie={class:`text-left`},ae={class:`description`},oe={class:`value`},se={class:`chart-wrapper`},ce={key:0},le={key:1},ue={class:`flex flex-wrap gap-2`},de={class:`key`},fe={key:0,class:`cursor-pointer`},pe={class:`created-at`},me={class:`created-at`},he={key:1,class:`detail-json`},ge={key:2,class:`text-gray-400`},_e={key:1,class:`detail-json`},ve={key:2,class:`text-gray-400`},ye={class:`float-right`};function be(r,u,d,ee,m,g){let _=b(`el-col`),v=b(`el-row`),y=b(`el-radio-button`),C=b(`el-radio-group`),w=b(`el-option`),T=b(`el-select`),E=b(`el-skeleton-item`),D=b(`el-skeleton`),O=b(`el-date-picker`),k=b(`font-awesome-icon`),A=b(`el-button`),j=b(`el-card`),M=b(`bar-chart`),N=b(`el-table-column`),P=b(`el-tag`),F=b(`copy-to-clipboard`),I=b(`el-table`),L=b(`el-tab-pane`),R=b(`el-tabs`),z=b(`el-dialog`),B=b(`pagination`),V=h(`loading`);return l(),a(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[n(`h2`,Q,c(r.$t(`common.title.allUsages`)),1)]),_:1})]),_:1}),o(v,null,{default:x(()=>[o(_,{md:4,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,null,c(r.$t(`application.field.type`)),1),o(C,{modelValue:r.type,"onUpdate:modelValue":u[0]||=e=>r.type=e},{default:x(()=>[o(y,{value:r.serviceType.API,label:r.$t(`application.field.api`)},null,8,[`value`,`label`]),o(y,{value:r.serviceType.Proxy,label:r.$t(`application.field.proxy`)},null,8,[`value`,`label`])]),_:1},8,[`modelValue`])]),_:1}),f(o(_,{md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,$,c(r.$t(`usage.field.application`)),1),o(T,{modelValue:r.applicationIds,"onUpdate:modelValue":u[1]||=e=>r.applicationIds=e,placeholder:r.$t(`usage.field.application`),clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApplicationsChange},{default:x(()=>[(l(!0),t(s,null,e(r.applications,e=>(l(),a(w,{key:e.id,label:e.service?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`])]),_:1},512),[[S,!1]]),r.type===r.serviceType.API?(l(),a(_,{key:0,md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,te,c(r.$t(`usage.field.api`)),1),r.apisLoading?(l(),a(D,{key:0,animated:``,class:`w-full`},{template:x(()=>[o(E,{variant:`rect`,style:{height:`32px`,"border-radius":`4px`}})]),_:1})):(l(),a(T,{key:1,modelValue:r.apiIds,"onUpdate:modelValue":u[2]||=e=>r.apiIds=e,placeholder:r.$t(`usage.field.api`),clearable:``,filterable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApisChange},{default:x(()=>[(l(!0),t(s,null,e(r.apis,e=>(l(),a(w,{key:e?.id,label:e?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]))]),_:1})):p(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:1,md:8,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(O,{modelValue:r.createdAtRange,"onUpdate:modelValue":u[3]||=e=>r.createdAtRange=e,type:`datetimerange`,class:`w-full`,shortcuts:r.shortcuts,"range-separator":r.$t(`usage.placeholder.to`),"start-placeholder":r.$t(`usage.placeholder.startDate`),"end-placeholder":r.$t(`usage.placeholder.endDate`),onChange:r.onTimeRangeChanged},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`])]),_:1})):p(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:2,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(T,{modelValue:r.statusCodeFilter,"onUpdate:modelValue":u[4]||=e=>r.statusCodeFilter=e,placeholder:r.$t(`usage.option.statusCodeAll`),class:`w-full`,clearable:``,filterable:``,"allow-create":``,"default-first-option":``,loading:r.statusCodeOptionsLoading,onChange:r.onStatusCodeChange},{default:x(()=>[(l(!0),t(s,null,e(r.statusCodeOptions,e=>(l(),a(w,{key:e,label:String(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`onChange`])]),_:1})):p(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:3,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center justify-end`},{default:x(()=>[o(A,{type:`primary`,plain:``,loading:r.exporting,class:`w-full whitespace-nowrap`,onClick:r.onExport},{default:x(()=>[o(k,{icon:`fa-solid fa-file-export`,class:`mr-1`}),i(` `+c(r.$t(`usage.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),_:1})):p(``,!0)]),_:1}),o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[r.type===r.serviceType.API?(l(),a(v,{key:0,gutter:24,class:`mb-5`},{default:x(()=>[o(_,{md:6,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[r.aggLoading?(l(),a(D,{key:0})):(l(),t(`div`,ne,[n(`div`,re,[o(k,{icon:`fa-solid fa-cubes`,class:`icon`})]),n(`div`,ie,[n(`p`,ae,c(r.$t(`usage.title.totalUsed`)),1),n(`p`,oe,c(r.totalUsedString),1)])]))]),_:1})]),_:1}),o(_,{md:18,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[n(`div`,se,[r.aggLoading?(l(),a(D,{key:0,class:`w-full`})):(l(),a(M,{key:1,data:r.barChartData,options:r.barChartOptions,class:`chart`},null,8,[`data`,`options`]))])]),_:1})]),_:1})]),_:1})):p(``,!0),o(j,{shadow:`hover`},{default:x(()=>[r.type===r.serviceType.API?f((l(),a(I,{key:0,data:r.apiUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.api?.title),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.statusCode`),width:`120px`},{default:x(e=>[n(`span`,null,c(e.row.status_code),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.elapsed`),width:`120px`},{default:x(e=>[n(`span`,null,c(r.formatElapsed(e.row.elapsed)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[r.getDeductedAmount(e.row)===r.getOriginalAmount(e.row)?(l(),t(`div`,ce,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)])):(l(),t(`div`,le,[u[7]||=n(`p`,null,null,-1),n(`p`,null,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),n(`p`,null,[n(`del`,null,c(r.getOriginalAmount(e.row)),1)])]))]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`260px`,"class-name":`text-center`},{default:x(o=>[n(`div`,ue,[o.row.original_amount>o.row.deducted_amount&&o.row.original_amount>0?(l(),a(P,{key:0,type:`success`,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(((o.row.original_amount-o.row.deducted_amount)*100/o.row.original_amount).toFixed(0)+`% OFF`),1)]),_:2},1024)):p(``,!0),(l(!0),t(s,null,e(r.getSimpleMetadata(o.row.metadata),(e,t)=>(l(),a(P,{key:t,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))])]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.button.viewDetail`),width:`120px`,"class-name":`text-center`},{default:x(e=>[e.row.id?(l(),a(A,{key:0,type:`primary`,plain:``,size:`small`,class:`!px-2 !py-1 !text-xs !h-auto !min-h-0`,onClick:t=>r.onShowDetail(e.row)},{default:x(()=>[i(c(r.$t(`usage.button.viewDetail`)),1)]),_:1},8,[`onClick`])):p(``,!0)]),_:1},8,[`label`]),o(N,{prop:`trace_id`,label:r.$t(`application.field.traceId`),width:`200px`,"class-name":`text-center`},{default:x(e=>[n(`span`,de,c(e.row.trace_id),1),e.row.trace_id?(l(),t(`span`,fe,[o(F,{content:e.row.trace_id,class:`inline-block`},null,8,[`content`])])):p(``,!0)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,pe,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):p(``,!0),r.type===r.serviceType.Proxy?f((l(),a(I,{key:1,data:r.proxyUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.service?.title),1)]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.remainingAmount`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1),n(`span`,null,c(r.getOriginalAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`200px`,"class-name":`text-center`},{default:x(n=>[(l(!0),t(s,null,e(n.row.metadata,(e,t)=>(l(),a(P,{key:t,class:`mb-2`},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,me,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):p(``,!0)]),_:1})]),_:1})]),_:1}),o(z,{modelValue:r.detailDialogVisible,"onUpdate:modelValue":u[6]||=e=>r.detailDialogVisible=e,title:r.$t(`usage.dialog.detailTitle`),width:`70%`,top:`5vh`,"destroy-on-close":``},{default:x(()=>[o(R,{modelValue:r.detailActiveTab,"onUpdate:modelValue":u[5]||=e=>r.detailActiveTab=e},{default:x(()=>[o(L,{label:r.$t(`usage.dialog.request`),name:`request`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.request?(l(),t(`pre`,he,c(r.formatJson(r.detailRow.metadata.request)),1)):(l(),t(`p`,ge,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`]),o(L,{label:r.$t(`usage.dialog.response`),name:`response`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.response?(l(),t(`pre`,_e,c(r.formatJson(r.detailRow.metadata.response)),1)):(l(),t(`p`,ve,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`]),o(v,null,{default:x(()=>[o(_,{span:10,offset:14},{default:x(()=>[n(`div`,ye,[o(B,{"current-page":r.page,"page-size":r.limit,total:r.total,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var xe=B(Z,[[`render`,be],[`__scopeId`,`data-v-38f1845c`]]);export{xe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as ee,Vt as s,Wt as c,Z as l,b as u,k as d,tt as f,ut as p}from"./vendor-chart-BJCvKk8-.js";import{t as m}from"./button-DfsQodL-.js";import{t as h}from"./upload-DAbs1_7g.js";import{t as g}from"./image-DfwS7MgU.js";import{t as _}from"./alert-OvnfgMB-.js";import{n as v,r as y}from"./radio-BmBXySlN.js";import{t as b}from"./switch-CDyGh37G.js";import{t as x}from"./vendor-axios-Ck2ffRoh.js";import"./constants-CwLEZ_AF.js";import{E as S,Ir as C,J as w,Sr as T,kr as E,kt as te,qt as D}from"./index-CpdVsIF6.js";import{t as O}from"./index.es-CDdR7p2P.js";import{t as k}from"./CopyToClipboard-C3QEb9UR.js";import{t as A}from"./Hailuo-BpujPIT_.js";import{t as j}from"./BotPlaceholder-S_2rdIXu.js";import{t as M}from"./TabSwitcher-BSGoqobQ.js";var N=4,P=90,F=r({name:`FishRecorder`,components:{ElButton:m,FontAwesomeIcon:O},emits:[`done`,`cancel`,`update:script`],data(){return{state:`idle`,scriptIndex:0,seconds:0,timerId:0,maxTimerId:0,mediaRecorder:null,stream:null,chunks:[],recordedBlob:null,recordedUrl:``,uploading:!1}},computed:{formattedTime(){let e=Math.floor(this.seconds/60),t=this.seconds%60;return`${e.toString().padStart(2,`0`)}:${t.toString().padStart(2,`0`)}`},currentScript(){let e=`fish.script.passage${this.scriptIndex%N+1}`;return this.$t(e)}},beforeUnmount(){this.cleanup()},mounted(){this.$emit(`update:script`,this.currentScript)},methods:{nextScript(){this.scriptIndex=(this.scriptIndex+1)%N,this.$emit(`update:script`,this.currentScript)},async startRecord(){if(!navigator.mediaDevices?.getUserMedia||typeof MediaRecorder>`u`){E.error(this.$t(`fish.message.recorderUnsupported`));return}try{this.stream=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){let t=e?.name===`NotAllowedError`||e?.name===`PermissionDeniedError`;E.error(this.$t(t?`fish.message.micDenied`:`fish.message.micError`));return}this.chunks=[];let e=this.pickMimeType();try{this.mediaRecorder=e?new MediaRecorder(this.stream,{mimeType:e}):new MediaRecorder(this.stream)}catch{this.mediaRecorder=new MediaRecorder(this.stream)}this.mediaRecorder.ondataavailable=e=>{e.data&&e.data.size>0&&this.chunks.push(e.data)},this.mediaRecorder.onstop=()=>{let e=new Blob(this.chunks,{type:this.mediaRecorder?.mimeType||`audio/webm`});this.recordedBlob=e,this.recordedUrl=URL.createObjectURL(e),this.state=`recorded`,this.releaseStream()},this.mediaRecorder.start(),this.state=`recording`,this.seconds=0,this.timerId=window.setInterval(()=>{this.seconds++},1e3),this.maxTimerId=window.setTimeout(()=>{this.state===`recording`&&this.stopRecord()},P*1e3)},stopRecord(){this.mediaRecorder&&this.mediaRecorder.state!==`inactive`&&this.mediaRecorder.stop(),window.clearInterval(this.timerId),window.clearTimeout(this.maxTimerId)},reset(){this.recordedUrl&&URL.revokeObjectURL(this.recordedUrl),this.recordedUrl=``,this.recordedBlob=null,this.state=`idle`,this.seconds=0},onCancel(){this.cleanup(),this.$emit(`cancel`)},cleanup(){this.stopRecord(),this.releaseStream(),this.recordedUrl&&URL.revokeObjectURL(this.recordedUrl)},releaseStream(){this.stream?.getTracks().forEach(e=>e.stop()),this.stream=null},pickMimeType(){for(let e of[`audio/webm;codecs=opus`,`audio/webm`,`audio/mp4`,`audio/ogg`])if(typeof MediaRecorder<`u`&&MediaRecorder.isTypeSupported?.(e))return e},extensionForMime(e){return e.includes(`webm`)?`webm`:e.includes(`mp4`)?`m4a`:e.includes(`ogg`)?`ogg`:e.includes(`wav`)?`wav`:`mp3`},async useRecording(){if(this.recordedBlob){if(this.seconds<3){E.warning(this.$t(`fish.message.recordingTooShort`));return}this.uploading=!0;try{let e=this.$store.state.token?.access,t=this.extensionForMime(this.recordedBlob.type||``),n=new File([this.recordedBlob],`recording-${Date.now()}.${t}`,{type:this.recordedBlob.type||`audio/webm`}),r=new FormData;r.append(`file`,n);let{data:i}=await x.post(`${T()}/api/v1/files/`,r,{headers:{Authorization:`Bearer ${e}`}}),a=i?.file_url;if(!a){E.error(this.$t(`fish.message.uploadError`));return}this.$emit(`done`,{url:a,text:this.currentScript})}catch(e){E.error(this.$t(`fish.message.uploadError`)),console.error(`recorder upload failed`,e)}finally{this.uploading=!1}}}}}),I={class:`recorder`},L={key:0,class:`script`},R={class:`script-header`},z={class:`label`},B={class:`script-text`},V={class:`controls`},H={class:`status`},U={class:`hint`},W={key:1,class:`preview`},G=[`src`],K={class:`preview-actions`},q={class:`footer`};function J(e,r,ee,u,m,h){let g=f(`font-awesome-icon`),_=f(`el-button`);return l(),t(`div`,I,[e.state===`recorded`?d(``,!0):(l(),t(`div`,L,[n(`div`,R,[o(g,{icon:`fa-solid fa-book-open`,class:`icon mr-1`}),n(`span`,z,c(e.$t(`fish.description.readScript`)),1),o(_,{link:``,size:`small`,class:`ml-auto`,disabled:e.state===`recording`,onClick:e.nextScript},{default:p(()=>[o(g,{icon:`fa-solid fa-shuffle`,class:`mr-1`}),i(` `+c(e.$t(`fish.button.nextScript`)),1)]),_:1},8,[`disabled`,`onClick`])]),n(`p`,B,c(e.currentScript),1)])),n(`div`,V,[e.state===`idle`?(l(),a(_,{key:0,type:`danger`,circle:``,size:`large`,title:e.$t(`fish.button.startRecord`),onClick:e.startRecord},{default:p(()=>[o(g,{icon:`fa-solid fa-microphone`})]),_:1},8,[`title`,`onClick`])):e.state===`recording`?(l(),a(_,{key:1,type:`warning`,circle:``,size:`large`,title:e.$t(`fish.button.stopRecord`),onClick:e.stopRecord},{default:p(()=>[o(g,{icon:`fa-solid fa-stop`})]),_:1},8,[`title`,`onClick`])):d(``,!0),n(`div`,H,[n(`span`,{class:s([`timer`,e.state===`recording`?`live`:``])},c(e.formattedTime),3),n(`span`,U,c(e.state===`idle`?e.$t(`fish.description.recorderIdle`):e.state===`recording`?e.$t(`fish.description.recorderRecording`):e.$t(`fish.description.recorderRecorded`)),1)])]),e.state===`recorded`&&e.recordedUrl?(l(),t(`div`,W,[n(`audio`,{src:e.recordedUrl,controls:``,preload:`metadata`,class:`w-full`},null,8,G),n(`div`,K,[o(_,{size:`small`,disabled:e.uploading,onClick:e.reset},{default:p(()=>[o(g,{icon:`fa-solid fa-rotate-left`,class:`mr-1`}),i(` `+c(e.$t(`fish.button.reRecord`)),1)]),_:1},8,[`disabled`,`onClick`]),o(_,{size:`small`,type:`primary`,loading:e.uploading,onClick:e.useRecording},{default:p(()=>[o(g,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+c(e.$t(`fish.button.useRecording`)),1)]),_:1},8,[`loading`,`onClick`])])])):d(``,!0),n(`div`,q,[o(_,{link:``,size:`small`,disabled:e.uploading||e.state===`recording`,onClick:e.onCancel},{default:p(()=>[i(c(e.$t(`fish.button.cancel`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var Y=S(F,[[`render`,J],[`__scopeId`,`data-v-1958e4a1`]]),X=50*1024*1024,Z=()=>({title:``,description:``,texts:``,voicesUrl:``,visibility:`unlist`,trainMode:`fast`,enhanceAudio:!0,generateSample:!1}),Q=r({name:`FishModelConfigPanel`,components:{ElButton:m,ElInput:C,ElRadioButton:v,ElRadioGroup:y,ElSwitch:b,ElUpload:h,FontAwesomeIcon:O,Recorder:Y},mixins:[te],emits:[`create`],data(){return{form:Z(),fileList:[],uploading:!1,creating:!1,recording:!1,textsAuto:!0}},computed:{uploadUrl(){return T()+`/api/v1/files/`},uploadHeaders(){return{Authorization:`Bearer ${this.$store.state.token?.access}`}},canCreate(){return!!this.form.title.trim()&&!!this.form.voicesUrl&&!this.uploading&&!this.creating},supportsRecorder(){return!!(typeof navigator<`u`?navigator.mediaDevices:void 0)?.getUserMedia&&typeof MediaRecorder<`u`}},methods:{onBeforeUpload(e){return e.size>X?(E.warning(this.$t(`fish.message.audioSizeExceed`)),!1):(this.uploading=!0,!0)},onExceed(){E.warning(this.$t(`fish.message.audioOnlyOne`))},onUploadError(){this.uploading=!1,E.error(this.$t(`fish.message.uploadError`))},onUploadSuccess(e,t,n){this.uploading=!1;let r=e?.file_url;if(!r){E.error(this.$t(`fish.message.uploadError`)),this.fileList=[];return}this.form.voicesUrl=r,this.fileList=n},onRecorded(e){this.form.voicesUrl=e.url,this.recording=!1,e.text&&this.textsAuto&&(this.form.texts=e.text)},onStartRecord(){this.recording=!0,this.textsAuto=!this.form.texts.trim()},onScriptChange(e){this.textsAuto&&this.recording&&(this.form.texts=e)},onTextsInput(){this.textsAuto=!1},clearAudio(){this.form.voicesUrl=``,this.fileList=[]},onCreate(){let e=this.form.title.trim();if(!e){E.warning(this.$t(`fish.message.titleRequired`));return}if(!this.form.voicesUrl){E.warning(this.$t(`fish.message.audioRequired`));return}let t={title:e,voices:this.form.voicesUrl,visibility:this.form.visibility,train_mode:this.form.trainMode,enhance_audio_quality:this.form.enhanceAudio,generate_sample:this.form.generateSample};this.form.description.trim()&&(t.description=this.form.description.trim()),this.form.texts.trim()&&(t.texts=[this.form.texts.trim()]),this.creating=!0,this.$emit(`create`,t),setTimeout(()=>{this.creating=!1,this.form=Z(),this.fileList=[]},600)}}}),ne={class:`flex flex-col h-full`},re={class:`flex-1 overflow-y-auto p-5`},ie={class:`field-block mb-4`},ae={class:`title font-bold`},oe={class:`field-block mb-4`},se={class:`flex items-baseline justify-between mb-1`},ce={class:`title font-bold`},le={key:0,class:`muted`},ue={class:`hint`},de={key:0,class:`audio-actions`},fe={key:1,class:`hint warn`},pe={key:3,class:`mt-2`},me=[`src`],he={class:`ready-actions`},ge={class:`field-block mb-4`},_e={class:`title font-bold`},ve={class:`hint`},ye={class:`field-block mb-4`},be={class:`title font-bold`},xe={class:`field-block mb-4`},Se={class:`title font-bold`},Ce={class:`field-block mb-4`},we={class:`title font-bold`},Te={class:`field-block mb-3`},Ee={class:`field-row`},De={class:`title font-bold`},Oe={class:`hint mt-0 mb-0`},ke={class:`field-block mb-2`},Ae={class:`field-row`},je={class:`title font-bold`},Me={class:`hint mt-0 mb-0`},Ne={class:`flex flex-col items-center justify-center px-5 pb-5`};function Pe(e,r,ee,s,u,m){let h=f(`el-input`),g=f(`font-awesome-icon`),_=f(`el-button`),v=f(`el-upload`),y=f(`recorder`),b=f(`el-radio-button`),x=f(`el-radio-group`),S=f(`el-switch`);return l(),t(`div`,ne,[n(`div`,re,[n(`div`,ie,[n(`h2`,ae,[i(c(e.$t(`fish.name.voiceTitle`))+` `,1),r[9]||=n(`span`,{class:`required`},`*`,-1)]),o(h,{modelValue:e.form.title,"onUpdate:modelValue":r[0]||=t=>e.form.title=t,placeholder:e.$t(`fish.placeholder.voiceTitle`),maxlength:`60`},null,8,[`modelValue`,`placeholder`])]),n(`div`,oe,[n(`div`,se,[n(`h2`,ce,[i(c(e.$t(`fish.name.referenceAudio`))+` `,1),r[10]||=n(`span`,{class:`required`},`*`,-1)]),!e.form.voicesUrl&&!e.recording?(l(),t(`span`,le,c(e.$t(`fish.description.audioRequired`)),1)):d(``,!0)]),n(`p`,ue,c(e.$t(`fish.description.uploadAudio`)),1),!e.form.voicesUrl&&!e.recording?(l(),t(`div`,de,[o(v,{"file-list":e.fileList,"onUpdate:fileList":r[1]||=t=>e.fileList=t,name:`file`,limit:1,class:`upload-wrapper`,action:e.uploadUrl,accept:`.mp3,.wav,.m4a,.ogg,.webm,audio/*`,"show-file-list":!1,"on-exceed":e.onExceed,"on-error":e.onUploadError,"on-success":e.onUploadSuccess,"before-upload":e.onBeforeUpload,headers:e.uploadHeaders},{default:p(()=>[o(_,{type:`primary`,plain:``,round:``,loading:e.uploading},{default:p(()=>[o(g,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),i(` `+c(e.$t(`fish.button.uploadAudio`)),1)]),_:1},8,[`loading`])]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`before-upload`,`headers`]),o(_,{type:`primary`,round:``,disabled:!e.supportsRecorder,onClick:e.onStartRecord},{default:p(()=>[o(g,{icon:`fa-solid fa-microphone`,class:`icon mr-1`}),i(` `+c(e.$t(`fish.button.recordAudio`)),1)]),_:1},8,[`disabled`,`onClick`])])):d(``,!0),!e.supportsRecorder&&!e.form.voicesUrl&&!e.recording?(l(),t(`p`,fe,c(e.$t(`fish.message.recorderUnsupported`)),1)):d(``,!0),e.recording?(l(),a(y,{key:2,class:`mt-2`,onDone:e.onRecorded,onCancel:r[2]||=t=>e.recording=!1,"onUpdate:script":e.onScriptChange},null,8,[`onDone`,`onUpdate:script`])):d(``,!0),e.form.voicesUrl&&!e.recording?(l(),t(`div`,pe,[n(`audio`,{src:e.form.voicesUrl,controls:``,preload:`metadata`,class:`w-full`},null,8,me),n(`div`,he,[o(_,{link:``,size:`small`,onClick:e.clearAudio},{default:p(()=>[o(g,{icon:`fa-solid fa-rotate-left`,class:`mr-1`}),i(` `+c(e.$t(`fish.button.replaceAudio`)),1)]),_:1},8,[`onClick`])])])):d(``,!0)]),n(`div`,ge,[n(`h2`,_e,c(e.$t(`fish.name.audioTexts`)),1),n(`p`,ve,c(e.$t(`fish.description.audioTexts`)),1),o(h,{modelValue:e.form.texts,"onUpdate:modelValue":r[3]||=t=>e.form.texts=t,type:`textarea`,rows:2,placeholder:e.$t(`fish.placeholder.audioTexts`),maxlength:`500`,onInput:e.onTextsInput},null,8,[`modelValue`,`placeholder`,`onInput`])]),n(`div`,ye,[n(`h2`,be,c(e.$t(`fish.name.voiceDescription`)),1),o(h,{modelValue:e.form.description,"onUpdate:modelValue":r[4]||=t=>e.form.description=t,type:`textarea`,rows:2,placeholder:e.$t(`fish.placeholder.voiceDescription`),maxlength:`500`},null,8,[`modelValue`,`placeholder`])]),n(`div`,xe,[n(`h2`,Se,c(e.$t(`fish.name.visibility`)),1),o(x,{modelValue:e.form.visibility,"onUpdate:modelValue":r[5]||=t=>e.form.visibility=t,size:`small`},{default:p(()=>[o(b,{label:`private`,value:`private`},{default:p(()=>[i(c(e.$t(`fish.value.private`)),1)]),_:1}),o(b,{label:`unlist`,value:`unlist`},{default:p(()=>[i(c(e.$t(`fish.value.unlist`)),1)]),_:1}),o(b,{label:`public`,value:`public`},{default:p(()=>[i(c(e.$t(`fish.value.public`)),1)]),_:1})]),_:1},8,[`modelValue`])]),n(`div`,Ce,[n(`h2`,we,c(e.$t(`fish.name.trainMode`)),1),o(x,{modelValue:e.form.trainMode,"onUpdate:modelValue":r[6]||=t=>e.form.trainMode=t,size:`small`},{default:p(()=>[o(b,{label:`fast`,value:`fast`},{default:p(()=>[i(c(e.$t(`fish.value.trainModeFast`)),1)]),_:1}),o(b,{label:`precise`,value:`precise`},{default:p(()=>[i(c(e.$t(`fish.value.trainModePrecise`)),1)]),_:1})]),_:1},8,[`modelValue`])]),n(`div`,Te,[n(`div`,Ee,[n(`h2`,De,c(e.$t(`fish.name.enhanceAudio`)),1),o(S,{modelValue:e.form.enhanceAudio,"onUpdate:modelValue":r[7]||=t=>e.form.enhanceAudio=t},null,8,[`modelValue`])]),n(`p`,Oe,c(e.$t(`fish.description.enhanceAudio`)),1)]),n(`div`,ke,[n(`div`,Ae,[n(`h2`,je,c(e.$t(`fish.name.generateSample`)),1),o(S,{modelValue:e.form.generateSample,"onUpdate:modelValue":r[8]||=t=>e.form.generateSample=t},null,8,[`modelValue`])]),n(`p`,Me,c(e.$t(`fish.description.generateSample`)),1)])]),n(`div`,Ne,[o(_,{type:`primary`,class:`btn w-full`,round:``,disabled:!e.canCreate||e.creating,loading:e.creating,onClick:e.onCreate},{default:p(()=>[o(g,{icon:`fa-solid fa-magic`,class:`mr-2`}),i(` `+c(e.$t(`fish.button.createModel`)),1)]),_:1},8,[`disabled`,`loading`,`onClick`])])])}var Fe=S(Q,[[`render`,Pe],[`__scopeId`,`data-v-d8fc0e55`]]),Ie=r({name:`FishVoiceCard`,components:{ElAlert:_,ElButton:m,ElImage:g,CopyToClipboard:k,FontAwesomeIcon:O},props:{modelValue:{type:Object,required:!0}},computed:{sampleAudioUrl(){let e=this.modelValue?.samples;if(e?.length)return e[0]?.audio},voiceId(){let e=this.modelValue;return(e?.id||e?._id||e?.reference_id||``).toString()},coverSrc(){let e=this.modelValue?.cover_image;return e&&typeof e==`string`?e:void 0},createdAtLabel(){let e=this.modelValue?.created_at;if(e==null||e===``)return null;let t=typeof e==`number`?e:parseFloat(String(e));return!Number.isFinite(t)||t<=0?null:this.$dayjs.format(``+new Date(t*1e3))}},methods:{onUseVoice(){let e=this.voiceId;e&&(this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,reference_id:e}),this.$router.push({name:w}))}}}),Le={class:`card`},Re={class:`left`},ze={class:`main`},Be={class:`header`},Ve={class:`title`},He={key:0,class:`datetime`},Ue={key:0,class:`description`},We={key:1,class:`sample mt-2`},Ge=[`src`],Ke={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},qe={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Je={class:`operations mt-2`};function Ye(e,r,ee,s,m,h){let g=f(`el-image`),_=f(`font-awesome-icon`),v=f(`copy-to-clipboard`),y=f(`el-alert`),b=f(`el-button`);return l(),t(`div`,Le,[n(`div`,Re,[e.coverSrc?(l(),a(g,{key:0,src:e.coverSrc,class:`cover`,fit:`cover`},{error:p(()=>[o(g,{src:`https://cdn.acedata.cloud/e40fccc727.png`,class:`cover fallback`,fit:`cover`})]),placeholder:p(()=>[...r[0]||=[n(`div`,{class:`cover placeholder`},null,-1)]]),_:1},8,[`src`])):(l(),a(g,{key:1,src:`https://cdn.acedata.cloud/e40fccc727.png`,class:`cover fallback`,fit:`cover`}))]),n(`div`,ze,[n(`div`,Be,[n(`span`,Ve,c(e.modelValue?.title||e.$t(`fish.name.untitledVoice`)),1),e.createdAtLabel?(l(),t(`span`,He,c(e.createdAtLabel),1)):d(``,!0)]),e.modelValue?.description?(l(),t(`p`,Ue,c(e.modelValue?.description),1)):d(``,!0),e.sampleAudioUrl?(l(),t(`div`,We,[n(`audio`,{src:e.sampleAudioUrl,controls:``,preload:`metadata`,class:`w-full`},null,8,Ge)])):d(``,!0),o(y,{closable:!1,class:`mt-2 success`},{default:p(()=>[e.voiceId?(l(),t(`p`,Ke,[o(_,{icon:`fa-solid fa-microphone`,class:`mr-1`}),i(` `+c(e.$t(`fish.name.referenceId`))+`: `+c(e.voiceId)+` `,1),o(v,{content:e.voiceId},null,8,[`content`])])):d(``,!0),e.modelValue?.visibility?(l(),t(`p`,qe,[o(_,{icon:`fa-solid fa-eye`,class:`mr-1`}),i(` `+c(e.$t(`fish.name.visibility`))+`: `+c(e.modelValue?.visibility),1)])):d(``,!0)]),_:1}),n(`div`,Je,[o(b,{type:`primary`,size:`small`,plain:``,disabled:!e.voiceId,onClick:u(e.onUseVoice,[`stop`])},{default:p(()=>[o(_,{icon:`fa-solid fa-volume-high`,class:`mr-1`}),i(` `+c(e.$t(`fish.button.useVoice`)),1)]),_:1},8,[`disabled`,`onClick`])])])])}var Xe=r({name:`FishModelListPanel`,components:{VoiceCard:S(Ie,[[`render`,Ye],[`__scopeId`,`data-v-629e2d04`]]),BotPlaceholder:j,FontAwesomeIcon:O},props:{loading:{type:Boolean,default:!1}},computed:{voices(){return this.$store.state.fish?.voices}}}),Ze={class:`model-list-panel flex flex-col h-full`},Qe={class:`header`},$e={class:`title`},et={key:0,class:`count`},tt={class:`body flex-1 min-h-0`},$={key:0,class:`h-full`},nt={key:1,class:`w-full h-full flex flex-col items-center justify-center text-center px-6`},rt={class:`empty-title`},it={class:`empty-hint`},at={key:2,class:`w-full h-full overflow-y-auto pr-1`};function ot(r,i,s,u,p,m){let h=f(`bot-placeholder`),g=f(`font-awesome-icon`),_=f(`voice-card`);return l(),t(`div`,Ze,[n(`header`,Qe,[n(`h2`,$e,c(r.$t(`fish.title.myVoices`)),1),r.voices?.length?(l(),t(`span`,et,c(r.voices?.length),1)):d(``,!0)]),n(`div`,tt,[r.voices===void 0?(l(),t(`div`,$,[o(h)])):r.voices.length===0?(l(),t(`div`,nt,[o(g,{icon:`fa-solid fa-microphone-lines`,class:`empty-icon`}),n(`p`,rt,c(r.$t(`fish.title.noVoicesYet`)),1),n(`p`,it,c(r.$t(`fish.description.noVoicesYet`)),1)])):(l(),t(`div`,at,[(l(!0),t(ee,null,e(r.voices,e=>(l(),a(_,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]))])])}var st=r({name:`FishModelIndex`,components:{ModelConfigPanel:Fe,Layout:A,ModelListPanel:S(Xe,[[`render`,ot],[`__scopeId`,`data-v-4aab2294`]]),TabSwitcher:M},inject:[`initialized`],data(){return{loading:!1}},computed:{credential(){return this.$store.state.fish?.credential}},watch:{initialized:{async handler(e){e&&await this.onGetVoices()},immediate:!0}},async mounted(){await this.onGetService()},methods:{async onGetService(){await this.$store.dispatch(`fish/getService`)},async onGetVoices(){await this.$store.dispatch(`fish/getVoices`)},async onCreate(e){let t=this.credential?.token;if(!t){console.error(`no token specified`);return}this.loading=!0,E.info(this.$t(`fish.message.creatingModel`));try{await D.createModel(e,{token:t}),E.success(this.$t(`fish.message.createModelSuccess`)),await this.onGetVoices()}catch(e){let t=e?.response?.data;t?.error?.code===`used_up`?E.error(this.$t(`fish.message.usedUp`)):E.error(t?.error?.message||this.$t(`fish.message.createModelFailed`))}finally{this.loading=!1}}}}),ct={class:`flex flex-col h-full`},lt={class:`flex-1 min-h-0`};function ut(e,t,r,i,ee,s){let c=f(`tab-switcher`),u=f(`model-config-panel`),d=f(`model-list-panel`),m=f(`layout`);return l(),a(m,null,{config:p(()=>[n(`div`,ct,[o(c),n(`div`,lt,[o(u,{onCreate:e.onCreate},null,8,[`onCreate`])])])]),result:p(()=>[o(d,{loading:e.loading},null,8,[`loading`])]),_:1})}var dt=S(st,[[`render`,ut]]);export{dt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,D as t,F as n,N as r,O as i,P as a,S as o,Vt as s,Wt as c,Z as l,k as u,tt as d,ut as f}from"./vendor-chart-BJCvKk8-.js";import{t as p}from"./button-DfsQodL-.js";import{t as m}from"./alert-OvnfgMB-.js";import{t as ee}from"./card-DjyfNde2.js";import{n as h,t as g}from"./row-a-LM4Swm.js";import{i as _,n as v,r as y,t as b}from"./wechat-CBB0_nqe.js";import{t as x}from"./divider-LA__Fty9.js";import{t as S}from"./skeleton-C4sltx62.js";import{Cn as C,Cr as w,E as T,Et as E,It as D,Mr as O,Pr as k,Pt as A,Tr as te,dr as j,kr as M}from"./index-CpdVsIF6.js";import{t as N}from"./CopyToClipboard-C3QEb9UR.js";var P=n({name:`PublicWechatPayDialog`,components:{ElDialog:O,ElButton:p,QrCode:E,ElRow:g,ElCol:h},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],data(){return{copied:!1,copiedTimer:void 0}},computed:{isMobileOutsideWechat(){return v()&&!b()},isMobileInsideWechat(){return v()&&b()},dialogWidth(){return this.isMobileOutsideWechat||this.isMobileInsideWechat?`90%`:`500px`}},unmounted(){this.copiedTimer&&clearTimeout(this.copiedTimer)},methods:{async onCopyLink(){let e=typeof window<`u`?window.location.href:``;if(!e)return;let t=!1;try{t=await D(e,{debug:!1})}catch{t=!1}t?(this.copied=!0,this.copiedTimer&&clearTimeout(this.copiedTimer),this.copiedTimer=window.setTimeout(()=>{this.copied=!1},2e3)):M.error(String(this.$t(`common.message.copyFailed`)||`Copy failed`))}}}),F={key:0,class:`wechat-pay-mobile text-center py-[20px] px-[10px]`},I={class:`text-[14px] mb-3 leading-relaxed`},L={class:`text-[12px] text-gray-500 mb-4 leading-relaxed`},R={key:1,class:`wechat-pay-longpress text-center py-[20px] px-[10px]`},z={class:`text-[14px] mb-4 leading-relaxed`},B={class:`paycode wechat`},V={class:`help-text block bg-[#00c800] text-white text-[14px] h-[35px] w-[240px] text-center leading-[35px] mt-[10px] mx-auto`};function H(n,o,s,p,m,ee){let h=d(`qr-code`),g=d(`el-button`),_=d(`el-col`),v=d(`el-row`),y=d(`el-dialog`);return l(),i(y,{"model-value":n.visible,title:n.$t(`application.title.buyService`),width:n.dialogWidth,center:``,onClose:o[0]||=e=>n.$emit(`hide`)},{default:f(()=>[n.isMobileOutsideWechat?(l(),e(`div`,F,[t(`p`,I,c(n.$t(`order.message.wechatPayMobileScanTip`)),1),n.order?.pay_url?(l(),i(h,{key:0,value:n.order?.pay_url,size:220,class:`qrcode m-auto mb-3`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):u(``,!0),t(`p`,L,c(n.$t(`order.message.wechatPayMobileHint`)),1),a(g,{size:`default`,round:``,class:`w-[220px]`,onClick:n.onCopyLink},{default:f(()=>[r(c(n.copied?n.$t(`common.message.copied`):n.$t(`order.button.copyPayLink`)),1)]),_:1},8,[`onClick`])])):n.isMobileInsideWechat?(l(),e(`div`,R,[t(`p`,z,c(n.$t(`order.message.wechatPayLongPressTip`)),1),n.order?.pay_url?(l(),i(h,{key:0,value:n.order?.pay_url,size:240,class:`qrcode mx-auto`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):u(``,!0)])):(l(),i(v,{key:2,class:`paycodes py-[30px] w-[500px] mx-auto`},{default:f(()=>[a(_,{span:12},{default:f(()=>[t(`div`,B,[n.order?.pay_url?(l(),i(h,{key:0,value:n.order?.pay_url,size:200,class:`qrcode m-auto w-[200px] h-[200px]`,type:`image/png`,color:{dark:`#000000`,light:`#ffffff`}},null,8,[`value`])):u(``,!0),t(`p`,V,c(n.$t(`order.message.wechatPayHelp`)),1)])]),_:1}),a(_,{span:12},{default:f(()=>[...o[1]||=[t(`div`,{class:`help-img`},[t(`img`,{src:`https://midas.gtimg.cn/enterprise/images/ep_sys_wx_tip.jpg`})],-1)]]),_:1})]),_:1}))]),_:1},8,[`model-value`,`title`,`width`])}var U=T(P,[[`render`,H]]),W=n({name:`PublicStripePayDialog`,components:{ElDialog:O},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),G={class:`text-center`};function K(e,n,r,a,o,s){let u=d(`el-dialog`);return l(),i(u,{"model-value":e.visible,title:e.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=t=>e.$emit(`hide`)},{default:f(()=>[t(`p`,G,c(e.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var ne=T(W,[[`render`,K]]),q=n({name:`PublicAlipayPayDialog`,components:{ElDialog:O},props:{order:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:[`hide`],watch:{visible:{handler(e){e&&this.order?.pay_url&&window.open(this.order.pay_url,`_blank`)}}}}),J={class:`text-center`};function Y(e,n,r,a,o,s){let u=d(`el-dialog`);return l(),i(u,{"model-value":e.visible,title:e.$t(`application.title.buyService`),width:`500px`,center:``,onClose:n[0]||=t=>e.$emit(`hide`)},{default:f(()=>[t(`p`,J,c(e.$t(`order.message.buyInExternalUrl`)),1)]),_:1},8,[`model-value`,`title`])}var X=T(q,[[`render`,Y]]),Z=7e3,re=2e3,Q=function(e){return e.WechatPay=`WechatPay`,e.Stripe=`Stripe`,e.AliPay=`AliPay`,e}(Q||{}),ie=n({name:`OrderPublicPay`,components:{ElButton:p,ElRow:g,ElCol:h,ElCard:ee,ElSkeleton:S,ElDivider:x,ElAlert:m,ElDescriptions:y,ElDescriptionsItem:_,ElTag:k,PublicWechatPay:U,PublicStripePay:ne,PublicAlipayPay:X,CopyToClipboard:N},data(){return{PayWay:Q,OrderState:j,payWay:`WechatPay`,order:void 0,loading:!1,paying:!1,prepaying:!1}},computed:{id(){return this.$route.params?.id?.toString()??``},showPayment(){return!te()}},watch:{paying(e){e?this.startOrderPolling(re):this.stopOrderPolling()}},created(){this._orderRefreshTimer=void 0},mounted(){this.onFetchData()},beforeUnmount(){this.stopOrderPolling()},methods:{getPriceString:A,payWayLabel(e){return{WechatPay:this.$t(`order.title.wechatPay`),Stripe:this.$t(`order.title.stripe`),AliPay:this.$t(`order.title.aliPay`)}[e]||e},onFetchData(){this.id&&(this.loading=!0,C.get(this.id).then(({data:e})=>{this.order=e,e?.pay_way&&e.pay_way in Q&&(this.payWay=e.pay_way),this.loading=!1}).catch(()=>{this.order=void 0,this.loading=!1}))},startOrderPolling(e=0){this.stopOrderPolling();let t=async()=>{try{let{data:e}=await C.get(this.id);if(this.order=e,e?.state===j.PAID||e?.state===j.FINISHED||e?.state===j.FAILED||e?.state===j.EXPIRED){this.paying=!1,this.stopOrderPolling();return}}catch{}this.paying&&(this._orderRefreshTimer=window.setTimeout(t,Z))};this._orderRefreshTimer=window.setTimeout(t,e)},stopOrderPolling(){let e=this._orderRefreshTimer;e&&(clearTimeout(e),this._orderRefreshTimer=void 0)},onRepay(){this.paying=!0},onPay(){if(!this.id)return;this.prepaying=!0;let e={pay_way:this.payWay};this.payWay===`AliPay`&&(e.surface=w()),C.pay(this.id,e).then(({data:e})=>{this.prepaying=!1,e?.id&&(this.order=e),this.order&&this.order.price&&this.order.price>0&&(this.paying=!0)}).catch(()=>{this.prepaying=!1})}}}),ae={class:`title`},oe={key:0,class:`pt-5`},se={key:1,class:`pt-10 text-center`},ce={key:2,class:`order`},le={key:0,class:`price current unfree`},ue={key:1,class:`price free`},de={key:0,class:`payways mb-6`},fe={class:`payname`},pe={class:`payname`},$={class:`payname`},me={key:1},he={key:2};function ge(n,p,m,ee,h,g){let _=d(`el-col`),v=d(`el-row`),y=d(`el-skeleton`),b=d(`el-alert`),x=d(`copy-to-clipboard`),S=d(`el-descriptions-item`),C=d(`el-tag`),w=d(`el-descriptions`),T=d(`el-divider`),E=d(`el-button`),D=d(`el-card`),O=d(`public-wechat-pay`),k=d(`public-stripe-pay`),A=d(`public-alipay-pay`);return l(),e(o,null,[a(v,{class:`wrapper`},{default:f(()=>[a(_,{span:24},{default:f(()=>[a(v,null,{default:f(()=>[a(_,{span:24},{default:f(()=>[t(`h2`,ae,c(n.$t(`order.title.info`)),1)]),_:1})]),_:1}),a(v,{class:`panel`},{default:f(()=>[a(_,{span:24},{default:f(()=>[a(D,{shadow:`hover`},{default:f(()=>[a(v,null,{default:f(()=>[a(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:f(()=>[n.loading?(l(),e(`div`,oe,[a(y,{animated:``})])):n.order?(l(),e(`div`,ce,[a(w,{column:1},{default:f(()=>[a(S,{label:n.$t(`order.field.id`)},{default:f(()=>[t(`span`,null,c(n.order.id),1),n.order.id?(l(),i(x,{key:0,content:n.order.id,class:`inline-block`},null,8,[`content`])):u(``,!0)]),_:1},8,[`label`]),a(S,{label:n.$t(`order.field.description`)},{default:f(()=>[r(c(n.order.description),1)]),_:1},8,[`label`]),n.order.pay_way?(l(),i(S,{key:0,label:n.$t(`order.field.payWay`)},{default:f(()=>[a(C,{type:`info`,effect:`dark`,round:``,size:`small`},{default:f(()=>[r(c(n.payWayLabel(n.order.pay_way)),1)]),_:1})]),_:1},8,[`label`])):u(``,!0),a(S,{label:n.$t(`order.field.createdAt`)},{default:f(()=>[r(c(n.$dayjs.format(n.order.created_at||``)),1)]),_:1},8,[`label`]),a(S,{label:n.$t(`order.field.price`)},{default:f(()=>[n.order.price&&n.order.price>0?(l(),e(`span`,le,c(n.getPriceString({value:n.order.price})),1)):(l(),e(`span`,ue,c(n.$t(`order.message.free`)),1))]),_:1},8,[`label`])]),_:1})])):(l(),e(`div`,se,[a(b,{title:n.$t(`order.message.publicPayNotFound`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]))]),_:1})]),_:1}),n.order?.state===n.OrderState.PAID||n.order?.state===n.OrderState.FINISHED?(l(),i(v,{key:0,class:`mb-5`},{default:f(()=>[a(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:f(()=>[a(T,{"border-style":`dashed`}),a(b,{title:n.$t(`order.message.paidSuccessfully`),type:`success`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):u(``,!0),n.order?.state===n.OrderState.EXPIRED?(l(),i(v,{key:1,class:`mb-5`},{default:f(()=>[a(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:f(()=>[a(T,{"border-style":`dashed`}),a(b,{title:n.$t(`order.message.orderExpired`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):u(``,!0),n.order?.state===n.OrderState.FAILED?(l(),i(v,{key:2,class:`mb-5`},{default:f(()=>[a(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:f(()=>[a(T,{"border-style":`dashed`}),a(b,{title:n.$t(`order.state.failed`),type:`error`,"show-icon":``,closable:!1},null,8,[`title`])]),_:1})]),_:1})):u(``,!0),n.order?.state===n.OrderState.PENDING&&n.showPayment?(l(),i(v,{key:3},{default:f(()=>[a(_,{xs:{span:22,offset:1},sm:{span:16,offset:4}},{default:f(()=>[a(T,{"border-style":`dashed`}),!n.order.pay_way&&n.order.price&&n.order.price>0?(l(),e(`div`,de,[t(`div`,{class:s({payway:!0,wechatpay:!0,active:n.payWay===n.PayWay.WechatPay}),onClick:p[0]||=e=>n.payWay=n.PayWay.WechatPay},[p[6]||=t(`span`,{class:`payicon wechatpay`},null,-1),t(`span`,fe,c(n.$t(`order.title.wechatPay`)),1)],2),t(`div`,{class:s({payway:!0,alipay:!0,active:n.payWay===n.PayWay.AliPay}),onClick:p[1]||=e=>n.payWay=n.PayWay.AliPay},[p[7]||=t(`span`,{class:`payicon alipay`},null,-1),t(`span`,pe,c(n.$t(`order.title.aliPay`)),1)],2),t(`div`,{class:s({payway:!0,stripe:!0,active:n.payWay===n.PayWay.Stripe}),onClick:p[2]||=e=>n.payWay=n.PayWay.Stripe},[p[8]||=t(`span`,{class:`payicon stripe`},null,-1),t(`span`,$,c(n.$t(`order.title.stripe`)),1)],2)])):u(``,!0),n.order.pay_way?(l(),e(`div`,he,[a(E,{type:`primary`,round:``,size:`large`,class:`btn-repay`,onClick:n.onRepay},{default:f(()=>[r(c(n.$t(`common.button.repay`)),1)]),_:1},8,[`onClick`])])):(l(),e(`div`,me,[a(E,{loading:n.prepaying,round:``,type:`primary`,size:`large`,class:`btn-pay`,onClick:n.onPay},{default:f(()=>[r(c(n.$t(`common.button.pay`)),1)]),_:1},8,[`loading`,`onClick`])]))]),_:1})]),_:1})):u(``,!0)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),n.order&&n.payWay===n.PayWay.WechatPay?(l(),i(O,{key:0,order:n.order,visible:n.paying,onHide:p[3]||=e=>n.paying=!1},null,8,[`order`,`visible`])):u(``,!0),n.order&&n.payWay===n.PayWay.Stripe?(l(),i(k,{key:1,order:n.order,visible:n.paying,onHide:p[4]||=e=>n.paying=!1},null,8,[`order`,`visible`])):u(``,!0),n.order&&n.payWay===n.PayWay.AliPay?(l(),i(A,{key:2,order:n.order,visible:n.paying,onHide:p[5]||=e=>n.paying=!1},null,8,[`order`,`visible`])):u(``,!0)],64)}var _e=T(ie,[[`render`,ge],[`__scopeId`,`data-v-ffd3ba40`]]);export{_e as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,V as g,_,a as v,b as y,c as b,d as x,f as S,g as C,gi as w,h as ee,i as te,j as ne,k as re,l as ie,m as ae,n as oe,o as T,p as E,r as D,s as O,t as k,u as A,v as j,w as M,x as N,y as P,z as F}from"./constants-CwLEZ_AF.js";import{Dr as I,Ln as L,Tr as R,Wt as z,yr as B}from"./index-CpdVsIF6.js";import{a as se,i as V,n as H,o as U,r as W}from"./codingBridgeNotify-Bm82bFHu.js";var G=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,K=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},q=(e,t)=>{if(!K())return;let n=t?.payload??{};console.debug(`[codingBridge]`,e,{type:t?.type,id:t?.id,node_id:t?.node_id??t?.from_node,action:n?.action,event:n?.event,session_id:n?.session_id,trace_id:n?.trace_id})},ce=class{ws;token;handlers;reconnectDelay=o;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}get isOpen(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closedByUser=!1,this.open()}open(){if(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))return;let e=`${w}?token=${encodeURIComponent(this.token)}`,t;try{t=new WebSocket(e)}catch(e){console.warn(`[codingBridge] failed to open socket`,e),this.scheduleReconnect();return}this.ws=t,t.onopen=()=>{this.reconnectDelay=o,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let n;try{n=JSON.parse(e.data)}catch{return}let r=n?.payload??{};switch(q(`recv`,n),n?.type){case t:this.handlers.onEvent?.(r,n?.from_node);break;case p:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case F:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case C:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,g)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:G(),ts:Date.now(),type:e,...t};q(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(ee,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(E,{})}resume(e){this.sendEnvelope(ae,{payload:{resume_from:e}})}close(){if(this.closedByUser=!0,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),void 0),this.ws){this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.onopen=null;try{this.ws.close()}catch{}this.ws=void 0}}},J,Y=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,X=(e,t,n)=>({id:Y(),session_id:e,kind:t,ts:Date.now(),...n}),Z=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},le=e=>{let t=Z(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
|
|
2
|
-
`)},ue=(e,t)=>{H({title:`Approval needed`,body:`Claude wants to use ${t.tool||`a tool`}. Tap to review.`,data:t},t=>{t.node_id&&e(`selectNode`,t.node_id)})},Q=(t,o,p,g,v)=>{let b=g?.event,x=g?.session_id,S=g?.trace_id,C=g?.seq;if(typeof C==`number`&&x){let e=p.lastSeq[x];if(e!==void 0&&C<=e)return;t(`setLastSeq`,{session_id:x,seq:C})}switch(x&&S&&t(`updateSession`,{session_id:x,trace_id:S}),b){case ne:t(`upsertSession`,{session_id:x,node_id:v,status:`running`,cwd:g.cwd,model:g.model,...g.effort===void 0?{}:{effort:g.effort},...g.permission_mode===void 0?{}:{permission_mode:g.permission_mode},trace_id:S});break;case r:{let e=g.sdk_session_id;x&&e&&e!==x&&t(`renameSession`,{from:x,to:e});break}case f:{let e=g.id;e&&p.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`appendDelta`,{session_id:x,stream_id:e,text:g.text??``}):t(`appendEvent`,X(x,`text`,{text:g.text??``,stream_id:e,streaming:!0,trace_id:S}));break}case u:{let e=g.id;e&&p.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`finalizeStream`,{session_id:x,stream_id:e,text:g.text}):t(`appendEvent`,X(x,`text`,{text:g.text,trace_id:S}));break}case a:t(`appendEvent`,X(x,`thinking`,{text:g.text,trace_id:S}));break;case c:t(`appendEvent`,X(x,`tool_use`,{tool:g.tool,tool_use_id:g.tool_use_id,input:g.input,trace_id:S}));break;case s:t(`appendEvent`,X(x,`tool_result`,{tool_use_id:g.tool_use_id,content:g.content,is_error:g.is_error,trace_id:S}));break;case m:t(`addPermission`,{request_id:g.request_id,session_id:x,node_id:v,tool:g.tool,input:g.input,title:g.title,display_name:g.display_name,description:g.description}),ue(o,{node_id:v,session_id:x,request_id:g.request_id,tool:g.display_name||g.title||g.tool});break;case N:for(let e of g.requests??[])t(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:v,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case n:t(`removePermission`,g.request_id);break;case re:t(`finalizeAllStreams`,{session_id:x}),t(`appendEvent`,X(x,`result`,{subtype:g.subtype,is_error:g.is_error,text:g.result,cost_usd:g.cost_usd,cut_uuid:g.cut_uuid,sdk_session_id:g.sdk_session_id,trace_id:S})),t(`updateSession`,{session_id:x,status:`idle`,cost_usd:g.cost_usd});break;case d:t(`appendEvent`,X(x,`notice`,{text:g.text,subtype:g.code,command:g.command,level:g.level}));break;case i:t(`finalizeAllStreams`,{session_id:x}),t(`appendEvent`,X(x,`error`,{text:g.message,trace_id:S})),t(`updateSession`,{session_id:x,status:`error`});break;case h:t(`finalizeAllStreams`,{session_id:x}),t(`updateSession`,{session_id:x,status:`closed`});break;case e:t(`rewindToCut`,{session_id:x,cut_uuid:g.cut_uuid}),g.prompt&&t(`appendEvent`,X(x,`prompt`,{text:g.prompt,trace_id:S})),t(`updateSession`,{session_id:x,status:`running`});break;case l:o(`resyncSession`,x);break;case M:for(let e of g.sessions??[])t(`upsertSession`,{session_id:e.session_id,node_id:v,status:e.status??`running`,started:!0,cwd:e.cwd,model:e.model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}});break;case y:if(v){t(`setHistory`,{node_id:v,sessions:g.sessions??[]}),t(`updateStatus`,{key:`getHistory`,value:B.Success});let e=p.historyRef;e&&e.node_id===v&&!p.currentSessionId&&o(`getHistoryDetail`,e)}break;case P:de(t,p,g,v);break;case j:t(`setDirectory`,{path:g.path,parent:g.parent??null,sep:g.sep??`/`,entries:g.entries??[],truncated:g.truncated,error:g.error});break;case _:v&&t(`setCapabilities`,{node_id:v,capabilities:{providers:g.providers??[]}});break;default:break}},de=(e,t,n,r)=>{let i=n?.session_id,a=n?.provider===`codex`?`codex`:`claude`;if(!i||!r)return;let o=a===`claude`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{};e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:n.model??s?.model??l.model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c}),c&&(t.events[i]?.length??0)>0||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:Y(),session_id:i,kind:e.kind,ts:typeof e.ts==`number`?e.ts:Date.now()+t,text:e.text,tool:e.tool,tool_use_id:e.tool_use_id,input:e.input,content:e.content,is_error:e.is_error,subtype:e.subtype,cost_usd:e.cost_usd}))}),e(`setCurrentNode`,r),e(`setCurrentSession`,i),e(`setHistoryRef`,{node_id:r,provider:a,session_id:i})},$={namespaced:!0,state:L,mutations:{resetAll:e=>{Object.assign(e,L())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id));for(let t of e.nodes)t.status=n.has(t.node_id)?`online`:`offline`;for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]||(e.events[t.session_id]=[])},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},renameSession:(e,t)=>{let{from:n,to:r}=t;if(n===r||!e.sessions[n])return;e.sessions[r]={...e.sessions[r],...e.sessions[n],session_id:r},delete e.sessions[n];let i=e.events[n];i&&(i.length||!e.events[r]?.length)&&(e.events[r]=i),delete e.events[n],e.lastSeq[n]!==void 0&&(e.lastSeq[r]=Math.max(e.lastSeq[r]??0,e.lastSeq[n]),delete e.lastSeq[n]);for(let t of e.permissions)t.session_id===n&&(t.session_id=r);e.currentSessionId===n&&(e.currentSessionId=r),e.historyRef?.session_id===n&&(e.historyRef={...e.historyRef,session_id:r})},appendEvent:(e,t)=>{e.events[t.session_id]||(e.events[t.session_id]=[]),e.events[t.session_id].push(t)},truncateEventsBefore:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.findIndex(e=>e.id===t.event_id);r>=0&&(e.events[t.session_id]=n.slice(0,r))},rewindToCut:(e,t)=>{let n=e.events[t.session_id];if(!n)return;if(!t.cut_uuid){e.events[t.session_id]=[];return}let r=n.findIndex(e=>e.kind===`result`&&e.cut_uuid===t.cut_uuid);r>=0&&(e.events[t.session_id]=n.slice(0,r+1))},setLastSeq:(e,t)=>{let n=e.lastSeq[t.session_id]??0;t.seq>n&&(e.lastSeq[t.session_id]=t.seq)},appendDelta:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(r.text=(r.text??``)+(t.text??``))},finalizeStream:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(typeof t.text==`string`&&(r.text=t.text),r.streaming=!1)},finalizeAllStreams:(e,t)=>{let n=e.events[t.session_id];if(n)for(let e of n)e.streaming&&=!1},setEvents:(e,t)=>{e.events[t.session_id]=t.events},setHistory:(e,t)=>{e.history[t.node_id]=t.sessions},setHistoryRef:(e,t)=>{e.historyRef=t},setDirectory:(e,t)=>{e.directory=t,e.directoryLoading=!1},setDirectoryLoading:(e,t)=>{e.directoryLoading=t},setLastComposer:(e,t)=>{e.lastComposer={...e.lastComposer,[t.node_id]:{...e.lastComposer[t.node_id],...t.prefs}}},setCapabilities:(e,t)=>{e.capabilities[t.node_id]=t.capabilities},addPermission:(e,t)=>{e.permissions.some(e=>e.request_id===t.request_id)||e.permissions.push(t)},removePermission:(e,t)=>{e.permissions=e.permissions.filter(e=>e.request_id!==t)},removeNodeData:(e,t)=>{delete e.history[t],delete e.capabilities[t],e.historyRef?.node_id===t&&(e.historyRef=void 0);for(let n of Object.values(e.sessions))n.node_id===t&&(delete e.sessions[n.session_id],delete e.events[n.session_id],delete e.lastSeq[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:({commit:e})=>{e(`resetAll`)},getApplications:async()=>{},setApplication:async()=>{},getNodes:async({commit:e,rootState:t})=>{let n=t.token?.access;if(!n)return[];e(`updateStatus`,{key:`getNodes`,value:B.Request});try{let{data:t}=await z.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:B.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:B.Error}),t}},claimPair:async({commit:e,dispatch:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);e(`updateStatus`,{key:`claimPair`,value:B.Request});try{let{data:n}=await z.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:B.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:B.Error}),t}},deleteNode:async({commit:e,dispatch:t,state:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);e(`updateStatus`,{key:`deleteNode`,value:B.Request});try{await z.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:B.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:B.Error}),t}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(J?.isOpen||(J?.close(),e(`setConnection`,`connecting`),J=new ce(i,{onOpen:()=>{e(`setConnection`,`connected`);let r={...n.lastSeq};Object.keys(r).length&&J?.resume(r),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId),t(`requestSessions`,n.currentNodeId),t(`requestPendingPermissions`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>Q(e,t,n,r,i),onNodesSnapshot:t=>{e(`mergeNodeSnapshot`,t)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),J.connect()))},disconnect:({commit:e})=>{J?.close(),J=void 0,e(`setConnection`,`disconnected`)},selectNode:({commit:e,dispatch:t,state:n},r)=>{if(e(`setCurrentNode`,r),!r){e(`setCurrentSession`,void 0);return}let i=Object.values(n.sessions).filter(e=>e.node_id===r).map(e=>e.session_id);e(`setCurrentSession`,i.length?i[i.length-1]:void 0),t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r)},requestSessions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:O})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:v})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(I()){let t=await W(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await z.savePushSubscription({kind:R()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await V();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await z.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await se(e.vapid_public_key);t&&await z.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(I()||!t)return;let n=await U();if(n)try{await z.deletePushSubscription({endpoint:n},{token:t})}catch(e){console.warn(`[codingBridge] failed to deregister web push`,e)}},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!J||!i&&!a&&!o)return;let s=Y(),c=t.currentSessionId,l=c?t.sessions[c]:void 0;if(!l||!l.started){let t=l?.provider||n.provider||`claude`;l?(c=l.session_id,e(`updateSession`,{session_id:c,status:`starting`,trace_id:s,...n.cwd?{cwd:n.cwd}:{},...n.model===void 0?{}:{model:n.model},...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}})):(c=Y(),e(`upsertSession`,{session_id:c,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,effort:n.effort,permission_mode:n.permissionMode,provider:t,trace_id:s}),e(`setCurrentSession`,c)),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),J.sendToNode(r,{action:S,session_id:c,trace_id:s,prompt:i,cwd:n.cwd||l?.cwd||void 0,model:n.model||l?.model||void 0,permission_mode:n.permissionMode||`default`,provider:t,effort:n.effort||void 0,images:a,attachments:o,resume_session_id:l?.session_id||void 0})}else e(`updateSession`,{session_id:c,trace_id:s}),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,status:`running`,model:n.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),J.sendToNode(r,{action:x,session_id:c,trace_id:s,prompt:i,model:n.model??``,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode},images:a,attachments:o})},editPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=t.currentSessionId,a=n.prompt?.trim();if(!r||!i||!J||!a)return;let o=t.sessions[i],s=t.events[i]??[],c=s.findIndex(e=>e.id===n.eventId);if(!o||c<0)return;let l;for(let e=c-1;e>=0;e--)if(s[e].kind===`result`&&s[e].cut_uuid){l=s[e].cut_uuid;break}let u=n.images?.length?n.images:void 0,d=n.attachments?.length?n.attachments:void 0,f=Y();e(`truncateEventsBefore`,{session_id:i,event_id:n.eventId}),e(`updateSession`,{session_id:i,status:`running`,trace_id:f,model:n.model||o.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),e(`appendEvent`,X(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),J.sendToNode(r,{action:ie,session_id:i,trace_id:f,cut_uuid:l,prompt:a,model:n.model||o.model||void 0,permission_mode:n.permissionMode||void 0,effort:n.effort||void 0,images:u,attachments:d,restore_code:!!n.restoreCode})},retryLastPrompt:({commit:e,dispatch:t,state:n})=>{let r=n.currentSessionId;if(!r)return;let i=n.sessions[r],a=[...n.events[r]??[]].reverse().find(e=>e.kind===`prompt`);!i||!a||(e(`updateSession`,{session_id:r,started:!1}),t(`sendPrompt`,{prompt:a.text??``,cwd:i.cwd,model:i.model,provider:i.provider,images:a.images,attachments:a.attachments}))},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!J||J.sendToNode(n,{action:A,session_id:t})},closeSession:({commit:e,state:t},n)=>{let r=n??t.currentSessionId;if(!r)return;let i=t.sessions[r]?.node_id??t.currentNodeId;i&&J&&J.sendToNode(i,{action:b,session_id:r}),e(`updateSession`,{session_id:r,status:`closed`}),t.currentSessionId===r&&e(`setCurrentSession`,void 0)},resolvePermission:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:T,request_id:n.request_id,decision:n.decision}),e(`removePermission`,n.request_id))},answerQuestion:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:T,request_id:n.request_id,decision:`allow`,answer:Z(n.output),answer_text:le(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:e,state:t},n)=>{let r=n??t.currentNodeId;!r||!J||(e(`updateStatus`,{key:`getHistory`,value:B.Request}),J.sendToNode(r,{action:te,limit:200}))},getHistoryDetail:(e,t)=>{!t?.node_id||!t?.session_id||!J||J.sendToNode(t.node_id,{action:D,provider:t.provider,session_id:t.session_id})},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!J||(e(`setDirectoryLoading`,!0),J.sendToNode(r,{action:oe,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:k})}}};export{$ as codingBridge,$ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ur as e}from"./index-CpdVsIF6.js";var t=e(`PushNotifications`,{});export{t as PushNotifications};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{st as e}from"./constants-CwLEZ_AF.js";import{qt as t,zn as n}from"./index-CpdVsIF6.js";import{t as r}from"./createTaskActions-CU-Q65M2.js";var i=r({serviceId:e,operator:t,type:`fish_tts`}),a=async({commit:e,state:n})=>{let r=n.credential?.token;if(r)try{let{data:n}=await t.listModels({self:!0,page_size:50,page_number:1},{token:r});return e(`setVoices`,n?.items??[]),n?.items??[]}catch(e){console.error(`fish.getVoices failed`,e);return}},o={namespaced:!0,state:n,mutations:{setTasks:(e,t)=>{e.tasks=t},setApplication:(e,t)=>{e.application=t},setApplications:(e,t)=>{e.applications=t},setConfig:(e,t)=>{e.config=t},setCredential:(e,t)=>{e.credential=t},setService:(e,t)=>{e.service=t},setTasksActive:(e,t)=>{e.tasks={...e.tasks,active:t}},setTasksItems:(e,t)=>{e.tasks={...e.tasks,items:t}},setTasksTotal:(e,t)=>{e.tasks={...e.tasks,total:t}},setVoices:(e,t)=>{e.voices=t},resetAll:e=>{Object.assign(e,n())}},actions:{...i,getVoices:a}};export{o as default,o as fish};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,Bt as n,D as r,E as i,F as a,H as o,Ht as s,J as c,L as l,N as u,O as ee,Ot as d,P as f,Pt as p,S as m,St as te,Ut as h,V as g,Vt as _,Wt as ne,Z as v,at as y,b as re,bt as b,ct as ie,et as x,gt as S,j as ae,k as C,pt as oe,rt as w,u as T,ut as E}from"./vendor-chart-BJCvKk8-.js";import{a as D,c as se,t as O}from"./install-CmiepWqE.js";import{a as k,f as A,n as j,r as M,s as N,v as P}from"./runtime-B1Eal4u3.js";import{$ as ce,Dt as F,E as le,H as I,Lt as L,N as ue,Nt as R,U as z,W as B,_ as de,bt as fe,et as V,g as H,lt as U,tt as W,vt as pe}from"./use-deprecated-BzKQGDXN.js";import{t as G}from"./debounce-DDZaE3JE.js";import{n as K}from"./scroll-ChHyik37.js";import{r as me,t as he}from"./teleport-CVHCI9MK.js";import{t as q}from"./aria-CQaCu-Fx.js";import{Vr as J,zr as ge}from"./index-CpdVsIF6.js";var _e=`Expected a function`;function Y(e,t,n){var r=!0,i=!0;if(typeof e!=`function`)throw TypeError(_e);return P(n)&&(r=`leading`in n?!!n.leading:r,i=`trailing`in n?!!n.trailing:i),G(e,t,{leading:r,maxWait:t,trailing:i})}var ve=(e,t)=>{if(!R||!e||!t)return!1;let n=e.getBoundingClientRect(),r;return r=t instanceof Element?t.getBoundingClientRect():{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},n.top<r.bottom&&n.bottom>r.top&&n.right>r.left&&n.left<r.right},ye=e=>{let t,n;return e.type===`touchend`?(n=e.changedTouches[0].clientY,t=e.changedTouches[0].clientX):e.type.startsWith(`touch`)?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},be=j({urlList:{type:M(Array),default:()=>J([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:Boolean,teleported:Boolean,closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:M(String)}}),X={close:()=>!0,switch:e=>N(e),rotate:e=>N(e)},xe=O(D(a({...a({name:`ElImageViewer`}),props:be,emits:X,setup(n,{expose:a,emit:s}){let l=n,p={CONTAIN:{name:`contain`,icon:S(ue)},ORIGINAL:{name:`original`,icon:S(B)}},g,y=``,{t:ae}=pe(),D=se(`image-viewer`),{nextZIndex:O}=fe(),k=b(),A=b([]),j=oe(),M=b(!0),N=b(l.initialIndex),P=te(p.CONTAIN),L=b({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),R=b(l.zIndex??O()),G=i(()=>{let{urlList:e}=l;return e.length<=1}),K=i(()=>N.value===0),J=i(()=>N.value===l.urlList.length-1),ge=i(()=>l.urlList[N.value]),_e=i(()=>[D.e(`btn`),D.e(`prev`),D.is(`disabled`,!l.infinite&&K.value)]),ve=i(()=>[D.e(`btn`),D.e(`next`),D.is(`disabled`,!l.infinite&&J.value)]),ye=i(()=>{let{scale:e,deg:t,offsetX:n,offsetY:r,enableTransition:i}=L.value,a=n/e,o=r/e,s=t*Math.PI/180,c=Math.cos(s),l=Math.sin(s);a=a*c+o*l,o=o*c-n/e*l;let u={transform:`scale(${e}) rotate(${t}deg) translate(${a}px, ${o}px)`,transition:i?`transform .3s`:``};return P.value.name===p.CONTAIN.name&&(u.maxWidth=u.maxHeight=`100%`),u}),be=i(()=>`${N.value+1} / ${l.urlList.length}`);function X(){Se(),g?.(),document.body.style.overflow=y,s(`close`)}function xe(){let e=Y(e=>{switch(e.code){case q.esc:l.closeOnPressEscape&&X();break;case q.space:De();break;case q.left:Oe();break;case q.up:$(`zoomIn`);break;case q.right:Q();break;case q.down:$(`zoomOut`);break}}),t=Y(e=>{$((e.deltaY||e.deltaX)<0?`zoomIn`:`zoomOut`,{zoomRate:l.zoomRate,enableTransition:!1})});j.run(()=>{F(document,`keydown`,e),F(document,`wheel`,t)})}function Se(){j.stop()}function Ce(){M.value=!1}function we(e){M.value=!1,e.target.alt=ae(`el.image.error`)}function Te(e){if(M.value||e.button!==0||!k.value)return;L.value.enableTransition=!1;let{offsetX:t,offsetY:n}=L.value,r=e.pageX,i=e.pageY,a=Y(e=>{L.value={...L.value,offsetX:t+e.pageX-r,offsetY:n+e.pageY-i}}),o=F(document,`mousemove`,a);F(document,`mouseup`,()=>{o()}),e.preventDefault()}function Ee(){L.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function De(){if(M.value)return;let e=U(p),t=Object.values(p),n=P.value.name;P.value=p[e[(t.findIndex(e=>e.name===n)+1)%e.length]],Ee()}function Z(e){let t=l.urlList.length;N.value=(e+t)%t}function Oe(){K.value&&!l.infinite||Z(N.value-1)}function Q(){J.value&&!l.infinite||Z(N.value+1)}function $(e,t={}){if(M.value)return;let{minScale:n,maxScale:r}=l,{zoomRate:i,rotateDeg:a,enableTransition:o}={zoomRate:l.zoomRate,rotateDeg:90,enableTransition:!0,...t};switch(e){case`zoomOut`:L.value.scale>n&&(L.value.scale=Number.parseFloat((L.value.scale/i).toFixed(3)));break;case`zoomIn`:L.value.scale<r&&(L.value.scale=Number.parseFloat((L.value.scale*i).toFixed(3)));break;case`clockwise`:L.value.deg+=a,s(`rotate`,L.value.deg);break;case`anticlockwise`:L.value.deg-=a,s(`rotate`,L.value.deg);break}L.value.enableTransition=o}function ke(e){e.detail?.focusReason===`pointer`&&e.preventDefault()}function Ae(){l.closeOnPressEscape&&X()}function je(e){if(e.ctrlKey&&(e.deltaY<0||e.deltaY>0))return e.preventDefault(),!1}return ie(ge,()=>{o(()=>{A.value[0]?.complete||(M.value=!0)})}),ie(N,e=>{Ee(),s(`switch`,e)}),c(()=>{xe(),g=F(`wheel`,je,{passive:!1}),y=document.body.style.overflow,document.body.style.overflow=`hidden`}),a({setActiveItem:Z}),(n,i)=>(v(),ee(d(he),{to:`body`,disabled:!n.teleported},{default:E(()=>[f(T,{name:`viewer-fade`,appear:``},{default:E(()=>[r(`div`,{ref_key:`wrapper`,ref:k,tabindex:-1,class:_(d(D).e(`wrapper`)),style:h({zIndex:R.value})},[f(d(me),{loop:``,trapped:``,"focus-trap-el":k.value,"focus-start-el":`container`,onFocusoutPrevented:ke,onReleaseRequested:Ae},{default:E(()=>[r(`div`,{class:_(d(D).e(`mask`)),onClick:re(e=>n.hideOnClickModal&&X(),[`self`])},null,10,[`onClick`]),C(` CLOSE `),r(`span`,{class:_([d(D).e(`btn`),d(D).e(`close`)]),onClick:X},[f(d(W),null,{default:E(()=>[f(d(le))]),_:1})],2),C(` ARROW `),d(G)?C(`v-if`,!0):(v(),t(m,{key:0},[r(`span`,{class:_(d(_e)),onClick:Oe},[f(d(W),null,{default:E(()=>[f(d(H))]),_:1})],2),r(`span`,{class:_(d(ve)),onClick:Q},[f(d(W),null,{default:E(()=>[f(d(de))]),_:1})],2)],64)),n.$slots.progress||n.showProgress?(v(),t(`div`,{key:1,class:_([d(D).e(`btn`),d(D).e(`progress`)])},[x(n.$slots,`progress`,{activeIndex:N.value,total:n.urlList.length},()=>[u(ne(d(be)),1)])],2)):C(`v-if`,!0),C(` ACTIONS `),r(`div`,{class:_([d(D).e(`btn`),d(D).e(`actions`)])},[r(`div`,{class:_(d(D).e(`actions__inner`))},[x(n.$slots,`toolbar`,{actions:$,prev:Oe,next:Q,reset:De,activeIndex:N.value,setActiveItem:Z},()=>[f(d(W),{onClick:e=>$(`zoomOut`)},{default:E(()=>[f(d(V))]),_:1},8,[`onClick`]),f(d(W),{onClick:e=>$(`zoomIn`)},{default:E(()=>[f(d(ce))]),_:1},8,[`onClick`]),r(`i`,{class:_(d(D).e(`actions__divider`))},null,2),f(d(W),{onClick:De},{default:E(()=>[(v(),ee(w(d(P).icon)))]),_:1}),r(`i`,{class:_(d(D).e(`actions__divider`))},null,2),f(d(W),{onClick:e=>$(`anticlockwise`)},{default:E(()=>[f(d(I))]),_:1},8,[`onClick`]),f(d(W),{onClick:e=>$(`clockwise`)},{default:E(()=>[f(d(z))]),_:1},8,[`onClick`])])],2)],2),C(` CANVAS `),r(`div`,{class:_(d(D).e(`canvas`))},[(v(!0),t(m,null,e(n.urlList,(e,r)=>(v(),t(m,{key:r},[r===N.value?(v(),t(`img`,{key:0,ref_for:!0,ref:e=>A.value[r]=e,src:e,style:h(d(ye)),class:_(d(D).e(`img`)),crossorigin:n.crossorigin,onLoad:Ce,onError:we,onMousedown:Te},null,46,[`src`,`crossorigin`])):C(`v-if`,!0)],64))),128))],2),x(n.$slots,`default`)]),_:3},8,[`focus-trap-el`])],6)]),_:3})]),_:3},8,[`disabled`]))}}),[[`__file`,`image-viewer.vue`]])),Se=j({hideOnClickModal:Boolean,src:{type:String,default:``},fit:{type:String,values:[``,`contain`,`cover`,`fill`,`none`,`scale-down`],default:``},loading:{type:String,values:[`eager`,`lazy`]},lazy:Boolean,scrollContainer:{type:M([String,Object])},previewSrcList:{type:M(Array),default:()=>J([])},previewTeleported:Boolean,zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:M(String)}}),Ce={load:e=>e instanceof Event,error:e=>e instanceof Event,switch:e=>N(e),close:()=>!0,show:()=>!0},we=O(D(a({...a({name:`ElImage`,inheritAttrs:!1}),props:Se,emits:Ce,setup(e,{expose:a,emit:u}){let f=e,{t:te}=pe(),h=se(`image`),re=y(),S=i(()=>A(Object.entries(re).filter(([e])=>/^(data-|on[A-Z])/i.test(e)||[`id`,`style`].includes(e)))),oe=ge({excludeListeners:!0,excludeKeys:i(()=>Object.keys(S.value))}),w=b(),T=b(!1),D=b(!0),O=b(!1),j=b(),M=b(),N=R&&`loading`in HTMLImageElement.prototype,P,ce=i(()=>[h.e(`inner`),I.value&&h.e(`preview`),D.value&&h.is(`loading`)]),le=i(()=>{let{fit:e}=f;return R&&e?{objectFit:e}:{}}),I=i(()=>{let{previewSrcList:e}=f;return p(e)&&e.length>0}),ue=i(()=>{let{previewSrcList:e,initialIndex:t}=f,n=t;return t>e.length-1&&(n=0),n}),z=i(()=>f.loading===`eager`?!1:!N&&f.loading===`lazy`||f.lazy),B=()=>{R&&(D.value=!0,T.value=!1,w.value=f.src)};function de(e){D.value=!1,T.value=!1,u(`load`,e)}function fe(e){D.value=!1,T.value=!0,u(`error`,e)}function V(){ve(j.value,M.value)&&(B(),W())}let H=L(V,200,!0);async function U(){if(!R)return;await o();let{scrollContainer:e}=f;k(e)?M.value=e:n(e)&&e!==``?M.value=document.querySelector(e)??void 0:j.value&&(M.value=K(j.value)),M.value&&(P=F(M,`scroll`,H),setTimeout(()=>V(),100))}function W(){!R||!M.value||!H||(P?.(),M.value=void 0)}function G(){I.value&&(O.value=!0,u(`show`))}function me(){O.value=!1,u(`close`)}function he(e){u(`switch`,e)}return ie(()=>f.src,()=>{z.value?(D.value=!0,T.value=!1,W(),U()):B()}),c(()=>{z.value?U():B()}),a({showPreview:G}),(e,n)=>(v(),t(`div`,g({ref_key:`container`,ref:j},d(S),{class:[d(h).b(),e.$attrs.class]}),[T.value?x(e.$slots,`error`,{key:0},()=>[r(`div`,{class:_(d(h).e(`error`))},ne(d(te)(`el.image.error`)),3)]):(v(),t(m,{key:1},[w.value===void 0?C(`v-if`,!0):(v(),t(`img`,g({key:0},d(oe),{src:w.value,loading:e.loading,style:d(le),class:d(ce),crossorigin:e.crossorigin,onClick:G,onLoad:de,onError:fe}),null,16,[`src`,`loading`,`crossorigin`])),D.value?(v(),t(`div`,{key:1,class:_(d(h).e(`wrapper`))},[x(e.$slots,`placeholder`,{},()=>[r(`div`,{class:_(d(h).e(`placeholder`))},null,2)])],2)):C(`v-if`,!0)],64)),d(I)?(v(),t(m,{key:2},[O.value?(v(),ee(d(xe),{key:0,"z-index":e.zIndex,"initial-index":d(ue),infinite:e.infinite,"zoom-rate":e.zoomRate,"min-scale":e.minScale,"max-scale":e.maxScale,"show-progress":e.showProgress,"url-list":e.previewSrcList,crossorigin:e.crossorigin,"hide-on-click-modal":e.hideOnClickModal,teleported:e.previewTeleported,"close-on-press-escape":e.closeOnPressEscape,onClose:me,onSwitch:he},ae({toolbar:E(t=>[x(e.$slots,`toolbar`,s(l(t)))]),default:E(()=>[e.$slots.viewer?(v(),t(`div`,{key:0},[x(e.$slots,`viewer`)])):C(`v-if`,!0)]),_:2},[e.$slots.progress?{name:`progress`,fn:E(t=>[x(e.$slots,`progress`,s(l(t)))])}:void 0]),1032,[`z-index`,`initial-index`,`infinite`,`zoom-rate`,`min-scale`,`max-scale`,`show-progress`,`url-list`,`crossorigin`,`hide-on-click-modal`,`teleported`,`close-on-press-escape`])):C(`v-if`,!0)],64)):C(`v-if`,!0)],16))}}),[[`__file`,`image.vue`]]));export{ye as n,we as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.pay":{message:`Payer`,description:`Texte dans le bouton, utilisé pour payer la commande.`},"button.continuePay":{message:`Continuer le paiement`,description:`Texte dans le bouton, utilisé pour continuer le paiement de la commande.`},"button.checkDetail":{message:`Voir les détails`,description:`Texte dans le bouton, utilisé pour voir les détails de la commande.`},"button.query":{message:`Rechercher`,description:`Texte dans le bouton, utilisé pour rechercher la commande.`},"button.finish":{message:`Terminer manuellement`,description:`Texte dans le bouton, utilisé pour terminer manuellement la commande.`},"button.update":{message:`Mettre à jour`,description:`Texte dans le bouton, utilisé pour mettre à jour la commande.`},"field.id":{message:`ID de commande`,description:`L'ID de la commande.`},"field.amount":{message:`Montant`,description:`Le montant en points de la commande.`},"field.price":{message:`Montant`,description:`Le montant en points de la commande.`},"field.description":{message:`Description de la commande`,description:`La description de la commande.`},"field.state":{message:`État`,description:`L'état de la commande.`},"field.createdAt":{message:`Date de création`,description:`La date de création de la commande.`},"field.service":{message:`Nom du service`,description:`Le nom du service.`},"field.payWay":{message:`Méthode de paiement`,description:`La méthode de paiement de la commande.`},"field.api":{message:`API`,description:`L'API est un service en ligne.`},"field.proxy":{message:`Proxy`,description:`Le proxy est un service en ligne, utilisé pour le transfert de données via un proxy HTTP.`},"message.paidSuccessfully":{message:`Paiement réussi`,description:`Message indiquant que le paiement a été réussi.`},"message.orderExpired":{message:`La commande a expiré, veuillez créer une nouvelle commande pour effectuer le paiement.`,description:`Message pour une commande expirée.`},"message.createFailed":{message:`Échec de la création`,description:`Message indiquant que la création a échoué.`},"message.wechatPayHelp":{message:`Veuillez ouvrir WeChat sur votre téléphone et scanner pour terminer le paiement`,description:`Message d'aide pour le paiement WeChat.`},"message.wechatPayMobileGuide":{message:`Mobile browsers can't open WeChat Pay directly. Copy the payment link below and open it inside WeChat to continue.`,description:`Guide shown to users on a mobile browser outside WeChat, where H5 WeChat Pay is unavailable.`},"button.copyPayLink":{message:`Copy payment link`,description:`Label for the button that copies the current page URL so the user can paste it inside WeChat.`},"message.wechatPayMobileHint":{message:`After copying, open WeChat, paste the link into any chat or the search bar, and tap it to complete payment.`,description:`Secondary hint shown beneath the copy-link button to guide users through pasting the link inside WeChat.`},"message.free":{message:`Gratuit`,description:`Message pour une commande gratuite.`},"message.buyInExternalUrl":{message:`Veuillez terminer le paiement via le lien externe`,description:`Message pour le paiement via un lien externe.`},"message.updateFailed":{message:`Échec de la mise à jour`,description:`Message indiquant que la mise à jour a échoué.`},"message.updateSuccessfully":{message:`Mise à jour réussie`,description:`Message indiquant que la mise à jour a réussi.`},"message.confirmFinish":{message:`Cette action mettra manuellement la commande dans l'état de paiement et complétera le traitement de distribution, ce qui est irréversible. Veuillez confirmer que le client a terminé le paiement, souhaitez-vous continuer ?`,description:`Message de confirmation de la finalisation.`},"state.pending":{message:`En attente de paiement`,description:`L'état de la commande, indiquant que la commande attend encore le paiement de l'utilisateur.`},"state.paid":{message:`Payé`,description:`L'état de la commande, indiquant que la commande a été payée.`},"state.finished":{message:`Terminé`,description:`L'état de la commande, indiquant que la commande a été complétée.`},"state.expired":{message:`Délai de paiement dépassé`,description:`L'état de la commande, indiquant que la commande a expiré.`},"state.failed":{message:`Échec du paiement`,description:`L'état de la commande, indiquant que le paiement de la commande a échoué.`},"title.info":{message:`Informations sur la commande`,description:`Titre affiché sur le site, indiquant les informations sur la commande.`},"title.wechatPay":{message:`Paiement WeChat`,description:`Titre affiché sur le site, indiquant le paiement WeChat.`},"title.aliPay":{message:`Alipay`,description:`Titre affiché sur le site, indiquant le paiement Alipay, qui est un paiement en ligne.`},"title.stripe":{message:`Stripe`,description:`Titre affiché sur le site, indiquant le paiement Stripe, qui est un paiement en ligne.`},"title.manageOrder":{message:`Gérer la commande`,description:`Titre affiché sur le site, indiquant la gestion des commandes.`},"title.x402":{message:`Cryptomonnaie`,description:`Titre affiché sur le site, indiquant le paiement en cryptomonnaie (basé sur le plan de paiement X402).`},"title.paypal":{message:`PayPal`,description:`Titre affiché sur le site, indiquant le paiement PayPal.`},"message.discountTag":{message:`{percent}% de réduction`,description:`Texte du badge affichant le pourcentage de réduction appliqué.`},"message.discountHint":{message:`Vous êtes notre client VIP exclusif, vous bénéficiez automatiquement d'une réduction de {percent}%.`,description:`Texte indiquant à l'utilisateur qu'il bénéficie d'une réduction en raison de son statut VIP.`},"message.x402DiscountApplied":{message:`Avec le paiement X402, bénéficiez d'une réduction supplémentaire de {percent}%.`,description:`Texte expliquant la réduction supplémentaire apportée par le paiement X402.`},"message.x402DiscountTag":{message:`{percent}% de réduction`,description:`Met en avant le pourcentage de réduction supplémentaire disponible avec le paiement X402.`},"message.x402DiscountHint":{message:`Choisissez le paiement X402 pour bénéficier immédiatement d'une remise supplémentaire de {percent}%.`,description:`Texte informant l'utilisateur qu'il peut débloquer une remise supplémentaire en choisissant le paiement X402.`},"message.x402IntroShort":{message:`Effectuez le paiement USDC directement avec votre portefeuille.`,description:`Texte d'introduction court.`},"message.x402TabWallet":{message:`Paiement par portefeuille`,description:`Titre de l'onglet de paiement par portefeuille.`},"message.x402TabApi":{message:`Programmable`,description:`Titre de l'onglet programmable.`},"message.x402WalletTitle":{message:`Connectez votre portefeuille et payez en USDC`,description:`Titre de paiement rapide X402 par portefeuille (USDC).`},"message.x402WalletConnected":{message:`Connecté`,description:`Étiquette affichée lorsque le portefeuille est connecté.`},"message.x402ConnectWallet":{message:`Connecter le portefeuille`,description:`Texte du bouton pour connecter le portefeuille EVM.`},"message.x402NoWalletDesc":{message:`Veuillez utiliser un navigateur compatible avec les portefeuilles (recommandé : Chrome/Brave) ou installer l'extension MetaMask/Phantom ; vous pouvez également ouvrir cette page dans le navigateur intégré de l'application de portefeuille mobile.`,description:`Description générale sans portefeuille.`},"message.x402SwitchNetwork":{message:`Veuillez changer le réseau de votre portefeuille en {network}`,description:`Texte informant l'utilisateur de changer vers le réseau de chaîne spécifié.`},"message.x402SolanaNotEnabled":{message:`Le backend Solana X402 n'est pas encore activé.`,description:`Message affiché lorsque la commande n'active pas Solana X402.`},"message.x402NeedConnectAccount":{message:`Veuillez d'abord connecter votre portefeuille.`,description:`Alerte affichée lorsque le portefeuille n'est pas connecté.`},"message.x402ConfirmTitle":{message:`Confirmer le paiement`,description:`Titre de la fenêtre contextuelle de confirmation de paiement X402.`},"message.x402ConfirmDesc":{message:`Confirmez-vous le paiement de USDC sur {network} ?`,description:`Description de la fenêtre contextuelle de confirmation de paiement X402.`},"message.x402StepsTitle":{message:`Étapes de paiement`,description:`Titre des étapes.`},"message.x402Step1":{message:`Connectez votre portefeuille (si non installé, veuillez d'abord installer l'extension puis rafraîchir cette page ou ouvrir cette page avec votre portefeuille mobile)`,description:`Texte pour l'étape 1.`},"message.x402Step2":{message:`Modifiez les paramètres du portefeuille, assurez-vous que le réseau du portefeuille est {network}`,description:`Texte pour l'étape 2.`},"message.x402Step3":{message:`Cliquez sur 'Utiliser le paiement par portefeuille', puis terminez la signature d'autorisation dans le portefeuille`,description:`Texte pour l'étape 3.`},"message.x402Step4":{message:`Après une signature réussie, nous réglerons automatiquement, et cette page se mettra à jour pour indiquer que le paiement est effectué.`,description:`Texte pour l'étape 4.`},"message.x402IntegrationResourceLabel":{message:`Adresse de l'API de paiement`,description:`Étiquette pour l'adresse de l'API de paiement.`},"message.x402IntegrationPayToLabel":{message:`Adresse de règlement`,description:`Étiquette affichant l'adresse de règlement sur la blockchain.`},"message.x402IntegrationNetworkLabel":{message:`Réseau`,description:`Étiquette affichant le nom du réseau blockchain.`},"message.x402IntegrationAssetLabel":{message:`Actif de règlement`,description:`Étiquette affichant l'actif de règlement.`},"message.x402IntegrationFallback":{message:`Impossible d'obtenir les données de session complètes, veuillez consulter la documentation de développement ou contacter le support pour obtenir les paramètres nécessaires.`,description:`Message affiché lorsque les données de session ne peuvent pas être récupérées.`},"message.x402IntegrationDocsCta":{message:`Ouvrir le guide de développement X402`,description:`Texte du bouton d'action pour ouvrir le guide des développeurs.`},"message.x402InstallGuideTitle":{message:`Installer l'extension du portefeuille`,description:`Titre de la fenêtre contextuelle d'instructions d'installation du portefeuille.`},"message.x402InstallGuideDesc":{message:`Veuillez suivre les étapes ci-dessous pour installer l'extension {wallet}, puis utilisez le bouton ci-dessous pour rafraîchir cette page et redétecter le portefeuille.`,description:`Description guidant l'utilisateur à installer l'extension du portefeuille.`},"message.x402InstallGuideStep1":{message:`Téléchargez et installez l'extension de navigateur {wallet} sur la nouvelle page ouverte (recommandé : Chrome/Brave).`,description:`Étape 1 de l'installation du portefeuille.`},"message.x402InstallGuideStep2":{message:`Terminez l'installation de l'extension, connectez-vous/déverrouillez et assurez-vous qu'elle est activée dans le profil de navigateur actuel.`,description:`Étape 2 de l'installation du portefeuille.`},"message.x402InstallGuideStep3":{message:`Retournez à cette page, cliquez sur 'J'ai déjà installé' puis essayez de 'Connecter le portefeuille' après avoir rafraîchi.`,description:`Étape 3 de l'installation du portefeuille.`},"message.x402InstallGuideConfirm":{message:`J'ai déjà installé`,description:`Bouton principal après l'installation du portefeuille.`},"message.x402NetworkGuideTitle":{message:`Ajuster les paramètres du réseau`,description:`Titre de la fenêtre contextuelle d'explication sur le réseau non correspondant.`},"message.x402NetworkGuideDesc":{message:`Veuillez suivre les étapes ci-dessous pour changer le réseau de votre portefeuille en {network}, puis rafraîchissez cette page pour redétecter.`,description:`Description guidant l'utilisateur à ajuster le réseau du portefeuille.`},"message.x402NetworkGuideStep1":{message:`Ouvrez l'extension du portefeuille, allez dans Paramètres -> Réseaux actifs.`,description:`Étape 1 des paramètres du réseau.`},"message.x402NetworkGuideStep2":{message:`Dans la liste des réseaux, confirmez que {network} (ou un autre réseau spécifié) est activé. Si c'est le cas, vous pouvez ignorer cette étape.`,description:`Instructions pour la deuxième étape de configuration du réseau, sans avoir besoin de désactiver Ethereum.`},"message.x402NetworkGuideStep3":{message:`Retournez à cette page, cliquez sur « J'ai terminé la configuration » puis essayez de payer à nouveau.`,description:`Étape 3 de la configuration du réseau.`},"message.x402NetworkGuideConfirm":{message:`J'ai terminé la configuration`,description:`Bouton principal après avoir terminé la configuration du réseau.`},"message.x402NetworkSwitchFailed":{message:`Le portefeuille actuel ne prend pas en charge le changement automatique de réseau. Veuillez changer manuellement vers le réseau spécifié dans le portefeuille, puis réessayez.`,description:`Avertir l'utilisateur que le portefeuille ne prend pas en charge le changement automatique de réseau et qu'il doit changer manuellement.`},"message.x402PaymentFailed":{message:`Échec du paiement avec le portefeuille X402, veuillez réessayer plus tard. Si l'échec persiste, veuillez contacter le support et fournir les informations d'erreur.`,description:`Message d'erreur générique affiché lors de l'échec du paiement avec le portefeuille X402.`},"message.x402WalletPayCta":{message:`Payer avec le portefeuille`,description:`Texte du bouton pour effectuer le paiement avec le portefeuille lié.`},"button.refund":{message:`Rembourser`,description:`Texte dans le bouton pour rembourser manuellement une commande.`},"field.applicationId":{message:`ID de la demande`,description:`ID de la demande à laquelle la commande appartient.`},"field.serviceId":{message:`ID du service`,description:`ID du service correspondant à la remise.`},"field.generalDiscount":{message:`Remise générale`,description:`Étiquette affichée lorsque la remise s'applique à tous les services.`},"field.userId":{message:`ID de l'utilisateur`,description:`ID de l'utilisateur bénéficiant de la remise.`},"field.discount":{message:`Remise`,description:`Taux de remise appliqué à la commande de cet utilisateur.`},"field.actions":{message:`Actions`,description:`Titre de la colonne des boutons d'action.`},"message.confirmRefund":{message:`Cette action annulera les droits de cette commande et la marquera comme remboursée, ce qui est irréversible. Veuillez confirmer que le remboursement a été traité, souhaitez-vous continuer ?`,description:`Message de confirmation pour le remboursement.`},"message.x402IntegrationIntro":{message:`La commande actuelle utilise le protocole de paiement X402, veuillez compléter l'intégration côté serveur et initier le paiement selon les paramètres ci-dessous.`,description:`Message d'introduction indiquant qu'il est nécessaire d'utiliser le protocole X402.`},"message.x402IntegrationProtocol":{message:`Appelez l'interface de paiement du facilitateur et complétez la signature et la diffusion. Après un règlement réussi, revenez à cette page pour confirmer l'état.`,description:`Instructions sur les étapes à suivre pour compléter le paiement X402.`},"message.x402IntegrationDocsHint":{message:`Vous souhaitez en savoir plus ? Veuillez consulter la documentation de développement ci-dessous.`,description:`Rappel à l'utilisateur qu'il peut obtenir plus d'informations via la documentation de développement.`},"message.x402WalletTitleEvm":{message:`Portefeuille EVM`,description:`Titre de la carte de connexion du portefeuille EVM.`},"message.x402WalletTitleSolana":{message:`Portefeuille Solana`,description:`Titre de la carte de connexion du portefeuille Solana.`},"message.publicPayNotFound":{message:`Commande introuvable ou expirée.`,description:`Shown on public pay page when the order GET returns 404.`},"message.x402WalletStatusDetected":{message:`Détecté`,description:`Étiquette d'état pour un portefeuille détecté/installé.`},"message.x402WalletStatusInstall":{message:`Installer`,description:`Étiquette d'entrée/état pour l'installation du portefeuille.`},"message.x402WalletStatusQr":{message:`QR Code`,description:`Étiquette d'entrée pour le QR Code WalletConnect.`},"message.x402WalletConnectTitle":{message:`WalletConnect`,description:`Titre de la fenêtre contextuelle du QR Code WalletConnect.`},"message.x402WalletConnectPreparing":{message:`Préparation de WalletConnect…`,description:`Message d'attente lors de la préparation de la connexion WalletConnect.`},"message.x402WalletConnectOpenWallet":{message:`Ouvrir le portefeuille`,description:`Texte du bouton pour ouvrir le portefeuille via WalletConnect sur mobile.`},"message.x402WalletConnectScanHint":{message:`Veuillez utiliser un portefeuille prenant en charge WalletConnect pour scanner le QR Code.`,description:`Message d'instructions sous le QR Code WalletConnect.`},"message.x402SwitchNetworkCta":{message:`Changer pour {network}`,description:`CTA pour changer de réseau.`},"message.x402NoWalletTitle":{message:`Aucun portefeuille EVM détecté`,description:`Titre affiché lorsque le navigateur n'a pas injecté de portefeuille EVM.`},"message.x402NoWalletSafariDesc":{message:`Safari ne prend généralement pas en charge les extensions comme MetaMask. Il est recommandé d'utiliser Chrome/Brave ou d'ouvrir cette page dans le navigateur intégré de l'application mobile du portefeuille.`,description:`Description pour l'absence de portefeuille dans l'environnement Safari.`},"message.x402InstallMetaMask":{message:`Installer MetaMask`,description:`Texte du bouton pour installer MetaMask.`},"message.x402InstallPhantom":{message:`Installer Phantom`,description:`Texte du bouton pour installer Phantom.`},"message.x402ConnectWC":{message:`Se connecter avec WalletConnect`,description:`Texte du bouton pour se connecter avec WalletConnect.`},"message.x402RefreshDetect":{message:`Détecter à nouveau`,description:`Texte du bouton pour redétecter le portefeuille.`},"message.x402MissingWCProjectId":{message:`WalletConnect Project ID non configuré (veuillez définir la variable d'environnement VITE_WALLETCONNECT_PROJECT_ID)`,description:`Message d'avertissement pour l'absence d'ID de projet WalletConnect.`},"message.x402WalletBound":{message:`Lié`,description:`Insigne affiché lorsque le portefeuille est lié.`},"message.userIdRequired":{message:`Veuillez entrer l'ID utilisateur.`,description:`Message d'alerte affiché lorsque l'ID utilisateur est vide.`},"message.serviceIdRequired":{message:`Veuillez sélectionner un service.`,description:`Message d'alerte affiché lorsque l'ID de service est vide.`},"message.discountRequired":{message:`Veuillez entrer un rabais entre 0 et 1.`,description:`Message d'alerte affiché lorsque le rabais n'est pas dans la plage légale.`},"message.discountCreated":{message:`Rabais enregistré avec succès.`,description:`Message d'alerte affiché lorsque le rabais est ajouté avec succès.`},"message.discountUpdated":{message:`Rabais mis à jour avec succès.`,description:`Message d'alerte affiché lorsque le rabais est modifié avec succès.`},"message.discountDeleted":{message:`Rabais supprimé avec succès.`,description:`Message d'alerte affiché lorsque le rabais est supprimé avec succès.`},"state.refunded":{message:`Remboursé`,description:`État de la commande, indiquant que la commande a été remboursée.`},"title.revenueAnalysis":{message:`Analyse des revenus`,description:`Titre de la page d'analyse des revenus.`},"title.todayRevenue":{message:`Montant des transactions d'aujourd'hui`,description:`Montant des transactions d'aujourd'hui.`},"title.last7dRevenue":{message:`Montant des transactions de la semaine dernière`,description:`Montant des transactions de la semaine dernière.`},"title.last30dRevenue":{message:`Montant des transactions du mois dernier`,description:`Montant des transactions des 30 derniers jours.`},"title.last90dRevenue":{message:`Montant des transactions du dernier trimestre`,description:`Montant des transactions des 90 derniers jours.`},"title.revenueTrend":{message:`Tendance des revenus`,description:`Titre du graphique de tendance des revenus.`},"title.manageOrderDiscount":{message:`Gestion des rabais`,description:`Titre de la page de gestion des rabais de commande.`},"title.discountLookup":{message:`Rabais actuel`,description:`Titre de la section affichant le rabais actuel de l'utilisateur.`},"title.createDiscount":{message:`Ajouter un rabais`,description:`Titre de la section pour créer un nouveau rabais.`},"title.updateDiscount":{message:`Mettre à jour le rabais`,description:`Titre de la fenêtre contextuelle pour modifier un rabais.`},"message.wechatPayLongPressTip":{message:`Appuyez longuement sur le QR code ci-dessous et choisissez 'Reconnaitre le QR code' pour finaliser le paiement dans WeChat.`,description:"Tip shown above the Native QR on mobile-WeChat. The user long-presses to recognise the `weixin://wxpay/bizpayurl` URL and pays without leaving WeChat."},"message.wechatPayMobileScanTip":{message:`Enregistrez ou capturez le code QR ci-dessous, ouvrez WeChat, cliquez sur Scanner, sélectionnez l'album en haut à droite, puis choisissez l'image que vous venez d'enregistrer pour finaliser le paiement.`,description:`Texte d'instruction affiché au-dessus du code QR dans un navigateur mobile non WeChat. Guide les utilisateurs à enregistrer l'image du code QR et à utiliser la fonction album de WeChat pour effectuer le paiement.`},"message.creditsValue":{message:`{value} crédits`,description:`Display of credits amount for an order, e.g. '5 credits'. {value} is the formatted credit number.`},"title.totalOrders":{message:`Total Orders`,description:`Summary card: total number of orders matching the current filters.`},"title.totalSpent":{message:`Total Spent`,description:`Summary card: total amount spent across matching orders.`},"title.finishedOrders":{message:`Finished Orders`,description:`Summary card: number of finished orders.`},"title.pendingOrders":{message:`Pending Orders`,description:`Summary card: number of pending orders.`},"button.export":{message:`Export CSV`,description:`Button label to export the filtered orders as CSV.`},"field.allStates":{message:`All States`,description:`Placeholder of the state filter dropdown indicating no specific state is selected.`},"field.allPayWays":{message:`All Payment Methods`,description:`Placeholder of the payment method filter dropdown indicating no specific method is selected.`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.pay":{message:`Оплатить`,description:`Текст в кнопке для оплаты заказа.`},"button.continuePay":{message:`Продолжить оплату`,description:`Текст в кнопке для продолжения оплаты заказа.`},"button.checkDetail":{message:`Просмотреть детали`,description:`Текст в кнопке для просмотра деталей заказа.`},"button.query":{message:`Запрос`,description:`Текст в кнопке для запроса заказа.`},"button.finish":{message:`Завершить вручную`,description:`Текст в кнопке для ручного завершения заказа.`},"button.update":{message:`Обновить`,description:`Текст в кнопке для обновления заказа.`},"field.id":{message:`ID заказа`,description:`ID заказа.`},"field.amount":{message:`Сумма`,description:`Сумма баллов заказа.`},"field.price":{message:`Сумма`,description:`Сумма баллов заказа.`},"field.description":{message:`Описание заказа`,description:`Описание заказа.`},"field.state":{message:`Статус`,description:`Статус заказа.`},"field.createdAt":{message:`Дата создания`,description:`Дата создания заказа.`},"field.service":{message:`Название услуги`,description:`Название услуги.`},"field.payWay":{message:`Способ оплаты`,description:`Способ оплаты заказа.`},"field.api":{message:`API`,description:`API - это онлайн-сервис.`},"field.proxy":{message:`Прокси`,description:`Прокси - это онлайн-сервис, используемый для передачи данных через HTTP.`},"message.paidSuccessfully":{message:`Оплата прошла успешно`,description:`Сообщение об успешной оплате.`},"message.orderExpired":{message:`Заказ истек, пожалуйста, создайте новый заказ для оплаты.`,description:`Сообщение об истечении срока заказа.`},"message.createFailed":{message:`Ошибка создания`,description:`Сообщение об ошибке создания.`},"message.wechatPayHelp":{message:`Пожалуйста, откройте WeChat на телефоне и отсканируйте для завершения оплаты`,description:`Сообщение помощи по оплате через WeChat.`},"message.wechatPayMobileGuide":{message:`Mobile browsers can't open WeChat Pay directly. Copy the payment link below and open it inside WeChat to continue.`,description:`Guide shown to users on a mobile browser outside WeChat, where H5 WeChat Pay is unavailable.`},"button.copyPayLink":{message:`Copy payment link`,description:`Label for the button that copies the current page URL so the user can paste it inside WeChat.`},"message.wechatPayMobileHint":{message:`After copying, open WeChat, paste the link into any chat or the search bar, and tap it to complete payment.`,description:`Secondary hint shown beneath the copy-link button to guide users through pasting the link inside WeChat.`},"message.free":{message:`Бесплатно`,description:`Сообщение о бесплатном заказе.`},"message.buyInExternalUrl":{message:`Пожалуйста, завершите оплату по внешней ссылке`,description:`Сообщение о платеже по внешней ссылке.`},"message.updateFailed":{message:`Ошибка обновления`,description:`Сообщение об ошибке обновления.`},"message.updateSuccessfully":{message:`Обновление прошло успешно`,description:`Сообщение об успешном обновлении.`},"message.confirmFinish":{message:`Это действие вручную установит заказ в статус оплаты и завершит обработку, отменить нельзя. Пожалуйста, подтвердите, что клиент завершил оплату, хотите продолжить?`,description:`Сообщение для подтверждения завершения.`},"state.pending":{message:`Ожидает оплаты`,description:`Статус заказа, указывающий, что заказ ожидает оплаты пользователем.`},"state.paid":{message:`Оплачено`,description:`Статус заказа, указывающий, что заказ оплачен.`},"state.finished":{message:`Завершено`,description:`Статус заказа, указывающий, что заказ завершен.`},"state.expired":{message:`Время оплаты истекло`,description:`Статус заказа, указывающий, что заказ истек.`},"state.failed":{message:`Ошибка оплаты`,description:`Статус заказа, указывающий, что оплата заказа не удалась.`},"title.info":{message:`Информация о заказе`,description:`Заголовок, отображаемый на сайте, указывающий на информацию о заказе.`},"title.wechatPay":{message:`Оплата через WeChat`,description:`Заголовок, отображаемый на сайте, указывающий на оплату через WeChat.`},"title.aliPay":{message:`Оплата через Alipay`,description:`Заголовок, отображаемый на сайте, указывающий на оплату через Alipay.`},"title.stripe":{message:`Stripe`,description:`Заголовок, отображаемый на сайте, указывающий на оплату через Stripe.`},"title.manageOrder":{message:`Управление заказом`,description:`Заголовок, отображаемый на сайте, указывающий на управление заказом.`},"title.x402":{message:`Криптовалюта`,description:`Заголовок, отображаемый на сайте, указывающий на оплату криптовалютой (на основе схемы оплаты X402).`},"title.paypal":{message:`PayPal`,description:`Заголовок, отображаемый на сайте, указывающий на оплату через PayPal.`},"message.discountTag":{message:`{percent}% Скидка`,description:`Текст для отображения процента примененной скидки.`},"message.discountHint":{message:`Вы наш эксклюзивный VIP-клиент и автоматически получаете скидку {percent}%.`,description:`Сообщение, информирующее пользователя о скидке для VIP-клиентов.`},"message.x402DiscountApplied":{message:`При оплате через X402 вы получаете дополнительную скидку {percent}%.`,description:`Сообщение, объясняющее дополнительную скидку при оплате через X402.`},"message.x402DiscountTag":{message:`{percent}% Скидка`,description:`Подчеркнутая скидка, доступная при выборе оплаты через X402.`},"message.x402DiscountHint":{message:`Выберите оплату через X402 и получите дополнительную скидку {percent}%.`,description:`Сообщение для пользователя о том, что оплата через X402 разблокирует дополнительную скидку.`},"message.x402IntroShort":{message:`Выберите кошелек для прямой оплаты USDC.`,description:`Краткое вводное сообщение.`},"message.x402TabWallet":{message:`Оплата через кошелек`,description:`Заголовок вкладки оплаты через кошелек.`},"message.x402TabApi":{message:`Программный`,description:`Заголовок вкладки программного интерфейса.`},"message.x402WalletTitle":{message:`Подключите кошелек и оплатите USDC`,description:`Заголовок быстрого платежа через кошелек X402 (USDC).`},"message.x402WalletConnected":{message:`Подключено`,description:`Метка, отображаемая, когда кошелек подключен.`},"message.x402ConnectWallet":{message:`Подключить кошелек`,description:`Текст кнопки для подключения EVM кошелька.`},"message.x402NoWalletDesc":{message:`Пожалуйста, используйте браузер с поддержкой кошельков (рекомендуем Chrome/Brave) или установите расширение MetaMask/Phantom; также можно открыть эту страницу в встроенном браузере мобильного кошелька.`,description:`Общее сообщение для пользователей без кошелька.`},"message.x402SwitchNetwork":{message:`Пожалуйста, переключите сеть кошелька на {network}`,description:`Сообщение для пользователя о необходимости переключения на указанную сеть.`},"message.x402SolanaNotEnabled":{message:`Бэкэнд Solana X402 еще не активирован.`,description:`Сообщение, когда заказ не активировал Solana X402.`},"message.x402NeedConnectAccount":{message:`Пожалуйста, сначала подключите кошелек.`,description:`Уведомление, отображаемое, когда кошелек не подключен.`},"message.x402ConfirmTitle":{message:`Подтвердите оплату`,description:`Заголовок всплывающего окна подтверждения оплаты X402.`},"message.x402ConfirmDesc":{message:`Подтверждаете оплату USDC на {network}?`,description:`Описание всплывающего окна подтверждения оплаты X402.`},"message.x402StepsTitle":{message:`Шаги оплаты`,description:`Заголовок шагов.`},"message.x402Step1":{message:`Подключите кошелек (если не установлен, сначала установите расширение и обновите эту страницу или откройте эту страницу в мобильном кошельке)`,description:`Текст для шага 1.`},"message.x402Step2":{message:`Измените настройки кошелька, подтвердите, что сеть кошелька - {network}`,description:`Текст для шага 2.`},"message.x402Step3":{message:`Нажмите «Оплатить через кошелек», завершите авторизацию в кошельке`,description:`Текст для шага 3.`},"message.x402Step4":{message:`После успешной подписи мы автоматически завершим расчет, после чего эта страница обновится на статус 'Оплачено'`,description:`Текст для шага 4.`},"message.x402IntegrationResourceLabel":{message:`Адрес платежного интерфейса`,description:`Метка для адреса платежного интерфейса.`},"message.x402IntegrationPayToLabel":{message:`Адрес расчета`,description:`Метка для отображения адреса расчета в блокчейне.`},"message.x402IntegrationNetworkLabel":{message:`Сеть`,description:`Метка для отображения названия сети блокчейна.`},"message.x402IntegrationAssetLabel":{message:`Актив для расчета`,description:`Метка для отображения актива для расчета.`},"message.x402IntegrationFallback":{message:`Не удалось получить полные данные сессии, пожалуйста, обратитесь к документации разработчика или свяжитесь с поддержкой для получения необходимых параметров.`,description:`Сообщение, отображаемое, когда не удается получить данные сессии.`},"message.x402IntegrationDocsCta":{message:`Открыть руководство для разработчиков X402`,description:`Текст кнопки для открытия руководства для разработчиков.`},"message.x402InstallGuideTitle":{message:`Установка расширения кошелька`,description:`Заголовок всплывающего окна с инструкциями по установке кошелька.`},"message.x402InstallGuideDesc":{message:`Пожалуйста, выполните следующие шаги для установки расширения {wallet}, затем используйте кнопку ниже для обновления этой страницы и повторной проверки кошелька.`,description:`Описание для пользователей по установке расширения кошелька.`},"message.x402InstallGuideStep1":{message:`На новой открывшейся странице загрузите и установите расширение {wallet} (рекомендуем Chrome/Brave).`,description:`Шаг 1 по установке кошелька.`},"message.x402InstallGuideStep2":{message:`Завершите установку расширения, войдите/разблокируйте и подтвердите, что оно включено в текущем профиле браузера.`,description:`Шаг 2 по установке кошелька.`},"message.x402InstallGuideStep3":{message:`Вернитесь на эту страницу, нажмите «Я установил», обновите и попробуйте снова «Подключить кошелек».`,description:`Шаг 3 по установке кошелька.`},"message.x402InstallGuideConfirm":{message:`Я установил`,description:`Основная кнопка после завершения установки кошелька.`},"message.x402NetworkGuideTitle":{message:`Настройка сетевых параметров`,description:`Заголовок всплывающего окна с объяснением несоответствия сети.`},"message.x402NetworkGuideDesc":{message:`Пожалуйста, выполните следующие шаги, чтобы переключить сеть кошелька на {network}, после чего обновите эту страницу для повторной проверки.`,description:`Описание для пользователей по настройке сети кошелька.`},"message.x402NetworkGuideStep1":{message:`Откройте расширение кошелька, перейдите в Настройки -> Активные сети.`,description:`Шаг 1 по настройке сети.`},"message.x402NetworkGuideStep2":{message:`В списке сетей подтвердите, что {network} (или другая указанная сеть) включена. Если она включена, этот шаг можно пропустить.`,description:`Описание второго шага настройки сети, Ethereum отключать не нужно.`},"message.x402NetworkGuideStep3":{message:`Вернитесь на эту страницу, нажмите «Я все настроил» и попробуйте оплатить снова.`,description:`Шаг 3 настройки сети.`},"message.x402NetworkGuideConfirm":{message:`Я все настроил`,description:`Основная кнопка после завершения настройки сети.`},"message.x402NetworkSwitchFailed":{message:`Текущий кошелек не поддерживает автоматическое переключение сетей. Пожалуйста, переключитесь на указанную сеть вручную в кошельке и попробуйте снова.`,description:`Сообщение для пользователя о том, что кошелек не поддерживает автоматическое переключение сетей, требуется ручное переключение.`},"message.x402PaymentFailed":{message:`Оплата через X402 кошелек не удалась, пожалуйста, попробуйте позже. Если неудачи повторяются, свяжитесь с поддержкой и предоставьте информацию об ошибке.`,description:`Общее сообщение об ошибке, когда оплата через X402 кошелек не удалась.`},"message.x402WalletPayCta":{message:`Оплатить через кошелек`,description:`Текст кнопки для завершения оплаты с использованием связанного кошелька.`},"button.refund":{message:`Возврат`,description:`Текст на кнопке для ручного возврата заказа.`},"field.applicationId":{message:`ID заявки`,description:`ID заявки, к которой относится заказ.`},"field.serviceId":{message:`ID услуги`,description:`ID услуги, соответствующей скидке.`},"field.generalDiscount":{message:`Общая скидка`,description:`Метка, отображаемая, когда скидка применяется ко всем услугам.`},"field.userId":{message:`ID пользователя`,description:`ID пользователя, получающего скидку.`},"field.discount":{message:`Скидка`,description:`Процент скидки, применяемый к заказу этого пользователя.`},"field.actions":{message:`Действия`,description:`Заголовок столбца с кнопками действий.`},"message.confirmRefund":{message:`Это действие отменит права на заказ и отметит его как возвращенный, отмена невозможна. Пожалуйста, подтвердите, что возврат обработан, продолжить?`,description:`Сообщение для подтверждения возврата.`},"message.x402IntegrationIntro":{message:`Текущий заказ использует протокол оплаты X402. Пожалуйста, завершите интеграцию на сервере и инициируйте оплату, основываясь на параметрах ниже.`,description:`Подсказка о необходимости использования протокола X402.`},"message.x402IntegrationProtocol":{message:`Вызовите интерфейс оплаты facilitator и завершите подпись и трансляцию. После успешного расчета вернитесь на эту страницу для подтверждения статуса.`,description:`Описание шагов для завершения оплаты X402.`},"message.x402IntegrationDocsHint":{message:`Хотите узнать больше деталей? Пожалуйста, посмотрите документацию для разработчиков ниже.`,description:`Напоминание пользователю о возможности получить больше информации через документацию для разработчиков.`},"message.x402WalletTitleEvm":{message:`EVM Кошелек`,description:`Заголовок карточки подключения EVM кошелька.`},"message.x402WalletTitleSolana":{message:`Solana Кошелек`,description:`Заголовок карточки подключения Solana кошелька.`},"message.publicPayNotFound":{message:`Заказ не найден или срок его действия истёк.`,description:`Shown on public pay page when the order GET returns 404.`},"message.x402WalletStatusDetected":{message:`Обнаружено`,description:`Метка статуса кошелька, который был обнаружен/установлен.`},"message.x402WalletStatusInstall":{message:`Установить`,description:`Метка статуса/входа для установки кошелька.`},"message.x402WalletStatusQr":{message:`QR-код`,description:`Метка для входа в QR-код WalletConnect.`},"message.x402WalletConnectTitle":{message:`WalletConnect`,description:`Заголовок всплывающего окна QR-кода WalletConnect.`},"message.x402WalletConnectPreparing":{message:`Подготовка WalletConnect…`,description:`Подсказка при подготовке соединения WalletConnect.`},"message.x402WalletConnectOpenWallet":{message:`Открыть кошелек`,description:`Текст кнопки для открытия кошелька через WalletConnect на мобильном устройстве.`},"message.x402WalletConnectScanHint":{message:`Пожалуйста, используйте кошелек, поддерживающий WalletConnect, для сканирования QR-кода.`,description:`Подсказка под QR-кодом WalletConnect.`},"message.x402SwitchNetworkCta":{message:`Переключиться на {network}`,description:`CTA для переключения сети.`},"message.x402NoWalletTitle":{message:`EVM Кошелек не обнаружен`,description:`Заголовок, когда браузер не обнаружил EVM кошелек.`},"message.x402NoWalletSafariDesc":{message:`Safari обычно не поддерживает расширения, такие как MetaMask. Рекомендуем использовать Chrome/Brave или открыть эту страницу в встроенном браузере мобильного кошелька.`,description:`Описание отсутствия кошелька в среде Safari.`},"message.x402InstallMetaMask":{message:`Установить MetaMask`,description:`Текст кнопки для установки MetaMask.`},"message.x402InstallPhantom":{message:`Установить Phantom`,description:`Текст кнопки для установки Phantom.`},"message.x402ConnectWC":{message:`Подключиться через WalletConnect`,description:`Текст кнопки для подключения через WalletConnect.`},"message.x402RefreshDetect":{message:`Переопределить`,description:`Текст кнопки для повторного обнаружения кошелька.`},"message.x402MissingWCProjectId":{message:`Не настроен WalletConnect Project ID (пожалуйста, установите переменную окружения VITE_WALLETCONNECT_PROJECT_ID)`,description:`Сообщение о недостатке ID проекта WalletConnect.`},"message.x402WalletBound":{message:`Связан`,description:`Значок, отображаемый при связанном кошельке.`},"message.userIdRequired":{message:`Введите ID пользователя.`,description:`Когда ID пользователя пуст, отображается это сообщение.`},"message.serviceIdRequired":{message:`Выберите услугу.`,description:`Когда ID услуги пуст, отображается это сообщение.`},"message.discountRequired":{message:`Введите скидку от 0 до 1.`,description:`Когда скидка вне допустимого диапазона, отображается это сообщение.`},"message.discountCreated":{message:`Скидка успешно сохранена.`,description:`Сообщение при успешном добавлении скидки.`},"message.discountUpdated":{message:`Скидка успешно обновлена.`,description:`Сообщение при успешном редактировании скидки.`},"message.discountDeleted":{message:`Скидка успешно удалена.`,description:`Сообщение при успешном удалении скидки.`},"state.refunded":{message:`Возвращено`,description:`Статус заказа, указывающий, что заказ был возвращен.`},"title.revenueAnalysis":{message:`Анализ доходов`,description:`Заголовок страницы анализа доходов.`},"title.todayRevenue":{message:`Сегодняшний доход`,description:`Сегодняшний доход.`},"title.last7dRevenue":{message:`Доход за последнюю неделю`,description:`Доход за последнюю неделю.`},"title.last30dRevenue":{message:`Доход за последний месяц`,description:`Доход за последние 30 дней.`},"title.last90dRevenue":{message:`Доход за последний квартал`,description:`Доход за последние 90 дней.`},"title.revenueTrend":{message:`Тренд доходов`,description:`Заголовок графика тренда доходов.`},"title.manageOrderDiscount":{message:`Управление скидками`,description:`Заголовок страницы управления скидками по заказам.`},"title.discountLookup":{message:`Текущие скидки`,description:`Заголовок блока, отображающего текущие скидки пользователя.`},"title.createDiscount":{message:`Добавить скидку`,description:`Заголовок блока для создания новой скидки.`},"title.updateDiscount":{message:`Обновить скидку`,description:`Заголовок всплывающего окна редактирования скидки.`},"message.wechatPayLongPressTip":{message:`Удерживайте QR-код ниже и выберите 'Распознать QR-код', чтобы завершить оплату в WeChat.`,description:"Tip shown above the Native QR on mobile-WeChat. The user long-presses to recognise the `weixin://wxpay/bizpayurl` URL and pays without leaving WeChat."},"message.wechatPayMobileScanTip":{message:`Сохраните или сделайте скриншот QR-кода ниже, откройте WeChat, нажмите 'Сканировать', выберите альбом в правом верхнем углу и выберите только что сохраненное изображение для завершения оплаты.`,description:`Текст, отображаемый над QR-кодом в мобильном браузере, не относящемся к WeChat. Инструктирует пользователя сохранить изображение QR-кода и использовать функцию альбома в WeChat для завершения оплаты.`},"message.creditsValue":{message:`{value} кредитов`,description:`Display of credits amount for an order, e.g. '5 credits'. {value} is the formatted credit number.`},"title.totalOrders":{message:`Total Orders`,description:`Summary card: total number of orders matching the current filters.`},"title.totalSpent":{message:`Total Spent`,description:`Summary card: total amount spent across matching orders.`},"title.finishedOrders":{message:`Finished Orders`,description:`Summary card: number of finished orders.`},"title.pendingOrders":{message:`Pending Orders`,description:`Summary card: number of pending orders.`},"button.export":{message:`Export CSV`,description:`Button label to export the filtered orders as CSV.`},"field.allStates":{message:`All States`,description:`Placeholder of the state filter dropdown indicating no specific state is selected.`},"field.allPayWays":{message:`All Payment Methods`,description:`Placeholder of the payment method filter dropdown indicating no specific method is selected.`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.pay":{message:`Paga`,description:`Testo nel pulsante per pagare l'ordine.`},"button.continuePay":{message:`Continua a pagare`,description:`Testo nel pulsante per continuare a pagare l'ordine.`},"button.checkDetail":{message:`Visualizza dettagli`,description:`Testo nel pulsante per visualizzare i dettagli dell'ordine.`},"button.query":{message:`Consulta`,description:`Testo nel pulsante per consultare l'ordine.`},"button.finish":{message:`Completa manualmente`,description:`Testo nel pulsante per completare manualmente l'ordine.`},"button.update":{message:`Aggiorna`,description:`Testo nel pulsante per aggiornare l'ordine.`},"field.id":{message:`ID Ordine`,description:`ID dell'ordine.`},"field.amount":{message:`Importo`,description:`Importo in punti dell'ordine.`},"field.price":{message:`Importo`,description:`Importo in punti dell'ordine.`},"field.description":{message:`Descrizione Ordine`,description:`Descrizione dell'ordine.`},"field.state":{message:`Stato`,description:`Stato dell'ordine.`},"field.createdAt":{message:`Data di creazione`,description:`Data di creazione dell'ordine.`},"field.service":{message:`Nome Servizio`,description:`Nome del servizio.`},"field.payWay":{message:`Metodo di pagamento`,description:`Metodo di pagamento dell'ordine.`},"field.api":{message:`API`,description:`L'API è un servizio online.`},"field.proxy":{message:`Proxy`,description:`Il proxy è un servizio online, utilizzato per il trasferimento dei dati tramite HTTP.`},"message.paidSuccessfully":{message:`Pagamento riuscito`,description:`Messaggio di pagamento riuscito.`},"message.orderExpired":{message:`L'ordine è scaduto, crea un nuovo ordine per effettuare il pagamento.`,description:`Messaggio per ordine scaduto.`},"message.createFailed":{message:`Creazione fallita`,description:`Messaggio di creazione fallita.`},"message.wechatPayHelp":{message:`Apri WeChat sul telefono e scansiona per completare il pagamento`,description:`Messaggio di aiuto per il pagamento WeChat.`},"message.wechatPayMobileGuide":{message:`Mobile browsers can't open WeChat Pay directly. Copy the payment link below and open it inside WeChat to continue.`,description:`Guide shown to users on a mobile browser outside WeChat, where H5 WeChat Pay is unavailable.`},"button.copyPayLink":{message:`Copy payment link`,description:`Label for the button that copies the current page URL so the user can paste it inside WeChat.`},"message.wechatPayMobileHint":{message:`After copying, open WeChat, paste the link into any chat or the search bar, and tap it to complete payment.`,description:`Secondary hint shown beneath the copy-link button to guide users through pasting the link inside WeChat.`},"message.free":{message:`Gratuito`,description:`Messaggio per ordine gratuito.`},"message.buyInExternalUrl":{message:`Completa il pagamento nel link esterno`,description:`Messaggio per pagamento tramite link esterno.`},"message.updateFailed":{message:`Aggiornamento fallito`,description:`Messaggio di aggiornamento fallito.`},"message.updateSuccessfully":{message:`Aggiornamento riuscito`,description:`Messaggio di aggiornamento riuscito.`},"message.confirmFinish":{message:`Questa operazione imposterà manualmente l'ordine come pagato e completerà la gestione della distribuzione, non può essere annullata. Conferma che il cliente ha completato il pagamento, vuoi continuare?`,description:`Messaggio di conferma completamento.`},"state.pending":{message:`In attesa di pagamento`,description:`Stato dell'ordine, indica che l'ordine è in attesa di pagamento da parte dell'utente.`},"state.paid":{message:`Pagato`,description:`Stato dell'ordine, indica che l'ordine è stato pagato.`},"state.finished":{message:`Completato`,description:`Stato dell'ordine, indica che l'ordine è stato completato.`},"state.expired":{message:`Pagamento scaduto`,description:`Stato dell'ordine, indica che l'ordine è scaduto.`},"state.failed":{message:`Pagamento fallito`,description:`Stato dell'ordine, indica che il pagamento dell'ordine è fallito.`},"title.info":{message:`Informazioni Ordine`,description:`Titolo visualizzato sul sito, indica le informazioni dell'ordine.`},"title.wechatPay":{message:`Pagamento WeChat`,description:`Titolo visualizzato sul sito, indica il pagamento WeChat.`},"title.aliPay":{message:`Alipay`,description:`Titolo visualizzato sul sito, indica il pagamento Alipay, un metodo di pagamento online.`},"title.stripe":{message:`Stripe`,description:`Titolo visualizzato sul sito, indica il pagamento Stripe, un metodo di pagamento online.`},"title.manageOrder":{message:`Gestisci Ordine`,description:`Titolo visualizzato sul sito, indica la gestione degli ordini.`},"title.x402":{message:`Criptovaluta`,description:`Titolo visualizzato sul sito, indica il pagamento in criptovaluta (basato sul piano di pagamento X402).`},"title.paypal":{message:`PayPal`,description:`Titolo visualizzato sul sito, indica il pagamento PayPal.`},"message.discountTag":{message:`{percent}% di sconto`,description:`Testo del badge che mostra la percentuale di sconto applicata.`},"message.discountHint":{message:`Sei un nostro cliente VIP, puoi godere automaticamente di uno sconto del {percent}%.`,description:`Messaggio che informa l'utente del sconto automatico per il suo status di VIP.`},"message.x402DiscountApplied":{message:`Con pagamento X402, ulteriore sconto del {percent}%.`,description:`Messaggio che spiega lo sconto aggiuntivo fornito dal pagamento X402.`},"message.x402DiscountTag":{message:`{percent}% di sconto`,description:`Evidenzia la percentuale di sconto aggiuntiva disponibile con il pagamento X402.`},"message.x402DiscountHint":{message:`Scegli il pagamento X402 e ricevi subito un ulteriore sconto del {percent}%.`,description:`Testo che informa l'utente che il pagamento tramite X402 sblocca uno sconto aggiuntivo.`},"message.x402IntroShort":{message:`Completa il pagamento in USDC direttamente dal portafoglio.`,description:`Testo introduttivo breve.`},"message.x402TabWallet":{message:`Pagamento con portafoglio`,description:`Titolo della scheda di pagamento con portafoglio.`},"message.x402TabApi":{message:`Programmatico`,description:`Titolo della scheda programmatica.`},"message.x402WalletTitle":{message:`Collega il portafoglio e paga in USDC`,description:`Titolo per il pagamento rapido con portafoglio X402 (USDC).`},"message.x402WalletConnected":{message:`Connesso`,description:`Etichetta mostrata quando il portafoglio è connesso.`},"message.x402ConnectWallet":{message:`Collega il portafoglio`,description:`Testo del pulsante per collegare il portafoglio EVM.`},"message.x402NoWalletDesc":{message:`Utilizza un browser compatibile con i portafogli (consigliato Chrome/Brave) o installa l'estensione MetaMask/Phantom; puoi anche aprire questa pagina nel browser integrato dell'app del portafoglio mobile.`,description:`Descrizione generica per l'assenza di portafoglio.`},"message.x402SwitchNetwork":{message:`Cambia la rete del portafoglio a {network}`,description:`Testo che invita l'utente a cambiare alla rete specificata.`},"message.x402SolanaNotEnabled":{message:`Il backend Solana X402 non è ancora abilitato.`,description:`Messaggio mostrato quando l'ordine non ha abilitato Solana X402.`},"message.x402NeedConnectAccount":{message:`Collega prima il portafoglio.`,description:`Avviso mostrato quando il portafoglio non è connesso.`},"message.x402ConfirmTitle":{message:`Conferma pagamento`,description:`Titolo della finestra di conferma del pagamento X402.`},"message.x402ConfirmDesc":{message:`Confermi di pagare in USDC su {network}?`,description:`Descrizione della finestra di conferma del pagamento X402.`},"message.x402StepsTitle":{message:`Passaggi di pagamento`,description:`Titolo dei passaggi.`},"message.x402Step1":{message:`Collega il portafoglio (se non installato, installa prima l'estensione e poi aggiorna questa pagina o apri questa pagina nel portafoglio mobile)`,description:`Testo per il passaggio 1.`},"message.x402Step2":{message:`Modifica le impostazioni del portafoglio e conferma che la rete del portafoglio sia {network}`,description:`Testo per il passaggio 2.`},"message.x402Step3":{message:`Clicca su 'Paga con portafoglio' e completa la firma di autorizzazione nel portafoglio`,description:`Testo per il passaggio 3.`},"message.x402Step4":{message:`Dopo una firma riuscita, procederemo automaticamente al pagamento e la pagina si aggiornerà per mostrare che è stato pagato.`,description:`Testo per il passaggio 4.`},"message.x402IntegrationResourceLabel":{message:`Indirizzo API di pagamento`,description:`Etichetta per l'indirizzo dell'API di pagamento.`},"message.x402IntegrationPayToLabel":{message:`Indirizzo di pagamento`,description:`Etichetta che mostra l'indirizzo di pagamento sulla blockchain.`},"message.x402IntegrationNetworkLabel":{message:`Rete`,description:`Etichetta che mostra il nome della rete blockchain.`},"message.x402IntegrationAssetLabel":{message:`Asset di pagamento`,description:`Etichetta che mostra l'asset di pagamento.`},"message.x402IntegrationFallback":{message:`Non è stato possibile ottenere i dati di sessione completi, consulta la documentazione per sviluppatori o contatta il supporto per ottenere i parametri necessari.`,description:`Messaggio mostrato quando non è possibile ottenere i dati di sessione.`},"message.x402IntegrationDocsCta":{message:`Apri la guida per sviluppatori X402`,description:`Testo del pulsante per aprire la guida per sviluppatori.`},"message.x402InstallGuideTitle":{message:`Installa l'estensione del portafoglio`,description:`Titolo della finestra di installazione del portafoglio.`},"message.x402InstallGuideDesc":{message:`Segui i passaggi seguenti per completare l'installazione dell'estensione {wallet}, quindi utilizza il pulsante qui sotto per aggiornare questa pagina e rilevare nuovamente il portafoglio.`,description:`Descrizione per guidare l'utente nell'installazione dell'estensione del portafoglio.`},"message.x402InstallGuideStep1":{message:`Apri la pagina appena aperta e installa l'estensione del browser {wallet} (consigliato Chrome/Brave).`,description:`Passaggio 1 per l'installazione del portafoglio.`},"message.x402InstallGuideStep2":{message:`Completa l'installazione dell'estensione, accedi/sblocca e conferma che sia abilitata nel profilo del browser attuale.`,description:`Passaggio 2 per l'installazione del portafoglio.`},"message.x402InstallGuideStep3":{message:`Torna a questa pagina, clicca su 'Ho già installato' e aggiorna per provare a 'Collegare il portafoglio'.`,description:`Passaggio 3 per l'installazione del portafoglio.`},"message.x402InstallGuideConfirm":{message:`Ho già installato`,description:`Pulsante principale dopo aver completato l'installazione del portafoglio.`},"message.x402NetworkGuideTitle":{message:`Regola le impostazioni di rete`,description:`Titolo della finestra di avviso per rete non corrispondente.`},"message.x402NetworkGuideDesc":{message:`Segui i passaggi seguenti per cambiare la rete del portafoglio a {network}, quindi aggiorna questa pagina per rilevare nuovamente.`,description:`Descrizione per guidare l'utente a modificare la rete del portafoglio.`},"message.x402NetworkGuideStep1":{message:`Apri l'estensione del portafoglio e vai su Impostazioni -> Reti attive.`,description:`Passaggio 1 per le impostazioni di rete.`},"message.x402NetworkGuideStep2":{message:`Nella lista delle reti, conferma che {network} (o un'altra rete specificata) sia attivata; se è attivata, puoi ignorare questo passaggio.`,description:`Istruzioni per il secondo passaggio della configurazione della rete, non è necessario disattivare Ethereum.`},"message.x402NetworkGuideStep3":{message:`Torna a questa pagina e clicca su 'Ho completato la configurazione' per aggiornare e riprovare il pagamento.`,description:`Passaggio 3 della configurazione della rete.`},"message.x402NetworkGuideConfirm":{message:`Ho completato la configurazione`,description:`Pulsante principale dopo aver completato la configurazione della rete.`},"message.x402NetworkSwitchFailed":{message:`Il portafoglio attuale non supporta il cambio automatico di rete, per favore cambia manualmente alla rete specificata nel portafoglio e riprova.`,description:`Messaggio per informare l'utente che il portafoglio non supporta il cambio automatico di rete e che è necessario cambiarlo manualmente.`},"message.x402PaymentFailed":{message:`Pagamento con portafoglio X402 fallito, riprova più tardi. Se il problema persiste, contatta il supporto e fornisci le informazioni sull'errore.`,description:`Messaggio di errore generico mostrato quando il pagamento con il portafoglio X402 fallisce.`},"message.x402WalletPayCta":{message:`Paga con portafoglio`,description:`Testo del pulsante per completare il pagamento utilizzando il portafoglio collegato.`},"button.refund":{message:`Rimborso`,description:`Testo nel pulsante per rimborsare manualmente un ordine.`},"field.applicationId":{message:`ID richiesta`,description:`ID della richiesta a cui appartiene l'ordine.`},"field.serviceId":{message:`ID servizio`,description:`ID del servizio corrispondente allo sconto.`},"field.generalDiscount":{message:`Sconto generale`,description:`Etichetta mostrata quando lo sconto è valido per tutti i servizi.`},"field.userId":{message:`ID utente`,description:`ID dell'utente che beneficia dello sconto.`},"field.discount":{message:`Sconto`,description:`Percentuale di sconto applicata all'ordine di questo utente.`},"field.actions":{message:`Azioni`,description:`Titolo della colonna dei pulsanti di azione.`},"message.confirmRefund":{message:`Questa operazione annullerà i diritti dell'ordine e lo contrassegnerà come rimborsato, non può essere annullata. Sei sicuro di aver gestito il rimborso, vuoi continuare?`,description:`Messaggio di conferma per il rimborso.`},"message.x402IntegrationIntro":{message:`L'ordine attuale utilizza il protocollo di pagamento X402, completa l'integrazione sul server in base ai parametri sottostanti e avvia il pagamento.`,description:`Messaggio introduttivo che indica la necessità di utilizzare il protocollo X402.`},"message.x402IntegrationProtocol":{message:`Chiama l'interfaccia di pagamento del facilitatore e completa la firma e la trasmissione, dopo il successo del pagamento torna a questa pagina per confermare lo stato.`,description:`Istruzioni sui passaggi per completare il pagamento X402.`},"message.x402IntegrationDocsHint":{message:`Vuoi saperne di più? Consulta la documentazione per gli sviluppatori qui sotto.`,description:`Messaggio che ricorda all'utente che può ottenere ulteriori informazioni tramite la documentazione per gli sviluppatori.`},"message.x402WalletTitleEvm":{message:`Portafoglio EVM`,description:`Titolo della scheda di connessione del portafoglio EVM.`},"message.x402WalletTitleSolana":{message:`Portafoglio Solana`,description:`Titolo della scheda di connessione del portafoglio Solana.`},"message.publicPayNotFound":{message:`Ordine non trovato o scaduto.`,description:`Shown on public pay page when the order GET returns 404.`},"message.x402WalletStatusDetected":{message:`Rilevato`,description:`Etichetta dello stato del portafoglio rilevato/installato.`},"message.x402WalletStatusInstall":{message:`Installa`,description:`Etichetta di stato/ingresso per l'installazione del portafoglio.`},"message.x402WalletStatusQr":{message:`Codice QR`,description:`Etichetta per l'ingresso del codice QR di WalletConnect.`},"message.x402WalletConnectTitle":{message:`WalletConnect`,description:`Titolo del popup del codice QR di WalletConnect.`},"message.x402WalletConnectPreparing":{message:`Preparazione di WalletConnect in corso…`,description:`Messaggio durante la preparazione della connessione WalletConnect.`},"message.x402WalletConnectOpenWallet":{message:`Apri il portafoglio`,description:`Testo del pulsante per aprire il portafoglio tramite WalletConnect su mobile.`},"message.x402WalletConnectScanHint":{message:`Si prega di utilizzare un portafoglio compatibile con WalletConnect per scansionare il codice QR.`,description:`Messaggio di suggerimento sotto il codice QR di WalletConnect.`},"message.x402SwitchNetworkCta":{message:`Cambia a {network}`,description:`CTA per cambiare rete.`},"message.x402NoWalletTitle":{message:`Nessun portafoglio EVM rilevato`,description:`Titolo mostrato quando il browser non ha iniettato un portafoglio EVM.`},"message.x402NoWalletSafariDesc":{message:`Safari di solito non supporta estensioni come MetaMask, si consiglia di utilizzare Chrome/Brave o di aprire questa pagina nel browser integrato dell'app del portafoglio mobile.`,description:`Descrizione per l'assenza di portafoglio in ambiente Safari.`},"message.x402InstallMetaMask":{message:`Installa MetaMask`,description:`Testo del pulsante per installare MetaMask.`},"message.x402InstallPhantom":{message:`Installa Phantom`,description:`Testo del pulsante per installare Phantom.`},"message.x402ConnectWC":{message:`Collegati con WalletConnect`,description:`Testo del pulsante per collegarsi con WalletConnect.`},"message.x402RefreshDetect":{message:`Rileva di nuovo`,description:`Testo del pulsante per rilevare nuovamente il portafoglio.`},"message.x402MissingWCProjectId":{message:`WalletConnect Project ID non configurato (impostare la variabile d'ambiente VITE_WALLETCONNECT_PROJECT_ID)`,description:`Messaggio di avviso per la mancanza dell'ID del progetto WalletConnect.`},"message.x402WalletBound":{message:`Collegato`,description:`Logo mostrato quando il portafoglio è collegato.`},"message.userIdRequired":{message:`Inserisci l'ID utente.`,description:`Messaggio di avviso mostrato quando l'ID utente è vuoto.`},"message.serviceIdRequired":{message:`Seleziona un servizio.`,description:`Messaggio di avviso mostrato quando l'ID servizio è vuoto.`},"message.discountRequired":{message:`Inserisci uno sconto tra 0 e 1.`,description:`Messaggio di avviso mostrato quando lo sconto non è nel range valido.`},"message.discountCreated":{message:`Sconto salvato con successo.`,description:`Messaggio di conferma mostrato quando un nuovo sconto è stato creato con successo.`},"message.discountUpdated":{message:`Sconto aggiornato con successo.`,description:`Messaggio di conferma mostrato quando uno sconto è stato aggiornato con successo.`},"message.discountDeleted":{message:`Sconto eliminato con successo.`,description:`Messaggio di conferma mostrato quando uno sconto è stato eliminato con successo.`},"state.refunded":{message:`Rimborsato`,description:`Stato dell'ordine che indica che l'ordine è stato rimborsato.`},"title.revenueAnalysis":{message:`Analisi dei ricavi`,description:`Titolo della pagina di analisi dei ricavi.`},"title.todayRevenue":{message:`Importo delle vendite di oggi`,description:`Importo delle vendite di oggi.`},"title.last7dRevenue":{message:`Importo delle vendite dell'ultima settimana`,description:`Importo delle vendite dell'ultima settimana.`},"title.last30dRevenue":{message:`Importo delle vendite dell'ultimo mese`,description:`Importo delle vendite degli ultimi 30 giorni.`},"title.last90dRevenue":{message:`Importo delle vendite dell'ultimo trimestre`,description:`Importo delle vendite degli ultimi 90 giorni.`},"title.revenueTrend":{message:`Tendenza dei ricavi`,description:`Titolo del grafico a linee sulla tendenza dei ricavi.`},"title.manageOrderDiscount":{message:`Gestione sconti`,description:`Titolo della pagina di gestione degli sconti sugli ordini.`},"title.discountLookup":{message:`Sconti attuali`,description:`Titolo della sezione che mostra gli sconti attuali per l'utente.`},"title.createDiscount":{message:`Crea nuovo sconto`,description:`Titolo della sezione per creare un nuovo sconto.`},"title.updateDiscount":{message:`Aggiorna sconto`,description:`Titolo del popup per modificare uno sconto.`},"message.wechatPayLongPressTip":{message:`Tieni premuto il codice QR qui sotto e seleziona 'Riconosci codice QR' per completare il pagamento in WeChat.`,description:"Tip shown above the Native QR on mobile-WeChat. The user long-presses to recognise the `weixin://wxpay/bizpayurl` URL and pays without leaving WeChat."},"message.wechatPayMobileScanTip":{message:`Salva o fai uno screenshot del codice QR qui sotto, apri WeChat, clicca su Scansiona, seleziona l'album in alto a destra e scegli l'immagine salvata per completare il pagamento.`,description:`Testo guida mostrato sopra il codice QR in un browser mobile non WeChat. Guida l'utente a salvare l'immagine del codice QR e a utilizzare la funzione album di WeChat per riconoscerlo e completare il pagamento.`},"message.creditsValue":{message:`{value} crediti`,description:`Display of credits amount for an order, e.g. '5 credits'. {value} is the formatted credit number.`},"title.totalOrders":{message:`Total Orders`,description:`Summary card: total number of orders matching the current filters.`},"title.totalSpent":{message:`Total Spent`,description:`Summary card: total amount spent across matching orders.`},"title.finishedOrders":{message:`Finished Orders`,description:`Summary card: number of finished orders.`},"title.pendingOrders":{message:`Pending Orders`,description:`Summary card: number of pending orders.`},"button.export":{message:`Export CSV`,description:`Button label to export the filtered orders as CSV.`},"field.allStates":{message:`All States`,description:`Placeholder of the state filter dropdown indicating no specific state is selected.`},"field.allPayWays":{message:`All Payment Methods`,description:`Placeholder of the payment method filter dropdown indicating no specific method is selected.`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.pay":{message:`Оплатити`,description:`Текст у кнопці для оплати замовлення.`},"button.continuePay":{message:`Продовжити оплату`,description:`Текст у кнопці для продовження оплати замовлення.`},"button.checkDetail":{message:`Переглянути деталі`,description:`Текст у кнопці для перегляду деталей замовлення.`},"button.query":{message:`Запит`,description:`Текст у кнопці для запиту замовлення.`},"button.finish":{message:`Завершити вручну`,description:`Текст у кнопці для ручного завершення замовлення.`},"button.update":{message:`Оновити`,description:`Текст у кнопці для оновлення замовлення.`},"field.id":{message:`ID замовлення`,description:`ID замовлення.`},"field.amount":{message:`Сума`,description:`Сума балів замовлення.`},"field.price":{message:`Сума`,description:`Сума балів замовлення.`},"field.description":{message:`Опис замовлення`,description:`Опис замовлення.`},"field.state":{message:`Стан`,description:`Стан замовлення.`},"field.createdAt":{message:`Час створення`,description:`Час створення замовлення.`},"field.service":{message:`Назва послуги`,description:`Назва послуги.`},"field.payWay":{message:`Спосіб оплати`,description:`Спосіб оплати замовлення.`},"field.api":{message:`API`,description:`API - це онлайн-сервіс.`},"field.proxy":{message:`Проксі`,description:`Проксі - це онлайн-сервіс, що використовується для передачі даних через HTTP.`},"message.paidSuccessfully":{message:`Оплата успішна`,description:`Повідомлення про успішну оплату.`},"message.orderExpired":{message:`Замовлення прострочено, будь ласка, створіть нове замовлення для оплати.`,description:`Повідомлення про прострочене замовлення.`},"message.createFailed":{message:`Не вдалося створити`,description:`Повідомлення про невдале створення.`},"message.wechatPayHelp":{message:`Будь ласка, відкрийте WeChat на телефоні та відскануйте для завершення оплати`,description:`Повідомлення про допомогу з оплатою через WeChat.`},"message.wechatPayMobileGuide":{message:`Mobile browsers can't open WeChat Pay directly. Copy the payment link below and open it inside WeChat to continue.`,description:`Guide shown to users on a mobile browser outside WeChat, where H5 WeChat Pay is unavailable.`},"button.copyPayLink":{message:`Copy payment link`,description:`Label for the button that copies the current page URL so the user can paste it inside WeChat.`},"message.wechatPayMobileHint":{message:`After copying, open WeChat, paste the link into any chat or the search bar, and tap it to complete payment.`,description:`Secondary hint shown beneath the copy-link button to guide users through pasting the link inside WeChat.`},"message.free":{message:`Безкоштовно`,description:`Повідомлення про безкоштовне замовлення.`},"message.buyInExternalUrl":{message:`Будь ласка, завершіть оплату за зовнішнім посиланням`,description:`Повідомлення про оплату за зовнішнім посиланням.`},"message.updateFailed":{message:`Не вдалося оновити`,description:`Повідомлення про невдале оновлення.`},"message.updateSuccessfully":{message:`Оновлення успішне`,description:`Повідомлення про успішне оновлення.`},"message.confirmFinish":{message:`Ця дія вручну встановить замовлення в стан оплати та завершить обробку, що не підлягає скасуванню. Будь ласка, підтверджте, що клієнт завершив оплату, ви хочете продовжити?`,description:`Повідомлення для підтвердження завершення.`},"state.pending":{message:`Очікує оплати`,description:`Стан замовлення, що вказує на те, що замовлення все ще чекає на оплату користувача.`},"state.paid":{message:`Оплачено`,description:`Стан замовлення, що вказує на те, що замовлення оплачено.`},"state.finished":{message:`Завершено`,description:`Стан замовлення, що вказує на те, що замовлення завершено.`},"state.expired":{message:`Час оплати вичерпано`,description:`Стан замовлення, що вказує на те, що замовлення прострочено.`},"state.failed":{message:`Оплата не вдалася`,description:`Стан замовлення, що вказує на те, що оплата замовлення не вдалася.`},"title.info":{message:`Інформація про замовлення`,description:`Заголовок, що відображається на сайті, що вказує на інформацію про замовлення.`},"title.wechatPay":{message:`Оплата через WeChat`,description:`Заголовок, що відображається на сайті, що вказує на оплату через WeChat.`},"title.aliPay":{message:`Оплата через Alipay`,description:`Заголовок, що відображається на сайті, що вказує на оплату через Alipay.`},"title.stripe":{message:`Stripe`,description:`Заголовок, що відображається на сайті, що вказує на оплату через Stripe.`},"title.manageOrder":{message:`Управління замовленнями`,description:`Заголовок, що відображається на сайті, що вказує на управління замовленнями.`},"title.x402":{message:`Криптовалюта`,description:`Заголовок, що відображається на сайті, що вказує на оплату криптовалютою (на основі платіжного рішення X402).`},"title.paypal":{message:`PayPal`,description:`Заголовок, що відображається на сайті, що вказує на оплату через PayPal.`},"message.discountTag":{message:`{percent}% знижка`,description:`Текст для відображення відсотка знижки.`},"message.discountHint":{message:`Ви наш ексклюзивний VIP-клієнт, автоматично отримуйте {percent}% знижки.`,description:`Текст, що інформує користувача про автоматичну знижку через VIP-статус.`},"message.x402DiscountApplied":{message:`З оплатою через X402, додаткова знижка {percent}%.`,description:`Текст, що пояснює додаткову знижку, отриману через оплату X402.`},"message.x402DiscountTag":{message:`{percent}% знижка`,description:`Виділення відсотка знижки, яку можна отримати при виборі оплати через X402.`},"message.x402DiscountHint":{message:`Виберіть оплату X402 та отримайте додаткову знижку {percent}%.`,description:`Підказка для користувача про те, що оплата через X402 відкриває додаткову знижку.`},"message.x402IntroShort":{message:`Завершіть оплату USDC безпосередньо з гаманця.`,description:`Короткий вступ.`},"message.x402TabWallet":{message:`Оплата з гаманця`,description:`Заголовок вкладки оплати з гаманця.`},"message.x402TabApi":{message:`Програмний`,description:`Заголовок вкладки програмного доступу.`},"message.x402WalletTitle":{message:`Підключіть гаманець та сплатіть USDC`,description:`Заголовок швидкої оплати X402 з гаманця (USDC).`},"message.x402WalletConnected":{message:`Підключено`,description:`Мітка, що відображається, коли гаманець підключено.`},"message.x402ConnectWallet":{message:`Підключити гаманець`,description:`Текст кнопки для підключення EVM гаманця.`},"message.x402NoWalletDesc":{message:`Будь ласка, використовуйте браузер, що підтримує гаманці (рекомендуємо Chrome/Brave), або встановіть розширення MetaMask/Phantom; також можна відкрити цю сторінку в вбудованому браузері мобільного гаманця.`,description:`Універсальний опис без гаманця.`},"message.x402SwitchNetwork":{message:`Будь ласка, змініть мережу гаманця на {network}`,description:`Текст, що підказує користувачу переключитися на вказану мережу.`},"message.x402SolanaNotEnabled":{message:`Solana X402 ще не активовано.`,description:`Підказка, коли замовлення не активувало Solana X402.`},"message.x402NeedConnectAccount":{message:`Будь ласка, спочатку підключіть гаманець.`,description:`Нагадування, коли гаманець не підключено.`},"message.x402ConfirmTitle":{message:`Підтвердити оплату`,description:`Заголовок вікна підтвердження оплати X402.`},"message.x402ConfirmDesc":{message:`Підтвердити оплату USDC на {network}?`,description:`Опис вікна підтвердження оплати X402.`},"message.x402StepsTitle":{message:`Кроки оплати`,description:`Заголовок кроків.`},"message.x402Step1":{message:`Підключіть гаманець (якщо не встановлено, спочатку встановіть розширення, а потім оновіть цю сторінку або відкрийте цю сторінку в мобільному гаманці)`,description:`Текст кроку 1.`},"message.x402Step2":{message:`Змініть налаштування гаманця, підтвердьте, що мережа гаманця - {network}`,description:`Текст кроку 2.`},"message.x402Step3":{message:`Натисніть «Використати гаманець для оплати», щоб завершити авторизацію в гаманці`,description:`Текст кроку 3.`},"message.x402Step4":{message:`Після успішного підписання ми автоматично завершимо оплату, після чого ця сторінка оновиться до статусу 'оплачено'`,description:`Текст кроку 4.`},"message.x402IntegrationResourceLabel":{message:`Адреса платіжного інтерфейсу`,description:`Мітка адреси платіжного інтерфейсу.`},"message.x402IntegrationPayToLabel":{message:`Адреса розрахунку`,description:`Мітка для відображення адреси розрахунку в блокчейні.`},"message.x402IntegrationNetworkLabel":{message:`Мережа`,description:`Мітка для відображення назви мережі блокчейну.`},"message.x402IntegrationAssetLabel":{message:`Актив для розрахунку`,description:`Мітка для відображення активу для розрахунку.`},"message.x402IntegrationFallback":{message:`Не вдалося отримати повні дані сесії, будь ласка, зверніться до документації для розробників або зв'яжіться з підтримкою для отримання необхідних параметрів.`,description:`Повідомлення, що відображається, коли не вдається отримати дані сесії.`},"message.x402IntegrationDocsCta":{message:`Відкрити посібник для розробників X402`,description:`Текст кнопки для відкриття посібника для розробників.`},"message.x402InstallGuideTitle":{message:`Встановлення розширення гаманця`,description:`Заголовок вікна інструкцій з установки гаманця.`},"message.x402InstallGuideDesc":{message:`Будь ласка, дотримуйтесь наведених нижче кроків для завершення установки розширення {wallet}, а потім використовуйте кнопку нижче, щоб оновити цю сторінку для повторної перевірки гаманця.`,description:`Опис для користувача про завершення установки розширення гаманця.`},"message.x402InstallGuideStep1":{message:`Відкрийте нову сторінку та завантажте розширення браузера {wallet} (рекомендуємо Chrome/Brave).`,description:`Крок 1 установки гаманця.`},"message.x402InstallGuideStep2":{message:`Завершіть установку розширення, увійдіть/розблокуйте та підтверджте, що воно активовано в поточному профілі браузера.`,description:`Крок 2 установки гаманця.`},"message.x402InstallGuideStep3":{message:`Поверніться на цю сторінку, натисніть «Я вже встановив», оновіть, а потім спробуйте «Підключити гаманець».`,description:`Крок 3 установки гаманця.`},"message.x402InstallGuideConfirm":{message:`Я вже встановив`,description:`Головна кнопка після завершення установки гаманця.`},"message.x402NetworkGuideTitle":{message:`Налаштування мережі`,description:`Заголовок вікна пояснення про невідповідність мережі.`},"message.x402NetworkGuideDesc":{message:`Будь ласка, дотримуйтесь наведених нижче кроків, щоб змінити мережу гаманця на {network}, після чого оновіть цю сторінку для повторної перевірки.`,description:`Опис для користувача про налаштування мережі гаманця.`},"message.x402NetworkGuideStep1":{message:`Відкрийте розширення гаманця, перейдіть до Налаштування -> Активні мережі.`,description:`Крок 1 налаштування мережі.`},"message.x402NetworkGuideStep2":{message:`У списку мереж підтвердіть, що {network} (або інша вказана мережа) увімкнена, якщо увімкнена, цей крок можна пропустити.`,description:`Опис другого кроку налаштування мережі, не потрібно вимикати Ethereum.`},"message.x402NetworkGuideStep3":{message:`Поверніться на цю сторінку, натисніть «Я налаштував» і спробуйте оплатити знову.`,description:`Крок 3 налаштування мережі.`},"message.x402NetworkGuideConfirm":{message:`Я налаштував`,description:`Головна кнопка після завершення налаштування мережі.`},"message.x402NetworkSwitchFailed":{message:`Поточний гаманець не підтримує автоматичне перемикання мережі, будь ласка, вручну перемкніться на вказану мережу в гаманці та спробуйте знову.`,description:`Повідомлення для користувача, що гаманець не підтримує автоматичне перемикання мережі, потрібно перемикатися вручну.`},"message.x402PaymentFailed":{message:`Оплата через гаманець X402 не вдалася, будь ласка, спробуйте ще раз пізніше. Якщо неодноразово не вдається, зверніться до служби підтримки та надайте інформацію про помилку.`,description:`Загальне повідомлення про помилку, яке з'являється при невдачі оплати через гаманець X402.`},"message.x402WalletPayCta":{message:`Оплатити через гаманець`,description:`Текст кнопки для завершення оплати через прив'язаний гаманець.`},"button.refund":{message:`Повернення`,description:`Текст на кнопці для ручного повернення замовлення.`},"field.applicationId":{message:`ID заявки`,description:`ID заявки, до якої належить замовлення.`},"field.serviceId":{message:`ID послуги`,description:`ID послуги, що відповідає знижці.`},"field.generalDiscount":{message:`Загальна знижка`,description:`Мітка, що відображається, коли знижка діє на всі послуги.`},"field.userId":{message:`ID користувача`,description:`ID користувача, який отримує знижку.`},"field.discount":{message:`Знижка`,description:`Відсоток знижки, що застосовується до замовлення цього користувача.`},"field.actions":{message:`Дії`,description:`Заголовок стовпця з кнопками дій.`},"message.confirmRefund":{message:`Ця дія скасує права на це замовлення та позначить його як повернуте, скасування неможливе. Будь ласка, підтверджуйте, що повернення оброблено, чи продовжити?`,description:`Повідомлення для підтвердження повернення.`},"message.x402IntegrationIntro":{message:`Поточне замовлення використовує платіжний протокол X402, будь ласка, завершіть інтеграцію на сервері відповідно до параметрів нижче та ініціюйте оплату.`,description:`Текст, що пояснює необхідність використання протоколу X402.`},"message.x402IntegrationProtocol":{message:`Викликайте платіжний інтерфейс facilitator та завершіть підписання та трансляцію, після успішного розрахунку поверніться на цю сторінку для підтвердження статусу.`,description:`Опис кроків для завершення оплати через X402.`},"message.x402IntegrationDocsHint":{message:`Хочете дізнатися більше деталей? Будь ласка, перегляньте документацію для розробників нижче.`,description:`Нагадування для користувача про можливість отримати більше інформації через документацію для розробників.`},"message.x402WalletTitleEvm":{message:`EVM гаманець`,description:`Заголовок картки підключення EVM гаманця.`},"message.x402WalletTitleSolana":{message:`Solana гаманець`,description:`Заголовок картки підключення Solana гаманця.`},"message.publicPayNotFound":{message:`Замовлення не знайдено або термін його дії минув.`,description:`Shown on public pay page when the order GET returns 404.`},"message.x402WalletStatusDetected":{message:`Виявлено`,description:`Мітка статусу гаманця, що виявлений/встановлений.`},"message.x402WalletStatusInstall":{message:`Встановити`,description:`Мітка статусу/входу для встановлення гаманця.`},"message.x402WalletStatusQr":{message:`QR-код`,description:`Мітка входу QR-коду WalletConnect.`},"message.x402WalletConnectTitle":{message:`WalletConnect`,description:`Заголовок спливаючого вікна QR-коду WalletConnect.`},"message.x402WalletConnectPreparing":{message:`Підготовка WalletConnect…`,description:`Повідомлення під час підготовки з'єднання WalletConnect.`},"message.x402WalletConnectOpenWallet":{message:`Відкрити гаманець`,description:`Текст кнопки для відкриття гаманця через WalletConnect на мобільному.`},"message.x402WalletConnectScanHint":{message:`Будь ласка, використовуйте гаманець, що підтримує WalletConnect, для сканування QR-коду.`,description:`Текст під QR-кодом WalletConnect.`},"message.x402SwitchNetworkCta":{message:`Перемкнути на {network}`,description:`CTA для перемикання мережі.`},"message.x402NoWalletTitle":{message:`EVM гаманець не виявлено`,description:`Заголовок, коли браузер не має вбудованого EVM гаманця.`},"message.x402NoWalletSafariDesc":{message:`Safari зазвичай не підтримує розширення, такі як MetaMask, рекомендується використовувати Chrome/Brave або відкрити цю сторінку в вбудованому браузері мобільного гаманця.`,description:`Опис безгаманця в середовищі Safari.`},"message.x402InstallMetaMask":{message:`Встановити MetaMask`,description:`Текст кнопки для встановлення MetaMask.`},"message.x402InstallPhantom":{message:`Встановити Phantom`,description:`Текст кнопки для встановлення Phantom.`},"message.x402ConnectWC":{message:`Підключитися через WalletConnect`,description:`Текст кнопки для підключення через WalletConnect.`},"message.x402RefreshDetect":{message:`Перевірити знову`,description:`Текст кнопки для повторної перевірки гаманця.`},"message.x402MissingWCProjectId":{message:`Не налаштовано WalletConnect Project ID (будь ласка, налаштуйте змінну середовища VITE_WALLETCONNECT_PROJECT_ID)`,description:`Повідомлення про відсутність ID проекту WalletConnect.`},"message.x402WalletBound":{message:`Прив'язано`,description:`Значок, що відображається, коли гаманець прив'язано.`},"message.userIdRequired":{message:`Введіть ID користувача.`,description:`Коли ID користувача порожній, відображається підказка.`},"message.serviceIdRequired":{message:`Виберіть послугу.`,description:`Коли ID послуги порожній, відображається підказка.`},"message.discountRequired":{message:`Введіть знижку від 0 до 1.`,description:`Коли знижка не в межах допустимого діапазону, відображається підказка.`},"message.discountCreated":{message:`Знижка успішно збережена.`,description:`Підказка при успішному створенні нової знижки.`},"message.discountUpdated":{message:`Знижка успішно оновлена.`,description:`Підказка при успішному редагуванні знижки.`},"message.discountDeleted":{message:`Знижка успішно видалена.`,description:`Підказка при успішному видаленні знижки.`},"state.refunded":{message:`Відшкодовано`,description:`Статус замовлення, що вказує на те, що замовлення було відшкодовано.`},"title.revenueAnalysis":{message:`Аналіз доходів`,description:`Заголовок сторінки аналізу доходів.`},"title.todayRevenue":{message:`Сьогоднішня сума продажів`,description:`Сьогоднішня сума продажів.`},"title.last7dRevenue":{message:`Сума продажів за останній тиждень`,description:`Сума продажів за останній тиждень.`},"title.last30dRevenue":{message:`Сума продажів за останній місяць`,description:`Сума продажів за останні 30 днів.`},"title.last90dRevenue":{message:`Сума продажів за останній квартал`,description:`Сума продажів за останні 90 днів.`},"title.revenueTrend":{message:`Тренд доходів`,description:`Заголовок графіка тренду доходів.`},"title.manageOrderDiscount":{message:`Управління знижками`,description:`Заголовок сторінки управління знижками для замовлень.`},"title.discountLookup":{message:`Поточна знижка`,description:`Заголовок блоку, що показує поточну знижку користувача.`},"title.createDiscount":{message:`Додати знижку`,description:`Заголовок блоку для створення нової знижки.`},"title.updateDiscount":{message:`Оновити знижку`,description:`Заголовок вікна редагування знижки.`},"message.wechatPayLongPressTip":{message:`Утримуйте QR-код нижче та виберіть 'Розпізнати QR-код', щоб завершити оплату в WeChat.`,description:"Tip shown above the Native QR on mobile-WeChat. The user long-presses to recognise the `weixin://wxpay/bizpayurl` URL and pays without leaving WeChat."},"message.wechatPayMobileScanTip":{message:`Збережіть або зробіть скріншот нижче QR-коду, відкрийте WeChat, натисніть «Сканувати», виберіть у правому верхньому куті альбом, оберіть щойно збережене зображення, щоб завершити оплату.`,description:`Текст, що відображається над QR-кодом у мобільному браузері, не пов'язаному з WeChat. Інструктує користувачів зберегти зображення QR-коду та використовувати функцію альбому у WeChat для сканування та завершення оплати.`},"message.creditsValue":{message:`{value} кредитів`,description:`Display of credits amount for an order, e.g. '5 credits'. {value} is the formatted credit number.`},"title.totalOrders":{message:`Total Orders`,description:`Summary card: total number of orders matching the current filters.`},"title.totalSpent":{message:`Total Spent`,description:`Summary card: total amount spent across matching orders.`},"title.finishedOrders":{message:`Finished Orders`,description:`Summary card: number of finished orders.`},"title.pendingOrders":{message:`Pending Orders`,description:`Summary card: number of pending orders.`},"button.export":{message:`Export CSV`,description:`Button label to export the filtered orders as CSV.`},"field.allStates":{message:`All States`,description:`Placeholder of the state filter dropdown indicating no specific state is selected.`},"field.allPayWays":{message:`All Payment Methods`,description:`Placeholder of the payment method filter dropdown indicating no specific method is selected.`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.pay":{message:`Zapłać`,description:`Tekst w przycisku, który służy do płatności za zamówienie.`},"button.continuePay":{message:`Kontynuuj płatność`,description:`Tekst w przycisku, który służy do kontynuowania płatności za zamówienie.`},"button.checkDetail":{message:`Zobacz szczegóły`,description:`Tekst w przycisku, który służy do przeglądania szczegółów zamówienia.`},"button.query":{message:`Zapytaj`,description:`Tekst w przycisku, który służy do zapytania o zamówienie.`},"button.finish":{message:`Ręcznie zakończ`,description:`Tekst w przycisku, który służy do ręcznego zakończenia zamówienia.`},"button.update":{message:`Aktualizuj`,description:`Tekst w przycisku, który służy do aktualizacji zamówienia.`},"field.id":{message:`ID zamówienia`,description:`ID zamówienia.`},"field.amount":{message:`Kwota`,description:`Kwota punktów zamówienia.`},"field.price":{message:`Kwota`,description:`Kwota punktów zamówienia.`},"field.description":{message:`Opis zamówienia`,description:`Opis zamówienia.`},"field.state":{message:`Stan`,description:`Stan zamówienia.`},"field.createdAt":{message:`Data utworzenia`,description:`Data utworzenia zamówienia.`},"field.service":{message:`Nazwa usługi`,description:`Nazwa usługi.`},"field.payWay":{message:`Metoda płatności`,description:`Metoda płatności zamówienia.`},"field.api":{message:`API`,description:`API to usługa online.`},"field.proxy":{message:`Proxy`,description:`Proxy to usługa online, która służy do przesyłania danych przez HTTP.`},"message.paidSuccessfully":{message:`Płatność zakończona pomyślnie`,description:`Wiadomość o pomyślnej płatności.`},"message.orderExpired":{message:`Zamówienie wygasło, proszę utworzyć nowe zamówienie, aby dokonać płatności.`,description:`Wiadomość o wygasłym zamówieniu.`},"message.createFailed":{message:`Nie udało się utworzyć`,description:`Wiadomość o nieudanej próbie utworzenia.`},"message.wechatPayHelp":{message:`Proszę otworzyć WeChat na telefonie i zeskanować, aby zakończyć płatność`,description:`Wiadomość pomocy dotyczącej płatności WeChat.`},"message.wechatPayMobileGuide":{message:`Mobile browsers can't open WeChat Pay directly. Copy the payment link below and open it inside WeChat to continue.`,description:`Guide shown to users on a mobile browser outside WeChat, where H5 WeChat Pay is unavailable.`},"button.copyPayLink":{message:`Copy payment link`,description:`Label for the button that copies the current page URL so the user can paste it inside WeChat.`},"message.wechatPayMobileHint":{message:`After copying, open WeChat, paste the link into any chat or the search bar, and tap it to complete payment.`,description:`Secondary hint shown beneath the copy-link button to guide users through pasting the link inside WeChat.`},"message.free":{message:`Darmowe`,description:`Wiadomość o darmowym zamówieniu.`},"message.buyInExternalUrl":{message:`Proszę zakończyć płatność w zewnętrznym linku`,description:`Wiadomość o płatności w zewnętrznym linku.`},"message.updateFailed":{message:`Aktualizacja nie powiodła się`,description:`Wiadomość o nieudanej aktualizacji.`},"message.updateSuccessfully":{message:`Aktualizacja zakończona pomyślnie`,description:`Wiadomość o pomyślnej aktualizacji.`},"message.confirmFinish":{message:`Ta operacja ręcznie ustawi zamówienie w statusie płatności i zakończy przetwarzanie, co jest nieodwracalne. Proszę potwierdzić, że klient zakończył płatność, czy chcesz kontynuować?`,description:`Wiadomość potwierdzająca zakończenie.`},"state.pending":{message:`Oczekuje na płatność`,description:`Stan zamówienia, który oznacza, że zamówienie czeka na płatność od użytkownika.`},"state.paid":{message:`Opłacone`,description:`Stan zamówienia, który oznacza, że zamówienie zostało opłacone.`},"state.finished":{message:`Zakończone`,description:`Stan zamówienia, który oznacza, że zamówienie zostało zakończone.`},"state.expired":{message:`Czas płatności minął`,description:`Stan zamówienia, który oznacza, że zamówienie wygasło.`},"state.failed":{message:`Płatność nie powiodła się`,description:`Stan zamówienia, który oznacza, że płatność za zamówienie nie powiodła się.`},"title.info":{message:`Informacje o zamówieniu`,description:`Tytuł wyświetlany na stronie, który oznacza informacje o zamówieniu.`},"title.wechatPay":{message:`Płatność WeChat`,description:`Tytuł wyświetlany na stronie, który oznacza płatność WeChat.`},"title.aliPay":{message:`Alipay`,description:`Tytuł wyświetlany na stronie, który oznacza płatność Alipay, Alipay to metoda płatności online.`},"title.stripe":{message:`Stripe`,description:`Tytuł wyświetlany na stronie, który oznacza płatność Stripe, Stripe to metoda płatności online.`},"title.manageOrder":{message:`Zarządzaj zamówieniem`,description:`Tytuł wyświetlany na stronie, który oznacza zarządzanie zamówieniem.`},"title.x402":{message:`Kryptowaluta`,description:`Tytuł wyświetlany na stronie, który oznacza płatność kryptowalutą (na podstawie rozwiązania płatniczego X402).`},"title.paypal":{message:`PayPal`,description:`Tytuł wyświetlany na stronie, który oznacza płatność PayPal.`},"message.discountTag":{message:`{percent}% zniżki`,description:`Tekst etykiety wyświetlającej zastosowany procent zniżki.`},"message.discountHint":{message:`Jesteś naszym ekskluzywnym klientem VIP, automatycznie otrzymujesz {percent}% zniżki.`,description:`Opis informujący użytkownika o automatycznej zniżce z powodu statusu VIP.`},"message.x402DiscountApplied":{message:`Dzięki płatności X402, dodatkowo otrzymujesz {percent}% zniżki.`,description:`Opis dodatkowej zniżki wynikającej z płatności X402.`},"message.x402DiscountTag":{message:`{percent}% zniżki`,description:`Podkreślenie procentu zniżki, którą można uzyskać wybierając płatność X402.`},"message.x402DiscountHint":{message:`Wybierz płatność X402, aby natychmiast uzyskać dodatkowe {percent}% zniżki.`,description:`Informacja dla użytkownika, że płatność X402 odblokowuje dodatkowy rabat.`},"message.x402IntroShort":{message:`Wybierz portfel, aby zakończyć płatność USDC.`,description:`Krótki opis wprowadzenia.`},"message.x402TabWallet":{message:`Płatność portfelem`,description:`Tytuł zakładki płatności portfelem.`},"message.x402TabApi":{message:`Programowo`,description:`Tytuł zakładki programowej.`},"message.x402WalletTitle":{message:`Połącz portfel i zapłać USDC`,description:`Tytuł szybkiej płatności portfelem X402 (USDC).`},"message.x402WalletConnected":{message:`Połączono`,description:`Etykieta wyświetlana, gdy portfel jest połączony.`},"message.x402ConnectWallet":{message:`Połącz portfel`,description:`Tekst przycisku do połączenia portfela EVM.`},"message.x402NoWalletDesc":{message:`Proszę użyć przeglądarki obsługującej portfele (zalecane Chrome/Brave) lub zainstalować rozszerzenie MetaMask/Phantom; można również otworzyć tę stronę w wbudowanej przeglądarce aplikacji portfela na telefonie.`,description:`Ogólny opis braku portfela.`},"message.x402SwitchNetwork":{message:`Proszę przełączyć sieć portfela na {network}`,description:`Informacja dla użytkownika o przełączeniu na określoną sieć blockchain.`},"message.x402SolanaNotEnabled":{message:`Backend Solana X402 nie jest jeszcze włączony.`,description:`Informacja, gdy zamówienie nie ma włączonego Solana X402.`},"message.x402NeedConnectAccount":{message:`Proszę najpierw połączyć portfel.`,description:`Przypomnienie wyświetlane, gdy portfel nie jest połączony.`},"message.x402ConfirmTitle":{message:`Potwierdź płatność`,description:`Tytuł okna potwierdzenia płatności X402.`},"message.x402ConfirmDesc":{message:`Czy potwierdzasz płatność USDC na {network}?`,description:`Opis okna potwierdzenia płatności X402.`},"message.x402StepsTitle":{message:`Kroki płatności`,description:`Tytuł kroków.`},"message.x402Step1":{message:`Połącz portfel (jeśli nie jest zainstalowany, zainstaluj rozszerzenie i odśwież tę stronę lub otwórz tę stronę w portfelu na telefonie)`,description:`Tekst kroku 1.`},"message.x402Step2":{message:`Zmień ustawienia portfela, aby potwierdzić, że sieć portfela to {network}`,description:`Tekst kroku 2.`},"message.x402Step3":{message:`Kliknij „Użyj płatności portfelem”, aby zakończyć autoryzację w portfelu`,description:`Tekst kroku 3.`},"message.x402Step4":{message:`Po pomyślnym podpisaniu automatycznie rozliczymy płatność, a ta strona zaktualizuje się do statusu opłaconego`,description:`Tekst kroku 4.`},"message.x402IntegrationResourceLabel":{message:`Adres interfejsu płatności`,description:`Etykieta adresu interfejsu płatności.`},"message.x402IntegrationPayToLabel":{message:`Adres rozliczeniowy`,description:`Etykieta wyświetlająca adres rozliczeniowy blockchain.`},"message.x402IntegrationNetworkLabel":{message:`Sieć`,description:`Etykieta wyświetlająca nazwę sieci blockchain.`},"message.x402IntegrationAssetLabel":{message:`Aktywa rozliczeniowe`,description:`Etykieta wyświetlająca aktywa rozliczeniowe.`},"message.x402IntegrationFallback":{message:`Nie udało się uzyskać pełnych danych sesji, proszę zapoznać się z dokumentacją dewelopera lub skontaktować się z pomocą techniczną w celu uzyskania niezbędnych parametrów.`,description:`Informacja wyświetlana, gdy nie można uzyskać danych sesji.`},"message.x402IntegrationDocsCta":{message:`Otwórz przewodnik dewelopera X402`,description:`Tekst przycisku akcji do otwarcia przewodnika dewelopera.`},"message.x402InstallGuideTitle":{message:`Zainstaluj rozszerzenie portfela`,description:`Tytuł okna z instrukcją instalacji portfela.`},"message.x402InstallGuideDesc":{message:`Proszę wykonać poniższe kroki, aby zainstalować rozszerzenie {wallet}, a następnie użyć przycisku poniżej, aby odświeżyć tę stronę i ponownie wykryć portfel.`,description:`Opis prowadzący użytkownika do zainstalowania rozszerzenia portfela.`},"message.x402InstallGuideStep1":{message:`Na nowo otwartej stronie pobierz i zainstaluj rozszerzenie przeglądarki {wallet} (zalecane Chrome/Brave).`,description:`Krok 1 instalacji portfela.`},"message.x402InstallGuideStep2":{message:`Zakończ instalację rozszerzenia, zaloguj się/odblokuj i upewnij się, że jest włączone w bieżącym profilu przeglądarki.`,description:`Krok 2 instalacji portfela.`},"message.x402InstallGuideStep3":{message:`Wróć na tę stronę, kliknij „Już zainstalowałem”, a następnie spróbuj ponownie „Połączyć portfel”.`,description:`Krok 3 instalacji portfela.`},"message.x402InstallGuideConfirm":{message:`Już zainstalowałem`,description:`Główny przycisk po zakończeniu instalacji portfela.`},"message.x402NetworkGuideTitle":{message:`Dostosuj ustawienia sieci`,description:`Tytuł okna z informacją o niezgodności sieci.`},"message.x402NetworkGuideDesc":{message:`Proszę wykonać poniższe kroki, aby przełączyć sieć portfela na {network}, a następnie odświeżyć tę stronę, aby ponownie wykryć.`,description:`Opis prowadzący użytkownika do dostosowania sieci portfela.`},"message.x402NetworkGuideStep1":{message:`Otwórz rozszerzenie portfela, przejdź do Ustawienia -> Aktywne sieci.`,description:`Krok 1 ustawień sieci.`},"message.x402NetworkGuideStep2":{message:`W liście sieci potwierdź, że {network} (lub inna wskazana sieć) jest włączona. Jeśli jest włączona, możesz pominąć ten krok.`,description:`Drugi krok instrukcji dotyczącej ustawienia sieci, nie ma potrzeby wyłączania Ethereum.`},"message.x402NetworkGuideStep3":{message:`Wróć na tę stronę, kliknij „Ukończyłem ustawienia” i spróbuj ponownie dokonać płatności.`,description:`Krok 3 ustawienia sieci.`},"message.x402NetworkGuideConfirm":{message:`Ukończyłem ustawienia`,description:`Główny przycisk po zakończeniu ustawień sieci.`},"message.x402NetworkSwitchFailed":{message:`Obecny portfel nie obsługuje automatycznego przełączania sieci. Proszę ręcznie przełączyć na wskazaną sieć w portfelu i spróbować ponownie.`,description:`Informuje użytkownika, że portfel nie obsługuje automatycznego przełączania sieci, wymaga ręcznego przełączenia.`},"message.x402PaymentFailed":{message:`Płatność portfelem X402 nie powiodła się, spróbuj ponownie później. W przypadku wielokrotnych niepowodzeń skontaktuj się z pomocą techniczną i podaj informacje o błędzie.`,description:`Ogólny komunikat o błędzie wyświetlany, gdy płatność portfelem X402 nie powiodła się.`},"message.x402WalletPayCta":{message:`Płać portfelem`,description:`Tekst przycisku do dokonania płatności za pomocą powiązanego portfela.`},"button.refund":{message:`Zwróć`,description:`Tekst w przycisku do ręcznego zwrotu zamówienia.`},"field.applicationId":{message:`ID wniosku`,description:`ID wniosku do którego należy zamówienie.`},"field.serviceId":{message:`ID usługi`,description:`ID usługi odpowiadającej zniżce.`},"field.generalDiscount":{message:`Ogólna zniżka`,description:`Etykieta wyświetlana, gdy zniżka obowiązuje dla wszystkich usług.`},"field.userId":{message:`ID użytkownika`,description:`ID użytkownika korzystającego ze zniżki.`},"field.discount":{message:`Zniżka`,description:`Procent zniżki stosowanej do zamówienia tego użytkownika.`},"field.actions":{message:`Akcje`,description:`Tytuł kolumny przycisków akcji.`},"message.confirmRefund":{message:`Ta operacja unieważni prawa do zamówienia i oznaczy je jako zwrócone, co jest nieodwracalne. Proszę potwierdzić, że zwrot został przetworzony, czy chcesz kontynuować?`,description:`Komunikat potwierdzający zwrot.`},"message.x402IntegrationIntro":{message:`Obecne zamówienie korzysta z protokołu płatności X402. Proszę zakończyć integrację na serwerze i zainicjować płatność zgodnie z poniższymi parametrami.`,description:`Wprowadzenie do potrzeby użycia protokołu X402.`},"message.x402IntegrationProtocol":{message:`Wywołaj interfejs płatności facilitator i zakończ podpisywanie, po pomyślnym rozliczeniu wróć na tę stronę, aby potwierdzić status.`,description:`Opis kroków do zakończenia płatności X402.`},"message.x402IntegrationDocsHint":{message:`Chcesz poznać więcej szczegółów? Proszę sprawdzić dokumentację dewelopera poniżej.`,description:`Informuje użytkownika, że może uzyskać więcej informacji w dokumentacji dewelopera.`},"message.x402WalletTitleEvm":{message:`Portfel EVM`,description:`Tytuł karty połączenia portfela EVM.`},"message.x402WalletTitleSolana":{message:`Portfel Solana`,description:`Tytuł karty połączenia portfela Solana.`},"message.publicPayNotFound":{message:`Nie znaleziono zamówienia lub jego ważność wygasła.`,description:`Shown on public pay page when the order GET returns 404.`},"message.x402WalletStatusDetected":{message:`Wykryto`,description:`Etykieta statusu portfela wykrytego/zainstalowanego.`},"message.x402WalletStatusInstall":{message:`Zainstaluj`,description:`Etykieta statusu/ wejścia do instalacji portfela.`},"message.x402WalletStatusQr":{message:`Kod QR`,description:`Etykieta wejścia do kodu QR WalletConnect.`},"message.x402WalletConnectTitle":{message:`WalletConnect`,description:`Tytuł okna dialogowego kodu QR WalletConnect.`},"message.x402WalletConnectPreparing":{message:`Przygotowuję WalletConnect…`,description:`Komunikat podczas przygotowywania połączenia WalletConnect.`},"message.x402WalletConnectOpenWallet":{message:`Otwórz portfel`,description:`Tekst przycisku do uruchomienia portfela przez WalletConnect na urządzeniu mobilnym.`},"message.x402WalletConnectScanHint":{message:`Proszę zeskanować kod QR za pomocą portfela obsługującego WalletConnect.`,description:`Tekst pod kodem QR WalletConnect.`},"message.x402SwitchNetworkCta":{message:`Przełącz na {network}`,description:`CTA do przełączenia sieci.`},"message.x402NoWalletTitle":{message:`Nie wykryto portfela EVM`,description:`Tytuł, gdy przeglądarka nie ma zainstalowanego portfela EVM.`},"message.x402NoWalletSafariDesc":{message:`Safari zazwyczaj nie obsługuje rozszerzeń takich jak MetaMask, zaleca się użycie Chrome/Brave lub otwarcie tej strony w wbudowanej przeglądarce aplikacji portfela na telefonie.`,description:`Opis braku portfela w środowisku Safari.`},"message.x402InstallMetaMask":{message:`Zainstaluj MetaMask`,description:`Tekst przycisku do instalacji MetaMask.`},"message.x402InstallPhantom":{message:`Zainstaluj Phantom`,description:`Tekst przycisku do instalacji Phantom.`},"message.x402ConnectWC":{message:`Połącz przez WalletConnect`,description:`Tekst przycisku do połączenia przez WalletConnect.`},"message.x402RefreshDetect":{message:`Ponownie wykryj`,description:`Tekst przycisku do ponownego wykrywania portfela.`},"message.x402MissingWCProjectId":{message:`Nie skonfigurowano identyfikatora projektu WalletConnect (proszę ustawić zmienną środowiskową VITE_WALLETCONNECT_PROJECT_ID)`,description:`Komunikat o braku identyfikatora projektu WalletConnect.`},"message.x402WalletBound":{message:`Powiązany`,description:`Logo wyświetlane, gdy portfel jest powiązany.`},"message.userIdRequired":{message:`Proszę wprowadzić identyfikator użytkownika.`,description:`Wyświetlane komunikat, gdy identyfikator użytkownika jest pusty.`},"message.serviceIdRequired":{message:`Proszę wybrać usługę.`,description:`Wyświetlane komunikat, gdy identyfikator usługi jest pusty.`},"message.discountRequired":{message:`Proszę wprowadzić zniżkę od 0 do 1.`,description:`Wyświetlane komunikat, gdy zniżka nie mieści się w dozwolonym zakresie.`},"message.discountCreated":{message:`Zniżka została pomyślnie zapisana.`,description:`Komunikat wyświetlany po pomyślnym dodaniu zniżki.`},"message.discountUpdated":{message:`Zniżka została pomyślnie zaktualizowana.`,description:`Komunikat wyświetlany po pomyślnym edytowaniu zniżki.`},"message.discountDeleted":{message:`Zniżka została pomyślnie usunięta.`,description:`Komunikat wyświetlany po pomyślnym usunięciu zniżki.`},"state.refunded":{message:`Zwrócono`,description:`Stan zamówienia, oznaczający, że zamówienie zostało zwrócone.`},"title.revenueAnalysis":{message:`Analiza przychodów`,description:`Tytuł strony analizy przychodów.`},"title.todayRevenue":{message:`Dzisiaj przychód`,description:`Dzisiaj przychód.`},"title.last7dRevenue":{message:`Przychód z ostatnich 7 dni`,description:`Przychód z ostatnich 7 dni.`},"title.last30dRevenue":{message:`Przychód z ostatnich 30 dni`,description:`Przychód z ostatnich 30 dni.`},"title.last90dRevenue":{message:`Przychód z ostatnich 90 dni`,description:`Przychód z ostatnich 90 dni.`},"title.revenueTrend":{message:`Trend przychodów`,description:`Tytuł wykresu trendu przychodów.`},"title.manageOrderDiscount":{message:`Zarządzanie zniżkami`,description:`Tytuł strony zarządzania zniżkami zamówień.`},"title.discountLookup":{message:`Aktualne zniżki`,description:`Tytuł sekcji wyświetlającej aktualne zniżki użytkownika.`},"title.createDiscount":{message:`Dodaj zniżkę`,description:`Tytuł sekcji do tworzenia nowej zniżki.`},"title.updateDiscount":{message:`Aktualizuj zniżkę`,description:`Tytuł okna edycji zniżki.`},"message.wechatPayLongPressTip":{message:`Przytrzymaj ponizszy kod QR i wybierz 'Rozpoznaj kod QR', aby dokonczyc platnosc w WeChat.`,description:"Tip shown above the Native QR on mobile-WeChat. The user long-presses to recognise the `weixin://wxpay/bizpayurl` URL and pays without leaving WeChat."},"message.wechatPayMobileScanTip":{message:`Zapisz lub wykonaj zrzut ekranu poniższego kodu QR, otwórz WeChat, stuknij „Skanuj”, następnie wybierz album w prawym górnym rogu i wskaż zapisany obraz, aby dokończyć płatność.`,description:`Tekst instruktażowy wyświetlany nad kodem QR w przeglądarkach mobilnych innych niż WeChat. Wyjaśnia użytkownikowi, jak zapisać obraz kodu QR i rozpoznać go za pomocą funkcji wyboru zdjęcia z albumu w skanerze WeChat, aby sfinalizować płatność.`},"message.creditsValue":{message:`{value} kredytów`,description:`Display of credits amount for an order, e.g. '5 credits'. {value} is the formatted credit number.`},"title.totalOrders":{message:`Total Orders`,description:`Summary card: total number of orders matching the current filters.`},"title.totalSpent":{message:`Total Spent`,description:`Summary card: total amount spent across matching orders.`},"title.finishedOrders":{message:`Finished Orders`,description:`Summary card: number of finished orders.`},"title.pendingOrders":{message:`Pending Orders`,description:`Summary card: number of pending orders.`},"button.export":{message:`Export CSV`,description:`Button label to export the filtered orders as CSV.`},"field.allStates":{message:`All States`,description:`Placeholder of the state filter dropdown indicating no specific state is selected.`},"field.allPayWays":{message:`All Payment Methods`,description:`Placeholder of the payment method filter dropdown indicating no specific method is selected.`}};export{e as default};
|