candleview 2.3.5 → 2.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -3
- package/dist/index.js +4 -4
- package/dist/index.mjs +29 -29
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -46,13 +46,11 @@ declare class CandleView extends default_2.Component<CandleViewProps, CandleView
|
|
|
46
46
|
private isDragging;
|
|
47
47
|
private startX;
|
|
48
48
|
private startChartWidth;
|
|
49
|
-
private startPanelWidth;
|
|
50
49
|
private containerWidth;
|
|
51
50
|
private terminalResizeRef;
|
|
52
51
|
private isDraggingTerminal;
|
|
53
52
|
private startY;
|
|
54
53
|
private startTerminalHeightRatio;
|
|
55
|
-
private containerHeight;
|
|
56
54
|
private preparedData;
|
|
57
55
|
private originalData;
|
|
58
56
|
private aiManager;
|
|
@@ -132,7 +130,6 @@ declare class CandleView extends default_2.Component<CandleViewProps, CandleView
|
|
|
132
130
|
handleZoomOut: () => void;
|
|
133
131
|
handleAIFunctionSelect: (aiTooleId: string) => void;
|
|
134
132
|
private handleTerminalCommand;
|
|
135
|
-
private handleToggleTerminal;
|
|
136
133
|
openTerminal: () => void;
|
|
137
134
|
closeTerminal: () => void;
|
|
138
135
|
render(): JSX.Element;
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
18
18
|
.indicators-scrollbar::-webkit-scrollbar-thumb:hover {
|
|
19
19
|
background: ${r?.layout?.textColor||"#000000"}80;
|
|
20
20
|
}
|
|
21
|
-
`,ht={position:"absolute",left:`${l.x}px`,top:`${l.y}px`,background:r?.toolbar?.background||"#fafafa",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"8px",padding:"0",width:"400px",maxWidth:"90vw",height:"400px",maxHeight:"80vh",zIndex:1e4,boxShadow:"0 8px 24px rgba(0,0,0,0.3)",cursor:c?"grabbing":"default",userSelect:c?"none":"auto",display:"flex",flexDirection:"column"},ut={padding:"16px 16px 12px 16px",borderBottom:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,cursor:"grab",userSelect:"none",flexShrink:0},y={fontSize:"14px",fontWeight:"bold",color:r?.layout?.textColor||"#000000",margin:0},W={padding:"16px",flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},nt={marginBottom:"16px",flex:1,overflowY:"auto",overflowX:"hidden",...j},ct={display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px",padding:"8px",background:r?.toolbar?.background||"#fafafa",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px"},it={fontSize:"12px",color:r?.layout?.textColor||"#000000",minWidth:"80px",fontWeight:"bold"},B={width:"60px",padding:"4px 8px",background:r?.toolbar?.background||"#fafafa",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",fontSize:"12px"},G={width:"60px",padding:"4px 8px",background:r?.toolbar?.background||"#fafafa",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",fontSize:"12px"},rt={display:"flex",alignItems:"center",gap:"4px",position:"relative"},ot={width:"24px",height:"24px",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",cursor:"pointer"},dt={position:"absolute",top:0,left:0,width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",opacity:0},pt={background:"transparent",border:"none",fontSize:"16px",cursor:"pointer",padding:"0",width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center",color:r?.chart?.downColor||"#ff4d4f"},bt={...pt,color:`${r?.toolbar?.border||"#d9d9d9"}`,cursor:"not-allowed"},mt={width:"100%",background:"transparent",color:r?.chart?.lineColor||"#2962FF",border:`2px dashed ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",padding:"8px 16px",fontSize:"12px",cursor:"pointer",marginBottom:"16px",flexShrink:0};({...mt,color:`${r?.toolbar?.border||"#d9d9d9"}`,borderColor:`${r?.toolbar?.border||"#d9d9d9"}`});const At={display:"flex",justifyContent:"flex-end",gap:"8px",flexShrink:0},Et={background:"transparent",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",padding:"6px 12px",fontSize:"12px",cursor:"pointer"},Rt={background:r?.toolbar?.button?.active||"#2962FF",color:r?.toolbar?.button?.activeTextColor||"#ffffff",border:"none",borderRadius:"4px",padding:"6px 12px",fontSize:"12px",cursor:"pointer"},yt={fontSize:"10px",color:`${r?.layout?.textColor||"#000000"}80`,marginTop:"8px",textAlign:"center",flexShrink:0},Ot={position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:9999,background:"transparent"};return!f||!o?null:ue.createPortal(m.jsxs(E.Fragment,{children:[m.jsx("style",{children:st}),m.jsx("div",{style:Ot,onClick:$,children:m.jsxs("div",{ref:M,style:ht,onClick:V=>V.stopPropagation(),onMouseDown:at,onKeyDown:tt,children:[m.jsx("div",{ref:k,style:ut,onMouseDown:V=>{V.target===k.current&&V.preventDefault()},children:m.jsx("div",{style:y,children:K()})}),m.jsxs("div",{style:W,children:[m.jsx("div",{style:nt,className:"indicators-scrollbar",children:o.params?.map((V,I)=>m.jsxs("div",{style:ct,children:[m.jsx("div",{style:it,children:Z(I)}),m.jsx("input",{type:"number",style:B,value:V.paramValue,onChange:q=>A(I,Number(q.target.value)),onClick:q=>q.stopPropagation()}),m.jsxs("select",{style:G,value:V.lineWidth,onChange:q=>R(I,Number(q.target.value)),onClick:q=>q.stopPropagation(),children:[m.jsx("option",{value:1,children:"1px"}),m.jsx("option",{value:2,children:"2px"}),m.jsx("option",{value:3,children:"3px"}),m.jsx("option",{value:4,children:"4px"}),m.jsx("option",{value:5,children:"5px"})]}),m.jsxs("div",{style:rt,children:[m.jsx("div",{style:{...ot,backgroundColor:V.lineColor},onClick:q=>{q.currentTarget.nextSibling?.click()}}),m.jsx("input",{type:"color",style:dt,value:V.lineColor,onChange:q=>x(I,q.target.value),onClick:q=>q.stopPropagation()})]}),S()&&o.params&&m.jsx("button",{onClick:()=>C(I),style:o.params.length<=1?bt:pt,disabled:!o.params||o.params.length<=1,type:"button",title:o.params.length<=1?n.modal?.keepAtLeastOne||"至少保留一个参数":n.modal?.deleteParameter||"删除此参数",children:"×"})]},`${o.id}-${I}`))}),S()&&m.jsxs("button",{onClick:_,style:mt,type:"button",children:["+ ",n.modal?.addParameter||"添加参数"]}),m.jsxs("div",{style:At,children:[m.jsx("button",{onClick:X,style:Et,type:"button",children:n.systemSettings?.cancel||"取消"}),m.jsx("button",{onClick:L,style:Rt,type:"button",children:n.systemSettings?.confirm||"确定"})]}),m.jsxs("div",{style:yt,children:[n.tooltips?.ctrlEnterToConfirm||"Ctrl+Enter: 确认",", ",n.tooltips?.escToCancel||"Esc: 取消",", ",n.modal?.dragToMove||"拖动标题栏移动"]})]})]})})]}),document.body)};class Hn{constructor(t,e=[]){this._defaultIsCircular=!0,this._defaultFontSize=11,this._defaultPadding=2,this._defaultTextColor="white",this._defaultBackgroundColor="green",this._time=t,this._textItems=e}attached(t){this._chart=t.chart,this._series=t.series,t.requestUpdate()}updateAllViews(){}paneViews(){return this._renderer||(this._renderer={draw:t=>{const e=t.context??t._context;if(!e||!this._chart||!this._series)return;const i=this._chart.timeScale().timeToCoordinate(this._time);if(i==null)return;const r=this._series.data().find(n=>n.time===this._time);if(!r)return;const a=r.low;let s=this._series.priceToCoordinate(a);if(s!=null){s+=20,e.save();for(let n=0;n<this._textItems.length;n++){const o=this._textItems[n],h=s+n*40,l=o.fontSize??this._defaultFontSize,g="Arial";e.font=`${l}px ${g}`;const d=e.measureText(o.text).width,u=l,p=o.padding??this._defaultPadding,M=d+p*2,k=u+p*2,P=i-M/2,S=h-k/2;if(e.fillStyle=o.backgroundColor??this._defaultBackgroundColor,o.isCircular??this._defaultIsCircular){const _=Math.max(M,k)/2;e.beginPath(),e.arc(i,h,_,0,Math.PI*2),e.fill()}else e.fillRect(P,S,M,k);e.fillStyle=o.textColor??this._defaultTextColor,e.textAlign="center",e.textBaseline="middle",e.fillText(o.text,i,h)}e.restore()}}}),[{renderer:()=>this._renderer}]}addTextItem(t,e="white",i="blue",r=!1,a=this._defaultFontSize,s=this._defaultPadding){this._textItems.push({text:t,textColor:e,backgroundColor:i,isCircular:r,fontSize:a,padding:s}),this._chart&&this._chart.requestUpdate()}setTextItems(t){this._textItems=t,this._chart&&this._chart.requestUpdate()}updateText(t,e){this._textItems[t]&&(this._textItems[t].text=e,this._chart&&this._chart.requestUpdate())}updateColors(t,e,i){this._textItems[t]&&(this._textItems[t].textColor=e,this._textItems[t].backgroundColor=i,this._chart&&this._chart.requestUpdate())}updateCircular(t,e){this._textItems[t]&&(this._textItems[t].isCircular=e,this._chart&&this._chart.requestUpdate())}removeTextItem(t){this._textItems[t]&&(this._textItems.splice(t,1),this._chart&&this._chart.requestUpdate())}clearTextItems(){this._textItems=[],this._chart&&this._chart.requestUpdate()}getTextItemCount(){return this._textItems.length}}class On{constructor(t,e=[]){this._defaultIsCircular=!0,this._defaultFontSize=11,this._defaultPadding=2,this._defaultTextColor="white",this._defaultBackgroundColor="red",this._time=t,this._textItems=e}attached(t){this._chart=t.chart,this._series=t.series,t.requestUpdate()}updateAllViews(){}paneViews(){return this._renderer||(this._renderer={draw:t=>{const e=t.context??t._context;if(!e||!this._chart||!this._series)return;const i=this._chart.timeScale().timeToCoordinate(this._time);if(i==null)return;const r=this._series.data().find(n=>n.time===this._time);if(!r)return;const a=r.high;let s=this._series.priceToCoordinate(a);if(s!=null){s-=20,e.save();for(let n=0;n<this._textItems.length;n++){const o=this._textItems[n],h=s-n*40,l=o.fontSize??this._defaultFontSize,g="Arial";e.font=`${l}px ${g}`;const d=e.measureText(o.text).width,u=l,p=o.padding??this._defaultPadding,M=d+p*2,k=u+p*2,P=i-M/2,S=h-k/2;if(e.fillStyle=o.backgroundColor??this._defaultBackgroundColor,o.isCircular??this._defaultIsCircular){const _=Math.max(M,k)/2;e.beginPath(),e.arc(i,h,_,0,Math.PI*2),e.fill()}else e.fillRect(P,S,M,k);e.fillStyle=o.textColor??this._defaultTextColor,e.textAlign="center",e.textBaseline="middle",e.fillText(o.text,i,h)}e.restore()}}}),[{renderer:()=>this._renderer}]}addTextItem(t,e="white",i="blue",r=!1,a=this._defaultFontSize,s=this._defaultPadding){this._textItems.push({text:t,textColor:e,backgroundColor:i,isCircular:r,fontSize:a,padding:s}),this._chart&&this._chart.requestUpdate()}setTextItems(t){this._textItems=t,this._chart&&this._chart.requestUpdate()}updateText(t,e){this._textItems[t]&&(this._textItems[t].text=e,this._chart&&this._chart.requestUpdate())}updateColors(t,e,i){this._textItems[t]&&(this._textItems[t].textColor=e,this._textItems[t].backgroundColor=i,this._chart&&this._chart.requestUpdate())}updateCircular(t,e){this._textItems[t]&&(this._textItems[t].isCircular=e,this._chart&&this._chart.requestUpdate())}removeTextItem(t){this._textItems[t]&&(this._textItems.splice(t,1),this._chart&&this._chart.requestUpdate())}clearTextItems(){this._textItems=[],this._chart&&this._chart.requestUpdate()}getTextItemCount(){return this._textItems.length}}var _e=(f=>(f.Top="Top",f.Bottom="Bottom",f))(_e||{}),Yi=(f=>(f.Text="Text",f.Arrow="Arrow",f))(Yi||{});class jn{constructor(){this._marks=[],this._tolerance=1440*60*1e3,this._timeframe="1d",this._chartSeries=null}autoDetectTimeframe(t){if(!t||t.length<2)return"1d";const e=[];for(let r=1;r<Math.min(t.length,10);r++){const a=t[r].time-t[r-1].time;e.push(a)}const i=this.median(e);return i<=60*1e3?"1m":i<=300*1e3?"5m":i<=900*1e3?"15m":i<=3600*1e3?"1h":i<=14400*1e3?"4h":i<=1440*60*1e3?"1d":i<=10080*60*1e3?"1w":"1M"}median(t){if(t.length===0)return 0;t.sort((i,r)=>i-r);const e=Math.floor(t.length/2);return t.length%2?t[e]:(t[e-1]+t[e])/2}calculateTolerance(t){const e=t.slice(-1).toLowerCase(),i=parseInt(t.slice(0,-1))||1;switch(e){case"m":return Math.max(i*60*1e3,300*1e3);case"h":return i*60*60*1e3;case"d":return i*24*60*60*1e3;case"w":return i*7*24*60*60*1e3;case"M":return i*30*24*60*60*1e3;default:return 1440*60*1e3}}findClosestBarTime(t,e){const i=this.autoDetectTimeframe(t);i!==this._timeframe&&(this._timeframe=i,this._tolerance=this.calculateTolerance(i));let r=null,a=1/0;for(const s of t){const n=Math.abs(s.time-e);this._timeframe.endsWith("w")||this._timeframe.endsWith("M")?this.isInSameTimeUnit(s.time,e,this._timeframe)&&n<a&&(a=n,r=s.time):n<=this._tolerance&&n<a&&(a=n,r=s.time)}return r}isInSameTimeUnit(t,e,i){const r=new Date(t),a=new Date(e);if(i.endsWith("w")){const s=this.getWeekNumber(r),n=this.getWeekNumber(a);return s.year===n.year&&s.week===n.week}else if(i.endsWith("M"))return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth();return!1}getWeekNumber(t){const e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),i=e.getUTCDay()||7;e.setUTCDate(e.getUTCDate()+4-i);const r=new Date(Date.UTC(e.getUTCFullYear(),0,1));return{year:e.getUTCFullYear(),week:Math.ceil(((e.getTime()-r.getTime())/864e5+1)/7)}}addMark(t,e){this._chartSeries=e;const i=e.series.data();if(!i||i.length===0)return;const r=new Map;t.forEach(s=>{r.has(s.time)||r.set(s.time,[]),r.get(s.time).push(s)});const a=new Map;r.forEach((s,n)=>{const o=this.findClosestBarTime(i,n);o!==null&&(a.has(o)||a.set(o,[]),s.forEach(h=>{a.get(o).push({...h,time:o})}))}),a.forEach((s,n)=>{const o=new Map;s.forEach(h=>{const l=Object.values(Yi).find(g=>g===h.type);l&&(o.has(l)||o.set(l,[]),o.get(l).push(h))}),o.forEach((h,l)=>{const g=h.flatMap(u=>u.data),c=g.filter(u=>Object.values(_e).find(p=>p===u.direction)==="Top"),d=g.filter(u=>Object.values(_e).find(p=>p===u.direction)==="Bottom");c.length>0&&this.addTopMark([{time:n,type:l,data:c}],l,e),d.length>0&&this.addBottomMark([{time:n,type:l,data:d}],l,e)})})}recalculateMarks(){this._chartSeries&&([...this._marks],this.clearAllMarks())}refreshTimeframe(){if(!this._chartSeries)return;const t=this._chartSeries.series.data();if(!t||t.length<2)return;const e=this.autoDetectTimeframe(t);e!==this._timeframe&&(this._timeframe=e,this._tolerance=this.calculateTolerance(e),this.recalculateMarks())}addTopMark(t,e,i){switch(e){case"Text":t.forEach(r=>{const a=r.data.map(n=>{const o={text:n.text};return n.textColor!==void 0&&(o.textColor=n.textColor),n.backgroundColor!==void 0&&(o.backgroundColor=n.backgroundColor),n.isCircular!==void 0&&(o.isCircular=n.isCircular),n.fontSize!==void 0&&(o.fontSize=n.fontSize),n.padding!==void 0&&(o.padding=n.padding),o}),s=new On(r.time,a);i.series.attachPrimitive(s),this._marks.push(s)});break;case"Arrow":break;default:return}}addBottomMark(t,e,i){switch(e){case"Text":t.forEach(r=>{const a=r.data.map(n=>{const o={text:n.text};return n.textColor!==void 0&&(o.textColor=n.textColor),n.backgroundColor!==void 0&&(o.backgroundColor=n.backgroundColor),n.isCircular!==void 0&&(o.isCircular=n.isCircular),n.fontSize!==void 0&&(o.fontSize=n.fontSize),n.padding!==void 0&&(o.padding=n.padding),o}),s=new Hn(r.time,a);i.series.attachPrimitive(s),this._marks.push(s)});break;case"Arrow":break;default:return}}removeAllMark(){this._marks=[]}getTolerance(){return this._tolerance}getTimeframe(){return this._timeframe}getMarkCount(){return this._marks.length}clearAllMarks(t){const e=t||this._chartSeries;e&&this._marks.forEach(i=>{e.series.detachPrimitive(i)}),this._marks=[]}destroy(){this.clearAllMarks(),this._chartSeries=null}}class Nn{calculateADX(t,e){if(t.length<e+1)return{ADX:[],PlusDI:[],MinusDI:[]};const i={ADX:[],PlusDI:[],MinusDI:[]},r=t.map(S=>S.time),a=[0],s=[0],n=[0];for(let S=1;S<t.length;S++){const _=t[S].high,C=t[S].low,A=t[S-1].high,x=t[S-1].low,R=t[S-1].close,U=Math.max(_-C,Math.abs(_-R),Math.abs(C-R));a.push(U);const L=_-A,X=x-C;L>X&&L>0?(s.push(L),n.push(0)):X>L&&X>0?(s.push(0),n.push(X)):(s.push(0),n.push(0))}const o=[],h=[],l=[];let g=a.slice(0,e).reduce((S,_)=>S+_,0),c=s.slice(0,e).reduce((S,_)=>S+_,0),d=n.slice(0,e).reduce((S,_)=>S+_,0);o.push(g),h.push(c),l.push(d);for(let S=e;S<a.length;S++)g=g-g/e+a[S],c=c-c/e+s[S],d=d-d/e+n[S],o.push(g),h.push(c),l.push(d);const u=[],p=[],M=[];for(let S=0;S<o.length;S++){if(o[S]===0){u.push(0),p.push(0),M.push(0);continue}const _=h[S]/o[S]*100,C=l[S]/o[S]*100;u.push(_),p.push(C);const A=_+C,x=A>0?Math.abs(_-C)/A*100:0;M.push(x)}const k=[];if(M.length>=e){let S=M.slice(0,e).reduce((_,C)=>_+C,0)/e;k.push(S);for(let _=e;_<M.length;_++)S=(S*(e-1)+M[_])/e,k.push(S)}const P=e;for(let S=0;S<k.length;S++){const _=P+S;_<t.length&&(i.ADX.push({time:r[_],value:Math.min(100,Math.max(0,k[S])),...t[_].isVirtual&&{color:"transparent"}}),S<u.length&&i.PlusDI.push({time:r[_],value:Math.min(100,Math.max(0,u[S])),...t[_].isVirtual&&{color:"transparent"}}),S<p.length&&i.MinusDI.push({time:r[_],value:Math.min(100,Math.max(0,p[S])),...t[_].isVirtual&&{color:"transparent"}}))}return i}calculate(t,e){return t.forEach(i=>{const r=this.calculateADX(e,i.paramValue);let a=[];switch(i.paramName){case"ADX":a=r.ADX;break;case"+DI":a=r.PlusDI;break;case"-DI":a=r.MinusDI;break}a.length>0&&(i.data=a)}),t}}class wt{constructor(t,e,i,r,a,s,n,o,h){this.id=t,this.size=e,this.vertPosition=i,this.indicatorType=r,this.chartInstance=a,this.paneInstance=s,this.theme=n,this.onSettingsClick=o,this.onCloseClick=h,this._infoElement=null}init(t,e){}createInfoElement(){if(!this.paneInstance)return;const t=this.paneInstance.getHTMLElement();if(!t)return;this._infoElement=document.createElement("div"),this._infoElement.className="chart-pane-info",this._infoElement.style.cssText=`
|
|
21
|
+
`,ht={position:"absolute",left:`${l.x}px`,top:`${l.y}px`,background:r?.toolbar?.background||"#fafafa",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"8px",padding:"0",width:"400px",maxWidth:"90vw",height:"400px",maxHeight:"80vh",zIndex:1e4,boxShadow:"0 8px 24px rgba(0,0,0,0.3)",cursor:c?"grabbing":"default",userSelect:c?"none":"auto",display:"flex",flexDirection:"column"},ut={padding:"16px 16px 12px 16px",borderBottom:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,cursor:"grab",userSelect:"none",flexShrink:0},y={fontSize:"14px",fontWeight:"bold",color:r?.layout?.textColor||"#000000",margin:0},W={padding:"16px",flex:1,display:"flex",flexDirection:"column",overflow:"hidden"},nt={marginBottom:"16px",flex:1,overflowY:"auto",overflowX:"hidden",...j},ct={display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px",padding:"8px",background:r?.toolbar?.background||"#fafafa",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px"},it={fontSize:"12px",color:r?.layout?.textColor||"#000000",minWidth:"80px",fontWeight:"bold"},B={width:"60px",padding:"4px 8px",background:r?.toolbar?.background||"#fafafa",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",fontSize:"12px"},G={width:"60px",padding:"4px 8px",background:r?.toolbar?.background||"#fafafa",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",fontSize:"12px"},rt={display:"flex",alignItems:"center",gap:"4px",position:"relative"},ot={width:"24px",height:"24px",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",cursor:"pointer"},dt={position:"absolute",top:0,left:0,width:"24px",height:"24px",border:"none",background:"transparent",cursor:"pointer",opacity:0},pt={background:"transparent",border:"none",fontSize:"16px",cursor:"pointer",padding:"0",width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center",color:r?.chart?.downColor||"#ff4d4f"},bt={...pt,color:`${r?.toolbar?.border||"#d9d9d9"}`,cursor:"not-allowed"},mt={width:"100%",background:"transparent",color:r?.chart?.lineColor||"#2962FF",border:`2px dashed ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",padding:"8px 16px",fontSize:"12px",cursor:"pointer",marginBottom:"16px",flexShrink:0};({...mt,color:`${r?.toolbar?.border||"#d9d9d9"}`,borderColor:`${r?.toolbar?.border||"#d9d9d9"}`});const At={display:"flex",justifyContent:"flex-end",gap:"8px",flexShrink:0},Et={background:"transparent",color:r?.layout?.textColor||"#000000",border:`1px solid ${r?.toolbar?.border||"#d9d9d9"}`,borderRadius:"4px",padding:"6px 12px",fontSize:"12px",cursor:"pointer"},Rt={background:r?.toolbar?.button?.active||"#2962FF",color:r?.toolbar?.button?.activeTextColor||"#ffffff",border:"none",borderRadius:"4px",padding:"6px 12px",fontSize:"12px",cursor:"pointer"},yt={fontSize:"10px",color:`${r?.layout?.textColor||"#000000"}80`,marginTop:"8px",textAlign:"center",flexShrink:0},Ot={position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:9999,background:"transparent"};return!f||!o?null:ue.createPortal(m.jsxs(E.Fragment,{children:[m.jsx("style",{children:st}),m.jsx("div",{style:Ot,onClick:$,children:m.jsxs("div",{ref:M,style:ht,onClick:V=>V.stopPropagation(),onMouseDown:at,onKeyDown:tt,children:[m.jsx("div",{ref:k,style:ut,onMouseDown:V=>{V.target===k.current&&V.preventDefault()},children:m.jsx("div",{style:y,children:K()})}),m.jsxs("div",{style:W,children:[m.jsx("div",{style:nt,className:"indicators-scrollbar",children:o.params?.map((V,I)=>m.jsxs("div",{style:ct,children:[m.jsx("div",{style:it,children:Z(I)}),m.jsx("input",{type:"number",style:B,value:V.paramValue,onChange:q=>A(I,Number(q.target.value)),onClick:q=>q.stopPropagation()}),m.jsxs("select",{style:G,value:V.lineWidth,onChange:q=>R(I,Number(q.target.value)),onClick:q=>q.stopPropagation(),children:[m.jsx("option",{value:1,children:"1px"}),m.jsx("option",{value:2,children:"2px"}),m.jsx("option",{value:3,children:"3px"}),m.jsx("option",{value:4,children:"4px"}),m.jsx("option",{value:5,children:"5px"})]}),m.jsxs("div",{style:rt,children:[m.jsx("div",{style:{...ot,backgroundColor:V.lineColor},onClick:q=>{q.currentTarget.nextSibling?.click()}}),m.jsx("input",{type:"color",style:dt,value:V.lineColor,onChange:q=>x(I,q.target.value),onClick:q=>q.stopPropagation()})]}),S()&&o.params&&m.jsx("button",{onClick:()=>C(I),style:o.params.length<=1?bt:pt,disabled:!o.params||o.params.length<=1,type:"button",title:o.params.length<=1?n.modal?.keepAtLeastOne||"至少保留一个参数":n.modal?.deleteParameter||"删除此参数",children:"×"})]},`${o.id}-${I}`))}),S()&&m.jsxs("button",{onClick:_,style:mt,type:"button",children:["+ ",n.modal?.addParameter||"添加参数"]}),m.jsxs("div",{style:At,children:[m.jsx("button",{onClick:X,style:Et,type:"button",children:n.systemSettings?.cancel||"取消"}),m.jsx("button",{onClick:L,style:Rt,type:"button",children:n.systemSettings?.confirm||"确定"})]}),m.jsxs("div",{style:yt,children:[n.tooltips?.ctrlEnterToConfirm||"Ctrl+Enter: 确认",", ",n.tooltips?.escToCancel||"Esc: 取消",", ",n.modal?.dragToMove||"拖动标题栏移动"]})]})]})})]}),document.body)};class Hn{constructor(t,e=[]){this._defaultIsCircular=!0,this._defaultFontSize=11,this._defaultPadding=2,this._defaultTextColor="white",this._defaultBackgroundColor="green",this._time=t,this._textItems=e}attached(t){this._chart=t.chart,this._series=t.series,t.requestUpdate()}updateAllViews(){}paneViews(){return this._renderer||(this._renderer={draw:t=>{const e=t.context??t._context;if(!e||!this._chart||!this._series)return;const i=this._chart.timeScale().timeToCoordinate(this._time);if(i==null)return;const r=this._series.data().find(n=>n.time===this._time);if(!r)return;const a=r.low;let s=this._series.priceToCoordinate(a);if(s!=null){s+=20,e.save();for(let n=0;n<this._textItems.length;n++){const o=this._textItems[n],h=s+n*40,l=o.fontSize??this._defaultFontSize,g="Arial";e.font=`${l}px ${g}`;const d=e.measureText(o.text).width,u=l,p=o.padding??this._defaultPadding,M=d+p*2,k=u+p*2,P=i-M/2,S=h-k/2;if(e.fillStyle=o.backgroundColor??this._defaultBackgroundColor,o.isCircular??this._defaultIsCircular){const _=Math.max(M,k)/2;e.beginPath(),e.arc(i,h,_,0,Math.PI*2),e.fill()}else e.fillRect(P,S,M,k);e.fillStyle=o.textColor??this._defaultTextColor,e.textAlign="center",e.textBaseline="middle",e.fillText(o.text,i,h)}e.restore()}}}),[{renderer:()=>this._renderer}]}addTextItem(t,e="white",i="blue",r=!1,a=this._defaultFontSize,s=this._defaultPadding){this._textItems.push({text:t,textColor:e,backgroundColor:i,isCircular:r,fontSize:a,padding:s}),this._chart&&this._chart.requestUpdate()}setTextItems(t){this._textItems=t,this._chart&&this._chart.requestUpdate()}updateText(t,e){this._textItems[t]&&(this._textItems[t].text=e,this._chart&&this._chart.requestUpdate())}updateColors(t,e,i){this._textItems[t]&&(this._textItems[t].textColor=e,this._textItems[t].backgroundColor=i,this._chart&&this._chart.requestUpdate())}updateCircular(t,e){this._textItems[t]&&(this._textItems[t].isCircular=e,this._chart&&this._chart.requestUpdate())}removeTextItem(t){this._textItems[t]&&(this._textItems.splice(t,1),this._chart&&this._chart.requestUpdate())}clearTextItems(){this._textItems=[],this._chart&&this._chart.requestUpdate()}getTextItemCount(){return this._textItems.length}}class On{constructor(t,e=[]){this._defaultIsCircular=!0,this._defaultFontSize=11,this._defaultPadding=2,this._defaultTextColor="white",this._defaultBackgroundColor="red",this._time=t,this._textItems=e}attached(t){this._chart=t.chart,this._series=t.series,t.requestUpdate()}updateAllViews(){}paneViews(){return this._renderer||(this._renderer={draw:t=>{const e=t.context??t._context;if(!e||!this._chart||!this._series)return;const i=this._chart.timeScale().timeToCoordinate(this._time);if(i==null)return;const r=this._series.data().find(n=>n.time===this._time);if(!r)return;const a=r.high;let s=this._series.priceToCoordinate(a);if(s!=null){s-=20,e.save();for(let n=0;n<this._textItems.length;n++){const o=this._textItems[n],h=s-n*40,l=o.fontSize??this._defaultFontSize,g="Arial";e.font=`${l}px ${g}`;const d=e.measureText(o.text).width,u=l,p=o.padding??this._defaultPadding,M=d+p*2,k=u+p*2,P=i-M/2,S=h-k/2;if(e.fillStyle=o.backgroundColor??this._defaultBackgroundColor,o.isCircular??this._defaultIsCircular){const _=Math.max(M,k)/2;e.beginPath(),e.arc(i,h,_,0,Math.PI*2),e.fill()}else e.fillRect(P,S,M,k);e.fillStyle=o.textColor??this._defaultTextColor,e.textAlign="center",e.textBaseline="middle",e.fillText(o.text,i,h)}e.restore()}}}),[{renderer:()=>this._renderer}]}addTextItem(t,e="white",i="blue",r=!1,a=this._defaultFontSize,s=this._defaultPadding){this._textItems.push({text:t,textColor:e,backgroundColor:i,isCircular:r,fontSize:a,padding:s}),this._chart&&this._chart.requestUpdate()}setTextItems(t){this._textItems=t,this._chart&&this._chart.requestUpdate()}updateText(t,e){this._textItems[t]&&(this._textItems[t].text=e,this._chart&&this._chart.requestUpdate())}updateColors(t,e,i){this._textItems[t]&&(this._textItems[t].textColor=e,this._textItems[t].backgroundColor=i,this._chart&&this._chart.requestUpdate())}updateCircular(t,e){this._textItems[t]&&(this._textItems[t].isCircular=e,this._chart&&this._chart.requestUpdate())}removeTextItem(t){this._textItems[t]&&(this._textItems.splice(t,1),this._chart&&this._chart.requestUpdate())}clearTextItems(){this._textItems=[],this._chart&&this._chart.requestUpdate()}getTextItemCount(){return this._textItems.length}}var _e=(f=>(f.Top="Top",f.Bottom="Bottom",f))(_e||{}),Yi=(f=>(f.Text="Text",f.Arrow="Arrow",f))(Yi||{});class jn{constructor(){this._marks=[],this._tolerance=1440*60*1e3,this._timeframe="1d",this._chartSeries=null}autoDetectTimeframe(t){if(!t||t.length<2)return"1d";const e=[];for(let r=1;r<Math.min(t.length,10);r++){const a=t[r].time-t[r-1].time;e.push(a)}const i=this.median(e);return i<=60*1e3?"1m":i<=300*1e3?"5m":i<=900*1e3?"15m":i<=3600*1e3?"1h":i<=14400*1e3?"4h":i<=1440*60*1e3?"1d":i<=10080*60*1e3?"1w":"1M"}median(t){if(t.length===0)return 0;t.sort((i,r)=>i-r);const e=Math.floor(t.length/2);return t.length%2?t[e]:(t[e-1]+t[e])/2}calculateTolerance(t){const e=t.slice(-1).toLowerCase(),i=parseInt(t.slice(0,-1))||1;switch(e){case"m":return Math.max(i*60*1e3,300*1e3);case"h":return i*60*60*1e3;case"d":return i*24*60*60*1e3;case"w":return i*7*24*60*60*1e3;case"M":return i*30*24*60*60*1e3;default:return 1440*60*1e3}}findClosestBarTime(t,e){const i=this.autoDetectTimeframe(t);i!==this._timeframe&&(this._timeframe=i,this._tolerance=this.calculateTolerance(i));let r=null,a=1/0;for(const s of t){const n=Math.abs(s.time-e);this._timeframe.endsWith("w")||this._timeframe.endsWith("M")?this.isInSameTimeUnit(s.time,e,this._timeframe)&&n<a&&(a=n,r=s.time):n<=this._tolerance&&n<a&&(a=n,r=s.time)}return r}isInSameTimeUnit(t,e,i){const r=new Date(t),a=new Date(e);if(i.endsWith("w")){const s=this.getWeekNumber(r),n=this.getWeekNumber(a);return s.year===n.year&&s.week===n.week}else if(i.endsWith("M"))return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth();return!1}getWeekNumber(t){const e=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate())),i=e.getUTCDay()||7;e.setUTCDate(e.getUTCDate()+4-i);const r=new Date(Date.UTC(e.getUTCFullYear(),0,1));return{year:e.getUTCFullYear(),week:Math.ceil(((e.getTime()-r.getTime())/864e5+1)/7)}}addMark(t,e){if(!e||!e.series)return;this._chartSeries=e;const i=e.series.data();if(!i||i.length===0)return;const r=new Map;t.forEach(s=>{r.has(s.time)||r.set(s.time,[]),r.get(s.time).push(s)});const a=new Map;r.forEach((s,n)=>{const o=this.findClosestBarTime(i,n);o!==null&&(a.has(o)||a.set(o,[]),s.forEach(h=>{a.get(o).push({...h,time:o})}))}),a.forEach((s,n)=>{const o=new Map;s.forEach(h=>{const l=Object.values(Yi).find(g=>g===h.type);l&&(o.has(l)||o.set(l,[]),o.get(l).push(h))}),o.forEach((h,l)=>{const g=h.flatMap(u=>u.data),c=g.filter(u=>Object.values(_e).find(p=>p===u.direction)==="Top"),d=g.filter(u=>Object.values(_e).find(p=>p===u.direction)==="Bottom");c.length>0&&this.addTopMark([{time:n,type:l,data:c}],l,e),d.length>0&&this.addBottomMark([{time:n,type:l,data:d}],l,e)})})}recalculateMarks(){this._chartSeries&&([...this._marks],this.clearAllMarks())}refreshTimeframe(){if(!this._chartSeries)return;const t=this._chartSeries.series.data();if(!t||t.length<2)return;const e=this.autoDetectTimeframe(t);e!==this._timeframe&&(this._timeframe=e,this._tolerance=this.calculateTolerance(e),this.recalculateMarks())}addTopMark(t,e,i){switch(e){case"Text":t.forEach(r=>{const a=r.data.map(n=>{const o={text:n.text};return n.textColor!==void 0&&(o.textColor=n.textColor),n.backgroundColor!==void 0&&(o.backgroundColor=n.backgroundColor),n.isCircular!==void 0&&(o.isCircular=n.isCircular),n.fontSize!==void 0&&(o.fontSize=n.fontSize),n.padding!==void 0&&(o.padding=n.padding),o}),s=new On(r.time,a);i.series.attachPrimitive(s),this._marks.push(s)});break;case"Arrow":break;default:return}}addBottomMark(t,e,i){switch(e){case"Text":t.forEach(r=>{const a=r.data.map(n=>{const o={text:n.text};return n.textColor!==void 0&&(o.textColor=n.textColor),n.backgroundColor!==void 0&&(o.backgroundColor=n.backgroundColor),n.isCircular!==void 0&&(o.isCircular=n.isCircular),n.fontSize!==void 0&&(o.fontSize=n.fontSize),n.padding!==void 0&&(o.padding=n.padding),o}),s=new Hn(r.time,a);i.series.attachPrimitive(s),this._marks.push(s)});break;case"Arrow":break;default:return}}removeAllMark(){this._marks=[]}getTolerance(){return this._tolerance}getTimeframe(){return this._timeframe}getMarkCount(){return this._marks.length}clearAllMarks(t){const e=t||this._chartSeries;e&&this._marks.forEach(i=>{e.series.detachPrimitive(i)}),this._marks=[]}destroy(){this.clearAllMarks(),this._chartSeries=null}}class Nn{calculateADX(t,e){if(t.length<e+1)return{ADX:[],PlusDI:[],MinusDI:[]};const i={ADX:[],PlusDI:[],MinusDI:[]},r=t.map(S=>S.time),a=[0],s=[0],n=[0];for(let S=1;S<t.length;S++){const _=t[S].high,C=t[S].low,A=t[S-1].high,x=t[S-1].low,R=t[S-1].close,U=Math.max(_-C,Math.abs(_-R),Math.abs(C-R));a.push(U);const L=_-A,X=x-C;L>X&&L>0?(s.push(L),n.push(0)):X>L&&X>0?(s.push(0),n.push(X)):(s.push(0),n.push(0))}const o=[],h=[],l=[];let g=a.slice(0,e).reduce((S,_)=>S+_,0),c=s.slice(0,e).reduce((S,_)=>S+_,0),d=n.slice(0,e).reduce((S,_)=>S+_,0);o.push(g),h.push(c),l.push(d);for(let S=e;S<a.length;S++)g=g-g/e+a[S],c=c-c/e+s[S],d=d-d/e+n[S],o.push(g),h.push(c),l.push(d);const u=[],p=[],M=[];for(let S=0;S<o.length;S++){if(o[S]===0){u.push(0),p.push(0),M.push(0);continue}const _=h[S]/o[S]*100,C=l[S]/o[S]*100;u.push(_),p.push(C);const A=_+C,x=A>0?Math.abs(_-C)/A*100:0;M.push(x)}const k=[];if(M.length>=e){let S=M.slice(0,e).reduce((_,C)=>_+C,0)/e;k.push(S);for(let _=e;_<M.length;_++)S=(S*(e-1)+M[_])/e,k.push(S)}const P=e;for(let S=0;S<k.length;S++){const _=P+S;_<t.length&&(i.ADX.push({time:r[_],value:Math.min(100,Math.max(0,k[S])),...t[_].isVirtual&&{color:"transparent"}}),S<u.length&&i.PlusDI.push({time:r[_],value:Math.min(100,Math.max(0,u[S])),...t[_].isVirtual&&{color:"transparent"}}),S<p.length&&i.MinusDI.push({time:r[_],value:Math.min(100,Math.max(0,p[S])),...t[_].isVirtual&&{color:"transparent"}}))}return i}calculate(t,e){return t.forEach(i=>{const r=this.calculateADX(e,i.paramValue);let a=[];switch(i.paramName){case"ADX":a=r.ADX;break;case"+DI":a=r.PlusDI;break;case"-DI":a=r.MinusDI;break}a.length>0&&(i.data=a)}),t}}class wt{constructor(t,e,i,r,a,s,n,o,h){this.id=t,this.size=e,this.vertPosition=i,this.indicatorType=r,this.chartInstance=a,this.paneInstance=s,this.theme=n,this.onSettingsClick=o,this.onCloseClick=h,this._infoElement=null}init(t,e){}createInfoElement(){if(!this.paneInstance)return;const t=this.paneInstance.getHTMLElement();if(!t)return;this._infoElement=document.createElement("div"),this._infoElement.className="chart-pane-info",this._infoElement.style.cssText=`
|
|
22
22
|
position: absolute;
|
|
23
23
|
top: 5px;
|
|
24
24
|
left: 10px;
|
|
@@ -265,7 +265,7 @@ ${Y}`)}else W(K?`Command executed: ${D}`:`命令已执行: ${D}`)},xt=D=>{if(!r)
|
|
|
265
265
|
[style*="overflowY: auto"]::-webkit-scrollbar-track {
|
|
266
266
|
background: transparent;
|
|
267
267
|
}
|
|
268
|
-
`}),this.renderCursorTools(),this.renderLineTools(),this.renderTecGraphTools(),this.renderMarkTools(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.props.ai&&this.props.aiconfigs.length>0&&this.renderAITools(),this.renderTerminalButton(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.renderOtherTools(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.renderTrash()]})})}),this.renderDrawingModal(),this.renderBrushModal(),this.renderCursorModal(),this.renderEmojiSelectPopUp(),this.renderFibonacciModal(),this.renderProjectInfoModal(),this.renderIrregularShapeModal(),this.renderTextToolModal(),this.props.ai&&this.props.aiconfigs.length>0&&this.renderAIToolsModal()]})}}class Ft extends E.Component{constructor(t){super(t),this.toggleOpen=()=>{this.setState(e=>({isOpen:!e.isOpen}))},this.state={isOpen:t.defaultOpen||!1}}render(){const{title:t,tools:e,currentTheme:i,activeTool:r,onToolSelect:a}=this.props,{isOpen:s}=this.state;return m.jsxs("div",{style:{borderBottom:`1px solid ${i.toolbar.border}`},children:[m.jsxs("button",{onClick:this.toggleOpen,style:{width:"100%",background:"transparent",border:"none",padding:"12px 12px",color:i.layout.textColor,cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"13px",fontWeight:"600",transition:"background-color 0.2s"},onMouseEnter:n=>{n.currentTarget.style.background=i.toolbar.button.hover},onMouseLeave:n=>{n.currentTarget.style.background="transparent"},children:[m.jsx("span",{children:t}),m.jsx("span",{style:{transform:s?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s",fontSize:"12px"},children:"▼"})]}),s&&m.jsx("div",{style:{padding:"0px",background:i.toolbar.background},children:m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0px"},children:e.map(n=>{const o=n.icon,h=r===n.id;return m.jsxs("button",{onClick:()=>a(n.id),style:{background:h?i.toolbar.button.active:"transparent",border:h?`2px solid ${i.toolbar.button.active}`:"2px solid transparent",padding:"10px 10px",borderRadius:"0px",color:h?i.toolbar.button.activeTextColor||"#FFFFFF":i.layout.textColor,textAlign:"left",cursor:"pointer",fontSize:"12px",fontWeight:"500",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"0px",width:"100%"},onMouseEnter:l=>{h||(l.currentTarget.style.background=i.toolbar.button.hover)},onMouseLeave:l=>{h||(l.currentTarget.style.background="transparent")},children:[m.jsx(o,{size:24,color:h?i.toolbar.button.activeTextColor||i.layout.textColor:i.toolbar.button.color}),m.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",flex:1,paddingLeft:"5px"},children:[m.jsx("div",{style:{fontWeight:"600",fontSize:"12px",lineHeight:"1.2"},children:n.name}),m.jsx("div",{style:{fontSize:"10px",opacity:.7,lineHeight:"1.2",marginTop:"2px",textAlign:"left"},children:n.description})]})]},n.id)})})})]})}}const zi=f=>[{id:"ma",name:f.mainIndicators.ma,type:F.MA},{id:"ema",name:f.mainIndicators.ema,type:F.EMA},{id:"bollinger",name:f.mainIndicators.bollinger,type:F.BOLLINGER},{id:"ichimoku",name:f.mainIndicators.ichimoku,type:F.ICHIMOKU},{id:"donchian",name:f.mainIndicators.donchian,type:F.DONCHIAN},{id:"envelope",name:f.mainIndicators.envelope,type:F.ENVELOPE},{id:"vwap",name:f.mainIndicators.vwap,type:F.VWAP}],Qi=f=>[{id:"heatmap",name:f.mainChartMaps.heatmap,type:F.HEATMAP},{id:"market-profile",name:f.mainChartMaps.marketProfile,type:F.MARKETPROFILE}],gl=f=>[{id:"rsi",name:f.subChartIndicatorName.rsi,type:N.RSI},{id:"macd",name:f.subChartIndicatorName.macd,type:N.MACD},{id:"volume",name:f.subChartIndicatorName.volume,type:N.VOLUME},{id:"sar",name:f.subChartIndicatorName.sar,type:N.SAR},{id:"kdj",name:f.subChartIndicatorName.kdj,type:N.KDJ},{id:"atr",name:f.subChartIndicatorName.atr,type:N.ATR},{id:"stochastic",name:f.subChartIndicatorName.stochastic,type:N.STOCHASTIC},{id:"cci",name:f.subChartIndicatorName.cci,type:N.CCI},{id:"bbwidth",name:f.subChartIndicatorName.bbwidth,type:N.BBWIDTH},{id:"adx",name:f.subChartIndicatorName.adx,type:N.ADX},{id:"obv",name:f.subChartIndicatorName.obv,type:N.OBV}];function pl(f){return[{type:f.timeframeSections.second,sectionKey:"Second",values:[v.ONE_SECOND,v.FIVE_SECONDS,v.FIFTEEN_SECONDS,v.THIRTY_SECONDS]},{type:f.timeframeSections.minute,sectionKey:"Minute",values:[v.ONE_MINUTE,v.THREE_MINUTES,v.FIVE_MINUTES,v.FIFTEEN_MINUTES,v.THIRTY_MINUTES,v.FORTY_FIVE_MINUTES]},{type:f.timeframeSections.hour,sectionKey:"Hour",values:[v.ONE_HOUR,v.TWO_HOURS,v.THREE_HOURS,v.FOUR_HOURS,v.SIX_HOURS,v.EIGHT_HOURS,v.TWELVE_HOURS]},{type:f.timeframeSections.day,sectionKey:"Day",values:[v.ONE_DAY,v.THREE_DAYS]},{type:f.timeframeSections.week,sectionKey:"Week",values:[v.ONE_WEEK,v.TWO_WEEKS]},{type:f.timeframeSections.month,sectionKey:"Month",values:[v.ONE_MONTH,v.THREE_MONTHS,v.SIX_MONTHS]}]}function fl(f,t){const{i18n:e}=f.props,i=zi(e),r=Qi(e);var a=i.find(n=>n.id===t);a||(a=r.find(n=>n.id===t));let s;switch(a?.type){case F.MA:s={...Ii,nonce:Date.now()};break;case F.EMA:s={...Li,nonce:Date.now()};break;case F.BOLLINGER:s={...Ki,nonce:Date.now()};break;case F.ICHIMOKU:s={...Hi,nonce:Date.now()};break;case F.DONCHIAN:s={...Oi,nonce:Date.now()};break;case F.ENVELOPE:s={...ji,nonce:Date.now()};break;case F.VWAP:s={...Ni,nonce:Date.now()};break;case F.HEATMAP:s={...Wi,nonce:Date.now()};break;case F.MARKETPROFILE:s={...Xi,nonce:Date.now()};break;default:s=null;break}s&&(f.setState({selectedMainIndicator:s}),f.props.handleSelectedMainChartIndicator(s))}function Ml(f,t){f.setState(e=>{const i=e.selectedSubChartIndicators.includes(t);let r;return i?r=e.selectedSubChartIndicators.filter(a=>a!==t):r=[...e.selectedSubChartIndicators,t],f.props.handleSelectedSubChartIndicator&&f.props.handleSelectedSubChartIndicator(r),{selectedSubChartIndicators:r}})}class ml extends E.Component{constructor(){super(...arguments),this.timeframeModalRef=E.createRef(),this.chartTypeModalRef=E.createRef(),this.indicatorModalRef=E.createRef(),this.timezoneModalRef=E.createRef(),this.mobileMenuModalRef=E.createRef(),this.state={mainIndicatorsSearch:"",subChartIndicatorsSearch:"",chartTypeSearch:"",selectedMainIndicator:null,selectedSubChartIndicators:[],timeframeSections:{Second:!0,Minute:!0,Hour:!0,Day:!0,Week:!0,Month:!0},timezoneSearch:"",indicatorSections:{technicalIndicators:!0,chart:!0,subChartIndicators:!0},windowWidth:typeof window<"u"?window.innerWidth:1024},this.handleResize=()=>{this.setState({windowWidth:window.innerWidth})},this.isMobileView=()=>this.state.windowWidth<=500,this.toggleMobileMenu=()=>{this.props.onMobileMenuToggle()},this.closeMobileMenu=()=>{this.props.isMobileMenuOpen&&this.props.onMobileMenuToggle()},this.handleTimeframeSelect=t=>{this.props.onTimeframeSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleChartTypeSelect=t=>{this.props.onChartTypeSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleTimezoneSelect=t=>{this.props.onTimezoneSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleMainIndicatorsSearch=t=>{this.setState({mainIndicatorsSearch:t.target.value})},this.handleTimezoneSearch=t=>{this.setState({timezoneSearch:t.target.value})},this.filteredMaps=()=>{const{mainIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=Qi(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.filteredMainIndicators=()=>{const{mainIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=zi(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.filteredSubChartIndicators=()=>{const{subChartIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=gl(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.toggleTimeframeSection=t=>{this.setState(e=>({timeframeSections:{...e.timeframeSections,[t]:!e.timeframeSections[t]}}))},this.toggleIndicatorSection=t=>{this.setState(e=>({indicatorSections:{...e.indicatorSections,[t]:!e.indicatorSections[t]}}))},this.getChartTypeLabel=t=>{const{i18n:e}=this.props;switch(t){case z.Candle:return e.chartTypes.candle;case z.HollowCandle:return e.chartTypes.hollowCandle;case z.Bar:return e.chartTypes.bar;case z.BaseLine:return e.chartTypes.baseline;case z.Line:return e.chartTypes.line;case z.Area:return e.chartTypes.area;case z.StepLine:return e.chartTypes.stepLine;case z.HeikinAshi:return e.chartTypes.heikinAshi;case z.Histogram:return e.chartTypes.histogram;case z.LineBreak:return e.chartTypes.linebreak;case z.Mountain:return e.chartTypes.mountain;case z.BaselineArea:return e.chartTypes.baselinearea;case z.HighLow:return e.chartTypes.highlow;case z.HLCArea:return e.chartTypes.hlcarea;default:return""}},this.handleMenuItemClick=t=>{this.props.onCloseModals&&this.props.onCloseModals(),t&&t()},this.handleChartTypeSearch=t=>{this.setState({chartTypeSearch:t.target.value})},this.renderChartTypeModal=()=>{const{isChartTypeModalOpen:t,currentTheme:e,activeMainChartType:i,i18n:r}=this.props,{chartTypeSearch:a}=this.state;if(!t)return null;const s=a?Se.filter(n=>this.getChartTypeLabel(n.type).toLowerCase().includes(a.toLowerCase())):Se;return m.jsxs("div",{ref:this.chartTypeModalRef,"data-chart-type-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:this.isMobileView()?"0px":"0",zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"200px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:r.searchChartTypes,value:a,onChange:this.handleChartTypeSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:n=>{n.target.style.borderColor=e.toolbar.button.active},onBlur:n=>{n.target.style.borderColor=e.toolbar.border}}),a&&m.jsx("button",{onClick:()=>this.setState({chartTypeSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:n=>{n.currentTarget.style.background=e.toolbar.button.hover,n.currentTarget.style.opacity="1"},onMouseLeave:n=>{n.currentTarget.style.background="transparent",n.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"352px"},className:"modal-scrollbar",children:s.map(n=>{const o=i===n.type;return m.jsxs("button",{onClick:()=>this.handleChartTypeSelect(n.type),style:{background:o?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"6px 8px",cursor:"pointer",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"12px",minHeight:"32px",width:"100%"},onMouseEnter:h=>{o||(h.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:h=>{o||(h.currentTarget.style.background="transparent")},children:[m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"20px",height:"20px",flexShrink:0},children:fe(n.type,{size:30})}),m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,flex:1,textAlign:"left"},children:this.getChartTypeLabel(n.type)})]},n.type)})})]})},this.renderIndicatorModal=()=>{const{isIndicatorModalOpen:t,currentTheme:e,i18n:i}=this.props,{mainIndicatorsSearch:r,indicatorSections:a}=this.state,s=this.filteredMainIndicators(),n=this.filteredMaps(),o=this.filteredSubChartIndicators();if(!t)return null;const h=[{type:i.mainChartIndicators||"技术指标",sectionKey:"technicalIndicators",values:s},{type:i.subChartIndicators||"副图指标",sectionKey:"subChartIndicators",values:o},{type:i.chartMaps||"图",sectionKey:"chart",values:n}];return m.jsxs("div",{ref:this.indicatorModalRef,"data-indicator-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:this.isMobileView()?"0px":"0",zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"280px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:i.searchIndicators,value:r,onChange:this.handleMainIndicatorsSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:l=>{l.target.style.borderColor=e.toolbar.button.active},onBlur:l=>{l.target.style.borderColor=e.toolbar.border}}),r&&m.jsx("button",{onClick:()=>this.setState({mainIndicatorsSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:l=>{l.currentTarget.style.background=e.toolbar.button.hover,l.currentTarget.style.opacity="1"},onMouseLeave:l=>{l.currentTarget.style.background="transparent",l.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"352px"},className:"modal-scrollbar",children:h.map(l=>{const g=a[l.sectionKey],c=l.sectionKey==="subChartIndicators";return m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>this.toggleIndicatorSection(l.sectionKey),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 10px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"32px"},onMouseEnter:d=>{d.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:d=>{d.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"12px",fontWeight:"600",opacity:.8,textTransform:"uppercase"},children:l.type}),m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",transition:"transform 0.2s ease",transform:g?"rotate(180deg)":"rotate(0deg)"},children:m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),g&&m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:l.values.map(d=>{const u=c?this.state.selectedSubChartIndicators.includes(d.type):!1;return m.jsxs("button",{onClick:()=>{c?Ml(this,d.type):fl(this,d.id)},style:{background:"transparent",border:"none",padding:"6px 8px",borderRadius:"0px",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.2s ease",minHeight:"32px",width:"100%",textAlign:"left"},onMouseEnter:p=>{p.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:p=>{p.currentTarget.style.background="transparent"},children:[c?m.jsx(E.Fragment,{children:m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",border:`2px solid ${u?e.toolbar.button.active:e.toolbar.border}`,borderRadius:"3px",marginRight:"10px",background:u?e.toolbar.button.active:"transparent",transition:"all 0.2s ease",flexShrink:0,position:"relative"},children:u&&m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#ffffff",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"},children:m.jsx("polyline",{points:"20 6 9 17 4 12"})})})}):null,m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:e.layout.textColor,textAlign:"left",flex:1,lineHeight:"1.4"},children:d.name})]},d.id)})})]},l.type)})})]})}}componentDidMount(){typeof window<"u"&&window.addEventListener("resize",this.handleResize)}componentWillUnmount(){typeof window<"u"&&window.removeEventListener("resize",this.handleResize)}componentDidUpdate(t){t.selectedSubChartIndicators!==this.props.selectedSubChartIndicators&&this.setState({selectedSubChartIndicators:this.props.selectedSubChartIndicators||[]})}getCurrentTimezoneDisplayName(){const{i18n:t}=this.props,e={[O.NEW_YORK]:t.options.newYork.split(" ")[0],[O.CHICAGO]:t.options.chicago.split(" ")[0],[O.DENVER]:t.options.denver.split(" ")[0],[O.LOS_ANGELES]:t.options.losAngeles.split(" ")[0],[O.TORONTO]:t.options.toronto.split(" ")[0],[O.LONDON]:t.options.london.split(" ")[0],[O.PARIS]:t.options.paris.split(" ")[0],[O.FRANKFURT]:t.options.frankfurt.split(" ")[0],[O.ZURICH]:t.options.zurich.split(" ")[0],[O.MOSCOW]:t.options.moscow.split(" ")[0],[O.DUBAI]:t.options.dubai.split(" ")[0],[O.KARACHI]:t.options.karachi.split(" ")[0],[O.KOLKATA]:t.options.kolkata.split(" ")[0],[O.SHANGHAI]:t.options.shanghai.split(" ")[0],[O.HONG_KONG]:t.options.hongKong.split(" ")[0],[O.SINGAPORE]:t.options.singapore.split(" ")[0],[O.TOKYO]:t.options.tokyo.split(" ")[0],[O.SEOUL]:t.options.seoul.split(" ")[0],[O.SYDNEY]:t.options.sydney.split(" ")[0],[O.AUCKLAND]:t.options.auckland.split(" ")[0],[O.UTC]:"UTC"},i=this.props.timezone||this.props.currentTimezone;return e[i]||i.split("/").pop()||i}renderMobileMenuModal(){const{isMobileMenuOpen:t}=this.props,{currentTheme:e,i18n:i,activeTimeframe:r,activeMainChartType:a}=this.props;return t?m.jsx("div",{ref:this.mobileMenuModalRef,"data-mobile-menu-modal":"true",style:{position:"absolute",top:"43px",left:"0px",zIndex:1001,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 0",minWidth:"200px",maxHeight:"400px",overflowY:"auto",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)"},className:"modal-scrollbar",children:m.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:[m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onTimeframeClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.timeframe||"Timeframe"}),m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:r})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onTimezoneClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.timezone||"Timezone"}),m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.getCurrentTimezoneDisplayName()})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onChartTypeClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.chartType||"Chart Type"}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.getChartTypeLabel(a)}),fe(a,{size:16})]})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onIndicatorClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.Indicators}),m.jsx(mi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onFullscreenClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.toolbarButtons.fullScreen}),m.jsx(fi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onCameraClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.toolbarButtons.screenshot}),m.jsx(Mi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onThemeToggle),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.theme}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.props.isDarkTheme?i.dark:i.light}),m.jsx("div",{style:{width:"32px",height:"18px",borderRadius:"9px",background:this.props.isDarkTheme?e.toolbar.button.active:e.toolbar.border,position:"relative",display:"flex",alignItems:"center",padding:"2px"},children:m.jsx("div",{style:{width:"14px",height:"14px",borderRadius:"50%",background:e.layout.textColor,transform:this.props.isDarkTheme?"translateX(14px)":"translateX(0)",transition:"transform 0.3s ease"}})})]})]})]})}):null}renderTimeframeModal(){const{isTimeframeModalOpen:t,currentTheme:e,activeTimeframe:i}=this.props,{timeframeSections:r}=this.state;if(!t)return null;const a=pl(this.props.i18n);return m.jsx("div",{ref:this.timeframeModalRef,"data-timeframe-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:(this.isMobileView(),"0px"),zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"180px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflowY:"auto",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)"},className:"modal-scrollbar",children:m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:a.map(s=>{const n=r[s.sectionKey];return m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>this.toggleTimeframeSection(s.sectionKey),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 10px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"32px"},onMouseEnter:o=>{o.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:o=>{o.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"12px",fontWeight:"600",opacity:.8,textTransform:"uppercase"},children:s.type}),m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",transition:"transform 0.2s ease",transform:n?"rotate(180deg)":"rotate(0deg)"},children:m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),n&&m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:s.values.map(o=>{const h=i===o;return m.jsx("button",{onClick:()=>this.handleTimeframeSelect(o),style:{background:h?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"6px 15px",cursor:"pointer",color:h?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",minHeight:"32px",width:"100%"},onMouseEnter:l=>{h||(l.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:l=>{h||(l.currentTarget.style.background="transparent")},children:m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:h?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,flex:1,textAlign:"left"},children:Ho(o,this.props.i18n)})},o)})})]},s.type)})})})}renderTimezoneModal(){const{isTimezoneModalOpen:t,currentTheme:e,i18n:i}=this.props,{timezoneSearch:r}=this.state;if(!t)return null;const a=[{id:O.NEW_YORK,name:i.options.newYork,offset:"-05:00/-04:00"},{id:O.CHICAGO,name:i.options.chicago,offset:"-06:00/-05:00"},{id:O.DENVER,name:i.options.denver,offset:"-07:00/-06:00"},{id:O.LOS_ANGELES,name:i.options.losAngeles,offset:"-08:00/-07:00"},{id:O.TORONTO,name:i.options.toronto,offset:"-05:00/-04:00"},{id:O.LONDON,name:i.options.london,offset:"+00:00/+01:00"},{id:O.PARIS,name:i.options.paris,offset:"+01:00/+02:00"},{id:O.FRANKFURT,name:i.options.frankfurt,offset:"+01:00/+02:00"},{id:O.ZURICH,name:i.options.zurich,offset:"+01:00/+02:00"},{id:O.MOSCOW,name:i.options.moscow,offset:"+03:00"},{id:O.DUBAI,name:i.options.dubai,offset:"+04:00"},{id:O.KARACHI,name:i.options.karachi,offset:"+05:00"},{id:O.KOLKATA,name:i.options.kolkata,offset:"+05:30"},{id:O.SHANGHAI,name:i.options.shanghai,offset:"+08:00"},{id:O.HONG_KONG,name:i.options.hongKong,offset:"+08:00"},{id:O.SINGAPORE,name:i.options.singapore,offset:"+08:00"},{id:O.TOKYO,name:i.options.tokyo,offset:"+09:00"},{id:O.SEOUL,name:i.options.seoul,offset:"+09:00"},{id:O.SYDNEY,name:i.options.sydney,offset:"+10:00/+11:00"},{id:O.AUCKLAND,name:i.options.auckland,offset:"+12:00/+13:00"},{id:O.UTC,name:i.options.utc,offset:"+00:00"}],s=r?a.filter(n=>n.name.toLowerCase().includes(r.toLowerCase())||n.id.toLowerCase().includes(r.toLowerCase())):a;return m.jsxs("div",{ref:this.timezoneModalRef,"data-timezone-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:(this.isMobileView(),"0px"),zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"300px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:i.searchTimezones,value:r,onChange:this.handleTimezoneSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:n=>{n.target.style.borderColor=e.toolbar.button.active},onBlur:n=>{n.target.style.borderColor=e.toolbar.border}}),r&&m.jsx("button",{onClick:()=>this.setState({timezoneSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:n=>{n.currentTarget.style.background=e.toolbar.button.hover,n.currentTarget.style.opacity="1"},onMouseLeave:n=>{n.currentTarget.style.background="transparent",n.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"300px"},className:"modal-scrollbar",children:s.map(n=>{const o=this.props.currentTimezone===n.id;return m.jsxs("button",{onClick:()=>this.handleTimezoneSelect(n.id),style:{background:o?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"8px 12px",cursor:"pointer",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",flexDirection:"column",gap:"2px",minHeight:"48px",width:"100%"},onMouseEnter:h=>{o||(h.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:h=>{o||(h.currentTarget.style.background="transparent")},children:[m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:o&&e.toolbar.button.activeTextColor||e.layout.textColor,textAlign:"left"},children:n.name}),m.jsxs("div",{style:{fontSize:"11px",fontWeight:"400",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,opacity:.7,textAlign:"left"},children:[n.id," • UTC",n.offset]})]},n.id)})})]})}render(){const{currentTheme:t,activeTimeframe:e,activeMainChartType:i,isDarkTheme:r,isTimeframeModalOpen:a,isIndicatorModalOpen:s,isChartTypeModalOpen:n,isTimezoneModalOpen:o,isMobileMenuOpen:h,onThemeToggle:l,onTimeframeClick:g,onIndicatorClick:c,onChartTypeClick:d,onFullscreenClick:u,onTimezoneClick:p,onCameraClick:M,i18n:k}=this.props;return this.isMobileView()?m.jsxs("div",{style:{background:t.panel.backgroundColor,borderBottom:`1px solid ${t.panel.borderColor}`,padding:"9px 13px",display:"flex",alignItems:"center",justifyContent:"space-between",height:"43px",boxSizing:"border-box",gap:"0",position:"relative"},children:[m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:this.toggleMobileMenu,className:"mobile-menu-button",style:{background:h?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:h?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{h||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{h||(P.currentTarget.style.background="transparent")},children:m.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),m.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),m.jsx("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),this.renderMobileMenuModal()]}),m.jsx("div",{style:{fontSize:"14px",fontWeight:"600",color:t.layout.textColor},children:e}),m.jsx("button",{onClick:l,style:{background:"transparent",border:"none",borderRadius:"20px",padding:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:r?"flex-end":"flex-start",width:"44px",height:"24px",transition:"all 0.3s ease",position:"relative"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx("div",{style:{width:"16px",height:"16px",borderRadius:"50%",background:r?t.toolbar.button.active:t.toolbar.button.color,transition:"all 0.3s ease",display:"flex",alignItems:"center",justifyContent:"center"},children:r?m.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):m.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"5"}),m.jsx("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),m.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),m.jsx("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),m.jsx("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),m.jsx("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),m.jsx("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),m.jsx("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),m.jsx("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]})})}),this.renderTimeframeModal(),this.renderChartTypeModal(),this.renderIndicatorModal(),this.renderTimezoneModal()]}):m.jsxs("div",{style:{background:t.panel.backgroundColor,borderBottom:`1px solid ${t.panel.borderColor}`,padding:"9px 13px",display:"flex",alignItems:"center",justifyContent:"flex-start",height:"43px",boxSizing:"border-box",gap:"0",position:"relative"},children:[m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:g,className:"timeframe-button",style:{background:a?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:a?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{a||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{a||(P.currentTarget.style.background="transparent")},children:this.props.timeframe||e}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderTimeframeModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsxs("button",{onClick:p,className:"timezone-button",style:{background:o?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:o?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{o||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{o||(P.currentTarget.style.background="transparent")},children:[m.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"10"}),m.jsx("polyline",{points:"12 6 12 12 16 14"})]}),this.getCurrentTimezoneDisplayName()]}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderTimezoneModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:d,className:"chart-type-button",style:{background:n?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:n?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{n||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{n||(P.currentTarget.style.background="transparent")},children:fe(i,{size:17})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderChartTypeModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsxs("button",{onClick:c,className:"indicator-button",style:{background:s?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"3px 11px",cursor:"pointer",color:s?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{s||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{s||(P.currentTarget.style.background="transparent")},children:[m.jsx(mi,{size:25,color:s?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color}),k.Indicators]}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderIndicatorModal()]}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0"},children:[m.jsx("button",{title:k.toolbarButtons.fullScreen,onClick:u,style:{background:"transparent",border:"none",borderRadius:"0",padding:"7px",cursor:"pointer",color:t.toolbar.button.color,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease",minHeight:"31px",minWidth:"31px"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx(fi,{size:17,color:t.toolbar.button.color})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),m.jsx("button",{title:k.toolbarButtons.screenshot,onClick:M,style:{background:"transparent",border:"none",borderRadius:"0",padding:"7px",cursor:"pointer",color:t.toolbar.button.color,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease",minHeight:"31px",minWidth:"31px"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx(Mi,{size:17,color:t.toolbar.button.color})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}})]}),m.jsx("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:m.jsx("button",{onClick:l,style:{background:"transparent",border:"none",borderRadius:"20px",padding:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:r?"flex-end":"flex-start",width:"44px",height:"24px",transition:"all 0.3s ease",position:"relative"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx("div",{style:{width:"16px",height:"16px",borderRadius:"50%",background:r?t.toolbar.button.active:t.toolbar.button.color,transition:"all 0.3s ease",display:"flex",alignItems:"center",justifyContent:"center"},children:r?m.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):m.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"5"}),m.jsx("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),m.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),m.jsx("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),m.jsx("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"4.22"}),m.jsx("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),m.jsx("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),m.jsx("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),m.jsx("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]})})})})]})}}class kl{constructor(t){this._image=null,this._isLoaded=!1,this._options={size:100,opacity:.3,offsetX:20,offsetY:20,borderColor:"rgba(128, 128, 128, 0.2)",borderWidth:2,borderRadius:50,...t},this._loadImage()}getMarkType(){throw new Error("Method not implemented.")}attached(t){this._chart=t.chart,this.requestUpdate()}updateAllViews(){}requestUpdate(){if(this._chart)try{this._chart.timeScale().applyOptions({})}catch{}}_loadImage(){this._image=new Image,this._image.crossOrigin="anonymous",this._options.src.startsWith("data:image")?this._image.src=this._options.src:this._image.src=this._options.src,this._image.onload=()=>{this._isLoaded=!0,this.requestUpdate()},this._image.onerror=t=>{console.error("Failed to load watermark image:",t),this._isLoaded=!1}}time(){return Date.now()}priceValue(){return 0}paneViews(){return this._renderer||(this._renderer={draw:t=>{if(!this._isLoaded||!this._image)return;const e=t.context??t._context;if(!e||!this._chart)return;const i=this._chart.chartElement()?.querySelector("canvas");if(!i)return;const r=i.width,a=i.height,s=this._options.size||100,n=this._options.offsetX||20,o=this._options.offsetY||20,h=this._options.borderRadius||50,l=r-s-n,g=a-s-o;e.save(),e.globalAlpha=this._options.opacity||.3,e.beginPath();const c=s/2*(h/50);e.arc(l+s/2,g+s/2,c,0,Math.PI*2),e.closePath(),e.clip(),e.drawImage(this._image,l,g,s,s),this._options.borderWidth&&this._options.borderWidth>0&&(e.beginPath(),e.arc(l+s/2,g+s/2,c,0,Math.PI*2),e.strokeStyle=this._options.borderColor||"rgba(128, 128, 128, 0.2)",e.lineWidth=this._options.borderWidth,e.stroke()),e.restore()}}),[{renderer:()=>this._renderer}]}updateImage(t){this._options.src=t,this._isLoaded=!1,this._loadImage(),this.requestUpdate()}updateOptions(t){this._options={...this._options,...t},t.src&&t.src!==this._options.src&&(this._isLoaded=!1,this._loadImage()),this.requestUpdate()}getOptions(){return{...this._options}}isImageLoaded(){return this._isLoaded}}class Pl{constructor(t){this.watermark=null,this.isVisible=!0,this.props=t}addWatermark(t){const{chartSeries:e}=this.props;return!e||this.watermark?Promise.resolve(!1):(this.watermark=new kl(t),e.series.attachPrimitive(this.watermark),this.isVisible=!0,new Promise(i=>{const r=()=>{this.watermark?.isImageLoaded()?i(!0):setTimeout(r,100)};setTimeout(r,100)}))}updateWatermarkImage(t){this.watermark&&this.watermark.updateImage(t)}updateWatermarkOptions(t){this.watermark&&this.watermark.updateOptions(t)}setVisible(t){const{chartSeries:e}=this.props;!e||!this.watermark||(t&&!this.isVisible?(e.series.attachPrimitive(this.watermark),this.isVisible=!0):!t&&this.isVisible&&(e.series.detachPrimitive(this.watermark),this.isVisible=!1))}toggleVisibility(){return this.setVisible(!this.isVisible),this.isVisible}removeWatermark(){const{chartSeries:t}=this.props;t&&this.watermark&&(t.series.detachPrimitive(this.watermark),this.watermark=null,this.isVisible=!1)}getWatermarkOptions(){return this.watermark?this.watermark.getOptions():null}isWatermarkVisible(){return this.isVisible}isImageLoaded(){return this.watermark?this.watermark.isImageLoaded():!1}updateProps(t){this.props={...this.props,...t}}destroy(){this.removeWatermark()}static async imageToBase64(t){return new Promise((e,i)=>{const r=new Image;r.crossOrigin="anonymous",r.onload=()=>{const a=document.createElement("canvas");a.width=r.width,a.height=r.height;const s=a.getContext("2d");if(!s){i(new Error("Could not get canvas context"));return}s.drawImage(r,0,0),e(a.toDataURL("image/png"))},r.onerror=()=>{i(new Error("Failed to load image"))},r.src=t})}}const Sl="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QrVaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJFeGVtcGkgKyBYTVAgQ29yZSA2LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOkFJR0M9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQUlHQy8xLjAvIiBBSUdDOkFJR0M9InsmcXVvdDtMYWJlbCZxdW90OzogJnF1b3Q7MiZxdW90OywgJnF1b3Q7Q29udGVudFByb2R1Y2VyJnF1b3Q7OiAmcXVvdDswMDExOTExMTAwMDA4MDIxMDA0MzNCMTAwMDUmcXVvdDssICZxdW90O1Byb2R1Y2VJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMSZxdW90OzogJnF1b3Q7JnF1b3Q7LCAmcXVvdDtDb250ZW50UHJvcGFnYXRvciZxdW90OzogJnF1b3Q7MDAxMTkxMTEwMDAwODAyMTAwNDMzQjEwMDA1JnF1b3Q7LCAmcXVvdDtQcm9wYWdhdGVJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMiZxdW90OzogJnF1b3Q7JnF1b3Q7fSIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgD6APoAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopaAEopaSgAooooAKWkooAKKKWgBKKKKACiiigAooooAKKWigBKMUUUAFFLSUAFFLSUAFFFFABRRRQAUUtJQAUUUUAFFFFABRRS0AJRRRQAUUUUAFFFFAC0lLRQAlFLSUALSUtFACUUd6KACiiigAooooAKKKKACiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiloASiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiigAopaKAEopaSgAopaKAEooooAKKKWgBKKKWgBKKKWgBKKKKACiiigApaKSgAopaKAEoopaAEopaSgBaSiigAooopgLSUUUgCiiigAooooAKKKWgBKWikoAKKKKACiiigAooooAWiiigApKWkoAKKKKACiiigAooooAKWkooAKKKWgApKWigBKKWkoAWkoopgLSUUUgCiiigAooopgLRSUUgClpKWgBKKKKACiiigApaSigBaSiigApaKKACkopaACkpaSgBaSiigAooooAKKWkoAKWiigBKKKKACiiloASilpKACilpKAClopKAClpKKAFpKKKYBS0lFIAooooAWkpaSmAUUUUgCiiigApaSigBaSiigAooooAKKWkpgFFFFIAoopaACkpaSgBaKSlpgJS0lFAC0lKaSkAUtJRQAtJS0lABS0UlAC0lLRQAlFLSUAFLRRTAKKKKAEooopAFFFFABRRRQAUUUUALRRSUAFLSUUAFFFFABRRRQAUUUUAFFFFAC0lLRQAlFFFABRRRQAtFJRQAUUUUAFFLSUALSUUUwClpKWkAlLRSUALRSUUAFFFFMAooopALRSUtACUUUtMApKWkpALSUUUwCloopAFFJS0wEooopAFFFLQAlFFFAC0UlLQAlFLSUALRSUUAFFFFABS0lFABS0lFABS0UlABRRRTAKKKKAFpKKKAFpKKKQBRRRQAUtJRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooAKWkopALRSUtACUUUUwCiiigBaKKKAEoopaQBRSUUAFLSUUAFFFFMAooooAKKKKQBRRS0AFFFFMBKKKKQBRRRQAUUUUALSUUUALRRSUAFFLSUAFFFLQAlFLRQAlFLRQAlFFFABRRRQAClpKKAClopKAFpKWkoAKKKKAClpKWgBKKKKYBRRRQAUUUUALRRRSASiiimAUUUUgFpKWkoAKWkooAKKKWgBKKWkpgLSUtFIAopKKYBS0UlIApaKKAEopaSgAopaSmAtFJS0gCkopaAEooooAKKKKYBRS0lAC0lLSUAFFLSUALSUtJSAKKKKYBS0lFIApaKSgAooooAKKKKAClpKWgBKWkopgFFFFAC0lFLSASiiimAUtFJSAWkoooAKKKWgBKWkpaACiiimIKSiigYUUUtIBKKKKYBRRRQAUUtFIApKKKAFopKWgAopKWmAlFFLSASiiigAooooAKKKKYBS0lFABRS0lIAopaKAEooooAKWkpaAEooopgFFFFAC0lLSUgFpKWigApKKWgBKKKKAFpKKKYBRRRQAUUUUAFFLSUAFLSUtIBKKWkoAWkoooAKKWkoAKKWkoAKKKKYBS0UUgCkoooAKKKWgBKKWkpgFFFFAC0lFLSAKSiimAtFJS0AFJS0UAJRS0UgCkpaKAEooopgFFFFABRRRQAUUUUgClpKWgAopKKAClopKAFoopKAFpKKKACiiloASiiloASiiigAooopgFFFLQAlFFFIBaSlpKAFpKKKAFoopKYC0UUUAJRRRQAUUUtIAopKWgBKKKWmAlFLSUgFpKKKACiilpgFFJS0AJRRRSAKKKKACiiigAooopgFFFFABRS0UAFJRRSAKKKKAFpKKWgBKKKKYBRRRQAUtJS0gCikpaAEooopgFFFFAC0lFFABRRRQAUUUUAFFFFABRRS0AFFJRSAWiikoAKKKKACiiigAoopaAEooooAKKWkoAWikpaAEoopaAEoopaAEopaSgAooopgLSUtFACUUUUALRSUtIBKKKKACiiigAooooAKKKKACiiimAUUUtIBKWikoAKWkooAWikooAKKKKAFpKKKAClpKWgAopKKAFpKKKYBR2opaAEooopAFFFLTASiiigBaSiikAtJRS0wEooopAFLRSUALSUUtACUtJS0AJRRRQAUtJS0wEpaSloAKSlpKACiiikAUUUUAFFFFABRRRQAUUUtMBKKKKAFpKKWkAlFLRQAUlFFMApaSlpAJRRRTAKKKKACiiigBaSlpKQC0UUlAC0UlLTASloooASiiigAopaKACiiigBKWiikAlFFFABRRRQAUUtJQAUtJRQAtJRRTAKWkopALSUUtMBKKKKAClpKKQC0lFFABRS0lAC0lFFMApaSigApaSigBaKKSgBaKSigAooooAKWikpAFLR2pKACloopgJS0lFAC0lFLSASlpKKAClpKWgBKKWkpgLRRRQAUlFFAC0lFFABRRRQAUUtFACUUUUAFFFFABS0lFABRRRQAUUUUgFpKWigApKWkpgFFFFABRRRQAUUUUgCloopgFJS0lABS0lLSASiiigAooooAKKKKAFopKKACiiigAoopaAEopaKAEopaKAEopaKACkpaSgAooopgFLSUtABSUtJQAtFFJQAtJS0lIApaKSgBaKSlpgFFFJQAtJRRQAtJS0lIAooopgFFFFABRRS0AFJRRQAUUUUAFFFFABRRRQAtJS0lABRRS0AFFJRSAKKKKYC0lFFAC0UlFABRS0lABS0lLQAlFLSUAFLSUUgCiiigBaSiigAopaSmAUUtGaQCUtJRQAUtJRQAUUUUAFLRSUALRSUtMBKKWkoAKKKKACiiigBaSlooASilooASlpKWkAlFFFMAooooAWkoopAFFFLTAKSlpKQC0lFLTASiiigApaSikAUtFFMAopKWgBKKKDSAKKKKACiiigAooooAKKKKACiiigAopaKACkoopgFFLRSASilopgJRRRQAUUUUgCiilpgJS0lFAC0lFFABRRRQAUUUUgClpKWgAooooAKKKSgAooopgFFFFABRRRQAUtFFAhKKKKBhS0lFABRRRQAtFJRQAUtFFACUtJS0AFFFFACUUUUAFFFFABRRRQAUUUUAFFFFABRS0lABRRRSAKKWkoAKKWkoAWkopaYCUtJRQAUtJRSAKKWkoAKWkooAKKKWgBKKKKYBRRRQAtJRRQAUtJS0gEpaKSmAtJS0lABRRRQAUUUUAFFFFABR1oopAFFLSUAFFFFABRRRQAUUUUwCiiikAtFJS0wCkpaSgApaSikAUUUUAFFFFABS0lFABS0lLQAlFLSUwCiilpAJRRRTAO1FLRSASlpKWmAlFLSUAFFFFABS0lLQAUlFFIBaSilpgFFFJ3oAKWkooAKKWkpALRSUUwFpKKKAFoopKACiiigAooooAKKKWgBKWkopAFLRSUwFpKWkoAKKKKAFpKKKACiiloASilooASilpKAFpKKKQBRRRTAKO9FFAC0UlFIAooopgFLSUtABRSUtIBKKWigAooooASilpKYBRRS0gEopaKYCUUUUALRSUUgFopKKAClpKKYBRRRQAtFJS0AJRS0lIBaKKKACkpaSgAooopgFFFFABRRRQAUUUUAFFFFIApaSimAUUtFACUUUUALSUUUALSUUUAFFFLSASiiigAooooADRRS0AFJRRTAWkpaSgAooooAWkoopAFFFFABS0lFABRRRTAKKKKAFpKKKACilpKQBRRS0wCkoooAKKKKAFpKKKQBRS0lAC0UlLTAKKSloASiiigAooooAKKKKQBRRRQAUUUtACUUUUALSUtFACUUtJQAUtJS0wCikooAWkopaQCUUUUAFFFLQAlFFLTAKSlooAKSlpKACilooASlpKWgBKWikpAFFLRTAKSiikAUtJRQAUUUUwFpKKKAClpKKQBQaKKACilpKACiiimAtJRRQAtFJRSAKKWimAUlFFABRRRQAtJRRSAKKKKYBRS0lABRRRSAKKKKAClpKKYC0lFFABS0lLQAlLRRQAlFFFIAooooAKKKKAClpKWgApKKKACiiloAKSlooASilopgJRRRQAUUUUAFLSUUAFFFFIAooopgFFFFABS0lFABRRRQAUUUUAFFFFABRRS0AJRS0UAJRRRQAUUUUAFFLRQAlFFFIAooooAKKKKACiiloAKSiigAooopgFFLRQAUlFFABRRRSAKKKKAClpKKAFopKWmAUUUlABS0lFAC0UUUAFFFFABRSUtABRRSUALSUtJQAUUUUAFFFFABRRRQAUUUUgCiiigAooopgFFFFABRRRQAUUUUAFLSUUAFFFFABRS0lAC0lLSUgA0UUUwCiiigApaKSkAd6KKKYC0UUUAJS0UUAJS0UUAFFFFACUUUtIBKKKKACiiigAooooAKWiimAUlLRSAKKKKACkopaAEoopaYBSUUUAFFFFABS0lFABRRRQAUUUUAFFFFABRRRQAUtJRSAKKWkpgFFLSUAFFFFAC0lLSUAFFFFAC0UlFAC0UlFIApaSimAUtJS0AJRRRQAUUUUAFFLSUgCiiigAopaSmAUUUUAFFFFABRS0lABS0lFIBaKSigBaSlpKYBS0lFABS0lFABRRRQAUtJRQAUUUUAFLSUUAFFFFAC0lFFABRRRSAKWkopgFFLSUAFFFFABRS0UgEopaSgApaKSgAooopgLSUUUAFLSUtACUtJS0AJRRRQAUUUUAFFFLQAUUlLQAlLSUtABRRRQAUlFFABRRS0gEooooAKKWkoAKKKKAFopKWmAlFFFAC0neilpAFFFFABRRSUAFFLRQAlFFLTASilpKAClpKWkAlFFFAC0lFFMAooooAWikpaAEooooAKKKWkAlLSUUAFFFLTASlpKKACilpKACilpKQBS0lFMAopaSgBaKKKAEopaSgAooooAKKWkpAFFFFABRRRTAKKKKACiiigBaSlopAJRRRQAUUUUAFFFFMAooooAKKKKACiiloASilpKACiiigAoopaAEooooAKWkpaQCUUtJQAUUtFACUUtJQAUUUUAFFFFABRS0UAJRS0lABRRRTAWiiigApKKKACilooASlpKWgBKKKKACiiigAooooAKKKKACiiikAUtJRQAUUUUAFLSUtACUUUUwFopKKACilpKACiiikAUUUtABRRRQAUUlLQAUUlFABRRRTAWkpaKAEopaSgAopaSgAooooAKKKWgBKKKKACiiigBaSlpKQC0lFLTASilpKQBS0lLQAUlLRQAlLSUUALSUUUwCiiigApaSigAooopALRSUUALSUtFACUUtFACUUUUwCilpKACilopAFFJS0AJRS0UAJRRS0AFJS0UAJRRRTAKWkooAWiikoAWkoooAKKKKACiiigAooooAKKKWgBKKWkpALSUUUAFLSUUwCiiikAUUtJQAtFFJQAtFFFMApKWigBKKKKACilopAJS0lLQAUUlFAC0UlFMAooooAKKKWgApKKKQBRRRQAUUUUAFFFFABRRRQAUUtJTAWkoopAFFFFMApaSikAUtFFABSUtJQAUUUUwCiiigBaKSigApaSigBaSiikAUUUtMAooopAJRRRTAKKKKACiiikAUUUUwCiiikAtJRRQAUUtJQAUUUUAFFFFMAooooAKKKKACiiikAUtFJQAUtJRQAUUUUAFFFFABRRRQAUUUUwClpKWkAlFFFABRRRQAUUUUAFFFFMAopaSgApaSigAooooAKKWkpALSUtJQAUUUUALSUUUALSUtJQAUUUUAFFFFAC0lFLQAlFLRQAlFFFAC0lFFMBaSlpKACiiikAUtJRQAUUUUwCiiigBaSiikAtFFFAC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0lFAC0UUUwCiiigAooooAKKKKAEpaSigAooooAKKKKAFpKKKACiiigAooooAKKKKACiiigAooopALSUtJQAUUUUALRRSUALRSUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAuaSiigAooooAKKKKACiiigBaKSigAooooAKKKKACjNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFLQAlFFLQAlFFFABRRRQAUUUUAFFFFABRRRQAUtJRQAUtJS0AJRRRTAWkpaSkAtJS0UAFFJRTAKWkpaACkoooAWikopAFLSUtACUtJS0wCiiigBKKKKACilooASlpKKQBRRRQAUUUUALRSUUALRRRTAKSiigBaKKSgBaKSloASiiigApaSloASiiigAopaSkAUUUtMBKKKKACiiigAooooAWkopaAEooooAKKWkoAWiikpAFLSUUAFLSUUABooopgFFFFIAooooAKWkooAKKKKYBRS0UgEpaSigAooopgFFFFAC0lFFIAooopgFFLSUAFLSUtIApKWkoAKWkpaAEoopaAEpaKSgAooooAKKKKAClpKKAClpKKYC0UlLSASiiigApaSloAKSiigAooooAKKWkoAKKKKACiiimAUUtJQAtJRRQAtJRRQAUtFFIBKWkooAKWikpgFFFFABS0lFIApaSimAtJRRQAUUUtABRSUUgCiiigAooooAKKKKAClpKKAFpKKKYBRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooFFABRS0lMAopaSgAooooAKWikpAFFFLQAlFFFMAooooAKKKKQBRRS0AJRRRTAKKKKAClpKKQBRRRQAUtJS0AJRRRQAUUUUAFFFFABRRRTAKKWkoAKKWkoAKKKKQBRRS0wEooopALSUUUAFFFFMAoopaQCUUtJQAtJS0lABRRRQAUUtJQAUUUUwCiiloASiiigAopaSkAUUUUwCiiigAooooAKWkopAFFFFMAooooAKKKKACiiikAUUUUALRSUUALSUUUwCilpKACiilpAJRRRTAKKKWgBKKWkpAFFLSUAFFFFABRRRQAUUUUAFLSUUAFLRRTAKSlpKACiiigAoopaQCUUUUwFpKKKAFpKKKACiiikAUtJS0AJS0UlMApaKKACkpaSkAUtJRQAUtJRTAWkoooAWikpaQBRSUUwCiiikAUUUUwCiiigAooooAKWkpaQCUUUUwCilpKACilpKACiiikAUtJS0AJRRRTAKKKKAFpKWkoAKWkpaQBSUtJQAUUtJTAKWko7UgCiiigAooooAKKKKACilooASiiimAUtFJQAUUUtIBKKKKACiiloASiiimAtFJRSAKKKKYBRRRQAUtFFACUUtJSAKKWkoAWkopaYCUtFFACUUUUALSUUUAFLSUUAFFFFABS0lFABRRRSAKKWigBKKKKACiiigAooooAKWkpaAEooopgFLSUUAFFFFIAooooAKKKKACiiimAUUUUALSUtJSAKWkpaAEooooAKWikoAWikooAKKKWgAopKKYC0lFFAC0UlFABRRRQAUUUUAFFFFABRRRSAKKKKYBRRRQAUtJRQAUtFFABSUUUAFFFFIApaSigAooopgFFFFABRRRQAUUUUgCiiigAooooAKKKWgBKWkooAKKKKACiiloASiiimAUUUUAFFFFAC0lFLSASlpKKACiiigAooopgFFLSUAFFFFABS0lLQAUlFFABRRRQAtJRRQAClopKAClpKKACiiigApaSloASlpKKACiiloASiilpAFFJS0AFJS0lABRRRQAUUUUAFFFFABS0lFABS0lFABRS0lABRRS0AHakoooAKKWkoAWikooAKKWkpgFFFFIBaKKKAEopaSmAtJS0lAC0UlFIBaKKKAEooopgFFFFABRRRQAtJRRQAUUtJQAUdaKWgBKWikoAKKKKAFpKKKACiiikAUUUUwCiiigAooooAKKWigBKKWkoAKWkooAWkoooAKKKKAFpKKKQBRRRQAYopaSgApaSigAopaSgBaSiloASiiimAUtJRQAUUUtACUUtJQAUUtFIBKKWigBKKKKYC0UlFABRRRQAUUUUgFpKKWgBKKKWgBKKKKYBS0lFABRRS0AJRRS0AJRS0lABS0UUAFFFJQAUtFJSAKKKWmAUUUUAJS0lFABRRRSAKKKKACiiigAooooAKKWkoAKWkpaYCUUtJQAUtJS0gCkopaYBRRSUAFLSUUAFLSUooAKKKSkAUtJRTAWikooAKKKKACilpKQBS0lFABS0lFABS0lLQAUlFFABS0lFMAooooAKWkooAKKKKAClpKKQBRRRQAUUtFMApKWkoAKKKKACiiloASiiigAooooAKKKKQC0UlFABS0lFABRR3oxQAUUUUAFFFFABRRS0AJS0UUAJRRRTAKKKWgBKWiigBKWkpaQCUtFJTAKKWigBKKWkoAKKKKQBRRRQAtJRRQAtJRRQAUUUUwCiiigAooopAFHelpKAFpKKKACilooASiiimAUUUUALSUtFIApKKKYC0UlFABRRRSAKKKKACiiigApaSigAopaKAE70UUUwCiiloASlpKKAClopKACilooASilooASilooAKSilpAJS0UUAJRRS0AFJS0lAC0lFFABRS0UAFJS0lABRRRQAUUtFACUUUUwFopKWkAlFFFABRS0lABRRRQAUtJRQAUtJRTAWkoopAFFFFABS0lGKYBRRRQAUUUUALRSUUgCiiigApaSigBaSiloASiiimAUUtJSAKWkooAWkpaKAEooopgFLRRQAUUlFABS0lFABRRRQAUtJRQAtJRS0AFFJRSAKKWkoAKKKWgBKKWkoAKKKKYBS0lFABRRRQAUUUtIBKKWigAooopgJRRRQAUUUUAFFFFIBaSiigApaKSgAooooAKKWigBKKKKACiiigAooooAWkoo70ALSUtFACUUUUAFFFFAC0lFFABRRRTAWikpaACkpaKQBRSUUALRSUtACUUUtACUtJS0AJRRRQAUUtJQAUUUUALRSUUAFLSUUwCilpKACiiikAUUUtACUUtJQAUUUUwFpKKO9ABRRS0AJRS0UgEooopgLSUUUgCiiimAUUUtABRSUtIBKKKKAFopKKAFpKKWgBKWkooAWiikoAWkpaKAEooooAKKKKYBRS0lABRRRQAUtFJQAUUUUALSUUUAFFFFAC0UlFIAooopgFFFFIAooopgLSUtJSAKWkooAWikooAKWkopgLRRRQAlFFFABRS0lABRRRQAUtFFIBKKKKACiiigApaSloASiiloAKKSloASlpKKACiiigAoopaAEooooAKWkooAKKKWgApKKKACiiigBaSiigAooooAKKKWgAoopKACjtRS0wEpaSikAUUtJQAUUUUAFFFFMAopaSgApaSigBaSiikAUUUUALRSUtACUUtJQAUUUUAFFFLQAUlFFABRRS0AJRRRTAKWkooAWikopAFFLRQAlLRSUAFFFFABRRS0AJRRRTAKWkopALRRRQAlLSUUALSUUtMBKKKKAClpKKACiiigAopaSgAooooAWkoooAKKKKACiiigBaKSlpAFJS0lABRRRQAUUUUALRRRQAUUUUAJRRS0AJRRRQAtJRRTAKKKKACiiigAooopAFFFFABS0lFABS0lFAC0UUlABRRRQAUUtJQAUUUtABSUtJQAUUtJQAUUtJTAKWkpaQCUUUUAFFFFABRRRQAUUtFACUUtJQAUUUUwCiilpAJRRRQAUUUtACUUUUAFLSUtMBKKKWgBKKWikAlFLSUAFFFFABS0lFAC0lLRTASlpKKQBRS0lABS0lFABRS0lABRS0UwEoopaAEpaSikAUUtJQAUUUUwCilooASiilpAFFJRQAtFFFACUUUtMApKKKQBRRRQAtJRRQAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKAFopKKQBRRRQAUUtJQAUtJRQAtJRRQAtFJRQAUUUUAFFFFMAooooAKWkooAKKKWkAlFFFABRRRQAUtFJTAKWkooAWkpaSkAtFJRQAtJRRQAtJRRQAtJS0lMApaKKACkpaSkAUtFJQAUUtJQAUUUUAFLSUUALSUUUAFFFFAC0lFFABRS0lAC0UlFABRRRQAUUUtMBKWkpaACkpaSgAopaSgAooooAKKKKAClpKKACiiigApaSigBaSiikAUUUUAFFFFMBaKSigAooooAKKWkoAKKKKAFpKWikAUUlFABRS0UwCiiigApKWkoAKKKWgBKKKKACiiigAooooAKKWkpAFFFLQAlFFFMAoopaACkoopALSUUUAFFFLQAUUUUwEoopaQBRRRQAUUlFAC0UlFAC0UUUAFJS0UAFFFFMBKKKKACiiikAUUUUAFFFFAC0lFFABS0UlABRS0UAJRRS0AJRRRQAtFJRQAUtJRQAUtJRTAWkoopAFLSUUALSUUUALSUUUAFFFFABRRRQAtJS0UAJS0lFAC0lFFAC0UlFABS0lLQAlFFFMBaKSigBaKSigAooopALSUtJQAUUtJTAKKKWkAlFFLTASlpKKACiiigAopaSgAooooAKKKKQBRRRQAUtJRQAUUUUALRSUtABSUUtACUUtJQAtFFFMAopKKACilopAFJRRTAKKKKACiiigBaSlopAJS0lFAC0lLRQAlFFFMAooopAFFFFABRS0AUAFGKdijFADaKdRQA2inUYoAZRT8UYoAZRT8UYoAZRT6KAGUU+jFADKKfijFADaSn4oxQAyilNJQAUUUUAFFFFAC0UlFABS0UUwCkpaSkAUUUUALSUUtACUUUUAFFLSUALRSUUALSUUtACUUUtABSUZpaAEooooAKWkpaYCUUUUALRSUUgFpKWkoAKKKWgBKWkpaAEopaSgApaKSgBaSiimAUUUUgFpKWkoAWiikoAKWiimAlLRRSASlpKWmAlFFLQAlLSUUgClpKWgBKKKWmAlFLSUAFLSUUAFFLSUgCiiloAKKSimAUUUUgFpKWkoAWkoopgFLSUtIBKWkooAWikooAKKWkoAKWikpgLRRSUgClpKKYBRS0lAC0lFFABRRRSAKKWigAoFJThQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpWpKACiiigAooooAWkoooAKWkpaYBRRSUALSUtJSAWkpaSmAtJRRQAtJRRSAKKWkoAWkoooAKKKKACiiigApaSloASiiigAopaSgAooooAWkoooAWikooAWkoooAKKKKACiiloASiilpgFJS0lIAooooAKKKBQAtJS0UAJS0lFABRRS0wEooooAKKKKQBRRRQAUtJRQAUtJRQAUUUUwClopKQBRR3ooAKKKKYC0lFFABRRS0gEpaKSgAoopaYCUUUtIBKKKKACiiloASiiimAUtJRQAtJRS0gCikooAKKWkoAKKWigBKKKKACnCm04UALS0UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpTSUAFFFFABRRRQAUCiigBaSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKWkooAKKKKAClpKKACiiigAooooAKWkooAWkoooAKKKKADNFFFABRRRQAUUUUAFFFFABRRRQAtHSkpaAF3UmaSigB2aTdSUUALmjNJRQA7NJmkooAXNGaSigBc0ZpKKAFzRmkooAXNGaSigBc0ZpKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=";class Gi extends E.Component{constructor(t){super(t),this.candleViewRef=E.createRef(),this.chartRef=E.createRef(),this.chartContainerRef=E.createRef(),this.chartLayerRef=E.createRef(),this.chart=null,this.resizeObserver=null,this.realTimeInterval=null,this.currentSeries=null,this.chartManager=null,this.updateTimeout=null,this.viewportManager=null,this.chartEventManager=null,this.aiPanelResizeRef=E.createRef(),this.isDragging=!1,this.startX=0,this.startChartWidth=0,this.startPanelWidth=0,this.containerWidth=0,this.terminalResizeRef=E.createRef(),this.isDraggingTerminal=!1,this.startY=0,this.startTerminalHeightRatio=0,this.containerHeight=0,this.preparedData=[],this.originalData=[],this.aiManager=null,this.handleTerminalResizeMouseDown=a=>{a.preventDefault(),this.isDraggingTerminal=!0,this.setState({isResizingTerminal:!0});const s=this.candleViewRef.current;s&&(this.startY=a.clientY,this.startTerminalHeightRatio=this.state.terminalHeightRatio,this.containerHeight=s.clientHeight),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},this.handleTerminalMouseMove=a=>{if(!this.isDraggingTerminal||!this.containerHeight)return;const s=a.clientY-this.startY,n=Math.max(.3,Math.min(.5,this.startTerminalHeightRatio-s/this.containerHeight));this.setState({terminalHeightRatio:n})},this.handleTerminalMouseUp=()=>{this.isDraggingTerminal&&(this.isDraggingTerminal=!1,this.setState({isResizingTerminal:!1}),document.body.style.cursor="",document.body.style.userSelect="")},this.handleResizeMouseDown=a=>{a.preventDefault(),this.isDragging=!0,this.setState({isResizingAiPanel:!0}),this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.dragging);const s=this.candleViewRef.current;s&&(this.containerWidth=s.clientWidth,this.startX=a.clientX,this.startChartWidth=this.state.aiPanelWidthRatio,this.startPanelWidth=1-this.state.aiPanelWidthRatio),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},this.handleMouseMove=a=>{if(!this.isDragging||!this.containerWidth)return;const s=a.clientX-this.startX;if(!this.state.ai)return;const n=Math.max(.3,Math.min(.9,this.startChartWidth+s/this.containerWidth));this.setState({aiPanelWidthRatio:n},()=>{if(this.chart){const o=this.chartContainerRef.current;if(o){const h=o.clientWidth,l=o.clientHeight;h>0&&l>0&&this.chart.applyOptions({width:h,height:l})}}})},this.handleMouseUp=()=>{this.isDragging&&(this.isDragging=!1,this.setState({isResizingAiPanel:!1}),this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.normal),document.body.style.cursor="",document.body.style.userSelect="")},this.loadDataAsync=a=>{this.setState({dataLoadProgress:0,isDataLoading:!0}),this.loadExternalData().then(()=>(this.setState({dataLoadProgress:30}),this.loadInternalData())).then(()=>{this.setState({dataLoadProgress:70}),this.setState({dataLoadProgress:100,isDataLoading:!1,loadError:null},()=>{a&&a()})}).catch(s=>{this.setState({isDataLoading:!1,loadError:s.message})})},this.loadExternalData=async()=>(this.clearOriginalData(),new Promise((a,s)=>{try{this.setState({dataLoadProgress:10});const n=this.props.data||[];this.originalData=n,this.setState({dataLoadProgress:30}),a()}catch(n){s(n)}})),this.loadInternalData=async()=>new Promise(a=>{this.setState({dataLoadProgress:40}),this.clearChart(()=>{const s=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.setState({dataLoadProgress:50}),setTimeout(()=>{this.preparedData=s,this.setState({dataLoadProgress:60}),this.setState({displayData:s,dataLoadProgress:70},()=>{a()})},50)})}),this.handleTimeFormatClick=()=>{this.setState({isTimeFormatModalOpen:!0})},this.handleCloseTimeClick=()=>{this.setState({isCloseTimeModalOpen:!0})},this.handleTradingDayClick=()=>{this.setState({isTradingDayModalOpen:!0})},this.handleTimezoneClick=()=>{this.setState({isTimezoneModalOpen:!0})},this.handleCloseModals=()=>{this.setState({isTimeframeModalOpen:!1,isIndicatorModalOpen:!1,isChartTypeModalOpen:!1,isSubChartModalOpen:!1,isTimezoneModalOpen:!1,isTimeFormatModalOpen:!1,isCloseTimeModalOpen:!1,isTradingDayModalOpen:!1,isMobileMenuOpen:!1})},this.handleTimezoneSelect=a=>{this.setState({currentTimezone:a,timezone:a,isTimezoneModalOpen:!1,isDataLoading:!0,dataLoadProgress:0},()=>{setTimeout(()=>{this.setState({dataLoadProgress:20}),this.loadInternalDataAsync(()=>{this.setState({dataLoadProgress:70}),this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),setTimeout(()=>{this.setState({isDataLoading:!1,dataLoadProgress:100})},50)})},50)})},this.handleTimeframeSelect=a=>{const s=a;this.setState({activeTimeframe:s,timeframe:s,isTimeframeModalOpen:!1,isDataLoading:!0,dataLoadProgress:0},()=>{setTimeout(()=>{this.setState({dataLoadProgress:10}),this.loadInternalDataAsync(()=>{this.setState({dataLoadProgress:60}),this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),setTimeout(()=>{this.setState({isDataLoading:!1,dataLoadProgress:100})},50)})},500)})},this.loadInternalDataAsync=a=>new Promise(s=>{this.state.isDataLoading||this.setState({isDataLoading:!0}),this.setState({dataLoadProgress:10}),setTimeout(()=>{setTimeout(()=>{this.setState({dataLoadProgress:30});const h=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.setState({dataLoadProgress:50}),setTimeout(()=>{this.preparedData=h,this.setState({displayData:h,dataLoadProgress:60},()=>{a&&a(),s()})},50)},0)},0)}),this.initChart=()=>{if(!(!this.state.displayData||this.state.displayData.length===0||!this.currentSeries||!this.currentSeries.series))try{this.state.isDataLoading&&this.setState({dataLoadProgress:80}),this.currentSeries.series.setData(this.state.displayData),this.state.isDataLoading&&setTimeout(()=>{this.setState({dataLoadProgress:90})},50)}catch{this.setState({isDataLoading:!1,dataLoadProgress:100})}},this.refreshChart=()=>{if(!(!this.state.displayData||this.state.displayData.length===0||!this.currentSeries||!this.currentSeries.series||!this.chart))try{const a=this.chart.timeScale(),s=a.getVisibleRange();this.state.isDataLoading&&this.setState({dataLoadProgress:85}),this.currentSeries.series.setData(this.state.displayData),s&&setTimeout(()=>{try{a.setVisibleRange(s),this.state.isDataLoading&&setTimeout(()=>{this.setState({dataLoadProgress:95})},50)}catch{this.state.isDataLoading&&this.setState({isDataLoading:!1,dataLoadProgress:100})}},10)}catch{this.state.isDataLoading&&this.setState({isDataLoading:!1,dataLoadProgress:100})}},this.handleExternalSelectedSubChartIndicator=a=>{this.setState(s=>{const n=s.selectedSubChartIndicators.includes(a);let o;return n?o=s.selectedSubChartIndicators.filter(h=>h!==a):o=[...s.selectedSubChartIndicators,a],{selectedSubChartIndicators:o}})},this.handleSelectedSubChartIndicator=a=>{this.setState({selectedSubChartIndicators:a,isSubChartModalOpen:!1})},this.handleRemoveSubChartIndicator=a=>{this.setState(s=>({selectedSubChartIndicators:s.selectedSubChartIndicators.filter(o=>o!==a)}))},this.handleCameraClick=()=>{const{handleScreenshotCapture:a}=this.props;a?Me(this,s=>{s.success&&s.dataUrl&&s.blob?a({dataUrl:s.dataUrl,blob:s.blob,width:s.width,height:s.height,timestamp:s.timestamp}):this.fallbackToDownload(s.dataUrl)}):Me(this)},this.fallbackToDownload=a=>{if(a){const s=document.createElement("a");s.download=`chart-screenshot-${new Date().getTime()}.png`,s.href=a,s.click()}else Me(this)},this.serializeDrawings=()=>this.chartLayerRef.current?this.chartLayerRef.current.serializeDrawings():"[]",this.handleSubChartClick=()=>{this.setState({isSubChartModalOpen:!this.state.isSubChartModalOpen})},this.deserializeDrawings=a=>{this.chartLayerRef.current&&this.chartLayerRef.current.deserializeDrawings(a)},this.clearAllDrawings=()=>{this.chartLayerRef.current&&this.chartLayerRef.current.clearAllDrawings()},this.viewportDataBufferSize=500,this.handleVisibleTimeRangeChange=a=>{if(!a)return;a.from>this.viewportDataBufferSize&&(a.from=a.from-this.viewportDataBufferSize);const s=this.viewportManager?.getViewportDataPoints(a,this.preparedData)||[];this.setState({displayData:s})},this.handleEmojiSelect=a=>{this.setState({selectedEmoji:a})},this.handleThemeToggle=()=>{this.setState(a=>{const s=!a.isDarkTheme,n=s?"dark":"light";return{isDarkTheme:s,currentTheme:this.getThemeConfig(n)}},()=>{this.updateChartTheme()})},this.handleMobileMenuToggle=()=>{this.setState(a=>({isMobileMenuOpen:!a.isMobileMenuOpen}))},this.handleClickOutside=a=>{const s=a.target,n=this.state.isMobileMenuOpen&&!s.closest(".mobile-menu-button")&&!s.closest("[data-mobile-menu-modal]"),o=this.state.isTimeFormatModalOpen&&!s.closest(".time-format-button")&&!s.closest("[data-timeformat-modal]"),h=this.state.isCloseTimeModalOpen&&!s.closest(".close-time-button")&&!s.closest("[data-close-time-modal]"),l=this.state.isTradingDayModalOpen&&!s.closest(".trading-day-button")&&!s.closest("[data-trading-day-modal]"),g=this.state.isTimezoneModalOpen&&!s.closest(".timezone-button")&&!s.closest("[data-timezone-modal]"),c=this.state.isTimeframeModalOpen&&!s.closest(".timeframe-button")&&!s.closest("[data-timeframe-modal]"),d=this.state.isIndicatorModalOpen&&!s.closest(".indicator-button")&&!s.closest("[data-indicator-modal]"),u=this.state.isTradeModalOpen&&!s.closest(".trade-button")&&!s.closest("[data-trade-modal]"),p=this.state.isChartTypeModalOpen&&!s.closest(".chart-type-button")&&!s.closest("[data-chart-type-modal]"),M=this.state.isSubChartModalOpen&&!s.closest(".subchart-button")&&!s.closest("[data-subchart-modal]");n&&this.setState({isMobileMenuOpen:!1}),M&&this.setState({isSubChartModalOpen:!1}),c&&this.setState({isTimeframeModalOpen:!1}),d&&this.setState({isIndicatorModalOpen:!1}),u&&this.setState({isTradeModalOpen:!1}),p&&this.setState({isChartTypeModalOpen:!1}),g&&this.setState({isTimezoneModalOpen:!1}),o&&this.setState({isTimeFormatModalOpen:!1}),h&&this.setState({isCloseTimeModalOpen:!1}),l&&this.setState({isTradingDayModalOpen:!1})},this.handleToolSelect=a=>{this.setState({activeTool:a})},this.handleChartTypeSelect=a=>{this.setState({currentMainChartType:a,isChartTypeModalOpen:!1})},this.handleCloseChartTypeModal=()=>{this.setState({isChartTypeModalOpen:!1})},this.handleCloseDrawing=()=>{this.setState({activeTool:null})},this.handleTimeframeClick=()=>{this.setState({isTimeframeModalOpen:!this.state.isTimeframeModalOpen})},this.handleChartTypeClick=()=>{this.setState({isChartTypeModalOpen:!this.state.isChartTypeModalOpen})},this.handleIndicatorClick=()=>{this.setState({isIndicatorModalOpen:!this.state.isIndicatorModalOpen})},this.handleTradeClick=()=>{this.setState({isTradeModalOpen:!this.state.isTradeModalOpen})},this.handleSelectedMainChartIndicator=a=>{this.setState({selectedMainChartIndicator:a,isIndicatorModalOpen:!1})},this.handleMainChartIndicatorChange=a=>{this.setState({selectedMainChartIndicator:a})},this.handleCloseIndicatorModal=()=>{this.setState({isIndicatorModalOpen:!1})},this.handleCloseTimeframeModal=()=>{this.setState({isTimeframeModalOpen:!1})},this.handleCloseTradeModal=()=>{this.setState({isTradeModalOpen:!1})},this.handleTradeAction=a=>{this.setState({isTradeModalOpen:!1})},this.handleFullscreen=()=>{const a=this.chartContainerRef.current;a&&(document.fullscreenElement?document.exitFullscreen?.():a.requestFullscreen?.())},this.handleCompareClick=()=>{},this.handleReplayClick=()=>{},this.stopRealTimeDataSimulation=()=>{this.realTimeInterval&&(clearInterval(this.realTimeInterval),this.realTimeInterval=null)},this.handleContextMenu=a=>{a.preventDefault(),a.stopPropagation()},this.handleLeftArrowClick=()=>{this.chart&&this.viewportManager&&this.viewportManager.scrollChart("left")},this.handleRightArrowClick=()=>{this.chart&&this.viewportManager&&this.viewportManager.scrollChart("right")},this.handleRefreshClick=()=>{this.setState({isDataLoading:!0,dataLoadProgress:0}),setTimeout(()=>{this.setState({dataLoadProgress:20}),this.refreshExternalData(()=>{this.setState({dataLoadProgress:50}),this.refreshInternalData(()=>{this.setState({dataLoadProgress:80}),this.refreshChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),this.setState({isDataLoading:!1,dataLoadProgress:100})})})},100)},this.handleZoomIn=()=>{this.viewportManager&&this.viewportManager.zoomIn()},this.handleZoomOut=()=>{this.viewportManager&&this.viewportManager.zoomOut()},this.handleAIFunctionSelect=a=>{const s=this.aiManager?.aiToolIdToFunctionType(a);if(s){this.setState({currentAIFunctionType:s},()=>{}),this.setState({openAiChat:this.aiManager?.isChartType(a)||!1},()=>{});const n=this.aiManager?.getAITypeFromFunctionType(s);n&&this.setState({currentAIBrandType:n},()=>{})}},this.handleTerminalCommand=a=>{this.setState({terminalCommand:a})},this.handleToggleTerminal=()=>{this.setState(a=>({terminal:!a.terminal}))},this.openTerminal=()=>{this.setState({terminal:!0})},this.closeTerminal=()=>{this.setState({terminal:!1})};const e=1,i=.3,r=Lo(t.timeframe)||v.FIFTEEN_MINUTES;this.state={isIndicatorModalOpen:!1,isTimeframeModalOpen:!1,isTradeModalOpen:!1,isChartTypeModalOpen:!1,isSubChartModalOpen:!1,isMobileMenuOpen:!1,activeTool:null,currentMainChartType:z.Candle,currentTheme:this.getThemeConfig(t.theme||"dark"),currentI18N:this.getI18nConfig(t.i18n||"zh-cn"),chartInitialized:!1,isDarkTheme:t.theme!=="light",selectedEmoji:"😀",selectedSubChartIndicators:[],selectedMainChartIndicator:null,subChartPanelHeight:200,isResizing:!1,showInfoLayer:!0,isTimezoneModalOpen:!1,currentTimezone:"Asia/Shanghai",isTimeFormatModalOpen:!1,isCloseTimeModalOpen:!1,isTradingDayModalOpen:!1,activeTimeframe:r,timeframe:r,timezone:Ko(t.timezone)||O.SHANGHAI,savedVisibleRange:null,virtualDataBeforeCount:500,virtualDataAfterCount:500,displayData:[],isDataLoading:!1,dataLoadProgress:0,loadError:null,toppanel:t.toppanel||!1,leftpanel:t.leftpanel||!1,ai:t.ai||!1,aiconfigs:t.aiconfigs||[],openAiChat:!1,currentAIFunctionType:null,currentAIBrandType:null,aiPanelWidthRatio:e,isResizingAiPanel:!1,terminalCommand:"",terminal:this.props.terminal||!1,terminalHeightRatio:i,isResizingTerminal:!1,markData:this.props.markData||[]},this.chartEventManager=new Ei,this.aiManager=new al}componentDidMount(){this.chart||(this.setState({isDataLoading:!0}),this.loadDataAsync(()=>{setTimeout(()=>{this.initializeChart()},50)}),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleTerminalMouseMove),document.addEventListener("mouseup",this.handleTerminalMouseUp))}componentDidUpdate(t,e){if(t.theme!==this.props.theme){const r=this.props.theme||"dark";this.setState({currentTheme:this.getThemeConfig(r)}),this.handleThemeToggle()}if(t.data!==this.props.data){this.isIncrementalDataUpdate(t.data,this.props.data)&&this.chart&&this.currentSeries&&this.props.data?(this.originalData=this.props.data,this.refreshInternalData(()=>{this.refreshChart()})):(this.clearStaticMarks(),this.setState({isDataLoading:!0,dataLoadProgress:0}),this.loadDataAsync(()=>{this.refreshChart()}));return}t.markData!==this.props.markData&&this.props.markData&&this.setState({markData:this.props.markData}),t.terminal!==this.props.terminal&&this.props.terminal&&this.setState({terminal:this.props.terminal}),e.openAiChat!==this.state.openAiChat&&this.setState({aiPanelWidthRatio:this.state.openAiChat?.7:1}),t.aiconfigs!==this.props.aiconfigs&&this.props.aiconfigs&&this.setState({aiconfigs:this.props.aiconfigs}),t.i18n!==this.props.i18n&&(this.setState({currentI18N:this.getI18nConfig(this.props.i18n||"en")}),this.updateChartI18n(this.props.i18n||"en"))}componentWillUnmount(){const t=this.viewportManager?.getVisibleTimeRange();if(t)try{localStorage.setItem("candleView_visibleRange",JSON.stringify(t))}catch{}this.updateTimeout&&clearTimeout(this.updateTimeout),this.resizeObserver&&this.chartContainerRef.current&&(this.resizeObserver.unobserve(this.chartContainerRef.current),this.resizeObserver.disconnect()),this.chart&&this.chart.remove(),this.realTimeInterval&&clearInterval(this.realTimeInterval),document.removeEventListener("mousedown",this.handleClickOutside,!0),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleTerminalMouseMove),document.removeEventListener("mouseup",this.handleTerminalMouseUp)}clearStaticMarks(){this.chartLayerRef&&this.chartLayerRef.current&&this.chartLayerRef.current.staticMarkManager&&this.chartLayerRef.current.staticMarkManager.clearAllMarks&&this.chartLayerRef.current.staticMarkManager.clearAllMarks()}isIncrementalDataUpdate(t,e){if(!t||!e||t.length===0||e.length===0)return!1;if(e.length>t.length){const i=Math.min(t.length,10);for(let r=0;r<i;r++){const a=typeof t[r].time=="string"?new Date(t[r].time).getTime():t[r].time,s=typeof e[r].time=="string"?new Date(e[r].time).getTime():e[r].time;if(a!==s)return!1}return!0}if(t.length===e.length){const i=t[t.length-1],r=e[e.length-1],a=typeof i.time=="string"?new Date(i.time).getTime():i.time,s=typeof r.time=="string"?new Date(r.time).getTime():r.time;if(a===s)return!0;const n=t[0],o=e[0],h=typeof n.time=="string"?new Date(n.time).getTime():n.time,l=typeof o.time=="string"?new Date(o.time).getTime():o.time;return h===l}return!1}clearOriginalData(){this.originalData=[]}clearChart(t){this.currentSeries&&this.currentSeries.series&&this.currentSeries.series.setData([]),this.preparedData=[],this.setState({displayData:[]},()=>{t?.()})}initializeChart(){if(!this.chartRef.current||!this.chartContainerRef.current)return;const t=this.chartContainerRef.current,{currentTheme:e,chartInitialized:i}=this.state,r=t.clientWidth,a=t.clientHeight;if(!(r===0||a===0)&&!i)try{this.setState({dataLoadProgress:75}),this.chart&&(this.chart.remove(),this.currentSeries=null),this.chartManager=new Fo(this.chartRef.current,r,a,e,this.props.i18n),this.chart=this.chartManager.getChart(),this.setState({dataLoadProgress:80}),this.viewportManager=new Yo(this.chart,this.currentSeries),this.chartEventManager?.registerVisibleTimeRangeChangeEvent(this.chart,n=>{this.handleVisibleTimeRangeChange(n)}),this.currentSeries=Pr(this.chart,e),new Pl({chartSeries:this.currentSeries,chart:this.chart}).addWatermark({src:Sl,size:40,opacity:2,offsetX:20,offsetY:45}),this.state.displayData&&this.state.displayData.length>0&&(this.setState({dataLoadProgress:85}),this.refreshInternalData(()=>{this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),this.setState({dataLoadProgress:90}),this.setupResizeObserver(),this.setState({chartInitialized:!0,dataLoadProgress:95}),setTimeout(()=>{this.setState({dataLoadProgress:100})},50)}))}catch{this.setState({chartInitialized:!1,dataLoadProgress:100})}}refreshExternalData(t){const e=this.props.data||[];this.originalData=e,t?.()}refreshInternalData(t){const e=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.preparedData=e,this.setState({displayData:e},()=>{t?.()})}setupResizeObserver(){this.chartContainerRef.current&&(this.resizeObserver=new kr(t=>{for(const e of t)if(e.target===this.chartContainerRef.current&&this.chart){const{width:i,height:r}=e.contentRect,a=Math.max(i,100),s=Math.max(r,100);requestAnimationFrame(()=>{try{if(this.chart){const n=this.chart.timeScale(),o=n.getVisibleRange();this.chart.applyOptions({width:a,height:s}),o&&setTimeout(()=>{try{n.setVisibleRange(o)}catch{}},10)}}catch{}})}}),this.resizeObserver.observe(this.chartContainerRef.current))}updateChartI18n(t){this.chart&&this.chart.applyOptions({localization:{locale:t}})}updateChartTheme(){const{currentTheme:t}=this.state;if(this.chart)try{this.chart.applyOptions({layout:t.layout,grid:{vertLines:{color:t.grid.vertLines.color+"30",style:1,visible:!0},horzLines:{color:t.grid.horzLines.color+"30",style:1,visible:!0}}}),this.chart.applyOptions({timeScale:{borderColor:t.grid.vertLines.color},rightPriceScale:{borderColor:t.grid.horzLines.color}})}catch{}this.currentSeries&&xr(this.currentSeries,t)}getThemeConfig(t){return t==="light"?qo:Vo}getI18nConfig(t){return t==="en"?Mt:Eo}render(){const{currentTheme:t,isDataLoading:e,ai:i,openAiChat:r,terminal:a,terminalHeightRatio:s}=this.state,{height:n=500,width:o="100%"}=this.props,h=a?1-s:1,l=a?s:0,g=i?this.state.aiPanelWidthRatio:1,c=i?1-this.state.aiPanelWidthRatio:0,d=`
|
|
268
|
+
`}),this.renderCursorTools(),this.renderLineTools(),this.renderTecGraphTools(),this.renderMarkTools(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.props.ai&&this.props.aiconfigs.length>0&&this.renderAITools(),this.renderTerminalButton(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.renderOtherTools(),m.jsx("div",{style:{height:"1px",background:this.props.currentTheme.toolbar.border,margin:"10px 0",flexShrink:0}}),this.renderTrash()]})})}),this.renderDrawingModal(),this.renderBrushModal(),this.renderCursorModal(),this.renderEmojiSelectPopUp(),this.renderFibonacciModal(),this.renderProjectInfoModal(),this.renderIrregularShapeModal(),this.renderTextToolModal(),this.props.ai&&this.props.aiconfigs.length>0&&this.renderAIToolsModal()]})}}class Ft extends E.Component{constructor(t){super(t),this.toggleOpen=()=>{this.setState(e=>({isOpen:!e.isOpen}))},this.state={isOpen:t.defaultOpen||!1}}render(){const{title:t,tools:e,currentTheme:i,activeTool:r,onToolSelect:a}=this.props,{isOpen:s}=this.state;return m.jsxs("div",{style:{borderBottom:`1px solid ${i.toolbar.border}`},children:[m.jsxs("button",{onClick:this.toggleOpen,style:{width:"100%",background:"transparent",border:"none",padding:"12px 12px",color:i.layout.textColor,cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"13px",fontWeight:"600",transition:"background-color 0.2s"},onMouseEnter:n=>{n.currentTarget.style.background=i.toolbar.button.hover},onMouseLeave:n=>{n.currentTarget.style.background="transparent"},children:[m.jsx("span",{children:t}),m.jsx("span",{style:{transform:s?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s",fontSize:"12px"},children:"▼"})]}),s&&m.jsx("div",{style:{padding:"0px",background:i.toolbar.background},children:m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0px"},children:e.map(n=>{const o=n.icon,h=r===n.id;return m.jsxs("button",{onClick:()=>a(n.id),style:{background:h?i.toolbar.button.active:"transparent",border:h?`2px solid ${i.toolbar.button.active}`:"2px solid transparent",padding:"10px 10px",borderRadius:"0px",color:h?i.toolbar.button.activeTextColor||"#FFFFFF":i.layout.textColor,textAlign:"left",cursor:"pointer",fontSize:"12px",fontWeight:"500",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"0px",width:"100%"},onMouseEnter:l=>{h||(l.currentTarget.style.background=i.toolbar.button.hover)},onMouseLeave:l=>{h||(l.currentTarget.style.background="transparent")},children:[m.jsx(o,{size:24,color:h?i.toolbar.button.activeTextColor||i.layout.textColor:i.toolbar.button.color}),m.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-start",flex:1,paddingLeft:"5px"},children:[m.jsx("div",{style:{fontWeight:"600",fontSize:"12px",lineHeight:"1.2"},children:n.name}),m.jsx("div",{style:{fontSize:"10px",opacity:.7,lineHeight:"1.2",marginTop:"2px",textAlign:"left"},children:n.description})]})]},n.id)})})})]})}}const zi=f=>[{id:"ma",name:f.mainIndicators.ma,type:F.MA},{id:"ema",name:f.mainIndicators.ema,type:F.EMA},{id:"bollinger",name:f.mainIndicators.bollinger,type:F.BOLLINGER},{id:"ichimoku",name:f.mainIndicators.ichimoku,type:F.ICHIMOKU},{id:"donchian",name:f.mainIndicators.donchian,type:F.DONCHIAN},{id:"envelope",name:f.mainIndicators.envelope,type:F.ENVELOPE},{id:"vwap",name:f.mainIndicators.vwap,type:F.VWAP}],Qi=f=>[{id:"heatmap",name:f.mainChartMaps.heatmap,type:F.HEATMAP},{id:"market-profile",name:f.mainChartMaps.marketProfile,type:F.MARKETPROFILE}],gl=f=>[{id:"rsi",name:f.subChartIndicatorName.rsi,type:N.RSI},{id:"macd",name:f.subChartIndicatorName.macd,type:N.MACD},{id:"volume",name:f.subChartIndicatorName.volume,type:N.VOLUME},{id:"sar",name:f.subChartIndicatorName.sar,type:N.SAR},{id:"kdj",name:f.subChartIndicatorName.kdj,type:N.KDJ},{id:"atr",name:f.subChartIndicatorName.atr,type:N.ATR},{id:"stochastic",name:f.subChartIndicatorName.stochastic,type:N.STOCHASTIC},{id:"cci",name:f.subChartIndicatorName.cci,type:N.CCI},{id:"bbwidth",name:f.subChartIndicatorName.bbwidth,type:N.BBWIDTH},{id:"adx",name:f.subChartIndicatorName.adx,type:N.ADX},{id:"obv",name:f.subChartIndicatorName.obv,type:N.OBV}];function pl(f){return[{type:f.timeframeSections.second,sectionKey:"Second",values:[v.ONE_SECOND,v.FIVE_SECONDS,v.FIFTEEN_SECONDS,v.THIRTY_SECONDS]},{type:f.timeframeSections.minute,sectionKey:"Minute",values:[v.ONE_MINUTE,v.THREE_MINUTES,v.FIVE_MINUTES,v.FIFTEEN_MINUTES,v.THIRTY_MINUTES,v.FORTY_FIVE_MINUTES]},{type:f.timeframeSections.hour,sectionKey:"Hour",values:[v.ONE_HOUR,v.TWO_HOURS,v.THREE_HOURS,v.FOUR_HOURS,v.SIX_HOURS,v.EIGHT_HOURS,v.TWELVE_HOURS]},{type:f.timeframeSections.day,sectionKey:"Day",values:[v.ONE_DAY,v.THREE_DAYS]},{type:f.timeframeSections.week,sectionKey:"Week",values:[v.ONE_WEEK,v.TWO_WEEKS]},{type:f.timeframeSections.month,sectionKey:"Month",values:[v.ONE_MONTH,v.THREE_MONTHS,v.SIX_MONTHS]}]}function fl(f,t){const{i18n:e}=f.props,i=zi(e),r=Qi(e);var a=i.find(n=>n.id===t);a||(a=r.find(n=>n.id===t));let s;switch(a?.type){case F.MA:s={...Ii,nonce:Date.now()};break;case F.EMA:s={...Li,nonce:Date.now()};break;case F.BOLLINGER:s={...Ki,nonce:Date.now()};break;case F.ICHIMOKU:s={...Hi,nonce:Date.now()};break;case F.DONCHIAN:s={...Oi,nonce:Date.now()};break;case F.ENVELOPE:s={...ji,nonce:Date.now()};break;case F.VWAP:s={...Ni,nonce:Date.now()};break;case F.HEATMAP:s={...Wi,nonce:Date.now()};break;case F.MARKETPROFILE:s={...Xi,nonce:Date.now()};break;default:s=null;break}s&&(f.setState({selectedMainIndicator:s}),f.props.handleSelectedMainChartIndicator(s))}function Ml(f,t){f.setState(e=>{const i=e.selectedSubChartIndicators.includes(t);let r;return i?r=e.selectedSubChartIndicators.filter(a=>a!==t):r=[...e.selectedSubChartIndicators,t],f.props.handleSelectedSubChartIndicator&&f.props.handleSelectedSubChartIndicator(r),{selectedSubChartIndicators:r}})}class ml extends E.Component{constructor(){super(...arguments),this.timeframeModalRef=E.createRef(),this.chartTypeModalRef=E.createRef(),this.indicatorModalRef=E.createRef(),this.timezoneModalRef=E.createRef(),this.mobileMenuModalRef=E.createRef(),this.state={mainIndicatorsSearch:"",subChartIndicatorsSearch:"",chartTypeSearch:"",selectedMainIndicator:null,selectedSubChartIndicators:[],timeframeSections:{Second:!0,Minute:!0,Hour:!0,Day:!0,Week:!0,Month:!0},timezoneSearch:"",indicatorSections:{technicalIndicators:!0,chart:!0,subChartIndicators:!0},windowWidth:typeof window<"u"?window.innerWidth:1024},this.handleResize=()=>{this.setState({windowWidth:window.innerWidth})},this.isMobileView=()=>this.state.windowWidth<=500,this.toggleMobileMenu=()=>{this.props.onMobileMenuToggle()},this.closeMobileMenu=()=>{this.props.isMobileMenuOpen&&this.props.onMobileMenuToggle()},this.handleTimeframeSelect=t=>{this.props.onTimeframeSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleChartTypeSelect=t=>{this.props.onChartTypeSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleTimezoneSelect=t=>{this.props.onTimezoneSelect(t),this.props.onCloseModals&&this.props.onCloseModals(),this.closeMobileMenu()},this.handleMainIndicatorsSearch=t=>{this.setState({mainIndicatorsSearch:t.target.value})},this.handleTimezoneSearch=t=>{this.setState({timezoneSearch:t.target.value})},this.filteredMaps=()=>{const{mainIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=Qi(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.filteredMainIndicators=()=>{const{mainIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=zi(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.filteredSubChartIndicators=()=>{const{subChartIndicatorsSearch:t}=this.state,{i18n:e}=this.props,i=gl(e);return t?i.filter(r=>r.name.toLowerCase().includes(t.toLowerCase())):i},this.toggleTimeframeSection=t=>{this.setState(e=>({timeframeSections:{...e.timeframeSections,[t]:!e.timeframeSections[t]}}))},this.toggleIndicatorSection=t=>{this.setState(e=>({indicatorSections:{...e.indicatorSections,[t]:!e.indicatorSections[t]}}))},this.getChartTypeLabel=t=>{const{i18n:e}=this.props;switch(t){case z.Candle:return e.chartTypes.candle;case z.HollowCandle:return e.chartTypes.hollowCandle;case z.Bar:return e.chartTypes.bar;case z.BaseLine:return e.chartTypes.baseline;case z.Line:return e.chartTypes.line;case z.Area:return e.chartTypes.area;case z.StepLine:return e.chartTypes.stepLine;case z.HeikinAshi:return e.chartTypes.heikinAshi;case z.Histogram:return e.chartTypes.histogram;case z.LineBreak:return e.chartTypes.linebreak;case z.Mountain:return e.chartTypes.mountain;case z.BaselineArea:return e.chartTypes.baselinearea;case z.HighLow:return e.chartTypes.highlow;case z.HLCArea:return e.chartTypes.hlcarea;default:return""}},this.handleMenuItemClick=t=>{this.props.onCloseModals&&this.props.onCloseModals(),t&&t()},this.handleChartTypeSearch=t=>{this.setState({chartTypeSearch:t.target.value})},this.renderChartTypeModal=()=>{const{isChartTypeModalOpen:t,currentTheme:e,activeMainChartType:i,i18n:r}=this.props,{chartTypeSearch:a}=this.state;if(!t)return null;const s=a?Se.filter(n=>this.getChartTypeLabel(n.type).toLowerCase().includes(a.toLowerCase())):Se;return m.jsxs("div",{ref:this.chartTypeModalRef,"data-chart-type-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:this.isMobileView()?"0px":"0",zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"200px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:r.searchChartTypes,value:a,onChange:this.handleChartTypeSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:n=>{n.target.style.borderColor=e.toolbar.button.active},onBlur:n=>{n.target.style.borderColor=e.toolbar.border}}),a&&m.jsx("button",{onClick:()=>this.setState({chartTypeSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:n=>{n.currentTarget.style.background=e.toolbar.button.hover,n.currentTarget.style.opacity="1"},onMouseLeave:n=>{n.currentTarget.style.background="transparent",n.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"352px"},className:"modal-scrollbar",children:s.map(n=>{const o=i===n.type;return m.jsxs("button",{onClick:()=>this.handleChartTypeSelect(n.type),style:{background:o?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"6px 8px",cursor:"pointer",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",gap:"12px",minHeight:"32px",width:"100%"},onMouseEnter:h=>{o||(h.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:h=>{o||(h.currentTarget.style.background="transparent")},children:[m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"20px",height:"20px",flexShrink:0},children:fe(n.type,{size:30})}),m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,flex:1,textAlign:"left"},children:this.getChartTypeLabel(n.type)})]},n.type)})})]})},this.renderIndicatorModal=()=>{const{isIndicatorModalOpen:t,currentTheme:e,i18n:i}=this.props,{mainIndicatorsSearch:r,indicatorSections:a}=this.state,s=this.filteredMainIndicators(),n=this.filteredMaps(),o=this.filteredSubChartIndicators();if(!t)return null;const h=[{type:i.mainChartIndicators||"技术指标",sectionKey:"technicalIndicators",values:s},{type:i.subChartIndicators||"副图指标",sectionKey:"subChartIndicators",values:o},{type:i.chartMaps||"图",sectionKey:"chart",values:n}];return m.jsxs("div",{ref:this.indicatorModalRef,"data-indicator-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:this.isMobileView()?"0px":"0",zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"280px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:i.searchIndicators,value:r,onChange:this.handleMainIndicatorsSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:l=>{l.target.style.borderColor=e.toolbar.button.active},onBlur:l=>{l.target.style.borderColor=e.toolbar.border}}),r&&m.jsx("button",{onClick:()=>this.setState({mainIndicatorsSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:l=>{l.currentTarget.style.background=e.toolbar.button.hover,l.currentTarget.style.opacity="1"},onMouseLeave:l=>{l.currentTarget.style.background="transparent",l.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"352px"},className:"modal-scrollbar",children:h.map(l=>{const g=a[l.sectionKey],c=l.sectionKey==="subChartIndicators";return m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>this.toggleIndicatorSection(l.sectionKey),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 10px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"32px"},onMouseEnter:d=>{d.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:d=>{d.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"12px",fontWeight:"600",opacity:.8,textTransform:"uppercase"},children:l.type}),m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",transition:"transform 0.2s ease",transform:g?"rotate(180deg)":"rotate(0deg)"},children:m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),g&&m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:l.values.map(d=>{const u=c?this.state.selectedSubChartIndicators.includes(d.type):!1;return m.jsxs("button",{onClick:()=>{c?Ml(this,d.type):fl(this,d.id)},style:{background:"transparent",border:"none",padding:"6px 8px",borderRadius:"0px",cursor:"pointer",display:"flex",alignItems:"center",transition:"all 0.2s ease",minHeight:"32px",width:"100%",textAlign:"left"},onMouseEnter:p=>{p.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:p=>{p.currentTarget.style.background="transparent"},children:[c?m.jsx(E.Fragment,{children:m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",border:`2px solid ${u?e.toolbar.button.active:e.toolbar.border}`,borderRadius:"3px",marginRight:"10px",background:u?e.toolbar.button.active:"transparent",transition:"all 0.2s ease",flexShrink:0,position:"relative"},children:u&&m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"#ffffff",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"},children:m.jsx("polyline",{points:"20 6 9 17 4 12"})})})}):null,m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:e.layout.textColor,textAlign:"left",flex:1,lineHeight:"1.4"},children:d.name})]},d.id)})})]},l.type)})})]})}}componentDidMount(){typeof window<"u"&&window.addEventListener("resize",this.handleResize)}componentWillUnmount(){typeof window<"u"&&window.removeEventListener("resize",this.handleResize)}componentDidUpdate(t){t.selectedSubChartIndicators!==this.props.selectedSubChartIndicators&&this.setState({selectedSubChartIndicators:this.props.selectedSubChartIndicators||[]})}getCurrentTimezoneDisplayName(){const{i18n:t}=this.props,e={[O.NEW_YORK]:t.options.newYork.split(" ")[0],[O.CHICAGO]:t.options.chicago.split(" ")[0],[O.DENVER]:t.options.denver.split(" ")[0],[O.LOS_ANGELES]:t.options.losAngeles.split(" ")[0],[O.TORONTO]:t.options.toronto.split(" ")[0],[O.LONDON]:t.options.london.split(" ")[0],[O.PARIS]:t.options.paris.split(" ")[0],[O.FRANKFURT]:t.options.frankfurt.split(" ")[0],[O.ZURICH]:t.options.zurich.split(" ")[0],[O.MOSCOW]:t.options.moscow.split(" ")[0],[O.DUBAI]:t.options.dubai.split(" ")[0],[O.KARACHI]:t.options.karachi.split(" ")[0],[O.KOLKATA]:t.options.kolkata.split(" ")[0],[O.SHANGHAI]:t.options.shanghai.split(" ")[0],[O.HONG_KONG]:t.options.hongKong.split(" ")[0],[O.SINGAPORE]:t.options.singapore.split(" ")[0],[O.TOKYO]:t.options.tokyo.split(" ")[0],[O.SEOUL]:t.options.seoul.split(" ")[0],[O.SYDNEY]:t.options.sydney.split(" ")[0],[O.AUCKLAND]:t.options.auckland.split(" ")[0],[O.UTC]:"UTC"},i=this.props.timezone||this.props.currentTimezone;return e[i]||i.split("/").pop()||i}renderMobileMenuModal(){const{isMobileMenuOpen:t}=this.props,{currentTheme:e,i18n:i,activeTimeframe:r,activeMainChartType:a}=this.props;return t?m.jsx("div",{ref:this.mobileMenuModalRef,"data-mobile-menu-modal":"true",style:{position:"absolute",top:"43px",left:"0px",zIndex:1001,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 0",minWidth:"200px",maxHeight:"400px",overflowY:"auto",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)"},className:"modal-scrollbar",children:m.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:[m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onTimeframeClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.timeframe||"Timeframe"}),m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:r})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onTimezoneClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.timezone||"Timezone"}),m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.getCurrentTimezoneDisplayName()})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onChartTypeClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.chartType||"Chart Type"}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.getChartTypeLabel(a)}),fe(a,{size:16})]})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onIndicatorClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.Indicators}),m.jsx(mi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onFullscreenClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.toolbarButtons.fullScreen}),m.jsx(fi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onCameraClick),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.toolbarButtons.screenshot}),m.jsx(Mi,{size:16,color:e.toolbar.button.color})]}),m.jsxs("button",{onClick:()=>this.handleMenuItemClick(this.props.onThemeToggle),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 16px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"40px"},onMouseEnter:s=>{s.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:s=>{s.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"14px",fontWeight:"500"},children:i.theme}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[m.jsx("div",{style:{fontSize:"13px",opacity:.7},children:this.props.isDarkTheme?i.dark:i.light}),m.jsx("div",{style:{width:"32px",height:"18px",borderRadius:"9px",background:this.props.isDarkTheme?e.toolbar.button.active:e.toolbar.border,position:"relative",display:"flex",alignItems:"center",padding:"2px"},children:m.jsx("div",{style:{width:"14px",height:"14px",borderRadius:"50%",background:e.layout.textColor,transform:this.props.isDarkTheme?"translateX(14px)":"translateX(0)",transition:"transform 0.3s ease"}})})]})]})]})}):null}renderTimeframeModal(){const{isTimeframeModalOpen:t,currentTheme:e,activeTimeframe:i}=this.props,{timeframeSections:r}=this.state;if(!t)return null;const a=pl(this.props.i18n);return m.jsx("div",{ref:this.timeframeModalRef,"data-timeframe-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:(this.isMobileView(),"0px"),zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"180px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflowY:"auto",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)"},className:"modal-scrollbar",children:m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:a.map(s=>{const n=r[s.sectionKey];return m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>this.toggleTimeframeSection(s.sectionKey),style:{background:"transparent",border:"none",borderRadius:"0px",padding:"12px 10px",cursor:"pointer",color:e.layout.textColor,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",minHeight:"32px"},onMouseEnter:o=>{o.currentTarget.style.background=e.toolbar.button.hover},onMouseLeave:o=>{o.currentTarget.style.background="transparent"},children:[m.jsx("div",{style:{fontSize:"12px",fontWeight:"600",opacity:.8,textTransform:"uppercase"},children:s.type}),m.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",transition:"transform 0.2s ease",transform:n?"rotate(180deg)":"rotate(0deg)"},children:m.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),n&&m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px"},children:s.values.map(o=>{const h=i===o;return m.jsx("button",{onClick:()=>this.handleTimeframeSelect(o),style:{background:h?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"6px 15px",cursor:"pointer",color:h?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",alignItems:"center",minHeight:"32px",width:"100%"},onMouseEnter:l=>{h||(l.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:l=>{h||(l.currentTarget.style.background="transparent")},children:m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:h?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,flex:1,textAlign:"left"},children:Ho(o,this.props.i18n)})},o)})})]},s.type)})})})}renderTimezoneModal(){const{isTimezoneModalOpen:t,currentTheme:e,i18n:i}=this.props,{timezoneSearch:r}=this.state;if(!t)return null;const a=[{id:O.NEW_YORK,name:i.options.newYork,offset:"-05:00/-04:00"},{id:O.CHICAGO,name:i.options.chicago,offset:"-06:00/-05:00"},{id:O.DENVER,name:i.options.denver,offset:"-07:00/-06:00"},{id:O.LOS_ANGELES,name:i.options.losAngeles,offset:"-08:00/-07:00"},{id:O.TORONTO,name:i.options.toronto,offset:"-05:00/-04:00"},{id:O.LONDON,name:i.options.london,offset:"+00:00/+01:00"},{id:O.PARIS,name:i.options.paris,offset:"+01:00/+02:00"},{id:O.FRANKFURT,name:i.options.frankfurt,offset:"+01:00/+02:00"},{id:O.ZURICH,name:i.options.zurich,offset:"+01:00/+02:00"},{id:O.MOSCOW,name:i.options.moscow,offset:"+03:00"},{id:O.DUBAI,name:i.options.dubai,offset:"+04:00"},{id:O.KARACHI,name:i.options.karachi,offset:"+05:00"},{id:O.KOLKATA,name:i.options.kolkata,offset:"+05:30"},{id:O.SHANGHAI,name:i.options.shanghai,offset:"+08:00"},{id:O.HONG_KONG,name:i.options.hongKong,offset:"+08:00"},{id:O.SINGAPORE,name:i.options.singapore,offset:"+08:00"},{id:O.TOKYO,name:i.options.tokyo,offset:"+09:00"},{id:O.SEOUL,name:i.options.seoul,offset:"+09:00"},{id:O.SYDNEY,name:i.options.sydney,offset:"+10:00/+11:00"},{id:O.AUCKLAND,name:i.options.auckland,offset:"+12:00/+13:00"},{id:O.UTC,name:i.options.utc,offset:"+00:00"}],s=r?a.filter(n=>n.name.toLowerCase().includes(r.toLowerCase())||n.id.toLowerCase().includes(r.toLowerCase())):a;return m.jsxs("div",{ref:this.timezoneModalRef,"data-timezone-modal":"true",style:{position:"absolute",top:(this.isMobileView(),"43px"),left:(this.isMobileView(),"0px"),zIndex:1e3,background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"0",minWidth:this.isMobileView()?"calc(100vw - 20px)":"300px",maxWidth:this.isMobileView()?"calc(100vw - 20px)":"none",maxHeight:"400px",overflow:"hidden",boxShadow:"0 8px 24px rgba(0, 0, 0, 0.3)",display:"flex",flexDirection:"column"},children:[m.jsx("div",{style:{padding:"8px",borderBottom:`1px solid ${e.toolbar.border}`,flexShrink:0},children:m.jsxs("div",{style:{position:"relative",width:"100%"},children:[m.jsx("input",{type:"text",placeholder:i.searchTimezones,value:r,onChange:this.handleTimezoneSearch,style:{width:"100%",background:e.toolbar.background,border:`1px solid ${e.toolbar.border}`,borderRadius:"0px",padding:"8px 32px 8px 12px",color:e.layout.textColor,fontSize:"13px",outline:"none",boxSizing:"border-box"},onFocus:n=>{n.target.style.borderColor=e.toolbar.button.active},onBlur:n=>{n.target.style.borderColor=e.toolbar.border}}),r&&m.jsx("button",{onClick:()=>this.setState({timezoneSearch:""}),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"transparent",border:"none",borderRadius:"50%",width:"18px",height:"18px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:e.toolbar.button.color,opacity:.6,transition:"all 0.2s ease",fontSize:"12px",padding:0},onMouseEnter:n=>{n.currentTarget.style.background=e.toolbar.button.hover,n.currentTarget.style.opacity="1"},onMouseLeave:n=>{n.currentTarget.style.background="transparent",n.currentTarget.style.opacity="0.6"},children:m.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:[m.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),m.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})}),m.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"2px",overflowY:"auto",flex:1,padding:"8px",maxHeight:"300px"},className:"modal-scrollbar",children:s.map(n=>{const o=this.props.currentTimezone===n.id;return m.jsxs("button",{onClick:()=>this.handleTimezoneSelect(n.id),style:{background:o?e.toolbar.button.active:"transparent",border:"none",borderRadius:"0px",padding:"8px 12px",cursor:"pointer",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,textAlign:"left",transition:"all 0.2s ease",display:"flex",flexDirection:"column",gap:"2px",minHeight:"48px",width:"100%"},onMouseEnter:h=>{o||(h.currentTarget.style.background=e.toolbar.button.hover)},onMouseLeave:h=>{o||(h.currentTarget.style.background="transparent")},children:[m.jsx("div",{style:{fontSize:"13px",fontWeight:"500",color:o&&e.toolbar.button.activeTextColor||e.layout.textColor,textAlign:"left"},children:n.name}),m.jsxs("div",{style:{fontSize:"11px",fontWeight:"400",color:o?e.toolbar.button.activeTextColor||e.layout.textColor:e.toolbar.button.color,opacity:.7,textAlign:"left"},children:[n.id," • UTC",n.offset]})]},n.id)})})]})}render(){const{currentTheme:t,activeTimeframe:e,activeMainChartType:i,isDarkTheme:r,isTimeframeModalOpen:a,isIndicatorModalOpen:s,isChartTypeModalOpen:n,isTimezoneModalOpen:o,isMobileMenuOpen:h,onThemeToggle:l,onTimeframeClick:g,onIndicatorClick:c,onChartTypeClick:d,onFullscreenClick:u,onTimezoneClick:p,onCameraClick:M,i18n:k}=this.props;return this.isMobileView()?m.jsxs("div",{style:{background:t.panel.backgroundColor,borderBottom:`1px solid ${t.panel.borderColor}`,padding:"9px 13px",display:"flex",alignItems:"center",justifyContent:"space-between",height:"43px",boxSizing:"border-box",gap:"0",position:"relative"},children:[m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:this.toggleMobileMenu,className:"mobile-menu-button",style:{background:h?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:h?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{h||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{h||(P.currentTarget.style.background="transparent")},children:m.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),m.jsx("line",{x1:"3",y1:"12",x2:"21",y2:"12"}),m.jsx("line",{x1:"3",y1:"18",x2:"21",y2:"18"})]})}),this.renderMobileMenuModal()]}),m.jsx("div",{style:{fontSize:"14px",fontWeight:"600",color:t.layout.textColor},children:e}),m.jsx("button",{onClick:l,style:{background:"transparent",border:"none",borderRadius:"20px",padding:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:r?"flex-end":"flex-start",width:"44px",height:"24px",transition:"all 0.3s ease",position:"relative"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx("div",{style:{width:"16px",height:"16px",borderRadius:"50%",background:r?t.toolbar.button.active:t.toolbar.button.color,transition:"all 0.3s ease",display:"flex",alignItems:"center",justifyContent:"center"},children:r?m.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):m.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"5"}),m.jsx("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),m.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),m.jsx("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),m.jsx("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),m.jsx("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),m.jsx("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),m.jsx("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),m.jsx("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]})})}),this.renderTimeframeModal(),this.renderChartTypeModal(),this.renderIndicatorModal(),this.renderTimezoneModal()]}):m.jsxs("div",{style:{background:t.panel.backgroundColor,borderBottom:`1px solid ${t.panel.borderColor}`,padding:"9px 13px",display:"flex",alignItems:"center",justifyContent:"flex-start",height:"43px",boxSizing:"border-box",gap:"0",position:"relative"},children:[m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:g,className:"timeframe-button",style:{background:a?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:a?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{a||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{a||(P.currentTarget.style.background="transparent")},children:this.props.timeframe||e}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderTimeframeModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsxs("button",{onClick:p,className:"timezone-button",style:{background:o?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:o?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{o||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{o||(P.currentTarget.style.background="transparent")},children:[m.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"10"}),m.jsx("polyline",{points:"12 6 12 12 16 14"})]}),this.getCurrentTimezoneDisplayName()]}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderTimezoneModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsx("button",{onClick:d,className:"chart-type-button",style:{background:n?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"7px 11px",cursor:"pointer",color:n?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{n||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{n||(P.currentTarget.style.background="transparent")},children:fe(i,{size:17})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderChartTypeModal()]}),m.jsxs("div",{style:{position:"relative",display:"flex",alignItems:"center"},children:[m.jsxs("button",{onClick:c,className:"indicator-button",style:{background:s?t.toolbar.button.active:"transparent",border:"none",borderRadius:"0",padding:"3px 11px",cursor:"pointer",color:s?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color,fontSize:"12px",fontWeight:"500",display:"flex",alignItems:"center",gap:"7px",transition:"all 0.2s ease",minHeight:"31px"},onMouseEnter:P=>{s||(P.currentTarget.style.background=t.toolbar.button.hover)},onMouseLeave:P=>{s||(P.currentTarget.style.background="transparent")},children:[m.jsx(mi,{size:25,color:s?t.toolbar.button.activeTextColor||t.layout.textColor:t.toolbar.button.color}),k.Indicators]}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),this.renderIndicatorModal()]}),m.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0"},children:[m.jsx("button",{title:k.toolbarButtons.fullScreen,onClick:u,style:{background:"transparent",border:"none",borderRadius:"0",padding:"7px",cursor:"pointer",color:t.toolbar.button.color,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease",minHeight:"31px",minWidth:"31px"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx(fi,{size:17,color:t.toolbar.button.color})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}}),m.jsx("button",{title:k.toolbarButtons.screenshot,onClick:M,style:{background:"transparent",border:"none",borderRadius:"0",padding:"7px",cursor:"pointer",color:t.toolbar.button.color,display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.2s ease",minHeight:"31px",minWidth:"31px"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx(Mi,{size:17,color:t.toolbar.button.color})}),m.jsx("div",{style:{width:"1px",height:"16px",background:t.toolbar.border,margin:"0 4px"}})]}),m.jsx("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:m.jsx("button",{onClick:l,style:{background:"transparent",border:"none",borderRadius:"20px",padding:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:r?"flex-end":"flex-start",width:"44px",height:"24px",transition:"all 0.3s ease",position:"relative"},onMouseEnter:P=>{P.currentTarget.style.background=t.toolbar.button.hover},onMouseLeave:P=>{P.currentTarget.style.background="transparent"},children:m.jsx("div",{style:{width:"16px",height:"16px",borderRadius:"50%",background:r?t.toolbar.button.active:t.toolbar.button.color,transition:"all 0.3s ease",display:"flex",alignItems:"center",justifyContent:"center"},children:r?m.jsx("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:m.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}):m.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[m.jsx("circle",{cx:"12",cy:"12",r:"5"}),m.jsx("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),m.jsx("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),m.jsx("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),m.jsx("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"4.22"}),m.jsx("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),m.jsx("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),m.jsx("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),m.jsx("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"})]})})})})]})}}class kl{constructor(t){this._image=null,this._isLoaded=!1,this._options={size:100,opacity:.3,offsetX:20,offsetY:20,borderColor:"rgba(128, 128, 128, 0.2)",borderWidth:2,borderRadius:50,...t},this._loadImage()}getMarkType(){throw new Error("Method not implemented.")}attached(t){this._chart=t.chart,this.requestUpdate()}updateAllViews(){}requestUpdate(){if(this._chart)try{this._chart.timeScale().applyOptions({})}catch{}}_loadImage(){this._image=new Image,this._image.crossOrigin="anonymous",this._options.src.startsWith("data:image")?this._image.src=this._options.src:this._image.src=this._options.src,this._image.onload=()=>{this._isLoaded=!0,this.requestUpdate()},this._image.onerror=t=>{console.error("Failed to load watermark image:",t),this._isLoaded=!1}}time(){return Date.now()}priceValue(){return 0}paneViews(){return this._renderer||(this._renderer={draw:t=>{if(!this._isLoaded||!this._image)return;const e=t.context??t._context;if(!e||!this._chart)return;const i=this._chart.chartElement()?.querySelector("canvas");if(!i)return;const r=i.width,a=i.height,s=this._options.size||100,n=this._options.offsetX||20,o=this._options.offsetY||20,h=this._options.borderRadius||50,l=r-s-n,g=a-s-o;e.save(),e.globalAlpha=this._options.opacity||.3,e.beginPath();const c=s/2*(h/50);e.arc(l+s/2,g+s/2,c,0,Math.PI*2),e.closePath(),e.clip(),e.drawImage(this._image,l,g,s,s),this._options.borderWidth&&this._options.borderWidth>0&&(e.beginPath(),e.arc(l+s/2,g+s/2,c,0,Math.PI*2),e.strokeStyle=this._options.borderColor||"rgba(128, 128, 128, 0.2)",e.lineWidth=this._options.borderWidth,e.stroke()),e.restore()}}),[{renderer:()=>this._renderer}]}updateImage(t){this._options.src=t,this._isLoaded=!1,this._loadImage(),this.requestUpdate()}updateOptions(t){this._options={...this._options,...t},t.src&&t.src!==this._options.src&&(this._isLoaded=!1,this._loadImage()),this.requestUpdate()}getOptions(){return{...this._options}}isImageLoaded(){return this._isLoaded}}class Pl{constructor(t){this.watermark=null,this.isVisible=!0,this.props=t}addWatermark(t){const{chartSeries:e}=this.props;return!e||this.watermark?Promise.resolve(!1):(this.watermark=new kl(t),e.series.attachPrimitive(this.watermark),this.isVisible=!0,new Promise(i=>{const r=()=>{this.watermark?.isImageLoaded()?i(!0):setTimeout(r,100)};setTimeout(r,100)}))}updateWatermarkImage(t){this.watermark&&this.watermark.updateImage(t)}updateWatermarkOptions(t){this.watermark&&this.watermark.updateOptions(t)}setVisible(t){const{chartSeries:e}=this.props;!e||!this.watermark||(t&&!this.isVisible?(e.series.attachPrimitive(this.watermark),this.isVisible=!0):!t&&this.isVisible&&(e.series.detachPrimitive(this.watermark),this.isVisible=!1))}toggleVisibility(){return this.setVisible(!this.isVisible),this.isVisible}removeWatermark(){const{chartSeries:t}=this.props;t&&this.watermark&&(t.series.detachPrimitive(this.watermark),this.watermark=null,this.isVisible=!1)}getWatermarkOptions(){return this.watermark?this.watermark.getOptions():null}isWatermarkVisible(){return this.isVisible}isImageLoaded(){return this.watermark?this.watermark.isImageLoaded():!1}updateProps(t){this.props={...this.props,...t}}destroy(){this.removeWatermark()}static async imageToBase64(t){return new Promise((e,i)=>{const r=new Image;r.crossOrigin="anonymous",r.onload=()=>{const a=document.createElement("canvas");a.width=r.width,a.height=r.height;const s=a.getContext("2d");if(!s){i(new Error("Could not get canvas context"));return}s.drawImage(r,0,0),e(a.toDataURL("image/png"))},r.onerror=()=>{i(new Error("Failed to load image"))},r.src=t})}}const Sl="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QrVaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJFeGVtcGkgKyBYTVAgQ29yZSA2LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOkFJR0M9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQUlHQy8xLjAvIiBBSUdDOkFJR0M9InsmcXVvdDtMYWJlbCZxdW90OzogJnF1b3Q7MiZxdW90OywgJnF1b3Q7Q29udGVudFByb2R1Y2VyJnF1b3Q7OiAmcXVvdDswMDExOTExMTAwMDA4MDIxMDA0MzNCMTAwMDUmcXVvdDssICZxdW90O1Byb2R1Y2VJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMSZxdW90OzogJnF1b3Q7JnF1b3Q7LCAmcXVvdDtDb250ZW50UHJvcGFnYXRvciZxdW90OzogJnF1b3Q7MDAxMTkxMTEwMDAwODAyMTAwNDMzQjEwMDA1JnF1b3Q7LCAmcXVvdDtQcm9wYWdhdGVJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMiZxdW90OzogJnF1b3Q7JnF1b3Q7fSIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgD6APoAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopaAEopaSgAooooAKWkooAKKKWgBKKKKACiiigAooooAKKWigBKMUUUAFFLSUAFFLSUAFFFFABRRRQAUUtJQAUUUUAFFFFABRRS0AJRRRQAUUUUAFFFFAC0lLRQAlFLSUALSUtFACUUd6KACiiigAooooAKKKKACiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiloASiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiigAopaKAEopaSgAopaKAEooooAKKKWgBKKKWgBKKKWgBKKKKACiiigApaKSgAopaKAEoopaAEopaSgBaSiigAooopgLSUUUgCiiigAooooAKKKWgBKWikoAKKKKACiiigAooooAWiiigApKWkoAKKKKACiiigAooooAKWkooAKKKWgApKWigBKKWkoAWkoopgLSUUUgCiiigAooopgLRSUUgClpKWgBKKKKACiiigApaSigBaSiigApaKKACkopaACkpaSgBaSiigAooooAKKWkoAKWiigBKKKKACiiloASilpKACilpKAClopKAClpKKAFpKKKYBS0lFIAooooAWkpaSmAUUUUgCiiigApaSigBaSiigAooooAKKWkpgFFFFIAoopaACkpaSgBaKSlpgJS0lFAC0lKaSkAUtJRQAtJS0lABS0UlAC0lLRQAlFLSUAFLRRTAKKKKAEooopAFFFFABRRRQAUUUUALRRSUAFLSUUAFFFFABRRRQAUUUUAFFFFAC0lLRQAlFFFABRRRQAtFJRQAUUUUAFFLSUALSUUUwClpKWkAlLRSUALRSUUAFFFFMAooopALRSUtACUUUtMApKWkpALSUUUwCloopAFFJS0wEooopAFFFLQAlFFFAC0UlLQAlFLSUALRSUUAFFFFABS0lFABS0lFABS0UlABRRRTAKKKKAFpKKKAFpKKKQBRRRQAUtJRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooAKWkopALRSUtACUUUUwCiiigBaKKKAEoopaQBRSUUAFLSUUAFFFFMAooooAKKKKQBRRS0AFFFFMBKKKKQBRRRQAUUUUALSUUUALRRSUAFFLSUAFFFLQAlFLRQAlFLRQAlFFFABRRRQAClpKKAClopKAFpKWkoAKKKKAClpKWgBKKKKYBRRRQAUUUUALRRRSASiiimAUUUUgFpKWkoAKWkooAKKKWgBKKWkpgLSUtFIAopKKYBS0UlIApaKKAEopaSgAopaSmAtFJS0gCkopaAEooooAKKKKYBRS0lAC0lLSUAFFLSUALSUtJSAKKKKYBS0lFIApaKSgAooooAKKKKAClpKWgBKWkopgFFFFAC0lFLSASiiimAUtFJSAWkoooAKKKWgBKWkpaACiiimIKSiigYUUUtIBKKKKYBRRRQAUUtFIApKKKAFopKWgAopKWmAlFFLSASiiigAooooAKKKKYBS0lFABRS0lIAopaKAEooooAKWkpaAEooopgFFFFAC0lLSUgFpKWigApKKWgBKKKKAFpKKKYBRRRQAUUUUAFFLSUAFLSUtIBKKWkoAWkoooAKKWkoAKKWkoAKKKKYBS0UUgCkoooAKKKWgBKKWkpgFFFFAC0lFLSAKSiimAtFJS0AFJS0UAJRS0UgCkpaKAEooopgFFFFABRRRQAUUUUgClpKWgAopKKAClopKAFoopKAFpKKKACiiloASiiloASiiigAooopgFFFLQAlFFFIBaSlpKAFpKKKAFoopKYC0UUUAJRRRQAUUUtIAopKWgBKKKWmAlFLSUgFpKKKACiilpgFFJS0AJRRRSAKKKKACiiigAooopgFFFFABRS0UAFJRRSAKKKKAFpKKWgBKKKKYBRRRQAUtJS0gCikpaAEooopgFFFFAC0lFFABRRRQAUUUUAFFFFABRRS0AFFJRSAWiikoAKKKKACiiigAoopaAEooooAKKWkoAWikpaAEoopaAEoopaAEopaSgAooopgLSUtFACUUUUALRSUtIBKKKKACiiigAooooAKKKKACiiimAUUUtIBKWikoAKWkooAWikooAKKKKAFpKKKAClpKWgAopKKAFpKKKYBR2opaAEooopAFFFLTASiiigBaSiikAtJRS0wEooopAFLRSUALSUUtACUtJS0AJRRRQAUtJS0wEpaSloAKSlpKACiiikAUUUUAFFFFABRRRQAUUUtMBKKKKAFpKKWkAlFLRQAUlFFMApaSlpAJRRRTAKKKKACiiigBaSlpKQC0UUlAC0UlLTASloooASiiigAopaKACiiigBKWiikAlFFFABRRRQAUUtJQAUtJRQAtJRRTAKWkopALSUUtMBKKKKAClpKKQC0lFFABRS0lAC0lFFMApaSigApaSigBaKKSgBaKSigAooooAKWikpAFLR2pKACloopgJS0lFAC0lFLSASlpKKAClpKWgBKKWkpgLRRRQAUlFFAC0lFFABRRRQAUUtFACUUUUAFFFFABS0lFABRRRQAUUUUgFpKWigApKWkpgFFFFABRRRQAUUUUgCloopgFJS0lABS0lLSASiiigAooooAKKKKAFopKKACiiigAoopaAEopaKAEopaKAEopaKACkpaSgAooopgFLSUtABSUtJQAtFFJQAtJS0lIApaKSgBaKSlpgFFFJQAtJRRQAtJS0lIAooopgFFFFABRRS0AFJRRQAUUUUAFFFFABRRRQAtJS0lABRRS0AFFJRSAKKKKYC0lFFAC0UlFABRS0lABS0lLQAlFLSUAFLSUUgCiiigBaSiigAopaSmAUUtGaQCUtJRQAUtJRQAUUUUAFLRSUALRSUtMBKKWkoAKKKKACiiigBaSlooASilooASlpKWkAlFFFMAooooAWkoopAFFFLTAKSlpKQC0lFLTASiiigApaSikAUtFFMAopKWgBKKKDSAKKKKACiiigAooooAKKKKACiiigAopaKACkoopgFFLRSASilopgJRRRQAUUUUgCiilpgJS0lFAC0lFFABRRRQAUUUUgClpKWgAooooAKKKSgAooopgFFFFABRRRQAUtFFAhKKKKBhS0lFABRRRQAtFJRQAUtFFACUtJS0AFFFFACUUUUAFFFFABRRRQAUUUUAFFFFABRS0lABRRRSAKKWkoAKKWkoAWkopaYCUtJRQAUtJRSAKKWkoAKWkooAKKKWgBKKKKYBRRRQAtJRRQAUtJS0gEpaKSmAtJS0lABRRRQAUUUUAFFFFABR1oopAFFLSUAFFFFABRRRQAUUUUwCiiikAtFJS0wCkpaSgApaSikAUUUUAFFFFABS0lFABS0lLQAlFLSUwCiilpAJRRRTAO1FLRSASlpKWmAlFLSUAFFFFABS0lLQAUlFFIBaSilpgFFFJ3oAKWkooAKKWkpALRSUUwFpKKKAFoopKACiiigAooooAKKKWgBKWkopAFLRSUwFpKWkoAKKKKAFpKKKACiiloASilooASilpKAFpKKKQBRRRTAKO9FFAC0UlFIAooopgFLSUtABRSUtIBKKWigAooooASilpKYBRRS0gEopaKYCUUUUALRSUUgFopKKAClpKKYBRRRQAtFJS0AJRS0lIBaKKKACkpaSgAooopgFFFFABRRRQAUUUUAFFFFIApaSimAUUtFACUUUUALSUUUALSUUUAFFFLSASiiigAooooADRRS0AFJRRTAWkpaSgAooooAWkoopAFFFFABS0lFABRRRTAKKKKAFpKKKACilpKQBRRS0wCkoooAKKKKAFpKKKQBRS0lAC0UlLTAKKSloASiiigAooooAKKKKQBRRRQAUUUtACUUUUALSUtFACUUtJQAUtJS0wCikooAWkopaQCUUUUAFFFLQAlFFLTAKSlooAKSlpKACilooASlpKWgBKWikpAFFLRTAKSiikAUtJRQAUUUUwFpKKKAClpKKQBQaKKACilpKACiiimAtJRRQAtFJRSAKKWimAUlFFABRRRQAtJRRSAKKKKYBRS0lABRRRSAKKKKAClpKKYC0lFFABS0lLQAlLRRQAlFFFIAooooAKKKKAClpKWgApKKKACiiloAKSlooASilopgJRRRQAUUUUAFLSUUAFFFFIAooopgFFFFABS0lFABRRRQAUUUUAFFFFABRRS0AJRS0UAJRRRQAUUUUAFFLRQAlFFFIAooooAKKKKACiiloAKSiigAooopgFFLRQAUlFFABRRRSAKKKKAClpKKAFopKWmAUUUlABS0lFAC0UUUAFFFFABRSUtABRRSUALSUtJQAUUUUAFFFFABRRRQAUUUUgCiiigAooopgFFFFABRRRQAUUUUAFLSUUAFFFFABRS0lAC0lLSUgA0UUUwCiiigApaKSkAd6KKKYC0UUUAJS0UUAJS0UUAFFFFACUUUtIBKKKKACiiigAooooAKWiimAUlLRSAKKKKACkopaAEoopaYBSUUUAFFFFABS0lFABRRRQAUUUUAFFFFABRRRQAUtJRSAKKWkpgFFLSUAFFFFAC0lLSUAFFFFAC0UlFAC0UlFIApaSimAUtJS0AJRRRQAUUUUAFFLSUgCiiigAopaSmAUUUUAFFFFABRS0lABS0lFIBaKSigBaSlpKYBS0lFABS0lFABRRRQAUtJRQAUUUUAFLSUUAFFFFAC0lFFABRRRSAKWkopgFFLSUAFFFFABRS0UgEopaSgApaKSgAooopgLSUUUAFLSUtACUtJS0AJRRRQAUUUUAFFFLQAUUlLQAlLSUtABRRRQAUlFFABRRS0gEooooAKKWkoAKKKKAFopKWmAlFFFAC0neilpAFFFFABRRSUAFFLRQAlFFLTASilpKAClpKWkAlFFFAC0lFFMAooooAWikpaAEooooAKKKWkAlLSUUAFFFLTASlpKKACilpKACilpKQBS0lFMAopaSgBaKKKAEopaSgAooooAKKWkpAFFFFABRRRTAKKKKACiiigBaSlopAJRRRQAUUUUAFFFFMAooooAKKKKACiiloASilpKACiiigAoopaAEooooAKWkpaQCUUtJQAUUtFACUUtJQAUUUUAFFFFABRS0UAJRS0lABRRRTAWiiigApKKKACilooASlpKWgBKKKKACiiigAooooAKKKKACiiikAUtJRQAUUUUAFLSUtACUUUUwFopKKACilpKACiiikAUUUtABRRRQAUUlLQAUUlFABRRRTAWkpaKAEopaSgAopaSgAooooAKKKWgBKKKKACiiigBaSlpKQC0lFLTASilpKQBS0lLQAUlLRQAlLSUUALSUUUwCiiigApaSigAooopALRSUUALSUtFACUUtFACUUUUwCilpKACilopAFFJS0AJRS0UAJRRS0AFJS0UAJRRRTAKWkooAWiikoAWkoooAKKKKACiiigAooooAKKKWgBKKWkpALSUUUAFLSUUwCiiikAUUtJQAtFFJQAtFFFMApKWigBKKKKACilopAJS0lLQAUUlFAC0UlFMAooooAKKKWgApKKKQBRRRQAUUUUAFFFFABRRRQAUUtJTAWkoopAFFFFMApaSikAUtFFABSUtJQAUUUUwCiiigBaKSigApaSigBaSiikAUUUtMAooopAJRRRTAKKKKACiiikAUUUUwCiiikAtJRRQAUUtJQAUUUUAFFFFMAooooAKKKKACiiikAUtFJQAUtJRQAUUUUAFFFFABRRRQAUUUUwClpKWkAlFFFABRRRQAUUUUAFFFFMAopaSgApaSigAooooAKKWkpALSUtJQAUUUUALSUUUALSUtJQAUUUUAFFFFAC0lFLQAlFLRQAlFFFAC0lFFMBaSlpKACiiikAUtJRQAUUUUwCiiigBaSiikAtFFFAC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0lFAC0UUUwCiiigAooooAKKKKAEpaSigAooooAKKKKAFpKKKACiiigAooooAKKKKACiiigAooopALSUtJQAUUUUALRRSUALRSUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAuaSiigAooooAKKKKACiiigBaKSigAooooAKKKKACjNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFLQAlFFLQAlFFFABRRRQAUUUUAFFFFABRRRQAUtJRQAUtJS0AJRRRTAWkpaSkAtJS0UAFFJRTAKWkpaACkoooAWikopAFLSUtACUtJS0wCiiigBKKKKACilooASlpKKQBRRRQAUUUUALRSUUALRRRTAKSiigBaKKSgBaKSloASiiigApaSloASiiigAopaSkAUUUtMBKKKKACiiigAooooAWkopaAEooooAKKWkoAWiikpAFLSUUAFLSUUABooopgFFFFIAooooAKWkooAKKKKYBRS0UgEpaSigAooopgFFFFAC0lFFIAooopgFFLSUAFLSUtIApKWkoAKWkpaAEoopaAEpaKSgAooooAKKKKAClpKKAClpKKYC0UlLSASiiigApaSloAKSiigAooooAKKWkoAKKKKACiiimAUUtJQAtJRRQAtJRRQAUtFFIBKWkooAKWikpgFFFFABS0lFIApaSimAtJRRQAUUUtABRSUUgCiiigAooooAKKKKAClpKKAFpKKKYBRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooFFABRS0lMAopaSgAooooAKWikpAFFFLQAlFFFMAooooAKKKKQBRRS0AJRRRTAKKKKAClpKKQBRRRQAUtJS0AJRRRQAUUUUAFFFFABRRRTAKKWkoAKKWkoAKKKKQBRRS0wEooopALSUUUAFFFFMAoopaQCUUtJQAtJS0lABRRRQAUUtJQAUUUUwCiiloASiiigAopaSkAUUUUwCiiigAooooAKWkopAFFFFMAooooAKKKKACiiikAUUUUALRSUUALSUUUwCilpKACiilpAJRRRTAKKKWgBKKWkpAFFLSUAFFFFABRRRQAUUUUAFLSUUAFLRRTAKSlpKACiiigAoopaQCUUUUwFpKKKAFpKKKACiiikAUtJS0AJS0UlMApaKKACkpaSkAUtJRQAUtJRTAWkoooAWikpaQBRSUUwCiiikAUUUUwCiiigAooooAKWkpaQCUUUUwCilpKACilpKACiiikAUtJS0AJRRRTAKKKKAFpKWkoAKWkpaQBSUtJQAUUtJTAKWko7UgCiiigAooooAKKKKACilooASiiimAUtFJQAUUUtIBKKKKACiiloASiiimAtFJRSAKKKKYBRRRQAUtFFACUUtJSAKKWkoAWkopaYCUtFFACUUUUALSUUUAFLSUUAFFFFABS0lFABRRRSAKKWigBKKKKACiiigAooooAKWkpaAEooopgFLSUUAFFFFIAooooAKKKKACiiimAUUUUALSUtJSAKWkpaAEooooAKWikoAWikooAKKKWgAopKKYC0lFFAC0UlFABRRRQAUUUUAFFFFABRRRSAKKKKYBRRRQAUtJRQAUtFFABSUUUAFFFFIApaSigAooopgFFFFABRRRQAUUUUgCiiigAooooAKKKWgBKWkooAKKKKACiiloASiiimAUUUUAFFFFAC0lFLSASlpKKACiiigAooopgFFLSUAFFFFABS0lLQAUlFFABRRRQAtJRRQAClopKAClpKKACiiigApaSloASlpKKACiiloASiilpAFFJS0AFJS0lABRRRQAUUUUAFFFFABS0lFABS0lFABRS0lABRRS0AHakoooAKKWkoAWikooAKKWkpgFFFFIBaKKKAEopaSmAtJS0lAC0UlFIBaKKKAEooopgFFFFABRRRQAtJRRQAUUtJQAUdaKWgBKWikoAKKKKAFpKKKACiiikAUUUUwCiiigAooooAKKWigBKKWkoAKWkooAWkoooAKKKKAFpKKKQBRRRQAYopaSgApaSigAopaSgBaSiloASiiimAUtJRQAUUUtACUUtJQAUUtFIBKKWigBKKKKYC0UlFABRRRQAUUUUgFpKKWgBKKKWgBKKKKYBS0lFABRRS0AJRRS0AJRS0lABS0UUAFFFJQAUtFJSAKKKWmAUUUUAJS0lFABRRRSAKKKKACiiigAooooAKKWkoAKWkpaYCUUtJQAUtJS0gCkopaYBRRSUAFLSUUAFLSUooAKKKSkAUtJRTAWikooAKKKKACilpKQBS0lFABS0lFABS0lLQAUlFFABS0lFMAooooAKWkooAKKKKAClpKKQBRRRQAUUtFMApKWkoAKKKKACiiloASiiigAooooAKKKKQC0UlFABS0lFABRR3oxQAUUUUAFFFFABRRS0AJS0UUAJRRRTAKKKWgBKWiigBKWkpaQCUtFJTAKKWigBKKWkoAKKKKQBRRRQAtJRRQAtJRRQAUUUUwCiiigAooopAFHelpKAFpKKKACilooASiiimAUUUUALSUtFIApKKKYC0UlFABRRRSAKKKKACiiigApaSigAopaKAE70UUUwCiiloASlpKKAClopKACilooASilooASilooAKSilpAJS0UUAJRRS0AFJS0lAC0lFFABRS0UAFJS0lABRRRQAUUtFACUUUUwFopKWkAlFFFABRS0lABRRRQAUtJRQAUtJRTAWkoopAFFFFABS0lGKYBRRRQAUUUUALRSUUgCiiigApaSigBaSiloASiiimAUUtJSAKWkooAWkpaKAEooopgFLRRQAUUlFABS0lFABRRRQAUtJRQAtJRS0AFFJRSAKKWkoAKKKWgBKKWkoAKKKKYBS0lFABRRRQAUUUtIBKKWigAooopgJRRRQAUUUUAFFFFIBaSiigApaKSgAooooAKKWigBKKKKACiiigAooooAWkoo70ALSUtFACUUUUAFFFFAC0lFFABRRRTAWikpaACkpaKQBRSUUALRSUtACUUUtACUtJS0AJRRRQAUUtJQAUUUUALRSUUAFLSUUwCilpKACiiikAUUUtACUUtJQAUUUUwFpKKO9ABRRS0AJRS0UgEooopgLSUUUgCiiimAUUUtABRSUtIBKKKKAFopKKAFpKKWgBKWkooAWiikoAWkpaKAEooooAKKKKYBRS0lABRRRQAUtFJQAUUUUALSUUUAFFFFAC0UlFIAooopgFFFFIAooopgLSUtJSAKWkooAWikooAKWkopgLRRRQAlFFFABRS0lABRRRQAUtFFIBKKKKACiiigApaSloASiiloAKKSloASlpKKACiiigAoopaAEooooAKWkooAKKKWgApKKKACiiigBaSiigAooooAKKKWgAoopKACjtRS0wEpaSikAUUtJQAUUUUAFFFFMAopaSgApaSigBaSiikAUUUUALRSUtACUUtJQAUUUUAFFFLQAUlFFABRRS0AJRRRTAKWkooAWikopAFFLRQAlLRSUAFFFFABRRS0AJRRRTAKWkopALRRRQAlLSUUALSUUtMBKKKKAClpKKACiiigAopaSgAooooAWkoooAKKKKACiiigBaKSlpAFJS0lABRRRQAUUUUALRRRQAUUUUAJRRS0AJRRRQAtJRRTAKKKKACiiigAooopAFFFFABS0lFABS0lFAC0UUlABRRRQAUUtJQAUUUtABSUtJQAUUtJQAUUtJTAKWkpaQCUUUUAFFFFABRRRQAUUtFACUUtJQAUUUUwCiilpAJRRRQAUUUtACUUUUAFLSUtMBKKKWgBKKWikAlFLSUAFFFFABS0lFAC0lLRTASlpKKQBRS0lABS0lFABRS0lABRS0UwEoopaAEpaSikAUUtJQAUUUUwCilooASiilpAFFJRQAtFFFACUUUtMApKKKQBRRRQAtJRRQAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKAFopKKQBRRRQAUUtJQAUtJRQAtJRRQAtFJRQAUUUUAFFFFMAooooAKWkooAKKKWkAlFFFABRRRQAUtFJTAKWkooAWkpaSkAtFJRQAtJRRQAtJRRQAtJS0lMApaKKACkpaSkAUtFJQAUUtJQAUUUUAFLSUUALSUUUAFFFFAC0lFFABRS0lAC0UlFABRRRQAUUUtMBKWkpaACkpaSgAopaSgAooooAKKKKAClpKKACiiigApaSigBaSiikAUUUUAFFFFMBaKSigAooooAKKWkoAKKKKAFpKWikAUUlFABRS0UwCiiigApKWkoAKKKWgBKKKKACiiigAooooAKKWkpAFFFLQAlFFFMAoopaACkoopALSUUUAFFFLQAUUUUwEoopaQBRRRQAUUlFAC0UlFAC0UUUAFJS0UAFFFFMBKKKKACiiikAUUUUAFFFFAC0lFFABS0UlABRS0UAJRRS0AJRRRQAtFJRQAUtJRQAUtJRTAWkoopAFLSUUALSUUUALSUUUAFFFFABRRRQAtJS0UAJS0lFAC0lFFAC0UlFABS0lLQAlFFFMBaKSigBaKSigAooopALSUtJQAUUtJTAKKKWkAlFFLTASlpKKACiiigAopaSgAooooAKKKKQBRRRQAUtJRQAUUUUALRSUtABSUUtACUUtJQAtFFFMAopKKACilopAFJRRTAKKKKACiiigBaSlopAJS0lFAC0lLRQAlFFFMAooopAFFFFABRS0AUAFGKdijFADaKdRQA2inUYoAZRT8UYoAZRT8UYoAZRT6KAGUU+jFADKKfijFADaSn4oxQAyilNJQAUUUUAFFFFAC0UlFABS0UUwCkpaSkAUUUUALSUUtACUUUUAFFLSUALRSUUALSUUtACUUUtABSUZpaAEooooAKWkpaYCUUUUALRSUUgFpKWkoAKKKWgBKWkpaAEopaSgApaKSgBaSiimAUUUUgFpKWkoAWiikoAKWiimAlLRRSASlpKWmAlFFLQAlLSUUgClpKWgBKKKWmAlFLSUAFLSUUAFFLSUgCiiloAKKSimAUUUUgFpKWkoAWkoopgFLSUtIBKWkooAWikooAKKWkoAKWikpgLRRSUgClpKKYBRS0lAC0lFFABRRRSAKKWigAoFJThQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpWpKACiiigAooooAWkoooAKWkpaYBRRSUALSUtJSAWkpaSmAtJRRQAtJRRSAKKWkoAWkoooAKKKKACiiigApaSloASiiigAopaSgAooooAWkoooAWikooAWkoooAKKKKACiiloASiilpgFJS0lIAooooAKKKBQAtJS0UAJS0lFABRRS0wEooooAKKKKQBRRRQAUtJRQAUtJRQAUUUUwClopKQBRR3ooAKKKKYC0lFFABRRS0gEpaKSgAoopaYCUUUtIBKKKKACiiloASiiimAUtJRQAtJRS0gCikooAKKWkoAKKWigBKKKKACnCm04UALS0UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpTSUAFFFFABRRRQAUCiigBaSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKWkooAKKKKAClpKKACiiigAooooAKWkooAWkoooAKKKKADNFFFABRRRQAUUUUAFFFFABRRRQAtHSkpaAF3UmaSigB2aTdSUUALmjNJRQA7NJmkooAXNGaSigBc0ZpKKAFzRmkooAXNGaSigBc0ZpKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=";class Gi extends E.Component{constructor(t){super(t),this.candleViewRef=E.createRef(),this.chartRef=E.createRef(),this.chartContainerRef=E.createRef(),this.chartLayerRef=E.createRef(),this.chart=null,this.resizeObserver=null,this.realTimeInterval=null,this.currentSeries=null,this.chartManager=null,this.updateTimeout=null,this.viewportManager=null,this.chartEventManager=null,this.aiPanelResizeRef=E.createRef(),this.isDragging=!1,this.startX=0,this.startChartWidth=0,this.containerWidth=0,this.terminalResizeRef=E.createRef(),this.isDraggingTerminal=!1,this.startY=0,this.startTerminalHeightRatio=0,this.preparedData=[],this.originalData=[],this.aiManager=null,this.handleTerminalResizeMouseDown=a=>{a.preventDefault(),this.isDraggingTerminal=!0,this.setState({isResizingTerminal:!0}),this.candleViewRef.current&&(this.startY=a.clientY,this.startTerminalHeightRatio=this.state.terminalHeightRatio),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},this.handleTerminalMouseMove=a=>{if(!this.isDraggingTerminal)return;const s=this.candleViewRef.current;if(!s)return;const n=s.clientHeight;if(n<=0)return;const o=this.startY-a.clientY,h=this.startTerminalHeightRatio+o/n,l=Math.max(.2,Math.min(.5,h));this.setState({terminalHeightRatio:l})},this.handleTerminalMouseUp=()=>{this.isDraggingTerminal&&(this.isDraggingTerminal=!1,this.setState({isResizingTerminal:!1}),document.body.style.cursor="",document.body.style.userSelect="")},this.handleResizeMouseDown=a=>{a.preventDefault(),this.isDragging=!0,this.setState({isResizingAiPanel:!0}),this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.dragging);const s=this.candleViewRef.current;s&&(this.containerWidth=s.clientWidth,this.startX=a.clientX,this.startChartWidth=this.state.aiPanelWidthRatio),document.body.style.cursor="col-resize",document.body.style.userSelect="none"},this.handleMouseMove=a=>{if(!this.isDragging||!this.containerWidth)return;const s=a.clientX-this.startX;if(!this.state.ai)return;const n=Math.max(.3,Math.min(.9,this.startChartWidth+s/this.containerWidth));this.setState({aiPanelWidthRatio:n},()=>{if(this.chart){const o=this.chartContainerRef.current;if(o){const h=o.clientWidth,l=o.clientHeight;h>0&&l>0&&this.chart.applyOptions({width:h,height:l})}}})},this.handleMouseUp=()=>{this.isDragging&&(this.isDragging=!1,this.setState({isResizingAiPanel:!1}),this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.normal),document.body.style.cursor="",document.body.style.userSelect="")},this.loadDataAsync=a=>{this.setState({dataLoadProgress:0,isDataLoading:!0}),this.loadExternalData().then(()=>(this.setState({dataLoadProgress:30}),this.loadInternalData())).then(()=>{this.setState({dataLoadProgress:70}),this.setState({dataLoadProgress:100,isDataLoading:!1,loadError:null},()=>{a&&a()})}).catch(s=>{this.setState({isDataLoading:!1,loadError:s.message})})},this.loadExternalData=async()=>(this.clearOriginalData(),new Promise((a,s)=>{try{this.setState({dataLoadProgress:10});const n=this.props.data||[];this.originalData=n,this.setState({dataLoadProgress:30}),a()}catch(n){s(n)}})),this.loadInternalData=async()=>new Promise(a=>{this.setState({dataLoadProgress:40}),this.clearChart(()=>{const s=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.setState({dataLoadProgress:50}),setTimeout(()=>{this.preparedData=s,this.setState({dataLoadProgress:60}),this.setState({displayData:s,dataLoadProgress:70},()=>{a()})},50)})}),this.handleTimeFormatClick=()=>{this.setState({isTimeFormatModalOpen:!0})},this.handleCloseTimeClick=()=>{this.setState({isCloseTimeModalOpen:!0})},this.handleTradingDayClick=()=>{this.setState({isTradingDayModalOpen:!0})},this.handleTimezoneClick=()=>{this.setState({isTimezoneModalOpen:!0})},this.handleCloseModals=()=>{this.setState({isTimeframeModalOpen:!1,isIndicatorModalOpen:!1,isChartTypeModalOpen:!1,isSubChartModalOpen:!1,isTimezoneModalOpen:!1,isTimeFormatModalOpen:!1,isCloseTimeModalOpen:!1,isTradingDayModalOpen:!1,isMobileMenuOpen:!1})},this.handleTimezoneSelect=a=>{this.setState({currentTimezone:a,timezone:a,isTimezoneModalOpen:!1,isDataLoading:!0,dataLoadProgress:0},()=>{setTimeout(()=>{this.setState({dataLoadProgress:20}),this.loadInternalDataAsync(()=>{this.setState({dataLoadProgress:70}),this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),setTimeout(()=>{this.setState({isDataLoading:!1,dataLoadProgress:100})},50)})},50)})},this.handleTimeframeSelect=a=>{const s=a;this.setState({activeTimeframe:s,timeframe:s,isTimeframeModalOpen:!1,isDataLoading:!0,dataLoadProgress:0},()=>{setTimeout(()=>{this.setState({dataLoadProgress:10}),this.loadInternalDataAsync(()=>{this.setState({dataLoadProgress:60}),this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),setTimeout(()=>{this.setState({isDataLoading:!1,dataLoadProgress:100})},50)})},500)})},this.loadInternalDataAsync=a=>new Promise(s=>{this.state.isDataLoading||this.setState({isDataLoading:!0}),this.setState({dataLoadProgress:10}),setTimeout(()=>{setTimeout(()=>{this.setState({dataLoadProgress:30});const h=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.setState({dataLoadProgress:50}),setTimeout(()=>{this.preparedData=h,this.setState({displayData:h,dataLoadProgress:60},()=>{a&&a(),s()})},50)},0)},0)}),this.initChart=()=>{if(!(!this.state.displayData||this.state.displayData.length===0||!this.currentSeries||!this.currentSeries.series))try{this.state.isDataLoading&&this.setState({dataLoadProgress:80}),this.currentSeries.series.setData(this.state.displayData),this.state.isDataLoading&&setTimeout(()=>{this.setState({dataLoadProgress:90})},50)}catch{this.setState({isDataLoading:!1,dataLoadProgress:100})}},this.refreshChart=()=>{if(!(!this.state.displayData||this.state.displayData.length===0||!this.currentSeries||!this.currentSeries.series||!this.chart))try{const a=this.chart.timeScale(),s=a.getVisibleRange();this.state.isDataLoading&&this.setState({dataLoadProgress:85}),this.currentSeries.series.setData(this.state.displayData),s&&setTimeout(()=>{try{a.setVisibleRange(s),this.state.isDataLoading&&setTimeout(()=>{this.setState({dataLoadProgress:95})},50)}catch{this.state.isDataLoading&&this.setState({isDataLoading:!1,dataLoadProgress:100})}},10)}catch{this.state.isDataLoading&&this.setState({isDataLoading:!1,dataLoadProgress:100})}},this.handleExternalSelectedSubChartIndicator=a=>{this.setState(s=>{const n=s.selectedSubChartIndicators.includes(a);let o;return n?o=s.selectedSubChartIndicators.filter(h=>h!==a):o=[...s.selectedSubChartIndicators,a],{selectedSubChartIndicators:o}})},this.handleSelectedSubChartIndicator=a=>{this.setState({selectedSubChartIndicators:a,isSubChartModalOpen:!1})},this.handleRemoveSubChartIndicator=a=>{this.setState(s=>({selectedSubChartIndicators:s.selectedSubChartIndicators.filter(o=>o!==a)}))},this.handleCameraClick=()=>{const{handleScreenshotCapture:a}=this.props;a?Me(this,s=>{s.success&&s.dataUrl&&s.blob?a({dataUrl:s.dataUrl,blob:s.blob,width:s.width,height:s.height,timestamp:s.timestamp}):this.fallbackToDownload(s.dataUrl)}):Me(this)},this.fallbackToDownload=a=>{if(a){const s=document.createElement("a");s.download=`chart-screenshot-${new Date().getTime()}.png`,s.href=a,s.click()}else Me(this)},this.serializeDrawings=()=>this.chartLayerRef.current?this.chartLayerRef.current.serializeDrawings():"[]",this.handleSubChartClick=()=>{this.setState({isSubChartModalOpen:!this.state.isSubChartModalOpen})},this.deserializeDrawings=a=>{this.chartLayerRef.current&&this.chartLayerRef.current.deserializeDrawings(a)},this.clearAllDrawings=()=>{this.chartLayerRef.current&&this.chartLayerRef.current.clearAllDrawings()},this.viewportDataBufferSize=500,this.handleVisibleTimeRangeChange=a=>{if(!a)return;a.from>this.viewportDataBufferSize&&(a.from=a.from-this.viewportDataBufferSize);const s=this.viewportManager?.getViewportDataPoints(a,this.preparedData)||[];this.setState({displayData:s})},this.handleEmojiSelect=a=>{this.setState({selectedEmoji:a})},this.handleThemeToggle=()=>{this.setState(a=>{const s=!a.isDarkTheme,n=s?"dark":"light";return{isDarkTheme:s,currentTheme:this.getThemeConfig(n)}},()=>{this.updateChartTheme()})},this.handleMobileMenuToggle=()=>{this.setState(a=>({isMobileMenuOpen:!a.isMobileMenuOpen}))},this.handleClickOutside=a=>{const s=a.target,n=this.state.isMobileMenuOpen&&!s.closest(".mobile-menu-button")&&!s.closest("[data-mobile-menu-modal]"),o=this.state.isTimeFormatModalOpen&&!s.closest(".time-format-button")&&!s.closest("[data-timeformat-modal]"),h=this.state.isCloseTimeModalOpen&&!s.closest(".close-time-button")&&!s.closest("[data-close-time-modal]"),l=this.state.isTradingDayModalOpen&&!s.closest(".trading-day-button")&&!s.closest("[data-trading-day-modal]"),g=this.state.isTimezoneModalOpen&&!s.closest(".timezone-button")&&!s.closest("[data-timezone-modal]"),c=this.state.isTimeframeModalOpen&&!s.closest(".timeframe-button")&&!s.closest("[data-timeframe-modal]"),d=this.state.isIndicatorModalOpen&&!s.closest(".indicator-button")&&!s.closest("[data-indicator-modal]"),u=this.state.isTradeModalOpen&&!s.closest(".trade-button")&&!s.closest("[data-trade-modal]"),p=this.state.isChartTypeModalOpen&&!s.closest(".chart-type-button")&&!s.closest("[data-chart-type-modal]"),M=this.state.isSubChartModalOpen&&!s.closest(".subchart-button")&&!s.closest("[data-subchart-modal]");n&&this.setState({isMobileMenuOpen:!1}),M&&this.setState({isSubChartModalOpen:!1}),c&&this.setState({isTimeframeModalOpen:!1}),d&&this.setState({isIndicatorModalOpen:!1}),u&&this.setState({isTradeModalOpen:!1}),p&&this.setState({isChartTypeModalOpen:!1}),g&&this.setState({isTimezoneModalOpen:!1}),o&&this.setState({isTimeFormatModalOpen:!1}),h&&this.setState({isCloseTimeModalOpen:!1}),l&&this.setState({isTradingDayModalOpen:!1})},this.handleToolSelect=a=>{this.setState({activeTool:a})},this.handleChartTypeSelect=a=>{this.setState({currentMainChartType:a,isChartTypeModalOpen:!1})},this.handleCloseChartTypeModal=()=>{this.setState({isChartTypeModalOpen:!1})},this.handleCloseDrawing=()=>{this.setState({activeTool:null})},this.handleTimeframeClick=()=>{this.setState({isTimeframeModalOpen:!this.state.isTimeframeModalOpen})},this.handleChartTypeClick=()=>{this.setState({isChartTypeModalOpen:!this.state.isChartTypeModalOpen})},this.handleIndicatorClick=()=>{this.setState({isIndicatorModalOpen:!this.state.isIndicatorModalOpen})},this.handleTradeClick=()=>{this.setState({isTradeModalOpen:!this.state.isTradeModalOpen})},this.handleSelectedMainChartIndicator=a=>{this.setState({selectedMainChartIndicator:a,isIndicatorModalOpen:!1})},this.handleMainChartIndicatorChange=a=>{this.setState({selectedMainChartIndicator:a})},this.handleCloseIndicatorModal=()=>{this.setState({isIndicatorModalOpen:!1})},this.handleCloseTimeframeModal=()=>{this.setState({isTimeframeModalOpen:!1})},this.handleCloseTradeModal=()=>{this.setState({isTradeModalOpen:!1})},this.handleTradeAction=a=>{this.setState({isTradeModalOpen:!1})},this.handleFullscreen=()=>{const a=this.chartContainerRef.current;a&&(document.fullscreenElement?document.exitFullscreen?.():a.requestFullscreen?.())},this.handleCompareClick=()=>{},this.handleReplayClick=()=>{},this.stopRealTimeDataSimulation=()=>{this.realTimeInterval&&(clearInterval(this.realTimeInterval),this.realTimeInterval=null)},this.handleContextMenu=a=>{a.preventDefault(),a.stopPropagation()},this.handleLeftArrowClick=()=>{this.chart&&this.viewportManager&&this.viewportManager.scrollChart("left")},this.handleRightArrowClick=()=>{this.chart&&this.viewportManager&&this.viewportManager.scrollChart("right")},this.handleRefreshClick=()=>{this.setState({isDataLoading:!0,dataLoadProgress:0}),setTimeout(()=>{this.setState({dataLoadProgress:20}),this.refreshExternalData(()=>{this.setState({dataLoadProgress:50}),this.refreshInternalData(()=>{this.setState({dataLoadProgress:80}),this.refreshChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),this.setState({isDataLoading:!1,dataLoadProgress:100})})})},100)},this.handleZoomIn=()=>{this.viewportManager&&this.viewportManager.zoomIn()},this.handleZoomOut=()=>{this.viewportManager&&this.viewportManager.zoomOut()},this.handleAIFunctionSelect=a=>{const s=this.aiManager?.aiToolIdToFunctionType(a);if(s){this.setState({currentAIFunctionType:s},()=>{}),this.setState({openAiChat:this.aiManager?.isChartType(a)||!1},()=>{});const n=this.aiManager?.getAITypeFromFunctionType(s);n&&this.setState({currentAIBrandType:n},()=>{})}},this.handleTerminalCommand=a=>{this.setState({terminalCommand:a})},this.openTerminal=()=>{this.setState({terminal:!0})},this.closeTerminal=()=>{this.setState({terminal:!1})};const e=1,i=.3,r=Lo(t.timeframe)||v.FIFTEEN_MINUTES;this.state={isIndicatorModalOpen:!1,isTimeframeModalOpen:!1,isTradeModalOpen:!1,isChartTypeModalOpen:!1,isSubChartModalOpen:!1,isMobileMenuOpen:!1,activeTool:null,currentMainChartType:z.Candle,currentTheme:this.getThemeConfig(t.theme||"dark"),currentI18N:this.getI18nConfig(t.i18n||"zh-cn"),chartInitialized:!1,isDarkTheme:t.theme!=="light",selectedEmoji:"😀",selectedSubChartIndicators:[],selectedMainChartIndicator:null,subChartPanelHeight:200,isResizing:!1,showInfoLayer:!0,isTimezoneModalOpen:!1,currentTimezone:"Asia/Shanghai",isTimeFormatModalOpen:!1,isCloseTimeModalOpen:!1,isTradingDayModalOpen:!1,activeTimeframe:r,timeframe:r,timezone:Ko(t.timezone)||O.SHANGHAI,savedVisibleRange:null,virtualDataBeforeCount:500,virtualDataAfterCount:500,displayData:[],isDataLoading:!1,dataLoadProgress:0,loadError:null,toppanel:t.toppanel||!1,leftpanel:t.leftpanel||!1,ai:t.ai||!1,aiconfigs:t.aiconfigs||[],openAiChat:!1,currentAIFunctionType:null,currentAIBrandType:null,aiPanelWidthRatio:e,isResizingAiPanel:!1,terminalCommand:"",terminal:this.props.terminal||!1,terminalHeightRatio:i,isResizingTerminal:!1,markData:this.props.markData||[]},this.chartEventManager=new Ei,this.aiManager=new al}componentDidMount(){this.chart||(this.setState({isDataLoading:!0}),this.loadDataAsync(()=>{setTimeout(()=>{this.initializeChart()},50)}),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleTerminalMouseMove),document.addEventListener("mouseup",this.handleTerminalMouseUp))}componentDidUpdate(t,e){if(t.theme!==this.props.theme){const r=this.props.theme||"dark";this.setState({currentTheme:this.getThemeConfig(r)}),this.handleThemeToggle()}if(t.data!==this.props.data){this.isIncrementalDataUpdate(t.data,this.props.data)&&this.chart&&this.currentSeries&&this.props.data?(this.originalData=this.props.data,this.refreshInternalData(()=>{this.refreshChart()})):(this.clearStaticMarks(),this.setState({isDataLoading:!0,dataLoadProgress:0}),this.loadDataAsync(()=>{this.refreshChart()}));return}t.markData!==this.props.markData&&this.props.markData&&this.setState({markData:this.props.markData}),t.terminal!==this.props.terminal&&this.props.terminal&&this.setState({terminal:this.props.terminal}),e.openAiChat!==this.state.openAiChat&&this.setState({aiPanelWidthRatio:this.state.openAiChat?.7:1}),t.aiconfigs!==this.props.aiconfigs&&this.props.aiconfigs&&this.setState({aiconfigs:this.props.aiconfigs}),t.i18n!==this.props.i18n&&(this.setState({currentI18N:this.getI18nConfig(this.props.i18n||"en")}),this.updateChartI18n(this.props.i18n||"en"))}componentWillUnmount(){const t=this.viewportManager?.getVisibleTimeRange();if(t)try{localStorage.setItem("candleView_visibleRange",JSON.stringify(t))}catch{}this.updateTimeout&&clearTimeout(this.updateTimeout),this.resizeObserver&&this.chartContainerRef.current&&(this.resizeObserver.unobserve(this.chartContainerRef.current),this.resizeObserver.disconnect()),this.chart&&this.chart.remove(),this.realTimeInterval&&clearInterval(this.realTimeInterval),document.removeEventListener("mousedown",this.handleClickOutside,!0),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleTerminalMouseMove),document.removeEventListener("mouseup",this.handleTerminalMouseUp)}clearStaticMarks(){this.chartLayerRef&&this.chartLayerRef.current&&this.chartLayerRef.current.staticMarkManager&&this.chartLayerRef.current.staticMarkManager.clearAllMarks&&this.chartLayerRef.current.staticMarkManager.clearAllMarks()}isIncrementalDataUpdate(t,e){if(!t||!e||t.length===0||e.length===0)return!1;if(e.length>t.length){const i=Math.min(t.length,10);for(let r=0;r<i;r++){const a=typeof t[r].time=="string"?new Date(t[r].time).getTime():t[r].time,s=typeof e[r].time=="string"?new Date(e[r].time).getTime():e[r].time;if(a!==s)return!1}return!0}if(t.length===e.length){const i=t[t.length-1],r=e[e.length-1],a=typeof i.time=="string"?new Date(i.time).getTime():i.time,s=typeof r.time=="string"?new Date(r.time).getTime():r.time;if(a===s)return!0;const n=t[0],o=e[0],h=typeof n.time=="string"?new Date(n.time).getTime():n.time,l=typeof o.time=="string"?new Date(o.time).getTime():o.time;return h===l}return!1}clearOriginalData(){this.originalData=[]}clearChart(t){this.currentSeries&&this.currentSeries.series&&this.currentSeries.series.setData([]),this.preparedData=[],this.setState({displayData:[]},()=>{t?.()})}initializeChart(){if(!this.chartRef.current||!this.chartContainerRef.current)return;const t=this.chartContainerRef.current,{currentTheme:e,chartInitialized:i}=this.state,r=t.clientWidth,a=t.clientHeight;if(!(r===0||a===0)&&!i)try{this.setState({dataLoadProgress:75}),this.chart&&(this.chart.remove(),this.currentSeries=null),this.chartManager=new Fo(this.chartRef.current,r,a,e,this.props.i18n),this.chart=this.chartManager.getChart(),this.setState({dataLoadProgress:80}),this.viewportManager=new Yo(this.chart,this.currentSeries),this.chartEventManager?.registerVisibleTimeRangeChangeEvent(this.chart,n=>{this.handleVisibleTimeRangeChange(n)}),this.currentSeries=Pr(this.chart,e),new Pl({chartSeries:this.currentSeries,chart:this.chart}).addWatermark({src:Sl,size:40,opacity:2,offsetX:20,offsetY:45}),this.state.displayData&&this.state.displayData.length>0&&(this.setState({dataLoadProgress:85}),this.refreshInternalData(()=>{this.initChart(),this.viewportManager?.positionChart(this.state.activeTimeframe),this.setState({dataLoadProgress:90}),this.setupResizeObserver(),this.setState({chartInitialized:!0,dataLoadProgress:95}),setTimeout(()=>{this.setState({dataLoadProgress:100})},50)}))}catch{this.setState({chartInitialized:!1,dataLoadProgress:100})}}refreshExternalData(t){const e=this.props.data||[];this.originalData=e,t?.()}refreshInternalData(t){const e=ke.handleData(this.originalData,me({timeframe:this.state.timeframe,timezone:this.state.timezone},this.state.currentMainChartType,this.state.virtualDataBeforeCount,this.state.virtualDataAfterCount),this.state.currentMainChartType);this.preparedData=e,this.setState({displayData:e},()=>{t?.()})}setupResizeObserver(){this.chartContainerRef.current&&(this.resizeObserver=new kr(t=>{for(const e of t)if(e.target===this.chartContainerRef.current&&this.chart){const{width:i,height:r}=e.contentRect,a=Math.max(i,100),s=Math.max(r,100);requestAnimationFrame(()=>{try{if(this.chart){const n=this.chart.timeScale(),o=n.getVisibleRange();this.chart.applyOptions({width:a,height:s}),o&&setTimeout(()=>{try{n.setVisibleRange(o)}catch{}},10)}}catch{}})}}),this.resizeObserver.observe(this.chartContainerRef.current))}updateChartI18n(t){this.chart&&this.chart.applyOptions({localization:{locale:t}})}updateChartTheme(){const{currentTheme:t}=this.state;if(this.chart)try{this.chart.applyOptions({layout:t.layout,grid:{vertLines:{color:t.grid.vertLines.color+"30",style:1,visible:!0},horzLines:{color:t.grid.horzLines.color+"30",style:1,visible:!0}}}),this.chart.applyOptions({timeScale:{borderColor:t.grid.vertLines.color},rightPriceScale:{borderColor:t.grid.horzLines.color}})}catch{}this.currentSeries&&xr(this.currentSeries,t)}getThemeConfig(t){return t==="light"?qo:Vo}getI18nConfig(t){return t==="en"?Mt:Eo}render(){const{currentTheme:t,isDataLoading:e,ai:i,openAiChat:r,terminal:a,terminalHeightRatio:s}=this.state,{height:n="100%",width:o="100%"}=this.props,h=i?this.state.aiPanelWidthRatio:1,l=i?1-this.state.aiPanelWidthRatio:0,g=`
|
|
269
269
|
.custom-scrollbar::-webkit-scrollbar {
|
|
270
270
|
width: 6px;
|
|
271
271
|
}
|
|
@@ -304,9 +304,9 @@ ${Y}`)}else W(K?`Command executed: ${D}`:`命令已执行: ${D}`)},xt=D=>{if(!r)
|
|
|
304
304
|
white-space: pre-wrap;
|
|
305
305
|
word-break: break-all;
|
|
306
306
|
}
|
|
307
|
-
`,
|
|
307
|
+
`,c=this.state.isTimeframeModalOpen||this.state.isIndicatorModalOpen||this.state.isTradeModalOpen||this.state.isChartTypeModalOpen||this.state.isSubChartModalOpen||this.state.isTimezoneModalOpen||this.state.isTimeFormatModalOpen||this.state.isCloseTimeModalOpen||this.state.isTradingDayModalOpen||this.state.isMobileMenuOpen,d=this.state.currentI18N===Mt?"Loading data...":"正在加载数据...",u=this.state.currentI18N===Mt?"Load failed":"加载失败";return m.jsxs("div",{ref:this.candleViewRef,style:{position:"relative",width:o,height:n,background:t.layout.background.color,display:"flex",flexDirection:"column",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',userSelect:"none"},"candleview-container":"true",onContextMenu:this.handleContextMenu,children:[m.jsx("style",{children:g}),e&&m.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:9999,backgroundColor:t.layout.background.color+"10",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",backdropFilter:"blur(1.5px)"},children:m.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"16px"},children:[m.jsx("div",{style:{width:"48px",height:"48px",border:`4px solid ${t.toolbar.border}30`,borderTop:`4px solid ${t.toolbar.button.active}`,borderRadius:"50%",animation:"spin 1s linear infinite"}}),m.jsx("div",{style:{color:t.layout.textColor,fontSize:"16px",fontWeight:500,textAlign:"center"},children:d}),this.state.dataLoadProgress>0&&m.jsxs("div",{style:{width:"240px",marginTop:"8px",textAlign:"center"},children:[m.jsx("div",{style:{width:"100%",height:"8px",background:t.toolbar.border+"30",borderRadius:"4px",overflow:"hidden",marginBottom:"8px"},children:m.jsx("div",{style:{width:`${this.state.dataLoadProgress}%`,height:"100%",background:`linear-gradient(90deg, ${t.toolbar.button.active}, ${t.chart.candleUpColor})`,transition:"width 0.3s ease",borderRadius:"4px"}})}),m.jsxs("div",{style:{fontSize:"14px",color:t.toolbar.button.color,opacity:.8},children:[this.state.dataLoadProgress,"%"]})]}),this.state.loadError&&m.jsxs("div",{style:{color:t.chart.candleDownColor,fontSize:"14px",textAlign:"center",marginTop:"12px",padding:"8px 16px",backgroundColor:t.chart.candleDownColor+"15",borderRadius:"6px",maxWidth:"320px"},children:[u,": ",this.state.loadError]})]})}),m.jsx("style",{children:`
|
|
308
308
|
@keyframes spin {
|
|
309
309
|
0% { transform: rotate(0deg); }
|
|
310
310
|
100% { transform: rotate(360deg); }
|
|
311
311
|
}
|
|
312
|
-
`}),
|
|
312
|
+
`}),c&&m.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,zIndex:998,background:"transparent"},onClick:this.handleCloseModals}),this.state.toppanel&&m.jsx(ml,{currentTheme:t,activeTimeframe:this.state.activeTimeframe,activeMainChartType:this.state.currentMainChartType,isDarkTheme:this.state.isDarkTheme,isTimeframeModalOpen:this.state.isTimeframeModalOpen,isIndicatorModalOpen:this.state.isIndicatorModalOpen,isChartTypeModalOpen:this.state.isChartTypeModalOpen,isSubChartModalOpen:this.state.isSubChartModalOpen,isTimezoneModalOpen:this.state.isTimezoneModalOpen,onThemeToggle:this.handleThemeToggle,onTimeframeClick:this.handleTimeframeClick,onIndicatorClick:this.handleIndicatorClick,onChartTypeClick:this.handleChartTypeClick,onCompareClick:this.handleCompareClick,onFullscreenClick:this.handleFullscreen,onReplayClick:this.handleReplayClick,onTimezoneClick:this.handleTimezoneClick,onTimeframeSelect:this.handleTimeframeSelect,onChartTypeSelect:this.handleChartTypeSelect,onTimezoneSelect:this.handleTimezoneSelect,handleSelectedSubChartIndicator:this.handleSelectedSubChartIndicator,handleSelectedMainChartIndicator:this.handleSelectedMainChartIndicator,onCloseModals:this.handleCloseModals,onSubChartClick:this.handleSubChartClick,selectedSubChartIndicators:this.state.selectedSubChartIndicators,onCameraClick:this.handleCameraClick,i18n:this.state.currentI18N,currentTimezone:this.state.currentTimezone,isTimeFormatModalOpen:this.state.isTimeFormatModalOpen,isCloseTimeModalOpen:this.state.isCloseTimeModalOpen,isTradingDayModalOpen:this.state.isTradingDayModalOpen,onTimeFormatClick:this.handleTimeFormatClick,onCloseTimeClick:this.handleCloseTimeClick,onTradingDayClick:this.handleTradingDayClick,isMobileMenuOpen:this.state.isMobileMenuOpen,onMobileMenuToggle:this.handleMobileMenuToggle,timeframe:this.state.timeframe,timezone:this.state.timezone}),m.jsxs("div",{style:{display:"flex",flex:a?`calc(100% - ${s*100}%)`:"100%",minHeight:0,position:"relative"},children:[this.state.leftpanel&&m.jsx(ul,{currentTheme:t,activeTool:this.state.activeTool,onToolSelect:this.handleToolSelect,onTradeClick:this.handleTradeClick,chartLayerRef:this.chartLayerRef,selectedEmoji:this.state.selectedEmoji,onEmojiSelect:this.handleEmojiSelect,i18n:this.state.currentI18N,candleViewRef:this.candleViewRef,ai:this.state.ai,aiconfigs:this.state.aiconfigs,handleAIFunctionSelect:this.handleAIFunctionSelect,candleView:this}),m.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"row",minWidth:0,minHeight:0,position:"relative"},children:[m.jsx("div",{style:{flex:h,display:"flex",flexDirection:"column",minWidth:0,minHeight:0,position:"relative"},children:m.jsxs("div",{ref:this.chartContainerRef,style:{flex:1,position:"relative",minHeight:this.state.selectedSubChartIndicators.length>0?"50px":"0"},children:[m.jsx("div",{ref:this.chartRef,style:{width:"100%",height:"100%"}}),this.state.chartInitialized&&m.jsx(Do,{ref:this.chartLayerRef,chart:this.chart,chartSeries:this.currentSeries,currentTheme:t,activeTool:this.state.activeTool,onCloseDrawing:this.handleCloseDrawing,onTextClick:this.handleToolSelect,onEmojiClick:this.handleToolSelect,selectedEmoji:this.state.selectedEmoji,chartData:this.state.displayData,title:this.props.title,selectedMainChartIndicator:this.state.selectedMainChartIndicator,selectedSubChartIndicators:this.state.selectedSubChartIndicators,showInfoLayer:this.state.showInfoLayer,i18n:this.state.currentI18N,markData:this.state.markData,onMainChartIndicatorChange:this.handleMainChartIndicatorChange,handleRemoveSubChartIndicator:this.handleRemoveSubChartIndicator,currentMainChartType:this.state.currentMainChartType,viewportManager:this.viewportManager,ai:this.state.ai,aiconfigs:this.state.aiconfigs,currentAIFunctionType:this.state.currentAIFunctionType,timeframe:this.state.timeframe,timezone:this.state.timezone}),m.jsxs("div",{style:{position:"absolute",bottom:"110px",left:"50%",transform:"translateX(-50%)",display:"flex",alignItems:"center",gap:"25px",zIndex:100,opacity:0,transition:"opacity 0.3s ease"},onMouseEnter:p=>{p.currentTarget.style.opacity="1"},onMouseLeave:p=>{p.currentTarget.style.opacity="0"},children:[m.jsx("button",{onClick:this.handleZoomOut,style:{width:"36px",height:"36px",borderRadius:"50%",border:"none",background:t.toolbar.button.backgroundColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:t.toolbar.button.boxShadow},children:m.jsx(_n,{size:18,color:t.toolbar.button.color})}),m.jsx("button",{onClick:this.handleLeftArrowClick,style:{width:"36px",height:"36px",borderRadius:"50%",border:"none",background:t.toolbar.button.backgroundColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:t.toolbar.button.boxShadow},children:m.jsx(mn,{size:18,color:t.toolbar.button.color})}),m.jsx("button",{onClick:this.handleRefreshClick,style:{width:"40px",height:"40px",borderRadius:"50%",border:"none",background:t.toolbar.button.backgroundColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:t.toolbar.button.boxShadow},children:m.jsx(Pn,{size:20,color:t.toolbar.button.color})}),m.jsx("button",{onClick:this.handleRightArrowClick,style:{width:"36px",height:"36px",borderRadius:"50%",border:"none",background:t.toolbar.button.backgroundColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:t.toolbar.button.boxShadow},children:m.jsx(kn,{size:18,color:t.toolbar.button.color})}),m.jsx("button",{onClick:this.handleZoomIn,style:{width:"36px",height:"36px",borderRadius:"50%",border:"none",background:t.toolbar.button.backgroundColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",boxShadow:t.toolbar.button.boxShadow},children:m.jsx(Sn,{size:18,color:t.toolbar.button.color})})]})]})}),r&&m.jsx("div",{ref:this.aiPanelResizeRef,style:{width:"8px",cursor:"col-resize",backgroundColor:this.state.currentTheme.divider.normal,display:"flex",alignItems:"center",justifyContent:"center",position:"relative",transition:"background-color 0.2s"},onMouseDown:this.handleResizeMouseDown,onMouseEnter:()=>{this.isDragging||this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.hover)},onMouseLeave:()=>{this.isDragging||this.aiPanelResizeRef.current&&(this.aiPanelResizeRef.current.style.backgroundColor=this.state.currentTheme.divider.normal)},children:m.jsx("div",{style:{width:"2px",height:"40px",backgroundColor:this.state.currentTheme.toolbar.button.color+"60",borderRadius:"1px"}})}),r&&m.jsx("div",{style:{flex:l,minWidth:"200px",display:"flex",flexDirection:"column",backgroundColor:t.layout.background.color,borderLeft:`1px solid ${t.toolbar.border}30`,overflow:"hidden"},children:m.jsx(sl,{currentTheme:t,i18n:this.state.currentI18N,currentAIFunctionType:this.state.currentAIFunctionType,aiconfigs:this.state.aiconfigs,currentAIBrandType:this.state.currentAIBrandType,onClose:()=>{this.setState({openAiChat:!1})},onSendMessage:async p=>new Promise(M=>{setTimeout(()=>{M()},1e3)}),data:this.originalData})})]})]}),a&&m.jsx("div",{ref:this.terminalResizeRef,style:{height:"8px",cursor:"row-resize",backgroundColor:this.state.isResizingTerminal?t.divider.dragging:t.divider.normal,display:"flex",alignItems:"center",justifyContent:"center",position:"relative",transition:"background-color 0.2s"},onMouseDown:this.handleTerminalResizeMouseDown,onMouseEnter:()=>{this.isDraggingTerminal||this.terminalResizeRef.current&&(this.terminalResizeRef.current.style.backgroundColor=t.divider.hover)},onMouseLeave:()=>{this.isDraggingTerminal||this.terminalResizeRef.current&&(this.terminalResizeRef.current.style.backgroundColor=t.divider.normal)},children:m.jsx("div",{style:{width:"40px",height:"2px",backgroundColor:t.toolbar.button.color+"60",borderRadius:"1px"}})}),a&&m.jsx("div",{style:{flex:a?`${s*100}%`:"0",minHeight:"130px",maxHeight:"50%",display:"flex",flexDirection:"column",backgroundColor:t.layout.background.color,borderTop:`1px solid ${t.toolbar.border}30`,overflow:"hidden"},children:m.jsx(ll,{currentTheme:t,i18n:this.state.currentI18N,placeholder:this.state.currentI18N===Mt?"Enter command (e.g., 'help', 'clear', 'theme light')...":"输入命令 (例如: 'help', 'clear', 'theme light')...",onCommand:this.handleTerminalCommand,autoFocus:!1,candleView:this,chartLayerRef:this.chartLayerRef})})]})}}exports.CandleView=Gi;exports.default=Gi;
|
package/dist/index.mjs
CHANGED
|
@@ -39568,6 +39568,8 @@ class Qn {
|
|
|
39568
39568
|
};
|
|
39569
39569
|
}
|
|
39570
39570
|
addMark(t, e) {
|
|
39571
|
+
if (!e || !e.series)
|
|
39572
|
+
return;
|
|
39571
39573
|
this._chartSeries = e;
|
|
39572
39574
|
const i = e.series.data();
|
|
39573
39575
|
if (!i || i.length === 0)
|
|
@@ -52960,22 +52962,24 @@ class vl {
|
|
|
52960
52962
|
const xl = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QrVaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJFeGVtcGkgKyBYTVAgQ29yZSA2LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOkFJR0M9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQUlHQy8xLjAvIiBBSUdDOkFJR0M9InsmcXVvdDtMYWJlbCZxdW90OzogJnF1b3Q7MiZxdW90OywgJnF1b3Q7Q29udGVudFByb2R1Y2VyJnF1b3Q7OiAmcXVvdDswMDExOTExMTAwMDA4MDIxMDA0MzNCMTAwMDUmcXVvdDssICZxdW90O1Byb2R1Y2VJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMSZxdW90OzogJnF1b3Q7JnF1b3Q7LCAmcXVvdDtDb250ZW50UHJvcGFnYXRvciZxdW90OzogJnF1b3Q7MDAxMTkxMTEwMDAwODAyMTAwNDMzQjEwMDA1JnF1b3Q7LCAmcXVvdDtQcm9wYWdhdGVJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMiZxdW90OzogJnF1b3Q7JnF1b3Q7fSIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgD6APoAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopaAEopaSgAooooAKWkooAKKKWgBKKKKACiiigAooooAKKWigBKMUUUAFFLSUAFFLSUAFFFFABRRRQAUUtJQAUUUUAFFFFABRRS0AJRRRQAUUUUAFFFFAC0lLRQAlFLSUALSUtFACUUd6KACiiigAooooAKKKKACiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiloASiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiigAopaKAEopaSgAopaKAEooooAKKKWgBKKKWgBKKKWgBKKKKACiiigApaKSgAopaKAEoopaAEopaSgBaSiigAooopgLSUUUgCiiigAooooAKKKWgBKWikoAKKKKACiiigAooooAWiiigApKWkoAKKKKACiiigAooooAKWkooAKKKWgApKWigBKKWkoAWkoopgLSUUUgCiiigAooopgLRSUUgClpKWgBKKKKACiiigApaSigBaSiigApaKKACkopaACkpaSgBaSiigAooooAKKWkoAKWiigBKKKKACiiloASilpKACilpKAClopKAClpKKAFpKKKYBS0lFIAooooAWkpaSmAUUUUgCiiigApaSigBaSiigAooooAKKWkpgFFFFIAoopaACkpaSgBaKSlpgJS0lFAC0lKaSkAUtJRQAtJS0lABS0UlAC0lLRQAlFLSUAFLRRTAKKKKAEooopAFFFFABRRRQAUUUUALRRSUAFLSUUAFFFFABRRRQAUUUUAFFFFAC0lLRQAlFFFABRRRQAtFJRQAUUUUAFFLSUALSUUUwClpKWkAlLRSUALRSUUAFFFFMAooopALRSUtACUUUtMApKWkpALSUUUwCloopAFFJS0wEooopAFFFLQAlFFFAC0UlLQAlFLSUALRSUUAFFFFABS0lFABS0lFABS0UlABRRRTAKKKKAFpKKKAFpKKKQBRRRQAUtJRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooAKWkopALRSUtACUUUUwCiiigBaKKKAEoopaQBRSUUAFLSUUAFFFFMAooooAKKKKQBRRS0AFFFFMBKKKKQBRRRQAUUUUALSUUUALRRSUAFFLSUAFFFLQAlFLRQAlFLRQAlFFFABRRRQAClpKKAClopKAFpKWkoAKKKKAClpKWgBKKKKYBRRRQAUUUUALRRRSASiiimAUUUUgFpKWkoAKWkooAKKKWgBKKWkpgLSUtFIAopKKYBS0UlIApaKKAEopaSgAopaSmAtFJS0gCkopaAEooooAKKKKYBRS0lAC0lLSUAFFLSUALSUtJSAKKKKYBS0lFIApaKSgAooooAKKKKAClpKWgBKWkopgFFFFAC0lFLSASiiimAUtFJSAWkoooAKKKWgBKWkpaACiiimIKSiigYUUUtIBKKKKYBRRRQAUUtFIApKKKAFopKWgAopKWmAlFFLSASiiigAooooAKKKKYBS0lFABRS0lIAopaKAEooooAKWkpaAEooopgFFFFAC0lLSUgFpKWigApKKWgBKKKKAFpKKKYBRRRQAUUUUAFFLSUAFLSUtIBKKWkoAWkoooAKKWkoAKKWkoAKKKKYBS0UUgCkoooAKKKWgBKKWkpgFFFFAC0lFLSAKSiimAtFJS0AFJS0UAJRS0UgCkpaKAEooopgFFFFABRRRQAUUUUgClpKWgAopKKAClopKAFoopKAFpKKKACiiloASiiloASiiigAooopgFFFLQAlFFFIBaSlpKAFpKKKAFoopKYC0UUUAJRRRQAUUUtIAopKWgBKKKWmAlFLSUgFpKKKACiilpgFFJS0AJRRRSAKKKKACiiigAooopgFFFFABRS0UAFJRRSAKKKKAFpKKWgBKKKKYBRRRQAUtJS0gCikpaAEooopgFFFFAC0lFFABRRRQAUUUUAFFFFABRRS0AFFJRSAWiikoAKKKKACiiigAoopaAEooooAKKWkoAWikpaAEoopaAEoopaAEopaSgAooopgLSUtFACUUUUALRSUtIBKKKKACiiigAooooAKKKKACiiimAUUUtIBKWikoAKWkooAWikooAKKKKAFpKKKAClpKWgAopKKAFpKKKYBR2opaAEooopAFFFLTASiiigBaSiikAtJRS0wEooopAFLRSUALSUUtACUtJS0AJRRRQAUtJS0wEpaSloAKSlpKACiiikAUUUUAFFFFABRRRQAUUUtMBKKKKAFpKKWkAlFLRQAUlFFMApaSlpAJRRRTAKKKKACiiigBaSlpKQC0UUlAC0UlLTASloooASiiigAopaKACiiigBKWiikAlFFFABRRRQAUUtJQAUtJRQAtJRRTAKWkopALSUUtMBKKKKAClpKKQC0lFFABRS0lAC0lFFMApaSigApaSigBaKKSgBaKSigAooooAKWikpAFLR2pKACloopgJS0lFAC0lFLSASlpKKAClpKWgBKKWkpgLRRRQAUlFFAC0lFFABRRRQAUUtFACUUUUAFFFFABS0lFABRRRQAUUUUgFpKWigApKWkpgFFFFABRRRQAUUUUgCloopgFJS0lABS0lLSASiiigAooooAKKKKAFopKKACiiigAoopaAEopaKAEopaKAEopaKACkpaSgAooopgFLSUtABSUtJQAtFFJQAtJS0lIApaKSgBaKSlpgFFFJQAtJRRQAtJS0lIAooopgFFFFABRRS0AFJRRQAUUUUAFFFFABRRRQAtJS0lABRRS0AFFJRSAKKKKYC0lFFAC0UlFABRS0lABS0lLQAlFLSUAFLSUUgCiiigBaSiigAopaSmAUUtGaQCUtJRQAUtJRQAUUUUAFLRSUALRSUtMBKKWkoAKKKKACiiigBaSlooASilooASlpKWkAlFFFMAooooAWkoopAFFFLTAKSlpKQC0lFLTASiiigApaSikAUtFFMAopKWgBKKKDSAKKKKACiiigAooooAKKKKACiiigAopaKACkoopgFFLRSASilopgJRRRQAUUUUgCiilpgJS0lFAC0lFFABRRRQAUUUUgClpKWgAooooAKKKSgAooopgFFFFABRRRQAUtFFAhKKKKBhS0lFABRRRQAtFJRQAUtFFACUtJS0AFFFFACUUUUAFFFFABRRRQAUUUUAFFFFABRS0lABRRRSAKKWkoAKKWkoAWkopaYCUtJRQAUtJRSAKKWkoAKWkooAKKKWgBKKKKYBRRRQAtJRRQAUtJS0gEpaKSmAtJS0lABRRRQAUUUUAFFFFABR1oopAFFLSUAFFFFABRRRQAUUUUwCiiikAtFJS0wCkpaSgApaSikAUUUUAFFFFABS0lFABS0lLQAlFLSUwCiilpAJRRRTAO1FLRSASlpKWmAlFLSUAFFFFABS0lLQAUlFFIBaSilpgFFFJ3oAKWkooAKKWkpALRSUUwFpKKKAFoopKACiiigAooooAKKKWgBKWkopAFLRSUwFpKWkoAKKKKAFpKKKACiiloASilooASilpKAFpKKKQBRRRTAKO9FFAC0UlFIAooopgFLSUtABRSUtIBKKWigAooooASilpKYBRRS0gEopaKYCUUUUALRSUUgFopKKAClpKKYBRRRQAtFJS0AJRS0lIBaKKKACkpaSgAooopgFFFFABRRRQAUUUUAFFFFIApaSimAUUtFACUUUUALSUUUALSUUUAFFFLSASiiigAooooADRRS0AFJRRTAWkpaSgAooooAWkoopAFFFFABS0lFABRRRTAKKKKAFpKKKACilpKQBRRS0wCkoooAKKKKAFpKKKQBRS0lAC0UlLTAKKSloASiiigAooooAKKKKQBRRRQAUUUtACUUUUALSUtFACUUtJQAUtJS0wCikooAWkopaQCUUUUAFFFLQAlFFLTAKSlooAKSlpKACilooASlpKWgBKWikpAFFLRTAKSiikAUtJRQAUUUUwFpKKKAClpKKQBQaKKACilpKACiiimAtJRRQAtFJRSAKKWimAUlFFABRRRQAtJRRSAKKKKYBRS0lABRRRSAKKKKAClpKKYC0lFFABS0lLQAlLRRQAlFFFIAooooAKKKKAClpKWgApKKKACiiloAKSlooASilopgJRRRQAUUUUAFLSUUAFFFFIAooopgFFFFABS0lFABRRRQAUUUUAFFFFABRRS0AJRS0UAJRRRQAUUUUAFFLRQAlFFFIAooooAKKKKACiiloAKSiigAooopgFFLRQAUlFFABRRRSAKKKKAClpKKAFopKWmAUUUlABS0lFAC0UUUAFFFFABRSUtABRRSUALSUtJQAUUUUAFFFFABRRRQAUUUUgCiiigAooopgFFFFABRRRQAUUUUAFLSUUAFFFFABRS0lAC0lLSUgA0UUUwCiiigApaKSkAd6KKKYC0UUUAJS0UUAJS0UUAFFFFACUUUtIBKKKKACiiigAooooAKWiimAUlLRSAKKKKACkopaAEoopaYBSUUUAFFFFABS0lFABRRRQAUUUUAFFFFABRRRQAUtJRSAKKWkpgFFLSUAFFFFAC0lLSUAFFFFAC0UlFAC0UlFIApaSimAUtJS0AJRRRQAUUUUAFFLSUgCiiigAopaSmAUUUUAFFFFABRS0lABS0lFIBaKSigBaSlpKYBS0lFABS0lFABRRRQAUtJRQAUUUUAFLSUUAFFFFAC0lFFABRRRSAKWkopgFFLSUAFFFFABRS0UgEopaSgApaKSgAooopgLSUUUAFLSUtACUtJS0AJRRRQAUUUUAFFFLQAUUlLQAlLSUtABRRRQAUlFFABRRS0gEooooAKKWkoAKKKKAFopKWmAlFFFAC0neilpAFFFFABRRSUAFFLRQAlFFLTASilpKAClpKWkAlFFFAC0lFFMAooooAWikpaAEooooAKKKWkAlLSUUAFFFLTASlpKKACilpKACilpKQBS0lFMAopaSgBaKKKAEopaSgAooooAKKWkpAFFFFABRRRTAKKKKACiiigBaSlopAJRRRQAUUUUAFFFFMAooooAKKKKACiiloASilpKACiiigAoopaAEooooAKWkpaQCUUtJQAUUtFACUUtJQAUUUUAFFFFABRS0UAJRS0lABRRRTAWiiigApKKKACilooASlpKWgBKKKKACiiigAooooAKKKKACiiikAUtJRQAUUUUAFLSUtACUUUUwFopKKACilpKACiiikAUUUtABRRRQAUUlLQAUUlFABRRRTAWkpaKAEopaSgAopaSgAooooAKKKWgBKKKKACiiigBaSlpKQC0lFLTASilpKQBS0lLQAUlLRQAlLSUUALSUUUwCiiigApaSigAooopALRSUUALSUtFACUUtFACUUUUwCilpKACilopAFFJS0AJRS0UAJRRS0AFJS0UAJRRRTAKWkooAWiikoAWkoooAKKKKACiiigAooooAKKKWgBKKWkpALSUUUAFLSUUwCiiikAUUtJQAtFFJQAtFFFMApKWigBKKKKACilopAJS0lLQAUUlFAC0UlFMAooooAKKKWgApKKKQBRRRQAUUUUAFFFFABRRRQAUUtJTAWkoopAFFFFMApaSikAUtFFABSUtJQAUUUUwCiiigBaKSigApaSigBaSiikAUUUtMAooopAJRRRTAKKKKACiiikAUUUUwCiiikAtJRRQAUUtJQAUUUUAFFFFMAooooAKKKKACiiikAUtFJQAUtJRQAUUUUAFFFFABRRRQAUUUUwClpKWkAlFFFABRRRQAUUUUAFFFFMAopaSgApaSigAooooAKKWkpALSUtJQAUUUUALSUUUALSUtJQAUUUUAFFFFAC0lFLQAlFLRQAlFFFAC0lFFMBaSlpKACiiikAUtJRQAUUUUwCiiigBaSiikAtFFFAC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0lFAC0UUUwCiiigAooooAKKKKAEpaSigAooooAKKKKAFpKKKACiiigAooooAKKKKACiiigAooopALSUtJQAUUUUALRRSUALRSUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAuaSiigAooooAKKKKACiiigBaKSigAooooAKKKKACjNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFLQAlFFLQAlFFFABRRRQAUUUUAFFFFABRRRQAUtJRQAUtJS0AJRRRTAWkpaSkAtJS0UAFFJRTAKWkpaACkoooAWikopAFLSUtACUtJS0wCiiigBKKKKACilooASlpKKQBRRRQAUUUUALRSUUALRRRTAKSiigBaKKSgBaKSloASiiigApaSloASiiigAopaSkAUUUtMBKKKKACiiigAooooAWkopaAEooooAKKWkoAWiikpAFLSUUAFLSUUABooopgFFFFIAooooAKWkooAKKKKYBRS0UgEpaSigAooopgFFFFAC0lFFIAooopgFFLSUAFLSUtIApKWkoAKWkpaAEoopaAEpaKSgAooooAKKKKAClpKKAClpKKYC0UlLSASiiigApaSloAKSiigAooooAKKWkoAKKKKACiiimAUUtJQAtJRRQAtJRRQAUtFFIBKWkooAKWikpgFFFFABS0lFIApaSimAtJRRQAUUUtABRSUUgCiiigAooooAKKKKAClpKKAFpKKKYBRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooFFABRS0lMAopaSgAooooAKWikpAFFFLQAlFFFMAooooAKKKKQBRRS0AJRRRTAKKKKAClpKKQBRRRQAUtJS0AJRRRQAUUUUAFFFFABRRRTAKKWkoAKKWkoAKKKKQBRRS0wEooopALSUUUAFFFFMAoopaQCUUtJQAtJS0lABRRRQAUUtJQAUUUUwCiiloASiiigAopaSkAUUUUwCiiigAooooAKWkopAFFFFMAooooAKKKKACiiikAUUUUALRSUUALSUUUwCilpKACiilpAJRRRTAKKKWgBKKWkpAFFLSUAFFFFABRRRQAUUUUAFLSUUAFLRRTAKSlpKACiiigAoopaQCUUUUwFpKKKAFpKKKACiiikAUtJS0AJS0UlMApaKKACkpaSkAUtJRQAUtJRTAWkoooAWikpaQBRSUUwCiiikAUUUUwCiiigAooooAKWkpaQCUUUUwCilpKACilpKACiiikAUtJS0AJRRRTAKKKKAFpKWkoAKWkpaQBSUtJQAUUtJTAKWko7UgCiiigAooooAKKKKACilooASiiimAUtFJQAUUUtIBKKKKACiiloASiiimAtFJRSAKKKKYBRRRQAUtFFACUUtJSAKKWkoAWkopaYCUtFFACUUUUALSUUUAFLSUUAFFFFABS0lFABRRRSAKKWigBKKKKACiiigAooooAKWkpaAEooopgFLSUUAFFFFIAooooAKKKKACiiimAUUUUALSUtJSAKWkpaAEooooAKWikoAWikooAKKKWgAopKKYC0lFFAC0UlFABRRRQAUUUUAFFFFABRRRSAKKKKYBRRRQAUtJRQAUtFFABSUUUAFFFFIApaSigAooopgFFFFABRRRQAUUUUgCiiigAooooAKKKWgBKWkooAKKKKACiiloASiiimAUUUUAFFFFAC0lFLSASlpKKACiiigAooopgFFLSUAFFFFABS0lLQAUlFFABRRRQAtJRRQAClopKAClpKKACiiigApaSloASlpKKACiiloASiilpAFFJS0AFJS0lABRRRQAUUUUAFFFFABS0lFABS0lFABRS0lABRRS0AHakoooAKKWkoAWikooAKKWkpgFFFFIBaKKKAEopaSmAtJS0lAC0UlFIBaKKKAEooopgFFFFABRRRQAtJRRQAUUtJQAUdaKWgBKWikoAKKKKAFpKKKACiiikAUUUUwCiiigAooooAKKWigBKKWkoAKWkooAWkoooAKKKKAFpKKKQBRRRQAYopaSgApaSigAopaSgBaSiloASiiimAUtJRQAUUUtACUUtJQAUUtFIBKKWigBKKKKYC0UlFABRRRQAUUUUgFpKKWgBKKKWgBKKKKYBS0lFABRRS0AJRRS0AJRS0lABS0UUAFFFJQAUtFJSAKKKWmAUUUUAJS0lFABRRRSAKKKKACiiigAooooAKKWkoAKWkpaYCUUtJQAUtJS0gCkopaYBRRSUAFLSUUAFLSUooAKKKSkAUtJRTAWikooAKKKKACilpKQBS0lFABS0lFABS0lLQAUlFFABS0lFMAooooAKWkooAKKKKAClpKKQBRRRQAUUtFMApKWkoAKKKKACiiloASiiigAooooAKKKKQC0UlFABS0lFABRR3oxQAUUUUAFFFFABRRS0AJS0UUAJRRRTAKKKWgBKWiigBKWkpaQCUtFJTAKKWigBKKWkoAKKKKQBRRRQAtJRRQAtJRRQAUUUUwCiiigAooopAFHelpKAFpKKKACilooASiiimAUUUUALSUtFIApKKKYC0UlFABRRRSAKKKKACiiigApaSigAopaKAE70UUUwCiiloASlpKKAClopKACilooASilooASilooAKSilpAJS0UUAJRRS0AFJS0lAC0lFFABRS0UAFJS0lABRRRQAUUtFACUUUUwFopKWkAlFFFABRS0lABRRRQAUtJRQAUtJRTAWkoopAFFFFABS0lGKYBRRRQAUUUUALRSUUgCiiigApaSigBaSiloASiiimAUUtJSAKWkooAWkpaKAEooopgFLRRQAUUlFABS0lFABRRRQAUtJRQAtJRS0AFFJRSAKKWkoAKKKWgBKKWkoAKKKKYBS0lFABRRRQAUUUtIBKKWigAooopgJRRRQAUUUUAFFFFIBaSiigApaKSgAooooAKKWigBKKKKACiiigAooooAWkoo70ALSUtFACUUUUAFFFFAC0lFFABRRRTAWikpaACkpaKQBRSUUALRSUtACUUUtACUtJS0AJRRRQAUUtJQAUUUUALRSUUAFLSUUwCilpKACiiikAUUUtACUUtJQAUUUUwFpKKO9ABRRS0AJRS0UgEooopgLSUUUgCiiimAUUUtABRSUtIBKKKKAFopKKAFpKKWgBKWkooAWiikoAWkpaKAEooooAKKKKYBRS0lABRRRQAUtFJQAUUUUALSUUUAFFFFAC0UlFIAooopgFFFFIAooopgLSUtJSAKWkooAWikooAKWkopgLRRRQAlFFFABRS0lABRRRQAUtFFIBKKKKACiiigApaSloASiiloAKKSloASlpKKACiiigAoopaAEooooAKWkooAKKKWgApKKKACiiigBaSiigAooooAKKKWgAoopKACjtRS0wEpaSikAUUtJQAUUUUAFFFFMAopaSgApaSigBaSiikAUUUUALRSUtACUUtJQAUUUUAFFFLQAUlFFABRRS0AJRRRTAKWkooAWikopAFFLRQAlLRSUAFFFFABRRS0AJRRRTAKWkopALRRRQAlLSUUALSUUtMBKKKKAClpKKACiiigAopaSgAooooAWkoooAKKKKACiiigBaKSlpAFJS0lABRRRQAUUUUALRRRQAUUUUAJRRS0AJRRRQAtJRRTAKKKKACiiigAooopAFFFFABS0lFABS0lFAC0UUlABRRRQAUUtJQAUUUtABSUtJQAUUtJQAUUtJTAKWkpaQCUUUUAFFFFABRRRQAUUtFACUUtJQAUUUUwCiilpAJRRRQAUUUtACUUUUAFLSUtMBKKKWgBKKWikAlFLSUAFFFFABS0lFAC0lLRTASlpKKQBRS0lABS0lFABRS0lABRS0UwEoopaAEpaSikAUUtJQAUUUUwCilooASiilpAFFJRQAtFFFACUUUtMApKKKQBRRRQAtJRRQAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKAFopKKQBRRRQAUUtJQAUtJRQAtJRRQAtFJRQAUUUUAFFFFMAooooAKWkooAKKKWkAlFFFABRRRQAUtFJTAKWkooAWkpaSkAtFJRQAtJRRQAtJRRQAtJS0lMApaKKACkpaSkAUtFJQAUUtJQAUUUUAFLSUUALSUUUAFFFFAC0lFFABRS0lAC0UlFABRRRQAUUUtMBKWkpaACkpaSgAopaSgAooooAKKKKAClpKKACiiigApaSigBaSiikAUUUUAFFFFMBaKSigAooooAKKWkoAKKKKAFpKWikAUUlFABRS0UwCiiigApKWkoAKKKWgBKKKKACiiigAooooAKKWkpAFFFLQAlFFFMAoopaACkoopALSUUUAFFFLQAUUUUwEoopaQBRRRQAUUlFAC0UlFAC0UUUAFJS0UAFFFFMBKKKKACiiikAUUUUAFFFFAC0lFFABS0UlABRS0UAJRRS0AJRRRQAtFJRQAUtJRQAUtJRTAWkoopAFLSUUALSUUUALSUUUAFFFFABRRRQAtJS0UAJS0lFAC0lFFAC0UlFABS0lLQAlFFFMBaKSigBaKSigAooopALSUtJQAUUtJTAKKKWkAlFFLTASlpKKACiiigAopaSgAooooAKKKKQBRRRQAUtJRQAUUUUALRSUtABSUUtACUUtJQAtFFFMAopKKACilopAFJRRTAKKKKACiiigBaSlopAJS0lFAC0lLRQAlFFFMAooopAFFFFABRS0AUAFGKdijFADaKdRQA2inUYoAZRT8UYoAZRT8UYoAZRT6KAGUU+jFADKKfijFADaSn4oxQAyilNJQAUUUUAFFFFAC0UlFABS0UUwCkpaSkAUUUUALSUUtACUUUUAFFLSUALRSUUALSUUtACUUUtABSUZpaAEooooAKWkpaYCUUUUALRSUUgFpKWkoAKKKWgBKWkpaAEopaSgApaKSgBaSiimAUUUUgFpKWkoAWiikoAKWiimAlLRRSASlpKWmAlFFLQAlLSUUgClpKWgBKKKWmAlFLSUAFLSUUAFFLSUgCiiloAKKSimAUUUUgFpKWkoAWkoopgFLSUtIBKWkooAWikooAKKWkoAKWikpgLRRSUgClpKKYBRS0lAC0lFFABRRRSAKKWigAoFJThQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpWpKACiiigAooooAWkoooAKWkpaYBRRSUALSUtJSAWkpaSmAtJRRQAtJRRSAKKWkoAWkoooAKKKKACiiigApaSloASiiigAopaSgAooooAWkoooAWikooAWkoooAKKKKACiiloASiilpgFJS0lIAooooAKKKBQAtJS0UAJS0lFABRRS0wEooooAKKKKQBRRRQAUtJRQAUtJRQAUUUUwClopKQBRR3ooAKKKKYC0lFFABRRS0gEpaKSgAoopaYCUUUtIBKKKKACiiloASiiimAUtJRQAtJRS0gCikooAKKWkoAKKWigBKKKKACnCm04UALS0UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpTSUAFFFFABRRRQAUCiigBaSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKWkooAKKKKAClpKKACiiigAooooAKWkooAWkoooAKKKKADNFFFABRRRQAUUUUAFFFFABRRRQAtHSkpaAF3UmaSigB2aTdSUUALmjNJRQA7NJmkooAXNGaSigBc0ZpKKAFzRmkooAXNGaSigBc0ZpKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=";
|
|
52961
52963
|
class yl extends rt.Component {
|
|
52962
52964
|
constructor(t) {
|
|
52963
|
-
super(t), this.candleViewRef = rt.createRef(), this.chartRef = rt.createRef(), this.chartContainerRef = rt.createRef(), this.chartLayerRef = rt.createRef(), this.chart = null, this.resizeObserver = null, this.realTimeInterval = null, this.currentSeries = null, this.chartManager = null, this.updateTimeout = null, this.viewportManager = null, this.chartEventManager = null, this.aiPanelResizeRef = rt.createRef(), this.isDragging = !1, this.startX = 0, this.startChartWidth = 0, this.
|
|
52964
|
-
a.preventDefault(), this.isDraggingTerminal = !0, this.setState({ isResizingTerminal: !0 });
|
|
52965
|
-
const s = this.candleViewRef.current;
|
|
52966
|
-
s && (this.startY = a.clientY, this.startTerminalHeightRatio = this.state.terminalHeightRatio, this.containerHeight = s.clientHeight), document.body.style.cursor = "row-resize", document.body.style.userSelect = "none";
|
|
52965
|
+
super(t), this.candleViewRef = rt.createRef(), this.chartRef = rt.createRef(), this.chartContainerRef = rt.createRef(), this.chartLayerRef = rt.createRef(), this.chart = null, this.resizeObserver = null, this.realTimeInterval = null, this.currentSeries = null, this.chartManager = null, this.updateTimeout = null, this.viewportManager = null, this.chartEventManager = null, this.aiPanelResizeRef = rt.createRef(), this.isDragging = !1, this.startX = 0, this.startChartWidth = 0, this.containerWidth = 0, this.terminalResizeRef = rt.createRef(), this.isDraggingTerminal = !1, this.startY = 0, this.startTerminalHeightRatio = 0, this.preparedData = [], this.originalData = [], this.aiManager = null, this.handleTerminalResizeMouseDown = (a) => {
|
|
52966
|
+
a.preventDefault(), this.isDraggingTerminal = !0, this.setState({ isResizingTerminal: !0 }), this.candleViewRef.current && (this.startY = a.clientY, this.startTerminalHeightRatio = this.state.terminalHeightRatio), document.body.style.cursor = "row-resize", document.body.style.userSelect = "none";
|
|
52967
52967
|
}, this.handleTerminalMouseMove = (a) => {
|
|
52968
|
-
if (!this.isDraggingTerminal
|
|
52969
|
-
const s =
|
|
52968
|
+
if (!this.isDraggingTerminal) return;
|
|
52969
|
+
const s = this.candleViewRef.current;
|
|
52970
|
+
if (!s) return;
|
|
52971
|
+
const n = s.clientHeight;
|
|
52972
|
+
if (n <= 0) return;
|
|
52973
|
+
const o = this.startY - a.clientY, h = this.startTerminalHeightRatio + o / n, l = Math.max(0.2, Math.min(0.5, h));
|
|
52970
52974
|
this.setState({
|
|
52971
|
-
terminalHeightRatio:
|
|
52975
|
+
terminalHeightRatio: l
|
|
52972
52976
|
});
|
|
52973
52977
|
}, this.handleTerminalMouseUp = () => {
|
|
52974
52978
|
this.isDraggingTerminal && (this.isDraggingTerminal = !1, this.setState({ isResizingTerminal: !1 }), document.body.style.cursor = "", document.body.style.userSelect = "");
|
|
52975
52979
|
}, this.handleResizeMouseDown = (a) => {
|
|
52976
52980
|
a.preventDefault(), this.isDragging = !0, this.setState({ isResizingAiPanel: !0 }), this.aiPanelResizeRef.current && (this.aiPanelResizeRef.current.style.backgroundColor = this.state.currentTheme.divider.dragging);
|
|
52977
52981
|
const s = this.candleViewRef.current;
|
|
52978
|
-
s && (this.containerWidth = s.clientWidth, this.startX = a.clientX, this.startChartWidth = this.state.aiPanelWidthRatio
|
|
52982
|
+
s && (this.containerWidth = s.clientWidth, this.startX = a.clientX, this.startChartWidth = this.state.aiPanelWidthRatio), document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
52979
52983
|
}, this.handleMouseMove = (a) => {
|
|
52980
52984
|
if (!this.isDragging || !this.containerWidth) return;
|
|
52981
52985
|
const s = a.clientX - this.startX;
|
|
@@ -53330,10 +53334,6 @@ class yl extends rt.Component {
|
|
|
53330
53334
|
}
|
|
53331
53335
|
}, this.handleTerminalCommand = (a) => {
|
|
53332
53336
|
this.setState({ terminalCommand: a });
|
|
53333
|
-
}, this.handleToggleTerminal = () => {
|
|
53334
|
-
this.setState((a) => ({
|
|
53335
|
-
terminal: !a.terminal
|
|
53336
|
-
}));
|
|
53337
53337
|
}, this.openTerminal = () => {
|
|
53338
53338
|
this.setState({
|
|
53339
53339
|
terminal: !0
|
|
@@ -53627,7 +53627,7 @@ class yl extends rt.Component {
|
|
|
53627
53627
|
return t === "en" ? kt : Ho;
|
|
53628
53628
|
}
|
|
53629
53629
|
render() {
|
|
53630
|
-
const { currentTheme: t, isDataLoading: e, ai: i, openAiChat: r, terminal: a, terminalHeightRatio: s } = this.state, { height: n =
|
|
53630
|
+
const { currentTheme: t, isDataLoading: e, ai: i, openAiChat: r, terminal: a, terminalHeightRatio: s } = this.state, { height: n = "100%", width: o = "100%" } = this.props, h = i ? this.state.aiPanelWidthRatio : 1, l = i ? 1 - this.state.aiPanelWidthRatio : 0, g = `
|
|
53631
53631
|
.custom-scrollbar::-webkit-scrollbar {
|
|
53632
53632
|
width: 6px;
|
|
53633
53633
|
}
|
|
@@ -53666,7 +53666,7 @@ class yl extends rt.Component {
|
|
|
53666
53666
|
white-space: pre-wrap;
|
|
53667
53667
|
word-break: break-all;
|
|
53668
53668
|
}
|
|
53669
|
-
`,
|
|
53669
|
+
`, c = this.state.isTimeframeModalOpen || this.state.isIndicatorModalOpen || this.state.isTradeModalOpen || this.state.isChartTypeModalOpen || this.state.isSubChartModalOpen || this.state.isTimezoneModalOpen || this.state.isTimeFormatModalOpen || this.state.isCloseTimeModalOpen || this.state.isTradingDayModalOpen || this.state.isMobileMenuOpen, d = this.state.currentI18N === kt ? "Loading data..." : "正在加载数据...", u = this.state.currentI18N === kt ? "Load failed" : "加载失败";
|
|
53670
53670
|
return /* @__PURE__ */ m.jsxs(
|
|
53671
53671
|
"div",
|
|
53672
53672
|
{
|
|
@@ -53684,7 +53684,7 @@ class yl extends rt.Component {
|
|
|
53684
53684
|
"candleview-container": "true",
|
|
53685
53685
|
onContextMenu: this.handleContextMenu,
|
|
53686
53686
|
children: [
|
|
53687
|
-
/* @__PURE__ */ m.jsx("style", { children:
|
|
53687
|
+
/* @__PURE__ */ m.jsx("style", { children: g }),
|
|
53688
53688
|
e && /* @__PURE__ */ m.jsx(
|
|
53689
53689
|
"div",
|
|
53690
53690
|
{
|
|
@@ -53731,7 +53731,7 @@ class yl extends rt.Component {
|
|
|
53731
53731
|
fontSize: "16px",
|
|
53732
53732
|
fontWeight: 500,
|
|
53733
53733
|
textAlign: "center"
|
|
53734
|
-
}, children:
|
|
53734
|
+
}, children: d }),
|
|
53735
53735
|
this.state.dataLoadProgress > 0 && /* @__PURE__ */ m.jsxs("div", { style: {
|
|
53736
53736
|
width: "240px",
|
|
53737
53737
|
marginTop: "8px",
|
|
@@ -53787,7 +53787,7 @@ class yl extends rt.Component {
|
|
|
53787
53787
|
borderRadius: "6px",
|
|
53788
53788
|
maxWidth: "320px"
|
|
53789
53789
|
}, children: [
|
|
53790
|
-
|
|
53790
|
+
u,
|
|
53791
53791
|
": ",
|
|
53792
53792
|
this.state.loadError
|
|
53793
53793
|
] })
|
|
@@ -53802,7 +53802,7 @@ class yl extends rt.Component {
|
|
|
53802
53802
|
100% { transform: rotate(360deg); }
|
|
53803
53803
|
}
|
|
53804
53804
|
` }),
|
|
53805
|
-
|
|
53805
|
+
c && /* @__PURE__ */ m.jsx(
|
|
53806
53806
|
"div",
|
|
53807
53807
|
{
|
|
53808
53808
|
style: {
|
|
@@ -53862,7 +53862,7 @@ class yl extends rt.Component {
|
|
|
53862
53862
|
),
|
|
53863
53863
|
/* @__PURE__ */ m.jsxs("div", { style: {
|
|
53864
53864
|
display: "flex",
|
|
53865
|
-
flex:
|
|
53865
|
+
flex: a ? `calc(100% - ${s * 100}%)` : "100%",
|
|
53866
53866
|
minHeight: 0,
|
|
53867
53867
|
position: "relative"
|
|
53868
53868
|
}, children: [
|
|
@@ -53893,7 +53893,7 @@ class yl extends rt.Component {
|
|
|
53893
53893
|
position: "relative"
|
|
53894
53894
|
}, children: [
|
|
53895
53895
|
/* @__PURE__ */ m.jsx("div", { style: {
|
|
53896
|
-
flex:
|
|
53896
|
+
flex: h,
|
|
53897
53897
|
display: "flex",
|
|
53898
53898
|
flexDirection: "column",
|
|
53899
53899
|
minWidth: 0,
|
|
@@ -53964,11 +53964,11 @@ class yl extends rt.Component {
|
|
|
53964
53964
|
opacity: 0,
|
|
53965
53965
|
transition: "opacity 0.3s ease"
|
|
53966
53966
|
},
|
|
53967
|
-
onMouseEnter: (
|
|
53968
|
-
|
|
53967
|
+
onMouseEnter: (p) => {
|
|
53968
|
+
p.currentTarget.style.opacity = "1";
|
|
53969
53969
|
},
|
|
53970
|
-
onMouseLeave: (
|
|
53971
|
-
|
|
53970
|
+
onMouseLeave: (p) => {
|
|
53971
|
+
p.currentTarget.style.opacity = "0";
|
|
53972
53972
|
},
|
|
53973
53973
|
children: [
|
|
53974
53974
|
/* @__PURE__ */ m.jsx(
|
|
@@ -54107,7 +54107,7 @@ class yl extends rt.Component {
|
|
|
54107
54107
|
}
|
|
54108
54108
|
),
|
|
54109
54109
|
r && /* @__PURE__ */ m.jsx("div", { style: {
|
|
54110
|
-
flex:
|
|
54110
|
+
flex: l,
|
|
54111
54111
|
minWidth: "200px",
|
|
54112
54112
|
display: "flex",
|
|
54113
54113
|
flexDirection: "column",
|
|
@@ -54125,9 +54125,9 @@ class yl extends rt.Component {
|
|
|
54125
54125
|
onClose: () => {
|
|
54126
54126
|
this.setState({ openAiChat: !1 });
|
|
54127
54127
|
},
|
|
54128
|
-
onSendMessage: async (
|
|
54128
|
+
onSendMessage: async (p) => new Promise((M) => {
|
|
54129
54129
|
setTimeout(() => {
|
|
54130
|
-
|
|
54130
|
+
M();
|
|
54131
54131
|
}, 1e3);
|
|
54132
54132
|
}),
|
|
54133
54133
|
data: this.originalData
|
|
@@ -54170,8 +54170,8 @@ class yl extends rt.Component {
|
|
|
54170
54170
|
}
|
|
54171
54171
|
),
|
|
54172
54172
|
a && /* @__PURE__ */ m.jsx("div", { style: {
|
|
54173
|
-
flex:
|
|
54174
|
-
minHeight: "
|
|
54173
|
+
flex: a ? `${s * 100}%` : "0",
|
|
54174
|
+
minHeight: "130px",
|
|
54175
54175
|
maxHeight: "50%",
|
|
54176
54176
|
display: "flex",
|
|
54177
54177
|
flexDirection: "column",
|