@iccandle/vuejs-widget 0.2.6 → 0.2.7
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/widget-iccandle.cjs
CHANGED
|
@@ -105,4 +105,4 @@ by subscribing annually`,monthly:`Monthly`,yearly:`Yearly`,yearlyBadge:`-20%`,co
|
|
|
105
105
|
|
|
106
106
|
|
|
107
107
|
|
|
108
|
-
`,Ma={symbol:`XAU_USD`,interval:`60`,library_path:`/charting_library/`,locale:`en`,charts_storage_url:`https://api.iccandle.ai/layout/v1`,client_id:`tradingview.com`,user_id:`public_user_id`,fullscreen:!1,autosize:!0},Na={D:`1440`,H4:`240`,H2:`120`,H1:`60`,M30:`30`,M15:`15`,M5:`5`,M1:`1`};function Pa(e,t){let n=async({origin:n,data:r})=>{if(n!==`https://embed-iccandle-app.iccandle.ai`||typeof r!=`string`)return;let i;try{i=JSON.parse(r)}catch{return}if(i.name!==`news.selectedEventPayloads`)return;let a=i.data??[],o=JSON.parse(localStorage.getItem(`tv:selected-news-events`)||`[]`),s=e.value,c=s?.activeChart?.();await s?.headerReady(),a.length<o.length&&await new Promise(e=>{setTimeout(()=>{c?.clearMarks(2),e(!0)},150)}),localStorage.setItem(h,JSON.stringify(a)),c?.refreshMarks();try{if(t.current&&t.current.length>0&&(t.current.forEach(e=>{try{c?.removeEntity(e)}catch{}}),t.current=[]),a.length===0)return;for(let e of a)try{let n=await c?.createShape({time:Math.floor(e.timestamp/1e3)},{shape:`vertical_line`,lock:!0,disableSelection:!0,overrides:{linestyle:2,linewidth:1}});n&&((c?.getShapeById(n))?.setSavingEnabled(!1),t.current.push(n))}catch{}}catch{}};window.addEventListener(`message`,n),(0,c.watch)(e,()=>{}),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,n)})}function Fa(e,t,n=1){if(t===0||!isFinite(t))return n;let r=e/t;return isFinite(r)?r:n}function Ia(e){if(e.length===0)return 0;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2==0?(t[n-1]+t[n])/2:t[n]}function La(e,t,n=[]){if(e.length===0)return[];let r=n.map(e=>Math.abs(e.c-e.o)),i=Ia(e.map(e=>Math.abs(e.c-e.o))),a=Fa(Ia(r),i),o=e[0].o,s=t.c;return e.map(e=>{let t=(e.o-o)*a+s,n=(e.h-o)*a+s,r=(e.l-o)*a+s,i=(e.c-o)*a+s;return{o:t,h:Math.max(n,t,i),l:Math.min(r,t,i),c:i}})}var Ra=`America/New_York`,za=17,Ba={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},Va=new Intl.DateTimeFormat(`en-US`,{timeZone:Ra,weekday:`short`,hour:`numeric`,minute:`numeric`,hourCycle:`h23`}),Ha=e=>{let t=Va.formatToParts(new Date(e)),n=t.find(e=>e.type===`weekday`)?.value??`Sun`,r=Number(t.find(e=>e.type===`hour`)?.value),i=r===24?0:r;return{day:Ba[n]??0,hour:i}},Ua=e=>{let{day:t,hour:n}=Ha(e);return t===6?!1:t===0?n>=za:t!==5||n<za},Wa=(e,t)=>{let n=e,r=Math.max(1,Math.ceil(11520*60*1e3/t));for(let e=0;e<r&&!Ua(n);e++)n+=t;return n},Ga=1440*60*1e3,Ka=7*Ga,qa=e=>e>1e11?e:e*1e3,Ja=(e,t)=>{let n=e+Ga;for(;t&&new Date(n).getUTCDay()%6==0;)n+=Ga;return n},Ya=e=>{let t=new Date(e),n=t.getUTCDate(),r=t.getUTCHours(),i=t.getUTCMinutes(),a=t.getUTCSeconds(),o=t.getUTCMilliseconds(),s=t.getUTCFullYear(),c=t.getUTCMonth()+1,l=new Date(Date.UTC(s,c+1,0)).getUTCDate();return Date.UTC(s,c,Math.min(n,l),r,i,a,o)},Xa=(e,t)=>{let n=[],r=qa(e);for(let e=0;e<t;e++)r+=Ka,n.push(r);return n},Za=(e,t)=>{let n=[],r=qa(e);for(let e=0;e<t;e++)r=Ya(r),n.push(r);return n},Qa=(e,t,n,r)=>{let i=r!==`24x7`,a=[],o=qa(e);for(let e=0;e<n;e++)o=Ja(o,i),a.push(o);return a},$a=(e,t,n,r)=>{let i=r!==`24x7`,a=X(t,n),o=0,s=X(e,n);for(;s<a;)s=Ja(s,i),s<=a&&o++;return o},eo=(e,t)=>{let n=qa(t),r=0,i=qa(e);for(;i<n;)i=Ya(i),i<=n&&r++;return r},to=(e,t,n)=>{let r=C(t)*1e3,i=[],a=e;for(let e=0;e<n;e++)a+=r,Ua(a)||(a=Wa(a,r)),i.push(a);return i},no=(e,t,n,r)=>{if(n<=0)return[];if(Ue(t))return Qa(e,t,n,r);if(q(t))return Xa(e,n);if(J(t))return Za(e,n);if(r===`24x7`){let r=C(t)*1e3;return Array.from({length:n},(t,n)=>e+(n+1)*r)}if(r===`1700-1700`)return to(e,t,n);let i=C(t)*1e3;return Array.from({length:n},(t,n)=>e+(n+1)*i)},ro=(e,t,n,r)=>{if(Ue(n))return $a(e,t,n,r);if(q(n))return Math.max(0,Math.floor((qa(t)-qa(e))/Ka));if(J(n))return eo(e,t);if(r===`24x7`){let r=C(n)*1e3;return Math.max(0,Math.floor((t-e)/r))}if(r===`1700-1700`){let r=C(n)*1e3,i=0,a=e;for(;a<t;)a+=r,Ua(a)||(a=Wa(a,r)),a<=t&&i++;return i}let i=C(n)*1e3;return Math.max(0,Math.floor((t-e)/i))},io=e=>e>1e11?e:e*1e3,ao=(e,t)=>{let n=io(e);if(Ue(t))return X(n,t);if(q(t)||J(t))return n;let r=C(t)*1e3;return Math.floor(n/r)*r},oo=(e,t,n,r)=>{let i=io(e),a=ao(t,n),o=[],s=i;for(let e=0;e<2500;e++){let[e]=no(s,n,1,r);if(e==null||!Number.isFinite(e))break;if(Ge(e,a,n)||e>=a)return{gapTimes:o,eventBarMs:e};o.push(e),s=e}return{gapTimes:o,eventBarMs:s}},Z=(0,c.reactive)({activeTab:`patterns`,selectedPattern:null,playEndTimestamp:null,targetCandles:[],gapCount:0,setActiveTab(e){this.activeTab=e},setSelectedPattern(e){this.selectedPattern=e},setPlayEndTimestamp(e){this.playEndTimestamp=e},getPlayEndTimestamp(){return this.playEndTimestamp},setTargetCandles(e){this.targetCandles=e},setGapCount(e){this.gapCount=e}});function so(){return Z}var co=null,lo=!1,uo=!1,fo=0,po=!1;function mo(e){Number.isFinite(e)&&e>fo&&(fo=e)}function ho(e){Number.isFinite(e)&&e>0&&(fo=e)}function go(){fo=0}function _o(){return po}function vo(){po=!1}function yo(e){return typeof e==`function`&&typeof e.onReady!=`function`}function bo(e){if(typeof e?.onReady!=`function`)throw Error(`withPlayChart: expected a TradingView datafeed object with onReady(). If you use a factory, call it first: withPlayChart(yourDataFeed(...)) or pass factory args: withPlayChart(yourDataFeed, arg1, arg2).`)}function xo(e){return co=e,t=>{t?.time&&mo(t.time),!(!lo&&uo)&&e(t)}}function So(e){bo(e);let t=e.getBars?.bind(e),n=e.subscribeBars?.bind(e);return!n&&!t?e:Object.assign(Object.create(Object.getPrototypeOf(e)),e,{getBars(e,n,r,i,a){if(t)return t(e,n,r,(e,t)=>{let n=e?.[e.length-1];n?.time&&mo(n.time),i(e,t)},a)},subscribeBars(e,t,r,i,a){if(n)return n(e,t,xo(r),i,a)}})}function Co(e,...t){if(yo(e)){if(t.length>0)return So(e(...t));throw Error(`withPlayChart: received a datafeed factory. Call it before passing to TradingView: withPlayChart(yourDataFeed(...)) or pass factory arguments: withPlayChart(yourDataFeed, arg1, arg2).`)}return So(e)}function Q(e){uo=e}function wo(e){if(!co)return!1;if(fo>0&&e.time<fo)return!0;lo=!0;try{mo(e.time),po=!0,co(e)}finally{lo=!1}return!0}var To=[],Eo=null,Do=(e,t)=>{To=e,Eo=t??null},Oo=()=>To,ko=e=>e>1e11?e:e*1e3,Ao=(e,t)=>{let n=ko(e),r=t.find(e=>ko(e.time)===n);return r||!Eo||!Y(Eo)?r:t.find(e=>Ge(ko(e.time),n,Eo))},jo=`Generated Candles - By iC Candle`,Mo=`Generated Candles Background - By iC Candle`,No=`revealed_count`,Po={id:No,name:`Revealed Count`,type:`integer`,defval:0,isHidden:!0,min:0},Fo=e=>{let t=Math.max(0,Number(e(0))||0);return Oo().slice(0,t)},Io=(e,t)=>!!Ao(e,t),Lo=({id:e,description:t,shortDescription:n,isHiddenStudy:r,bodyColors:i,wickColors:a,borderColors:o})=>({_metainfoVersion:51,id:e,description:t,shortDescription:n,isCustomIndicator:!0,is_hidden_study:r,is_price_study:!0,linkedToSeries:!0,format:{type:`price`,precision:2},inputs:[Po],palettes:{palette_bar:{colors:{0:{name:`Bullish`},1:{name:`Bearish`}},valToIndex:{0:0,1:1}},palette_wick:{colors:{0:{name:`Bullish Wick`},1:{name:`Bearish Wick`}},valToIndex:{0:0,1:1}},palette_border:{colors:{0:{name:`Bullish Border`},1:{name:`Bearish Border`}},valToIndex:{0:0,1:1}}},plots:[{id:`plot_open`,type:`ohlc_open`,target:`plot_candle`},{id:`plot_high`,type:`ohlc_high`,target:`plot_candle`},{id:`plot_low`,type:`ohlc_low`,target:`plot_candle`},{id:`plot_close`,type:`ohlc_close`,target:`plot_candle`},{id:`plot_bar_color`,type:`ohlc_colorer`,palette:`palette_bar`,target:`plot_candle`},{id:`plot_wick_color`,type:`wick_colorer`,palette:`palette_wick`,target:`plot_candle`},{id:`plot_border_color`,type:`border_colorer`,palette:`palette_border`,target:`plot_candle`}],ohlcPlots:{plot_candle:{title:n,forceOverlay:!0}},styles:{},defaults:{styles:{},ohlcPlots:{plot_candle:{borderColor:o[0],color:i[0],drawBorder:!0,drawWick:!0,plottype:`ohlc_candles`,visible:!0,wickColor:a[0]}},palettes:{palette_bar:{colors:{0:{color:i[0],width:1,style:0},1:{color:i[1],width:1,style:0}}},palette_wick:{colors:{0:{color:a[0],width:1,style:0},1:{color:a[1],width:1,style:0}}},palette_border:{colors:{0:{color:o[0],width:1,style:0},1:{color:o[1],width:1,style:0}}}},precision:2,inputs:{[No]:0}}}),Ro=0,zo=(e=`light`)=>v[e],Bo=[NaN,NaN,NaN,NaN,NaN,NaN,NaN],Vo=e=>function(){this.init=function(e){this._context=e},this.main=function(t,n){this._context=t;let r=t.symbol.time,i=Fo(n);return!Number.isFinite(r)||!i.length||!Io(r,i)?[...Bo]:e(t,i)}},Ho=(e=`light`)=>{let t=zo(e),n={name:Mo,metainfo:{_metainfoVersion:51,id:`Generated Candles Background - By iC Candle@tv-basicstudies-1`,description:Mo,shortDescription:`Generated Candles Background`,isCustomIndicator:!0,is_hidden_study:!0,is_price_study:!0,linkedToSeries:!0,format:{type:`inherit`},inputs:[Po],palettes:{prediction_bar_palette:{colors:{0:{name:`Predicted Bar`}},valToIndex:{[Ro]:0}},prediction_mask_palette:{colors:{0:{name:`Predicted Mask`}},valToIndex:{0:0}}},plots:[{id:`bar`,type:`bar_colorer`,palette:`prediction_bar_palette`},{id:`mask_open`,type:`ohlc_open`,target:`mask_candle`},{id:`mask_high`,type:`ohlc_high`,target:`mask_candle`},{id:`mask_low`,type:`ohlc_low`,target:`mask_candle`},{id:`mask_close`,type:`ohlc_close`,target:`mask_candle`},{id:`mask_bar_color`,type:`ohlc_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`},{id:`mask_wick_color`,type:`wick_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`},{id:`mask_border_color`,type:`border_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`}],ohlcPlots:{mask_candle:{title:`Predicted Mask Candle`,forceOverlay:!0}},defaults:{ohlcPlots:{mask_candle:{borderColor:t,color:t,drawBorder:!0,drawWick:!0,plottype:`ohlc_candles`,visible:!0,wickColor:t}},palettes:{prediction_bar_palette:{colors:{0:{color:t,width:1,style:1}}},prediction_mask_palette:{colors:{0:{color:t,width:1,style:0}}}},inputs:{[No]:0}}},constructor:function(){this.init=function(e){this._context=e},this.main=function(e,t){this._context=e;let n=e.symbol.time,r=Fo(t);if(!Number.isFinite(n)||!Io(n,r))return[NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN];let{open:i,high:a,low:o,close:s}=e.symbol,c=Math.max(a-o,Math.abs(s-i),Math.abs(s)*1e-4,.01);return[Ro,i,a+c,o-c,s,0,0,0]}}},r={name:jo,metainfo:Lo({id:`Generated Candles - By iC Candle@tv-basicstudies-1`,description:jo,shortDescription:`Generated Candles`,isHiddenStudy:!1,bodyColors:[`#00dfb9`,`#ffb84d`],wickColors:[`#00dfb9`,`#ffb84d`],borderColors:[`#00dfb9`,`#ffb84d`]}),constructor:Vo((e,t)=>{let n=Ao(e.symbol.time,t);if(!n)return[...Bo];let r=+(n.close<n.open);return[n.open,n.high,n.low,n.close,r,r,r]})};return Promise.resolve([n,r])},Uo=(e,t)=>{if(t)try{e.removeEntity(t)}catch{}},Wo=e=>({"ohlcPlots.mask_candle.color":e,"ohlcPlots.mask_candle.borderColor":e,"ohlcPlots.mask_candle.wickColor":e,"palettes.prediction_bar_palette.colors.0.color":e,"palettes.prediction_mask_palette.colors.0.color":e}),Go=(e,t)=>{try{e.getSeries().sendToBack()}catch{}let n=t.generatedCandlesStudyIdRef.current;n&&e.bringToFront([n])},Ko=e=>{try{e.getSeries().bringToFront()}catch{}},qo=async(e,t,n)=>{Uo(e,t.generatedCandlesStudyIdRef.current),Uo(e,t.generatedCandlesBackgroundStudyIdRef.current),t.generatedCandlesStudyIdRef.current=null,t.generatedCandlesBackgroundStudyIdRef.current=null;let r=await e.createStudy(Mo,!0,!0,void 0,Wo(n));r&&(t.generatedCandlesBackgroundStudyIdRef.current=r);let i=await e.createStudy(jo,!0,!0);i&&(t.generatedCandlesStudyIdRef.current=i),Go(e,t)},Jo=(e,t,n)=>{let r={id:No,value:n};for(let n of[t.generatedCandlesBackgroundStudyIdRef,t.generatedCandlesStudyIdRef])if(n.current)try{e.getStudyById(n.current).setInputValues([r])}catch{}};function Yo(e,t,n,r,i,a){let o=t.highlightBarsRef,s={current:i.value},l={current:null},u=!1,d,f=()=>{d&&=(clearInterval(d),void 0)},p=n=>{let r=e.value;if(r)try{Jo(r.activeChart(),t,n)}catch{}},m=(t,r,a=[])=>{let o=e.value,s=i.value,c=Z.targetCandles;if(!(!o||!s?.length)&&!(!t.length&&!a.length)&&c.length)try{let e=o.activeChart(),i=S(n.value),s=X(c[0].timestamp,n.value)/1e3-100*i,l;if(r>0&&t.length>0)l=ko(t[r-1].time)/1e3+100/3*i;else{let e=t[t.length-1]??a[a.length-1];l=(e?ko(e.time):X(c[c.length-1].timestamp,n.value))/1e3+100/3*i}e.setVisibleRange({from:s,to:l}).catch(()=>{})}catch(e){console.error(`Error setting visible range:`,e)}},h=(e,t,n)=>new Promise(r=>{if(!e.length){r();return}let i=0,a=0,o=()=>{f(),r()},s=()=>{if(u){o();return}if(i>=e.length){o();return}let t=e[i];if(t&&wo(t)){i++,a=0,n?.(i),i>=e.length&&o();return}a++,a>200&&o()};s(),i<e.length&&!u&&(d=setInterval(s,Math.max(t,1)))}),g=async()=>{let n=e.value;if(!(!n||!t.generatedCandlesStudyIdRef||!t.generatedCandlesBackgroundStudyIdRef)){if(t.generatedCandlesStudyIdRef.current&&t.generatedCandlesBackgroundStudyIdRef.current)try{let e=n.activeChart();Jo(e,t,0),Go(e,t);return}catch{}try{await new Promise(e=>{n.onChartReady(async()=>{try{await qo(n.activeChart(),t,a.value)}catch(e){console.error(`Failed to recreate generated candle studies:`,e)}e()})})}catch{}}},_=e=>{u||(Q(!1),l.current=i.value,o.current=e)},v=async(r,i=[])=>{if(u||(Q(!0),Do(r,n.value),o.current=[],await g(),u))return;if(m(r,0,i),i.length>0){let e=S(n.value)*1e3;ho(Math.max(0,i[0].time-e));for(let e of i){if(u)return;wo(e)}}if(await h(r,100,e=>{p(e),o.current=r.slice(0,e)}),u)return;let a=e.value;if(a)try{Go(a.activeChart(),t)}catch{}_(r)},y=()=>{u=!1,f();let a=i.value,c=Z.targetCandles,d=Z.gapCount,p=e.value;if(a?.length&&c.length>0){if(l.current===a)return;(async()=>{let e=c[c.length-1],t=Y(n.value)?e.timestamp>1e11?e.timestamp:e.timestamp*1e3:X(e.timestamp,n.value),i=Z.playEndTimestamp,o=i!=null&&Number.isFinite(i)?ko(i):null,s=o==null?null:ao(o,n.value),l=s!=null&&s>t&&!Ge(s,t,n.value),f=U.find(e=>e.ticker===r.value||e.display_name===r.value)?.session||`24x7`,m=l&&o!=null?oo(t,o,n.value,f):null,h=m?m.gapTimes.length:Y(n.value)&&d||0,g=La([...a].slice(-50-h),e,c),_=e.c,y=m?m.gapTimes:no(t,n.value,h,f),b=y.map(e=>({open:_,high:_,low:_,close:_,time:e})),x=m?[m.eventBarMs,...no(m.eventBarMs,n.value,Math.max(0,g.length-1),f)]:no(h?y[y.length-1]:t,n.value,g.length,f);if(!m&&Y(n.value)&&h===0&&p)try{let{data:e}=await p.activeChart().exportData({includedStudies:[]}),r=X(t,n.value),i=[];for(let t of e??[]){let e=t[0]>1e11?t[0]:t[0]*1e3;if(X(e,n.value)<=r)continue;let a=i[i.length-1];if(!(a!=null&&Ge(a,e,n.value))&&(i.push(e),i.length>=g.length))break}if(i.length>0){let e=no(i[i.length-1],n.value,g.length-i.length,f);x=[...i,...e]}}catch{}let S=[...g.map((e,t)=>({open:e.o,high:e.h,low:e.l,close:e.c,time:Y(n.value)?x[t]:X(x[t],n.value)}))].sort((e,t)=>e.time-t.time);if(!u)try{p?.onChartReady(()=>{v(S,b)})}catch{v(S,b)}})()}else{if(Q(!1),Do([]),l.current=null,o.current=[],p)try{Jo(p.activeChart(),t,0)}catch{}try{p?.onChartReady(()=>{p&&Ko(p.activeChart())})}catch{}}s.current=a},b=()=>{u=!0,f(),Q(!1)};(0,c.watch)([e,i,()=>Z.targetCandles,()=>Z.gapCount,()=>Z.playEndTimestamp,()=>n.value,()=>r.value,()=>a.value],()=>{b(),y()},{immediate:!0,deep:!0}),(0,c.watch)(i,n=>{if(!n?.length){Do([]),o.current=[];let n=e.value;if(n)try{Jo(n.activeChart(),t,0)}catch{}}}),(0,c.onBeforeUnmount)(b)}var Xo=e=>Number(Je(e)),Zo=(e,t)=>({o:e[1],h:e[2],l:e[3],c:e[4],timestamp:Y(t)?e[0]>1e11?e[0]:e[0]*1e3:Xo(e[0])}),$=e=>Xo(e[0]),Qo=(e,t)=>{let n=-1,r=-1/0;for(let i=0;i<e.length;i++){let a=$(e[i]);a<=t&&a>=r&&(r=a,n=i)}return n},$o=(e,t=500)=>new Promise(n=>{let r=!1,i=()=>{r||(r=!0,n())};try{e.onDataLoaded().subscribe(null,i,!0)}catch{}setTimeout(i,t)}),es=(e,t,n)=>t>=e&&t-e<n,ts=(e,t,n,r)=>t<=e?!1:Y(r)&&es(e,t,n)?t*1e3>Date.now():!0,ns=(e,t)=>{if(t.current){try{let n=e?.activeChart?.();if(n)try{n.removeEntity(t.current)}catch{}}catch{}t.current=null}},rs=e=>{try{localStorage.removeItem(m)}catch{}try{let t=e?.activeChart?.();if(!t)return;t.clearMarks(2),t.refreshMarks()}catch{}},is=(e,t)=>{try{localStorage.setItem(m,JSON.stringify(t))}catch{}try{(e?.activeChart?.())?.refreshMarks()}catch{}},as=async(e,t)=>{if(!(!e||!Number.isFinite(t)||t<=0))try{await e.headerReady();let n=e.activeChart(),r=Xo(t),i=n.getVisibleRange(),a;a=i?.from!=null&&i?.to!=null&&i.to>i.from?(i.to-i.from)/2:100*C(n.resolution())/2,await n.setVisibleRange({from:r-a,to:r+a}),await $o(n)}catch(e){console.error(`Error centering visible range on event`,e)}},os=async(e,t,n)=>{if(!e||!Number.isFinite(t)||t<=0)return;await e?.headerReady();let r=e?.activeChart?.();if(r)try{if(n.current){try{r.removeEntity(n.current)}catch{}n.current=null}try{let e=r.resolution(),i=C(e),a=Xo(t),{data:o}=await r.exportData({includedStudies:[],from:a-5*i,to:a+i}),s=o??[],c=Qo(s,a),l=a-a%i,u=Ke(c>=0&&es($(s[c]),a,i)?$(s[c]):l,e),d=await r.createShape({time:u},{shape:`vertical_line`,lock:!0,disableSelection:!0,overrides:{linestyle:2,linewidth:1}});d&&(r.getShapeById(d)?.setSavingEnabled(!1),n.current=d)}catch{}}catch{}},ss=async(e,t)=>{if(!(!e||!Number.isFinite(t)||t<=0))try{await e.headerReady();let n=e.activeChart(),r=C(n.resolution()),{data:i}=await n.exportData();if(!i?.length)return;let a=$(i[i.length-1]),o=Xo(t);await n.setVisibleRange({from:a-100*r,to:o+100/3*r}),await $o(n)}catch(e){console.error(`Error expanding visible range for future event`,e)}},cs=async(e,t,n)=>{if(!e||!n||!Number.isFinite(t)||t<=0)return!1;try{await e.headerReady();let r=e.activeChart(),i=r.resolution(),a=C(i),o=Xo(t),s=async(e,t)=>{let{data:n}=await r.exportData({includedStudies:[],...e!=null&&t!=null?{from:e,to:t}:{}});return n??[]},c=await s();if(!c.length)return!1;let l=ts($(c[c.length-1]),o,a,i),u=r.symbol(),d=U.find(e=>e.ticker===u||e.display_name===u)?.session||`24x7`;n.clearSelectedCandles();let f=Z.playEndTimestamp;Z.setPlayEndTimestamp(null),Q(!1);let p=()=>{f!=null&&Number.isFinite(f)&&Z.setPlayEndTimestamp(f)};l?await ss(e,t):await as(e,t);let m=async()=>{let e=await s(o-250*a,o+100/3*a);return e.length?e:s()};if(c=await m(),!c.length)return p(),!1;let h=e=>{let t=Qo(e,o);return t<0?-1:Y(i)&&t+1<e.length?o<$(e[t+1])?t:-1:es($(e[t]),o,a)?t:-1},g=$(c[c.length-1]),_=ts(g,o,a,i),v=_?-1:h(c);if(!_&&v<0){if(await $o(r),c=await m(),!c.length)return p(),!1;g=$(c[c.length-1]),_=ts(g,o,a,i),v=_?-1:h(c)}if(_){let e=o-o%a,r=X(g,i),s=X(e,i),l=ro(r,s,i,d);Z.setGapCount(Math.max(0,l-+(s>r))),Z.setPlayEndTimestamp(t);let u=c.slice(-50).map(e=>Zo(e,i));return u.length===0||n.setTargetCandles(u),!0}if(Z.setGapCount(0),v<0)return p(),!1;let y=Y(i)?v-1:v;if(y<0)return p(),!1;Z.setPlayEndTimestamp($(c[y]));let b=c.slice(Math.max(0,y-49),y+1).map(e=>Zo(e,i));return b.length===0?(p(),!1):(n.setTargetCandles(b),!1)}catch(e){return console.error(`Error preparing event target candles`,e),!1}},ls=e=>{if(!e||!_o()){vo();return}try{e.onChartReady(()=>{let t=e.activeChart(),n,r;try{let e=t.getVisibleRange();n=e?.from,r=e?.to}catch{}try{t.resetData(),e.resetCache?.(),go()}catch(e){console.error(`Error resetting chart data`,e)}finally{vo()}n!=null&&r!=null&&Number.isFinite(n)&&Number.isFinite(r)&&n<r&&$o(t,800).then(()=>{t.setVisibleRange({from:n,to:r}).catch(()=>{})})})}catch{vo()}},us=(e,t,n)=>{t([]),n?.preserveStartAnchor||(Z.setPlayEndTimestamp(null),Z.setGapCount(0)),Q(!1),ls(e)},ds=(e,t)=>{if(e)try{let n=e.activeChart?.();if(!n)return;if(t.current){try{n.removeEntity(t.current)}catch{}t.current=null}n.getAllShapes().filter(e=>e.name===`date_range`).forEach(e=>{try{n.removeEntity(e.id)}catch{}})}catch{}},fs=e=>Na[e]||e,ps=e=>{if(!e)return null;let t=Object.keys(e)[0],n=Number(t);return Number.isFinite(n)&&n>0?n:null},ms=async(e,t,n,r,i,a)=>{if(!e)return;let{end_timestamp:o,symbol:s,timeframe:c}=t,l=ps(i),u=fs(c);if(!(!s||!c||!Number.isFinite(o)||o<=0||l==null)&&!(a&&a.length>0&&!a.includes(u)&&!a.includes(c)))try{await e.headerReady();let i=C(u);r?.clearSelectedCandles(),Z.setPlayEndTimestamp(null),Z.setGapCount(0),Q(!1),r&&(r.applyingPatternRef.current=!0);try{await new Promise(t=>{e.setSymbol(s,u,()=>t())});let a=e.activeChart();ds(e,n);let c=o-(l-1)*i;try{await a.setVisibleRange({from:c-(100*i+i*l+i*100),to:o+100/3*i})}catch(e){console.error(`Error setting visible range for pattern`,e)}let{data:d}=await a.exportData(),f=d.findIndex(e=>e[0]===o);f===-1&&(f=d.length-1);let p=Math.max(0,f-l+1),m=d.slice(p,f+1),h=m[0]?.[0]??o,g=m[m.length-1]?.[0]??o,_=t.pattern?.trim()||``,v=Aa(),y=await a.createMultipointShape([{time:h},{time:g}],{...v,overrides:{...v.overrides,title:_||`Pattern range`}});if(y){let e=a.getShapeById(y);e&&(_&&e.setProperties({customText:{visible:!0,text:_,color:`#ffffff`,fontsize:14,bold:!0}}),e.setSavingEnabled(!1)),n.current=y,r&&(r.lastEntity.current=y)}if(r&&m.length>0){let e=m.map(e=>Zo(e,u)),t=e.slice(-50);r.setSymbol(s),r.setResolution(u),r.setTimeframe(u),r.setWindowSize(e.length),r.setCandles(e),r.setTargetCandles(t),r.setHasActiveShape(!0)}}finally{r&&setTimeout(()=>{r.applyingPatternRef.current=!1},600)}}catch(e){console.error(`Error drawing pattern date range`,e),r&&setTimeout(()=>{r.applyingPatternRef.current=!1},600)}};function hs(e,t,n,r,i,a,o,s,l){let u={current:n.value},d={current:e.value},f={current:t},p={current:r},m={current:i},h={current:a},_={current:o},v={current:typeof s==`function`?s():s},y={current:l},b={current:null},x={current:null},S={current:null},C={current:null};(0,c.watch)(n,e=>{u.current=e}),(0,c.watch)(e,e=>{d.current=e}),(0,c.watch)(()=>o,e=>{_.current=e}),(0,c.watch)(()=>typeof s==`function`?s():s,e=>{v.current=e}),(0,c.watch)(()=>l,e=>{y.current=e});let w=({origin:e,data:t})=>{if(e!==`https://embed-iccandle-app.iccandle.ai`)return;let n;try{n=typeof t==`string`?JSON.parse(t):t}catch{return}if(!n||typeof n!=`object`)return;let r=()=>{ds(d.current,x);let e=h.current;e&&(e.lastEntity.current=null,e.setHasActiveShape(!1),e.setCandles([]),e.setTargetCandles([]))},i=n.name;if(typeof i!=`string`)return;let a=n.data;switch(i){case`chart.play`:{let e=a;if(!e)return;if(e.isReplay){let t=(e.selectedCandles??[]).map(e=>({o:e.o,h:e.h,l:e.l,c:e.c,timestamp:e.timestamp}));if(t.length===0)return;(async()=>{let n=S.current;if(n==null)try{n=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`)?.timestamp??null,n!=null&&(S.current=n)}catch{n=null}let r=e.playEndTimestamp!=null&&Number.isFinite(e.playEndTimestamp)?Xo(e.playEndTimestamp):null;(Z.playEndTimestamp==null||Z.targetCandles.length===0)&&n!=null&&await cs(d.current,n,h.current);let i=Z.playEndTimestamp??r??C.current??(n==null?u.current:Xo(n));i!=null&&Number.isFinite(i)&&(C.current=i,Z.setPlayEndTimestamp(i)),f.current(t)})();return}if(!(`candles`in e))return;let t=e.candles??null;f.current(t);let n=u.current;n!=null&&Number.isFinite(n)&&Z.setPlayEndTimestamp(n);break}case`chart.stop`:if(a?.isReplay===!1){let e=Z.playEndTimestamp;e!=null&&Number.isFinite(e)&&(C.current=e),f.current([]),Q(!1),ls(d.current);break}f.current(null),C.current=null,Z.setPlayEndTimestamp(null),Z.setGapCount(0),Q(!1),ls(d.current);break;case`selector.closeResult`:us(d.current,f.current),m.current?.();break;case`selector.loading`:{let e=a;p.current(e?.isLoading??!1);break}case`auth.signIn`:{let e=a;localStorage.setItem(g,e?.idToken||``);break}case`auth.signOut`:localStorage.removeItem(g);break;case`news.eventClicked`:{let e=a?.event;if(!e?.timestamp)return;S.current=e.timestamp,is(d.current,e),(async()=>{await cs(d.current,e.timestamp,h.current),await os(d.current,e.timestamp,b)})();break}case`news.back`:ns(d.current,b),rs(d.current),us(d.current,f.current),S.current=null,C.current=null,Z.setGapCount(0),h.current?.setTargetCandles([]);break;case`news.backToSimilarEvents`:us(d.current,f.current);break;case`pattern.classicPatternSelected`:{let e=n.data?.pattern,t=e?.compared_pattern;if(!t)return;ms(d.current,t,x,h.current,e?.results?.matches_by_window,v.current);break}case`pattern.custom_pattern_selected`:case`patter.custom_pattern_selected`:{let e=a?.pattern,t=e?.compared_pattern;if(!t)return;ms(d.current,t,x,h.current,e?.results?.matches_by_window,v.current);break}case`pattern.clear_custom_pattern_selected`:case`pattern.clearClassicPatternSelected`:r();break;case`nav.click`:{let e=a;e?.href&&_.current?.(e.href);break}case`chart.requestResolution`:y.current?.();break;default:break}};window.addEventListener(`message`,w),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,w)})}var gs=`chart-resolution`;function _s(e){return{type:gs,resolution:e}}function vs(e,t){let n=JSON.stringify(_s(t));e.postMessage(n,`*`)}function ys(e,t,n=0){!e||n>4||e.querySelectorAll(`iframe`).forEach(e=>{let r=e.contentWindow;if(!(!r||t.has(r))){t.add(r);try{ys(e.contentDocument,t,n+1)}catch{}}})}function bs(e,t){if(!t)return!1;let n=new Set;return e?.contentWindow&&n.add(e.contentWindow),typeof document<`u`&&ys(document,n),n.forEach(e=>vs(e,t)),n.size>0}var xs=`selector-loading`;function Ss(e){return{type:xs,isLoading:e}}function Cs(e,t){let n=e?.contentWindow;if(!n)return!1;let r=`*`;try{e?.src&&(r=new URL(e.src).origin)}catch{}return n.postMessage(JSON.stringify(Ss(t)),r),!0}var ws=`open-pricing`;function Ts(e){return{type:ws,...e}}function Es(e,t){e.postMessage(JSON.stringify(Ts(t)),`*`)}function Ds(e,t){let n=e?.contentWindow;return n?(Es(n,t),!0):!1}function Os(e){return typeof window>`u`||window.parent===window?!1:(Es(window.parent,e),!0)}var ks=[`lang`],As={key:3,class:`iccandle-selector-widget__overlay`},js=(0,c.defineComponent)({__name:`WidgetIccandle`,props:{chartWidget:{},submitCallback:{},theme:{default:`light`},chartMaskColors:{},language:{},onCloseResult:{},iframeLoaded:{type:Boolean,default:!0},resultIframeRef:{},isShowScanButton:{type:Boolean,default:!0},isShowTrackerButton:{type:Boolean,default:!0},isShowScannerPopup:{type:Boolean,default:!0},availableIntervals:{},onScanClick:{}},setup(e,{expose:t}){function n(e){return{o:e[1],h:e[2],l:e[3],c:e[4],timestamp:e[0]}}function r(e){try{let t=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`);if(t&&String(t.id)===String(e))return t}catch{}try{return JSON.parse(localStorage.getItem(`tv:selected-news-events`)||`[]`).find(t=>String(t.id)===String(e))??null}catch{return null}}function i(e){return!(!e?.event_name||!e.currency||e.event_name===`Holiday`||e.status===`early`)}let a=e,o=(0,c.computed)(()=>T(a.language)),s=(0,c.computed)(()=>a.isShowScanButton?a.availableIntervals:[..._]);ee(o);let l={highlightBarsRef:{current:[]},generatedCandlesBackgroundStudyIdRef:{current:null},generatedCandlesStudyIdRef:{current:null}};t({chartRefs:l});let u={current:null},d={current:null},f={current:!1},g=(0,c.ref)(null),y={current:[]},b=(0,c.ref)(null),x=so(),S=(0,c.ref)(!1),C=(0,c.ref)(null),w=(0,c.ref)(!1),E=(0,c.ref)(null),D=(0,c.ref)(null),O=()=>b.value&&getComputedStyle(b.value).getPropertyValue(`--iccandle-primary`).trim()||void 0,k={current:O};(0,c.watch)(b,()=>{k.current=O},{immediate:!0});let A=(0,c.computed)(()=>a.theme===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:a.theme),j=(0,c.computed)(()=>({light:a.chartMaskColors?.light??v.light,dark:a.chartMaskColors?.dark??v.dark})[A.value]),M=(0,c.computed)(()=>({zIndex:9999999999})),N=(0,c.ref)(!1),P=(0,c.ref)(!1),F=(0,c.ref)(!1),I=(0,c.ref)(25),L=(0,c.ref)([]),R=(0,c.ref)(null),z=(0,c.ref)(!1),B=(0,c.ref)(`60`),V=(0,c.ref)(Ma.interval||`60`),H=(0,c.ref)(``),te=()=>{try{let e=a.chartWidget?.activeChart?.();if(e){if(u.current){try{e.removeEntity(u.current)}catch{}u.current=null}e.getAllShapes().filter(e=>e.name===`date_range`).forEach(t=>{try{e.removeEntity(t.id)}catch{}})}}catch{}F.value=!1,L.value=[],x.setTargetCandles([])},ne=e=>{let t=e;try{t=new URL(e,`${p}/`).pathname}catch{}t.includes(`/news`)&&te(),C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1))},re=()=>{P.value=!0},ie=()=>{P.value=!1},ae=()=>{x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1),g.value?.()},oe=()=>{R.value=`settings`},se=()=>{R.value=`scan`},ce=()=>{R.value=null},le=()=>{z.value=!1},ue=()=>{z.value=!0},fe=e=>{S.value=e,Cs(a.resultIframeRef?.current,e)},pe=()=>{let e=V.value;try{e=G.value?.activeChart?.()?.resolution?.()||V.value}catch{e=V.value}bs(a.resultIframeRef?.current,e)},W={current:[]},me=e=>{W.current.forEach(e=>window.clearTimeout(e));let t=()=>{if(e){bs(a.resultIframeRef?.current,e);return}pe()};W.current=[0,300,1e3,2500,5e3].map(e=>window.setTimeout(t,e))},he=()=>{let e={theme:A.value===`dark`?`dark`:`light`,language:o.value};Ds(a.resultIframeRef?.current,e)||Os(e)||a.submitCallback(`${p}/${o.value}?pricing=true&theme=${A.value===`dark`?`dark`:`light`}`)},ge=()=>{w.value=!1,E.value=null,D.value=null},_e=()=>{q(String(V.value))||J(String(V.value))||(N.value=!0)},ve=e=>{let t=e.default_symbol||H.value,n=A.value===`dark`?`dark`:`light`,r=G.value;te(),C.value=null,x.setPlayEndTimestamp(null);let i={id:e.id,event_name:e.event_name,timestamp:e.timestamp,actual:e.actual||``,forecast:e.forecast||``,previous:e.previous||``,currency:e.currency||``,metric:``,default_symbol:e.default_symbol,status:e.status};try{localStorage.setItem(m,JSON.stringify(i))}catch{}try{r?.activeChart?.()?.refreshMarks()}catch{}(async()=>{await cs(r,e.timestamp,{lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}}),await os(r,e.timestamp,d)})(),a.submitCallback(`${p}/${o.value}/news/similar-events/${e.id}?symbol=${encodeURIComponent(t)}&theme=${n}`)},ye=e=>{if(!e)return;let t=G.value;if(!t)return;let n;try{n=t.activeChart()}catch(e){console.log(`Error getting active chart`,e);return}if(!n)return;let a=n.getTimeScale(),o=n.getVisibleRange();if(!o?.from||!o?.to)return;let s=b.value?.firstElementChild||b.value;if(!s)return;let c=s.getBoundingClientRect(),l=a.width(),u=e=>{let t=0,n=l,r=l/2;for(let i=0;i<30;i++){let i=(t+n)/2,s=a.coordinateToTime(i);if(s===null){let t=(e-o.from)/(o.to-o.from);r=Math.max(0,Math.min(l,t*l));break}let c=s-e;if(Math.abs(c)<.1){r=i;break}c>0?n=i:t=i,r=i}return{x:c.left+r+53,y:c.bottom-103}},d=r(e);if(!i(d))return;let f=d.timestamp?d.timestamp/1e3:null,p=o.to-o.from,m=u(f??o.from+p*.5);m&&(D.value=m),E.value=d,w.value=!0},be=()=>{f.current||(u.current=null,F.value=!1)},xe=e=>{B.value=e,V.value=e,me(e),be(),s.value!=null&&!s.value.includes(String(e))&&(R.value=null,z.value=!1),(q(String(e))||J(String(e)))&&(N.value=!1),f.current||C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1));let t=null;try{t=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`)}catch{t=null}!t?.timestamp||!a.chartWidget||(async()=>{await cs(a.chartWidget,t.timestamp,{lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}}),await os(a.chartWidget,t.timestamp,d)})()},Se=e=>{H.value=e.library_custom_fields?.ticker||e.ticker||e.name||e.base_name+``||``,be(),me(),!f.current&&C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1))},G=(0,c.shallowRef)(a.chartWidget);(0,c.watch)(()=>a.chartWidget,e=>{G.value=e}),(0,c.watch)(G,e=>{let t,r,i;(0,c.onWatcherCleanup)(()=>{F.value=!1,u.current=null,g.value=null;try{if(r&&clearTimeout(r),e){let n=e.activeChart();n&&(i&&n.onVisibleRangeChanged().unsubscribe(null,i),n.onIntervalChanged().unsubscribe(null,xe),n.onSymbolChanged().unsubscribe(null,Se)),t&&e.unsubscribe(`drawing_event`,t)}}catch(e){console.log(e)}}),e&&e.onChartReady(()=>{let a=e.activeChart();if(a){let o=a.resolution();B.value=o,V.value=o;let s=U?.find(e=>e.display_name===a.symbol());H.value=s?.ticker||a.symbol();let c=async(e,t)=>{if(((a?.getAllShapes())?.filter(e=>e.name===`date_range`))?.forEach(e=>{a?.removeEntity(e.id)}),t){let{data:e}=await a.exportData(),r=a.resolution(),i=qe(e,t,r);i===-1&&(i=e.length-1);let o=e.slice(Math.max(0,i-25+1),i+1),s=e.slice(Math.max(0,i-49),i+1);I.value=o.length,L.value=o.map(n),x.setTargetCandles(s.map(n)),F.value=!0;let c=o[0],l=o[o.length-1];if(!c||!l)return;if(u.current=await a.createMultipointShape([{time:Ke(c[0],r)},{time:Ke(l[0],r)}],Aa(k.current())),u.current){let e=a.getShapeById(u.current);e&&e.setSavingEnabled&&(e.setProperties({customText:{visible:!0,text:ja}}),e.setSavingEnabled(!1))}}};t=He(async(t,r)=>{if(!f.current&&(r===`remove`&&(u.current===t&&(u.current=null),F.value=!1),r===`points_changed`&&a.getAllShapes().filter(e=>e.name===`date_range`).some(e=>e.id===t)&&e)){let e=a.getShapeById(t);if(!e)return;let r=e.getPoints(),i=r[0].time,o=r[1].time,{data:s}=await a.exportData(),c=a.resolution(),l=qe(s,o,c),d=qe(s,i,c);l===-1&&(l=s.length-2,d=s.length-1-25);let f=s.slice(d,l+1).length-1;f>de.max?(f=Math.round(f/10)*10-1,f>de.custom[de.custom.length-1]&&(f=de.custom[de.custom.length-1]-1)):f<=de.min&&(f=de.min-1),u.current&&a.removeEntity(u.current),a.getAllShapes().filter(e=>e.name===`date_range`).forEach(e=>{a.removeEntity(e.id)});let p=s.slice(l-f,l+1),m=s.slice(l-49,l+1),h=p[0],g=p[p.length-1];if(!h||!g)return;if(u.current=await a.createMultipointShape([{time:Ke(h[0],c)},{time:Ke(g[0],c)}],Aa(k.current())),I.value=p.length,L.value=p.map(n),x.setTargetCandles(m.map(n)),F.value=!0,u.current){let e=a.getShapeById(u.current);e&&e.setSavingEnabled&&(e.setProperties({customText:{visible:!0,text:ja}}),e.setSavingEnabled(!1))}}},500),g.value=()=>{F.value=!0;let e=a.getVisibleRange();e?.from&&e?.to&&c(e.from,e.to)};let l=e=>{if(!u.current||!e)return!1;try{let t=a?.getShapeById(u.current);if(!t)return!1;let n=t.getPoints();if(n.length===0)return!1;let r=n.map(e=>e.time).filter(e=>typeof e==`number`);if(r.length===0)return!1;let i=Math.min(...r);return Math.max(...r)<e.from||i>e.to}catch{return!1}};i=e=>{r&&clearTimeout(r),r=setTimeout(()=>{l(e)?F.value=!1:u.current&&(F.value=!0)},150)},a.onIntervalChanged().subscribe(null,xe),a.onSymbolChanged().subscribe(null,Se),a.onVisibleRangeChanged().subscribe(null,i),e.subscribe?.(`drawing_event`,t)}})},{immediate:!0});let Ce=(0,c.computed)(()=>L.value[L.value.length-1]?.timestamp??null);Pa(G,y);let we={lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}};hs(G,e=>{C.value=e},Ce,e=>{S.value=e},a.onCloseResult,we,ne,()=>s.value,pe),(0,c.watch)(()=>a.iframeLoaded,e=>{e&&me()}),(0,c.onMounted)(()=>{if(typeof document>`u`)return;let e,t=new MutationObserver(t=>{t.some(e=>[...e.addedNodes,...e.removedNodes].some(e=>e instanceof HTMLIFrameElement||e instanceof Element&&e.querySelector(`iframe`)))&&(window.clearTimeout(e),e=window.setTimeout(()=>me(),200))});t.observe(document.body,{childList:!0,subtree:!0}),(0,c.onBeforeUnmount)(()=>{t.disconnect(),window.clearTimeout(e)})}),(0,c.watch)([G,j],([e])=>{if(!e)return;let t=!1;(0,c.onWatcherCleanup)(()=>{t=!0;try{e.unsubscribe(`onTimescaleMarkClick`,ye)}catch{}}),e.onChartReady(async()=>{if(!t){try{await qo(e.activeChart(),l,j.value)}catch(e){console.error(`Failed to create generated candle studies:`,e)}try{e.subscribe(`onTimescaleMarkClick`,ye)}catch{}}})},{immediate:!0}),Yo(G,l,V,H,C,j);let Te=()=>{try{localStorage.removeItem(h),localStorage.removeItem(m)}catch{}let e=a.chartWidget?.activeChart?.();if(e){y.current&&y.current.length>0&&(y.current.forEach(t=>{try{e.removeEntity(t)}catch{}}),y.current=[]);try{e.clearMarks(2)}catch{}}},Ee=e=>{B.value=e},De=e=>{N.value=e},Oe=(0,c.computed)(()=>U.find(e=>e.ticker===H.value)?.type??`forex`),ke=(0,c.computed)(()=>s.value==null||s.value.includes(String(V.value))),Ae=(0,c.computed)(()=>!q(String(V.value))&&!J(String(V.value))),je=(0,c.computed)(()=>H.value||localStorage.getItem(`tv:latest-symbol`)||`XAU_USD`);return(0,c.onBeforeUnmount)(()=>{W.current.forEach(e=>window.clearTimeout(e)),F.value=!1,u.current=null,g.value=null}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{ref_key:`rootEl`,ref:b,lang:o.value,class:(0,c.normalizeClass)([`iccandle-selector-widget`,A.value===`dark`?`iccandle-dark`:``])},[(0,c.renderSlot)(t.$slots,`default`,{chartRefs:l}),(0,c.createVNode)(Ve,{hide:!e.isShowScannerPopup||!ke.value,"hide-scan-button":!e.isShowScanButton,"hide-tracker-button":!e.isShowTrackerButton||!Ae.value,"submit-callback":e.submitCallback,"handle-show-dialog":oe,"on-open-scan-config":se,"on-scan-click":e.onScanClick,"set-scan-loading":fe,"on-apply-saved-timeframe":Ee,"pending-scan-after-config":z.value,"on-pending-scan-handled":le,"trigger-scanner":ae,window_size:I.value,"current-symbol":H.value,resolution:V.value,timeframe:B.value,"chart-widget":e.chartWidget,candles:L.value,"handle-start-drag":re,"handle-stop-drag":ie,"has-active-shape":F.value,theme:A.value,language:o.value,"clear-scanner-news-marks":Te,"selected-candles":C.value,"iframe-loaded":e.iframeLoaded,"is-loading":S.value,"handle-track-pattern-click":_e},null,8,[`hide`,`hide-scan-button`,`hide-tracker-button`,`submit-callback`,`on-scan-click`,`pending-scan-after-config`,`window_size`,`current-symbol`,`resolution`,`timeframe`,`chart-widget`,`candles`,`has-active-shape`,`theme`,`language`,`selected-candles`,`iframe-loaded`,`is-loading`]),N.value?((0,c.openBlock)(),(0,c.createBlock)(Gi,{key:0,open:N.value,"onUpdate:open":De,resolution:V.value,type:Oe.value,symbol:H.value,candles:L.value,percent:90,theme:A.value,onUpgradeClick:he},null,8,[`open`,`resolution`,`type`,`symbol`,`candles`,`theme`])):(0,c.createCommentVNode)(``,!0),R.value?((0,c.openBlock)(),(0,c.createBlock)(Pn,{key:1,intent:R.value,"set-resolution":Ee,timeframe:B.value,"handle-close-dialog":ce,"current-symbol":H.value,theme:A.value,onScanConfigSaved:ue,onUpgradeClick:he},null,8,[`intent`,`timeframe`,`current-symbol`,`theme`])):(0,c.createCommentVNode)(``,!0),w.value&&E.value?((0,c.openBlock)(),(0,c.createBlock)(ua,{key:2,event:E.value,symbol:je.value,position:D.value,onClose:ge,onGoToEventDetail:ve},null,8,[`event`,`symbol`,`position`])):(0,c.createCommentVNode)(``,!0),P.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,As)):(0,c.createCommentVNode)(``,!0),(0,c.createVNode)(Oa,{theme:A.value,style:(0,c.normalizeStyle)(M.value)},null,8,[`theme`,`style`])],10,ks))}}),Ms=e=>{let t=e?.contentWindow;if(!t||!e?.src)return;let n=new URL(e.src).origin,r=()=>t.postMessage(JSON.stringify({type:`parent-origin`,origin:window.location.origin}),n);if([0,300,1e3,2500].forEach(e=>window.setTimeout(r,e)),new URLSearchParams(window.location.search).get(`payment`)===`success`){let e=()=>t.postMessage(JSON.stringify({type:`payment-success`}),n);[0,600,1500].forEach(t=>window.setTimeout(e,t));let r=new URL(window.location.href);[`payment`,`session_id`,`lookup_key`].forEach(e=>r.searchParams.delete(e)),window.history.replaceState({},``,r)}},Ns=60;function Ps(e){let t=e.split(`.`)[1];if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e+`=`.repeat((4-e.length%4)%4);return JSON.parse(atob(n))}catch{return null}}function Fs(e){let t=Ps(e);return t?.exp?t.exp-Ns>Math.floor(Date.now()/1e3):!1}function Is(){if(typeof window>`u`)return null;let e=localStorage.getItem(g);return!e||!Fs(e)?null:e}function Ls(){let e=(0,c.ref)(Is()),t=t=>{if(t&&Fs(t)){localStorage.setItem(g,t),e.value=t;return}localStorage.removeItem(g),e.value=null},n=e=>{if(e.origin!==`https://embed-iccandle-app.iccandle.ai`)return;let n;try{n=typeof e.data==`string`?JSON.parse(e.data):e.data}catch{return}if(n?.name===`auth.signIn`){t(n.data?.idToken||null);return}n?.name===`auth.signOut`&&t(null)},r=t=>{t.key===`iccandle_token`&&(e.value=Is())};return(0,c.onMounted)(()=>{window.addEventListener(`message`,n),window.addEventListener(`storage`,r)}),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,n),window.removeEventListener(`storage`,r)}),{isAuthenticated:(0,c.computed)(()=>!!e.value),idToken:e}}var Rs=`selector-scan`;function zs(e){return{type:Rs,url:e}}function Bs(e,t){if(!e?.src||!e.contentWindow)return!1;try{let n=new URL(e.src),r=new URL(t,n.origin);return n.origin===r.origin&&n.pathname===r.pathname}catch{return!1}}function Vs(e,t){let n=e?.contentWindow;if(!n)return!1;let r=`*`;try{e?.src&&(r=new URL(e.src).origin)}catch{}return n.postMessage(JSON.stringify(zs(t)),r),!0}exports.ICCANDLE_TOKEN_KEY=g,exports.OPEN_PRICING_MESSAGE_TYPE=ws,exports.SELECTOR_LOADING_MESSAGE_TYPE=xs,exports.SELECTOR_SCAN_MESSAGE_TYPE=Rs,exports.WIDGET_RESULT_URL=p,exports.WidgetIccandle=js,exports.canSoftSelectorNavigate=Bs,exports.getCustomIndicators=Ho,exports.handleResultIframeLoad=Ms,exports.postOpenPricingToEmbed=Ds,exports.postOpenPricingToParent=Os,exports.postOpenPricingToWindow=Es,exports.postSelectorLoadingToEmbed=Cs,exports.postSelectorScanToEmbed=Vs,exports.useICCandleAuth=Ls,exports.withPlayChart=Co;
|
|
108
|
+
`,Ma={symbol:`XAU_USD`,interval:`60`,library_path:`/charting_library/`,locale:`en`,charts_storage_url:`https://api.iccandle.ai/layout/v1`,client_id:`tradingview.com`,user_id:`public_user_id`,fullscreen:!1,autosize:!0},Na={D:`1440`,H4:`240`,H2:`120`,H1:`60`,M30:`30`,M15:`15`,M5:`5`,M1:`1`};function Pa(e,t){let n=async({origin:n,data:r})=>{if(n!==`https://embed-iccandle-app.iccandle.ai`||typeof r!=`string`)return;let i;try{i=JSON.parse(r)}catch{return}if(i.name!==`news.selectedEventPayloads`)return;let a=i.data??[],o=JSON.parse(localStorage.getItem(`tv:selected-news-events`)||`[]`),s=e.value,c=s?.activeChart?.();await s?.headerReady(),a.length<o.length&&await new Promise(e=>{setTimeout(()=>{c?.clearMarks(2),e(!0)},150)}),localStorage.setItem(h,JSON.stringify(a)),c?.refreshMarks();try{if(t.current&&t.current.length>0&&(t.current.forEach(e=>{try{c?.removeEntity(e)}catch{}}),t.current=[]),a.length===0)return;for(let e of a)try{let n=await c?.createShape({time:Math.floor(e.timestamp/1e3)},{shape:`vertical_line`,lock:!0,disableSelection:!0,overrides:{linestyle:2,linewidth:1}});n&&((c?.getShapeById(n))?.setSavingEnabled(!1),t.current.push(n))}catch{}}catch{}};window.addEventListener(`message`,n),(0,c.watch)(e,()=>{}),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,n)})}function Fa(e,t,n=1){if(t===0||!isFinite(t))return n;let r=e/t;return isFinite(r)?r:n}function Ia(e){if(e.length===0)return 0;let t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2==0?(t[n-1]+t[n])/2:t[n]}function La(e,t,n=[]){if(e.length===0)return[];let r=n.map(e=>Math.abs(e.c-e.o)),i=Ia(e.map(e=>Math.abs(e.c-e.o))),a=Fa(Ia(r),i),o=e[0].o,s=t.c;return e.map(e=>{let t=(e.o-o)*a+s,n=(e.h-o)*a+s,r=(e.l-o)*a+s,i=(e.c-o)*a+s;return{o:t,h:Math.max(n,t,i),l:Math.min(r,t,i),c:i}})}var Ra=`America/New_York`,za=17,Ba={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},Va=new Intl.DateTimeFormat(`en-US`,{timeZone:Ra,weekday:`short`,hour:`numeric`,minute:`numeric`,hourCycle:`h23`}),Ha=e=>{let t=Va.formatToParts(new Date(e)),n=t.find(e=>e.type===`weekday`)?.value??`Sun`,r=Number(t.find(e=>e.type===`hour`)?.value),i=r===24?0:r;return{day:Ba[n]??0,hour:i}},Ua=e=>{let{day:t,hour:n}=Ha(e);return t===6?!1:t===0?n>=za:t!==5||n<za},Wa=(e,t)=>{let n=e,r=Math.max(1,Math.ceil(11520*60*1e3/t));for(let e=0;e<r&&!Ua(n);e++)n+=t;return n},Ga=1440*60*1e3,Ka=7*Ga,qa=e=>e>1e11?e:e*1e3,Ja=(e,t)=>{let n=e+Ga;for(;t&&new Date(n).getUTCDay()%6==0;)n+=Ga;return n},Ya=e=>{let t=new Date(e),n=t.getUTCDate(),r=t.getUTCHours(),i=t.getUTCMinutes(),a=t.getUTCSeconds(),o=t.getUTCMilliseconds(),s=t.getUTCFullYear(),c=t.getUTCMonth()+1,l=new Date(Date.UTC(s,c+1,0)).getUTCDate();return Date.UTC(s,c,Math.min(n,l),r,i,a,o)},Xa=(e,t)=>{let n=[],r=qa(e);for(let e=0;e<t;e++)r+=Ka,n.push(r);return n},Za=(e,t)=>{let n=[],r=qa(e);for(let e=0;e<t;e++)r=Ya(r),n.push(r);return n},Qa=(e,t,n,r)=>{let i=r!==`24x7`,a=[],o=qa(e);for(let e=0;e<n;e++)o=Ja(o,i),a.push(o);return a},$a=(e,t,n,r)=>{let i=r!==`24x7`,a=X(t,n),o=0,s=X(e,n);for(;s<a;)s=Ja(s,i),s<=a&&o++;return o},eo=(e,t)=>{let n=qa(t),r=0,i=qa(e);for(;i<n;)i=Ya(i),i<=n&&r++;return r},to=(e,t,n)=>{let r=C(t)*1e3,i=[],a=e;for(let e=0;e<n;e++)a+=r,Ua(a)||(a=Wa(a,r)),i.push(a);return i},no=(e,t,n,r)=>{if(n<=0)return[];if(Ue(t))return Qa(e,t,n,r);if(q(t))return Xa(e,n);if(J(t))return Za(e,n);if(r===`24x7`){let r=C(t)*1e3;return Array.from({length:n},(t,n)=>e+(n+1)*r)}if(r===`1700-1700`)return to(e,t,n);let i=C(t)*1e3;return Array.from({length:n},(t,n)=>e+(n+1)*i)},ro=(e,t,n,r)=>{if(Ue(n))return $a(e,t,n,r);if(q(n))return Math.max(0,Math.floor((qa(t)-qa(e))/Ka));if(J(n))return eo(e,t);if(r===`24x7`){let r=C(n)*1e3;return Math.max(0,Math.floor((t-e)/r))}if(r===`1700-1700`){let r=C(n)*1e3,i=0,a=e;for(;a<t;)a+=r,Ua(a)||(a=Wa(a,r)),a<=t&&i++;return i}let i=C(n)*1e3;return Math.max(0,Math.floor((t-e)/i))},io=e=>e>1e11?e:e*1e3,ao=(e,t)=>{let n=io(e);if(Ue(t))return X(n,t);if(q(t)||J(t))return n;let r=C(t)*1e3;return Math.floor(n/r)*r},oo=(e,t,n,r)=>{let i=io(e),a=ao(t,n),o=[],s=i;for(let e=0;e<2500;e++){let[e]=no(s,n,1,r);if(e==null||!Number.isFinite(e))break;if(Ge(e,a,n)||e>=a)return{gapTimes:o,eventBarMs:e};o.push(e),s=e}return{gapTimes:o,eventBarMs:s}},Z=(0,c.reactive)({activeTab:`patterns`,selectedPattern:null,playEndTimestamp:null,targetCandles:[],gapCount:0,setActiveTab(e){this.activeTab=e},setSelectedPattern(e){this.selectedPattern=e},setPlayEndTimestamp(e){this.playEndTimestamp=e},getPlayEndTimestamp(){return this.playEndTimestamp},setTargetCandles(e){this.targetCandles=e},setGapCount(e){this.gapCount=e}});function so(){return Z}var co=null,lo=!1,uo=!1,fo=0,po=!1;function mo(e){Number.isFinite(e)&&e>fo&&(fo=e)}function ho(e){Number.isFinite(e)&&e>0&&(fo=e)}function go(){fo=0}function _o(){return po}function vo(){po=!1}function yo(e){return typeof e==`function`&&typeof e.onReady!=`function`}function bo(e){if(typeof e?.onReady!=`function`)throw Error(`withPlayChart: expected a TradingView datafeed object with onReady(). If you use a factory, call it first: withPlayChart(yourDataFeed(...)) or pass factory args: withPlayChart(yourDataFeed, arg1, arg2).`)}function xo(e){return co=e,t=>{t?.time&&mo(t.time),!(!lo&&uo)&&e(t)}}function So(e){bo(e);let t=e.getBars?.bind(e),n=e.subscribeBars?.bind(e);return!n&&!t?e:Object.assign(Object.create(Object.getPrototypeOf(e)),e,{getBars(e,n,r,i,a){if(t)return t(e,n,r,(e,t)=>{let n=e?.[e.length-1];n?.time&&mo(n.time),i(e,t)},a)},subscribeBars(e,t,r,i,a){if(n)return n(e,t,xo(r),i,a)}})}function Co(e,...t){if(yo(e)){if(t.length>0)return So(e(...t));throw Error(`withPlayChart: received a datafeed factory. Call it before passing to TradingView: withPlayChart(yourDataFeed(...)) or pass factory arguments: withPlayChart(yourDataFeed, arg1, arg2).`)}return So(e)}function Q(e){uo=e}function wo(e){if(!co)return!1;if(fo>0&&e.time<fo)return!0;lo=!0;try{mo(e.time),po=!0,co(e)}finally{lo=!1}return!0}var To=[],Eo=null,Do=(e,t)=>{To=e,Eo=t??null},Oo=()=>To,ko=e=>e>1e11?e:e*1e3,Ao=(e,t)=>{let n=ko(e),r=t.find(e=>ko(e.time)===n);return r||!Eo||!Y(Eo)?r:t.find(e=>Ge(ko(e.time),n,Eo))},jo=`Generated Candles - By iC Candle`,Mo=`Generated Candles Background - By iC Candle`,No=`revealed_count`,Po={id:No,name:`Revealed Count`,type:`integer`,defval:0,isHidden:!0,min:0},Fo=e=>{let t=Math.max(0,Number(e(0))||0);return Oo().slice(0,t)},Io=(e,t)=>!!Ao(e,t),Lo=({id:e,description:t,shortDescription:n,isHiddenStudy:r,bodyColors:i,wickColors:a,borderColors:o})=>({_metainfoVersion:51,id:e,description:t,shortDescription:n,isCustomIndicator:!0,is_hidden_study:r,is_price_study:!0,linkedToSeries:!0,format:{type:`price`,precision:2},inputs:[Po],palettes:{palette_bar:{colors:{0:{name:`Bullish`},1:{name:`Bearish`}},valToIndex:{0:0,1:1}},palette_wick:{colors:{0:{name:`Bullish Wick`},1:{name:`Bearish Wick`}},valToIndex:{0:0,1:1}},palette_border:{colors:{0:{name:`Bullish Border`},1:{name:`Bearish Border`}},valToIndex:{0:0,1:1}}},plots:[{id:`plot_open`,type:`ohlc_open`,target:`plot_candle`},{id:`plot_high`,type:`ohlc_high`,target:`plot_candle`},{id:`plot_low`,type:`ohlc_low`,target:`plot_candle`},{id:`plot_close`,type:`ohlc_close`,target:`plot_candle`},{id:`plot_bar_color`,type:`ohlc_colorer`,palette:`palette_bar`,target:`plot_candle`},{id:`plot_wick_color`,type:`wick_colorer`,palette:`palette_wick`,target:`plot_candle`},{id:`plot_border_color`,type:`border_colorer`,palette:`palette_border`,target:`plot_candle`}],ohlcPlots:{plot_candle:{title:n,forceOverlay:!0}},styles:{},defaults:{styles:{},ohlcPlots:{plot_candle:{borderColor:o[0],color:i[0],drawBorder:!0,drawWick:!0,plottype:`ohlc_candles`,visible:!0,wickColor:a[0]}},palettes:{palette_bar:{colors:{0:{color:i[0],width:1,style:0},1:{color:i[1],width:1,style:0}}},palette_wick:{colors:{0:{color:a[0],width:1,style:0},1:{color:a[1],width:1,style:0}}},palette_border:{colors:{0:{color:o[0],width:1,style:0},1:{color:o[1],width:1,style:0}}}},precision:2,inputs:{[No]:0}}}),Ro=0,zo=(e=`light`)=>v[e],Bo=[NaN,NaN,NaN,NaN,NaN,NaN,NaN],Vo=e=>function(){this.init=function(e){this._context=e},this.main=function(t,n){this._context=t;let r=t.symbol.time,i=Fo(n);return!Number.isFinite(r)||!i.length||!Io(r,i)?[...Bo]:e(t,i)}},Ho=(e=`light`)=>{let t=zo(e),n={name:Mo,metainfo:{_metainfoVersion:51,id:`Generated Candles Background - By iC Candle@tv-basicstudies-1`,description:Mo,shortDescription:`Generated Candles Background`,isCustomIndicator:!0,is_hidden_study:!0,is_price_study:!0,linkedToSeries:!0,format:{type:`inherit`},inputs:[Po],palettes:{prediction_bar_palette:{colors:{0:{name:`Predicted Bar`}},valToIndex:{[Ro]:0}},prediction_mask_palette:{colors:{0:{name:`Predicted Mask`}},valToIndex:{0:0}}},plots:[{id:`bar`,type:`bar_colorer`,palette:`prediction_bar_palette`},{id:`mask_open`,type:`ohlc_open`,target:`mask_candle`},{id:`mask_high`,type:`ohlc_high`,target:`mask_candle`},{id:`mask_low`,type:`ohlc_low`,target:`mask_candle`},{id:`mask_close`,type:`ohlc_close`,target:`mask_candle`},{id:`mask_bar_color`,type:`ohlc_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`},{id:`mask_wick_color`,type:`wick_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`},{id:`mask_border_color`,type:`border_colorer`,palette:`prediction_mask_palette`,target:`mask_candle`}],ohlcPlots:{mask_candle:{title:`Predicted Mask Candle`,forceOverlay:!0}},defaults:{ohlcPlots:{mask_candle:{borderColor:t,color:t,drawBorder:!0,drawWick:!0,plottype:`ohlc_candles`,visible:!0,wickColor:t}},palettes:{prediction_bar_palette:{colors:{0:{color:t,width:1,style:1}}},prediction_mask_palette:{colors:{0:{color:t,width:1,style:0}}}},inputs:{[No]:0}}},constructor:function(){this.init=function(e){this._context=e},this.main=function(e,t){this._context=e;let n=e.symbol.time,r=Fo(t);if(!Number.isFinite(n)||!Io(n,r))return[NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN];let{open:i,high:a,low:o,close:s}=e.symbol,c=Math.max(a-o,Math.abs(s-i),Math.abs(s)*1e-4,.01);return[Ro,i,a+c,o-c,s,0,0,0]}}},r={name:jo,metainfo:Lo({id:`Generated Candles - By iC Candle@tv-basicstudies-1`,description:jo,shortDescription:`Generated Candles`,isHiddenStudy:!1,bodyColors:[`#00dfb9`,`#ffb84d`],wickColors:[`#00dfb9`,`#ffb84d`],borderColors:[`#00dfb9`,`#ffb84d`]}),constructor:Vo((e,t)=>{let n=Ao(e.symbol.time,t);if(!n)return[...Bo];let r=+(n.close<n.open);return[n.open,n.high,n.low,n.close,r,r,r]})};return Promise.resolve([n,r])},Uo=(e,t)=>{if(t)try{e.removeEntity(t)}catch{}},Wo=e=>({"ohlcPlots.mask_candle.color":e,"ohlcPlots.mask_candle.borderColor":e,"ohlcPlots.mask_candle.wickColor":e,"palettes.prediction_bar_palette.colors.0.color":e,"palettes.prediction_mask_palette.colors.0.color":e}),Go=(e,t)=>{try{e.getSeries().sendToBack()}catch{}let n=t.generatedCandlesStudyIdRef.current;n&&e.bringToFront([n])},Ko=e=>{try{e.getSeries().bringToFront()}catch{}},qo=async(e,t,n)=>{Uo(e,t.generatedCandlesStudyIdRef.current),Uo(e,t.generatedCandlesBackgroundStudyIdRef.current),t.generatedCandlesStudyIdRef.current=null,t.generatedCandlesBackgroundStudyIdRef.current=null;let r=await e.createStudy(Mo,!0,!0,void 0,Wo(n));r&&(t.generatedCandlesBackgroundStudyIdRef.current=r);let i=await e.createStudy(jo,!0,!0);i&&(t.generatedCandlesStudyIdRef.current=i),Go(e,t)},Jo=(e,t,n)=>{let r={id:No,value:n};for(let n of[t.generatedCandlesBackgroundStudyIdRef,t.generatedCandlesStudyIdRef])if(n.current)try{e.getStudyById(n.current).setInputValues([r])}catch{}};function Yo(e,t,n,r,i,a){let o=t.highlightBarsRef,s={current:i.value},l={current:null},u=!1,d,f=()=>{d&&=(clearInterval(d),void 0)},p=n=>{let r=e.value;if(r)try{Jo(r.activeChart(),t,n)}catch{}},m=(t,r,a=[])=>{let o=e.value,s=i.value,c=Z.targetCandles;if(!(!o||!s?.length)&&!(!t.length&&!a.length)&&c.length)try{let e=o.activeChart(),i=S(n.value),s=X(c[0].timestamp,n.value)/1e3-100*i,l;if(r>0&&t.length>0)l=ko(t[r-1].time)/1e3+100/3*i;else{let e=t[t.length-1]??a[a.length-1];l=(e?ko(e.time):X(c[c.length-1].timestamp,n.value))/1e3+100/3*i}e.setVisibleRange({from:s,to:l}).catch(()=>{})}catch(e){console.error(`Error setting visible range:`,e)}},h=(e,t,n)=>new Promise(r=>{if(!e.length){r();return}let i=0,a=0,o=()=>{f(),r()},s=()=>{if(u){o();return}if(i>=e.length){o();return}let t=e[i];if(t&&wo(t)){i++,a=0,n?.(i),i>=e.length&&o();return}a++,a>200&&o()};s(),i<e.length&&!u&&(d=setInterval(s,Math.max(t,1)))}),g=async()=>{let n=e.value;if(!(!n||!t.generatedCandlesStudyIdRef||!t.generatedCandlesBackgroundStudyIdRef)){if(t.generatedCandlesStudyIdRef.current&&t.generatedCandlesBackgroundStudyIdRef.current)try{let e=n.activeChart();Jo(e,t,0),Go(e,t);return}catch{}try{await new Promise(e=>{n.onChartReady(async()=>{try{await qo(n.activeChart(),t,a.value)}catch(e){console.error(`Failed to recreate generated candle studies:`,e)}e()})})}catch{}}},_=e=>{u||(Q(!1),l.current=i.value,o.current=e)},v=async(r,i=[])=>{if(u||(Q(!0),Do(r,n.value),o.current=[],await g(),u))return;if(m(r,0,i),i.length>0){let e=S(n.value)*1e3;ho(Math.max(0,i[0].time-e));for(let e of i){if(u)return;wo(e)}}if(await h(r,100,e=>{p(e),o.current=r.slice(0,e)}),u)return;let a=e.value;if(a)try{Go(a.activeChart(),t)}catch{}_(r)},y=()=>{u=!1,f();let a=i.value,c=Z.targetCandles,d=Z.gapCount,p=e.value;if(a?.length&&c.length>0){if(l.current===a)return;(async()=>{let e=c[c.length-1],t=Y(n.value)?e.timestamp>1e11?e.timestamp:e.timestamp*1e3:X(e.timestamp,n.value),i=Z.playEndTimestamp,o=i!=null&&Number.isFinite(i)?ko(i):null,s=o==null?null:ao(o,n.value),l=s!=null&&s>t&&!Ge(s,t,n.value),f=U.find(e=>e.ticker===r.value||e.display_name===r.value)?.session||`24x7`,m=l&&o!=null?oo(t,o,n.value,f):null,h=m?m.gapTimes.length:Y(n.value)&&d||0,g=La([...a].slice(-50-h),e,c),_=e.c,y=m?m.gapTimes:no(t,n.value,h,f),b=y.map(e=>({open:_,high:_,low:_,close:_,time:e})),x=m?[m.eventBarMs,...no(m.eventBarMs,n.value,Math.max(0,g.length-1),f)]:no(h?y[y.length-1]:t,n.value,g.length,f);if(!m&&Y(n.value)&&h===0&&p)try{let{data:e}=await p.activeChart().exportData({includedStudies:[]}),r=X(t,n.value),i=[];for(let t of e??[]){let e=t[0]>1e11?t[0]:t[0]*1e3;if(X(e,n.value)<=r)continue;let a=i[i.length-1];if(!(a!=null&&Ge(a,e,n.value))&&(i.push(e),i.length>=g.length))break}if(i.length>0){let e=no(i[i.length-1],n.value,g.length-i.length,f);x=[...i,...e]}}catch{}let S=[...g.map((e,t)=>({open:e.o,high:e.h,low:e.l,close:e.c,time:Y(n.value)?x[t]:X(x[t],n.value)}))].sort((e,t)=>e.time-t.time);if(!u)try{p?.onChartReady(()=>{v(S,b)})}catch{v(S,b)}})()}else{if(Q(!1),Do([]),l.current=null,o.current=[],p)try{Jo(p.activeChart(),t,0)}catch{}try{p?.onChartReady(()=>{p&&Ko(p.activeChart())})}catch{}}s.current=a},b=()=>{u=!0,f(),Q(!1)};(0,c.watch)([e,i,()=>Z.targetCandles,()=>Z.gapCount,()=>Z.playEndTimestamp,()=>n.value,()=>r.value,()=>a.value],()=>{b(),y()},{immediate:!0,deep:!0}),(0,c.watch)(i,n=>{if(!n?.length){Do([]),o.current=[];let n=e.value;if(n)try{Jo(n.activeChart(),t,0)}catch{}}}),(0,c.onBeforeUnmount)(b)}var Xo=e=>Number(Je(e)),Zo=(e,t)=>({o:e[1],h:e[2],l:e[3],c:e[4],timestamp:Y(t)?e[0]>1e11?e[0]:e[0]*1e3:Xo(e[0])}),$=e=>Xo(e[0]),Qo=(e,t)=>{let n=-1,r=-1/0;for(let i=0;i<e.length;i++){let a=$(e[i]);a<=t&&a>=r&&(r=a,n=i)}return n},$o=(e,t=500)=>new Promise(n=>{let r=!1,i=()=>{r||(r=!0,n())};try{e.onDataLoaded().subscribe(null,i,!0)}catch{}setTimeout(i,t)}),es=(e,t,n)=>t>=e&&t-e<n,ts=(e,t,n,r)=>t<=e?!1:Y(r)&&es(e,t,n)?t*1e3>Date.now():!0,ns=(e,t)=>{if(t.current){try{let n=e?.activeChart?.();if(n)try{n.removeEntity(t.current)}catch{}}catch{}t.current=null}},rs=e=>{try{localStorage.removeItem(m)}catch{}try{let t=e?.activeChart?.();if(!t)return;t.clearMarks(2),t.refreshMarks()}catch{}},is=(e,t)=>{try{localStorage.setItem(m,JSON.stringify(t))}catch{}try{(e?.activeChart?.())?.refreshMarks()}catch{}},as=async(e,t)=>{if(!(!e||!Number.isFinite(t)||t<=0))try{await e.headerReady();let n=e.activeChart(),r=Xo(t),i=n.getVisibleRange(),a;a=i?.from!=null&&i?.to!=null&&i.to>i.from?(i.to-i.from)/2:100*C(n.resolution())/2,await n.setVisibleRange({from:r-a,to:r+a}),await $o(n)}catch(e){console.error(`Error centering visible range on event`,e)}},os=async(e,t,n)=>{if(!e||!Number.isFinite(t)||t<=0)return;await e?.headerReady();let r=e?.activeChart?.();if(r)try{if(n.current){try{r.removeEntity(n.current)}catch{}n.current=null}try{let e=r.resolution(),i=C(e),a=Xo(t),{data:o}=await r.exportData({includedStudies:[],from:a-5*i,to:a+i}),s=o??[],c=Qo(s,a),l=a-a%i,u=Ke(c>=0&&es($(s[c]),a,i)?$(s[c]):l,e),d=await r.createShape({time:u},{shape:`vertical_line`,lock:!0,disableSelection:!0,overrides:{linestyle:2,linewidth:1}});d&&(r.getShapeById(d)?.setSavingEnabled(!1),n.current=d)}catch{}}catch{}},ss=async(e,t)=>{if(!(!e||!Number.isFinite(t)||t<=0))try{await e.headerReady();let n=e.activeChart(),r=C(n.resolution()),{data:i}=await n.exportData();if(!i?.length)return;let a=$(i[i.length-1]),o=Xo(t);await n.setVisibleRange({from:a-100*r,to:o+100/3*r}),await $o(n)}catch(e){console.error(`Error expanding visible range for future event`,e)}},cs=async(e,t,n)=>{if(!e||!n||!Number.isFinite(t)||t<=0)return!1;try{await e.headerReady();let r=e.activeChart(),i=r.resolution(),a=C(i),o=Xo(t),s=async(e,t)=>{let{data:n}=await r.exportData({includedStudies:[],...e!=null&&t!=null?{from:e,to:t}:{}});return n??[]},c=await s();if(!c.length)return!1;let l=ts($(c[c.length-1]),o,a,i),u=r.symbol(),d=U.find(e=>e.ticker===u||e.display_name===u)?.session||`24x7`;n.clearSelectedCandles();let f=Z.playEndTimestamp;Z.setPlayEndTimestamp(null),Q(!1);let p=()=>{f!=null&&Number.isFinite(f)&&Z.setPlayEndTimestamp(f)};l?await ss(e,t):await as(e,t);let m=async()=>{let e=await s(o-250*a,o+100/3*a);return e.length?e:s()};if(c=await m(),!c.length)return p(),!1;let h=e=>{let t=Qo(e,o);return t<0?-1:Y(i)&&t+1<e.length?o<$(e[t+1])?t:-1:es($(e[t]),o,a)?t:-1},g=$(c[c.length-1]),_=ts(g,o,a,i),v=_?-1:h(c);if(!_&&v<0){if(await $o(r),c=await m(),!c.length)return p(),!1;g=$(c[c.length-1]),_=ts(g,o,a,i),v=_?-1:h(c)}if(_){let e=o-o%a,r=X(g,i),s=X(e,i),l=ro(r,s,i,d);Z.setGapCount(Math.max(0,l-+(s>r))),Z.setPlayEndTimestamp(t);let u=c.slice(-50).map(e=>Zo(e,i));return u.length===0||n.setTargetCandles(u),!0}if(Z.setGapCount(0),v<0)return p(),!1;let y=Y(i)?v-1:v;if(y<0)return p(),!1;Z.setPlayEndTimestamp($(c[y]));let b=c.slice(Math.max(0,y-49),y+1).map(e=>Zo(e,i));return b.length===0?(p(),!1):(n.setTargetCandles(b),!1)}catch(e){return console.error(`Error preparing event target candles`,e),!1}},ls=e=>{if(!e||!_o()){vo();return}try{e.onChartReady(()=>{let t=e.activeChart(),n,r;try{let e=t.getVisibleRange();n=e?.from,r=e?.to}catch{}try{t.resetData(),e.resetCache?.(),go()}catch(e){console.error(`Error resetting chart data`,e)}finally{vo()}n!=null&&r!=null&&Number.isFinite(n)&&Number.isFinite(r)&&n<r&&$o(t,800).then(()=>{t.setVisibleRange({from:n,to:r}).catch(()=>{})})})}catch{vo()}},us=(e,t,n)=>{t([]),n?.preserveStartAnchor||(Z.setPlayEndTimestamp(null),Z.setGapCount(0)),Q(!1),ls(e)},ds=(e,t)=>{if(e)try{let n=e.activeChart?.();if(!n)return;if(t.current){try{n.removeEntity(t.current)}catch{}t.current=null}n.getAllShapes().filter(e=>e.name===`date_range`).forEach(e=>{try{n.removeEntity(e.id)}catch{}})}catch{}},fs=e=>Na[e]||e,ps=e=>{if(!e)return null;let t=Object.keys(e)[0],n=Number(t);return Number.isFinite(n)&&n>0?n:null},ms=async(e,t,n,r,i,a)=>{if(!e)return;let{end_timestamp:o,symbol:s,timeframe:c}=t,l=ps(i),u=fs(c);if(!(!s||!c||!Number.isFinite(o)||o<=0||l==null)&&!(a&&a.length>0&&!a.includes(u)&&!a.includes(c)))try{await e.headerReady();let i=C(u);r?.clearSelectedCandles(),Z.setPlayEndTimestamp(null),Z.setGapCount(0),Q(!1),r&&(r.applyingPatternRef.current=!0);try{await new Promise(t=>{e.setSymbol(s,u,()=>t())});let a=e.activeChart();ds(e,n);let c=o-(l-1)*i;try{await a.setVisibleRange({from:c-(100*i+i*l+i*100),to:o+100/3*i})}catch(e){console.error(`Error setting visible range for pattern`,e)}let{data:d}=await a.exportData(),f=d.findIndex(e=>e[0]===o);f===-1&&(f=d.length-1);let p=Math.max(0,f-l+1),m=d.slice(p,f+1),h=m[0]?.[0]??o,g=m[m.length-1]?.[0]??o,_=t.pattern?.trim()||``,v=Aa(),y=await a.createMultipointShape([{time:h},{time:g}],{...v,overrides:{...v.overrides,title:_||`Pattern range`}});if(y){let e=a.getShapeById(y);e&&(_&&e.setProperties({customText:{visible:!0,text:_,color:`#ffffff`,fontsize:14,bold:!0}}),e.setSavingEnabled(!1)),n.current=y,r&&(r.lastEntity.current=y)}if(r&&m.length>0){let e=m.map(e=>Zo(e,u)),t=e.slice(-50);r.setSymbol(s),r.setResolution(u),r.setTimeframe(u),r.setWindowSize(e.length),r.setCandles(e),r.setTargetCandles(t),r.setHasActiveShape(!0)}}finally{r&&setTimeout(()=>{r.applyingPatternRef.current=!1},600)}}catch(e){console.error(`Error drawing pattern date range`,e),r&&setTimeout(()=>{r.applyingPatternRef.current=!1},600)}};function hs(e,t,n,r,i,a,o,s,l){let u={current:n.value},d={current:e.value},f={current:t},p={current:r},m={current:i},h={current:a},_={current:o},v={current:typeof s==`function`?s():s},y={current:l},b={current:null},x={current:null},S={current:null},C={current:null};(0,c.watch)(n,e=>{u.current=e}),(0,c.watch)(e,e=>{d.current=e}),(0,c.watch)(()=>o,e=>{_.current=e}),(0,c.watch)(()=>typeof s==`function`?s():s,e=>{v.current=e}),(0,c.watch)(()=>l,e=>{y.current=e});let w=({origin:e,data:t})=>{if(e!==`https://embed-iccandle-app.iccandle.ai`)return;let n;try{n=typeof t==`string`?JSON.parse(t):t}catch{return}if(!n||typeof n!=`object`)return;let r=()=>{ds(d.current,x);let e=h.current;e&&(e.lastEntity.current=null,e.setHasActiveShape(!1),e.setCandles([]),e.setTargetCandles([]))},i=n.name;if(typeof i!=`string`)return;let a=n.data;switch(i){case`chart.play`:{let e=a;if(!e)return;if(e.isReplay){let t=(e.selectedCandles??[]).map(e=>({o:e.o,h:e.h,l:e.l,c:e.c,timestamp:e.timestamp}));if(t.length===0)return;(async()=>{let n=S.current;if(n==null)try{n=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`)?.timestamp??null,n!=null&&(S.current=n)}catch{n=null}let r=e.playEndTimestamp!=null&&Number.isFinite(e.playEndTimestamp)?Xo(e.playEndTimestamp):null;(Z.playEndTimestamp==null||Z.targetCandles.length===0)&&n!=null&&await cs(d.current,n,h.current);let i=Z.playEndTimestamp??r??C.current??(n==null?u.current:Xo(n));i!=null&&Number.isFinite(i)&&(C.current=i,Z.setPlayEndTimestamp(i)),f.current(t)})();return}if(!(`candles`in e))return;let t=e.candles??null;f.current(t);let n=u.current;n!=null&&Number.isFinite(n)&&Z.setPlayEndTimestamp(n);break}case`chart.stop`:if(a?.isReplay===!1){let e=Z.playEndTimestamp;e!=null&&Number.isFinite(e)&&(C.current=e),f.current([]),Q(!1),ls(d.current);break}f.current(null),C.current=null,Z.setPlayEndTimestamp(null),Z.setGapCount(0),Q(!1),ls(d.current);break;case`selector.closeResult`:us(d.current,f.current),m.current?.();break;case`selector.loading`:{let e=a;p.current(e?.isLoading??!1);break}case`auth.signIn`:{let e=a;localStorage.setItem(g,e?.idToken||``);break}case`auth.signOut`:localStorage.removeItem(g);break;case`news.eventClicked`:{let e=a?.event;if(!e?.timestamp)return;S.current=e.timestamp,is(d.current,e),(async()=>{await cs(d.current,e.timestamp,h.current),await os(d.current,e.timestamp,b)})();break}case`news.back`:ns(d.current,b),rs(d.current),us(d.current,f.current),S.current=null,C.current=null,Z.setGapCount(0),h.current?.setTargetCandles([]);break;case`news.backToSimilarEvents`:us(d.current,f.current);break;case`pattern.classicPatternSelected`:{let e=n.data?.pattern,t=e?.compared_pattern;if(!t)return;ms(d.current,t,x,h.current,e?.results?.matches_by_window,v.current);break}case`pattern.custom_pattern_selected`:case`patter.custom_pattern_selected`:{let e=a?.pattern,t=e?.compared_pattern;if(!t)return;ms(d.current,t,x,h.current,e?.results?.matches_by_window,v.current);break}case`pattern.clear_custom_pattern_selected`:case`pattern.clearClassicPatternSelected`:r();break;case`nav.click`:{let e=a;e?.href&&_.current?.(e.href);break}case`chart.requestResolution`:y.current?.();break;default:break}};window.addEventListener(`message`,w),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,w)})}var gs=`chart-resolution`;function _s(e){return{type:gs,resolution:e}}function vs(e,t){let n=JSON.stringify(_s(t));e.postMessage(n,`*`)}function ys(e,t,n=0){!e||n>4||e.querySelectorAll(`iframe`).forEach(e=>{let r=e.contentWindow;if(!(!r||t.has(r))){t.add(r);try{ys(e.contentDocument,t,n+1)}catch{}}})}function bs(e,t){if(!t)return!1;let n=new Set;return e?.contentWindow&&n.add(e.contentWindow),typeof document<`u`&&ys(document,n),n.forEach(e=>vs(e,t)),n.size>0}var xs=`selector-loading`;function Ss(e){return{type:xs,isLoading:e}}function Cs(e,t){let n=e?.contentWindow;if(!n)return!1;let r=`*`;try{e?.src&&(r=new URL(e.src).origin)}catch{}return n.postMessage(JSON.stringify(Ss(t)),r),!0}var ws=`open-pricing`;function Ts(e){return{type:ws,...e}}function Es(e,t){e.postMessage(JSON.stringify(Ts(t)),`*`)}function Ds(e,t){let n=e?.contentWindow;return n?(Es(n,t),!0):!1}function Os(e){return typeof window>`u`||window.parent===window?!1:(Es(window.parent,e),!0)}var ks=[`lang`],As={key:3,class:`iccandle-selector-widget__overlay`},js=(0,c.defineComponent)({__name:`WidgetIccandle`,props:{chartWidget:{},submitCallback:{},theme:{default:`light`},chartMaskColors:{},language:{},onCloseResult:{},iframeLoaded:{type:Boolean,default:!0},resultIframeRef:{},isShowScanButton:{type:Boolean,default:!0},isShowTrackerButton:{type:Boolean,default:!0},isShowScannerPopup:{type:Boolean,default:!0},availableIntervals:{},onScanClick:{}},setup(e,{expose:t}){function n(e){return{o:e[1],h:e[2],l:e[3],c:e[4],timestamp:e[0]}}function r(e){try{let t=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`);if(t&&String(t.id)===String(e))return t}catch{}try{return JSON.parse(localStorage.getItem(`tv:selected-news-events`)||`[]`).find(t=>String(t.id)===String(e))??null}catch{return null}}function i(e){return!(!e?.event_name||!e.currency||e.event_name===`Holiday`||e.status===`early`)}let a=e,o=(0,c.computed)(()=>T(a.language)),s=(0,c.computed)(()=>a.isShowScanButton?a.availableIntervals:[..._]);ee(o);let l={highlightBarsRef:{current:[]},generatedCandlesBackgroundStudyIdRef:{current:null},generatedCandlesStudyIdRef:{current:null}};t({chartRefs:l});let u={current:null},d={current:null},f={current:!1},g=(0,c.ref)(null),y={current:[]},b=(0,c.ref)(null),x=so(),S=(0,c.ref)(!1),C=(0,c.ref)(null),w=(0,c.ref)(!1),E=(0,c.ref)(null),D=(0,c.ref)(null),O=()=>b.value&&getComputedStyle(b.value).getPropertyValue(`--iccandle-primary`).trim()||void 0,k={current:O};(0,c.watch)(b,()=>{k.current=O},{immediate:!0});let A=(0,c.computed)(()=>a.theme===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:a.theme),j=(0,c.computed)(()=>({light:a.chartMaskColors?.light??v.light,dark:a.chartMaskColors?.dark??v.dark})[A.value]),M=(0,c.computed)(()=>({zIndex:9999999999})),N=(0,c.ref)(!1),P=(0,c.ref)(!1),F=(0,c.ref)(!1),I=(0,c.ref)(25),L=(0,c.ref)([]),R=(0,c.ref)(null),z=(0,c.ref)(!1),B=(0,c.ref)(`60`),V=(0,c.ref)(Ma.interval||`60`),H=(0,c.ref)(``),te=()=>{try{let e=a.chartWidget?.activeChart?.();if(e){if(u.current){try{e.removeEntity(u.current)}catch{}u.current=null}e.getAllShapes().filter(e=>e.name===`date_range`).forEach(t=>{try{e.removeEntity(t.id)}catch{}})}}catch{}F.value=!1,L.value=[],x.setTargetCandles([])},ne=e=>{let t=e;try{t=new URL(e,`${p}/`).pathname}catch{}t.includes(`/news`)&&te(),C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1))},re=()=>{P.value=!0},ie=()=>{P.value=!1},ae=()=>{x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1),g.value?.()},oe=()=>{R.value=`settings`},se=()=>{R.value=`scan`},ce=()=>{R.value=null},le=()=>{z.value=!1},ue=()=>{z.value=!0},fe=e=>{S.value=e,Cs(a.resultIframeRef?.current,e)},pe=()=>{let e=V.value;try{e=G.value?.activeChart?.()?.resolution?.()||V.value}catch{e=V.value}bs(a.resultIframeRef?.current,e)},W={current:[]},me=e=>{W.current.forEach(e=>window.clearTimeout(e));let t=()=>{if(e){bs(a.resultIframeRef?.current,e);return}pe()};W.current=[0,300,1e3,2500,5e3].map(e=>window.setTimeout(t,e))},he=()=>{let e={theme:A.value===`dark`?`dark`:`light`,language:o.value};Ds(a.resultIframeRef?.current,e)||Os(e)||a.submitCallback(`${p}/${o.value}?pricing=true&theme=${A.value===`dark`?`dark`:`light`}`)},ge=()=>{w.value=!1,E.value=null,D.value=null},_e=()=>{q(String(V.value))||J(String(V.value))||(N.value=!0)},ve=e=>{let t=e.default_symbol||H.value,n=A.value===`dark`?`dark`:`light`,r=G.value;te(),C.value=null,x.setPlayEndTimestamp(null);let i={id:e.id,event_name:e.event_name,timestamp:e.timestamp,actual:e.actual||``,forecast:e.forecast||``,previous:e.previous||``,currency:e.currency||``,metric:``,default_symbol:e.default_symbol,status:e.status};try{localStorage.setItem(m,JSON.stringify(i))}catch{}try{r?.activeChart?.()?.refreshMarks()}catch{}(async()=>{await cs(r,e.timestamp,{lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}}),await os(r,e.timestamp,d)})(),a.submitCallback(`${p}/${o.value}/news/similar-events/${e.id}?symbol=${encodeURIComponent(t)}&theme=${n}`)},ye=e=>{if(!e)return;let t=G.value;if(!t)return;let n;try{n=t.activeChart()}catch(e){console.log(`Error getting active chart`,e);return}if(!n)return;let a=n.getTimeScale(),o=n.getVisibleRange();if(!o?.from||!o?.to)return;let s=b.value?.firstElementChild||b.value;if(!s)return;let c=s.getBoundingClientRect(),l=a.width(),u=e=>{let t=0,n=l,r=l/2;for(let i=0;i<30;i++){let i=(t+n)/2,s=a.coordinateToTime(i);if(s===null){let t=(e-o.from)/(o.to-o.from);r=Math.max(0,Math.min(l,t*l));break}let c=s-e;if(Math.abs(c)<.1){r=i;break}c>0?n=i:t=i,r=i}return{x:c.left+r+53,y:c.bottom-103}},d=r(e);if(!i(d))return;let f=d.timestamp?d.timestamp/1e3:null,p=o.to-o.from,m=u(f??o.from+p*.5);m&&(D.value=m),E.value=d,w.value=!0},be=()=>{f.current||(u.current=null,F.value=!1)},xe=e=>{B.value=e,V.value=e,me(e),be(),s.value!=null&&!s.value.includes(String(e))&&(R.value=null,z.value=!1),(q(String(e))||J(String(e)))&&(N.value=!1),f.current||C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1));let t=null;try{t=JSON.parse(localStorage.getItem(`tv:clicked-news-event`)||`null`)}catch{t=null}!t?.timestamp||!a.chartWidget||(async()=>{await cs(a.chartWidget,t.timestamp,{lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}}),await os(a.chartWidget,t.timestamp,d)})()},Se=e=>{H.value=e.library_custom_fields?.ticker||e.ticker||e.name||e.base_name+``||``,be(),me(),!f.current&&C.value?.length&&(x.setPlayEndTimestamp(null),x.setGapCount(0),C.value=null,Q(!1))},G=(0,c.shallowRef)(a.chartWidget);(0,c.watch)(()=>a.chartWidget,e=>{G.value=e}),(0,c.watch)(G,e=>{let t,r,i;(0,c.onWatcherCleanup)(()=>{F.value=!1,u.current=null,g.value=null;try{if(r&&clearTimeout(r),e){let n=e.activeChart();n&&(i&&n.onVisibleRangeChanged().unsubscribe(null,i),n.onIntervalChanged().unsubscribe(null,xe),n.onSymbolChanged().unsubscribe(null,Se)),t&&e.unsubscribe(`drawing_event`,t)}}catch(e){console.log(e)}}),e&&e.onChartReady(()=>{let a=e.activeChart();if(a){let o=a.resolution();B.value=o,V.value=o;let s=U?.find(e=>e.display_name===a.symbol());H.value=s?.ticker||a.symbol();let c=async(e,t)=>{if(((a?.getAllShapes())?.filter(e=>e.name===`date_range`))?.forEach(e=>{a?.removeEntity(e.id)}),t){let{data:e}=await a.exportData(),r=a.resolution(),i=qe(e,t,r);i===-1&&(i=e.length-1);let o=e.slice(Math.max(0,i-25+1),i+1),s=e.slice(Math.max(0,i-49),i+1);I.value=o.length,L.value=o.map(n),x.setTargetCandles(s.map(n)),F.value=!0;let c=o[0],l=o[o.length-1];if(!c||!l)return;if(u.current=await a.createMultipointShape([{time:Ke(c[0],r)},{time:Ke(l[0],r)}],Aa(k.current())),u.current){let e=a.getShapeById(u.current);e&&e.setSavingEnabled&&(e.setProperties({customText:{visible:!0,text:ja}}),e.setSavingEnabled(!1))}}};t=He(async(t,r)=>{if(!f.current&&(r===`remove`&&(u.current===t&&(u.current=null),F.value=!1),r===`points_changed`&&a.getAllShapes().filter(e=>e.name===`date_range`).some(e=>e.id===t)&&e)){let e=a.getShapeById(t);if(!e)return;let r=e.getPoints(),i=r[0].time,o=r[1].time,{data:s}=await a.exportData(),c=a.resolution(),l=qe(s,o,c),d=qe(s,i,c);l===-1&&(l=s.length-2,d=s.length-1-25);let f=s.slice(d,l+1).length-1;f>=de.max?(f=Math.round(f/10)*10-1,f>de.custom[de.custom.length-1]&&(f=de.custom[de.custom.length-1]-1)):f<=de.min&&(f=de.min-1),u.current&&a.removeEntity(u.current),a.getAllShapes().filter(e=>e.name===`date_range`).forEach(e=>{a.removeEntity(e.id)});let p=s.slice(l-f,l+1),m=s.slice(l-49,l+1),h=p[0],g=p[p.length-1];if(!h||!g)return;if(u.current=await a.createMultipointShape([{time:Ke(h[0],c)},{time:Ke(g[0],c)}],Aa(k.current())),I.value=p.length,L.value=p.map(n),x.setTargetCandles(m.map(n)),F.value=!0,u.current){let e=a.getShapeById(u.current);e&&e.setSavingEnabled&&(e.setProperties({customText:{visible:!0,text:ja}}),e.setSavingEnabled(!1))}}},500),g.value=()=>{F.value=!0;let e=a.getVisibleRange();e?.from&&e?.to&&c(e.from,e.to)};let l=e=>{if(!u.current||!e)return!1;try{let t=a?.getShapeById(u.current);if(!t)return!1;let n=t.getPoints();if(n.length===0)return!1;let r=n.map(e=>e.time).filter(e=>typeof e==`number`);if(r.length===0)return!1;let i=Math.min(...r);return Math.max(...r)<e.from||i>e.to}catch{return!1}};i=e=>{r&&clearTimeout(r),r=setTimeout(()=>{l(e)?F.value=!1:u.current&&(F.value=!0)},150)},a.onIntervalChanged().subscribe(null,xe),a.onSymbolChanged().subscribe(null,Se),a.onVisibleRangeChanged().subscribe(null,i),e.subscribe?.(`drawing_event`,t)}})},{immediate:!0});let Ce=(0,c.computed)(()=>L.value[L.value.length-1]?.timestamp??null);Pa(G,y);let we={lastEntity:u,applyingPatternRef:f,setHasActiveShape:e=>{F.value=e},setCandles:e=>{L.value=e},setWindowSize:e=>{I.value=e},setSymbol:e=>{H.value=e},setResolution:e=>{V.value=e},setTimeframe:e=>{B.value=e},setTargetCandles:e=>{x.setTargetCandles(e)},clearSelectedCandles:()=>{C.value=null}};hs(G,e=>{C.value=e},Ce,e=>{S.value=e},a.onCloseResult,we,ne,()=>s.value,pe),(0,c.watch)(()=>a.iframeLoaded,e=>{e&&me()}),(0,c.onMounted)(()=>{if(typeof document>`u`)return;let e,t=new MutationObserver(t=>{t.some(e=>[...e.addedNodes,...e.removedNodes].some(e=>e instanceof HTMLIFrameElement||e instanceof Element&&e.querySelector(`iframe`)))&&(window.clearTimeout(e),e=window.setTimeout(()=>me(),200))});t.observe(document.body,{childList:!0,subtree:!0}),(0,c.onBeforeUnmount)(()=>{t.disconnect(),window.clearTimeout(e)})}),(0,c.watch)([G,j],([e])=>{if(!e)return;let t=!1;(0,c.onWatcherCleanup)(()=>{t=!0;try{e.unsubscribe(`onTimescaleMarkClick`,ye)}catch{}}),e.onChartReady(async()=>{if(!t){try{await qo(e.activeChart(),l,j.value)}catch(e){console.error(`Failed to create generated candle studies:`,e)}try{e.subscribe(`onTimescaleMarkClick`,ye)}catch{}}})},{immediate:!0}),Yo(G,l,V,H,C,j);let Te=()=>{try{localStorage.removeItem(h),localStorage.removeItem(m)}catch{}let e=a.chartWidget?.activeChart?.();if(e){y.current&&y.current.length>0&&(y.current.forEach(t=>{try{e.removeEntity(t)}catch{}}),y.current=[]);try{e.clearMarks(2)}catch{}}},Ee=e=>{B.value=e},De=e=>{N.value=e},Oe=(0,c.computed)(()=>U.find(e=>e.ticker===H.value)?.type??`forex`),ke=(0,c.computed)(()=>s.value==null||s.value.includes(String(V.value))),Ae=(0,c.computed)(()=>!q(String(V.value))&&!J(String(V.value))),je=(0,c.computed)(()=>H.value||localStorage.getItem(`tv:latest-symbol`)||`XAU_USD`);return(0,c.onBeforeUnmount)(()=>{W.current.forEach(e=>window.clearTimeout(e)),F.value=!1,u.current=null,g.value=null}),(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{ref_key:`rootEl`,ref:b,lang:o.value,class:(0,c.normalizeClass)([`iccandle-selector-widget`,A.value===`dark`?`iccandle-dark`:``])},[(0,c.renderSlot)(t.$slots,`default`,{chartRefs:l}),(0,c.createVNode)(Ve,{hide:!e.isShowScannerPopup||!ke.value,"hide-scan-button":!e.isShowScanButton,"hide-tracker-button":!e.isShowTrackerButton||!Ae.value,"submit-callback":e.submitCallback,"handle-show-dialog":oe,"on-open-scan-config":se,"on-scan-click":e.onScanClick,"set-scan-loading":fe,"on-apply-saved-timeframe":Ee,"pending-scan-after-config":z.value,"on-pending-scan-handled":le,"trigger-scanner":ae,window_size:I.value,"current-symbol":H.value,resolution:V.value,timeframe:B.value,"chart-widget":e.chartWidget,candles:L.value,"handle-start-drag":re,"handle-stop-drag":ie,"has-active-shape":F.value,theme:A.value,language:o.value,"clear-scanner-news-marks":Te,"selected-candles":C.value,"iframe-loaded":e.iframeLoaded,"is-loading":S.value,"handle-track-pattern-click":_e},null,8,[`hide`,`hide-scan-button`,`hide-tracker-button`,`submit-callback`,`on-scan-click`,`pending-scan-after-config`,`window_size`,`current-symbol`,`resolution`,`timeframe`,`chart-widget`,`candles`,`has-active-shape`,`theme`,`language`,`selected-candles`,`iframe-loaded`,`is-loading`]),N.value?((0,c.openBlock)(),(0,c.createBlock)(Gi,{key:0,open:N.value,"onUpdate:open":De,resolution:V.value,type:Oe.value,symbol:H.value,candles:L.value,percent:90,theme:A.value,onUpgradeClick:he},null,8,[`open`,`resolution`,`type`,`symbol`,`candles`,`theme`])):(0,c.createCommentVNode)(``,!0),R.value?((0,c.openBlock)(),(0,c.createBlock)(Pn,{key:1,intent:R.value,"set-resolution":Ee,timeframe:B.value,"handle-close-dialog":ce,"current-symbol":H.value,theme:A.value,onScanConfigSaved:ue,onUpgradeClick:he},null,8,[`intent`,`timeframe`,`current-symbol`,`theme`])):(0,c.createCommentVNode)(``,!0),w.value&&E.value?((0,c.openBlock)(),(0,c.createBlock)(ua,{key:2,event:E.value,symbol:je.value,position:D.value,onClose:ge,onGoToEventDetail:ve},null,8,[`event`,`symbol`,`position`])):(0,c.createCommentVNode)(``,!0),P.value?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,As)):(0,c.createCommentVNode)(``,!0),(0,c.createVNode)(Oa,{theme:A.value,style:(0,c.normalizeStyle)(M.value)},null,8,[`theme`,`style`])],10,ks))}}),Ms=e=>{let t=e?.contentWindow;if(!t||!e?.src)return;let n=new URL(e.src).origin,r=()=>t.postMessage(JSON.stringify({type:`parent-origin`,origin:window.location.origin}),n);if([0,300,1e3,2500].forEach(e=>window.setTimeout(r,e)),new URLSearchParams(window.location.search).get(`payment`)===`success`){let e=()=>t.postMessage(JSON.stringify({type:`payment-success`}),n);[0,600,1500].forEach(t=>window.setTimeout(e,t));let r=new URL(window.location.href);[`payment`,`session_id`,`lookup_key`].forEach(e=>r.searchParams.delete(e)),window.history.replaceState({},``,r)}},Ns=60;function Ps(e){let t=e.split(`.`)[1];if(!t)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=e+`=`.repeat((4-e.length%4)%4);return JSON.parse(atob(n))}catch{return null}}function Fs(e){let t=Ps(e);return t?.exp?t.exp-Ns>Math.floor(Date.now()/1e3):!1}function Is(){if(typeof window>`u`)return null;let e=localStorage.getItem(g);return!e||!Fs(e)?null:e}function Ls(){let e=(0,c.ref)(Is()),t=t=>{if(t&&Fs(t)){localStorage.setItem(g,t),e.value=t;return}localStorage.removeItem(g),e.value=null},n=e=>{if(e.origin!==`https://embed-iccandle-app.iccandle.ai`)return;let n;try{n=typeof e.data==`string`?JSON.parse(e.data):e.data}catch{return}if(n?.name===`auth.signIn`){t(n.data?.idToken||null);return}n?.name===`auth.signOut`&&t(null)},r=t=>{t.key===`iccandle_token`&&(e.value=Is())};return(0,c.onMounted)(()=>{window.addEventListener(`message`,n),window.addEventListener(`storage`,r)}),(0,c.onBeforeUnmount)(()=>{window.removeEventListener(`message`,n),window.removeEventListener(`storage`,r)}),{isAuthenticated:(0,c.computed)(()=>!!e.value),idToken:e}}var Rs=`selector-scan`;function zs(e){return{type:Rs,url:e}}function Bs(e,t){if(!e?.src||!e.contentWindow)return!1;try{let n=new URL(e.src),r=new URL(t,n.origin);return n.origin===r.origin&&n.pathname===r.pathname}catch{return!1}}function Vs(e,t){let n=e?.contentWindow;if(!n)return!1;let r=`*`;try{e?.src&&(r=new URL(e.src).origin)}catch{}return n.postMessage(JSON.stringify(zs(t)),r),!0}exports.ICCANDLE_TOKEN_KEY=g,exports.OPEN_PRICING_MESSAGE_TYPE=ws,exports.SELECTOR_LOADING_MESSAGE_TYPE=xs,exports.SELECTOR_SCAN_MESSAGE_TYPE=Rs,exports.WIDGET_RESULT_URL=p,exports.WidgetIccandle=js,exports.canSoftSelectorNavigate=Bs,exports.getCustomIndicators=Ho,exports.handleResultIframeLoad=Ms,exports.postOpenPricingToEmbed=Ds,exports.postOpenPricingToParent=Os,exports.postOpenPricingToWindow=Es,exports.postSelectorLoadingToEmbed=Cs,exports.postSelectorScanToEmbed=Vs,exports.useICCandleAuth=Ls,exports.withPlayChart=Co;
|
package/dist/widget-iccandle.js
CHANGED
|
@@ -12694,7 +12694,7 @@ var ic = ["lang"], ac = {
|
|
|
12694
12694
|
let r = e.getPoints(), i = r[0].time, o = r[1].time, { data: s } = await a.exportData(), c = a.resolution(), l = bt(s, o, c), u = bt(s, i, c);
|
|
12695
12695
|
l === -1 && (l = s.length - 2, u = s.length - 1 - 25);
|
|
12696
12696
|
let d = s.slice(u, l + 1).length - 1;
|
|
12697
|
-
d
|
|
12697
|
+
d >= Me.max ? (d = Math.round(d / 10) * 10 - 1, d > Me.custom[Me.custom.length - 1] && (d = Me.custom[Me.custom.length - 1] - 1)) : d <= Me.min && (d = Me.min - 1), m.current && a.removeEntity(m.current), a.getAllShapes().filter((e) => e.name === "date_range").forEach((e) => {
|
|
12698
12698
|
a.removeEntity(e.id);
|
|
12699
12699
|
});
|
|
12700
12700
|
let f = s.slice(l - d, l + 1), p = s.slice(l - 49, l + 1), h = f[0], g = f[f.length - 1];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iccandle/vuejs-widget",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "Vue scanner overlay for TradingView Charting Library — ICCandle pattern search, remote theming, and plugin iframe integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "ICCandle",
|