1import{e as we,h as Y,I as je,q as Me,t as ot,v as Pe,F as ke,w as Be,x as lt,y as Ae,z as st,k as rt,l as _t,B as _e,c as J,b as ue,s as ze,a as fe,A as pe,n as Ee,C as ut,H as ct}from"./index.5505c178.js";import{G as A,b as g,c as v,e as ye,d as n,t as u,s as w,q,w as ae,k as oe,l as O,f as B,F,A as ne,X as S,x as j,B as dt,h as ft,j as De,Z as Ce,p as Ie,r as P,o as pt,n as be,Y as mt,a4 as gt,O as Ne}from"./vendor.427ced2e.js";import{r as vt}from"./ChevronUpDownIcon.76882c78.js";import"./ui.8f1dbae9.js";import"./charts.e62ca2c7.js";const ht={key:0,class:"px-6 py-4 border-b border-gray-200"},yt={class:"text-lg font-semibold text-gray-900"},bt={key:1,class:"px-6 py-4 border-t border-gray-200 bg-gray-50"},xe={__name:"Card",props:{variant:{type:String,default:"default",validator:r=>["default","elevated","outlined","flat"].includes(r)},title:String,contentPadding:{type:Boolean,default:!0},customClass:String},setup(r){const W=r,D=A(()=>({default:"bg-white border border-gray-200 shadow-sm hover:shadow-md",elevated:"bg-white shadow-lg hover:shadow-xl",outlined:"bg-white border-2 border-gray-300",flat:"bg-gray-50 border border-gray-200"})[W.variant]);return(p,$)=>(g(),v("div",{class:q(["rounded-lg transition-all duration-200 overflow-hidden",D.value,r.customClass])},[p.$slots.header||r.title?(g(),v("div",ht,[ye(p.$slots,"header",{},()=>[n("h3",yt,u(r.title),1)])])):w("",!0),n("div",{class:q(["px-6 py-4",r.contentPadding])},[ye(p.$slots,"default")],2),p.$slots.footer?(g(),v("div",bt,[ye(p.$slots,"footer")])):w("",!0)],2))}},kt={class:"flex items-center gap-2 sm:gap-3 mb-4 sm:mb-6"},xt={class:"text-base sm:text-lg font-semibold text-slate-900"},wt={class:"text-xs sm:text-sm text-slate-500"},$t={class:"space-y-6"},Tt={class:"space-y-4"},St={class:"block text-sm font-medium text-slate-700 mb-2"},qt={class:"text-xs text-slate-500 ml-2"},Bt={class:"grid grid-cols-2 md:grid-cols-4 gap-3"},At=["onClick"],zt=["src","alt"],Et={class:"font-medium text-slate-900 text-sm"},Dt={key:0,class:"h-5 w-5 text-blue-500 mt-2",fill:"currentColor",viewBox:"0 0 20 20"},Ct={key:0,class:"mt-1 text-sm text-red-500"},It={class:"grid grid-cols-1 md:grid-cols-2 gap-4"},Nt={class:"flex items-center justify-between mb-2"},jt={class:"block text-sm font-medium text-slate-700"},Mt={class:"relative"},Pt={class:"flex items-center gap-3"},Ft=["src","alt"],Ot={key:1,class:"w-6 h-6 rounded bg-slate-200 flex-shrink-0 flex items-center justify-center"},Ut={class:"flex-1 min-w-0"},Rt={class:"block truncate text-sm text-slate-700"},Vt={class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3"},Lt={class:"flex items-center gap-3"},Jt=["src","alt"],Ht={class:"flex-1 min-w-0"},Qt={class:"flex items-center gap-2 mb-1"},Kt={class:"text-xs text-slate-500 truncate"},Gt={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-3 text-blue-600"},Xt={key:0,class:"mt-1 text-sm text-red-500"},Yt={key:1,class:"mt-1 text-sm text-orange-500"},Wt={key:2,class:"mt-1 text-sm text-orange-500"},Zt={class:"block text-sm font-medium text-slate-700 mb-2"},ea={class:"grid grid-cols-2 gap-3"},ta=["onClick","disabled"],aa={class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ia=["d"],na={key:0,class:"mt-1 text-sm text-red-500"},oa={key:1,class:"mt-2 text-xs text-slate-600"},la={key:0},sa={key:1,class:"text-amber-600"},ra={key:2,class:"text-amber-600"},_a={class:"grid grid-cols-1 md:grid-cols-4 gap-4"},ua={class:"md:col-span-3 token-search-container"},ca={class:"block text-sm font-medium text-slate-700 mb-2"},da={key:0,class:"text-xs text-orange-500 ml-2"},fa={key:1,class:"text-xs text-slate-500 ml-2"},pa={class:"relative"},ma=["src","alt"],ga=["value","placeholder","disabled"],va={key:2,class:"absolute z-50 w-full mt-1 bg-white border border-slate-200 rounded-lg shadow-lg max-h-60 overflow-y-auto"},ha={key:0,class:"p-4 text-center text-slate-500"},ya={class:"flex items-center justify-center"},ba={key:1,class:"p-4 text-center"},ka={class:"text-slate-600 font-medium"},xa={class:"text-xs text-slate-500 mt-1"},wa={key:2},$a=["onClick"],Ta=["src","alt"],Sa={class:"flex-1 min-w-0"},qa={class:"flex items-center gap-2"},Ba={class:"font-medium text-slate-900"},Aa={key:0,class:"text-xs px-2 py-0.5 bg-green-100 text-green-700 rounded-full"},za={class:"text-xs text-slate-500"},Ea={key:0,class:"text-xs text-green-600 mt-0.5"},Da={class:"text-right flex-shrink-0 ml-3"},Ca={class:"text-sm text-slate-600"},Ia={key:0,class:"text-xs text-slate-500 mt-0.5"},Na={class:"mt-2 flex flex-wrap gap-2"},ja=["onClick"],Ma={key:0,class:"mt-1 text-sm text-red-500"},Pa={class:"block text-sm font-medium text-slate-700 mb-2"},Fa={key:0,class:"mt-1 text-sm text-red-500"},Oa={__name:"MonitorConfig",props:{formData:{type:Object,required:!0},errors:{type:Object,default:()=>({})},availableExchanges:{type:Array,default:()=>[]},selectedExchangeType:{type:String,default:""},filteredExchangeAPIs:{type:Array,default:()=>[]},selectedExchangeAPI:{type:Object,default:null},selectedExchange:{type:Object,default:null},tokenSearchQuery:{type:String,default:""},tokenSearchResults:{type:Array,default:()=>[]},tokenSearching:{type:Boolean,default:!1},showTokenResults:{type:Boolean,default:!1},selectedToken:{type:Object,default:null},popularTokens:{type:Array,default:()=>["BTC","ETH","BNB","SOL","XRP","ADA","DOGE","MATIC"]},availableQuoteAssets:{type:Array,default:()=>[]}},emits:["selectExchangeType","selectMarketType","handleTokenSearch","handleTokenInputFocus","handleTokenInputBlur","clearTokenSelection","selectToken","quickSelectToken","update:formData","update:tokenSearchQuery"],setup(r,{emit:W}){const{t:D}=we(),p=r,$=W,y=A({get:()=>p.formData,set:d=>{p.formData&&typeof p.formData=="object"&&Object.assign(p.formData,d),$("update:formData",{...p.formData,...d})}}),z=A(()=>{if(!p.selectedExchangeAPI?.balance_snapshot)return!1;const d=p.selectedExchangeAPI.balance_snapshot;return d&&typeof d=="object"&&Object.keys(d).length>0}),U=d=>{$("selectExchangeType",d)},K=d=>{$("selectMarketType",d)},e=d=>{if(!p.selectedToken)return!1;const o=p.selectedToken;return d==="spot"?!o.is_spot_available:d==="futures"?!o.is_futures_available:!1},N=A({get:()=>p.formData?.exchange_api,set:d=>{p.formData?p.formData.exchange_api=d:console.error(" - \u274C props.formData \u4E0D\u5B58\u5728")}});ae(()=>p.formData?.exchange_api,(d,o)=>{},{immediate:!0}),ae(()=>p.selectedExchangeAPI,(d,o)=>{},{immediate:!0});const R=A(()=>p.selectedExchangeAPI?p.selectedExchangeAPI:p.formData?.exchange_api&&p.filteredExchangeAPIs.length>0?p.filteredExchangeAPIs.find(o=>o.id===p.formData.exchange_api):null),ce=d=>{const o=d.target.value;$("update:tokenSearchQuery",o),$("handleTokenSearch")},b=()=>{$("handleTokenInputFocus")},G=()=>{$("handleTokenInputBlur")},V=()=>{$("clearTokenSelection")},de=d=>{$("selectToken",d)},H=d=>{$("quickSelectToken",d)},C=d=>p.availableExchanges.find(s=>s.value===d)?.logo||"",Z=d=>{if(!d||!d.balance_snapshot||typeof d.balance_snapshot!="object")return D("autoBots.notSynced");const o=d.balance_snapshot;if(o.total_usd!==void 0&&o.total_usd!==null){const s=parseFloat(o.total_usd);if(!isNaN(s)&&s>0)return`$${s.toFixed(2)}`}if(o.spot&&typeof o.spot=="object"){const s=Object.keys(o.spot);if(s.length>0){if(o.spot.USDT!==void 0&&o.spot.USDT!==null){let h=0;const f=o.spot.USDT;if(typeof f=="object"&&f!==null?h=parseFloat(f.total||f.free||f.available||0):h=parseFloat(f),!isNaN(h)&&h>0)return`${h.toFixed(2)} USDT`}for(const h of s){const f=o.spot[h];let k=0;if(typeof f=="object"&&f!==null?k=parseFloat(f.total||f.free||f.available||0):k=parseFloat(f),!isNaN(k)&&k>0)return`${k.toFixed(2)} ${h}`}}}if(o.future&&typeof o.future=="object"){const s=Object.keys(o.future);if(s.length>0){if(o.future.USDT!==void 0&&o.future.USDT!==null){let h=0;const f=o.future.USDT;if(typeof f=="object"&&f!==null?h=parseFloat(f.total||f.free||f.available||0):h=parseFloat(f),!isNaN(h)&&h>0)return`${h.toFixed(2)} USDT`}for(const h of s){const f=o.future[h];let k=0;if(typeof f=="object"&&f!==null?k=parseFloat(f.total||f.free||f.available||0):k=parseFloat(f),!isNaN(k)&&k>0)return`${k.toFixed(2)} ${h}`}}}return D("autoBots.notSynced")},le=d=>{if(!d)return"0";const o=parseFloat(d);return o>=1e6?`${(o/1e6).toFixed(2)}M`:o>=1e3?`${(o/1e3).toFixed(2)}K`:o>=1?o.toFixed(2):o.toFixed(6)},ee=d=>{if(!d)return"0";const o=parseFloat(d);return o>=1?o.toFixed(2):o.toFixed(6)};return(d,o)=>(g(),oe(xe,{variant:"default",class:"mb-4 sm:mb-6"},{default:O(()=>[n("div",kt,[o[8]||(o[8]=n("div",{class:"w-8 h-8 sm:w-10 sm:h-10 bg-slate-100 rounded-lg flex items-center justify-center flex-shrink-0"},[n("svg",{class:"w-4 h-4 sm:w-5 sm:h-5 text-slate-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})])],-1)),n("div",null,[n("h2",xt,u(d.$t("autoBots.monitorConfigTitle")),1),n("p",wt,u(d.$t("autoBots.monitorConfigDesc")),1
1)])]),n("div",$t,[n("div",Tt,[n("div",null,[n("label",St,[B(u(d.$t("autoBots.selectExchange"))+" ",1),o[9]||(o[9]=n("span",{class:"text-red-500"},"*",-1)),n("span",qt,u(d.$t("autoBots.selectExchangeDesc")),1)]),n("div",Bt,[(g(!0),v(F,null,ne(r.availableExchanges,s=>(g(),v("button",{key:s.value,type:"button",onClick:h=>U(s.value),class:q(["flex flex-col items-center justify-center p-4 border-2 rounded-xl transition-all",r.selectedExchangeType===s.value?"border-blue-500 bg-blue-50":"border-slate-200 hover:border-slate-300 bg-white"])},[n("img",{src:s.logo,alt:s.label,class:"w-12 h-12 rounded-lg mb-2 object-contain",onError:o[0]||(o[0]=(...h)=>S(Y)&&S(Y)(...h))},null,40,zt),n("div",Et,u(s.label),1),r.selectedExchangeType===s.value?(g(),v("svg",Dt,[...o[10]||(o[10]=[n("path",{"fill-rule":"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z","clip-rule":"evenodd"},null,-1)])])):w("",!0)],10,At))),128))]),r.errors.exchange_name?(g(),v("p",Ct,u(r.errors.exch
1ange_name),1)):w("",!0)]),n("div",It,[n("div",null,[n("div",Nt,[n("label",jt,[B(u(d.$t("autoBots.selectExchangeAPI"))+" ",1),o[11]||(o[11]=n("span",{class:"text-red-500"},"*",-1))]),y.value.exchange_name&&r.filteredExchangeAPIs.length===0?(g(),v("button",{key:0,type:"button",onClick:o[1]||(o[1]=s=>d.$router.push("/exchanges")),class:"text-xs text-blue-600 hover:text-blue-700 hover:underline flex items-center gap-1"},[o[12]||(o[12]=n("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)),B(" "+u(d.$t("autoBots.addExchangeAPI")),1)])):w("",!0)]),j(S(je),{modelValue:N.value,"onUpdate:modelValue":o[4]||(o[4]=s=>N.value=s),disabled:!y.value.exchange_name||r.filteredExchangeAPIs.length===0},{default:O(()=>[n("div",Mt,[j(S(Me),{class:q(["relative w-full cursor-default rounded-lg py-2.5 pl-4 pr-10 text-left border border-slate-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all",!y.value.exchange_name||r.filteredExchangeAPIs.length===0?"bg-slate-50 opacity-50 cursor-not-allowed":"bg-white hover:border-slate-400"])},{default:O(()=>[n("div",Pt,[R.value?(g(),v("img",{key:0,src:C(R.value.exchange),alt:R.value.exchange,class:"w-6 h-6 rounded object-contain flex-shrink-0",onError:o[2]||(o[2]=(...s)=>S(Y)&&S(Y)(...s))},null,40,Ft)):(g(),v("div",Ot,[...o[13]||(o[13]=[n("svg",{class:"w-4 h-4 text-slate-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})],-1)])])),n("div",Ut,[n("span",Rt,[R.value?(g(),v(F,{key:0},[B(u(R.value.exchange_display||R.value.exchange)+" - "+u(R.value.name)+" ",1),n("span",{class:q(["text-xs px-2 py-0.5 rounded-full whitespace-nowrap ml-2",R.value.is_testnet?"bg-orange-100 text-orange-700":"bg-green-100 text-green-700"])},u(R.value.is_testnet?d.$t("autoBots.testAccount"):d.$t("autoBots.realAccount")),3)],64)):(g(),v(F,{key:1},[B(u(d.$t("autoBots.selectExchangeAPIPlaceholder")),1)],64))])])]),n("span",Vt,[j(S(ot),{class:"h-5 w-5 text-slate-400","aria-hidden":"true"})])]),_:1},8,["class"]),j(dt,{"leave-active-class":"transition duration-100 ease-in","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:O(()=>[y.value.exchange_name&&r.filteredExchangeAPIs.length>0?(g(),oe(S(Pe),{key:0,class:"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-lg bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none"},{default:O(()=>[(g(!0),v(F,null,ne(r.filteredExchangeAPIs,s=>(g(),oe(S(ke),{key:s.id,value:s.id,as:"template"},{default:O(({active:h,selected:f})=>[n("li",{class:q([h?"bg-slate-100 text-slate-900":"text-slate-700","relative cursor-default select-none py-3 pl-4 pr-10"])},[n("div",Lt,[n("img",{src:C(s.exchange),alt:s.exchange,class:"w-6 h-6 rounded object-contain flex-shrink-0",onError:o[3]||(o[3]=(...k)=>S(Y)&&S(Y)(...k))},null,40,Jt),n("div",Ht,[n("div",Qt,[n("span",{class:q([f?"font-medium":"font-normal","block truncate"])},u(s.name),3),n("span",{class:q(["text-xs px-2 py-0.5 rounded-full whitespace-nowrap",s.is_testnet?"bg-orange-100 text-orange-700 font-medium":"bg-green-100 text-green-700 font-medium"])},u(s.is_testnet?d.$t("autoBots.testAccountLabel"):d.$t("autoBots.realAccountLabel")),3)]),n("div",Kt,[B(u(s.exchange_display||s.exchange)+" ",1),Z(s)!==d.$t("autoBots.notSynced")?(g(),v(F,{key:0},[B(" \xB7 "+u(d.$t("autoBots.balance"))+": "+u(Z(s)),1)],64)):w("",!0)])])]),f?(g(),v("span",Gt,[...o[14]||(o[14]=[n("svg",{class:"h-5 w-5",fill:"currentColor",viewBox:"0 0 20 20"},[n("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"})],-1)])])):w("",!0)],2)]),_:2},1032,["value"]))),128))]),_:1})):w("",!0)]),_:1})])]),_:1}
1,8,["modelValue","disabled"]),r.errors.exchange_api?(g(),v("p",Xt,u(r.errors.exchange_api),1)):w("",!0),y.value.exchange_name?r.filteredExchangeAPIs.length===0?(g(),v("p",Wt,u(d.$t("autoBots.noAPIAvailable")),1)):w("",!0):(g(),v("p",Yt,u(d.$t("autoBots.selectExchangeFirst")),1))]),n("div",null,[n("label",Zt,[B(u(d.$t("autoBots.selectMarket"))+" ",1),o[15]||(o[15]=n("span",{class:"text-red-500"},"*",-1))]),n("div",ea,[(g(!0),v(F,null,ne([{value:"spot",label:d.$t("autoBots.spot"),icon:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},{value:"futures",label:d.$t("autoBots.usdtFutures"),icon:"M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"}],s=>(g(),v("button",{key:s.value,onClick:h=>K(s.value),disabled:e(s.value),class:q(["flex items-center justify-center gap-2 p-3 rounded-lg text-center transition-all border-2 text-sm font-medium",y.value.market_type===s.value?"border-blue-500 bg-blue-50 text-blue-900":e(s.value)?"border-slate-200 bg-slate-100 text-slate-400 cursor-not-allowed":"border-slate-200 bg-white text-slate-700 hover:border-blue-300"]),type:"button"},[(g(),v("svg",aa,[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:s.icon},null,8,ia)])),B(" "+u(s.label),1)],10,ta))),128))]),r.errors.market_type?(g(),v("p",na,u(r.errors.market_type),1)):w("",!0),r.selectedToken?(g(),v("p",oa,[r.selectedToken.is_spot_available&&r.selectedToken.is_futures_available?(g(),v("span",la," \u2705 "+u(r.selectedToken.symbol)+" - "+u(d.$t("autoBots.spot"))+" & "+u(d.$t("autoBots.usdtFutures")),1)):r.selectedToken.is_spot_available&&!r.selectedToken.is_futures_available?(g(),v("span",sa," \u26A0\uFE0F "+u(r.selectedToken.symbol)+" - "+u(d.$t("autoBots.spot"))+" "+u(d.$t("autoBots.spotMarketLabel")),1)):!r.selectedToken.is_spot_available&&r.selectedToken.is_futures_available?(g(),v("span",ra," \u26A0\uFE0F "+u(r.selectedToken.symbol)+" - "+u(d.$t("autoBots.usdtFutures"))+" "+u(d.$t("autoBots.futuresMarketLabel")),1)):w("",!0)])):w("",!0)])])]),n("div",_a,[n("div",ua,[n("label",ca,[B(u(d.$t("autoBots.selectTokenLabel"))+" ",1),o[16]||(o[16]=n("span",{class:"text-red-500"},"*",-1)),y.value.exchange_name?(g(),v("span",fa,u(d.$t("autoBots.onlyShowSupported",{exchange:r.selectedExchange?.label})),1)):(g(),v("span",da,u(d.$t("autoBots.selectExchangeFirst")),1))]),n("div",pa,[r.selectedToken?(g(),v("img",{key:0,src:S(Be)(r.selectedToken),alt:r.selectedToken.symbol,class:"absolute left-3 top-1/2 -translate-y-1/2 w-6 h-6 rounded-full object-contain pointer-events-none z-10",onError:o[5]||(o[5]=(...s)=>S(Y)&&S(Y)(...s))},null,40,ma)):w("",!0),n("input",{value:r.tokenSearchQuery,onInput:ce,onFocus:b,onBlur:G,type:"text",placeholder:y.value.exchange_name?d.$t("autoBots.searchTokenHint"):d.$t("autoBots.selectExchangeFirst"),disabled:!y.value.exchange_name,class:q(["w-full py-2.5 pr-10 border border-slate-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:bg-slate-100 disabled:cursor-not-allowed",r.selectedToken?"pl-12":"pl-4"])},null,42,ga),r.selectedToken?(g(),v("button",{key:1,type:"button",onClick:V,class:"absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 transition-colors z-10",title:"\u6E05\u9664\u9009\u62E9"},[...o[17]||(o[17]=[n("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])):w("",!0),r.showTokenResults?(g(),v("div",va,[r.tokenSearching?(g(),v("div",ha,[n("div",ya,[o[18]||(o[18]=n("svg",{class:"animate-spin h-5 w-5 mr-2 text-blue-500",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[n("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),n("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})],-1)),B(" "+u(d.$t("autoBots.loading")),1)])])):r.tokenSearchResults.length===0?(g(),v("div",ba,[o[19]||(o[19]=n("div",{class:"text-slate-400 mb-2"},[n("svg",{class:"w-12 h-12 mx-auto",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})])],-1)),n("div",ka,u(r.tokenSearchQuery.trim()?d.$t("autoBots.noResults"):d.$t("autoBots.notSynced")),1
1),n("div",xa,[r.tokenSearchQuery.trim()?(g(),v(F,{key:0},[B(u(d.$t("autoBots.noMatchingToken")),1)],64)):z.value?(g(),v(F,{key:2},[B(u(d.$t("autoBots.searchTokenHint")),1)],64)):(g(),v(F,{key:1},[B(u(d.$t("autoBots.notSynced")),1)],64))])])):(g(),v("div",wa,[(g(!0),v(F,null,ne(r.tokenSearchResults,s=>(g(),v("button",{key:s.id,type:"button",onClick:h=>de(s),class:"w-full flex items-center p-3 hover:bg-slate-50 transition-colors text-left border-b border-slate-100 last:border-b-0"},[n("img",{src:S(Be)(s),alt:s.symbol,class:"w-8 h-8 rounded-full mr-3 object-contain flex-shrink-0",onError:o[6]||(o[6]=(...h)=>S(Y)&&S(Y)(...h))},null,40,Ta),n("div",Sa,[n("div",qa,[n("span",Ba,u(s.symbol),1),s.balance?(g(),v("span",Aa,u(d.$t("autoBots.balance")),1)):w("",!0)]),n("div",za,u(s.name),1),s.balance?(g(),v("div",Ea,u(d.$t("autoBots.balance"))+": "+u(le(s.balance))+" "+u(s.symbol),1)):w("",!0)]),n("div",Da,[n("div",Ca," $"+u(ee(s.current_price)),1),s.balance&&s.current_price?(g(),v("div",Ia," \u2248 $"+u(ee(s.balance*s.current_price)),1)):w("",!0)])],8,$a))),128))]))])):w("",!0)]),n("div",Na,[(g(!0),v(F,null,ne(r.popularTokens,s=>(g(),v("button",{key:s,type:"button",onClick:h=>H(s),class:"px-3 py-1 text-xs font-medium text-slate-600 bg-slate-100 hover:bg-slate-200 rounded-md transition-colors"},u(s),9,ja))),128))]),r.errors.token?(g(),v("p",Ma,u(r.errors.token),1)):w("",!0)]),n("div",null,[n("label",Pa,u(d.$t("autoBots.quoteAsset")),1),j(lt,{modelValue:y.value.trading_pair,"onUpdate:modelValue":o[7]||(o[7]=s=>y.value.trading_pair=s),options:r.availableQuoteAssets,placeholder:"\u9009\u62E9"},null,8,["modelValue","options"]),r.errors.trading_pair?(g(),v("p",Fa,u(r.errors.trading_pair),1)):w("",!0)])])])]),_:1}))}},Ua={class:"space-y-6"},Ra={class:"space-y-4"},Va={class:"block text-sm font-medium text-slate-700 mb-2"},La=["placeholder"],Ja={key:0,class:"mt-1 text-sm text-red-500"},Ha={class:"flex items-center justify-between mb-2"},Qa={class:"block text-sm font-medium text-slate-700"},Ka={class:"flex items-center gap-2 cursor-pointer"},Ga=["checked"],Xa={class:"text-xs text-slate-600"},Ya=["placeholder","disabled"],Wa={key:0,class:"mt-1 text-xs text-slate-500"},Za={class:"flex items-center gap-2 sm:gap-3 mb-4 sm:mb-6"},ei={class:"text-xs sm:text-sm text-slate-500"},ti={class:"relative"},ai={class:"flex min-w-0 items-center gap-3 text-slate-700"},ii={class:"min-w-0 flex-1 truncate"},ni={key:0,class:"ml-1 rounded-full bg-amber-50 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700"},oi={key:0,class:"hidden shrink-0 items-center gap-3 sm:flex"},li=["title"],si={class:"w-28 text-right leading-tight"},ri={class:"block text-[10px] font-medium text-slate-400"},_i={class:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-3"},ui={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-3 text-blue-600"},ci={key:0,class:"ml-2 rounded-full bg-amber-50 px-1.5 py-0.5 text-[10px] font-semibold text-amber-700"},di={class:"flex shrink-0 items-center justify-between gap-3 sm:justify-start"},fi=["title"],pi={class:"w-28 text-right leading-tight"},mi={class:"block text-[10px] font-medium text-slate-400"},gi={class:"flex h-5 w-5 items-center justify-center text-blue-600"},vi={key:0,class:"mt-1 text-sm text-red-500"},hi={key:1,class:"mt-1 text-xs text-slate-500"},yi={key:2,class:"mt-1 text-xs text-amber-600"},bi={__name:"AutoBotBasicInfo",props:{modelValue:{type:Object,required:!0},errors:{type:Object,default:()=>({})},availableExchanges:{type:Array,default:()=>[]},selectedExchangeType:{type:String,default:""},filteredExchangeAPIs:{type:Array,default:()=>[]},selectedExchangeAPI:{type:Object,default:null},selectedExchange:{type:Object,default:null},tokenSearchQuery:{type:String,default:""},tokenSearchResults:{type:Array,default:()=>[]},tokenSearching:{type:Boolean,default:!1},showTokenResults:{type:Boolean,default:!1},selectedToken:{type:Object,default:null},popularTokens:{type:Array,default:()=>[]},availableQuoteAssets:{type:Array,default:()=>[]},strategies:{type:Array,default:()=>[]}},emits:["update:modelValue","update:errors","select-exchange-type","select-market-type","update:token-search-query","handle-token-search","handle-token-input-focus","handle-token-input-blur","clear-token-selection","select-token","quick-select-token","update:auto-generate-description"],setup(r,{emit:W}){const D=r,p=W,$=o=>{p("select-exchange-type",o)},y=o=>{p("select-market-type",o)}
1,z=o=>{p("update:token-search-query",o)},U=()=>{p("handle-token-search")},K=()=>{p("handle-token-input-focus")},e=()=>{p("handle-token-input-blur")},N=()=>{p("clear-token-selection")},R=o=>{p("select-token",o)},ce=o=>{p("quick-select-token",o)},b=A({get:()=>D.modelValue,set:o=>{p("update:modelValue",o)}}),G=A({get:()=>b.value.auto_generate_description||!1,set:o=>{b.value.auto_generate_description=o,p("update:auto-generate-description",o)}}),V=A(()=>D.strategies.find(o=>Number(o.id)===Number(b.value.strategy))||null),de=o=>({recommended:"high",high:"high",watch:"watch",watching:"watch",limited:"limited",not_recommended:"limited"})[String(o?.backtest_confidence_status||"").toLowerCase()]||"limited",H=o=>({high:{icon:st,labelKey:"autoBots.strategyConfidenceHigh",tone:"border-emerald-200 bg-emerald-50 text-emerald-700"},watch:{icon:rt,labelKey:"autoBots.strategyConfidenceWatch",tone:"border-amber-200 bg-amber-50 text-amber-700"},limited:{icon:_t,labelKey:"autoBots.strategyConfidenceLimited",tone:"border-slate-200 bg-slate-50 text-slate-600"}})[de(o)],C=o=>{if(!o?.backtest_evidence_available)return null;const s=Number(o.backtest_net_profit);return Number.isFinite(s)?s:null},Z=o=>{const s=C(o);return s===null?"\u2014":`${s>0?"+":s<0?"-":""}${Math.abs(s).toFixed(2)} USDT`},le=o=>{const s=C(o);return s===null||s===0?"text-slate-500":s>0?"text-emerald-600":"text-rose-600"},ee=()=>{const o=[];if(D.selectedToken){const h=D.selectedToken.symbol||"",f=b.value.trading_pair||"USDT";o.push(`${h}/${f}`)}if(b.value.market_type){const h=b.value.market_type==="spot"?"\u73B0\u8D27":"\u5408\u7EA6";o.push(`${h}\u5E02\u573A`)}const s=b.value.indicators_config;if(s?.indicators?.length>0){const h={rsi:"RSI",macd:"MACD",ma_crossover:"\u5747\u7EBF\u4EA4\u53C9",bollinger_bands:"\u5E03\u6797\u5E26",volume:"\u6210\u4EA4\u91CF",open_interest:"\u6301\u4ED3\u91CF",price_action:"\u4EF7\u683C\u884C\u4E3A",support_resistance:"\u652F\u6491\u963B\u529B"},f=s.indicators.map(k=>h[k.type]||k.type).join("\u3001");if(o.push(`\u4F7F\u7528 ${f} \u6307\u6807`),s.logic){const k=s.logic==="AND"?"\u4E14":"\u6216";o.push(`\u903B\u8F91\u5173\u7CFB\uFF1A${k}`)}s.trigger_threshold&&o.push(`\u89E6\u53D1\u9608\u503C\uFF1A${s.trigger_threshold}%`)}if(b.value.timeframe||s?.timeframes_config?.primary){const h=b.value.timeframe||s?.timeframes_config?.primary||"1h",f={"1m":"1\u5206\u949F","5m":"5\u5206\u949F","15m":"15\u5206\u949F","30m":"30\u5206\u949F","1h":"1\u5C0F\u65F6","4h":"4\u5C0F\u65F6","1d":"1\u5929"};o.push(`\u4E3B\u65F6\u95F4\u5468\u671F\uFF1A${f[h]||h}`)}if(b.value.position_size_value){const h=b.value.position_size_unit==="usdt"?"USDT":b.value.position_size_unit==="percent"?"%":"",f=b.value.position_sizing_method==="fixed_amount"?"\u56FA\u5B9A\u91D1\u989D":b.value.position_sizing_method==="percentage"?"\u767E\u5206\u6BD4":"\u56FA\u5B9A\u91D1\u989D";o.push(`\u4ED3\u4F4D\u5927\u5C0F\uFF1A${b.value.position_size_value}${h}\uFF08${f}\uFF09`)}if(b.value.stop_loss_config?.value){const h=b.value.stop_loss_config.type==="fixed"?"\u56FA\u5B9A":"\u767E\u5206\u6BD4";o.push(`\u6B62\u635F\uFF1A${b.value.stop_loss_config.value}%\uFF08${h}\uFF09`)}
1if(b.value.take_profit_config?.single_value&&o.push(`\u6B62\u76C8\uFF1A${b.value.take_profit_config.single_value}%`),b.value.market_type==="linear"&&b.value.leverage&&o.push(`\u6760\u6746\u500D\u6570\uFF1A${b.value.leverage}x`),b.value.trading_direction){const h={both:"\u53CC\u5411\u4EA4\u6613",long_only:"\u4EC5\u505A\u591A",short_only:"\u4EC5\u505A\u7A7A"};o.push(`\u4EA4\u6613\u65B9\u5411\uFF1A${h[b.value.trading_direction]||b.value.trading_direction}`)}return o.join("\uFF0C")+"\u3002"},d=o=>{const s=o.target.checked;G.value=s,s&&(b.value.description=ee())};return ae([()=>b.value.exchange_name,()=>D.selectedToken,()=>b.value.market_type,()=>b.value.trading_pair,()=>b.value.indicators_config,()=>b.value.timeframe,()=>b.value.position_size_value,()=>b.value.position_size_unit,()=>b.value.position_sizing_method,()=>b.value.stop_loss_config,()=>b.value.take_profit_config,()=>b.value.leverage,()=>b.value.trading_direction],()=>{G.value&&(b.value.description=ee())},{deep:!0}),(o,s)=>{const h=ft("router-link");return g(),v("div",Ua,[j(xe,{variant:"default",class:"mb-6 !overflow-visible"},{default:O(()=>[n("div",Ra,[n("div",null,[n("label",Va,[B(u(o.$t("autoBots.botName"))+" ",1),s[3]||(s[3]=n("span",{class:"text-red-500"},"*",-1))]),De(n("input",{"onUpdate:modelValue":s[0]||(s[0]=f=>b.value.name=f),type:"text",placeholder:o.$t("autoBots.botNamePlaceholder"),class:q(["w-full rounded-lg border border-slate-300 px-4 py-2.5 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",{"border-red-500":r.errors.name}])},null,10,La),[[Ce,b.value.name]]),r.errors.name?(g(),v("p",Ja,u(r.errors.name),1)):w("",!0)]),n("div",null,[n("div",Ha,[n("label",Qa,u(o.$t("autoBots.descriptionOptional")),1),n("label",Ka,[n("input",{type:"checkbox",checked:G.value,onChange:d,class:"w-4 h-4 text-blue-600 border-slate-300 rounded focus:ring-blue-500"},null,40,Ga),n("span",Xa,u(o.$t("autoBots.autoConfigDesc")),1)])]),De(n("textarea",{"onUpdate:modelValue":s[1]||(s[1]=f=>b.value.description=f),rows:"3",placeholder:o.$t("autoBots.descriptionPlaceholder"),class:q(["w-full rounded-lg border border-slate-300 px-4 py-2.5 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",{"bg-slate-50 cursor-not-allowed":G.value}]),disabled:G.value},null,10,Ya),[[Ce,b.value.description]]),G.value?(g(),v("p",Wa,u(o.$t("autoBots.autoDescHint")),1)):w("",!0)])])]),_:1}),j(Oa,{"form-data":b.value,errors:r.errors,"available-exchanges":r.availableExchanges,"selected-exchange-type":r.selectedExchangeType,"filtered-exchange-a-p-is":r.filteredExchangeAPIs,"selected-exchange-a-p-i":r.selectedExchangeAPI,"selected-exchange":r.selectedExchange,"token-search-query":r.tokenSearchQuery,"token-search-results":r.tokenSearchResults,"token-searching":r.tokenSearching,"show-token-results":r.showTokenResults,"selected-token":r.selectedToken,"popular-tokens":r.popularTokens,"available-quote-assets":r.availableQuoteAssets,onSelectExchangeType:$,onSelectMarketType:y,"onUpdate:tokenSearchQuery":z,onHandleTokenSearch:U,onHandleTokenInputFocus:K,onHandleTokenInputBlur:e,onClearTokenSelection:N,onSelectToken:R,onQuickSelectToken:ce},null,8,["form-data","errors","available-exchanges","selected-exchange-type","filtered-exchange-a-p-is","selected-exchange-a-p-i","selected-exchange","token-search-query","token-search-results","token-searching","show-token-results","selected-token","popular-tokens","available-quote-assets"]),j(xe,{variant:"default",class:"mb-6 !overflow-visible"},{default:O(()=>[n("div",Za,[s[5]||(s[5]=n("div",{class:"w-8 h-8 sm:w-10 sm:h-10 bg-blue-50 rounded-lg flex items-center justify-center flex-shrink-0"},[n("svg",{class:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6M7 4h10a2 2 0 012 2v12a2 2 0 01-2 2H7a2 2 0 01-2-2V6a2 2 0 012-2z"})])],-1)),n("div",null,[s[4]||(s[4]=n("h2",{class:"text-base sm:text-lg font-semibold text-slate-900"},"\u5173\u8054\u7B56\u7565",-1)),n("p",ei," \u4EC5\u663E\u793A\u53D1\u5E03\u7248\u672C\u660E\u786E\u63A8\u8350 "+u(r.selectedToken?.symbol||"\u5F53\u524D\u4EE3\u5E01")+" \u7684\u7B56\u7565\u3002 ",1)])]),n("div",null,[s[7
1]||(s[7]=n("label",{class:"block text-sm font-medium text-slate-700 mb-2"},[B(" \u5173\u8054\u7B56\u7565 "),n("span",{class:"text-red-500"},"*")],-1)),j(S(je),{modelValue:b.value.strategy,"onUpdate:modelValue":s[2]||(s[2]=f=>b.value.strategy=f),disabled:!r.selectedToken},{default:O(()=>[n("div",ti,[j(S(Me),{class:q(["relative w-full cursor-default rounded-xl bg-slate-50 py-3 pl-4 pr-10 text-left border border-slate-200 focus:outline-none focus:ring-2 focus:ring-indigo-500",{"border-red-500":r.errors.strategy,"cursor-not-allowed bg-slate-100 text-slate-400":!r.selectedToken}])},{default:O(()=>[n("span",ai,[n("span",ii,[B(u(V.value?.name||"\u8BF7\u9009\u62E9\u7B56\u7565")+" ",1),V.value?.is_system_template?(g(),v("span",ni,"\u7CFB\u7EDF\u6A21\u677F")):w("",!0)]),V.value?(g(),v("span",oi,[n("span",{class:q(["inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs font-semibold",H(V.value).tone]),title:V.value.backtest_confidence_reason},[(g(),oe(Ie(H(V.value).icon),{class:"h-3.5 w-3.5","aria-hidden":"true"})),B(" "+u(o.$t(H(V.value).labelKey)),1)],10,li),n("span",si,[n("span",ri,u(o.$t("community.historyBacktestProfit")),1),n("span",{class:q(["mt-0.5 block whitespace-nowrap text-xs font-semibold tabular-nums",le(V.value)])},u(Z(V.value)),3)])])):w("",!0)]),n("span",_i,[j(S(vt),{class:"h-5 w-5 text-slate-400"})])]),_:1},8,["class"]),j(S(Pe),{class:"absolute left-0 right-0 bottom-full z-[300] mb-1 max-h-60 w-full overflow-auto rounded-xl bg-white py-1 shadow-lg ring-1 ring-black ring-opacity-5"},{default:O(()=>[j(S(ke),{value:null,as:"template"},{default:O(({active:f,selected:k})=>[n("li",{class:q([f?"bg-slate-100":"","relative cursor-default select-none py-3 pl-4 pr-10"])},[n("span",{class:q([k?"font-medium":"","block truncate text-slate-500"])},"\u8BF7\u9009\u62E9\u7B56\u7565",2),k?(g(),v("span",ui,[j(S(Ae),{class:"h-5 w-5"})])):w("",!0)],2)]),_:1}),(g(!0),v(F,null,ne(r.strategies,f=>(g(),oe(S(ke),{key:f.id,value:f.id,as:"template"},{default:O(({active:k,selected:te})=>[n("li",{class:q([k?"bg-slate-100":"","grid cursor-default select-none grid-cols-1 items-center gap-2 px-4 py-3 sm:grid-cols-[minmax(0,1fr)_auto] sm:gap-4"])},[n("span",{class:q([te?"font-medium":"","min-w-0 truncate text-slate-800"])},[B(u(f.name)+" ",1),f.is_system_template?(g(),v("span",ci,"\u7CFB\u7EDF\u6A21\u677F")):w("",!0)],2),n("span",di,[n("span",{class:q(["inline-flex items-center gap-1 rounded-md border px-2 py-1 text-xs font-semibold",H(f).tone]),title:f.backtest_confidence_reason},[(g(),oe(Ie(H(f).icon),{class:"h-3.5 w-3.5","aria-hidden":"true"})),B(" "+u(o.$t(H(f).labelKey)),1)],10,fi),n("span",pi,[n("span",mi,u(o.$t("community.historyBacktestProfit")),1),n("span",{class:q(["mt-0.5 block whitespace-nowrap text-xs font-semibold tabular-nums",le(f)])},u(Z(f)),3)]),n("span",gi,[te?(g(),oe(S(Ae),{key:0,class:"h-5 w-5"})):w("",!0)])])],2)]),_:2},1032,["value"]))),128))]),_:1})])]),_:1},8,["modelValue","disabled"]),r.errors.strategy?(g(),v("p",vi,u(r.errors.strategy),1)):r.selectedToken?r.strategies.length===0?(g(),v("p",yi,[B(" \u6682\u65E0\u660E\u786E\u63A8\u8350 "+u(r.selectedToken.symbol)+" \u7684\u7B56\u7565\u3002 ",1),j(h,{to:"/auto-bots/strategies/new",class:"ml-1 font-semibold text-blue-600 hover:text-blue-700 hover:underline"},{default:O(()=>[...s[6]||(s[6]=[B(" \u521B\u5EFA\u6216\u7F16\u8F91\u7B56\u7565 ",-1)])]),_:1})])):w("",!0):(g(),v("p",hi,"\u8BF7\u5148\u9009\u62E9\u4EA4\u6613\u4EE3\u5E01\uFF0C\u518D\u9009\u62E9\u4E0E\u8BE5\u4EE3\u5E01\u5339\u914D\u7684\u7B56\u7565\u3002"))])]),_:1})])}}},ki={class:"hidden lg:block w-80 flex-shrink-0 lg:order-2"},xi={class:"sticky top-24"},wi={class:"bg-white rounded-lg border border-slate-200 shadow-sm overflow-hidden flex flex-col",style:{"max-height":"calc(100vh - 120px)"}},$i={class:"bg-gradient-to-r from-slate-50 to-slate-100 px-4 py-3 border-b border-slate-200 flex-shrink-0"},Ti={class:"text-slate-700 font-semibold flex items-center gap-2"},Si={class:"p-4 space-y-4 overflow-y-auto flex-1"},qi={class:"border-b border-slate-200 pb-4"},Bi={class:"text-xs font-semibold text-slate-700 mb-3"},Ai={class:"space-y-2"},zi={class:"text-xs text-slate-500 mb-1"},Ei={class:"text-sm font-medium text-slate-900"},Di={key:0},Ci={class:"text-xs text-slate-500 mb-1"},Ii={class:"text-sm font-medium text-slate-900"},Ni={key:1},ji={class:"text-xs text-slate-500 mb-1"},Mi={class:"text-sm font-medium text-slate-900 text-slate-400"},Pi={class:"text-xs text-slate-500 mb-1"},Fi={class:"text-sm font-medium text-slate-900"},Oi={class:"border-b border-slate-200 pb-4"},Ui={class:"text-xs font-semibold text-slate-700 mb-3"},Ri={class:"space-y-2"},Vi={class:"flex items-center justify-between text-xs"},Li={class:"text-slate-600"},Ji={class:"flex items-center justify-between text-xs"},Hi={class:"border-b border-slate-200 pb-4"},Qi={class:"text-xs font-semibold text-slate-700 mb-3"},Ki={class:"space-y-1"},Gi=["onClick"],Xi={class:"p-4 border-t border-slate-200 bg-white flex-shrink-0"},Yi={class:"flex gap-3"},Wi=["disabled"],Zi={class:"lg:hidden fixed bottom-0 left-0 right-0 bg-white border-t border-slate-200 p-4 shadow-lg z-50"},en={class:"flex gap-3"},tn=["disabled"],an=Object.assign({inheritAttrs:!1},{__name:"AutoBotPreviewPanel",props:{formData:{type:Object,required:!0},selectedToken:{type:Object,default:null},activeTab:{type:String,default:"basic"},submitting:{type:Boolean,default:!1},isEditMode:{type:Boolean,default:!1}},emits:["submit","cancel","tab-change"],setup(r){const{t:W}=we(),D=r,p=A(()=>[{id:"basic",label:W("autoBots.tabBasicInfo")}]),$=A(()=>({basic:!!(D.formData.name&&D.formData.token&&(D.formData.exchange_api||D.formData.exchange_name)),strategy:!!D.formData.strategy}));return(y,z)=>(g(),v(F,null,[n("aside",ki,[n("div",xi,[n("div",wi,[n("div",$i,[n("h3",Ti,[z[4]||(z[4]=n("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1)),B(" "+u(y.$t("autoBots.configPreview")),1)])]),n("div",Si,[n("div",qi,[n("div",Bi,u(y.$t("autoBots.botOverview")),1),n("div",Ai,[n("div",null,[n("div",zi,u(y.$t("autoBots.name")),1),n("div",Ei,u(r.formData.name||y.$t("autoBots.unnamedBot")),1)]),r.formData.token&&r.selectedToken?(g(),v("div",Di,[n("div",Ci,u(y.$t("autoBots.tradingPair")),1),n("div",Ii,u(r.selectedToken.symbol||"N/A")+"/"+u(r.formData.trading_pair||"USDT"),1)])):r.formData.token?(g(),v("div",Ni,[n("div",ji,u(y.$t("autoBots.tradingPair")),1),n("div",Mi," N/A/"+u(r.formData.trading_pair||"USDT"),1)])):w("",!0),n("div",null,[n("div",Pi,u(y.$t("autoBots.marketType")),1),n("span",{class:q(["inline-flex items-center px-2 py-1 rounded text-xs font-medium",r.formData.market_type==="spot"?"bg-slate-100 text-slate-700":"bg-blue-100 text-blue-700"])},u(r.formData.market_type==="spot"?y.$t("autoBots.spotMarketLabel"):y.$t("autoBots.futuresMarketLabel")),3)]),n("div",null,[z[5]||(z[5]=n("div",{class:"text-xs text-slate-500 mb-1"},"\u673A\u5668\u4EBA\u5206\u7EC4",-1)),n("div",Fi,u(r.formData.group_name||(r.formData.group?`#${r.formData.group}`:"\u4E0D\u5206\u7EC4")),1)]),n("div",null,[z[6]||(z[6]=n("div",{class:"text-xs text-slate-500 mb-1"},"\u5173\u8054\u7B56\u7565",-1)),n("div",{class:q(["text-sm font-medium",r.formData.strategy?"text-slate-900":"text-red-600"])},u(r.formData.strategy_name||(r.formData.strategy?`#${r.formData.strategy}
1`:"\u672A\u9009\u62E9")),3)])])]),n("div",Oi,[n("div",Ui,u(y.$t("autoBots.configCompleteness")),1),n("div",Ri,[n("div",Vi,[n("span",Li,u(y.$t("autoBots.basicInfo")),1),n("span",{class:q($.value.basic?"text-blue-600":"text-slate-400")},u($.value.basic?"\u2713":"\u25CB"),3)]),n("div",Ji,[z[7]||(z[7]=n("span",{class:"text-slate-600"},"\u5173\u8054\u7B56\u7565",-1)),n("span",{class:q($.value.strategy?"text-blue-600":"text-slate-400")},u($.value.strategy?"\u2713":"\u25CB"),3)])])]),n("div",Hi,[n("div",Qi,u(y.$t("autoBots.quickNav")),1),n("div",Ki,[(g(!0),v(F,null,ne(p.value,U=>(g(),v("button",{key:U.id,onClick:K=>y.$emit("tab-change",U.id),class:q(["w-full text-left px-3 py-2 rounded-lg text-xs transition-colors",r.activeTab===U.id?"bg-blue-50 text-blue-700":"hover:bg-slate-50 text-slate-600"])},u(U.label),11,Gi))),128))])])]),n("div",Xi,[n("div",Yi,[n("button",{onClick:z[0]||(z[0]=U=>y.$emit("cancel")),class:"flex-1 bg-slate-100 text-slate-700 py-2.5 rounded-lg font-medium hover:bg-slate-200 transition-colors"},u(y.$t("autoBots.previewCancel")),1),n("button",{onClick:z[1]||(z[1]=U=>y.$emit("submit")),disabled:r.submitting,class:"flex-1 bg-blue-600 text-white py-2.5 rounded-lg font-medium hover:bg-blue-700 transition-colors disabled:opacity-50 disabled:cursor-not-allowed"},u(r.submitting?r.isEditMode?y.$t("autoBots.previewSaving"):y.$t("autoBots.previewCreating"):r.isEditMode?y.$t("autoBots.previewSaveAndRun"):y.$t("autoBots.previewCreateBot")),9,Wi)])])])])]),n("div",Zi,[n("div",en,[n("button",{onClick:z[2]||(z[2]=U=>y.$emit("cancel")),class:"flex-1 bg-slate-100 text-slate-700 py-2.5 rounded-lg font-medium"},u(y.$t("autoBots.previewCancel")),1),n("button",{onClick:z[3]||(z[3]=U=>y.$emit("submit")),disabled:r.submitting,class:"flex-1 bg-blue-600 text-white py-2.5 rounded-lg font-medium disabled:opacity-50"},u(r.submitting?r.isEditMode?y.$t("autoBots.previewSaving"):y.$t("autoBots.previewCreating"):r.isEditMode?y.$t("autoBots.previewSaveAndRun"):y.$t("autoBots.previewCreateBot")),9,tn)])])],64))}}),nn={class:"min-h-screen bg-slate-50"},on={class:"max-w-7xl mx-auto pt-8 pb-12 px-4 sm:px-6 lg:px-8"},ln={class:"mb-3 flex items-center gap-2 text-sm text-slate-500"},sn={class:"font-semibold text-slate-900"},rn={class:"flex flex-col lg:flex-row gap-4 lg:gap-6 pb-20 lg:pb-0"},_n={class:"flex-1 min-w-0 lg:order-1"},mn={__name:"CreateAutoBotPage",setup(r){const W=()=>Ne("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[Ne("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})]),D=mt(),p=gt(),{t:$}=we(),y=A(()=>!!p.params.id),z=A(()=>[{id:"basic",label:$("autoBots.basicInfo"),icon:W}]),K=P((()=>"basic")());ae(K,t=>{localStorage.setItem("autoBotCreateActiveTab",t)},{immediate:!0});const e=P({name:"",description:"",auto_generate_description:!1,token:null,exchange_api:null,exchange_name:"",market_type:"futures",timeframe:"1h",trading_pair:"USDT",strategy:null,leverage:1,margin_mode:"isolated",indicators_config:{indicators:[],logic:"AND",trigger_threshold:70,require_all:!0},check_interval:"5m",signal_quality_config:{signal_strength_threshold:60,signal_confirmation_bars:1,signal_expiration_hours:24,open_signal_quality_gate_enabled:!0,open_signal_quality_mode:"standard"},timeframes_config:{primary:"1h",structure:null,protection_momentum_danger:!0,filter_neutral_bias:!1,confirm:[],require_all_confirm:!1,min_confirm_count:1},position_size_value:100,position_size_unit:"usdt",position_sizing_method:"fixed_amount",trading_direction:"both",signal_mode:"manual",ai_risk_level:"moderate",ai_timeframe:"1h",stop_loss_config:{type:"fixed",value:5}
1,take_profit_config:{mode:"single",single_value:10},trailing_stop_enabled:!1,trailing_stop_config:{},breakeven_enabled:!1,breakeven_config:{},signal_execution_mode:"immediate",signal_delay_seconds:0,conditional_entry_ma_levels:[25,50,99],conditional_entry_tolerance_pct:.3,conditional_entry_min_bars:2,conditional_entry_max_bars:12,conditional_entry_max_price_offset_pct:0,pullback_mode:"atr",pullback_atr_multiplier:2,pullback_trend_adaptive:!0,pullback_pct:1,pullback_max_wait_minutes:60,pullback_tolerance_pct:.3,chase_entry_enabled:!0,chase_entry_pct:1,pullback_timeout_action:"cancel",max_open_positions:1,max_daily_trades:10,max_daily_loss:500,cooldown_period:0,entry_order_type:"market",exit_order_type:"market",entry_price_offset:.1,exit_price_offset:.1,max_drawdown_percentage:15,slippage_tolerance:1,slippage_limit:1,circuit_breaker_enabled:!1,circuit_breaker_loss:1e3,ai_auto_optimize_enabled:!1,ai_optimize_after_losses:3}),N=P({}),R=P(""),ce=P(""),b=P(!1),G=()=>{R.value=de.value,ce.value="",b.value=!1},V=A(()=>({basic:!!(N.value.name||N.value.token||N.value.exchange_api||N.value.strategy)}));A(()=>({basic:!!(e.value.name&&e.value.token&&(e.value.exchange_api||e.value.exchange_name)&&e.value.strategy)}));const de=A(()=>{try{const t={name:e.value.name,description:e.value.description,token:e.value.token,exchange_api:e.value.exchange_api,exchange_name:e.value.exchange_name,market_type:e.value.market_type,trading_pair:e.value.trading_pair,leverage:e.value.leverage,margin_mode:e.value.margin_mode,indicators_config:e.value.indicators_config,timeframes_config:e.value.timeframes_config,check_interval:e.value.check_interval,signal_quality_config:e.value.signal_quality_config,trading_direction:e.value.trading_direction,signal_mode:e.value.signal_mode,ai_risk_level:e.value.ai_risk_level,ai_timeframe:e.value.ai_timeframe,position_sizing_method:e.value.position_sizing_method,position_size_value:Number(e.value.position_size_value)||100,position_size_unit:e.value.position_size_unit,stop_loss_config:(()=>{const l={...e.value.stop_loss_config||{}};return l.type&&!["fixed","trailing","atr"].includes(l.type)&&(l.type="fixed"),l}
1)(),take_profit_config:(()=>{const l={...e.value.take_profit_config||{}};return l.mode&&!["single","multi","trailing","trend_break"].includes(l.mode)&&(l.mode="trailing"),l.trailing_callback_mode&&!["price","guaranteed"].includes(l.trailing_callback_mode)&&(l.trailing_callback_mode="price"),l})(),advanced_stop_config:e.value.advanced_stop_config,entry_order_type:e.value.entry_order_type,exit_order_type:e.value.exit_order_type,signal_execution_mode:e.value.signal_execution_mode,signal_delay_seconds:Number(e.value.signal_delay_seconds)||0,pullback_mode:e.value.pullback_mode,pullback_atr_multiplier:Number(e.value.pullback_atr_multiplier)||2,pullback_trend_adaptive:e.value.pullback_trend_adaptive,pullback_pct:Number(e.value.pullback_pct)||1,pullback_max_wait_minutes:Number(e.value.pullback_max_wait_minutes)||60,pullback_tolerance_pct:Number(e.value.pullback_tolerance_pct)||.3,chase_entry_enabled:e.value.chase_entry_enabled,chase_entry_pct:Number(e.value.chase_entry_pct)||1,pullback_timeout_action:e.value.pullback_timeout_action,conditional_entry_ma_levels:e.value.conditional_entry_ma_levels,conditional_entry_tolerance_pct:Number(e.value.conditional_entry_tolerance_pct)||.3,conditional_entry_min_bars:Number(e.value.conditional_entry_min_bars)||2,conditional_entry_max_bars:Number(e.value.conditional_entry_max_bars)||12,conditional_entry_max_price_offset_pct:Number(e.value.conditional_entry_max_price_offset_pct)||1,add_position_config:e.value.add_position_config,reduce_position_config:e.value.reduce_position_config,reverse_position_config:e.value.reverse_position_config,max_open_positions:Number(e.value.max_open_positions)||1,max_daily_trades:Number(e.value.max_daily_trades)||10,max_daily_loss:Number(e.value.max_daily_loss)||500,max_drawdown_percentage:Math.min(Number(e.value.max_drawdown_percentage)||15,100),cooldown_period:Number(e.value.cooldown_period)||0,slippage_tolerance:Number(e.value.slippage_tolerance)||1,circuit_breaker_enabled:e.value.circuit_breaker_enabled,circuit_breaker_loss:Number(e.value.circuit_breaker_loss)||1e3};return JSON.stringify(t,null,2)}catch(t){return console.error("\u274C formattedJsonConfig \u5E8F\u5217\u5316\u5931\u8D25:",t),JSON.stringify({error:"\u914D\u7F6E\u5E8F\u5217\u5316\u5931\u8D25: "+t.message,raw_keys:Object.keys(e.value)},null,2)}});A(()=>{const t=[];t.push("{"),t.push(" // ==================== \u57FA\u7840\u4FE1\u606F ===================="),t.push(` "name": "${e.value.name||""}", // \u673A\u5668\u4EBA\u540D\u79F0`),t.push(` "description": "${e.value.description||""}", // \u673A\u5668\u4EBA\u63CF\u8FF0`),t.push(` "token": ${e.value.token||"null"}, // \u4EA4\u6613\u4EE3\u5E01ID`),t.push(` "exchange_name": "${e.value.exchange_name||""}", // \u4EA4\u6613\u6240: "binance" | "okx"`),t.push(` "market_type": "${e.value.market_type}", // \u5E02\u573A\u7C7B\u578B: "spot"(\u73B0\u8D27) | "futures"(\u5408\u7EA6) | "linear"(USDT\u6C38\u7EED)`),t.push(` "trading_pair": "${e.value.trading_pair}", // \u4EA4\u6613\u5BF9: "USDT" | "USDC"`),t.push(` "leverage": ${e.value.leverage}, // \u6760\u6746\u500D\u6570: 1-125 (\u4EC5\u5408\u7EA6)`),t.push(` "margin_mode": "${e.value.margin_mode||"isolated"}", // \u4FDD\u8BC1\u91D1\u6A21\u5F0F: "isolated"(\u9010\u4ED3) | "cross"(\u5168\u4ED3)`),t.push(""),t.pu
1sh(" // ==================== \u4FE1\u53F7\u914D\u7F6E ===================="),t.push(` "indicators_config": ${JSON.stringify(e.value.indicators_config,null,4).split(` 2`).map((m,_)=>_===0?m:" "+m).join(` 3`)},`),t.push(" // indicators_config \u7ED3\u6784\u8BF4\u660E:"),t.push(' // strategy_id: \u7B56\u7565ID (\u5982 "macd_crossover")'),t.push(' // logic: "AND" | "OR" (\u6307\u6807\u7EC4\u5408\u903B\u8F91)'),t.push(" // trend_config: { logic, indicators[] } (\u8D8B\u52BF\u6307\u6807\u7EC4)"),t.push(" // filter_config: { logic, indicators[] } (\u8FC7\u6EE4\u6307\u6807\u7EC4\uFF0C\u5982 atr/dmi/cci/bollinger/mfi/volume/price_extreme/momentum_exhaustion)"),t.push(" // reversal_config: { logic, indicators[] } (\u53CD\u8F6C\u6307\u6807\u7EC4\uFF0C\u5982 rsi/cci)"),t.push(" // signal_quality_config: { signal_strength_threshold, signal_confirmation_bars }"),t.push(""),t.push(` "timeframes_config": ${JSON.stringify(e.value.timeframes_config,null,4).split(` 4`).map((m,_)=>_===0?m:" "+m).join(` 5`)},`),t.push(' // timeframes_config.primary: \u4E3B\u65F6\u95F4\u5468\u671F "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "1d"'),t.push(" // timeframes_config.structure: \u7ED3\u6784\u5468\u671F\uFF08\u4E09\u5C42\u8D8B\u52BF\u7CFB\u7EDF\uFF09"),t.push(' // timeframes_config.confirm: \u786E\u8BA4\u5468\u671F\u6570\u7EC4\uFF0C\u5982 ["15m", "4h"]'),t.push(" // timeframes_config.protection_*: \u5404\u7C7B\u8D8B\u52BF\u4FDD\u62A4\u5F00\u5173"),t.push(""),t.pu
5sh(` "check_interval": "${e.value.check_interval}", // \u4FE1\u53F7\u68C0\u67E5\u95F4\u9694: "1m" | "5m" | "15m" | "30m" | "1h"`),t.push(` "trading_direction": "${e.value.trading_direction}", // \u4EA4\u6613\u65B9\u5411: "both"(\u53CC\u5411) | "long_only"(\u53EA\u505A\u591A) | "short_only"(\u53EA\u505A\u7A7A)`),t.push(""),t.push(` "signal_quality_config": ${JSON.stringify(e.value.signal_quality_config,null,4).split(` 6`).map((m,_)=>_===0?m:" "+m).join(` 7`)},`),t.push(" // signal_quality_config: \u5305\u542B\u6240\u6709\u8FC7\u6EE4\u5668\u53C2\u6570 (atr/dmi/cci/bollinger/mfi/rsi/volume/price_extreme/momentum_exhaustion)"),t.push(""),t.push(" // ==================== \u4EA4\u6613\u914D\u7F6E ===================="),t.push(` "position_sizing_method": "${e.value.position_sizing_method}", // \u4ED3\u4F4D\u8BA1\u7B97: "fixed_amount"(\u56FA\u5B9A\u91D1\u989D) | "fixed_risk"(\u56FA\u5B9A\u98CE\u9669) | "kelly"(\u51EF\u5229\u516C\u5F0F) | "atr"(ATR\u8C03\u6574)`),t.push(` "position_size_value": ${e.value.position_size_value}, // \u4ED3\u4F4D\u5927\u5C0F\u503C (USDT)`),t.push(` "position_size_unit": "${e.value.position_size_unit||"usdt"}", // \u4ED3\u4F4D\u5355\u4F4D: "usdt" | "percentage"`),t.push(""),t.pu
7sh(` "stop_loss_config": ${JSON.stringify(e.value.stop_loss_config,null,4).split(` 8`).map((m,_)=>_===0?m:" "+m).join(` 9`)},`),t.push(" // stop_loss_config.enabled: \u662F\u5426\u542F\u7528\u6B62\u635F"),t.push(' // stop_loss_config.type: "fixed"(\u56FA\u5B9A\u767E\u5206\u6BD4) | "trailing"(\u79FB\u52A8\u6B62\u635F) | "atr"(ATR\u6B62\u635F)'),t.push(" // stop_loss_config.value: \u6B62\u635F\u767E\u5206\u6BD4 0.5-50"),t.push(""),t.push(` "take_profit_config": ${JSON.stringify(e.value.take_profit_config,null,4).split(` 10`).map((m,_)=>_===0?m:" "+m).join(` 11`)},`),t.push(" // take_profit_config.enabled: \u662F\u5426\u542F\u7528\u6B62\u76C8"),t.push(' // take_profit_config.mode: "single"(\u5355\u76EE\u6807) | "multi"(\u591A\u76EE\u6807) | "trailing"(\u79FB\u52A8\u6B62\u76C8) | "trend_break"(\u8D8B\u52BF\u7834\u574F)'),t.push(" // take_profit_config.trend_break_config: \u8D8B\u52BF\u7834\u574F\u6B62\u76C8\u914D\u7F6E (break_type/confirm_timeframe/min_profit/fast_ma/slow_ma)"),t.push("");const l=e.value.advanced_stop_config||{};t.push(` "advanced_stop_config": ${JSON.stringify(l,null,4).split(` 12`).map((m,_)=>_===0?m:" "+m).join(` 13`)},`),t.push(" // advanced_stop_config.breakeven_enabled: \u662F\u5426\u542F\u7528\u4FDD\u672C\u4FDD\u62A4"),t.push(" // advanced_stop_config.breakeven_trigger: \u4FDD\u672C\u89E6\u53D1\u76C8\u5229%"),t.push(" // advanced_stop_config.breakeven_lock_ratio: \u4FDD\u672C\u9501\u5B9A\u6BD4\u4F8B%"),t.push(""),t.pu
13sh(` "entry_order_type": "${e.value.entry_order_type}", // \u5165\u573A\u8BA2\u5355: "market"(\u5E02\u4EF7) | "limit"(\u9650\u4EF7)`),t.push(` "exit_order_type": "${e.value.exit_order_type}", // \u51FA\u573A\u8BA2\u5355: "market"(\u5E02\u4EF7) | "limit"(\u9650\u4EF7)`),t.push(` "signal_execution_mode": "${e.value.signal_execution_mode}", // \u6267\u884C\u6A21\u5F0F: "immediate"(\u7ACB\u5373) | "atr"(ATR\u52A8\u6001\u56DE\u8E29) | "ma"(MA\u56DE\u8E29\u5165\u573A)`),t.push(` "signal_delay_seconds": ${e.value.signal_delay_seconds||0}, // \u5EF6\u8FDF\u79D2\u6570 0-3600 (\u4EC5delayed\u6A21\u5F0F)`),t.push(""),t.push(" // ==================== \u56DE\u8E29\u5165\u573A\u914D\u7F6E ===================="),t.push(` "pullback_mode": "${e.value.pullback_mode||"atr"}", // \u56DE\u8E29\u6A21\u5F0F: "atr"(\u52A8\u6001) | "ma"(\u56DE\u8E29MA) | "percentage"(\u767E\u5206\u6BD4)`),t.push(` "pullback_atr_multiplier": ${e.value.pullback_atr_multiplier??2}, // ATR\u500D\u6570 1.0-3.0`),t.push(` "pullback_trend_adaptive": ${e.value.pullback_trend_adaptive??!0}, // \u8D8B\u52BF\u81EA\u9002\u5E94`),t.push(` "pullback_pct": ${e.value.pullback_pct??1}, // \u56DE\u8C03\u767E\u5206\u6BD4`),t.push(` "pullback_max_wait_minutes": ${e.value.pullback_max_wait_minutes??60}, // \u6700\u5927\u7B49\u5F85\u5206\u949F`),t.push(` "pullback_tolerance_pct": ${e.value.pullback_tolerance_pct??.3}, // \u5F3A\u8D8B\u52BF\u5BB9\u5DEE%`),t.push(` "chase_entry_enabled": ${e.value.chase_entry_enabled??!0}, // \u542F\u7528\u8FFD\u6DA8\u5165\u573A`),t.push(` "chase_entry_pct": ${e.value.chase_entry_pct??1}, // \u8FFD\u6DA8\u5165\u573A\u9608\u503C%`),t.push(` "pullback_timeout_action": "${e.value.pullback_timeout_action||"cancel"}", // \u8D85\u65F6\u5904\u7406: "cancel" | "execute"`),t.push(""),t.pu
13sh(" // ==================== \u6761\u4EF6\u6267\u884C\u914D\u7F6E (MA\u56DE\u8E29\u6A21\u5F0F) ===================="),t.push(` "conditional_entry_ma_levels": ${JSON.stringify(e.value.conditional_entry_ma_levels||[25,50,99])}, // MA\u7EA7\u522B\u6570\u7EC4`),t.push(` "conditional_entry_tolerance_pct": ${e.value.conditional_entry_tolerance_pct??.3}, // \u89E6\u53CAMA\u5BB9\u5FCD\u5EA6%`),t.push(` "conditional_entry_min_bars": ${e.value.conditional_entry_min_bars??2}, // \u6700\u5C0F\u786E\u8BA4K\u7EBF\u6570`),t.push(` "conditional_entry_max_bars": ${e.value.conditional_entry_max_bars??12}, // \u6700\u5927\u7B49\u5F85K\u7EBF\u6570`),t.push(` "conditional_entry_max_price_offset_pct": ${e.value.conditional_entry_max_price_offset_pct??0}, // \u4EF7\u683C\u504F\u79FB\u4FDD\u62A4%`),t.push(""),t.push(" // ==================== \u52A0\u4ED3\u914D\u7F6E ====================");const c=e.value.add_position_config||{};t.push(` "add_position_config": ${JSON.stringify(c,null,4).split(` 14`).map((m,_)=>_===0?m:" "+m).join(` 15`)},`),t.push(" // add_position_config.enabled: \u662F\u5426\u5141\u8BB8\u52A0\u4ED3"),t.push(' // add_position_config.mode: "pyramid"(\u91D1\u5B57\u5854) \u52A0\u4ED3\u6A21\u5F0F'),t.push(" // add_position_config.conditions: \u52A0\u4ED3\u89E6\u53D1\u6761\u4EF6\u6570\u7EC4"),t.push(""),t.pu
15sh(" // ==================== \u51CF\u4ED3\u914D\u7F6E ====================");const I=e.value.reduce_position_config||{};t.push(` "reduce_position_config": ${JSON.stringify(I,null,4).split(` 16`).map((m,_)=>_===0?m:" "+m).join(` 17`)},`),t.push(" // reduce_position_config.enabled: \u662F\u5426\u5141\u8BB8\u51CF\u4ED3"),t.push(" // reduce_position_config.conditions: \u51CF\u4ED3\u89E6\u53D1\u6761\u4EF6\u6570\u7EC4"),t.push(""),t.push(" // ==================== \u53CD\u5411\u914D\u7F6E\uFF08v5.0 \u4E09\u7EC4\u5408\u7ED3\u6784\uFF09 ====================");const a=e.value.reverse_position_config||{};return t.push(` "reverse_position_config": ${JSON.stringify(a,null,4).split(` 18`).map((m,_)=>_===0?m:" "+m).join(` 19`)},`),t.push(" // reverse_position_config.enabled: \u662F\u5426\u542F\u7528\u5E73\u4ED3/\u53CD\u624B\u7CFB\u7EDF"),t.push(" // reverse_position_config.combo1: \u7EC4\u5408\u4E00\uFF08\u8D8B\u52BF\u5931\u6548\uFF09 - close_ema_levels/close_ema_logic/close_confirm_bars/swing_break_enabled/momentum_threshold"),t.push(" // reverse_position_config.combo2: \u7EC4\u5408\u4E8C\uFF08\u6781\u7AEF\u8870\u7AED\uFF09 - extreme_rsi_long/extreme_rsi_short/extreme_candle_body_pct/first_reduce_ratio"),t.push(" // reverse_position_config.combo3: \u7EC4\u5408\u4E09\uFF08\u52A8\u91CF\u5D29\u584C\uFF09 - candle_body_pct/volume_multiplier"),t.push(" // reverse_position_config.adx_adaptive: ADX\u81EA\u9002\u5E94\u6743\u91CD\uFF08\u8D8B\u52BF\u5F3A\u65F6\u964D\u4F4E\u5E73\u4ED3\u654F\u611F\u5EA6\uFF09"),t.push(" // reverse_position_config.auto_reverse: \u662F\u5426\u5F00\u542F\u81EA\u52A8\u53CD\u624B"),t.push(""),t.pu
19sh(" // ==================== \u98CE\u63A7\u914D\u7F6E ===================="),t.push(` "max_open_positions": ${e.value.max_open_positions}, // \u6700\u5927\u6301\u4ED3\u6570 1-20`),t.push(` "max_daily_trades": ${e.value.max_daily_trades||10}, // \u6BCF\u65E5\u6700\u5927\u4EA4\u6613\u6B21\u6570 1-100`),t.push(` "max_daily_loss": ${e.value.max_daily_loss||500}, // \u6BCF\u65E5\u6700\u5927\u4E8F\u635F(USDT)`),t.push(` "max_drawdown_percentage": ${e.value.max_drawdown_percentage||15}, // \u6700\u5927\u56DE\u64A4%`),t.push(` "cooldown_period": ${e.value.cooldown_period||0}, // \u51B7\u5374\u65F6\u95F4(\u79D2)`),t.push(` "slippage_tolerance": ${e.value.slippage_tolerance??1}, // \u6ED1\u70B9\u5BB9\u5FCD\u5EA6%`),t.push(` "circuit_breaker_enabled": ${e.value.circuit_breaker_enabled||!1}, // \u662F\u5426\u542F\u7528\u7194\u65AD`),t.push(` "circuit_breaker_loss": ${e.value.circuit_breaker_loss||1e3} // \u7194\u65AD\u4E8F\u635F\u9608\u503C(USDT)`),t.push("}"),t.join(` 20`)});const H=P([]),C=P([]),Z=P([]),le=t=>{const l=Array.isArray(t?.recommended_symbols)?t.recommended_symbols:Array.isArray(t?.recommended_symbols_preview)?t.recommended_symbols_preview:[];return[...new Set(l.map(c=>String(c?.symbol||c||"").replace(/USDT$/i,"").trim().toUpperCase()).filter(Boolean))]},ee=A(()=>String(T.value?.symbol||"").trim().toUpperCase()),d=A(()=>ee.value?Z.value.filter(t=>le(t).includes(ee.value)):[]),o=A(()=>{const t=Z.value.find(l=>l.id===e.value.strategy);return{...e.value,strategy_name:t?.name||""}}),s=t=>t.results||t.data?.results||t.data||t||[],h=P(""),f=P(""),k=P([]),te=P(!1),X=P(!1),T=P(null);let me=null;const Fe=["BTC","ETH","BNB","SOL","XRP","ADA","DOGE","MATIC"],Oe=()=>{if(!y.value){const t=["position_size_value","position_sizing_method","stop_loss_config","take_profit_c
20onfig","leverage","max_open_positions","max_daily_trades","max_daily_loss","trading_direction","entry_order_type","exit_order_type","signal_execution_mode","entry_price_offset","slippage_limit","trailing_stop_enabled","trailing_stop_config","breakeven_enabled","breakeven_config"],l={...e.value};t.forEach(c=>{delete l[c]}),l.selectedToken=T.value?{id:T.value.id,symbol:T.value.symbol,name:T.value.name,logo:T.value.logo,current_price:T.value.current_price||0}:null,l.tokenSearchQuery=f.value||"",l.selectedExchangeType=h.value||"",localStorage.setItem("auto_bot_draft",JSON.stringify(l))}},Ue=async()=>{if(!y.value){const t=localStorage.getItem("auto_bot_draft");if(t)try{const l=JSON.parse(t),c=["position_size_value","position_sizing_method","stop_loss_config","take_profit_config","leverage","max_open_positions","max_daily_trades","max_daily_loss","trading_direction","entry_order_type","exit_order_type","signal_execution_mode"],I={...l};if(c.forEach(a=>{delete I[a]}),e.value={...e.value,...I},c.forEach(a=>{l[a]!==void 0&&l[a]!==null&&(a==="stop_loss_config"&&l[a]?.value!==void 0?e.value[a]={...e.value[a],...l[a]}
20:a==="take_profit_config"&&l[a]?.single_value!==void 0?e.value[a]={...e.value[a],...l[a]}:e.value[a]=l[a])}),l.selectedExchangeType&&(h.value=l.selectedExchangeType),l.selectedToken)T.value=l.selectedToken,f.value=l.tokenSearchQuery||`${l.selectedToken.symbol} - ${l.selectedToken.name}`;else if(l.selectedTokenSymbol&&l.selectedTokenName&&(f.value=l.tokenSearchQuery||`${l.selectedTokenSymbol} - ${l.selectedTokenName}`,e.value.token&&e.value.exchange_name&&e.value.market_type))try{const a=e.value.market_type==="futures"?"linear":e.value.market_type,m=await fe(`${pe.AI_STRATEGY_SEARCH_TOKEN}?q=${l.selectedTokenSymbol}&exchange=${e.value.exchange_name}&market_type=${a}`);if(m.status==="success"&&m.data.results&&m.data.results.length>0){const _=m.data.results.find(i=>i.symbol===l.selectedTokenSymbol)||m.data.results[0];T.value=_,f.value=`${_.symbol} - ${_.name}`}}catch(a){console.warn("\u6062\u590D\u4EE3\u5E01\u4FE1\u606F\u65F6\u641C\u7D22\u5931\u8D25\uFF0C\u4F7F\u7528\u57FA\u672C\u4FE1\u606F:",a),T.value={id:e.value.token,symbol:l.selectedTokenSymbol,name:l.selectedTokenName,logo:"",current_price:0}}}catch(l){console.error("\u6062\u590D\u8349\u7A3F\u5931\u8D25:",l)}}},Re=A(()=>e.value.exchange_name?H.value.find(t=>t.value===e.value.exchange_name):null),M=P([]),se=async()=>{if(!e.value.exchange_name||!e.value.market_type){M.value=[];return}try{const t=T.value?.symbol||"",l=e.value.market_type==="futures"?"linear":e.value.market_type,c=await fe(`${pe.TOKEN_LIST}quote_assets/?exchange=${e.value.exchange_name}&market_type=${l}&token_symbol=${t}`);c.status==="success"?(M.value=c.data.quote_assets||[],e.value.trading_pair?!M.value.some(a=>a.value===e.value.trading_pair)&&M.value.length>0&&(e.value.trading_pair=M.value[0].value):M.value.length>0&&(e.value.trading_pair=M.value[0].value)):M.value=[]}catch(t){console.error("\u274C \u52A0\u8F7D\u8BA1\u4EF7\u5E01\u79CD\u5217\u8868\u5931\u8D25:",t),M.value=[]}},Ve=A(()=>M.value.length>0?M.value:[{label:"USDT",value:"USDT"},{label:"USDC",value:"USDC"},{label:"BTC",value:"BTC"},{label:"ETH",value:"ETH"}]),Le=A(()=>e.value.exchange_name?C.value.filter(t=>t.exchange===e.value.exchange_name):[]),ie=A(()=>{const t=e.value.exchange_api;return t?C.value.find(l=>l.id===t):null}),ge=P(!1),Je=t=>{N.value={...N.value,...t}},re=async()=>{try{const t=await Ee.getExchangeList();if(t.success&&t.data){const l=t.data.results||t.data;if(C.value=(l||[]).filter(c=>["binance","okx"].includes(String(c.exchange||"").toLowerCase())),!e.value.exchange_api&&C.value.length>0){let c=null;e.value.exchange_name&&(c=C.value.find(I=>I.is_default&&I.exchange===e.value.exchange_name)),c||(c=C.value.find(I=>I.is_default)),c&&(e.value.exchange_api=c.id,e.value.exchange_name||(e.value.exchange_name=c.exchange,h.value=c.exchange))}}else C.value=[]}catch(t){console.error("\u52A0\u8F7D\u4EA4\u6613\u6240API\u5931\u8D25:",t),C.value=[]}},He=async()=>{try{const t=await Ee.getSupportedExchanges();t.success&&(H.value=(t.data||[]).filter(l=>["binance","okx"].includes(String(l.value||"").toLowerCase())))}catch(t){console.error("\u52A0\u8F7D\u4EA4\u6613\u6240\u5217\u8868\u5931\u8D25:",t)}},Qe=async()=>{try{const t=await ue.getStrategySummaries({page_size:500});Z.value=s(t)}catch(t){console.error("\u52A0\u8F7D\u7B56\u7565\u5931\u8D25:",t)}};ae([ee,d],()=>{if(!e.value.strategy)return;d.value.some(l=>Number(l.id)===Number(e.value.strategy))||(e.value.strategy=null)}),ae(()=>e.value.exchange_name,async(t,l)=>{const c=y.value&&l===void 0&&t&&e.value.token&&e.value.exchange_api;l&&t!==l&&!c?(e.value.exchange_api=null,e.value.token=null,f.value="",k.value=[],T.value=null,X.value=!1,M.value=[],t&&(await re(),e.value.market_type&&await se())):t&&!l&&!c?(await re(),e.value.market_type&&await se()):!t&&!c&&(e.value.exchange_api=null,M.value=[])});const Ke=t=>{h.value=t,e.value.exchange_name=t,e.value.exchange_api=null,e.value.token=null,f.value="",k.value=[],T.value=null,X.value=!1,M.value=[]},Ge=t=>{if(e.value.market_type!==t){if(T.value){const l=T.value;t==="spot"&&!l.is_spot_available?(J(`\u4EE3\u5E01 ${l.symbol} \u4E0D\u652F\u6301\u73B0\u8D27\u4EA4\u6613\uFF0C\u5DF2\u6E05\u7A7A\u9009\u62E9`),ve()):t==="futures"&&!l.is_futures_available&&(J(`\u4EE3\u5E01 ${l.symbol} \u4E0D\u652F\u6301\u5408\u7EA6\u4EA4\u6613\uFF0C\u5DF2\u6E05\u7A7A\u9009\u62E9`),ve())}e.value.market_type=t,k.value=[]}},$e=()=>{me&&clearTimeout(me);const t=f.value.trim();if(t.length<1){k.value=[],te.value=!1,X.value=!1,e.value.token=null,T.value=null;return}if(!e.value.exchange_name){J($("autoBots.pleaseSelectExchange"));return}e.value.token=null,T.value=null,te.value=!0,X.value=!0,me=setTimeout(async()=>{try{const l=e.value.market_type==="futures"?"linear":e.value.market_type,c=await fe(`${pe.AI_STRATEGY_SEARCH_TOKEN}?q=${t}&exchange=${e.value.exchange_name}&market_type=${l}`);c.status==="success"?k.value=c.data.results||[]:k.value=[]}catch(l){console.error("\u641C\u7D22\u4EE3\u5E01\u5931\u8D25:",l),k.value=[],J($("autoBots.searchTokenFailed"))}finally{te.value=!1}},300)},Te=async()=>
20{if(!!ie.value){if(ie.value.exchange!==e.value.exchange_name){console.warn("\u26A0\uFE0F \u4EA4\u6613\u6240API\u4E0D\u5339\u914D\u5F53\u524D\u4EA4\u6613\u6240\uFF0C\u8DF3\u8FC7\u52A0\u8F7D\u6301\u4ED3\u4EE3\u5E01"),console.warn(` - \u5F53\u524D\u4EA4\u6613\u6240: ${e.value.exchange_name}`),console.warn(` - API\u6240\u5C5E\u4EA4\u6613\u6240: ${ie.value.exchange}`),k.value=[];return}try{te.value=!0;const t=ie.value.balance_snapshot;if(!t||typeof t!="object"||Object.keys(t).length===0){k.value=[];return}const l=new Set,c=e.value.market_type||"spot",I=c==="spot",a=c==="futures"||c==="linear";if(I&&t.spot&&typeof t.spot=="object"&&Object.keys(t.spot).forEach(i=>{const x=t.spot[i];let E=0;typeof x=="object"&&x!==null?E=parseFloat(x.total||x.free||x.available||0):E=parseFloat(x),!isNaN(E)&&E>0&&l.add(i)}),a&&t.future&&typeof t.future=="object"&&Object.keys(t.future).forEach(i=>{const x=t.future[i];let E=0;typeof x=="object"&&x!==null?E=parseFloat(x.total||x.free||x.available||0):E=parseFloat(x),!isNaN(E)&&E>0&&l.add(i)}),l.size===0){k.value=[];return}const m=c==="futures"?"linear":c,_=[];for(const i of l)try{const x=await fe(`${pe.AI_STRATEGY_SEARCH_TOKEN}?q=${i}&exchange=${e.value.exchange_name}&market_type=${m}`);if(x.status==="success"&&x.data.results&&x.data.results.length>0){const E=x.data.results[0];let Q=0;if(I&&t.spot&&t.spot[i]){const L=t.spot[i];typeof L=="object"&&L!==null?Q+=parseFloat(L.total||L.free||0):Q+=parseFloat(L)||0}if(a&&t.future&&t.future[i]){const L=t.future[i];typeof L=="object"&&L!==null?Q+=parseFloat(L.total||L.free||0):Q+=parseFloat(L)||0}E.balance=Q,_.push(E)}}catch(x){console.error(`\u641C\u7D22\u4EE3\u5E01 ${i} \u5931\u8D25:`,x)}_.sort((i,x)=>{const E=(i.balance||0)*(i.current_price||0);return(x.balance||0)*(x.current_price||0)-E}),k.value=_}catch(t){console.error("\u52A0\u8F7D\u6301\u4ED3\u4EE3\u5E01\u5931\u8D25:",t),k.value=[]}finally{te.value=!1}}},Xe=async()=>{X.value=!0,!f.value.trim()&&e.value.exchange_api&&ie.value&&(ie.value.exchange===e.value.exchange_name?await Te():(console.warn("\u26A0\uFE0F \u4EA4\u6613\u6240API\u4E0D\u5339\u914D\u5F53\u524D\u4EA4\u6613\u6240\uFF0C\u6E05\u7A7A\u4EE3\u5E01\u641C\u7D22\u7ED3\u679C"),k.value=[],X.value=!1))},Ye=()=>{setTimeout(()=>{X.value=!1},200)},ve=()=>{T.value=null,e.value.token=null,f.value="",k.value=[],X.value=!1},Se=t=>{T.value=t,e.value.token=t.id,f.value=`${t.symbol} - ${t.name}`,X.value=!1,k.value=[]},We=async t=>{if(!e.value.exchange_name){J($("autoBots.pleaseSelectExchange"));return}if(f.value=t,await $e(),k.value.length>0){const l=k.value.find(c=>c.symbol.toUpperCase()===t.toUpperCase());l&&Se(l)}};ae(()=>e.value.market_type,async(t,l)=>{t&&t!==l&&(await se(),e.value.exchange_api&&ie.value&&!f.value.trim()&&await Te())}),ae(()=>T.value,async(t,l)=>{if(t&&t!==l&&(await se(),t.symbol&&e.value.trading_pair)){const c=t.symbol.toUpperCase();c===e.value.trading_pair&&(M.value.length>0?(e.value.trading_pair=M.value[0].value,J(`\u5DF2\u81EA\u52A8\u5207\u6362\u8BA1\u4EF7\u5E01\u79CD\u4E3A ${M.value[0].label}\uFF0C\u56E0\u4E3A\u4E0D\u80FD\u9009\u62E9 ${c}/${c}`)):(e.value.trading_pair="USDT",J(`\u5DF2\u81EA\u52A8\u5207\u6362\u8BA1\u4EF7\u5E01\u79CD\u4E3A USDT\uFF0C\u56E0\u4E3A\u4E0D\u80FD\u9009\u62E9 ${c}/${c}`)))}});const Ze=()=>(N.value={},e.value.name||(N.value.name="\u8BF7\u8F93\u5165\u673A\u5668\u4EBA\u540D\u79F0"),e.value.token||(N.value.token="\u8BF7\u9009\u62E9\u4EA4\u6613\u4EE3\u5E01"),!e.value.exchange_api&&!e.value.exchange_name&&(N.value.exchange_api="\u8BF7\u9009\u62E9\u4EA4\u6613\u6240\u6216\u4EA4\u6613\u6240API"),e.value.strategy||(N.value.strategy="\u8BF7\u9009\u62E9\u5173\u8054\u7B56\u7565"),Object.keys(N.value).length===0),et=async()=>{if(!Ze()){const t=z.find(l=>V.value[l.id]);t&&(K.value=t.id),J($("autoBots.pleaseCompleteRequired"));return}try{ge.value=!0;const t={name:e.value.name,description:e.value.description,auto_generate_description:e.value.auto_generate_description||!1,token:e.value.token,exchange_api:e.value.exchange_api,exchange_name:e.value.exchange_name,market_type:e.value.market_type,trading_pair:e.value.trading_pair,strategy:e.value.strategy,indicators_config:e.value.indicators_config,timeframes_config:e.value.timeframes_config,check_interval:e.value.check_interval,signal_quality_config:e.value.signal_quality_config,position_sizing_method:e.value.position_sizing_method,position_size_value:e.value.position_size_value,position_size_unit:e.value.position_size_unit,trading_direction:e.value.trading_direction,signal_mode:e.value.signal_mode,ai_risk_level:e.value.ai_risk_level,ai_timeframe:e.value.ai_timeframe,leverage:e.value.leverage||1,stop_loss_config:e.value.trailing_stop_enabled?{...e.value.stop_loss_config||{},enabled:!0,type:"trailing",activation_loss:e.value.trailing_stop_config?.trigger||5,rebound_distance:e.value.trailing_stop_config?.distance||2,max_loss:e.value.breakeven_config?.max_loss||e.value.stop_loss_config?.max_loss||20}
20:e.value.stop_loss_config,take_profit_config:e.value.take_profit_config,entry_order_type:e.value.entry_order_type,exit_order_type:e.value.exit_order_type,signal_execution_mode:e.value.signal_execution_mode,pullback_mode:e.value.pullback_mode,pullback_atr_multiplier:e.value.pullback_atr_multiplier,pullback_trend_adaptive:e.value.pullback_trend_adaptive,pullback_pct:e.value.pullback_pct,pullback_max_wait_minutes:e.value.pullback_max_wait_minutes,pullback_tolerance_pct:e.value.pullback_tolerance_pct,chase_entry_enabled:e.value.chase_entry_enabled,chase_entry_pct:e.value.chase_entry_pct,pullback_timeout_action:e.value.pullback_timeout_action,add_position_config:e.value.add_position_config||{},reduce_position_config:e.value.reduce_position_config||{},reverse_position_config:e.value.reverse_position_config||{},max_open_positions:e.value.max_open_positions,max_daily_trades:e.value.max_daily_trades,max_daily_loss:e.value.max_daily_loss,cooldown_period:e.value.cooldown_period||0};e.value.position_sizing_method==="fixed_risk"&&e.value.risk_percentage!==void 0?t.position_sizing_params={risk_percentage:e.value.risk_percentage}:e.value.position_sizing_method==="kelly"?t.position_sizing_params={kelly_win_rate:e.value.kelly_win_rate,kelly_profit_loss_ratio:e.value.kelly_profit_loss_ratio}:e.value.position_sizing_method==="atr"&&(t.position_sizing_params={atr_period:e.value.atr_period,atr_multiplier:e.value.atr_multiplier}),(e.value.entry_price_offset!==void 0||e.value.slippage_limit!==void 0||e.value.exit_price_offset!==void 0)&&(t.limit_order_params={entry_price_offset:e.value.entry_price_offset||.1,exit_price_offset:e.value.exit_price_offset||.1,slippage_limit:e.value.slippage_limit||1}),(e.value.trailing_stop_enabled||e.value.breakeven_enabled||e.value.advanced_stop_config?.breakeven_enabled)&&(t.advanced_stop_config={breakeven_enabled:e.value.breakeven_enabled||e.value.advanced_stop_config?.breakeven_enabled||!1,breakeven_trigger:e.value.breakeven_config?.trigger||e.value.advanced_stop_config?.breakeven_trigger||1.2,breakeven_buffer:e.value.breakeven_config?.buffer||e.value.advanced_stop_config?.breakeven_buffer||.2,breakeven_max_loss:e.value.breakeven_config?.max_loss||e.value.advanced_stop_config?.breakeven_max_loss||20}),e.value.signal_delay_seconds!==void 0&&(t.signal_delay_seconds=e.value.signal_delay_seconds),e.value.conditional_entry_ma_levels!==void 0&&(t.conditional_entry_ma_levels=e.value.conditional_entry_ma_levels),e.value.conditional_entry_tolerance_pct!==void 0&&(t.conditional_entry_tolerance_pct=e.value.conditional_entry_tolerance_pct),e.value.conditional_entry_min_bars!==void 0&&(t.conditional_entry_min_bars=e.value.conditional_entry_min_bars),e.value.conditional_entry_max_bars!==void 0&&(t.conditional_entry_max_bars=e.value.conditional_entry_max_bars),t.conditional_entry_max_price_offset_pct=e.value.conditional_entry_max_price_offset_pct!==void 0?e.value.conditional_entry_max_price_offset_pct:0,t.ma_macd_check_enabled=e.value.ma_macd_check_enabled||!1,t.ma_rsi_check_enabled=e.value.ma_rsi_check_enabled||!1,t.ma_slope_check_enabled=e.value.ma_slope_check_enabled||!1,t.ma_market_adaptive=e.value.ma_market_adaptive!==void 0?e.value.ma_market_adaptive:!0,e.value.max_drawdown_percentage!==void 0&&(t.max_drawdown_percentage=e.value.max_drawdown_percentage),e.value.slippage_tolerance!==void 0&&(t.slippage_tolerance=e.value.slippage_tolerance),e.value.circuit_breaker_enabled!==void 0&&(t.circuit_breaker_enabled=e.value.circuit_breaker_enabled),e.value.circuit_breaker_loss!==void 0&&(t.circuit_breaker_loss=e.value.circuit_breaker_loss),e.value.ai_auto_optimize_enabled!==void 0&&(t.ai_auto_optimize_enabled=e.value.ai_auto_optimize_enabled),e.value.ai_optimize_after_losses!==void 0&&(t.ai_optimize_after_losses=e.value.ai_optimize_after_losses);let l;try{if(y.value){l=await ue.updateBot(p.params.id,t);try{await ue.startBot(p.params.id),_e($("autoBots.botSavedAndStarted"))}catch(c){console.error("\u542F\u52A8\u673A\u5668\u4EBA\u5931\u8D25:",c),_e("\u673A\u5668\u4EBA\u5DF2\u4FDD\u5B58\uFF0C\u4F46\u542F\u52A8\u5931\u8D25: "+(c.message||"\u672A\u77E5\u9519\u8BEF"))}}else l=await ue.createBot(t),_e($("autoBots.botCreated"));y.value||localStorage.removeItem("auto_bot_draft"),D.push("/auto-bots")}catch(c){throw c}}catch(t){console.error("\u63D0\u4EA4\u5931\u8D25:",t);const l=t.message||t.response?.data?.message||t.response?.data?.error||"\u64CD\u4F5C\u5931\u8D25";J(l)}finally{ge.value=!1}},tt=()=>{D.push("/auto-bots")};let he=null,qe=null;const at=async()=>{try{let t=he,l=qe;if(!l)try{const c=await fe(`${ut()}/auth/risk-profile/`,{method:"GET"});c.status==="success"&&c.data&&(l=c.data,qe=l,c.data.assessment_data?.trading_params&&(t=c.data.assessment_data.trading_params,he=t))}catch(c){console.warn("\u26A0\uFE0F \u4ECE\u6570\u636E\u5E93\u83B7\u53D6\u4EA4\u6613\u8BBE\u7F6E\u5931\u8D25:",c)}if(l&&!y.value&&(l.notify_email!==void 0&&(e.value.notify_email=l.notify_email),l.notify_app!==void 0&&(e.value.notify_app=l.notify_app),l.notification_types&&Array.isArray(l.notification_types)&&l.notification_types.length>0&&(e.value.notification_types=l.notification_types)),t){if(t.minPositionSize?e.value.position_size_value=t.minPositionSize:t.position_size_value&&(e.value.position_size_value=t.position_size_value),t.position_sizing_method&&(t.position_sizing_method==="atr"||t.position_sizing_method==="atr_based"?e.value.position_sizing_method="atr":e.value.position_sizing_method=t.position_sizing_method),t.risk_percentage!==void 0&&(e.value.risk_percentage=t.risk_percentage,e.value.risk_per_trade=t.risk_percentage),t.kelly_win_rate!==void 0&&(e.value.kelly_win_rate=t.kelly_win_rate),t.kelly_profit_loss_ratio!==void 0&&(e.value.kelly_profit_loss_ratio=t.kelly_profit_loss_ratio),t.kelly_win_rate!==void 0&&t.kelly_profit_loss_ratio!==void 0){const m=t.kelly_win_rate/100,_=t.kelly_profit_loss_ratio,i=1-m,x=Math.max(.1,Math.min(1,(m*_-i)/_));e.value.kelly_fraction=x}t.atr_period!==void 0&&(e.value.atr_period=t.atr_period),t.atr_multiplier!==void 0&&(e.value.atr_multiplier=t.atr_multiplier),
20(t.position_sizing_method==="atr"||t.position_sizing_method==="atr_based")&&(e.value.position_sizing_method="atr"),y.value||(t.stop_loss_config?e.value.stop_loss_config={...e.value.stop_loss_config,...t.stop_loss_config}:t.stop_loss_type&&(e.value.stop_loss_config?e.value.stop_loss_config.type=t.stop_loss_type:e.value.stop_loss_config={type:t.stop_loss_type},t.stop_loss_value!==void 0&&(e.value.stop_loss_config?e.value.stop_loss_config.value=t.stop_loss_value:e.value.stop_loss_config={type:"fixed",value:t.stop_loss_value}),t.stop_loss_type==="trailing"&&(t.activation_loss!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.activation_loss=t.activation_loss),t.rebound_distance!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.rebound_distance=t.rebound_distance),t.max_loss!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.max_loss=t.max_loss)),t.stop_loss_type==="atr"&&(t.atr_period!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"atr"}),e.value.stop_loss_config.atr_period=t.atr_period),t.atr_multiplier!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"atr"}),e.value.stop_loss_config.atr_multiplier=t.atr_multiplier))),t.take_profit_c
20onfig?e.value.take_profit_config={...e.value.take_profit_config,...t.take_profit_config}:(t.take_profit_mode&&(e.value.take_profit_config?e.value.take_profit_config.mode=t.take_profit_mode:e.value.take_profit_config={mode:t.take_profit_mode},t.take_profit_mode==="multi"&&(!e.value.take_profit_config.multi_targets||e.value.take_profit_config.multi_targets.length===0)&&(e.value.take_profit_config.multi_targets=t.multi_targets||[{percentage:5,position_percentage:33},{percentage:10,position_percentage:33},{percentage:15,position_percentage:34}])),t.take_profit_single_value!==void 0&&(e.value.take_profit_config?e.value.take_profit_config.single_value=t.take_profit_single_value:e.value.take_profit_config={mode:"single",single_value:t.take_profit_single_value}),t.multi_targets&&Array.isArray(t.multi_targets)&&t.multi_targets.length>0&&(e.value.take_profit_config?e.value.take_profit_config.multi_targets=t.multi_targets:e.value.take_profit_config={mode:"multi",multi_targets:t.multi_targets})),t.advanced_stop_config&&(e.value.advanced_stop_config={...e.value.advanced_stop_config,...t.advanced_stop_config})),t.leverage&&(e.value.leverage=t.leverage),t.margin_mode&&(e.value.margin_mode=t.margin_mode),t.max_daily_trades&&(e.value.max_daily_trades=t.max_daily_trades);const c=t.max_daily_loss||t.maxDailyLoss;c&&(e.value.max_daily_loss=c),t.trading_direction&&(e.value.trading_direction=t.trading_direction),t.signal_mode&&(e.value.signal_mode=t.signal_mode),t.ai_risk_level&&(e.value.ai_risk_level=t.ai_risk_level),t.ai_timeframe&&(e.value.ai_timeframe=t.ai_timeframe),t.entry_order_type&&(e.value.entry_order_type=t.entry_order_type),t.exit_order_type&&(e.value.exit_order_type=t.exit_order_type),t.signal_execution_mode&&(e.value.signal_execution_mode=t.signal_execution_mode),t.pullback_mode&&(e.value.pullback_mode=t.pullback_mode),t.pullback_atr_multiplier!==void 0&&(e.value.pullback_atr_multiplier=parseFloat(t.pullback_atr_multiplier)),t.pullback_trend_adaptive!==void 0&&(e.value.pullback_trend_adaptive=t.pullback_trend_adaptive),t.pullback_pct!==void 0&&(e.value.pullback_pct=t.pullback_pct),t.pullback_max_wait_minutes!==void 0&&(e.value.pullback_max_wait_minutes=t.pullback_max_wait_minutes),t.pullback_tolerance_pct!==void 0&&(e.value.pullback_tolerance_pct=t.pullback_tolerance_pct),t.chase_entry_enabled!==void 0&&(e.value.chase_entry_enabled=t.chase_entry_enabled),t.chase_entry_pct!==void 0&&(e.value.chase_entry_pct=parseFloat(t.chase_entry_pct)),t.pullback_timeout_action&&(e.value.pullback_timeout_action=t.pullback_timeout_action),t.entry_price_offset!==void 0&&(e.value.entry_price_offset=t.entry_price_offset),t.exit_price_offset!==void 0&&(e.value.exit_price_offset=t.exit_price_offset);const I=t.slippage_limit!==void 0?t.slippage_limit:t.slippageTolerance!==void 0?t.slippageTolerance:void 0;if(I!==void 0&&(e.value.slippage_limit=I),t.slippage_tolerance!==void 0&&(e.value.slippage_tolerance=t.slippage_tolerance),t.max_drawdown_percentage!==void 0&&(e.value.max_drawdown_percentage=t.max_drawdown_percentage),t.circuit_breaker_enabled!==void 0&&(e.value.circuit_breaker_enabled=t.circuit_breaker_enabled),t.circuit_breaker_loss!==void 0&&(e.value.circuit_breaker_loss=t.circuit_breaker_loss),t.signal_delay_seconds!==void 0&&(e.value.signal_delay_seconds=t.signal_delay_seconds),t.signal_cooldown!==void 0&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h"}),e.value.timeframes_config.trigger||(e.value.timeframes_config.trigger={}),e.value.timeframes_config.trigger.cooldown=t.signal_cooldown),t.kline_confirm_count!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.signal_confirmation_bars=t.kline_confirm_count),t.signal_expiry_seconds!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.signal_expiration_hours=Math.round(t.signal_expiry_seconds/3600)),t.confirmation_condition&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.confirmation_condition=t.confirmation_condition,console.log("\u2705 \u5E94\u7528K\u7EBF\u786E\u8BA4\u6761\u4EF6:",t.confirmation_condition)),t.atr_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.atr_filter_enabled=t.atr_filter_enabled,t.atr_period!==void 0&&(e.value.signal_quality_config.atr_period=t.atr_period),t.atr_max_multiplier!==void 0&&(e.value.signal_quality_config.atr_max_multiplier=t.atr_max_multiplier),t.atr_min_multiplier!==void 0&&(e.value.signal_quality_config.atr_min_multiplier=t.atr_min_multiplier)),t.price_position_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.price_position_filter_enabled=t.price_position_filter_enabled,t.price_position_ma_period!==void 0&&(e.value.signal_quality_config.price_position_ma_period=t.price_position_ma_period),t.price_position_tolerance_pct!==void 0&&(e.value.signal_quality_config.price_position_tolerance_pct=t.price_position_tolerance_pct)),t.risk_mode!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.risk_mode=t.risk_mode),console.log("\u{1F4CA} \u7528\u6237\u4EA4\u6613\u8BBE\u7F6E - \u8FC7\u6EE4\u5668\u914D\u7F6E:",{dmi_filter_enabled:t.dmi_filter_enabled,momentum_exhaustion_filter_enabled:t.momentum_exhaustion_filter_enabled,funding_rate_filter_enabled:t.funding_rate_filter_enabled,open_interest_filter_enabled:t.open_interest_filter_enabled,trend_bias_filter_enabled:t.trend_bias_filter_enabled,trend_bias_ma_period:t.trend_bias_ma_period,trend_bias_confirm_timeframes:t.trend_bias_confirm_timeframes}),t.dmi_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.dmi_filter_enabled=t.dmi_filter_enabled,t.dmi_adx_threshold!==void 0&&(e.value.signal_quality_config.dmi_adx_threshold=t.dmi_adx_threshold),console.log("\u2705 \u5E94\u7528 DMI \u8FC7\u6EE4:",{enabled:t.dmi_filter_enabled,threshold:t.dmi_adx_threshold})),t.momentum_exhaustion_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.momentum_exhaustion_filter_enabled=t.momentum_exhaustion_filter_enabled,t.momentum_exhaustion_timeframe!==void 0&&(e.value.signal_quality_config.momentum_exhaustion_timeframe=t.momentum_exhaustion_timeframe),t.momentum_exhaustion_lookback_bars!==void 0&&(e.value.signal_quality_config.momentum_exhaustion_lookback_bars=t.momentum_exhaustion_lookback_bars),t.momentum_exhaustion_spike_threshold!==void 0&&(e.value.signal_quality_config.momentum_exhaustion_spike_threshold=t.momentum_exhaustion_spike_threshold),t.momentum_exhaustion_cumulative_threshold!==void 0&&(e.value.signal_quality_config.momentum_exhaustion_cumulative_threshold=t.momentum_exhaustion_cumulative_threshold),t.momentum_exhaustion_bounce_threshold!==void 0&&(e.value.signal_quality_config.momentum_exhaustion_bounce_threshold=t.momentum_exhaustion_bounce_threshold),console.log("\u2705 \u5E94\u7528\u52A8\u91CF\u8017\u5C3D\u8FC7\u6EE4:",{enabled:t.momentum_exhaustion_filter_enabled,timeframe:t.momentum_exhaustion_timeframe,lookback:t.momentum_exhaustion_lookback_bars})),t.funding_rate_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.funding_rate_filter_enabled=t.funding_rate_filter_enabled,t.funding_rate_positive_extreme!==void 0&&(e.value.signal_quality_config.funding_rate_positive_extreme=t.funding_rate_positive_extreme),t.funding_rate_negative_extreme!==void 0&&(e.value.signal_quality_config.funding_rate_negative_extreme=t.funding_rate_negative_extreme),console.log("\u2705 \u5E94\u7528\u8D44\u91D1\u8D39\u7387\u8FC7\u6EE4:",{enabled:t.funding_rate_filter_enabled})),t.trend_bias_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.trend_bias_filter_enabled=t.trend_bias_filter_enabled,t.trend_bias_ma_period!==void 0&&(e.value.signal_quality_config.trend_bias_ma_period=t.trend_bias_ma_period),Array.isArray(t.trend_bias_confirm_timeframes)&&t.trend_bias_confirm_timeframes.length>0?e.value.signal_quality_config.trend_bias_confirm_timeframes=[...t.trend_bias_confirm_timeframes]:t.trend_bias_confirm_timeframe&&(e.value.signal_quality_config.trend_bias_confirm_timeframes=[t.trend_bias_confirm_timeframe]),console.log("\u2705 \u5E94\u7528\u8D8B\u52BF\u65B9\u54
2011\u8FC7\u6EE4:",{enabled:t.trend_bias_filter_enabled,ma_period:t.trend_bias_ma_period,confirm_tfs:t.trend_bias_confirm_timeframes})),t.open_interest_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.open_interest_filter_enabled=t.open_interest_filter_enabled,t.open_interest_decrease_threshold!==void 0&&(e.value.signal_quality_config.open_interest_decrease_threshold=t.open_interest_decrease_threshold),console.log("\u2705 \u5E94\u7528\u6301\u4ED3\u91CF\u8FC7\u6EE4:",{enabled:t.open_interest_filter_enabled})),t.price_extreme_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.price_extreme_filter_enabled=t.price_extreme_filter_enabled,t.price_extreme_max_distance_pct!==void 0&&(e.value.signal_quality_config.price_extreme_max_distance_pct=t.price_extreme_max_distance_pct),t.price_extreme_ma_period!==void 0&&(e.value.signal_quality_config.price_extreme_ma_period=t.price_extreme_ma_period),t.price_extreme_use_dynamic_threshold!==void 0&&(e.value.signal_quality_config.price_extreme_use_dynamic_threshold=t.price_extreme_use_dynamic_threshold),console.log("\u2705 \u5E94\u7528\u4EF7\u683C\u6781\u7AEF\u4F4D\u7F6E\u8FC7\u6EE4:",{enabled:t.price_extreme_filter_enabled,use_dynamic:t.price_extreme_use_dynamic_threshold})),t.rsi_oversold_threshold!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.rsi_oversold_threshold=t.rsi_oversold_threshold),t.rsi_overbought_threshold!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.rsi_overbought_threshold=t.rsi_overbought_threshold),console.log("\u{1F4CA} \u6700\u7EC8 signal_quality_config:",JSON.stringify(e.value.signal_quality_config,null,2)),t.conditional_entry_ma_levels!==void 0&&Array.isArray(t.conditional_entry_ma_levels)&&(e.value.conditional_entry_ma_levels=t.conditional_entry_ma_levels),t.conditional_entry_tolerance_pct!==void 0&&(e.value.conditional_entry_tolerance_pct=t.conditional_entry_tolerance_pct),t.conditional_entry_min_bars!==void 0&&(e.value.conditional_entry_min_bars=t.conditional_entry_min_bars),t.conditional_entry_max_bars!==void 0&&(e.value.conditional_entry_max_bars=t.conditional_entry_max_bars),t.ma_macd_check_enabled!==void 0&&(e.value.ma_macd_check_enabled=t.ma_macd_check_enabled),t.ma_rsi_check_enabled!==void 0&&(e.value.ma_rsi_check_enabled=t.ma_rsi_check_enabled),t.ma_slope_check_enabled!==void 0&&(e.value.ma_slope_check_enabled=t.ma_slope_check_enabled),t.ma_market_adaptive!==void 0&&(e.value.ma_market_adaptive=t.ma_market_adaptive),console.log("\u{1F4CA} \u7528\u6237\u4EA4\u6613\u8BBE\u7F6E - \u65F6\u95F4\u5468\u671F:",{primary_timeframe:t.primary_timeframe,confirm_timeframes:t.confirm_timeframes,require_all_confirm:t.require_all_confirm,current_timeframes_config:e.value.timeframes_config}),t.primary_timeframe&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h",confirm:[],require_all_confirm:!1,min_confirm_count:1}),e.value.timeframes_config.primary=t.primary_timeframe,console.log("\u2705 \u5DF2\u5E94\u7528\u4E3B\u65F6\u95F4\u5468\u671F:",t.primary_timeframe)),t.confirm_timeframes&&t.confirm_timeframes.length>0&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h",confirm:[],require_all_confirm:!1,min_confirm_count:1}),e.value.timeframes_config.confirm=t.confirm_timeframes,e.value.timeframes_config.require_all_confirm=t.require_all_confirm||!1,console.log("\u2705 \u5DF2\u5E94\u7528\u786E\u8BA4\u65F6\u95F4\u5468\u671F:",t.confirm_timeframes)),t.structure_timeframe&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h",structure:null,confirm:[],require_all_confirm:!1,min_confirm_count:1}),e.value.timeframes_config.structure=t.structure_timeframe,console.log("\u2705 \u5DF2\u5E94\u7528\u7ED3\u6784\u5468\u671F:",t.structure_timeframe)),t.spread_danger_pct!==void 0&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h",structure:null,spread_danger_pct:.3,confirm:[],require_all_confirm:!1,min_confirm_count:1}),e.value.timeframes_config.spread_danger_pct=t.spread_danger_pct,console.log("\u2705 \u5DF2\u5E94\u7528P1\u6269\u6563\u5EA6\u5371\u9669\u9608\u503C:",t.spread_danger_pct)),["protection_momentum_danger","filter_neutral_bias","protection_btc_market_score","protection_macd_direction"].forEach(m=>{t[m]!==void 0&&(e.value.timeframes_config||(e.value.timeframes_config={primary:"1h",structure:null}),e.value.timeframes_config[m]=t[m])}),t.add_position_config&&(e.value.add_position_config={...e.value.add_position_config,...t.add_position_config}),t.reduce_position_config&&(e.value.reduce_position_config={...e.value.reduce_position_config,...t.reduce_position_config}),t.reverse_position_config&&(e.value.reverse_position_config={...e.value.reverse_position_config,...t.reverse_position_config}),t.signal_indicators&&Array.isArray(t.signal_indicators)&&t.signal_indicators.length>0){e.value.indicators_config||(e.value.indicators_config={}),e.value.indicators_config.trend_config||(e.value.indicators_config.trend_config={});const m={crossover:"crossover_only",crossover_position:"crossover_with_position"},_=t.signal_indicators.map(i=>{const x=i.params||{},E=m[x.trigger_mode]||x.trigger_mode,Q=["crossover_only","position_only","crossover_with_position"].includes(E)?E:"crossover_only";return{type:i.type,params:{fast:x.fast_period||x.fast||7,slow:x.slow_period||x.slow||25,crossover_type:x.cross_type||x.crossover_type||"both",trigger_mode:Q}}});e.value.indicators_config.trend_config.indicators=_,t.signal_logic&&(e.value.indicators_config.trend_config.logic=t.signal_logic),console.log("\u2705 \u5E94\u7528\u4FE1\u53F7\u89E6\u53D1\u6307\u6807:",_.length,"\u4E2A, \u903B\u8F91:",t.signal_logic||"OR")}t.rsi_extreme_block_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.rsi_extreme_block_enabled=t.rsi_extreme_block_enabled),t.volume_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.volume_filter_enabled=t.volume_filter_enabled,t.volume_overbought_threshold!==void 0&&(e.value.signal_quality_config.volume_overbought_threshold=t.volume_overbought_threshold),t.volume_oversold_threshold!==void 0&&(e.value.signal_quality_config.volume_oversold_threshold=t.volume_oversold_threshold)),t.cci_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.cci_filter_enabled=t.cci_filter_enabled,t.cci_overbought_threshold!==void 0&&(e.value.signal_quality_config.cci_overbought_threshold=t.cci_overbought_threshold),t.cci_oversold_threshold!==void 0&&(e.value.signal_quality_config.cci_oversold_threshold=t.cci_oversold_threshold)),t.bollinger_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.bollinger_filter_enabled=t.bollinger_filter_enabled,t.bollinger_period!==void 0&&(e.value.signal_quality_config.bollinger_period=t.bollinger_period),t.bollinger_std_dev!==void 0&&(e.value.signal_quality_config.bollinger_std_dev=t.bollinger_std_dev)),t.mfi_filter_enabled!==void 0&&(e.value.signal_quality_config||(e.value.signal_quality_config={}),e.value.signal_quality_config.mfi_filter_enabled=t.mfi_filter_enabled,t.mfi_overbought_threshold!==void 0&&(e.value.signal_quality_config.mfi_overbought_threshold=t.mfi_overbought_threshold),t.mfi_oversold_threshold!==void 0&&(e.value.signal_quality_config.mfi_oversold_threshold=t.mfi_oversold_threshold))}}catch(t){console.warn("\u52A0\u8F7D\u4EA4\u6613\u53C2\u6570\u914D\u7F6E\u5931\u8D25:",t)}},it=t=>{const l={RSI:"rsi",MACD:"macd",BollingerBands:"bollinger_bands",Bollinger_Bands:"bollinger_bands",EMA:"ema_crossover",MA:"ma_crossover",SMA:"ma_crossover",EMA_Crossover:"ema_crossover",MA_Crossover:"ma_crossover",ADX:"trend_strength",Volume:"volume_surge",PriceChannel:"price_channel",PriceBreakout:"price_breakout"};return l[t]?l[t]:t?.replace(/([A-Z])/g,"_$1").replace(/^_/,"").toLowerCase()||t},nt=t=>t?t.trend_config||t.reversal_config?t:{indicators:(t.indicators||[]).map(c=>({type:it(c.type),enabled:c.enabled!==!1,weight:c.weight||50,role:c.role||"trend",params:{...c.params,fast:c.params?.fast||c.params?.fast_period,slow:c.params?.slow||c.params?.slow_period,period:c.params?.period,overbought:c.params?.overbought,oversold:c.params?.oversold,std_dev:c.params?.deviation||
20c.params?.std_dev,crossover_type:c.params?.crossover_type||"both",trigger_mode:c.params?.trigger_mode||"cross"}})),logic:t.logic||"AND",trigger_threshold:t.trigger_threshold||70}:{indicators:[],logic:"AND",trigger_threshold:70};return pt(async()=>{try{await He(),await re(),await Qe();const t=p.query.token_id&&p.query.indicators_config;if(t){if(p.query.name&&(e.value.name=p.query.name),p.query.market_type&&(e.value.market_type=p.query.market_type),p.query.trading_direction&&(e.value.trading_direction=p.query.trading_direction),p.query.auto_generate_description==="true"&&(e.value.auto_generate_description=!0),p.query.token_id&&p.query.token_symbol&&(T.value={id:parseInt(p.query.token_id),symbol:p.query.token_symbol,name:p.query.token_symbol},f.value=p.query.token_symbol,e.value.token=parseInt(p.query.token_id)),p.query.timeframe&&(e.value.timeframes_config={primary:p.query.timeframe,confirmation:[]}),p.query.indicators_config)try{e.value.indicators_config=JSON.parse(p.query.indicators_config)}catch(m){console.error("\u89E3\u6790\u6307\u6807\u914D\u7F6E\u5931\u8D25:",m)}_e($("autoBots.scannerConfigLoaded"))}const l=p.query.from==="ai";if(l&&!t)try{const m=sessionStorage.getItem("ai_generated_strategy");if(m){const _=JSON.parse(m);if(console.log("\u4ECE AI \u9875\u9762\u52A0\u8F7D\u7B56\u7565:",_),sessionStorage.removeItem("ai_generated_strategy"),_.name&&(e.value.name=_.name),_.description&&(e.value.description=_.description),_.trading_direction&&(e.value.trading_direction=_.trading_direction),_.token_id&&(T.value={id:_.token_id,symbol:_.token_symbol||"",name:_.token_name||_.token_symbol||"",logo:_.token_logo||null},f.value=_.token_symbol||"",e.value.token=_.token_id),_.exchange_name&&(e.value.exchange_name=_.exchange_name,h.value=_.exchange_name,await re()),_.exchange_api&&(e.value.exchange_api=_.exchange_api),_.market_type&&(e.value.market_type=_.market_type),_.leverage&&(e.value.leverage=_.leverage),_.indicators_config){const i=nt(_.indicators_config);e.value.indicators_config=i,console.log("\u8F6C\u6362\u540E\u7684\u6307\u6807\u914D\u7F6E:",i)}_.timeframes_config&&(e.value.timeframes_config=_.timeframes_config,e.value.check_interval=_.timeframes_config.primary||"1h"),_.signal_quality_config&&(e.value.signal_quality_config={...e.value.signal_quality_config,signal_strength_threshold:_.signal_quality_config.signal_strength_threshold||60,signal_confirmation_bars:_.signal_quality_config.confirmation_bars||1,signal_expiration_hours:_.signal_quality_config.expiration_hours||24}),_.stop_loss_config&&(e.value.stop_loss_config={...e.value.stop_loss_config,enabled:_.stop_loss_config.enabled!==!1,type:_.stop_loss_config.type||"fixed",value:_.stop_loss_config.value||5}
20),_.take_profit_config&&(e.value.take_profit_config={...e.value.take_profit_config,enabled:_.take_profit_config.enabled!==!1,mode:_.take_profit_config.mode||"single",single_value:_.take_profit_config.single_value||10,multi_targets:_.take_profit_config.targets||[]}),_.advanced_stop_config&&(e.value.advanced_stop_config={...e.value.advanced_stop_config,trailing_stop_enabled:_.advanced_stop_config.trailing_stop_enabled||!1,trailing_stop_trigger:_.advanced_stop_config.trailing_stop_trigger||2,trailing_stop_distance:_.advanced_stop_config.trailing_stop_distance||1,breakeven_enabled:_.advanced_stop_config.breakeven_enabled||!1,breakeven_trigger:_.advanced_stop_config.breakeven_trigger||1.5}),_.position_config&&(e.value.position_sizing_method=_.position_config.sizing_method||"fixed_amount",e.value.position_size_value=_.position_config.size_value||100,e.value.position_size_unit=_.position_config.size_unit||"usdt"),_.order_config&&(e.value.entry_order_type=_.order_config.entry_order_type||"market",e.value.exit_order_type=_.order_config.exit_order_type||"market"),_.add_position_config&&(e.value.add_position_config=_.add_position_config),_.reduce_position_config&&(e.value.reduce_position_config=_.reduce_position_config),_.reverse_position_config&&(e.value.reverse_position_config=_.reverse_position_config),_e("\u5DF2\u4ECE AI \u52A0\u8F7D\u7B56\u7565\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5E76\u5B8C\u5584\u8BBE\u7F6E")}}catch(m){console.error("\u4ECE AI \u52A0\u8F7D\u7B56\u7565\u5931\u8D25:",m),J("\u52A0\u8F7D AI \u7B56\u7565\u5931\u8D25")}const c=p.query.copy_from;let I=!1;if(c&&!t&&!l){I=!0;const m=p.query.copy_mode||"full";try{const _=await ue.getBotDetail(c),i=_.data||_;if(p.query.name&&(e.value.name=p.query.name),i.exchange_name&&(e.value.exchange_name=i.exchange_name,h.value=i.exchange_name,await re(),!C.value.some(Q=>Q.exchange===i.exchange_name)&&C.value.length>0)){const Q=[...new Set(C.value.map(L=>L.exchange))];console.warn(`\u26A0\uFE0F \u7B56\u7565\u4F7F\u7528\u7684\u4EA4\u6613\u6240 ${i.exchange_name} \u4E0E\u60A8\u7684\u8D26\u53F7\u4E0D\u5339\u914D`),ze(`\u7B56\u7565\u4F7F\u7528\u7684\u662F ${i.exchange_name} \u4EA4\u6613\u6240\uFF0C\u4F46\u60A8\u6CA1\u6709\u8BE5\u4EA4\u6613\u6240\u7684\u8D26\u53F7\u3002\u8BF7\u5148\u6DFB\u52A0 ${i.exchange_name} \u8D26\u53F7\uFF0C\u6216\u9009\u62E9\u5176\u4ED6\u4EA4\u6613\u6240\u3002`)}i.market_type&&(e.value.market_type=i.market_type),i.trading_pair&&(e.value.trading_pair=i.trading_pair),i.token&&i.token_symbol&&(T.value={id:i.token,symbol:i.token_symbol,name:i.token_name||i.token_symbol,logo:i.token_logo||null},f.value=`${i.token_symbol} - ${i.token_name||i.token_symbol}`,e.value.token=i.token),i.indicators_config&&(e.value.indicators_config=JSON.parse(JSON.stringify(i.indicators_config))),i.timeframes_config&&(e.value.timeframes_config=JSON.parse(JSON.stringify(i.timeframes_config))),i.check_interval&&(e.value.check_interval=i.check_interval),i.signal_quality_config&&(e.value.signal_quality_config=JSON.parse(JSON.stringify(i.signal_quality_config))),i.signal_execution_mode&&(e.value.signal_execution_mode=i.signal_execution_mode),i.signal_delay_seconds!==void 0&&(e.value.signal_delay_seconds=i.signal_delay_seconds),localStorage.setItem("bot_copy_mode",m),m==="full"&&(i.trading_direction&&(e.value.trading_direction=i.trading_direction),i.auto_generate_description!==void 0&&(e.value.auto_generate_description=i.auto_generate_description),i.position_sizing_method&&(e.value.position_sizing_method=i.position_sizing_method),i.position_size_value&&(e.value.position_size_value=i.position_size_value),i.position_size_unit&&(e.value.position_size_unit=i.position_size_unit),i.position_sizing_params&&(e.value.position_sizing_params=i.position_sizing_params),i.leverage&&(e.value.leverage=i.leverage),i.margin_mode&&(e.value.margin_mode=i.margin_mode),i.entry_order_type&&(e.value.entry_order_type=i.entry_order_type),i.exit_order_type&&(e.value.exit_order_type=i.exit_order_type),i.limit_order_params&&(e.value.limit_order_params=i.limit_order_params),i.stop_loss_config&&(e.value.stop_loss_config=i.stop_loss_config),i.take_profit_c
20onfig&&(e.value.take_profit_config=i.take_profit_config),i.advanced_stop_config&&(e.value.advanced_stop_config=i.advanced_stop_config),i.max_open_positions!==void 0&&(e.value.max_open_positions=i.max_open_positions),i.max_daily_trades!==void 0&&(e.value.max_daily_trades=i.max_daily_trades),i.max_daily_loss&&(e.value.max_daily_loss=i.max_daily_loss),i.max_drawdown_percentage&&(e.value.max_drawdown_percentage=i.max_drawdown_percentage),i.circuit_breaker_enabled!==void 0&&(e.value.circuit_breaker_enabled=i.circuit_breaker_enabled),i.circuit_breaker_loss&&(e.value.circuit_breaker_loss=i.circuit_breaker_loss),i.cooldown_period!==void 0&&(e.value.cooldown_period=i.cooldown_period),i.allow_add_position!==void 0&&(e.value.allow_add_position=i.allow_add_position),i.allow_reverse_position!==void 0&&(e.value.allow_reverse_position=i.allow_reverse_position),i.add_position_config&&(e.value.add_position_config=i.add_position_config),i.reduce_position_config&&(e.value.reduce_position_config=i.reduce_position_config),i.reverse_position_config&&(e.value.reverse_position_config=i.reverse_position_config),i.close_position_config&&(e.value.close_position_config=i.close_position_config),i.notify_email!==void 0&&(e.value.notify_email=i.notify_email),i.notify_app!==void 0&&(e.value.notify_app=i.notify_app),i.notification_types&&(e.value.notification_types=i.notification_types)),await be(),_e(`\u5DF2\u52A0\u8F7D\u7B56\u7565\u914D\u7F6E\uFF08${m==="full"?"\u5B8C\u6574\u590D\u5236":"\u4EC5\u590D\u5236\u7B56\u7565"}\uFF09\uFF0C\u8BF7\u9009\u62E9\u60A8\u7684\u4EA4\u6613\u6240API`)}catch(_){console.error("\u52A0\u8F7D\u7B56\u7565\u914D\u7F6E\u5931\u8D25:",_),ze("\u52A0\u8F7D\u7B56\u7565\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u624B\u52A8\u914D\u7F6E")}}let a=null;if(y.value)try{const m=await ue.getBotDetail(p.params.id);if(a=m.data||m,a&&a.exchange_name){const _=e.value.exchange_name;e.value.exchange_name=a.exchange_name,h.value=a.exchange_name,a.token&&(e.value.token=a.token),a.exchange_api&&(e.value.exchange_api=a.exchange_api)}}catch(m){console.error("\u52A0\u8F7D\u673A\u5668\u4EBA\u6570\u636E\u5931\u8D25:",m),J("\u52A0\u8F7D\u673A\u5668\u4EBA\u6570\u636E\u5931\u8D25: "+(m.message||"\u672A\u77E5\u9519\u8BEF")),D.push("/auto-bots");return}if(await re(),y.value&&a&&!e.value.exchange_api&&C.value.length>0){const m=C.value.find(_=>_.is_default);m&&(e.value.exchange_api=m.id,e.value.exchange_name=m.exchange,h.value=m.exchange)}if(y.value&&a)try{e.value.name=a.name||"",e.value.description=a.description||"",e.value.auto_generate_description=a.auto_generate_description||!1,e.value.token=a.token||null,e.value.exchange_api=a.exchange_api||null,e.value.exchange_name=a.exchange_name||"",e.value.market_type=a.market_type||"spot",e.value.trading_pair=a.trading_pair||"USDT",e.value.strategy=a.strategy||null,a.exchange_name&&(h.value=a.exchange_name),a.token&&a.token_symbol&&(T.value={id:a.token,symbol:a.token_symbol,name:a.token_name||a.token_symbol,logo:a.token_logo||null},f.value=`${a.token_symbol} - ${a.token_name||a.token_symbol}`),a.indicators_config&&(e.value.indicators_config=a.indicators_config),a.timeframes_config&&(e.value.timeframes_config=a.timeframes_config),a.check_interval&&(e.value.check_interval=a.check_interval),a.signal_quality_config&&(e.value.signal_quality_config=a.signal_quality_config),a.position_sizing_method&&(e.value.position_sizing_method=a.position_sizing_method),a.position_size_value!==void 0&&(e.value.position_size_value=a.position_size_value),a.position_size_unit&&(e.value.position_size_unit=a.position_size_unit),a.position_sizing_params&&(e.value.position_sizing_params=a.position_sizing_params,a.position_sizing_params.risk_percentage!==void 0&&(e.value.risk_percentage=a.position_sizing_params.risk_percentage),a.position_sizing_params.kelly_win_rate!==void 0&&(e.value.kelly_win_rate=a.position_sizing_params.kelly_win_rate),a.position_sizing_params.kelly_profit_loss_ratio!==void 0&&(e.value.kelly_profit_loss_ratio=a.position_sizing_params.kelly_profit_loss_ratio),a.position_sizing_params.atr_period!==void 0&&(e.value.atr_period=a.position_sizing_params.atr_period),a.position_sizing_params.atr_multiplier!==void 0&&(e.value.atr_multiplier=a.position_sizing_params.atr_multiplier)),a.trading_direction&&(e.value.trading_direction=a.trading_direction),a.signal_mode&&(e.value.signal_mode=a.signal_mode),a.ai_risk_level&&(e.value.ai_risk_level=a.ai_risk_level),a.ai_timeframe&&(e.value.ai_timeframe=a.ai_timeframe),a.leverage!==void 0&&(e.value.leverage=a.leverage),a.margin_mode!==void 0&&(e.value.margin_mode=a.margin_mode),a.stop_loss_config&&(e.value.stop_loss_config=a.stop_loss_config,e.value.stop_loss_config.type&&e.value.stop_loss_config.enabled===void 0&&(e.value.stop_loss_config.enabled=!0)),a.take_profit_c
20onfig&&(e.value.take_profit_config=a.take_profit_config,e.value.take_profit_config.mode&&e.value.take_profit_config.enabled===void 0&&(e.value.take_profit_config.enabled=!0)),a.advanced_stop_config&&(e.value.advanced_stop_config=a.advanced_stop_config),a.entry_order_type&&(e.value.entry_order_type=a.entry_order_type),a.exit_order_type&&(e.value.exit_order_type=a.exit_order_type),a.limit_order_params&&(e.value.limit_order_params=a.limit_order_params,a.limit_order_params.entry_price_offset!==void 0&&(e.value.entry_price_offset=a.limit_order_params.entry_price_offset),a.limit_order_params.exit_price_offset!==void 0&&(e.value.exit_price_offset=a.limit_order_params.exit_price_offset),a.limit_order_params.slippage_limit!==void 0&&(e.value.slippage_limit=a.limit_order_params.slippage_limit,e.value.slippage_tolerance=a.limit_order_params.slippage_limit)),a.signal_execution_mode&&(e.value.signal_execution_mode=a.signal_execution_mode),a.signal_delay_seconds!==void 0&&(e.value.signal_delay_seconds=a.signal_delay_seconds),a.conditional_entry_ma_levels!==void 0&&(e.value.conditional_entry_ma_levels=a.conditional_entry_ma_levels||[25,50,99]),a.conditional_entry_tolerance_pct!==void 0&&(e.value.conditional_entry_tolerance_pct=parseFloat(a.conditional_entry_tolerance_pct)),a.conditional_entry_min_bars!==void 0&&(e.value.conditional_entry_min_bars=a.conditional_entry_min_bars),a.conditional_entry_max_bars!==void 0&&(e.value.conditional_entry_max_bars=a.conditional_entry_max_bars),a.conditional_entry_max_price_offset_pct!==void 0&&(e.value.conditional_entry_max_price_offset_pct=parseFloat(a.conditional_entry_max_price_offset_pct)),a.pullback_mode&&(e.value.pullback_mode=a.pullback_mode),a.pullback_atr_multiplier!==void 0&&(e.value.pullback_atr_multiplier=parseFloat(a.pullback_atr_multiplier)),a.pullback_trend_adaptive!==void 0&&(e.value.pullback_trend_adaptive=a.pullback_trend_adaptive),a.pullback_pct!==void 0&&(e.value.pullback_pct=parseFloat(a.pullback_pct)),a.pullback_max_wait_minutes!==void 0&&(e.value.pullback_max_wait_minutes=a.pullback_max_wait_minutes),a.pullback_tolerance_pct!==void 0&&(e.value.pullback_tolerance_pct=parseFloat(a.pullback_tolerance_pct)),a.chase_entry_enabled!==void 0&&(e.value.chase_entry_enabled=a.chase_entry_enabled),a.chase_entry_pct!==void 0&&(e.value.chase_entry_pct=parseFloat(a.chase_entry_pct)),a.pullback_timeout_action&&(e.value.pullback_timeout_action=a.pullback_timeout_action),a.ma_macd_check_enabled!==void 0&&(e.value.ma_macd_check_enabled=a.ma_macd_check_enabled),a.ma_rsi_check_enabled!==void 0&&(e.value.ma_rsi_check_enabled=a.ma_rsi_check_enabled),a.ma_slope_check_enabled!==void 0&&(e.value.ma_slope_check_enabled=a.ma_slope_check_enabled),a.ma_market_adaptive!==void 0&&(e.value.ma_market_adaptive=a.ma_market_adaptive),a.max_open_positions!==void 0&&(e.value.max_open_positions=a.max_open_positions),a.max_daily_trades!==void 0&&(e.value.max_daily_trades=a.max_daily_trades),a.max_daily_loss!==void 0&&(e.value.max_daily_loss=a.max_daily_loss),a.cooldown_period!==void 0&&(e.value.cooldown_period=a.cooldown_period),a.max_drawdown_percentage!==void 0&&(e.value.max_drawdown_percentage=a.max_drawdown_percentage),a.slippage_tolerance!==void 0&&(e.value.slippage_tolerance=a.slippage_tolerance),a.circuit_breaker_enabled!==void 0&&(e.value.circuit_breaker_enabled=a.circuit_breaker_enabled),a.circuit_breaker_loss!==void 0&&(e.value.circuit_breaker_loss=a.circuit_breaker_loss),a.ai_auto_optimize_enabled!==void 0&&(e.value.ai_auto_optimize_enabled=a.ai_auto_optimize_enabled),a.ai_optimize_after_losses!==void 0&&(e.value.ai_optimize_after_losses=a.ai_optimize_after_losses),a.ai_consecutive_losses!==void 0&&(e.value.ai_consecutive_losses=a.ai_consecutive_losses),a.ai_total_optimizations!==void 0&&(e.value.ai_total_optimizations=a.ai_total_optimizations),a.last_ai_optimize_at!==void 0&&(e.value.last_ai_optimize_at=a.last_ai_optimize_at),a.add_position_config&&(e.value.add_position_config=a.add_position_config),a.reduce_position_config&&(e.value.reduce_position_config=a.reduce_position_config),a.reverse_position_config&&(e.value.reverse_position_config=a.reverse_position_config),a.notify_email!==void 0&&(e.value.notify_email=a.notify_email),a.notify_app!==void 0&&(e.value.notify_app=a.notify_app),a.notification_types&&Array.isArray(a.notification_types)&&(e.value.notification_types=a.notification_types),a.exchange_api&&(C.value.find(_=>_.id===a.exchange_api)||console.warn("\u26A0\uFE0F \u627E\u4E0D\u5230\u5BF9\u5E94\u7684\u4EA4\u6613\u6240API\uFF0CID:",a.exchange_api)),a.market_type&&a.token&&await se(),K.value==="ai"&&be(()=>G())}catch(m){console.error("\u586B\u5145\u673A\u5668\u4EBA\u6570\u636E\u5931\u8D25:",m),J("\u586B\u5145\u673A\u5668\u4EBA\u6570\u636E\u5931\u8D25: "+(m.message||"\u672A\u77E5\u9519\u8BEF"))}else{await Ue();const m=p.query.copy_mode;(!I||m==="strategy_only")&&(await be(),await at(),setTimeout(()=>{if(y.value||I&&m==="full")return;const i=he;if(i){const x=i.minPositionSize||i.position_size_value;x&&e.value.position_size_value!==x&&(e.value.position_size_value=x),i.stop_loss_config?e.value.stop_loss_config={...e.value.stop_loss_config,...i.stop_loss_config}:i.stop_loss_type&&(e.value.stop_loss_config?e.value.stop_loss_config.type=i.stop_loss_type:e.value.stop_loss_config={type:i.stop_loss_type},i.stop_loss_value!==void 0&&(e.value.stop_loss_config?e.value.stop_loss_config.value=i.stop_loss_value:e.value.stop_loss_config={type:"fixed",value:i.stop_loss_value}),i.stop_loss_type==="trailing"&&(i.activation_loss!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.activation_loss=i.activation_loss),i.rebound_distance!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.rebound_distance=i.rebound_distance),i.max_loss!==void 0&&(e.value.stop_loss_config||(e.value.stop_loss_config={type:"trailing"}),e.value.stop_loss_config.max_loss=i.max_loss))),i.take_profit_c
20onfig?e.value.take_profit_config={...e.value.take_profit_config,...i.take_profit_config}:(i.take_profit_mode&&e.value.take_profit_config?.mode!==i.take_profit_mode&&(e.value.take_profit_config?e.value.take_profit_config.mode=i.take_profit_mode:e.value.take_profit_config={mode:i.take_profit_mode},i.take_profit_mode==="multi"&&(!e.value.take_profit_config.multi_targets||e.value.take_profit_config.multi_targets.length===0)&&(e.value.take_profit_config.multi_targets=i.multi_targets||[{percentage:5,position_percentage:33},{percentage:10,position_percentage:33},{percentage:15,position_percentage:34}])),i.take_profit_single_value!==void 0&&(e.value.take_profit_config?e.value.take_profit_config.single_value!==i.take_profit_single_value&&(e.value.take_profit_config.single_value=i.take_profit_single_value):e.value.take_profit_config={mode:"single",single_value:i.take_profit_single_value}),i.multi_targets&&Array.isArray(i.multi_targets)&&i.multi_targets.length>0&&(e.value.take_profit_config?e.value.take_profit_config.multi_targets=i.multi_targets:e.value.take_profit_c
20onfig={mode:"multi",multi_targets:i.multi_targets})),i.leverage&&e.value.leverage!==i.leverage&&(e.value.leverage=i.leverage),i.max_daily_trades&&e.value.max_daily_trades!==i.max_daily_trades&&(e.value.max_daily_trades=i.max_daily_trades);const E=i.max_daily_loss||i.maxDailyLoss;E&&e.value.max_daily_loss!==E&&(e.value.max_daily_loss=E),i.trading_direction&&e.value.trading_direction!==i.trading_direction&&(e.value.trading_direction=i.trading_direction),i.entry_order_type&&e.value.entry_order_type!==i.entry_order_type&&(e.value.entry_order_type=i.entry_order_type),i.exit_order_type&&e.value.exit_order_type!==i.exit_order_type&&(e.value.exit_order_type=i.exit_order_type),i.signal_execution_mode&&e.value.signal_execution_mode!==i.signal_execution_mode&&(e.value.signal_execution_mode=i.signal_execution_mode)}},100))}e.value.exchange_name&&e.value.market_type&&await se()}catch(t){console.error("\u521D\u59CB\u5316\u5931\u8D25:",t),J($("autoBots.loadDataFailed"))}}),ae([e,T,f,h],()=>{y.value||Oe()},{deep:!0}),(t,l)=>(g(),v("div",nn,[j(ct),n("div",on,[n("nav",ln,[n("button",{onClick:l[0]||(l[0]=c=>S(D).push("/auto-bots")),class:"inline-flex items-center gap-1.5 rounded-lg px-2 py-1 font-medium text-slate-600 transition-colors hover:bg-white hover:text-slate-900"},[...l[5]||(l[5]=[n("svg",{class:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[n("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),B(" \u673A\u5668\u4EBA\u5217\u8868 ",-1)])]),l[6]||(l[6]=n("span",{class:"text-slate-300"},"/",-1)),n("span",sn,u(y.value?t.$t("autoBots.editBot"):t.$t("autoBots.createBot")),1)]),n("div",rn,[n("main",_n,[j(bi,{modelValue:e.value,"onUpdate:modelValue":l[1]||(l[1]=c=>e.value=c),errors:N.value,"available-exchanges":H.value,"selected-exchange-type":h.value,"filtered-exchange-a-p-is":Le.value,"selected-exchange-a-p-i":ie.value,"selected-exchange":Re.value,"token-search-query":f.value,"token-search-results":k.value,"token-searching":te.value,"show-token-results":X.value,"selected-token":T.value,"popular-tokens":Fe,"available-quote-assets":Ve.value,strategies:d.value,"onUpdate:errors":Je,onSelectExchangeType:Ke,onSelectMarketType:Ge,"onUpdate:tokenSearchQuery":l[2]||(l[2]=c=>f.value=c),onHandleTokenSearch:$e,onHandleTokenInputFocus:Xe,onHandleTokenInputBlur:Ye,onClearTokenSelection:ve,onSelectToken:Se,onQuickSelectToken:We,"onUpdate:autoGenerateDescription":l[3]||(l[3]=c=>e.value.auto_generate_description=c)},null,8,["modelValue","errors","available-exchanges","selected-exchange-type","filtered-exchange-a-p-is","selected-exchange-a-p-i","selected-exchange","token-search-query","token-search-results","token-searching","show-token-results","selected-token","available-quote-assets","strategies"])]),j(an,{"form-data":o.value,"selected-token":T.value,"active-tab":K.value,submitting:ge.value,"is-edit-mode":y.value,onSubmit:et,onCancel:tt,onTabChange:l[4]||(l[4]=c=>K.value=c),class:"lg:order-2"},null,8,["form-data","selected-token","active-tab","submitting","is-edit-mode"])])])]))}};export{mn as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.