@iccandle/reactjs-widget 0.2.7 → 0.2.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/widget-iccandle.cjs
CHANGED
|
@@ -12,7 +12,7 @@ Valid keys: `+JSON.stringify(Object.keys(T),null," "));var J=de(I,ae,O,H,M+"."+
|
|
|
12
12
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const i=new this(t);return n.forEach(a=>i.set(a)),i}static accessor(t){const i=(this[jr]=this[jr]={accessors:{}}).accessors,a=this.prototype;function r(o){const s=kn(o);i[s]||(nh(a,o),i[s]=!0)}return G.isArray(t)?t.forEach(r):r(t),this}};tt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);G.reduceDescriptors(tt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(i){this[n]=i}}});G.freezeMethods(tt);function Xi(e,t){const n=this||jn,i=t||n,a=tt.from(i.headers);let r=i.data;return G.forEach(e,function(s){r=s.call(n,r,a.normalize(),t?t.status:void 0)}),a.normalize(),r}function Ts(e){return!!(e&&e.__CANCEL__)}let Un=class extends ue{constructor(t,n,i){super(t??"canceled",ue.ERR_CANCELED,n,i),this.name="CanceledError",this.__CANCEL__=!0}};function ks(e,t,n){const i=n.config.validateStatus;!n.status||!i||i(n.status)?e(n):t(new ue("Request failed with status code "+n.status,[ue.ERR_BAD_REQUEST,ue.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function ih(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function ah(e,t){e=e||10;const n=new Array(e),i=new Array(e);let a=0,r=0,o;return t=t!==void 0?t:1e3,function(u){const c=Date.now(),d=i[r];o||(o=c),n[a]=u,i[a]=c;let l=r,g=0;for(;l!==a;)g+=n[l++],l=l%e;if(a=(a+1)%e,a===r&&(r=(r+1)%e),c-o<t)return;const p=d&&c-d;return p?Math.round(g*1e3/p):void 0}}function rh(e,t){let n=0,i=1e3/t,a,r;const o=(c,d=Date.now())=>{n=d,a=null,r&&(clearTimeout(r),r=null),e(...c)};return[(...c)=>{const d=Date.now(),l=d-n;l>=i?o(c,d):(a=c,r||(r=setTimeout(()=>{r=null,o(a)},i-l)))},()=>a&&o(a)]}const li=(e,t,n=3)=>{let i=0;const a=ah(50,250);return rh(r=>{const o=r.loaded,s=r.lengthComputable?r.total:void 0,u=o-i,c=a(u),d=o<=s;i=o;const l={loaded:o,total:s,progress:s?o/s:void 0,bytes:u,rate:c||void 0,estimated:c&&s&&d?(s-o)/c:void 0,event:r,lengthComputable:s!=null,[t?"download":"upload"]:!0};e(l)},n)},Ur=(e,t)=>{const n=e!=null;return[i=>t[0]({lengthComputable:n,total:e,loaded:i}),t[1]]},zr=e=>(...t)=>G.asap(()=>e(...t)),oh=_e.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,_e.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(_e.origin),_e.navigator&&/(msie|trident)/i.test(_e.navigator.userAgent)):()=>!0,sh=_e.hasStandardBrowserEnv?{write(e,t,n,i,a,r,o){if(typeof document>"u")return;const s=[`${e}=${encodeURIComponent(t)}`];G.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),G.isString(i)&&s.push(`path=${i}`),G.isString(a)&&s.push(`domain=${a}`),r===!0&&s.push("secure"),G.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function lh(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function ch(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Cs(e,t,n){let i=!lh(t);return e&&(i||n==!1)?ch(e,t):t}const Hr=e=>e instanceof tt?{...e}:e;function en(e,t){t=t||{};const n={};function i(c,d,l,g){return G.isPlainObject(c)&&G.isPlainObject(d)?G.merge.call({caseless:g},c,d):G.isPlainObject(d)?G.merge({},d):G.isArray(d)?d.slice():d}function a(c,d,l,g){if(G.isUndefined(d)){if(!G.isUndefined(c))return i(void 0,c,l,g)}else return i(c,d,l,g)}function r(c,d){if(!G.isUndefined(d))return i(void 0,d)}function o(c,d){if(G.isUndefined(d)){if(!G.isUndefined(c))return i(void 0,c)}else return i(void 0,d)}function s(c,d,l){if(l in t)return i(c,d);if(l in e)return i(void 0,c)}const u={url:r,method:r,data:r,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(c,d,l)=>a(Hr(c),Hr(d),l,!0)};return G.forEach(Object.keys({...e,...t}),function(d){if(d==="__proto__"||d==="constructor"||d==="prototype")return;const l=G.hasOwnProp(u,d)?u[d]:a,g=l(e[d],t[d],d);G.isUndefined(g)&&l!==s||(n[d]=g)}),n}const As=e=>{const t=en({},e);let{data:n,withXSRFToken:i,xsrfHeaderName:a,xsrfCookieName:r,headers:o,auth:s}=t;if(t.headers=o=tt.from(o),t.url=Ps(Cs(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),s&&o.set("Authorization","Basic "+btoa((s.username||"")+":"+(s.password?unescape(encodeURIComponent(s.password)):""))),G.isFormData(n)){if(_e.hasStandardBrowserEnv||_e.hasStandardBrowserWebWorkerEnv)o.setContentType(void 0);else if(G.isFunction(n.getHeaders)){const u=n.getHeaders(),c=["content-type","content-length"];Object.entries(u).forEach(([d,l])=>{c.includes(d.toLowerCase())&&o.set(d,l)})}}if(_e.hasStandardBrowserEnv&&(i&&G.isFunction(i)&&(i=i(t)),i||i!==!1&&oh(t.url))){const u=a&&r&&sh.read(r);u&&o.set(a,u)}return t},uh=typeof XMLHttpRequest<"u",dh=uh&&function(e){return new Promise(function(n,i){const a=As(e);let r=a.data;const o=tt.from(a.headers).normalize();let{responseType:s,onUploadProgress:u,onDownloadProgress:c}=a,d,l,g,p,m;function y(){p&&p(),m&&m(),a.cancelToken&&a.cancelToken.unsubscribe(d),a.signal&&a.signal.removeEventListener("abort",d)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function x(){if(!b)return;const A=tt.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),v={data:!s||s==="text"||s==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:A,config:e,request:b};ks(function(P){n(P),y()},function(P){i(P),y()},v),b=null}"onloadend"in b?b.onloadend=x:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(x)},b.onabort=function(){b&&(i(new ue("Request aborted",ue.ECONNABORTED,e,b)),b=null)},b.onerror=function(S){const v=S&&S.message?S.message:"Network Error",D=new ue(v,ue.ERR_NETWORK,e,b);D.event=S||null,i(D),b=null},b.ontimeout=function(){let S=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const v=a.transitional||Fa;a.timeoutErrorMessage&&(S=a.timeoutErrorMessage),i(new ue(S,v.clarifyTimeoutError?ue.ETIMEDOUT:ue.ECONNABORTED,e,b)),b=null},r===void 0&&o.setContentType(null),"setRequestHeader"in b&&G.forEach(o.toJSON(),function(S,v){b.setRequestHeader(v,S)}),G.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),s&&s!=="json"&&(b.responseType=a.responseType),c&&([g,m]=li(c,!0),b.addEventListener("progress",g)),u&&b.upload&&([l,p]=li(u),b.upload.addEventListener("progress",l),b.upload.addEventListener("loadend",p)),(a.cancelToken||a.signal)&&(d=A=>{b&&(i(!A||A.type?new Un(null,e,b):A),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(d),a.signal&&(a.signal.aborted?d():a.signal.addEventListener("abort",d)));const k=ih(a.url);if(k&&_e.protocols.indexOf(k)===-1){i(new ue("Unsupported protocol "+k+":",ue.ERR_BAD_REQUEST,e));return}b.send(r||null)})},hh=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let i=new AbortController,a;const r=function(c){if(!a){a=!0,s();const d=c instanceof Error?c:this.reason;i.abort(d instanceof ue?d:new Un(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,r(new ue(`timeout of ${t}ms exceeded`,ue.ETIMEDOUT))},t);const s=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(r):c.removeEventListener("abort",r)}),e=null)};e.forEach(c=>c.addEventListener("abort",r));const{signal:u}=i;return u.unsubscribe=()=>G.asap(s),u}},ph=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let i=0,a;for(;i<n;)a=i+t,yield e.slice(i,a),i=a},mh=async function*(e,t){for await(const n of fh(e))yield*ph(n,t)},fh=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:i}=await t.read();if(n)break;yield i}}finally{await t.cancel()}},Yr=(e,t,n,i)=>{const a=mh(e,t);let r=0,o,s=u=>{o||(o=!0,i&&i(u))};return new ReadableStream({async pull(u){try{const{done:c,value:d}=await a.next();if(c){s(),u.close();return}let l=d.byteLength;if(n){let g=r+=l;n(g)}u.enqueue(new Uint8Array(d))}catch(c){throw s(c),c}},cancel(u){return s(u),a.return()}},{highWaterMark:2})},qr=64*1024,{isFunction:Qn}=G,gh=(({Request:e,Response:t})=>({Request:e,Response:t}))(G.global),{ReadableStream:Wr,TextEncoder:_r}=G.global,Vr=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yh=e=>{e=G.merge.call({skipUndefined:!0},gh,e);const{fetch:t,Request:n,Response:i}=e,a=t?Qn(t):typeof fetch=="function",r=Qn(n),o=Qn(i);if(!a)return!1;const s=a&&Qn(Wr),u=a&&(typeof _r=="function"?(m=>y=>m.encode(y))(new _r):async m=>new Uint8Array(await new n(m).arrayBuffer())),c=r&&s&&Vr(()=>{let m=!1;const y=new n(_e.origin,{body:new Wr,method:"POST",get duplex(){return m=!0,"half"}}).headers.has("Content-Type");return m&&!y}),d=o&&s&&Vr(()=>G.isReadableStream(new i("").body)),l={stream:d&&(m=>m.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!l[m]&&(l[m]=(y,b)=>{let x=y&&y[m];if(x)return x.call(y);throw new ue(`Response type '${m}' is not supported`,ue.ERR_NOT_SUPPORT,b)})});const g=async m=>{if(m==null)return 0;if(G.isBlob(m))return m.size;if(G.isSpecCompliantForm(m))return(await new n(_e.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(G.isArrayBufferView(m)||G.isArrayBuffer(m))return m.byteLength;if(G.isURLSearchParams(m)&&(m=m+""),G.isString(m))return(await u(m)).byteLength},p=async(m,y)=>{const b=G.toFiniteNumber(m.getContentLength());return b??g(y)};return async m=>{let{url:y,method:b,data:x,signal:k,cancelToken:A,timeout:S,onDownloadProgress:v,onUploadProgress:D,responseType:P,headers:w,withCredentials:R="same-origin",fetchOptions:Y}=As(m),X=t||fetch;P=P?(P+"").toLowerCase():"text";let U=hh([k,A&&A.toAbortSignal()],S),z=null;const K=U&&U.unsubscribe&&(()=>{U.unsubscribe()});let Q;try{if(D&&c&&b!=="get"&&b!=="head"&&(Q=await p(w,x))!==0){let C=new n(y,{method:"POST",body:x,duplex:"half"}),L;if(G.isFormData(x)&&(L=C.headers.get("content-type"))&&w.setContentType(L),C.body){const[W,O]=Ur(Q,li(zr(D)));x=Yr(C.body,qr,W,O)}}G.isString(R)||(R=R?"include":"omit");const B=r&&"credentials"in n.prototype,q={...Y,signal:U,method:b.toUpperCase(),headers:w.normalize().toJSON(),body:x,duplex:"half",credentials:B?R:void 0};z=r&&new n(y,q);let V=await(r?X(z,Y):X(y,q));const ie=d&&(P==="stream"||P==="response");if(d&&(v||ie&&K)){const C={};["status","statusText","headers"].forEach(H=>{C[H]=V[H]});const L=G.toFiniteNumber(V.headers.get("content-length")),[W,O]=v&&Ur(L,li(zr(v),!0))||[];V=new i(Yr(V.body,qr,W,()=>{O&&O(),K&&K()}),C)}P=P||"text";let T=await l[G.findKey(l,P)||"text"](V,m);return!ie&&K&&K(),await new Promise((C,L)=>{ks(C,L,{data:T,headers:tt.from(V.headers),status:V.status,statusText:V.statusText,config:m,request:z})})}catch(B){throw K&&K(),B&&B.name==="TypeError"&&/Load failed|fetch/i.test(B.message)?Object.assign(new ue("Network Error",ue.ERR_NETWORK,m,z,B&&B.response),{cause:B.cause||B}):ue.from(B,B&&B.code,m,z,B&&B.response)}}},bh=new Map,Ns=e=>{let t=e&&e.env||{};const{fetch:n,Request:i,Response:a}=t,r=[i,a,n];let o=r.length,s=o,u,c,d=bh;for(;s--;)u=r[s],c=d.get(u),c===void 0&&d.set(u,c=s?new Map:yh(t)),d=c;return c};Ns();const Ba={http:Ld,xhr:dh,fetch:{get:Ns}};G.forEach(Ba,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Kr=e=>`- ${e}`,vh=e=>G.isFunction(e)||e===null||e===!1;function wh(e,t){e=G.isArray(e)?e:[e];const{length:n}=e;let i,a;const r={};for(let o=0;o<n;o++){i=e[o];let s;if(a=i,!vh(i)&&(a=Ba[(s=String(i)).toLowerCase()],a===void 0))throw new ue(`Unknown adapter '${s}'`);if(a&&(G.isFunction(a)||(a=a.get(t))))break;r[s||"#"+o]=a}if(!a){const o=Object.entries(r).map(([u,c])=>`adapter ${u} `+(c===!1?"is not supported by the environment":"is not available in the build"));let s=n?o.length>1?`since :
|
|
13
13
|
`+o.map(Kr).join(`
|
|
14
14
|
`):" "+Kr(o[0]):"as no adapter specified";throw new ue("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return a}const Ds={getAdapter:wh,adapters:Ba};function Zi(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Un(null,e)}function Jr(e){return Zi(e),e.headers=tt.from(e.headers),e.data=Xi.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ds.getAdapter(e.adapter||jn.adapter,e)(e).then(function(i){return Zi(e),i.data=Xi.call(e,e.transformResponse,i),i.headers=tt.from(i.headers),i},function(i){return Ts(i)||(Zi(e),i&&i.response&&(i.response.data=Xi.call(e,e.transformResponse,i.response),i.response.headers=tt.from(i.response.headers))),Promise.reject(i)})}const Rs="1.13.5",Ni={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ni[e]=function(i){return typeof i===e||"a"+(t<1?"n ":" ")+e}});const Xr={};Ni.transitional=function(t,n,i){function a(r,o){return"[Axios v"+Rs+"] Transitional option '"+r+"'"+o+(i?". "+i:"")}return(r,o,s)=>{if(t===!1)throw new ue(a(o," has been removed"+(n?" in "+n:"")),ue.ERR_DEPRECATED);return n&&!Xr[o]&&(Xr[o]=!0,console.warn(a(o," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(r,o,s):!0}};Ni.spelling=function(t){return(n,i)=>(console.warn(`${i} is likely a misspelling of ${t}`),!0)};function xh(e,t,n){if(typeof e!="object")throw new ue("options must be an object",ue.ERR_BAD_OPTION_VALUE);const i=Object.keys(e);let a=i.length;for(;a-- >0;){const r=i[a],o=t[r];if(o){const s=e[r],u=s===void 0||o(s,r,e);if(u!==!0)throw new ue("option "+r+" must be "+u,ue.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ue("Unknown option "+r,ue.ERR_BAD_OPTION)}}const ri={assertOptions:xh,validators:Ni},dt=ri.validators;let Qt=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Br,response:new Br}}async request(t,n){try{return await this._request(t,n)}catch(i){if(i instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const r=a.stack?a.stack.replace(/^.+\n/,""):"";try{i.stack?r&&!String(i.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(i.stack+=`
|
|
15
|
-
`+r):i.stack=r}catch{}}throw i}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=en(this.defaults,n);const{transitional:i,paramsSerializer:a,headers:r}=n;i!==void 0&&ri.assertOptions(i,{silentJSONParsing:dt.transitional(dt.boolean),forcedJSONParsing:dt.transitional(dt.boolean),clarifyTimeoutError:dt.transitional(dt.boolean),legacyInterceptorReqResOrdering:dt.transitional(dt.boolean)},!1),a!=null&&(G.isFunction(a)?n.paramsSerializer={serialize:a}:ri.assertOptions(a,{encode:dt.function,serialize:dt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ri.assertOptions(n,{baseUrl:dt.spelling("baseURL"),withXsrfToken:dt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&G.merge(r.common,r[n.method]);r&&G.forEach(["delete","get","head","post","put","patch","common"],m=>{delete r[m]}),n.headers=tt.concat(o,r);const s=[];let u=!0;this.interceptors.request.forEach(function(y){if(typeof y.runWhen=="function"&&y.runWhen(n)===!1)return;u=u&&y.synchronous;const b=n.transitional||Fa;b&&b.legacyInterceptorReqResOrdering?s.unshift(y.fulfilled,y.rejected):s.push(y.fulfilled,y.rejected)});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let d,l=0,g;if(!u){const m=[Jr.bind(this),void 0];for(m.unshift(...s),m.push(...c),g=m.length,d=Promise.resolve(n);l<g;)d=d.then(m[l++],m[l++]);return d}g=s.length;let p=n;for(;l<g;){const m=s[l++],y=s[l++];try{p=m(p)}catch(b){y.call(this,b);break}}try{d=Jr.call(this,p)}catch(m){return Promise.reject(m)}for(l=0,g=c.length;l<g;)d=d.then(c[l++],c[l++]);return d}getUri(t){t=en(this.defaults,t);const n=Cs(t.baseURL,t.url,t.allowAbsoluteUrls);return Ps(n,t.params,t.paramsSerializer)}};G.forEach(["delete","get","head","options"],function(t){Qt.prototype[t]=function(n,i){return this.request(en(i||{},{method:t,url:n,data:(i||{}).data}))}});G.forEach(["post","put","patch"],function(t){function n(i){return function(r,o,s){return this.request(en(s||{},{method:t,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:o}))}}Qt.prototype[t]=n(),Qt.prototype[t+"Form"]=n(!0)});let Ph=class Es{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});const i=this;this.promise.then(a=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](a);i._listeners=null}),this.promise.then=a=>{let r;const o=new Promise(s=>{i.subscribe(s),r=s}).then(a);return o.cancel=function(){i.unsubscribe(r)},o},t(function(r,o,s){i.reason||(i.reason=new Un(r,o,s),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=i=>{t.abort(i)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Es(function(a){t=a}),cancel:t}}};function Sh(e){return function(n){return e.apply(null,n)}}function Th(e){return G.isObject(e)&&e.isAxiosError===!0}const da={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(da).forEach(([e,t])=>{da[t]=e});function Ms(e){const t=new Qt(e),n=ds(Qt.prototype.request,t);return G.extend(n,Qt.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return Ms(en(e,a))},n}const Oe=Ms(jn);Oe.Axios=Qt;Oe.CanceledError=Un;Oe.CancelToken=Ph;Oe.isCancel=Ts;Oe.VERSION=Rs;Oe.toFormData=Ai;Oe.AxiosError=ue;Oe.Cancel=Oe.CanceledError;Oe.all=function(t){return Promise.all(t)};Oe.spread=Sh;Oe.isAxiosError=Th;Oe.mergeConfig=en;Oe.AxiosHeaders=tt;Oe.formToJSON=e=>Ss(G.isHTMLForm(e)?new FormData(e):e);Oe.getAdapter=Ds.getAdapter;Oe.HttpStatusCode=da;Oe.default=Oe;const{Axios:Ux,AxiosError:zx,CanceledError:Hx,isCancel:Yx,CancelToken:qx,VERSION:Wx,all:_x,Cancel:Vx,isAxiosError:kh,spread:Kx,toFormData:Jx,AxiosHeaders:Xx,HttpStatusCode:Zx,formToJSON:Qx,getAdapter:$x,mergeConfig:eP}=Oe,Zr="An unknown error occurred",zn="http://localhost:3000",On="tv:clicked-news-event",ci="tv:selected-news-events",zt=100,Ch=100,Os=e=>e==="1"?120:e==="5"?480:e==="1D"?20*3600:parseInt(e,10)*60,gt=e=>e==="1"?60:e==="5"?300:e==="1D"?1440*3600:parseInt(e,10)*60,Ah=["en","zh","vi","th","ko","ja","mn","ru"],ui="en";function Is(e){return e&&Ah.includes(e)?e:ui}const Nh={or:"OR",error:"Error",warning:"Warning",cancel:"Cancel",continuing:"Continuing...",email:"Email",password:"Password",termsOfService:"Terms of Service",privacyPolicy:"Privacy Policy",continueWithGoogle:"Continue with Google",continuingWithGoogle:"Continuing with Google...",signIn:"Sign in",signUp:"Sign up",agreeAndContinue:"Agree & continue",changePlan:"Change Plan",upgradePlan:"Upgrade Plan +",manageBilling:"Manage Billing",getInTouch:"Get in touch",copyright:"© {year} IC Candle, Inc. All rights reserved.",session:"Session",sessions:"Sessions",activeWorkspaces:"Active workspaces",date:"Date",product:"Product",plan:"Plan",planNames:{free:"Free Plan",standard:"Standard Plan",pro:"Pro Plan",expert:"Expert Plan"},status:"Status",amount:"Amount",detail:"Detail",total:"Total",prioritySupport:"Priority support",all:"All",minutely:"Minutely",hourly:"Hourly",daily:"Daily",chatAssistant:"Chat assistant",timeframes:"Timeframes",symbols:"Symbols",timeSettings:"Time Settings",step:"Step {number}:",learnMore:"Learn more",success:"Success",validationError:"Validation Error",previous:"Previous",next:"Next",saving:"Saving...",save:"Save",saveChanges:"Save Changes",nextStep:"Next Step",columnTimeframe:"TIMEFRAME",columnSymbol:"SYMBOL",columnDescription:"DESCRIPTION",symbol:"Symbol",timeframe:"Timeframe",candles:"Candles",up:"Up",down:"Down",play:"Play",close:"Close",simulate:"Simulate",actual:"Actual",forecast:"Forecast",interestRate:"Interest Rate",soon:"Soon",back:"Back",similarity:"Similarity",nextCandles:"Next {count}",nextCandlesFull:"Next {count} candles",probabilityOutcome:"Probability Outcome:",estimatedProbability:"estimated probability:",riskDisclaimer:"Financial markets involve a high level of risk and may result in the loss of capital. iC Candle provides information for educational purposes only and does not offer financial advice. Past performance does not guarantee future results.",rangeTooFarToRender:"Range too far to render.",marketSessions:"Market sessions",askTradingQuestion:"Ask a trading question",mrCandleThinking:"Mr. Candle is thinking...",simulateBullishPriceAction:"Simulate Bullish Price Action",simulateBearishPriceAction:"Simulate Bearish Price Action",dismiss:"Dismiss",loadingMore:"Loading more",savedPatternDeleted:"Saved Pattern Deleted"},Dh={confirm:"Confirm",deletePatternTitle:"Delete Pattern",deletePatternDescription:"Are you sure you want to delete this pattern?",deleteAllNotificationsTitle:"Delete all notifications",deleteAllNotificationsDescription:"Are you sure you want to delete all notifications?",disableSignalsTitle:"Disable Signals",disableSignalsDescription:"Are you sure you want to disable signals?",disableSignalsForDescription:"Are you sure you want to disable signals for {patternTitle}?",togglePatternModeTitle:"Toggle Pattern Mode",togglePatternModeDisableDescription:"Are you sure you want to disable this pattern?",togglePatternModeEnableDescription:"Are you sure you want to enable this pattern?",closeFeatureDescription:"Are you sure you want to close this feature?"},Rh={today:"Today",yesterday:"Yesterday",day:"{count, plural, one {# day} other {# days}}",hour:"{count, plural, one {# hour} other {# hours}}",minute:"{count, plural, one {# minute} other {# minutes}}",zeroMinutes:"0 minutes",dayShort:"day",hourShort:"hr",minuteShort:"min",zeroMin:"0min",justNow:"Just now",minutesAgo:"{count, plural, one {# minute ago} other {# minutes ago}}",hoursAgo:"{count, plural, one {# hour ago} other {# hours ago}}",daysAgo:"{count, plural, one {# day ago} other {# days ago}}",monthsAgo:"{count, plural, one {# month ago} other {# months ago}}",yearsAgo:"{count, plural, one {# year ago} other {# years ago}}"},Eh={classicPatternTracker:"Classic Pattern Tracker",trackedPatternReminder:"Tracked Pattern Reminder",classicPattern:"Classic Pattern",trackedPattern:"Tracked Pattern",enableClassicNotifications:"Turn on real‑time notifications for classic price formations",waitingForPatternSignals:"Waiting for pattern signals",noPatternsDetected:"No patterns detected right now",signalsActiveDescription:"Your signals are active. We'll notify you as soon as matching patterns are found",noCustomPatternDetected:"No {patternName} detected right now",trackMorePatternsByScan:"Track more patterns by going to scan",seeMore:"See more"},Mh={title:"Time Settings",description:"Choose the local time window when pattern alerts can trigger.",startTime:"Start time",endTime:"End time",session:"Session",timezone:"Timezone",yourTimezone:"Your timezone",selectSession:"Select session",searchSession:"Search session...",noSessionFound:"No session found.",sessionsHeading:"Sessions",selectTimezone:"Select Timezone",selectTimezoneHint:"Search and choose the timezone for this alert.",searchTimezone:"Search timezone...",noTimezoneFound:"No timezone found.",timezonesHeading:"Timezones",allTime:"All time",customize:"Customize",newYorkSession:"New York Session",londonSession:"London Session",tokyoSession:"Tokyo Session",sydneySession:"Sydney Session"},Oh={newsScan:{analyzing:"Analyzing the current news event...",searching:"Searching for historically similar news releases...",ranking:"Ranking the most relevant similar news...",preparingReplay:"Preparing similar news for replay...",ready:"Similar news events are ready for impact analysis."},newsAi:{replaying:"Replaying historical price actions...",startingSimulation:"Starting impact simulation model...",calculatingScenarios:"Calculating upward and downward scenarios...",complete:"Simulation complete."},selectorScan:{scanning:"Scanning 20+ years of market history...",finding:"Finding structurally similar patterns...",linking:"Linking market behavior with underlying drivers...",preparing:"Preparing structured historical datasets...",ready:"Patterns ready for replay and outcome analysis."},selectorAi:{replaying:"Replaying historical pattern behavior...",learning:"Learning impact patterns from past movements...",calculating:"Calculating price action dynamics...",initializing:"Initializing simulation model...",complete:"Simulation complete."}},Ih={Layout:{tagline:"Designed for Traders Who Value Insight Over Noise"},Legal:{termsAndPrivacy:"Terms & Privacy",googleTermsDescription:"By continuing with Google, you agree to our <terms></terms> and <privacy></privacy>.",legalAgreement:"I agree to the <terms></terms> and <privacy></privacy>.",pleaseAgreeToContinue:"Please agree to continue",pleaseAgreeDescription:"You must agree to the Terms of Service and Privacy Policy to continue with Google."},SignIn:{dontHaveAccount:"Don't have an account?",googleVerifyingAuthorization:"Google is verifying authorization...",invalidCredentials:"Invalid credentials",invalidEmail:"Invalid email address",emailRequired:"Email is required",passwordRequired:"Password is required",pleaseCheckInfo:"Please check your information again",emailPlaceholder:"Enter your personal or work email",change:"Change",forgotPassword:"Forgot password",continueWithEmail:"Continue with email"},SignUp:{repeatPassword:"Repeat password",termsAgreement:"By continuing, you agree to our <terms></terms> and <privacy></privacy>",continueWithEmail:"Continue with email",alreadyHaveAccount:"Already have an account?",signUpError:"An error occurred during sign-up."},PasswordRecovery:{title:"Password recovery",emailRequired:"Email is required!",emailPlaceholder:"your@example.com",sendConfirmationCode:"Send confirmation code",somethingWrong:"Something wrong",pleaseWaitAndRetry:"Please wait and try again",confirmationCodeSent:"Confirmation code sent",checkYourEmail:"Please check your email"},ResetPassword:{title:"Reset password",confirmationCode:"Confirmation code",confirmationCodeRequired:"Confirmation code is required.",newPassword:"New password",repeatNewPassword:"Repeat new password",passwordMinLength:"Password must be at least 8 characters.",repeatPasswordMinLength:"Repeat password must be at least 8 characters.",passwordsMustMatch:"Passwords must match.",pleaseStartAgain:"Please start again",resetSuccess:"Reset success",useNewPassword:"Please use your new password",passwordNotConfirmed:"Password not confirmed!"},Confirm:{title:"Confirm your account",codeSentTo:"Confirmation code is sent to:",otpDescription:"Please enter the one-time password sent to your email.",otpLength:"OTP must be 6 characters.",turnstileError:"Some error occurred in turnstile",confirmError:"An error occurred during confirm: {message}",confirm:"Confirm"}},Lh={features:{title:"Features",patternSelector:{title:"Pattern Selector",subtitle:"Analyzes your idea against historical market data to find similar price patterns and outcomes."},patternTracker:{title:"Pattern Tracker",subtitle:"Continuously scans the market in the background and alerts you when a matching pattern appears."},newsImpact:{title:"News Impact",subtitle:"Shows how past news releases impacted price movement so you can see how markets reacted before."}},resources:{title:"Resources",learnAndUse:{title:"Learn & Use",subtitle:"Learn analytics concepts and how to use the platform effectively."},updatesAndInsights:{title:"Updates & Insights",subtitle:"News and updates on what we're building and exploring."},whoWeAre:{title:"Who We Are",subtitle:"Who we are, what we believe, and why we build."},helpCenter:{title:"Help Center",subtitle:"Find help, guidance, and answers when you need them."}},pricing:{title:"Pricing"}},Fh={badge:"Features",title:"AI-Powered Market Analytics, Built for Smarter Decisions",description:"Leverage advanced analytics and historical intelligence to discover patterns, analyze market reactions, and understand probability before making decisions.",creditUsage:"Credit usage",resetAfter:"Reset after",resetAfterColon:"Reset after:",useThisFeature:"Use this feature",automateNow:"Automate Now",analyzeNow:"Analyze now",inSession:"You are in session",sessionActive:"Session is currently active",continueSession:"Continue session",pageHeader:{account:{title:"Profile",infoTitle:"Your Account",infoDescription:"Manage your settings, preferences, and connections"},subscription:{title:"Subscription",infoTitle:"Your Plan",infoDescription:"Manage your plan, billing, and payments"},support:{title:"Support",infoTitle:"Get Help",infoDescription:"Find answers to your questions and connect with our support team"},referral:{title:"Community",infoTitle:"Community Growth Program",infoDescription:"Refer friends, earn rebates, grow together"}}},Gh={chooseYour:"Choose your",plan:"Plan",annualPromo:`Get more than 2 months for free
|
|
15
|
+
`+r):i.stack=r}catch{}}throw i}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=en(this.defaults,n);const{transitional:i,paramsSerializer:a,headers:r}=n;i!==void 0&&ri.assertOptions(i,{silentJSONParsing:dt.transitional(dt.boolean),forcedJSONParsing:dt.transitional(dt.boolean),clarifyTimeoutError:dt.transitional(dt.boolean),legacyInterceptorReqResOrdering:dt.transitional(dt.boolean)},!1),a!=null&&(G.isFunction(a)?n.paramsSerializer={serialize:a}:ri.assertOptions(a,{encode:dt.function,serialize:dt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ri.assertOptions(n,{baseUrl:dt.spelling("baseURL"),withXsrfToken:dt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let o=r&&G.merge(r.common,r[n.method]);r&&G.forEach(["delete","get","head","post","put","patch","common"],m=>{delete r[m]}),n.headers=tt.concat(o,r);const s=[];let u=!0;this.interceptors.request.forEach(function(y){if(typeof y.runWhen=="function"&&y.runWhen(n)===!1)return;u=u&&y.synchronous;const b=n.transitional||Fa;b&&b.legacyInterceptorReqResOrdering?s.unshift(y.fulfilled,y.rejected):s.push(y.fulfilled,y.rejected)});const c=[];this.interceptors.response.forEach(function(y){c.push(y.fulfilled,y.rejected)});let d,l=0,g;if(!u){const m=[Jr.bind(this),void 0];for(m.unshift(...s),m.push(...c),g=m.length,d=Promise.resolve(n);l<g;)d=d.then(m[l++],m[l++]);return d}g=s.length;let p=n;for(;l<g;){const m=s[l++],y=s[l++];try{p=m(p)}catch(b){y.call(this,b);break}}try{d=Jr.call(this,p)}catch(m){return Promise.reject(m)}for(l=0,g=c.length;l<g;)d=d.then(c[l++],c[l++]);return d}getUri(t){t=en(this.defaults,t);const n=Cs(t.baseURL,t.url,t.allowAbsoluteUrls);return Ps(n,t.params,t.paramsSerializer)}};G.forEach(["delete","get","head","options"],function(t){Qt.prototype[t]=function(n,i){return this.request(en(i||{},{method:t,url:n,data:(i||{}).data}))}});G.forEach(["post","put","patch"],function(t){function n(i){return function(r,o,s){return this.request(en(s||{},{method:t,headers:i?{"Content-Type":"multipart/form-data"}:{},url:r,data:o}))}}Qt.prototype[t]=n(),Qt.prototype[t+"Form"]=n(!0)});let Ph=class Es{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});const i=this;this.promise.then(a=>{if(!i._listeners)return;let r=i._listeners.length;for(;r-- >0;)i._listeners[r](a);i._listeners=null}),this.promise.then=a=>{let r;const o=new Promise(s=>{i.subscribe(s),r=s}).then(a);return o.cancel=function(){i.unsubscribe(r)},o},t(function(r,o,s){i.reason||(i.reason=new Un(r,o,s),n(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=i=>{t.abort(i)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Es(function(a){t=a}),cancel:t}}};function Sh(e){return function(n){return e.apply(null,n)}}function Th(e){return G.isObject(e)&&e.isAxiosError===!0}const da={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(da).forEach(([e,t])=>{da[t]=e});function Ms(e){const t=new Qt(e),n=ds(Qt.prototype.request,t);return G.extend(n,Qt.prototype,t,{allOwnKeys:!0}),G.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return Ms(en(e,a))},n}const Oe=Ms(jn);Oe.Axios=Qt;Oe.CanceledError=Un;Oe.CancelToken=Ph;Oe.isCancel=Ts;Oe.VERSION=Rs;Oe.toFormData=Ai;Oe.AxiosError=ue;Oe.Cancel=Oe.CanceledError;Oe.all=function(t){return Promise.all(t)};Oe.spread=Sh;Oe.isAxiosError=Th;Oe.mergeConfig=en;Oe.AxiosHeaders=tt;Oe.formToJSON=e=>Ss(G.isHTMLForm(e)?new FormData(e):e);Oe.getAdapter=Ds.getAdapter;Oe.HttpStatusCode=da;Oe.default=Oe;const{Axios:Ux,AxiosError:zx,CanceledError:Hx,isCancel:Yx,CancelToken:qx,VERSION:Wx,all:_x,Cancel:Vx,isAxiosError:kh,spread:Kx,toFormData:Jx,AxiosHeaders:Xx,HttpStatusCode:Zx,formToJSON:Qx,getAdapter:$x,mergeConfig:eP}=Oe,Zr="An unknown error occurred",zn="https://embed-iccandle-app.iccandle.ai",On="tv:clicked-news-event",ci="tv:selected-news-events",zt=100,Ch=100,Os=e=>e==="1"?120:e==="5"?480:e==="1D"?20*3600:parseInt(e,10)*60,gt=e=>e==="1"?60:e==="5"?300:e==="1D"?1440*3600:parseInt(e,10)*60,Ah=["en","zh","vi","th","ko","ja","mn","ru"],ui="en";function Is(e){return e&&Ah.includes(e)?e:ui}const Nh={or:"OR",error:"Error",warning:"Warning",cancel:"Cancel",continuing:"Continuing...",email:"Email",password:"Password",termsOfService:"Terms of Service",privacyPolicy:"Privacy Policy",continueWithGoogle:"Continue with Google",continuingWithGoogle:"Continuing with Google...",signIn:"Sign in",signUp:"Sign up",agreeAndContinue:"Agree & continue",changePlan:"Change Plan",upgradePlan:"Upgrade Plan +",manageBilling:"Manage Billing",getInTouch:"Get in touch",copyright:"© {year} IC Candle, Inc. All rights reserved.",session:"Session",sessions:"Sessions",activeWorkspaces:"Active workspaces",date:"Date",product:"Product",plan:"Plan",planNames:{free:"Free Plan",standard:"Standard Plan",pro:"Pro Plan",expert:"Expert Plan"},status:"Status",amount:"Amount",detail:"Detail",total:"Total",prioritySupport:"Priority support",all:"All",minutely:"Minutely",hourly:"Hourly",daily:"Daily",chatAssistant:"Chat assistant",timeframes:"Timeframes",symbols:"Symbols",timeSettings:"Time Settings",step:"Step {number}:",learnMore:"Learn more",success:"Success",validationError:"Validation Error",previous:"Previous",next:"Next",saving:"Saving...",save:"Save",saveChanges:"Save Changes",nextStep:"Next Step",columnTimeframe:"TIMEFRAME",columnSymbol:"SYMBOL",columnDescription:"DESCRIPTION",symbol:"Symbol",timeframe:"Timeframe",candles:"Candles",up:"Up",down:"Down",play:"Play",close:"Close",simulate:"Simulate",actual:"Actual",forecast:"Forecast",interestRate:"Interest Rate",soon:"Soon",back:"Back",similarity:"Similarity",nextCandles:"Next {count}",nextCandlesFull:"Next {count} candles",probabilityOutcome:"Probability Outcome:",estimatedProbability:"estimated probability:",riskDisclaimer:"Financial markets involve a high level of risk and may result in the loss of capital. iC Candle provides information for educational purposes only and does not offer financial advice. Past performance does not guarantee future results.",rangeTooFarToRender:"Range too far to render.",marketSessions:"Market sessions",askTradingQuestion:"Ask a trading question",mrCandleThinking:"Mr. Candle is thinking...",simulateBullishPriceAction:"Simulate Bullish Price Action",simulateBearishPriceAction:"Simulate Bearish Price Action",dismiss:"Dismiss",loadingMore:"Loading more",savedPatternDeleted:"Saved Pattern Deleted"},Dh={confirm:"Confirm",deletePatternTitle:"Delete Pattern",deletePatternDescription:"Are you sure you want to delete this pattern?",deleteAllNotificationsTitle:"Delete all notifications",deleteAllNotificationsDescription:"Are you sure you want to delete all notifications?",disableSignalsTitle:"Disable Signals",disableSignalsDescription:"Are you sure you want to disable signals?",disableSignalsForDescription:"Are you sure you want to disable signals for {patternTitle}?",togglePatternModeTitle:"Toggle Pattern Mode",togglePatternModeDisableDescription:"Are you sure you want to disable this pattern?",togglePatternModeEnableDescription:"Are you sure you want to enable this pattern?",closeFeatureDescription:"Are you sure you want to close this feature?"},Rh={today:"Today",yesterday:"Yesterday",day:"{count, plural, one {# day} other {# days}}",hour:"{count, plural, one {# hour} other {# hours}}",minute:"{count, plural, one {# minute} other {# minutes}}",zeroMinutes:"0 minutes",dayShort:"day",hourShort:"hr",minuteShort:"min",zeroMin:"0min",justNow:"Just now",minutesAgo:"{count, plural, one {# minute ago} other {# minutes ago}}",hoursAgo:"{count, plural, one {# hour ago} other {# hours ago}}",daysAgo:"{count, plural, one {# day ago} other {# days ago}}",monthsAgo:"{count, plural, one {# month ago} other {# months ago}}",yearsAgo:"{count, plural, one {# year ago} other {# years ago}}"},Eh={classicPatternTracker:"Classic Pattern Tracker",trackedPatternReminder:"Tracked Pattern Reminder",classicPattern:"Classic Pattern",trackedPattern:"Tracked Pattern",enableClassicNotifications:"Turn on real‑time notifications for classic price formations",waitingForPatternSignals:"Waiting for pattern signals",noPatternsDetected:"No patterns detected right now",signalsActiveDescription:"Your signals are active. We'll notify you as soon as matching patterns are found",noCustomPatternDetected:"No {patternName} detected right now",trackMorePatternsByScan:"Track more patterns by going to scan",seeMore:"See more"},Mh={title:"Time Settings",description:"Choose the local time window when pattern alerts can trigger.",startTime:"Start time",endTime:"End time",session:"Session",timezone:"Timezone",yourTimezone:"Your timezone",selectSession:"Select session",searchSession:"Search session...",noSessionFound:"No session found.",sessionsHeading:"Sessions",selectTimezone:"Select Timezone",selectTimezoneHint:"Search and choose the timezone for this alert.",searchTimezone:"Search timezone...",noTimezoneFound:"No timezone found.",timezonesHeading:"Timezones",allTime:"All time",customize:"Customize",newYorkSession:"New York Session",londonSession:"London Session",tokyoSession:"Tokyo Session",sydneySession:"Sydney Session"},Oh={newsScan:{analyzing:"Analyzing the current news event...",searching:"Searching for historically similar news releases...",ranking:"Ranking the most relevant similar news...",preparingReplay:"Preparing similar news for replay...",ready:"Similar news events are ready for impact analysis."},newsAi:{replaying:"Replaying historical price actions...",startingSimulation:"Starting impact simulation model...",calculatingScenarios:"Calculating upward and downward scenarios...",complete:"Simulation complete."},selectorScan:{scanning:"Scanning 20+ years of market history...",finding:"Finding structurally similar patterns...",linking:"Linking market behavior with underlying drivers...",preparing:"Preparing structured historical datasets...",ready:"Patterns ready for replay and outcome analysis."},selectorAi:{replaying:"Replaying historical pattern behavior...",learning:"Learning impact patterns from past movements...",calculating:"Calculating price action dynamics...",initializing:"Initializing simulation model...",complete:"Simulation complete."}},Ih={Layout:{tagline:"Designed for Traders Who Value Insight Over Noise"},Legal:{termsAndPrivacy:"Terms & Privacy",googleTermsDescription:"By continuing with Google, you agree to our <terms></terms> and <privacy></privacy>.",legalAgreement:"I agree to the <terms></terms> and <privacy></privacy>.",pleaseAgreeToContinue:"Please agree to continue",pleaseAgreeDescription:"You must agree to the Terms of Service and Privacy Policy to continue with Google."},SignIn:{dontHaveAccount:"Don't have an account?",googleVerifyingAuthorization:"Google is verifying authorization...",invalidCredentials:"Invalid credentials",invalidEmail:"Invalid email address",emailRequired:"Email is required",passwordRequired:"Password is required",pleaseCheckInfo:"Please check your information again",emailPlaceholder:"Enter your personal or work email",change:"Change",forgotPassword:"Forgot password",continueWithEmail:"Continue with email"},SignUp:{repeatPassword:"Repeat password",termsAgreement:"By continuing, you agree to our <terms></terms> and <privacy></privacy>",continueWithEmail:"Continue with email",alreadyHaveAccount:"Already have an account?",signUpError:"An error occurred during sign-up."},PasswordRecovery:{title:"Password recovery",emailRequired:"Email is required!",emailPlaceholder:"your@example.com",sendConfirmationCode:"Send confirmation code",somethingWrong:"Something wrong",pleaseWaitAndRetry:"Please wait and try again",confirmationCodeSent:"Confirmation code sent",checkYourEmail:"Please check your email"},ResetPassword:{title:"Reset password",confirmationCode:"Confirmation code",confirmationCodeRequired:"Confirmation code is required.",newPassword:"New password",repeatNewPassword:"Repeat new password",passwordMinLength:"Password must be at least 8 characters.",repeatPasswordMinLength:"Repeat password must be at least 8 characters.",passwordsMustMatch:"Passwords must match.",pleaseStartAgain:"Please start again",resetSuccess:"Reset success",useNewPassword:"Please use your new password",passwordNotConfirmed:"Password not confirmed!"},Confirm:{title:"Confirm your account",codeSentTo:"Confirmation code is sent to:",otpDescription:"Please enter the one-time password sent to your email.",otpLength:"OTP must be 6 characters.",turnstileError:"Some error occurred in turnstile",confirmError:"An error occurred during confirm: {message}",confirm:"Confirm"}},Lh={features:{title:"Features",patternSelector:{title:"Pattern Selector",subtitle:"Analyzes your idea against historical market data to find similar price patterns and outcomes."},patternTracker:{title:"Pattern Tracker",subtitle:"Continuously scans the market in the background and alerts you when a matching pattern appears."},newsImpact:{title:"News Impact",subtitle:"Shows how past news releases impacted price movement so you can see how markets reacted before."}},resources:{title:"Resources",learnAndUse:{title:"Learn & Use",subtitle:"Learn analytics concepts and how to use the platform effectively."},updatesAndInsights:{title:"Updates & Insights",subtitle:"News and updates on what we're building and exploring."},whoWeAre:{title:"Who We Are",subtitle:"Who we are, what we believe, and why we build."},helpCenter:{title:"Help Center",subtitle:"Find help, guidance, and answers when you need them."}},pricing:{title:"Pricing"}},Fh={badge:"Features",title:"AI-Powered Market Analytics, Built for Smarter Decisions",description:"Leverage advanced analytics and historical intelligence to discover patterns, analyze market reactions, and understand probability before making decisions.",creditUsage:"Credit usage",resetAfter:"Reset after",resetAfterColon:"Reset after:",useThisFeature:"Use this feature",automateNow:"Automate Now",analyzeNow:"Analyze now",inSession:"You are in session",sessionActive:"Session is currently active",continueSession:"Continue session",pageHeader:{account:{title:"Profile",infoTitle:"Your Account",infoDescription:"Manage your settings, preferences, and connections"},subscription:{title:"Subscription",infoTitle:"Your Plan",infoDescription:"Manage your plan, billing, and payments"},support:{title:"Support",infoTitle:"Get Help",infoDescription:"Find answers to your questions and connect with our support team"},referral:{title:"Community",infoTitle:"Community Growth Program",infoDescription:"Refer friends, earn rebates, grow together"}}},Gh={chooseYour:"Choose your",plan:"Plan",annualPromo:`Get more than 2 months for free
|
|
16
16
|
by subscribing annually`,monthly:"Monthly",yearly:"Yearly",yearlyBadge:"-20%",comparePlans:"Compare Plans",compareSubtitle:"A full breakdown of what's included in each tier.",usage:"USAGE",usageSection:"Usage",features:"FEATURES",featuresSection:"Features",freePricePerMonth:"$0 / month",pricePerMonth:"{price} / month",patternSelector:"Pattern Selector",patternTracker:"Pattern Tracker",newsImpact:"News Impact",scanResultLimit:"Scan result limit",historicalData:"Historical data",webhook:"Webhook",patternExport:"Pattern export",scansPerDay:"{count} scans / day",scansPerDayDefault:"2 scans / day",patternsCount:"{count} patterns",perDay:"{count} / day",perDayDefault:"1 / day",tabsCount:"{count} tabs",tabsCountDefault:"1 tab",limited:"Limited",historicalYears:"20+ years",included:"✓",notIncluded:"—",planChangedSuccess:"Plan changed to {planTitle} successfully!",subscriptionSuccess:"Subscription to {planTitle} successful!",paymentSuccessful:"Payment Successful!",planUpdated:"Your plan has been updated.",planUpdatedDescription:"Your plan has been updated. You can start using your new features right away.",subscriptionActive:"Your subscription is now active.",subscriptionActiveDescription:"Your subscription to {planTitle} is now active. Thank you for your purchase!",manageBillingInfo:"Manage your billing information",continueToApp:"Continue to App",loadingPaymentDetails:"Loading payment details...",paymentError:"Payment Error",noSessionId:"No session ID provided",goToApp:"Go to App",alreadySubscribedPlan:"You are already subscribed to this plan.",activeSubscriptionManage:"You already have an active subscription. Please manage your billing to change plans.",planChangeScheduled:"Plan change scheduled",planChangeScheduledDesc:"Your plan will switch to {planTitle} on your next billing date.",alreadyOnPlan:"You are already on this plan",changePlanFailed:"Failed to change plan. Please use Manage Billing.",alreadyActiveSubscription:"You already have an active subscription",noChangesMade:"No changes made",alreadyOnPlanDesc:"You're already on the {planTitle} plan.",badgeFree:"Free",badgePopular:"Popular",badgeBestDeal:"Best Deal",badgeMaximumAccess:"Maximum Access",freeForEveryone:"Free for everyone",usdPerMonth:"USD/month",yearlyAmount:"{amount} USD / year",monthlyAmount:"{amount} USD / month",currentPlan:"Current Plan",startForFree:"Start for free",getPlan:"Get {planTitle}",switchToPlan:"Switch to {planTitle}",changePlanConfirmTitle:"Change Plan Confirmation",changePlanConfirmDesc:"You are currently on the {currentPlan} plan. Choose when you want the new price to take effect.",changeNextBilling:"Change next billing",changeNow:"Change now",confirmNextBillingTitle:"Confirm next billing change",confirmNextBillingDesc:"Are you sure you want to schedule this plan change for your next billing date? Your current {currentPlan} plan will remain active until then. On your next billing date, your plan will switch to {planTitle} ({amount}).",yesChangeNextBilling:"Yes, change next billing",continueToCheckout:"Continue to checkout",freeCheckoutDesc:"You are currently on the free plan. Continue to checkout to subscribe to {planTitle}.",continue:"Continue",agreeRefundPolicy:"I agree to the <link>Refund and Cancellation Policy</link>.",everythingInPlan:"Everything in <plan></plan> plan",plans:{free:{title:"Free",subtitle:"Explore and try",heading3:"Best for individual traders"},standard:{title:"Standard",subtitle:"Analyze with confidence",heading3:"Best for individual traders"},pro:{title:"Pro",subtitle:"Analyze in depth",heading3:"Team & Professional Tier"},expert:{title:"Expert",subtitle:"Analyze without limits",heading3:"For professional traders"}},planFeatures:{categories:{candleScanner:"Candle Scanner",candleSignal:"Candle Signal"},labels:{patternSelector:"Pattern Selector",patternTracker:"Pattern Tracker",newsImpact:"News Impact",scanResultLimit:"Scan result limit",activeTabs:"Active Tabs",timeframes:"Timeframes",webhook:"Webhook"},values:{scansPerDay:"{count} scans per day",patterns:"{count}",perDay:"{count}",tabsWorkspace:"{count} (workspace)",enabled:"Enabled",disabled:"Disabled"}}},Bh={Connections:{connectedAccount:"Connected account",creditUsage:"Credit Usage",totalCreditsUsed:"Total credits used",resetsIn:"Resets in {duration}",understandingCredits:"Understanding credits and usage",nearLimit:"Near Limit"},Subscription:{myPlan:"My plan",thanksForSubscribing:"Thanks for subscribing!",billingHistory:"Billing History",nextBillingDate:"Next billing date",whichPlan:"Which plan is right for you?",patternSelectorCreditsPerDay:"{count} Pattern Selector credits / day",patternTrackerCreditsPerDay:"{count} Pattern Tracker credits / day",newsImpactCreditsPerDay:"{count} News Impact credits / day",chatAssistantCreditsPerDay:"{count} Chat Assistant credits / day",prioritySupport:"Priority support"},Billing:{noInvoices:"No invoices found.",loadError:"Failed to load invoices. Please try again later.",viewInvoice:"View invoice"}},jh={referralRebate:"Referral Rebate",referredUsers:"Referred Users",totalRebateEarned:"Total rebate earned",referredUsersCount:"Referred users",activeReferrals:"Active referrals",referralLink:"Referral Link",shareDescription:"Share your referral link with friends. When they subscribe, you'll earn a rebate on their plan.",joinedDate:"Joined Date",loading:"Loading...",noReferralCodeAvailable:"No referral code available",updateReferralCodeTitle:"Update Referral Code",createReferralCodeTitle:"Create Referral Code",updateReferralCodeDescription:"Update your referral code below.",createReferralCodeDescription:"Enter a referral code to start sharing your referral link.",enterReferralCodePlaceholder:"Enter referral code",enterReferralCode:"Please enter a referral code",codeCreatedSuccess:"Referral code created successfully",codeUpdatedSuccess:"Referral code updated successfully",codeMinChars:"Minimum 5 characters",codeMaxChars:"Maximum 15 characters",create:"Create",update:"Update",pageNumber:"Page {page}",noReferredUsersYet:"No referred users yet",shareReferralEmptyDescription:"Share your referral link to start growing your network and earning rebates."},Uh={mainMenu:{coreFeatures:"Core Features",account:"Account",subscription:"Subscription",communityGrowthProgram:"Community Growth Program",support:"Support"},patternMenu:{trackedPatterns:{label:"My tracked patterns",tooltipTitle:"High-probability pattern setups detected by AI",tooltipDescription:"iC Candle tracks global markets 24/7 to detect your tracked patterns, providing confidence levels and breakout direction. Use filters to find your best setups, then click any pattern for full details."},classicPatterns:{label:"Classic patterns",tooltipTitle:"Classic Patterns",tooltipDescription:"Choose the patterns you care about—double tops, head & shoulders, flags, rectangles, and more—then activate signals. We'll watch every tick across your selected markets and notify you the instant a formation completes. Customize delivery by telegram, email, or in‑app notification so you never miss a setup."}},helperBar:{watchList:"Watch List",savedPatterns:"Saved Patterns",newsMovingMarket:"What is moving MARKET?",favoritesCount:"Favorites ({count})",groupWithCount:"{label} ({count})",noItemsInWatchList:"No items in Watch List",watchListLast:"Last",watchListChg:"Chg",watchListChgPercent:"Chg%",removeFromFavorites:"Remove from favorites",addToFavorites:"Add to favorites",removeSymbolFromFavorites:"Remove {symbol} from favorites",addSymbolToFavorites:"Add {symbol} to favorites",groupCommodity:"Commodity",groupForex:"Forex",groupCrypto:"Crypto",groupIndices:"Indices",groupStock:"Stock"},profileMenu:{darkTheme:"Dark theme",chatWithUs:"Chat with us",termsAndConditions:"Terms & Conditions",logOut:"Log out"},tabAdded:"Tab added",tabMemoryWarning:"Adding more tabs may increase memory usage on your device.",tabLimitReached:"Tab Limit Reached",tabLimitReachedMax:"You've reached the maximum number of tabs allowed on your current plan.",tabLimitReachedUpgrade:"You've reached the maximum number of tabs allowed on your current plan. Please upgrade to access more.",notifications:"Notifications",noNotifications:"No notifications",notificationsOfflineReconnect:"(Offline) Please reconnect notifications",headerNav:{selectorTitle:"Pattern Selector",selectorShortTitle:"Selector",patternTitle:"Pattern Tracker",patternShortTitle:"Track",newsTitle:"News Impact",newsShortTitle:"News"},guideFeatures:{selector:{title:"Pattern Selector",description:"Analyzes your idea against historical market data to find similar price patterns and outcomes."},pattern:{title:"Pattern Tracker",description:"Continuously scans the market in the background and alerts you when a matching pattern appears."},news:{title:"News Impact",description:"Shows how past news releases impacted price movement so you can see how markets reacted before."}}},zh={mostSimilarNews:"Most Similar News:",selectEvent:"Select Event",economicCalendarAnalysis:"Economic Calendar Analysis",economicCalendar:"Economic Calendar",predictAvailable:"Predict Available",predictUnavailable:"Predict Unavailable",actualReleased:"Actual Released",analyzeImpact:"Analyze impact",candleDataTooFar:"Candle data too far from event.",tryAnotherTimeframe:"Please try another timeframe.",aiIntelligence:"AI Intelligence",matchPercent:"{percent}% match",whatHappenedOnNews:"What happened on this news:",newsBeforeEvent:"News Before This {eventName}",time15MinLater:"15 min later",time30MinLater:"30 min later",time1HourLater:"1 hour later",time2HoursLater:"2 hours later",time4HoursLater:"4 hours later",noDataHere:"No data here",pleaseWaitAndRetry:"Please wait and try again",current:"Current",previousMonth:"Previous month",nextMonth:"Next month",holiday:"Holiday",seeAll:"See all",selectedSymbols:"Selected symbols",marketNews:"Market News",patternType:"Pattern type",unknownPublishDate:"Unknown publish date",noMatchingArticleDetails:"No matching article details",model:"Model",temperature:"Temperature",temperatureLow:"Low",temperatureMedium:"Medium",temperatureHigh:"High",previousActual:"Previous Actual",currentForecast:"Current Forecast",previousForecast:"Previous Forecast",goToEventDetail:"Go to event detail",eventInfoNotFound:"Event information not found",ppi:"Producer Price Index measures changes in prices of goods and services sold by manufacturers and producers.",cpi:"Consumer Price Index measures changes in prices of goods and services bought by consumers.",coreCpi:"Core CPI measures changes in consumer prices excluding food and energy; a key inflation gauge used by central banks.",jolts:"Job Openings and Labor Turnover Survey measures unfilled job vacancies in the U.S.",nfp:"Nonfarm Payrolls measures changes in the number of U.S. jobs, excluding farm and certain sectors.",ijc:"Initial Jobless Claims measures the number of individuals filing for unemployment insurance for the first time in the U.S., indicating labor market conditions.",fomc:"Federal Open Market Committee is the U.S. central bank that sets interest rates and conducts monetary policy.",fedRate:"Federal Reserve interest rate decision announcement that sets the target federal funds rate, influencing monetary policy and financial markets.",gdpAdvance:"Gross Domestic Product measures the total value of goods and services produced in an economy. Advance GDP is the first estimate release.",gdpMonthly:"Gross Domestic Product measures the total value of goods and services produced in an economy. Monthly releases track short-term growth (e.g. UK GDP m/m).",unemploymentRate:"Unemployment Rate measures the percentage of the labor force that is unemployed.",ahe:"Average Hourly Earnings measures the month-over-month change in wages paid to workers, excluding farm workers.",corePce:"Core PCE Price Index measures the month-over-month change in personal consumption expenditures excluding food and energy, the Fed's preferred inflation gauge.",retailSales:"Retail Sales measures the month-over-month change in the total value of sales at the retail level.",ismManufacturingPmi:"ISM Manufacturing PMI measures the health of the U.S. manufacturing sector based on survey data; values above 50 indicate expansion.",ismServicesPmi:"ISM Services PMI measures the health of the U.S. services sector based on survey data; values above 50 indicate expansion.",gdpPrelim:"Prelim GDP is the second estimate of quarterly GDP growth; measures the total value of goods and services produced in an economy.",adpNfp:"ADP Non-Farm Employment Change measures the change in private-sector payroll employment from ADP/Moody's survey; a leading indicator for official Nonfarm Payrolls.",eci:"Employment Cost Index measures the quarterly change in the cost of labor including wages and benefits, a key inflation indicator watched by the Fed.",flashManufacturingPmi:"Flash Manufacturing PMI is a preliminary estimate of manufacturing sector activity based on survey data; values above 50 indicate expansion.",flashServicesPmi:"Flash Services PMI is a preliminary estimate of services sector activity based on survey data; values above 50 indicate expansion.",claimantCount:"UK Claimant Count Change measures the monthly change in people claiming unemployment-related benefits; a key gauge of the UK labor market.",boeRate:"Bank of England Official Bank Rate is the interest rate set by the Monetary Policy Committee; it guides UK monetary policy and sterling markets.",ecbMainRefinancingRate:"ECB Main Refinancing Rate is the European Central Bank's key policy rate for liquidity-providing operations; it guides euro-area monetary policy and EUR markets.",snbPolicyRate:"Swiss National Bank Policy Rate is the SNB's key policy interest rate (SARON-based framework); it guides Swiss monetary policy and CHF markets.",cadEmploymentChange:"Canadian Employment Change measures the monthly change in employed people from Statistics Canada's Labour Force Survey; a key gauge of the Canadian labor market and CAD."},Hh={matchPercent:"Match {percent}%",matchLabel:"Match",mismatch:"Mismatch",noResultsFound:"No results found",result:"Result",filter:"Filter",filterBy:"Filter by",clearFilter:"Clear filter",selectFilterType:"Select filter type",matchPercentLabel:"Match %",selectSymbol:"Select Symbol",selectMatchPercent:"Select Match %",selectDateRange:"Select Date Range",dateLast1Month:"Last 1 month",dateLast6Months:"Last 6 months",dateLastYear:"Last year",dateLast3Years:"Last 3 years",dateAllTime:"All time",noDataFound:"No data found",runScanToSeePatternResults:"Run a scan to see pattern results here",scanAgainToPlay:"Scan again to play the chart",scan:"Scan",activateSelector:"Activate Selector",resetAfterDuration:"Reset after: {duration}",markets:"Markets",scannerOptions:"Scanner Options",saveOptions:"Save options",searchSymbol:"Search symbol",probabilityCalculation:"Probability calculation",probabilityCalculationTooltip:"Defines the number of upcoming candles used for probability calculation.",period:"Period",periodTooltip:"Searches from the selected period.",timeframeTooltip:"Defines the candle timeframe for scan results.",topResultsTooltip:"Defines the number of scan results.",auto:"Auto",settings:"Settings",collapseToolbar:"Collapse toolbar",expandToolbar:"Expand toolbar",availableBars:"Available sizes: 10-50, 60, 70, 80, 90, 100",clearReplayFirst:"Please clear the replay chart first",pleaseLoginFirst:"Please login first",trackPattern:"Track Pattern",selectAll:"Select all",searchTimeframe:"Search timeframe",selectAllTimeframes:"Select all timeframes",selectTimeframeAria:"Select timeframe {label}",selectSymbolAria:"Select symbol {symbol}",timeframeTypeMinutes:"Minutes",searchFilterSaved:"Search filter saved successfully.",periodAll:"All",periodLastYear:"Last year",periodLast3Years:"Last 3 years",periodLast5Years:"Last 5 years",periodLast15Years:"Last 15 years",topResults:"Top Results",tabSymbols:"Symbols",tabAdvancedOptions:"Advanced options",tabBasic:"Basic",tabAdvancedFilter:"Advanced Filter",priceMovementData:"Price Movement Data:",askAssistantExplanation:"Ask the assistant for explanation",selectCandleCount:"Select candle count",priceChanges:"Price Changes",candlesCount:"{count} candles",basedOnDirectionPatterns:'Based on "{direction}" following this patterns',noAiMovementData:"No AI movement data for {direction}ward direction",scannerOptionsDescription:"Configure symbols and scan parameters.",alwaysShow:"Always show",aiModel:"AI Intelligence model",aiTemperature:"AI temperature",aiModelTooltipLight:"Trained on the last 2 years of data.",aiModelTooltipPro:"Trained on all historical data.",aiTemperatureTooltip:"Defines the consistency level of AI predictions."},Yh={scannedAt:"Scanned At:",trackerActivated:"Tracker Activated",match:"Match: {percent}%",result:"Result",windowSize:"Window Size: {size}",patternSelectorHistory:"Pattern Selector History",noFilter:"No filter",favorite:"Favorite",windowSizeFilter:"Window size",windowSizePlaceholder:"Window size (10-50)",submit:"Submit"},qh={trackYourCustomPatterns:"Track your custom patterns",selectedSymbol:"Selected Symbol",selectedSymbols:"Selected Symbols",timezone:"Timezone",selectedTimeframes:"Selected Timeframes",moreItems:"{count, plural, one {# more item} other {# more items}}",selectedBars:"Selected Bars",barsCount:"{count} bars",timeFrame:"Time Frame",patternType:"Pattern Type",created:"Created",editPattern:"Edit pattern",createNewTracker:"Create new tracker",firstYouHaveToScan:"First you have to scan",goToScan:"Go to scan",addToPatternTracker:"Add to Pattern Tracker",goToPatternTracker:"Go To Pattern Tracker",addToPatternTrackerDescription:"You'll receive real-time updates when this pattern appears. Enter a name to help you recognize this alert.",patternName:"Pattern Name",patternNamePlaceholder:"Enter a name for this pattern",patternNameMinChars:"Minimum 5 characters required.",patternNameMaxChars:"20 character limit reached.",patternNameErrorTitle:"Pattern Name Error",patternNameErrorDescription:"Please enter a name for the pattern signal",customPatternSignalTooltip:"You will be notified once pattern is formed on MARKET as Custom Pattern Signal",noPatternDataFound:"No pattern data found",limitReached:"Limit Reached",limitReachedTrackerDescription:"You've reached the maximum number of pattern tracker.",trackerUpgradeToastDescription:"You've reached the maximum number of signals allowed on your current plan. Please upgrade to access more.",patternConfigUpdated:"Pattern Config Updated",patternConfigUpdatedDesc:'Pattern config "{name}" has been updated',patternConfigError:"Pattern Config Error",patternConfigErrorDesc:"Failed to update pattern config",patternSaved:"Pattern Saved",patternSavedDesc:'Pattern name "{name}" has been saved',patternSignalError:"Pattern Signal Error",patternSignalErrorDesc:"Failed to save the pattern",trackerTutorialPlanLimitExpert:"Your plan has {limit} pattern to tracker limit.",trackerTutorialPlanNoTracking:"Your plan doesn't include pattern tracking. Our upgraded plans let you add patterns to the tracker.",trackerTutorialPlanTrackingLimit:"Your plan allows tracking up to {limit} patterns. Our upgraded plans let you track more patterns.",currentPlan:"Current plan",planFree:"Free",configurePatternTracker:"Configure Pattern Tracker",selectTimeframesAndSymbols:"Select the timeframes and symbols you want to monitor for this pattern.",selectTimeframes:"Select Timeframes",chooseTimeframes:"Choose the timeframes you want to monitor for this pattern.",searchTimeframes:"Search timeframes",timeframeSelected:"{count} timeframe selected",timeframesSelected:"{count} timeframes selected",symbolSelected:"{count} symbol selected",symbolsSelected:"{count} symbols selected",patternSelected:"{count} pattern",patternsSelected:"{count} patterns",patternTypes:"Pattern Types",patternSubscribed:"Pattern Subscribed",patternSubscribedDesc:'Pattern "{name}" is now being tracked',patternSubscriptionError:"Pattern Subscription Error",subscriptionModalAria:"Pattern tracker subscription",noPatternCandles:"No pattern candles found",chartSymbolRequired:"Chart symbol is required",userIdRequired:"User ID is required",subscribe:"Subscribe",subscribing:"Subscribing...",tabTimeShort:"Time",signalDialog:{title:"Signal Settings - {patternTitle}",successDescription:"Signal settings updated successfully",selectOneTimeframe:"Please select at least one timeframe",selectOneSymbol:"Please select at least one symbol",selectOneTimeframeAndSymbol:"Please select at least one timeframe and one symbol",selectCurrencyPairs:"Select Currency Pairs",chooseCurrencyPairs:"Choose the currency pairs you want to monitor for patterns",searchCurrencyPairs:"Search currency pairs"},noMatchesFound:"No matches found",filterCategoryPattern:"Pattern",filterCategorySymbol:"Symbol",filterCategoryTimeframe:"Timeframe",selectCategory:"Select category",searchCategory:"Search {category}...",timeframeOptions:{M15:{displayName:"15 Minutes",description:"15-minute timeframe"},M30:{displayName:"30 Minutes",description:"30-minute timeframe"},H1:{displayName:"1 Hour",description:"1-hour timeframe"},H2:{displayName:"2 Hours",description:"2-hour timeframe"},H4:{displayName:"4 Hours",description:"4-hour timeframe"},D:{displayName:"1 Day",description:"Daily timeframe"}}},Wh={priceActionPattern:"Price action pattern",labels:{flagbear:"Bearish Flag",flagbull:"Bullish Flag",dd_top:"Double Top",dd_bot:"Double Bottom",aad_up:"AAD Up",aad_down:"AAD Down",has_bull:"Head and Shoulders Bullish",has_bear:"Head and Shoulders Bearish",rectangle:"Rectangle"},timeframes:{M1:"1 minute",M5:"5 minutes",M15:"15 minutes",M30:"30 minutes",H1:"1 hour",H2:"2 hours",H4:"4 hours",D1:"Daily"},patterns:{doubleBottom:{desc:'<div><p>These patterns form when price tests the same level twice and fails to break through.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It shows that the market is losing momentum in one direction.</li><li>A breakout outside the range usually signals a reversal is coming.</li></ul></div>'},doubleTop:{desc:'<div><p>These patterns form when price tests the same level twice and fails to break through.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It shows that the market is losing momentum in one direction.</li><li>A breakout outside the range usually signals a reversal is coming.</li></ul></div>'},bullishFlag:{desc:'<div><p>A brief pause or consolidation after a strong move (either up or down).</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>Price moves in a small, sloped channel against the trend.</li><li>Once it breaks out of the flag, the trend often continues in the same direction.</li></ul></div>'},bearishFlag:{desc:'<div><p>A brief pause or consolidation after a strong move (either up or down).</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>Price moves in a small, sloped channel against the trend.</li><li>Once it breaks out of the flag, the trend often continues in the same direction.</li></ul></div>'},bullishHeadShoulders:{desc:'<div><p>This pattern shows a shift in market strength and signals a possible trend reversal.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It has three parts: one larger move (the "head") and two smaller ones (the "shoulders").</li><li>When the pattern completes, price often breaks away and moves in the opposite direction of the trend before it.</li></ul></div>'},bearishHeadShoulders:{desc:'<div><p>This pattern shows a shift in market strength and signals a possible trend reversal.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It has three parts: one larger move (the "head") and two smaller ones (the "shoulders").</li><li>When the pattern completes, price often breaks away and moves in the opposite direction of the trend before it.</li></ul></div>'}}},_h={chartPatterns:"What is in a chart patterns?",flagPattern:"How do I trade a flag pattern effectively?",rectanglePattern:"What are the key features of a rectangle pattern to watch for?"},Vh={pip:"What is a pip?",majorCurrencyPairs:"What are the major currency pairs to trade?",lotSize:"What is a lot size?",leverage:"What is a leverage?",margin:"What is a margin?",bullishFlagTrack:"Track bullish flag pattern for all symbols and timeframes"},Kh={cpi:"What is CPI, and how does it affect the market?",nfp:"What is NFP, and how does it affect the market?",eurImpactfulNews:"What is the most impactful news in the market for USD?"},Jh="lang",Xh="Profile",Zh={statistics:{heading:"Thousands of traders have already changed the way they see the market.",tradersReport:"7 out of 10 traders report improved consistency in their trading decisions.",satisfactionRate:'96% satisfaction rate from beta testers who said, "It feels like trading with a brain beside me."',usersChanged:"More than 80% of users say iC Candle changed how they analyze the market.",lessTimeWatching:"Average user spends 40% less time watching charts, thanks to pattern reminders."},feedback:{backtestingTitle:"Feels like backtesting on a next level.",backtestingDesc:"Backtesting on iC Candle is honestly a game changer. It's crazy how fast and clear everything is now. I'm low-key obsessed. Hard to imagine any active trader working without this at this point.",confirmsTitle:"Confirms My Setups",confirmsDesc:"Omg, finally a tool that actually proves whether my own analysis is legit. Since I started using iCCandle, my hesitation in trading has dropped like 80%. I'm way more confident now.",marketHistoryTitle:"Market History Leads My Trades",marketHistoryDesc:"Using historical reactions for my trades has kinda become my whole new vibe. The value I'm getting vs. what I'm paying for the subscription? Not even comparable.",chatGPTTitle:"The Trader's ChatGPT",chatGPTDesc:"I use ChatGPT for literally everything in my daily life, everyone knows how much it makes things easier. And honestly… I think I just found the trader's version of ChatGPT."},tags:{all:"All",blog:"Blog",crypto:"Crypto",event:"Event",pairs:"Pairs"}},Qh={title:"Page Not Found",description:"The page you're looking for doesn't exist or has been moved.",backToHomepage:"Back to Homepage",imageAlt:"Not Found"},$h=JSON.parse(`{"Page":{"title":{"terms":"Terms of Service","privacy":"Privacy Policy","refund":"Refund and Cancellation Policy","cookie":"Cookie Policy"},"tabs":{"terms":"Terms","privacy":"Privacy","refund":"Refund","cookie":"Cookies"},"nav":{"terms":"Terms of Service","privacy":"Privacy Policy","refund":"Refund and Cancellation Policy","cookie":"Cookie Policy"}},"Terms":{"title":"Terms of Service, TOS, Terms, Conditions, Disclaimers, Contract, Agreement","intro":{"p1":"This agreement is made between Pixel Nexus Global, a Singaporean Limited Liability company operating as www.iccandle.ai (“Pixel Nexus Global,” “we,” “us,” or “our”), and the individual or entity purchasing or utilizing services offered through the Platform (“Customer,” “you,” or “your”). If you are acquiring the Services on behalf of a third party, you confirm that you have the legal authority to bind that party to these Terms of Service and will be liable for their use of the Services.","p2":"By accessing the Platform and Services outlined in this document and promoted on www.iccandle.ai, or by subscribing to services via the iccandle.ai website, you acknowledge that you have read, understood, and agreed to these Terms, Conditions, and Disclaimers. You further agree that your relationship with us is governed by the provisions set forth in this TOS.","p2Emphasis":"If you do not accept these terms, you must discontinue all use of iccandle.ai and any associated services or Platforms immediately."},"sections":[{"title":"1. The Services","paragraphs":["Pixel Nexus Global will provide active customers in good standing with access to its AI-powered analytical tool (the “Platform”). As used in this Agreement, the term “Services” refers to Pixel Nexus Global’s provision of your access to the Platform. The Services will be provided to you under one or more subscriptions, account activations, sign-ups, or orders placed by you on the iccandle.ai website and accepted by Pixel Nexus Global (an “Order”).","In case of any conflict between these TOS and an Order, the terms of these TOS shall take precedence. By accepting the Services, you acknowledge and agree that any different or additional terms proposed by you in an Order or otherwise are expressly rejected by Pixel Nexus Global, unless we have agreed to such terms in a written document signed by an authorized representative."]},{"title":"2. Your Obligations","subsections":[{"title":"Customer Information and Account Responsibilities","paragraphs":["You agree to provide Pixel Nexus Global with accurate information when creating your account, throughout our business relationship, and in all correspondence with us. We may occasionally need to contact you via email or telephone regarding the Services. You agree to maintain a valid email address that you check daily and to promptly notify us of any changes to your contact information.","Pixel Nexus Global shall not be responsible for any service interruptions, damages, or consequences resulting from misdirected communications due to your failure to provide current contact details. You also agree to complete all data entitlement surveys within the platform completely and truthfully to maintain compliance with exchange regulations."]},{"title":"Permitted Use of Platform","paragraphs":["Your use of the Platform must comply with these TOS and any accompanying documentation we provide. If you permit third parties to access the Platform, you agree to: (i) restrict their use in accordance with these terms; (ii) ensure their compliance with these TOS and our Privacy Policy; and (iii) remain fully liable for any violations of these TOS or the Privacy Policy by such third parties."]},{"title":"Intellectual Property and Legal Compliance","paragraphs":["You agree not to alter, obscure, or remove any trademark or proprietary notices. You may only use the Platform in accordance with: (i) the laws governing these TOS; and (ii) all applicable laws in your jurisdiction.","Unauthorized use is strictly prohibited."]}]},{"title":"3. Term","subsections":[{"title":"Effective Date and Term Duration","paragraphs":["These Terms of Service (TOS) become effective (\\"Effective Date\\") on the earlier of: (i) the date you click \\"I accept\\" as recorded by our servers; or (ii) the date you first access or use the Platform.","These TOS remain in effect for the duration of any active Order."]},{"title":"Subscription Terms and Renewals","paragraphs":["The Services will automatically renew for successive periods (monthly, quarterly, or annually) as specified in your Order. If unspecified, the default initial subscription period (\\"Initial Term\\") is one month. Subsequent renewal periods (\\"Renewal Terms\\") will match the Initial Term’s duration."]},{"title":"Trial Period Terms","paragraphs":["Pixel Nexus Global may offer trial periods (paid or free) as indicated on the iccandle.ai trial signup page. During any trial period:"],"listOrdered":["All terms and conditions of this agreement apply as if you were a paid subscriber","You may cancel at any time during the trial to prevent automatic renewal","Trial terms and conditions are subject to change without notice"]},{"title":"Subscription Management Responsibility","paragraphs":["You are solely responsible for managing your subscription, including:"],"listDisc":["Monitoring renewal dates","Updating payment information","Initiating cancellations","Maintaining current contact information"],"paragraphsAfter":["Pixel Nexus Global is not responsible for any charges due to failure to manage your subscription."]}]},{"title":"4. Termination","subsections":[{"title":"Cancellation and Termination Policy","paragraphs":["Details about cancellation and refund policies are available on our Refund and Cancellation Policy page at iccandle.ai. Terminating your account disables automatic renewals but does not cancel past invoices or make prior payments refundable unless stated otherwise in our Refund and Cancellation Policy.","Any currently due invoices must be paid in full to settle your account. Your access to Pixel Nexus Global services will continue until the expiration of your prepaid period or trial term."]},{"title":"Termination for Convenience","paragraphs":["Either party may terminate any Order by providing written notice at least one (1) day before the expiration of the Initial Term or any Renewal Term. For purposes of this provision, “written notice” includes communication through email, live chat, telephone, or via the Online Portal, indicating a desire not to continue service with Pixel Nexus Global in the future."]},{"title":"Termination for Policy Violations","paragraphs":["Pixel Nexus Global reserve the right to immediately suspend Services and/or terminate any Order in cases of violation of these TOS, breach of our Privacy Policy, or use of Services in a manner contrary to law or generally accepted internet standards. Such termination may occur without prior notice, dispute resolution process, or refund of any fees."]},{"title":"Effect of Termination","paragraphs":["The expiration or termination of any Order does not affect any rights or obligations that either (i) came into effect upon or after such expiration/termination, or (ii) survive the termination and were incurred by the parties prior to termination. Upon termination, you must promptly settle any outstanding balance. Pixel Nexus Global is not obligated to return any paid fees for terminations occurring prior to completion of a full term, except as may be expressly provided in our Refund and Cancellation Policy.","All termination matters are governed by the complete terms set forth in this agreement, and Pixel Nexus Global maintains full discretion in enforcing these provisions."]}]},{"title":"5. License Grant and Restrictions","paragraphs":["Pixel Nexus Global grants you a limited, revocable, non-exclusive, non-transferable, worldwide license to utilize our proprietary technology (\\"Pixel Nexus Technology\\") solely for accessing and employing our analytical engines as part of the Services, including any generated reports (\\"Reports\\"). This license is restricted to your account's registered users and automatically terminates upon expiration or termination of these TOS.","No rights beyond this limited license are conferred. All ownership rights in the Pixel Nexus Technology remain exclusively with Pixel Nexus Global or its licensors. You are expressly prohibited from: transferring, leasing, lending, sublicensing, reselling, or distributing the technology; using it for timesharing or service bureau purposes; or permitting unauthorized third-party access. You may not circumvent any protective measures safeguarding our proprietary interests, nor modify, reproduce, decompile, reverse engineer, or create derivative works from the Pixel Nexus Technology or Platform components. Upon termination, you must immediately cease using and permanently delete all Pixel Nexus Technology in your possession, ensuring any third parties with access do likewise."],"subsections":[{"title":"Ownership Rights","paragraphs":["Pixel Nexus Global retains all rights, title, and interest in the Pixel Nexus Technology and Platform, including but not limited to all derivative works, improvements, enhancements, and associated intellectual property rights such as trademarks and copyrights."]},{"title":"Feedback Provisions","paragraphs":["You may voluntarily provide, or we may solicit, input regarding the Platform or Services (\\"Feedback\\"), including suggestions for modifications or improvements. You acknowledge such Feedback constitutes Pixel Nexus Global's confidential proprietary information and irrevocably assign all related rights and interests to us. Pixel Nexus Global may utilize Feedback for any purpose without limitation or compensation obligation. This assignment applies globally and survives termination of these TOS.","All rights not expressly granted herein are reserved by Pixel Nexus Global. Any unauthorized use constitutes breach of these TOS and may result in immediate termination of your access rights."]}]},{"title":"6. Data Usage and Intellectual Property Rights","paragraphs":["Pixel Nexus Global may utilize information you provide or data collected from your use of the Platform and Services (\\"Operational Information\\") to deliver technical support and facilitate the implementation, operation, and administration of the Services. By using our Services, you grant us a perpetual, irrevocable license to process and analyze this Operational Information. We may combine this data with aggregate information from our general business operations to enhance existing Services or develop new products and offerings.","Pixel Nexus Global shall retain exclusive ownership of all intellectual property derived from such analysis and improvements. You hereby irrevocably waive any potential rights to this intellectual property and assign all rights, title, and interest therein to Pixel Nexus Global. You further agree to provide reasonable cooperation in securing and protecting these rights. We reserve the right to commercialize this Operational Information through sale, monetization, or incorporation into other products and services, without obligation to compensate you or grant you any ownership interest.","This license shall terminate upon expiration or cancellation of these Terms of Service, except with respect to historical data that has been aggregated and anonymized such that it cannot be identified as originating from your organization. Pixel Nexus Global may retain and continue to use such anonymized, aggregated data indefinitely for any lawful business purpose.","All intellectual property rights not expressly granted herein remain the exclusive property of Pixel Nexus Global. Your continued use of the Services constitutes acceptance of these terms regarding data usage and intellectual property rights."]},{"title":"7. Accuracy of Information Disclaimer","paragraphs":["Pixel Nexus Global relies on third-party data feeds to power its platform and therefore cannot guarantee the absolute accuracy of the information displayed. Different features within our system (such as scanners, automated analysis tools, charting functions, and back testing capabilities) may utilize separate data providers, which can result in variances between datasets across different platform features. Users should always verify analysis results and scanner conditions to ensure data consistency.","The platform's analytical outputs are inherently dependent on the quality of underlying third-party data, and Pixel Nexus Global makes no representations or warranties regarding the accuracy of these analyses. The iccandle.ai website, Services, and Platform are designed solely for informational and research purposes - they should never serve as the sole basis for investment decisions. Pixel Nexus Global disclaims all liability for any financial losses resulting from reliance on potentially inaccurate data or analysis within the Platform.","The Pixel Nexus Global system is provided strictly on an \\"as-is\\" basis without guarantees or warranties of any kind, as its functionality depends on unverified third- party data sources. The platform is intended exclusively for educational, entertainment, and general informational use - not as professional financial advice or a substitute for independent investment research. Users assume all risk associated with interpreting and acting upon any information displayed within the system.","By accessing and using the Platform, you acknowledge these inherent limitations and agree that Pixel Nexus Global shall not be held responsible for any consequences arising from data inaccuracies, analysis errors, or investment decisions made based on platform content."]},{"title":"8. Disclaimer of Investment Advice and Platform Limitations","paragraphs":["The analytical tools and outputs provided by Pixel Nexus Global's iccandle.ai platform are strictly for informational and research purposes only and should not be construed as investment advice. The platform relies on third-party data sources that may contain inaccuracies, and different features may produce varying results due to separate data providers. All analysis, including results from our Pattern Selector, Pattern Tracker, and News Impact Intelligence, is provided \\"AS-IS\\" without any guarantees of accuracy. These tools demonstrate historical patterns, probabilities, and market behavior under past conditions and cannot predict future results, as actual market outcomes may differ due to liquidity, execution, and other variables. You must never rely solely on platform analysis when making investment decisions."]},{"title":"9. Risk Acknowledgement and User Responsibility","paragraphs":["By using Pixel Nexus Global's platform (iccandle.ai), you expressly acknowledge and accept full responsibility for all risks associated with any investment decisions made based on information or analysis obtained from our Platform. You understand that our services rely on third-party data sources that may contain inaccuracies, and that our analytical models employ mathematical formulas and sequences that have not been independently verified for predictive accuracy. Pixel Nexus Global cannot and does not guarantee the reliability of any market data, technical indicators, or analytical outputs generated by the Platform.","Prior to executing any trades, you agree to either: (i) consult with a qualified, licensed financial professional; or (ii) conduct comprehensive independent research using multiple verified information sources.","Pixel Nexus Global expressly disclaims all liability for any trading losses, missed opportunities, or other financial consequences resulting from your reliance on Platform content. By continuing to use iccandle.ai, you confirm your understanding that our tools are designed for informational purposes only and that you alone bear complete responsibility for all investment choices and outcomes. This warning constitutes an essential term of our agreement, and your use of the Platform signifies your unconditional acceptance of these risk disclosures."]},{"title":"10. Disclaimer of Warranties and Service Limitations","paragraphs":["The Pixel Nexus Global platform (iccandle.ai), including all Services, scripts, reports, analytical engines, and related technology, is provided strictly on an \\"AS-IS\\" and \\"AS- AVAILABLE\\" basis. Pixel Nexus Global makes no representations or warranties of any kind, whether express or implied. This includes, but is not limited to, all implied warranties of non-infringement, merchantability, fitness for a particular purpose, accuracy, quality, or achievement of specific results. No warranties arise from any course of dealing, performance, or trade usage.","Pixel Nexus Global does not guarantee that the Service will meet your requirements, operate without interruption, remain error-free, or be secure from viruses or other harmful components. Compatibility with all websites or browsers is not assured, and Pixel Nexus Global disclaims all liability for issues arising from browser incompatibility or third-party services, even if such services appear integrated with our Platform. Any data transmitted via our Services remains your sole responsibility, and Pixel Nexus Global expressly disclaims liability for such content. No warranties provided by third- party vendors to Pixel Nexus Global extend to you, and you are not a third-party beneficiary of such agreements."],"subsections":[{"title":"Alert Features and Beta Functionality","paragraphs":["The Platform includes alert features (e.g., \\"Dynamic Price Alerts\\" and \\"Multi-Factor Alerts\\"), which are provided without warranty or guarantee of reliability. Technical delays or failures may occur due to cellular networks, email services, system errors, or other factors. You acknowledge that alerts may not function as intended and agree that Pixel Nexus Global bears no liability for trading losses resulting from reliance on these features, regardless of whether they were used correctly.","Certain features labeled as 'Beta' are under active development and may exhibit unstable or unreliable performance, including inconsistent data or incorrect information due to software bugs or programming errors. These Beta features carry additional risks and should be used with extreme caution."]},{"title":"General Provisions","paragraphs":["This warranty disclaimer applies to all oral or written information provided by Pixel Nexus Global, its employees, affiliates, or third-party vendors. You may not rely on any such statements or representations.","Some jurisdictions may not permit the exclusion of certain warranties. If applicable to you, any warranty claim must be filed within ninety (90) days of the Service provision that gave rise to the claim. Failure to submit a claim within this period constitutes an irrevocable waiver of your right to pursue such claims thereafter.","Third-party websites linked through the Pixel Nexus Global platform are not under our control, and we assume no responsibility for their content or functionality. Accessing these external sites is entirely at your own risk. Such links are provided for convenience only and do not constitute an endorsement or recommendation by Pixel Nexus Global.","By using the Platform, you acknowledge and accept these limitations and disclaimers in full."]}]},{"title":"11. Limitation of Liability","paragraphs":["Pixel Nexus Global's total liability under this Agreement shall not exceed the aggregate fees actually paid by you to Pixel Nexus Global during the one (1) month period immediately preceding the event giving rise to such liability. For purposes of this limitation, \\"Pixel Nexus Global\\" includes its employees, agents, owners, directors, officers, affiliates, and any third-party service providers facilitating the Services.","To the maximum extent permitted by law, you agree that under no circumstances - including negligence - shall Pixel Nexus Global or its licensors, agents, employees, officers, or third-party vendors be liable for any indirect, incidental, special, consequential, or punitive damages. This exclusion applies to, but is not limited to, damages for:"],"listOrdered":["Lost profits or revenue","Business interruption","Data loss or corruption","Lost savings","Any other financial losses incurred by you, end users, or third parties"],"paragraphsAfter":["These limitations apply regardless of whether the action arises in contract, tort (including negligence), or any other legal theory, and shall remain in effect even if Pixel Nexus Global has been advised of the possibility of such damages. While some jurisdictions may not allow limitations on certain liabilities, you agree that, where such restrictions apply, Pixel Nexus Global's liability shall be limited to the maximum extent permitted by applicable law.","This limitation of liability constitutes an essential basis of the bargain between you and Pixel Nexus Global and shall survive termination of this Agreement. By using the Services, you acknowledge that these limitations are reasonable and reflect the risk allocation between both parties."]},{"title":"12. Notices","paragraphs":["All official notices will be sent to your account’s listed contact information. You are responsible for maintaining current and accurate contact details in our records at all times.","For most inquiries, including technical support and billing matters, please visit our website at www.iccandle.ai for contact information and support options.","However, any legal notices regarding these Terms of Service or other Pixel Nexus Global policies must be sent exclusively via postal mail to our designated address:"],"address":{"company":"Pixel Nexus Global PTE. LTD.","lines":["160 Robinson Road, #14-04","Singapore Business Federation Center","Singapore 068914"]}},{"title":"13. Force Majeure","paragraphs":["Neither party shall be liable for any failure or delay in performance (except for payment obligations) due to events beyond their reasonable control, including, but not limited to, acts of God, natural disasters, war, civil unrest, epidemics, labor disputes, utility failures, telecommunication outages, supply chain disruptions, government actions, or other unforeseeable catastrophic events; provided that: (i) the affected party notifies the other in writing within ten (10) days of the event’s commencement; (ii) all payment obligations remain unaffected; (iii) the time for performance shall be extended day-for-day to match the duration of the disruption; and (iv) both parties use commercially reasonable efforts to mitigate the impact.","It is understood that this clause does not permit termination of the Agreement solely due to force majeure conditions, nor does it extend the Agreement term beyond its original expiration date without mutual written agreement."]},{"title":"14. No Waiver","paragraphs":["No failure or delay by Pixel Nexus Global in exercising any right under these Terms shall operate as a waiver of that right, nor shall any single or partial exercise of any right preclude the further or full exercise of that right or any other right under these Terms."]},{"title":"15. Assignment","paragraphs":["Pixel Nexus Global may assign these Terms, or any rights hereunder, without your consent. You may not assign these Terms without our prior written approval. These Terms shall be binding upon, and inure to the benefit of, the parties' respective successors and permitted assigns."]},{"title":"16. Severability","paragraphs":["If any provision of these Terms is held to be invalid or unenforceable by a court of competent jurisdiction, that provision shall be modified to the minimum extent necessary to make it valid and enforceable while preserving its original intent. All other provisions shall remain in full force and effect."]},{"title":"17. No Agency","paragraphs":["Nothing in these Terms creates an agency, partnership, joint venture or employment relationship between the parties. Neither party has authority to bind the other or incur obligations on the other's behalf."]},{"title":"18. Privacy & Conflicts","paragraphs":["Our Privacy Policy is incorporated herein by reference. In the event of a conflict between agreements: (i) these Terms prevail over the Privacy Policy; (ii) any separate service agreement shall prevail over conflicting provisions of these Terms, but only with respect to those specific provisions; and (iii) in all other cases, these Terms shall govern."]},{"title":"19. Jurisdiction and Disclaimer","paragraphs":["The services and information provided on iccandle.ai are not intended for use in jurisdictions where such services would be contrary to local laws or regulations. Access to and use of this website are strictly prohibited for citizens of the following jurisdictions: United States of America, Canada, Russian Federation, Iran, North Korea, Myanmar, Syria, Cuba, Crimea, Donetsk, and Luhansk regions of Ukraine, Afghanistan, Belarus, and Venezuela. This list may be updated at any time without prior notice. Users are solely responsible for ensuring that their access to and use of this website comply with all applicable laws and regulations in their country. iccandle.ai accepts no responsibility or liability for any non-compliance by users with their local regulatory requirements and reserves the right to restrict, block, or terminate access at its sole discretion."]}],"content":"Terms of Service, TOS, Terms, Conditions, Disclaimers, Contract, Agreement\\nThis agreement is made between Pixel Nexus Global, a Singaporean Limited Liability company operating as www.iccandle.ai (“Pixel Nexus Global,” “we,” “us,” or “our”), and the individual or entity purchasing or utilizing services offered through the Platform (“Customer,” “you,” or “your”). If you are acquiring the Services on behalf of a third party, you confirm that you have the legal authority to bind that party to these Terms of Service and will be liable for their use of the Services.\\n\\nBy accessing the Platform and Services outlined in this document and promoted on www.iccandle.ai, or by subscribing to services via the iccandle.ai website, you acknowledge that you have read, understood, and agreed to these Terms, Conditions, and Disclaimers. You further agree that your relationship with us is governed by the provisions set forth in this TOS. If you do not accept these terms, you must discontinue all use of iccandle.ai and any associated services or Platforms immediately.\\n\\n1. The Services\\nPixel Nexus Global will provide active customers in good standing with access to its AI-powered analytical tool (the “Platform”). As used in this Agreement, the term “Services” refers to Pixel Nexus Global’s provision of your access to the Platform. The Services will be provided to you under one or more subscriptions, account activations, sign-ups, or orders placed by you on the iccandle.ai website and accepted by Pixel Nexus Global (an “Order”).\\n\\nIn case of any conflict between these TOS and an Order, the terms of these TOS shall take precedence. By accepting the Services, you acknowledge and agree that any different or additional terms proposed by you in an Order or otherwise are expressly rejected by Pixel Nexus Global, unless we have agreed to such terms in a written document signed by an authorized representative.\\n\\n2. Your Obligations\\nCustomer Information and Account Responsibilities\\nYou agree to provide Pixel Nexus Global with accurate information when creating your account, throughout our business relationship, and in all correspondence with us. We may occasionally need to contact you via email or telephone regarding the Services. You agree to maintain a valid email address that you check daily and to promptly notify us of any changes to your contact information.\\n\\nPixel Nexus Global shall not be responsible for any service interruptions, damages, or consequences resulting from misdirected communications due to your failure to provide current contact details. You also agree to complete all data entitlement surveys within the platform completely and truthfully to maintain compliance with exchange regulations.\\n\\nPermitted Use of Platform\\nYour use of the Platform must comply with these TOS and any accompanying documentation we provide. If you permit third parties to access the Platform, you agree to: (i) restrict their use in accordance with these terms; (ii) ensure their compliance with these TOS and our Privacy Policy; and (iii) remain fully liable for any violations of these TOS or the Privacy Policy by such third parties.\\n\\nIntellectual Property and Legal Compliance\\nYou agree not to alter, obscure, or remove any trademark or proprietary notices. You may only use the Platform in accordance with: (i) the laws governing these TOS; and (ii) all applicable laws in your jurisdiction.\\n\\nUnauthorized use is strictly prohibited.\\n\\n3. Term\\nEffective Date and Term Duration\\nThese Terms of Service (TOS) become effective (\\"Effective Date\\") on the earlier of: (i) the date you click \\"I accept\\" as recorded by our servers; or (ii) the date you first access or use the Platform.\\n\\nThese TOS remain in effect for the duration of any active Order.\\n\\nSubscription Terms and Renewals\\nThe Services will automatically renew for successive periods (monthly, quarterly, or annually) as specified in your Order. If unspecified, the default initial subscription period (\\"Initial Term\\") is one month. Subsequent renewal periods (\\"Renewal Terms\\") will match the Initial Term’s duration.\\n\\nTrial Period Terms\\nPixel Nexus Global may offer trial periods (paid or free) as indicated on the iccandle.ai trial signup page. During any trial period:\\n\\nAll terms and conditions of this agreement apply as if you were a paid subscriber\\nYou may cancel at any time during the trial to prevent automatic renewal\\nTrial terms and conditions are subject to change without notice\\nSubscription Management Responsibility\\nYou are solely responsible for managing your subscription, including:\\n\\nMonitoring renewal dates\\nUpdating payment information\\nInitiating cancellations\\nMaintaining current contact information\\nPixel Nexus Global is not responsible for any charges due to failure to manage your subscription.\\n\\n4. Termination\\nCancellation and Termination Policy\\nDetails about cancellation and refund policies are available on our Refund and Cancellation Policy page at iccandle.ai. Terminating your account disables automatic renewals but does not cancel past invoices or make prior payments refundable unless stated otherwise in our Refund and Cancellation Policy.\\n\\nAny currently due invoices must be paid in full to settle your account. Your access to Pixel Nexus Global services will continue until the expiration of your prepaid period or trial term.\\n\\nTermination for Convenience\\nEither party may terminate any Order by providing written notice at least one (1) day before the expiration of the Initial Term or any Renewal Term. For purposes of this provision, “written notice” includes communication through email, live chat, telephone, or via the Online Portal, indicating a desire not to continue service with Pixel Nexus Global in the future.\\n\\nTermination for Policy Violations\\nPixel Nexus Global reserve the right to immediately suspend Services and/or terminate any Order in cases of violation of these TOS, breach of our Privacy Policy, or use of Services in a manner contrary to law or generally accepted internet standards. Such termination may occur without prior notice, dispute resolution process, or refund of any fees.\\n\\nEffect of Termination\\nThe expiration or termination of any Order does not affect any rights or obligations that either (i) came into effect upon or after such expiration/termination, or (ii) survive the termination and were incurred by the parties prior to termination. Upon termination, you must promptly settle any outstanding balance. Pixel Nexus Global is not obligated to return any paid fees for terminations occurring prior to completion of a full term, except as may be expressly provided in our Refund and Cancellation Policy.\\n\\nAll termination matters are governed by the complete terms set forth in this agreement, and Pixel Nexus Global maintains full discretion in enforcing these provisions.\\n\\n5. License Grant and Restrictions\\nPixel Nexus Global grants you a limited, revocable, non-exclusive, non-transferable, worldwide license to utilize our proprietary technology (\\"Pixel Nexus Technology\\") solely for accessing and employing our analytical engines as part of the Services, including any generated reports (\\"Reports\\"). This license is restricted to your account's registered users and automatically terminates upon expiration or termination of these TOS.\\n\\nNo rights beyond this limited license are conferred. All ownership rights in the Pixel Nexus Technology remain exclusively with Pixel Nexus Global or its licensors. You are expressly prohibited from: transferring, leasing, lending, sublicensing, reselling, or distributing the technology; using it for timesharing or service bureau purposes; or permitting unauthorized third-party access. You may not circumvent any protective measures safeguarding our proprietary interests, nor modify, reproduce, decompile, reverse engineer, or create derivative works from the Pixel Nexus Technology or Platform components. Upon termination, you must immediately cease using and permanently delete all Pixel Nexus Technology in your possession, ensuring any third parties with access do likewise.\\n\\nOwnership Rights\\nPixel Nexus Global retains all rights, title, and interest in the Pixel Nexus Technology and Platform, including but not limited to all derivative works, improvements, enhancements, and associated intellectual property rights such as trademarks and copyrights.\\n\\nFeedback Provisions\\nYou may voluntarily provide, or we may solicit, input regarding the Platform or Services (\\"Feedback\\"), including suggestions for modifications or improvements. You acknowledge such Feedback constitutes Pixel Nexus Global's confidential proprietary information and irrevocably assign all related rights and interests to us. Pixel Nexus Global may utilize Feedback for any purpose without limitation or compensation obligation. This assignment applies globally and survives termination of these TOS.\\n\\nAll rights not expressly granted herein are reserved by Pixel Nexus Global. Any unauthorized use constitutes breach of these TOS and may result in immediate termination of your access rights.\\n\\n6. Data Usage and Intellectual Property Rights\\nPixel Nexus Global may utilize information you provide or data collected from your use of the Platform and Services (\\"Operational Information\\") to deliver technical support and facilitate the implementation, operation, and administration of the Services. By using our Services, you grant us a perpetual, irrevocable license to process and analyze this Operational Information. We may combine this data with aggregate information from our general business operations to enhance existing Services or develop new products and offerings.\\n\\nPixel Nexus Global shall retain exclusive ownership of all intellectual property derived from such analysis and improvements. You hereby irrevocably waive any potential rights to this intellectual property and assign all rights, title, and interest therein to Pixel Nexus Global. You further agree to provide reasonable cooperation in securing and protecting these rights. We reserve the right to commercialize this Operational Information through sale, monetization, or incorporation into other products and services, without obligation to compensate you or grant you any ownership interest.\\n\\nThis license shall terminate upon expiration or cancellation of these Terms of Service, except with respect to historical data that has been aggregated and anonymized such that it cannot be identified as originating from your organization. Pixel Nexus Global may retain and continue to use such anonymized, aggregated data indefinitely for any lawful business purpose.\\n\\nAll intellectual property rights not expressly granted herein remain the exclusive property of Pixel Nexus Global. Your continued use of the Services constitutes acceptance of these terms regarding data usage and intellectual property rights.\\n\\n7. Accuracy of Information Disclaimer\\nPixel Nexus Global relies on third-party data feeds to power its platform and therefore cannot guarantee the absolute accuracy of the information displayed. Different features within our system (such as scanners, automated analysis tools, charting functions, and back testing capabilities) may utilize separate data providers, which can result in variances between datasets across different platform features. Users should always verify analysis results and scanner conditions to ensure data consistency.\\n\\nThe platform's analytical outputs are inherently dependent on the quality of underlying third-party data, and Pixel Nexus Global makes no representations or warranties regarding the accuracy of these analyses. The iccandle.ai website, Services, and Platform are designed solely for informational and research purposes - they should never serve as the sole basis for investment decisions. Pixel Nexus Global disclaims all liability for any financial losses resulting from reliance on potentially inaccurate data or analysis within the Platform.\\n\\nThe Pixel Nexus Global system is provided strictly on an \\"as-is\\" basis without guarantees or warranties of any kind, as its functionality depends on unverified third- party data sources. The platform is intended exclusively for educational, entertainment, and general informational use - not as professional financial advice or a substitute for independent investment research. Users assume all risk associated with interpreting and acting upon any information displayed within the system.\\n\\nBy accessing and using the Platform, you acknowledge these inherent limitations and agree that Pixel Nexus Global shall not be held responsible for any consequences arising from data inaccuracies, analysis errors, or investment decisions made based on platform content.\\n\\n8. Disclaimer of Investment Advice and Platform Limitations\\nThe analytical tools and outputs provided by Pixel Nexus Global's iccandle.ai platform are strictly for informational and research purposes only and should not be construed as investment advice. The platform relies on third-party data sources that may contain inaccuracies, and different features may produce varying results due to separate data providers. All analysis, including results from our Pattern Selector, Pattern Tracker, and News Impact Intelligence, is provided \\"AS-IS\\" without any guarantees of accuracy. These tools demonstrate historical patterns, probabilities, and market behavior under past conditions and cannot predict future results, as actual market outcomes may differ due to liquidity, execution, and other variables. You must never rely solely on platform analysis when making investment decisions.\\n\\n9. Risk Acknowledgement and User Responsibility\\nBy using Pixel Nexus Global's platform (iccandle.ai), you expressly acknowledge and accept full responsibility for all risks associated with any investment decisions made based on information or analysis obtained from our Platform. You understand that our services rely on third-party data sources that may contain inaccuracies, and that our analytical models employ mathematical formulas and sequences that have not been independently verified for predictive accuracy. Pixel Nexus Global cannot and does not guarantee the reliability of any market data, technical indicators, or analytical outputs generated by the Platform.\\n\\nPrior to executing any trades, you agree to either: (i) consult with a qualified, licensed financial professional; or (ii) conduct comprehensive independent research using multiple verified information sources.\\n\\nPixel Nexus Global expressly disclaims all liability for any trading losses, missed opportunities, or other financial consequences resulting from your reliance on Platform content. By continuing to use iccandle.ai, you confirm your understanding that our tools are designed for informational purposes only and that you alone bear complete responsibility for all investment choices and outcomes. This warning constitutes an essential term of our agreement, and your use of the Platform signifies your unconditional acceptance of these risk disclosures.\\n\\n10. Disclaimer of Warranties and Service Limitations\\nThe Pixel Nexus Global platform (iccandle.ai), including all Services, scripts, reports, analytical engines, and related technology, is provided strictly on an \\"AS-IS\\" and \\"AS- AVAILABLE\\" basis. Pixel Nexus Global makes no representations or warranties of any kind, whether express or implied. This includes, but is not limited to, all implied warranties of non-infringement, merchantability, fitness for a particular purpose, accuracy, quality, or achievement of specific results. No warranties arise from any course of dealing, performance, or trade usage.\\n\\nPixel Nexus Global does not guarantee that the Service will meet your requirements, operate without interruption, remain error-free, or be secure from viruses or other harmful components. Compatibility with all websites or browsers is not assured, and Pixel Nexus Global disclaims all liability for issues arising from browser incompatibility or third-party services, even if such services appear integrated with our Platform. Any data transmitted via our Services remains your sole responsibility, and Pixel Nexus Global expressly disclaims liability for such content. No warranties provided by third- party vendors to Pixel Nexus Global extend to you, and you are not a third-party beneficiary of such agreements.\\n\\nAlert Features and Beta Functionality\\nThe Platform includes alert features (e.g., \\"Dynamic Price Alerts\\" and \\"Multi-Factor Alerts\\"), which are provided without warranty or guarantee of reliability. Technical delays or failures may occur due to cellular networks, email services, system errors, or other factors. You acknowledge that alerts may not function as intended and agree that Pixel Nexus Global bears no liability for trading losses resulting from reliance on these features, regardless of whether they were used correctly.\\n\\nCertain features labeled as 'Beta' are under active development and may exhibit unstable or unreliable performance, including inconsistent data or incorrect information due to software bugs or programming errors. These Beta features carry additional risks and should be used with extreme caution.\\n\\nGeneral Provisions\\nThis warranty disclaimer applies to all oral or written information provided by Pixel Nexus Global, its employees, affiliates, or third-party vendors. You may not rely on any such statements or representations.\\n\\nSome jurisdictions may not permit the exclusion of certain warranties. If applicable to you, any warranty claim must be filed within ninety (90) days of the Service provision that gave rise to the claim. Failure to submit a claim within this period constitutes an irrevocable waiver of your right to pursue such claims thereafter.\\n\\nThird-party websites linked through the Pixel Nexus Global platform are not under our control, and we assume no responsibility for their content or functionality. Accessing these external sites is entirely at your own risk. Such links are provided for convenience only and do not constitute an endorsement or recommendation by Pixel Nexus Global.\\n\\nBy using the Platform, you acknowledge and accept these limitations and disclaimers in full.\\n\\n11. Limitation of Liability\\nPixel Nexus Global's total liability under this Agreement shall not exceed the aggregate fees actually paid by you to Pixel Nexus Global during the one (1) month period immediately preceding the event giving rise to such liability. For purposes of this limitation, \\"Pixel Nexus Global\\" includes its employees, agents, owners, directors, officers, affiliates, and any third-party service providers facilitating the Services.\\n\\nTo the maximum extent permitted by law, you agree that under no circumstances - including negligence - shall Pixel Nexus Global or its licensors, agents, employees, officers, or third-party vendors be liable for any indirect, incidental, special, consequential, or punitive damages. This exclusion applies to, but is not limited to, damages for:\\n\\nLost profits or revenue\\nBusiness interruption\\nData loss or corruption\\nLost savings\\nAny other financial losses incurred by you, end users, or third parties\\nThese limitations apply regardless of whether the action arises in contract, tort (including negligence), or any other legal theory, and shall remain in effect even if Pixel Nexus Global has been advised of the possibility of such damages. While some jurisdictions may not allow limitations on certain liabilities, you agree that, where such restrictions apply, Pixel Nexus Global's liability shall be limited to the maximum extent permitted by applicable law.\\n\\nThis limitation of liability constitutes an essential basis of the bargain between you and Pixel Nexus Global and shall survive termination of this Agreement. By using the Services, you acknowledge that these limitations are reasonable and reflect the risk allocation between both parties.\\n\\n12. Notices\\nAll official notices will be sent to your account’s listed contact information. You are responsible for maintaining current and accurate contact details in our records at all times.\\n\\nFor most inquiries, including technical support and billing matters, please visit our website at www.iccandle.ai for contact information and support options.\\n\\nHowever, any legal notices regarding these Terms of Service or other Pixel Nexus Global policies must be sent exclusively via postal mail to our designated address:\\n\\nPixel Nexus Global PTE. LTD.\\n160 Robinson Road, #14-04\\n\\nSingapore Business Federation Center\\n\\nSingapore 068914\\n\\n13. Force Majeure\\nNeither party shall be liable for any failure or delay in performance (except for payment obligations) due to events beyond their reasonable control, including, but not limited to, acts of God, natural disasters, war, civil unrest, epidemics, labor disputes, utility failures, telecommunication outages, supply chain disruptions, government actions, or other unforeseeable catastrophic events; provided that: (i) the affected party notifies the other in writing within ten (10) days of the event’s commencement; (ii) all payment obligations remain unaffected; (iii) the time for performance shall be extended day-for-day to match the duration of the disruption; and (iv) both parties use commercially reasonable efforts to mitigate the impact.\\n\\nIt is understood that this clause does not permit termination of the Agreement solely due to force majeure conditions, nor does it extend the Agreement term beyond its original expiration date without mutual written agreement.\\n\\n14. No Waiver\\nNo failure or delay by Pixel Nexus Global in exercising any right under these Terms shall operate as a waiver of that right, nor shall any single or partial exercise of any right preclude the further or full exercise of that right or any other right under these Terms.\\n\\n15. Assignment\\nPixel Nexus Global may assign these Terms, or any rights hereunder, without your consent. You may not assign these Terms without our prior written approval. These Terms shall be binding upon, and inure to the benefit of, the parties' respective successors and permitted assigns.\\n\\n16. Severability\\nIf any provision of these Terms is held to be invalid or unenforceable by a court of competent jurisdiction, that provision shall be modified to the minimum extent necessary to make it valid and enforceable while preserving its original intent. All other provisions shall remain in full force and effect.\\n\\n17. No Agency\\nNothing in these Terms creates an agency, partnership, joint venture or employment relationship between the parties. Neither party has authority to bind the other or incur obligations on the other's behalf.\\n\\n18. Privacy & Conflicts\\nOur Privacy Policy is incorporated herein by reference. In the event of a conflict between agreements: (i) these Terms prevail over the Privacy Policy; (ii) any separate service agreement shall prevail over conflicting provisions of these Terms, but only with respect to those specific provisions; and (iii) in all other cases, these Terms shall govern.\\n\\n19. Jurisdiction and Disclaimer\\nThe services and information provided on iccandle.ai are not intended for use in jurisdictions where such services would be contrary to local laws or regulations. Access to and use of this website are strictly prohibited for citizens of the following jurisdictions: United States of America, Canada, Russian Federation, Iran, North Korea, Myanmar, Syria, Cuba, Crimea, Donetsk, and Luhansk regions of Ukraine, Afghanistan, Belarus, and Venezuela. This list may be updated at any time without prior notice. Users are solely responsible for ensuring that their access to and use of this website comply with all applicable laws and regulations in their country. iccandle.ai accepts no responsibility or liability for any non-compliance by users with their local regulatory requirements and reserves the right to restrict, block, or terminate access at its sole discretion."},"Refund":{"title":"Refund and Cancellation Policy","intro":"This Refund and Cancellation Policy (\\"Policy\\") governs refund and cancellation terms for services provided by Pixel Nexus Global Pte. Ltd. (\\"we,\\" \\"us,\\" \\"our\\") through the iccandle.ai platform (\\"Services\\"). This Policy is incorporated by reference into our Terms of Service and should be read in conjunction with those Terms.","sections":[{"title":"1. Definitions","definitions":[{"term":"Subscription","text":"A recurring paid access to the Services for a specified period (e.g., monthly or annually)."},{"term":"Billing Period","text":"The recurring time interval for which a Subscription fee is charged."},{"term":"Subscription Change","text":"Any upgrade or downgrade to a different Subscription plan."}]},{"title":"2. Cancellation Terms","subsections":[{"title":"Subscription Cancellation","listDisc":["You may cancel your Subscription at any time through your account dashboard or by contacting support.","Cancellation will take effect at the end of the current billing period; you will retain access to the Services through the end of that period.","Cancelling your Subscription does not automatically entitle you to a refund of fees already paid."]}]},{"title":"3. Refund Terms","subsections":[{"title":"3.1 General Rule","paragraphs":["Except as expressly provided in this Policy or required by applicable law, all fees paid for Subscriptions are non‑refundable once charged."]},{"title":"3.2 Refund Eligibility","paragraphs":["We may issue a refund at our sole discretion only in limited circumstances, including but not limited to:"],"listDisc":["Duplicate payments (verified duplicate charges will be refunded).","Technical errors that demonstrably prevented access to Services, where the error was not caused by user actions and is verified by us.","Applicable statutory rights under consumer protection law where these rights apply and cannot be waived."],"paragraphsAfter":["Refunds, if approved, will be processed to the original payment method within a commercially reasonable timeframe determined by payment processors and banking partners."]},{"title":"3.3 No Refund for Partial Use","paragraphs":["Refunds will not be issued for:"],"listDisc":["Partial use of the Services during a billing period.","Downgrades of Subscription plans.","Change of mind or business decisions after payment.","Subscription cancellations submitted after a billing cycle has renewed."]}]},{"title":"4. Subscription Changes (Upgrade or Downgrade)","paragraphs":["We provide two options when changing your Subscription plan:"],"subsections":[{"title":"4.1 Change Now","paragraphs":["If you select \\"Change Now,\\" your new plan will take effect immediately, and the associated charge will be applied.","Please note that no refunds, credits, or prorated adjustments will be provided for any unused portion of your current plan."]},{"title":"4.2 Change on Next Billing","paragraphs":["If you choose \\"Change on Next Billing,\\" your current plan will remain active until the end of the current Billing Period.","The new plan will take effect at the start of the next Billing Period.","No refunds or credits apply to the current Billing Period."]}]},{"title":"5. Cancellation After renewal","paragraphs":["If an automatic renewal has already occurred before you submit a cancellation request: The renewal fee is non-refundable. The cancellation will apply to the next Billing Period."]},{"title":"6. Chargebacks and Disputes","paragraphs":["We maintain a strict no-tolerance policy toward unjustified chargebacks.","Initiating a chargeback or payment dispute without first contacting us to seek resolution is considered a breach of this Refund and Cancellation Policy and our Terms of Service. Such actions may result in immediate suspension or permanent termination of your account, without notice, and forfeiture of access to the Services.","We reserve the right to challenge and dispute any chargeback that we deem unauthorized, abusive, or inconsistent with this Policy. This includes providing payment processors, banks, and financial institutions with all relevant evidence, including but not limited to:"],"listDisc":["Proof of service delivery and access logs","Account activity records","Acceptance of our Terms of Service and policies","Communication history with the customer"],"paragraphsAfter":["Customers are strongly encouraged to contact our support team first to resolve any billing concerns. We are committed to addressing legitimate issues in good faith; however, chargebacks used as a substitute for cancellation or refund requests will not be tolerated."]},{"title":"7. Modification of Policy","paragraphs":["We may update this Policy from time to time. Material changes will be posted on our website or communicated via email prior to taking effect. Continued use of the Services after such updates constitutes acceptance of the revised Policy."]},{"title":"8. Contact Information","paragraphs":["For all cancellation and refund requests, please contact our support team via our help center."]}],"content":"Refund and Cancellation Policy\\nThis Refund and Cancellation Policy (“Policy”) governs refund and cancellation terms for services provided by Pixel Nexus Global Pte. Ltd. (“we,” “us,” “our”) through the iccandle.ai platform (“Services”). This Policy is incorporated by reference into our Terms of Service and should be read in conjunction with those Terms.\\n\\n1. Definitions\\nSubscription: A recurring paid access to the Services for a specified period (e.g., monthly or annually).\\n\\nBilling Period: The recurring time interval for which a Subscription fee is charged.\\n\\nSubscription Change: Any upgrade or downgrade to a different Subscription plan.\\n\\n2. Cancellation Terms\\nSubscription Cancellation\\nYou may cancel your Subscription at any time through your account dashboard or by contacting support.\\nCancellation will take effect at the end of the current billing period; you will retain access to the Services through the end of that period.\\nCancelling your Subscription does not automatically entitle you to a refund of fees already paid.\\n3. Refund Terms\\n3.1 General Rule\\nExcept as expressly provided in this Policy or required by applicable law, all fees paid for Subscriptions are non‑refundable once charged.\\n\\n3.2 Refund Eligibility\\nWe may issue a refund at our sole discretion only in limited circumstances, including but not limited to:\\n\\nDuplicate payments (verified duplicate charges will be refunded).\\nTechnical errors that demonstrably prevented access to Services, where the error was not caused by user actions and is verified by us.\\nApplicable statutory rights under consumer protection law where these rights apply and cannot be waived.\\nRefunds, if approved, will be processed to the original payment method within a commercially reasonable timeframe determined by payment processors and banking partners.\\n\\n3.3 No Refund for Partial Use\\nRefunds will not be issued for:\\n\\nPartial use of the Services during a billing period.\\nDowngrades of Subscription plans.\\nChange of mind or business decisions after payment.\\nSubscription cancellations submitted after a billing cycle has renewed.\\n4. Subscription Changes (Upgrade or Downgrade)\\nWe provide two options when changing your Subscription plan:\\n\\n4.1 Change Now\\nIf you select “Change Now,” your new plan will take effect immediately, and the associated charge will be applied.\\n\\nPlease note that no refunds, credits, or prorated adjustments will be provided for any unused portion of your current plan.\\n\\n4.2 Change on Next Billing\\nIf you choose “Change on Next Billing,” your current plan will remain active until the end of the current Billing Period.\\n\\nThe new plan will take effect at the start of the next Billing Period.\\n\\nNo refunds or credits apply to the current Billing Period.\\n\\n5. Cancellation After renewal\\nIf an automatic renewal has already occurred before you submit a cancellation request: The renewal fee is non-refundable. The cancellation will apply to the next Billing Period.\\n\\n6. Chargebacks and Disputes\\nWe maintain a strict no-tolerance policy toward unjustified chargebacks.\\n\\nInitiating a chargeback or payment dispute without first contacting us to seek resolution is considered a breach of this Refund and Cancellation Policy and our Terms of Service. Such actions may result in immediate suspension or permanent termination of your account, without notice, and forfeiture of access to the Services.\\n\\nWe reserve the right to challenge and dispute any chargeback that we deem unauthorized, abusive, or inconsistent with this Policy. This includes providing payment processors, banks, and financial institutions with all relevant evidence, including but not limited to:\\n\\nProof of service delivery and access logs\\nAccount activity records\\nAcceptance of our Terms of Service and policies\\nCommunication history with the customer\\nCustomers are strongly encouraged to contact our support team first to resolve any billing concerns. We are committed to addressing legitimate issues in good faith; however, chargebacks used as a substitute for cancellation or refund requests will not be tolerated.\\n\\n7. Modification of Policy\\nWe may update this Policy from time to time. Material changes will be posted on our website or communicated via email prior to taking effect. Continued use of the Services after such updates constitutes acceptance of the revised Policy.\\n\\n8. Contact Information\\nFor all cancellation and refund requests, please contact our support team via our help center."},"Privacy":{"title":"Privacy Policy","intro":"This Privacy Policy explains how Pixel Nexus Global Pte. Ltd. (\\"we\\", \\"us\\", or \\"our\\") collects, uses, discloses, and protects personal information when you use our website, applications, and services (collectively, the \\"Services\\").","sections":[{"title":"1. Information We Collect","paragraphs":["We collect the following information:"],"listDisc":["Email address provided when you sign up for our Services","Service usage information, including interactions with features, pages viewed, session activity, and general usage patterns, collected to improve the functionality, performance, and user experience of our Services"],"paragraphsAfter":["We do not collect, store, or process payment card details or other sensitive payment information."]},{"title":"2. Payments and Stripe","paragraphs":["All payment transactions are processed by our third-party payment service provider, Stripe.","When you make a payment, Stripe collects and processes payment-related information (such as card details, billing information, and transaction data) directly. This information is handled in accordance with Stripe’s Privacy Policy and security standards, including PCI-DSS compliance.","We only receive limited information from Stripe necessary to operate our Services, including:"],"listDisc":["Payment confirmation","Subscription status","Transaction identifiers"],"paragraphsAfter":["We do not have access to your full payment details.","You can review Stripe’s Privacy Policy here:"],"stripePrivacyUrl":"https://stripe.com/privacy"},{"title":"3. How We Use Your Information","paragraphs":["We use the email addresses we collect to:"],"listDisc":["Provide, operate, and maintain our Services","Analyze service usage and improve product functionality, performance, and user experience","Communicate with you regarding technical notices, updates, and support","Inform you about products, services, features, and events"]},{"title":"4. Information Sharing","paragraphs":["We do not sell your personal information.","We may share your information only with:"],"listDisc":["Service providers who support our operations (including hosting, analytics, and payment processing via Stripe)","Professional advisors, such as legal, accounting, or compliance consultants","Law enforcement or regulatory authorities, when required by law or to protect our legal rights"],"paragraphsAfter":["All third-party service providers are required to process personal data in accordance with applicable data protection laws."]},{"title":"5. Your Rights","paragraphs":["Depending on your location, you may have the right to:"],"listDisc":["Access your personal information","Correct or update your email address","Request deletion of your email address","Object to or restrict certain processing activities"],"paragraphsAfter":["Requests related to payment data should be directed to Stripe, as they act as the data controller for payment information."]},{"title":"6. Third-Party Policies","paragraphs":["Our Services rely on third-party providers such as Stripe. Their handling of personal data is governed by their own privacy policies, and we encourage you to review them."]},{"title":"7. Contact Us","paragraphs":["If you have any questions about this Privacy Policy or our data practices, please contact us at:","support@iccandle.ai"]}],"content":"Privacy Policy\\nThis Privacy Policy explains how Pixel Nexus Global Pte. Ltd. (“we”, “us”, or “our”) collects, uses, discloses, and protects personal information when you use our website, applications, and services (collectively, the “Services”).\\n\\n1. Information We Collect\\nWe collect the following information:\\n\\nEmail address provided when you sign up for our Services\\nService usage information, including interactions with features, pages viewed, session activity, and general usage patterns, collected to improve the functionality, performance, and user experience of our Services\\nWe do not collect, store, or process payment card details or other sensitive payment information.\\n\\n2. Payments and Stripe\\nAll payment transactions are processed by our third-party payment service provider, Stripe.\\n\\nWhen you make a payment, Stripe collects and processes payment-related information (such as card details, billing information, and transaction data) directly. This information is handled in accordance with Stripe’s Privacy Policy and security standards, including PCI-DSS compliance.\\n\\nWe only receive limited information from Stripe necessary to operate our Services, including:\\n\\nPayment confirmation\\nSubscription status\\nTransaction identifiers\\nWe do not have access to your full payment details.\\n\\nYou can review Stripe’s Privacy Policy here: https://stripe.com/privacy\\n\\n3. How We Use Your Information\\nWe use the email addresses we collect to:\\n\\nProvide, operate, and maintain our Services\\nAnalyze service usage and improve product functionality, performance, and user experience\\nCommunicate with you regarding technical notices, updates, and support\\nInform you about products, services, features, and events\\n4. Information Sharing\\nWe do not sell your personal information.\\n\\nWe may share your information only with:\\n\\nService providers who support our operations (including hosting, analytics, and payment processing via Stripe)\\nProfessional advisors, such as legal, accounting, or compliance consultants\\nLaw enforcement or regulatory authorities, when required by law or to protect our legal rights\\nAll third-party service providers are required to process personal data in accordance with applicable data protection laws.\\n\\n5. Your Rights\\nDepending on your location, you may have the right to:\\n\\nAccess your personal information\\nCorrect or update your email address\\nRequest deletion of your email address\\nObject to or restrict certain processing activities\\nRequests related to payment data should be directed to Stripe, as they act as the data controller for payment information.\\n\\n6. Third-Party Policies\\nOur Services rely on third-party providers such as Stripe. Their handling of personal data is governed by their own privacy policies, and we encourage you to review them.\\n\\n7. Contact Us\\nIf you have any questions about this Privacy Policy or our data practices, please contact us at: support@iccandle.ai"},"Cookie":{"title":"Cookie Policy","intro":["This Cookie Policy explains how Pixel Nexus Global Pte. Ltd. (\\"we\\", \\"us\\", or \\"our\\") uses cookies and similar technologies when you visit or use iccandle.ai and related services (collectively, the \\"Services\\").","This Policy should be read together with our Privacy Policy."],"sections":[{"title":"1. What Are Cookies?","paragraphs":["Cookies are small text files placed on your device when you visit a website. They are widely used to make websites work efficiently, enhance user experience, and provide information to website operators.","Cookies may be:"],"listDisc":["Session cookies (deleted when you close your browser), or","Persistent cookies (stored for a set period or until deleted)."]},{"title":"2. Types of Cookies We Use","subsections":[{"title":"2.1 Strictly Necessary Cookies","paragraphs":["These cookies are essential for the operation of our Services and cannot be switched off. They are required to:"],"listDisc":["Enable secure login and authentication","Maintain user sessions","Protect against fraud and abuse"],"paragraphsAfter":["Without these cookies, the Services cannot function properly."]},{"title":"2.2 Functional Cookies","paragraphs":["These cookies allow us to remember your preferences and settings, such as:"],"listDisc":["Language or regional preferences","Account-related selections"],"paragraphsAfter":["They improve usability but are not strictly necessary."]},{"title":"2.3 Analytics and Performance Cookies","paragraphs":["We use analytics cookies to understand how users interact with our Services. These cookies collect information such as:"],"listDisc":["Pages visited and features used","Session duration and interaction patterns","Error and performance data"],"paragraphsAfter":["This information is used solely to improve our product, functionality, and user experience. Analytics data is aggregated and does not directly identify individual users."]},{"title":"2.4 Third-Party Cookies","paragraphs":["Some cookies are placed by third-party service providers that support our Services, including:"],"listDisc":["Payment processing services (e.g., Stripe)","Analytics and infrastructure providers"],"paragraphsAfter":["These third parties may use cookies in accordance with their own privacy and cookie policies."]}]},{"title":"3. What We Do NOT Use Cookies For","listDisc":["We do not use cookies for advertising or behavioral targeting","We do not sell cookie data","We do not use cookies to collect sensitive personal information"]},{"title":"4. Managing Cookies","paragraphs":["You can manage or disable cookies through your browser settings. Most browsers allow you to:"],"listDisc":["View cookies stored on your device","Delete existing cookies","Block cookies entirely or from specific websites"],"paragraphsAfter":["Please note that disabling certain cookies may affect the functionality and performance of the Services."]},{"title":"5. Changes to This Cookie Policy","paragraphs":["We may update this Cookie Policy from time to time to reflect changes in technology, law, or our practices. Material changes will be posted on our website. Continued use of the Services after changes take effect constitutes acceptance of the updated Policy."]},{"title":"6. Contact Us","paragraphs":["If you have any questions about this Cookie Policy or our use of cookies, please contact us at:","support@iccandle.ai"]}],"content":"Cookie Policy\\nThis Cookie Policy explains how Pixel Nexus Global Pte. Ltd. (“we”, “us”, or “our”) uses cookies and similar technologies when you visit or use iccandle.ai and related services (collectively, the “Services”).\\n\\nThis Policy should be read together with our Privacy Policy.\\n\\n1. What Are Cookies?\\nCookies are small text files placed on your device when you visit a website. They are widely used to make websites work efficiently, enhance user experience, and provide information to website operators.\\n\\nCookies may be:\\n\\nSession cookies (deleted when you close your browser), or\\nPersistent cookies (stored for a set period or until deleted).\\n2. Types of Cookies We Use\\n2.1 Strictly Necessary Cookies\\nThese cookies are essential for the operation of our Services and cannot be switched off. They are required to:\\n\\nEnable secure login and authentication\\nMaintain user sessions\\nProtect against fraud and abuse\\nWithout these cookies, the Services cannot function properly.\\n\\n2.2 Functional Cookies\\nThese cookies allow us to remember your preferences and settings, such as:\\n\\nLanguage or regional preferences\\nAccount-related selections\\nThey improve usability but are not strictly necessary.\\n\\n2.3 Analytics and Performance Cookies\\nWe use analytics cookies to understand how users interact with our Services. These cookies collect information such as:\\n\\nPages visited and features used\\nSession duration and interaction patterns\\nError and performance data\\nThis information is used solely to improve our product, functionality, and user experience. Analytics data is aggregated and does not directly identify individual users.\\n\\n2.4 Third-Party Cookies\\nSome cookies are placed by third-party service providers that support our Services, including:\\n\\nPayment processing services (e.g., Stripe)\\nAnalytics and infrastructure providers\\nThese third parties may use cookies in accordance with their own privacy and cookie policies.\\n\\n3. What We Do NOT Use Cookies For\\nWe do not use cookies for advertising or behavioral targeting\\nWe do not sell cookie data\\nWe do not use cookies to collect sensitive personal information\\n4. Managing Cookies\\nYou can manage or disable cookies through your browser settings. Most browsers allow you to:\\n\\nView cookies stored on your device\\nDelete existing cookies\\nBlock cookies entirely or from specific websites\\nPlease note that disabling certain cookies may affect the functionality and performance of the Services.\\n\\n5. Changes to This Cookie Policy\\nWe may update this Cookie Policy from time to time to reflect changes in technology, law, or our practices. Material changes will be posted on our website. Continued use of the Services after changes take effect constitutes acceptance of the updated Policy.\\n\\n6. Contact Us\\nIf you have any questions about this Cookie Policy or our use of cookies, please contact us at:\\n\\nsupport@iccandle.ai"}}`),ep={Common:Nh,Confirmation:Dh,DateFormat:Rh,Alert:Eh,TimeConfig:Mh,Loading:Oh,Auth:Ih,Navbar:Lh,Guide:Fh,Pricing:Gh,Settings:Bh,Referral:jh,Layout:Uh,News:zh,Selector:Hh,UserActivity:Yh,Pattern:qh,PatternCatalog:Wh,sQuestion_pattern:_h,sQuestion_general:Vh,sQuestion_news:Kh,justLanguage:Jh,profile:Xh,Landing:Zh,NotFound:Qh,Legal:$h},tp={or:"OR",error:"错误",warning:"警告",cancel:"取消",continuing:"继续中...",email:"邮箱",password:"密码",termsOfService:"服务条款",privacyPolicy:"隐私政策",continueWithGoogle:"使用 Google 继续",continuingWithGoogle:"正在使用 Google 登录...",signIn:"登录",signUp:"注册",agreeAndContinue:"同意并继续",changePlan:"更改方案",upgradePlan:"升级方案 +",manageBilling:"管理账单",getInTouch:"联系我们",copyright:"© {year} IC Candle, Inc. 版权所有。",session:"交易时段",sessions:"交易时段",activeWorkspaces:"活跃工作区",date:"日期",product:"产品",plan:"方案",planNames:{free:"免费方案",standard:"标准方案",pro:"专业方案",expert:"专家方案"},status:"状态",amount:"金额",detail:"详情",total:"总计",prioritySupport:"优先支持",all:"全部",minutely:"日内",hourly:"小时",daily:"日线",chatAssistant:"聊天助手",timeframes:"时间周期",symbols:"交易品种",timeSettings:"时间设置",step:"步骤 {number}:",learnMore:"了解更多",success:"成功",validationError:"验证错误",previous:"上一页",next:"下一步",saving:"保存中...",save:"保存",saveChanges:"保存更改",nextStep:"下一步",columnTimeframe:"时间周期",columnSymbol:"交易品种",columnDescription:"描述",symbol:"交易品种",timeframe:"时间周期",candles:"K线",up:"上涨",down:"下跌",play:"播放",close:"关闭",simulate:"模拟",actual:"实际",forecast:"预测",interestRate:"利率",soon:"即将推出",back:"返回",similarity:"相似度",nextCandles:"下一个 {count}",nextCandlesFull:"接下来 {count} 根K线",probabilityOutcome:"概率结果:",estimatedProbability:"预计概率:",riskDisclaimer:"金融市场具有高风险,可能导致资金损失。iC Candle 提供的信息仅用于教育目的,不构成任何金融建议。过往表现不保证未来结果。",rangeTooFarToRender:"范围过大,无法渲染。",marketSessions:"市场交易时段",askTradingQuestion:"提出交易问题",mrCandleThinking:"Mr. Candle 正在思考...",simulateBullishPriceAction:"模拟看涨价格走势",simulateBearishPriceAction:"模拟看跌价格走势",dismiss:"关闭",loadingMore:"加载更多...",savedPatternDeleted:"已删除保存的形态"},np={confirm:"确认",deletePatternTitle:"删除形态",deletePatternDescription:"您确定要删除该形态吗?",deleteAllNotificationsTitle:"删除所有通知",deleteAllNotificationsDescription:"您确定要删除所有通知吗?",disableSignalsTitle:"禁用信号",disableSignalsDescription:"您确定要禁用信号吗?",disableSignalsForDescription:"您确定要禁用 {patternTitle} 的信号吗?",togglePatternModeTitle:"切换形态模式",togglePatternModeDisableDescription:"您确定要禁用该形态吗?",togglePatternModeEnableDescription:"您确定要启用该形态吗?",closeFeatureDescription:"您确定要关闭此功能吗?"},ip={today:"今天",yesterday:"昨天",day:"{count, plural, other {#天}}",hour:"{count, plural, other {#小时}}",minute:"{count, plural, other {#分钟}}",zeroMinutes:"0分钟",dayShort:"天",hourShort:"小时",minuteShort:"分钟",zeroMin:"0分钟",justNow:"刚刚",minutesAgo:"{count, plural, other {# 分钟前}}",hoursAgo:"{count, plural, other {# 小时前}}",daysAgo:"{count, plural, other {# 天前}}",monthsAgo:"{count, plural, other {# 个月前}}",yearsAgo:"{count, plural, other {# 年前}}"},ap={classicPatternTracker:"经典形态追踪器",trackedPatternReminder:"已追踪形态提醒",classicPattern:"经典形态",trackedPattern:"已追踪形态",enableClassicNotifications:"开启经典价格形态的实时通知",waitingForPatternSignals:"正在等待形态信号",noPatternsDetected:"当前未检测到任何形态",signalsActiveDescription:"您的信号已启用。一旦发现匹配形态,我们将立即通知您",noCustomPatternDetected:"当前未检测到 {patternName}",trackMorePatternsByScan:"前往扫描以追踪更多形态",seeMore:"查看更多"},rp={title:"时间设置",description:"选择允许触发形态提醒的本地时间窗口。",startTime:"开始时间",endTime:"结束时间",session:"交易时段",timezone:"时区",yourTimezone:"您的时区",selectSession:"选择交易时段",searchSession:"搜索交易时段...",noSessionFound:"未找到交易时段。",sessionsHeading:"交易时段",selectTimezone:"选择时区",selectTimezoneHint:"搜索并选择此提醒的时区。",searchTimezone:"搜索时区...",noTimezoneFound:"未找到时区。",timezonesHeading:"时区",allTime:"全天",customize:"自定义",newYorkSession:"纽约时段",londonSession:"伦敦时段",tokyoSession:"东京时段",sydneySession:"悉尼时段"},op={newsScan:{analyzing:"正在分析当前新闻事件...",searching:"正在搜索历史上相似的新闻发布...",ranking:"正在筛选最相关的相似新闻...",preparingReplay:"正在准备相似新闻回放...",ready:"相似新闻事件已准备好进行影响分析。"},newsAi:{replaying:"正在回放历史价格走势...",startingSimulation:"正在启动影响模拟模型...",calculatingScenarios:"正在计算上涨和下跌情景...",complete:"模拟完成。"},selectorScan:{scanning:"正在扫描超过20年的市场历史数据...",finding:"正在寻找结构相似的交易形态...",linking:"正在关联市场行为与其背后的驱动因素...",preparing:"正在准备结构化历史数据集...",ready:"形态已准备完成,可进行回放和结果分析。"},selectorAi:{replaying:"正在回放历史形态行为...",learning:"正在学习历史走势中的影响模式...",calculating:"正在计算价格行为动态...",initializing:"正在初始化模拟模型...",complete:"模拟完成。"}},sp={Layout:{tagline:"为重视洞察而非噪音的交易者而设计"},Legal:{termsAndPrivacy:"条款与隐私",googleTermsDescription:"继续使用 Google 即表示您同意我们的<terms></terms>和<privacy></privacy>。",legalAgreement:"我同意<terms></terms>和<privacy></privacy>。",pleaseAgreeToContinue:"请同意后继续",pleaseAgreeDescription:"您必须同意《服务条款》和《隐私政策》才能继续使用 Google。",legalTitle:"法律信息"},SignIn:{dontHaveAccount:"还没有账户?",googleVerifyingAuthorization:"Google 正在验证授权...",invalidCredentials:"无效的凭证",invalidEmail:"无效的邮箱地址",emailRequired:"请输入邮箱",passwordRequired:"请输入密码",pleaseCheckInfo:"请再次检查您的信息",emailPlaceholder:"请输入个人或工作邮箱",change:"更改",forgotPassword:"忘记密码",continueWithEmail:"使用邮箱继续"},SignUp:{repeatPassword:"重复密码",termsAgreement:"继续即表示您同意我们的<terms></terms>和<privacy></privacy>",continueWithEmail:"使用邮箱继续",alreadyHaveAccount:"已有账户?",signUpError:"注册过程中发生错误。"},PasswordRecovery:{title:"密码找回",emailRequired:"请输入邮箱!",emailPlaceholder:"your@example.com",sendConfirmationCode:"发送验证码",somethingWrong:"出了点问题",pleaseWaitAndRetry:"请稍后再试",confirmationCodeSent:"验证码已发送",checkYourEmail:"请查看您的邮箱"},ResetPassword:{title:"重置密码",confirmationCode:"验证码",confirmationCodeRequired:"请输入验证码。",newPassword:"新密码",repeatNewPassword:"确认新密码",passwordMinLength:"密码至少需要8个字符。",repeatPasswordMinLength:"确认密码至少需要8个字符。",passwordsMustMatch:"两次输入的密码不一致。",pleaseStartAgain:"请重新开始",resetSuccess:"重置成功",useNewPassword:"请使用您的新密码",passwordNotConfirmed:"密码未确认!"},Confirm:{title:"确认您的账户",codeSentTo:"确认码已发送至:",otpDescription:"请输入发送到您邮箱的一次性密码。",otpLength:"验证码必须为6位字符。",turnstileError:"Turnstile 出现错误",confirmError:"确认时发生错误:{message}",confirm:"确认"}},lp={features:{title:"功能",patternSelector:{title:"形态选择器",subtitle:"根据历史市场数据分析您的交易想法,寻找相似的价格形态和结果。"},patternTracker:{title:"形态追踪器",subtitle:"持续在后台扫描市场,并在出现匹配形态时向您发出提醒。"},newsImpact:{title:"新闻影响",subtitle:"展示过去新闻发布对价格走势的影响,让您了解市场此前的反应。"}},resources:{title:"资源",learnAndUse:{title:"学习与使用",subtitle:"学习分析概念,并了解如何有效使用平台。"},updatesAndInsights:{title:"更新与洞察",subtitle:"关于我们正在构建和探索内容的新闻与更新。"},whoWeAre:{title:"关于我们",subtitle:"我们是谁、我们的信念以及我们为何构建这一切。"},helpCenter:{title:"帮助中心",subtitle:"在您需要时获取帮助、指导和解答。"}},pricing:{title:"价格方案"}},cp={badge:"功能",title:"人工智能驱动的市场分析,助您做出更明智的决策",description:"利用先进分析和历史智能,发现市场模式、分析市场反应,并在做出决策前了解各种可能性。",creditUsage:"积分使用",resetAfter:"重置后",resetAfterColon:"重置后:",useThisFeature:"使用此功能",automateNow:"立即自动化",analyzeNow:"立即分析",inSession:"您正在交易时段中",sessionActive:"当前交易时段已激活",continueSession:"继续交易时段",pageHeader:{account:{title:"个人资料",infoTitle:"您的账户",infoDescription:"管理您的设置、偏好和连接"},subscription:{title:"订阅",infoTitle:"您的方案",infoDescription:"管理您的方案、账单和付款"},support:{title:"支持",infoTitle:"获取帮助",infoDescription:"查找问题答案并联系我们的支持团队"},referral:{title:"社区",infoTitle:"社区成长计划",infoDescription:"邀请好友,赚取返佣,共同成长"}}},up={chooseYour:"选择您的",plan:"方案",annualPromo:"选择年度订阅,免费获得超过2个月的服务",monthly:"月付",yearly:"年付",yearlyBadge:"-20%",comparePlans:"比较方案",compareSubtitle:"全面了解每个套餐所包含的功能。",usage:"使用量",usageSection:"使用情况",features:"功能",featuresSection:"功能",freePricePerMonth:"$0 / 月",pricePerMonth:"{price} / 月",patternSelector:"形态选择器",patternTracker:"形态追踪器",newsImpact:"新闻影响",scanResultLimit:"扫描结果限制",historicalData:"历史数据",webhook:"Webhook",patternExport:"形态导出",scansPerDay:"每日 {count} 次扫描",scansPerDayDefault:"每日 2 次扫描",patternsCount:"{count} 个形态",perDay:"每日 {count} 次",perDayDefault:"每日 1 次",tabsCount:"{count} 个标签页",tabsCountDefault:"1 个标签页",limited:"有限",historicalYears:"20年以上",included:"✓",notIncluded:"—",planChangedSuccess:"已成功切换至 {planTitle} 方案!",subscriptionSuccess:"已成功订阅 {planTitle}!",paymentSuccessful:"付款成功!",planUpdated:"您的方案已更新。",planUpdatedDescription:"您的方案已更新。您可以立即开始使用新功能。",subscriptionActive:"您的订阅现已生效。",subscriptionActiveDescription:"您对 {planTitle} 的订阅现已生效。感谢您的购买!",manageBillingInfo:"管理账单信息",continueToApp:"继续使用应用",loadingPaymentDetails:"正在加载付款详情...",paymentError:"付款错误",noSessionId:"未提供会话 ID",goToApp:"前往应用",alreadySubscribedPlan:"您已订阅此方案。",activeSubscriptionManage:"您已有有效订阅。请通过账单管理更改方案。",planChangeScheduled:"方案变更已安排",planChangeScheduledDesc:"您的方案将在下次账单日切换为 {planTitle}。",alreadyOnPlan:"您已在使用此方案",changePlanFailed:"方案更改失败,请使用账单管理。",alreadyActiveSubscription:"您已有有效订阅",noChangesMade:"未做任何更改",alreadyOnPlanDesc:"您当前使用的是 {planTitle} 方案。",badgeFree:"免费",badgePopular:"热门",badgeBestDeal:"最佳优惠",badgeMaximumAccess:"最高权限",freeForEveryone:"人人免费",usdPerMonth:"美元/月",yearlyAmount:"{amount} 美元 / 年",monthlyAmount:"{amount} 美元 / 月",currentPlan:"当前方案",startForFree:"免费开始",getPlan:"获取 {planTitle}",switchToPlan:"切换至 {planTitle}",changePlanConfirmTitle:"确认更改方案",changePlanConfirmDesc:"您当前使用的是 {currentPlan} 方案。请选择新价格生效时间。",changeNextBilling:"下次账单日更改",changeNow:"立即更改",confirmNextBillingTitle:"确认下次账单日更改",confirmNextBillingDesc:"确定要在下次账单日安排此方案变更吗?在此之前,您当前的 {currentPlan} 方案将保持有效。下次账单日将切换为 {planTitle}({amount})。",yesChangeNextBilling:"是,下次账单日更改",continueToCheckout:"继续结账",freeCheckoutDesc:"您当前为免费方案。继续结账以订阅 {planTitle}。",continue:"继续",agreeRefundPolicy:"我同意<link>退款与取消政策</link>。",everythingInPlan:"包含 <plan></plan> 套餐中的所有内容",plans:{free:{title:"免费",subtitle:"探索与体验",heading3:"适合个人交易者"},standard:{title:"标准版",subtitle:"自信分析",heading3:"适合个人交易者"},pro:{title:"专业版",subtitle:"深度分析",heading3:"团队与专业版"},expert:{title:"专家版",subtitle:"无限制分析",heading3:"适合专业交易者"}},planFeatures:{categories:{candleScanner:"K线扫描器",candleSignal:"K线信号"},labels:{patternSelector:"形态选择器",patternTracker:"形态追踪器",newsImpact:"新闻影响",scanResultLimit:"扫描结果限制",activeTabs:"活动标签页",timeframes:"时间周期",webhook:"Webhook"},values:{scansPerDay:"每日 {count} 次扫描",patterns:"{count}",perDay:"{count}",tabsWorkspace:"{count}(工作区)",enabled:"已启用",disabled:"已禁用"}}},dp={Connections:{connectedAccount:"已连接账户",creditUsage:"积分使用情况",totalCreditsUsed:"已使用积分总数",resetsIn:"将在 {duration} 后重置",understandingCredits:"了解积分与使用情况",nearLimit:"接近限制"},Subscription:{myPlan:"我的方案",thanksForSubscribing:"感谢您的订阅!",billingHistory:"账单历史",nextBillingDate:"下次账单日期",whichPlan:"哪个方案适合您?",patternSelectorCreditsPerDay:"{count} 个形态选择器积分 / 天",patternTrackerCreditsPerDay:"{count} 个形态追踪器积分 / 天",newsImpactCreditsPerDay:"{count} 个新闻影响积分 / 天",chatAssistantCreditsPerDay:"{count} 个聊天助手积分 / 天",prioritySupport:"优先支持"},Billing:{noInvoices:"No invoices found.",loadError:"Failed to load invoices. Please try again later.",viewInvoice:"查看发票"}},hp={referralRebate:"推荐返佣",referredUsers:"推荐用户",totalRebateEarned:"累计获得返佣",referredUsersCount:"已推荐用户",activeReferrals:"有效推荐",referralLink:"推荐链接",shareDescription:"与好友分享您的推荐链接。当他们完成订阅后,您将从他们的方案中获得返佣。",joinedDate:"加入日期",loading:"加载中...",noReferralCodeAvailable:"暂无可用推荐码",updateReferralCodeTitle:"更新推荐码",createReferralCodeTitle:"创建推荐码",updateReferralCodeDescription:"请在下方更新您的推荐码。",createReferralCodeDescription:"输入推荐码以开始分享您的推荐链接。",enterReferralCodePlaceholder:"输入推荐码",enterReferralCode:"请输入推荐码",codeCreatedSuccess:"推荐码创建成功",codeUpdatedSuccess:"推荐码更新成功",codeMinChars:"至少 5 个字符",codeMaxChars:"最多 15 个字符",create:"创建",update:"更新",pageNumber:"第 {page} 页",noReferredUsersYet:"尚无推荐用户",shareReferralEmptyDescription:"分享您的推荐链接,开始扩大您的网络并赚取返佣。"},pp={mainMenu:{coreFeatures:"核心功能",account:"账户",subscription:"订阅",communityGrowthProgram:"社区成长计划",support:"支持",others:"其他"},patternMenu:{trackedPatterns:{label:"我的追踪形态",tooltipTitle:"由 AI 检测的高概率交易形态",tooltipDescription:"iC Candle 全天候24小时追踪全球市场,检测您关注的交易形态,并提供置信度等级和突破方向。使用筛选功能找到最佳交易机会,然后点击任何形态查看完整详情。"},classicPatterns:{label:"经典形态",tooltipTitle:"经典形态",tooltipDescription:"选择您关注的形态——双顶、头肩形、旗形、矩形等,然后启用信号。我们会在您选择的市场中监控每一次价格变动,并在形态完成时立即通知您。您可以通过 Telegram、电子邮件或应用内通知自定义接收方式,确保不错过任何交易机会。"}},helperBar:{watchList:"观察列表",savedPatterns:"已保存的形态",newsMovingMarket:"市场正在发生什么?",favoritesCount:"收藏 ({count})",groupWithCount:"{label} ({count})",noItemsInWatchList:"关注列表暂无项目",watchListLast:"最新价",watchListChg:"涨跌",watchListChgPercent:"涨跌%",removeFromFavorites:"从收藏中移除",addToFavorites:"添加到收藏",removeSymbolFromFavorites:"从收藏中移除 {symbol}",addSymbolToFavorites:"将 {symbol} 添加到收藏",groupCommodity:"大宗商品",groupForex:"外汇",groupCrypto:"加密货币",groupIndices:"指数",groupStock:"股票"},profileMenu:{darkTheme:"深色主题",chatWithUs:"与我们聊天",termsAndConditions:"条款与条件",logOut:"退出登录"},tabAdded:"标签页已添加",tabMemoryWarning:"添加更多标签页可能会增加设备的内存占用。",tabLimitReached:"已达到标签页上限",tabLimitReachedMax:"您已达到当前方案允许的最大标签页数量。",tabLimitReachedUpgrade:"您已达到当前方案允许的最大标签页数量。请升级方案以获得更多访问权限。",notifications:"通知",noNotifications:"暂无通知",notificationsOfflineReconnect:"(离线)请重新连接通知",headerNav:{selectorTitle:"形态选择器",selectorShortTitle:"形态选择器",patternTitle:"形态追踪器",patternShortTitle:"追踪",newsTitle:"新闻影响",newsShortTitle:"新闻"},guideFeatures:{selector:{title:"形态选择器",description:"根据历史市场数据分析您的交易想法,寻找相似的价格形态和结果。"},pattern:{title:"形态追踪器",description:"持续在后台扫描市场,并在出现匹配形态时向您发出提醒。"},news:{title:"新闻影响",description:"展示过去新闻发布对价格走势的影响,让您了解市场此前的反应。"}}},mp={mostSimilarNews:"最相似的新闻:",selectEvent:"选择事件",economicCalendarAnalysis:"经济日历分析",economicCalendar:"经济日历",predictAvailable:"预测可用",predictUnavailable:"预测不可用",actualReleased:"实际数据已公布",analyzeImpact:"分析影响",candleDataTooFar:"K线数据距离该事件时间过远。",tryAnotherTimeframe:"请尝试其他时间周期。",aiIntelligence:"AI智能",matchPercent:"{percent}% 匹配",whatHappenedOnNews:"该新闻发生了什么:",newsBeforeEvent:"此次 {eventName} 之前的相关新闻",time15MinLater:"15分钟后",time30MinLater:"30分钟后",time1HourLater:"1小时后",time2HoursLater:"2小时后",time4HoursLater:"4小时后",noDataHere:"No data here",pleaseWaitAndRetry:"Please wait and try again",current:"Current",previousMonth:"上个月",nextMonth:"下个月",holiday:"Holiday",seeAll:"查看全部",selectedSymbols:"已选交易对",marketNews:"市场新闻",patternType:"形态类型",unknownPublishDate:"发布日期未知",noMatchingArticleDetails:"无匹配的文章详情",model:"模型",temperature:"温度",temperatureLow:"低",temperatureMedium:"中",temperatureHigh:"高",previousActual:"前值",currentForecast:"当前预测值",previousForecast:"预测值",goToEventDetail:"前往活动详情",eventInfoNotFound:"未找到活动信息",ppi:"生产者价格指数衡量制造商和生产者销售的商品和服务价格变化。",cpi:"消费者价格指数衡量消费者购买的商品和服务价格变化。",coreCpi:"核心CPI衡量剔除食品和能源后的消费者价格变化,是央行关注的关键通胀指标。",jolts:"职位空缺与劳动力流动调查衡量美国未填补的职位空缺数量。",nfp:"非农就业人数衡量美国就业人数变化,不包括农业及部分行业。",ijc:"初请失业金人数衡量首次申请失业保险的个人数量,用于反映劳动力市场状况。",fomc:"联邦公开市场委员会是美国中央银行机构,负责设定利率并执行货币政策。",fedRate:"美联储利率决议公告,设定联邦基金目标利率,影响货币政策和金融市场。",gdpAdvance:"国内生产总值衡量一个经济体中商品和服务的总产出价值。Advance GDP 为首次估算发布。",gdpMonthly:"国内生产总值衡量一个经济体中商品和服务的总产出价值。月度数据用于跟踪短期增长(如英国GDP月率)。",unemploymentRate:"失业率衡量劳动力中失业人口所占比例。",ahe:"平均时薪衡量工人(不包括农场工人)工资的月度变化。",corePce:"核心个人消费支出价格指数衡量剔除食品和能源后的个人消费支出月度变化,是美联储偏好的通胀指标。",retailSales:"零售销售衡量零售层面销售总额的月度变化。",ismManufacturingPmi:"ISM制造业PMI通过调查数据衡量美国制造业健康状况;高于50表示扩张。",ismServicesPmi:"ISM服务业PMI通过调查数据衡量美国服务业健康状况;高于50表示扩张。",gdpPrelim:"预估GDP为季度GDP增长的第二次估算,衡量经济总产出。",adpNfp:"ADP非农就业变化衡量ADP/穆迪调查的私营部门就业变化,是非农就业的领先指标。",eci:"就业成本指数衡量包括工资和福利在内的劳动力成本季度变化,是美联储重点关注的通胀指标。",flashManufacturingPmi:"制造业PMI初值是基于调查数据的制造业活动初步估算;高于50表示扩张。",flashServicesPmi:"服务业PMI初值是基于调查数据的服务业活动初步估算;高于50表示扩张。",claimantCount:"英国申领人数变化衡量领取失业相关福利人数的月度变化,是英国劳动力市场的重要指标。",boeRate:"英国央行官方利率是货币政策委员会设定的利率,用于引导英国货币政策和英镑市场。",ecbMainRefinancingRate:"欧洲央行主要再融资利率是欧央行向银行提供流动性的关键政策利率,用于引导欧元区货币政策和欧元市场。",snbPolicyRate:"瑞士国家银行政策利率是瑞士央行的关键政策利率(基于SARON框架),用于引导瑞郎市场和货币政策。",cadEmploymentChange:"加拿大就业变化衡量加拿大统计局劳动力调查中的就业人数月度变化,是加拿大劳动力市场及加元的重要指标。"},fp={matchPercent:"匹配 {percent}%",matchLabel:"匹配",mismatch:"不匹配",noResultsFound:"未找到结果",result:"结果",filter:"筛选",filterBy:"筛选条件",clearFilter:"清除筛选",selectFilterType:"选择筛选类型",matchPercentLabel:"匹配 %",selectSymbol:"选择交易对",selectMatchPercent:"选择匹配 %",selectDateRange:"选择日期范围",dateLast1Month:"最近1个月",dateLast6Months:"最近6个月",dateLastYear:"最近1年",dateLast3Years:"最近3年",dateAllTime:"全部时间",noDataFound:"暂无数据",runScanToSeePatternResults:"在此运行扫描以查看形态结果",scanAgainToPlay:"重新扫描以播放图表",scan:"扫描",activateSelector:"激活选择器",resetAfterDuration:"重置后:{duration}",markets:"市场",scannerOptions:"扫描选项",saveOptions:"保存选项",searchSymbol:"搜索交易品种",probabilityCalculation:"概率计算",probabilityCalculationTooltip:"定义用于概率计算的未来K线数量。",period:"周期",periodTooltip:"从所选时间段开始搜索。",timeframeTooltip:"定义扫描结果的K线时间周期。",topResultsTooltip:"定义扫描结果的数量。",auto:"自动",settings:"设置",collapseToolbar:"收起工具栏",expandToolbar:"展开工具栏",availableBars:"可用尺寸:10-50, 60, 70, 80, 90, 100",clearReplayFirst:"请先清除回放图表",pleaseLoginFirst:"请先登录",trackPattern:"跟踪形态",selectAll:"全选",searchTimeframe:"搜索时间周期",selectAllTimeframes:"全选时间周期",selectTimeframeAria:"选择时间周期 {label}",selectSymbolAria:"选择交易品种 {symbol}",timeframeTypeMinutes:"分钟",searchFilterSaved:"搜索筛选条件保存成功。",periodAll:"全部",periodLastYear:"近 1 年",periodLast3Years:"近 3 年",periodLast5Years:"近 5 年",periodLast15Years:"近 15 年",topResults:"最佳结果",tabSymbols:"交易品种",tabAdvancedOptions:"高级选项",tabBasic:"基础",tabAdvancedFilter:"高级筛选",priceMovementData:"价格走势数据:",askAssistantExplanation:"向 AI 助手请求解释",selectCandleCount:"选择K线数量",priceChanges:"价格变化",candlesCount:"{count} 根K线",basedOnDirectionPatterns:"基于该形态之后的“{direction}”走势",noAiMovementData:"没有关于 {direction} 方向的 AI 价格走势数据",scannerOptionsDescription:"配置交易品种和扫描参数。",alwaysShow:"始终显示",aiModel:"AI Intelligence 模型",aiTemperature:"AI 温度",aiModelTooltipLight:"基于近 2 年数据训练。",aiModelTooltipPro:"基于全部历史数据训练。",aiTemperatureTooltip:"定义 AI 预测的一致性级别。"},gp={scannedAt:"扫描时间:",trackerActivated:"追踪器已激活",match:"匹配:{percent}%",result:"结果",windowSize:"窗口大小:{size}",patternSelectorHistory:"形态选择器历史记录",noFilter:"无筛选",favorite:"收藏",windowSizeFilter:"窗口大小",windowSizePlaceholder:"窗口大小 (10-50)",submit:"提交"},yp={trackYourCustomPatterns:"追踪您的自定义形态",selectedSymbol:"所选品种",selectedSymbols:"所选品种",timezone:"时区",selectedTimeframes:"所选时间周期",moreItems:"还有{count}项",selectedBars:"所选K线",barsCount:"{count} 根K线",timeFrame:"时间周期",patternType:"形态类型",created:"创建时间",editPattern:"编辑形态",createNewTracker:"创建新的追踪器",firstYouHaveToScan:"您需要先进行扫描",goToScan:"前往扫描",addToPatternTracker:"添加到形态追踪器",goToPatternTracker:"前往形态追踪器",addToPatternTrackerDescription:"当该形态再次出现时,您将收到实时更新。请输入一个名称以帮助您识别此提醒。",patternName:"形态名称",patternNamePlaceholder:"输入该形态的名称",patternNameMinChars:"至少需要 5 个字符。",patternNameMaxChars:"已达 20 个字符上限。",patternNameErrorTitle:"形态名称错误",patternNameErrorDescription:"请输入形态信号名称",customPatternSignalTooltip:"当该形态在 MARKET 上形成时,您将收到“自定义形态信号”的通知",noPatternDataFound:"未找到形态数据",limitReached:"已达到限制",limitReachedTrackerDescription:"您已达到可创建的形态追踪器最大数量。",trackerUpgradeToastDescription:"您已达到当前方案允许的最大信号数量。请升级方案以获得更多权限。",patternConfigUpdated:"形态配置已更新",patternConfigUpdatedDesc:"形态配置 “{name}” 已更新",patternConfigError:"形态配置错误",patternConfigErrorDesc:"更新形态配置失败",patternSaved:"形态已保存",patternSavedDesc:"形态名称 “{name}” 已保存",patternSignalError:"形态信号错误",patternSignalErrorDesc:"保存形态失败",trackerTutorialPlanLimitExpert:"您的方案最多允许追踪 {limit} 个形态。",trackerTutorialPlanNoTracking:"您的方案不包含形态追踪功能。升级方案后即可将形态添加到追踪器。",trackerTutorialPlanTrackingLimit:"您的方案最多允许追踪 {limit} 个形态。升级方案可追踪更多形态。",currentPlan:"当前方案",planFree:"免费",configurePatternTracker:"配置形态追踪器",selectTimeframesAndSymbols:"选择您希望监控该形态的时间周期和交易品种。",selectTimeframes:"选择时间周期",chooseTimeframes:"选择您希望监控该形态的时间周期。",searchTimeframes:"搜索时间周期",timeframeSelected:"已选择 {count} 个时间周期",timeframesSelected:"已选择 {count} 个时间周期",symbolSelected:"已选择 {count} 个交易品种",symbolsSelected:"已选择 {count} 个交易品种",patternSelected:"{count} 个形态",patternsSelected:"已选 {count} 个形态",patternTypes:"形态类型",patternSubscribed:"形态已订阅",patternSubscribedDesc:"形态「{name}」已开始追踪",patternSubscriptionError:"形态订阅失败",subscriptionModalAria:"形态追踪器订阅",noPatternCandles:"未找到形态K线数据",chartSymbolRequired:"图表品种为必填项",userIdRequired:"用户ID为必填项",subscribe:"订阅",subscribing:"订阅中...",tabTimeShort:"时间",signalDialog:{title:"信号设置 - {patternTitle}",successDescription:"信号设置更新成功",selectOneTimeframe:"请至少选择一个时间周期",selectOneSymbol:"请至少选择一个交易品种",selectOneTimeframeAndSymbol:"请至少选择一个时间周期和一个交易品种",selectCurrencyPairs:"选择货币对",chooseCurrencyPairs:"选择您希望监控形态的货币对",searchCurrencyPairs:"搜索货币对"},noMatchesFound:"未找到匹配结果",filterCategoryPattern:"形态",filterCategorySymbol:"交易对",filterCategoryTimeframe:"时间周期",selectCategory:"选择类别",searchCategory:"搜索{category}...",timeframeOptions:{M15:{displayName:"15分钟",description:"15分钟时间周期"},M30:{displayName:"30分钟",description:"30分钟时间周期"},H1:{displayName:"1小时",description:"1小时时间周期"},H2:{displayName:"2小时",description:"2小时时间周期"},H4:{displayName:"4小时",description:"4小时时间周期"},D:{displayName:"1天",description:"日线时间周期"}}},bp={priceActionPattern:"价格行为形态",labels:{flagbear:"Bearish Flag",flagbull:"Bullish Flag",dd_top:"Double Top",dd_bot:"Double Bottom",aad_up:"AAD Up",aad_down:"AAD Down",has_bull:"Head and Shoulders Bullish",has_bear:"Head and Shoulders Bearish",rectangle:"Rectangle"},timeframes:{M1:"1 minute",M5:"5 minutes",M15:"15 minutes",M30:"30 minutes",H1:"1 hour",H2:"2 hours",H4:"4 hours",D1:"Daily"},patterns:{doubleBottom:{desc:'<div><p>当价格两次测试相同水平但未能突破时,会形成此类形态。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>这表明市场在某个方向上的动能正在减弱。</li><li>价格突破该区间后,通常预示着趋势即将反转。</li></ul></div>'},doubleTop:{desc:'<div><p>当价格两次测试相同水平但未能突破时,会形成此类形态。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>这表明市场在某个方向上的动能正在减弱。</li><li>价格突破该区间后,通常预示着趋势即将反转。</li></ul></div>'},bullishFlag:{desc:'<div><p>在强劲上涨或下跌走势后的短暂暂停或盘整阶段。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>价格会在一个与原趋势相反的小幅倾斜通道中波动。</li><li>当价格突破旗形结构后,趋势通常会继续沿原方向发展。</li></ul></div>'},bearishFlag:{desc:'<div><p>在强劲上涨或下跌走势后的短暂暂停或盘整阶段。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>价格会在一个与原趋势相反的小幅倾斜通道中波动。</li><li>当价格突破旗形结构后,趋势通常会继续沿原方向发展。</li></ul></div>'},bullishHeadShoulders:{desc:'<div><p>该形态显示市场力量的转变,并预示可能出现趋势反转。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>它由三个部分组成:一个较大的波动(「头部」)和两个较小的波动(「肩部」)。</li><li>当形态完成后,价格通常会突破并朝与此前趋势相反的方向运行。</li></ul></div>'},bearishHeadShoulders:{desc:'<div><p>该形态显示市场力量的转变,并预示可能出现趋势反转。</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>它由三个部分组成:一个较大的波动(「头部」)和两个较小的波动(「肩部」)。</li><li>当形态完成后,价格通常会突破并朝与此前趋势相反的方向运行。</li></ul></div>'}}},vp={chartPatterns:"图表形态是什么?",flagPattern:"如何有效交易旗形形态?",rectanglePattern:"矩形形态需要关注哪些关键特征?"},wp={pip:"什么是点值(pip)?",majorCurrencyPairs:"主要外汇交易货币对有哪些?",lotSize:"什么是手数?",leverage:"什么是杠杆?",margin:"什么是保证金?",bullishFlagTrack:"跟踪所有品种和时间周期的看涨旗形形态"},xp={cpi:"什么是CPI,它如何影响市场?",nfp:"什么是非农(NFP),它如何影响市场?",eurImpactfulNews:"市场中对美元影响最大的新闻是什么?"},Pp="lang",Sp="个人资料",Tp={statistics:{tradersReport:"10位交易者中有7位表示其交易决策的一致性得到了提升。",satisfactionRate:"96%的测试版用户表示满意,并评价:“感觉就像身边多了一个智慧大脑一起交易。”",usersChanged:"超过80%的用户表示,iC Candle 改变了他们分析市场的方式。",lessTimeWatching:"由于形态提醒功能,用户平均减少了40%的看盘时间。",heading:"数以千计的交易者已经改变了他们观察市场的方式。"},feedback:{marketHistory:`市场历史引导我的交易:利用历史市场反应进行交易已经成为我全新的交易方式。我获得的价值和我支付的订阅费用相比?根本无法相提并论。A. Lee
|
|
17
17
|
加密货币分析师(新加坡)`,tradersChatGPT:`交易员的ChatGPT:我几乎在日常生活中的所有事情上都使用ChatGPT,大家都知道它让事情变得多么简单。而且说实话……我觉得我找到了交易员版本的ChatGPT。M. Ganbaatar
|
|
18
18
|
自营交易员(iTrader)`,backtesting:`感觉像是更高层次的回测:iC Candle的回测功能真的是改变游戏规则的存在。现在一切都变得如此快速、清晰,简直令人惊叹。我已经有点上瘾了。到了这个阶段,很难想象还有活跃交易员会在没有这个工具的情况下进行交易。B. Enkhbayar
|
|
@@ -14362,7 +14362,7 @@ declare function withPlayChart<A extends unknown[]>(factory: (...args: A) => IBa
|
|
|
14362
14362
|
type GeneratedCandlesTheme = "light" | "dark";
|
|
14363
14363
|
declare const getCustomIndicators: (theme?: GeneratedCandlesTheme) => Promise<readonly CustomIndicator[]>;
|
|
14364
14364
|
|
|
14365
|
-
declare const WIDGET_RESULT_URL = "
|
|
14365
|
+
declare const WIDGET_RESULT_URL = "https://embed-iccandle-app.iccandle.ai";
|
|
14366
14366
|
|
|
14367
14367
|
export { WIDGET_RESULT_URL, WidgetIccandle, getCustomIndicators, handleResultIframeLoad, withPlayChart };
|
|
14368
14368
|
export type { GeneratedCandlesTheme, WidgetIccandleProps, WidgetLanguage };
|
package/dist/widget-iccandle.js
CHANGED
|
@@ -4630,7 +4630,7 @@ const {
|
|
|
4630
4630
|
formToJSON: cP,
|
|
4631
4631
|
getAdapter: uP,
|
|
4632
4632
|
mergeConfig: dP
|
|
4633
|
-
} = Be, so = "An unknown error occurred", Li = "
|
|
4633
|
+
} = Be, so = "An unknown error occurred", Li = "https://embed-iccandle-app.iccandle.ai", Gn = "tv:clicked-news-event", pi = "tv:selected-news-events", Wt = 100, jh = 100, qs = (e) => e === "1" ? 120 : e === "5" ? 480 : e === "1D" ? 20 * 3600 : parseInt(e, 10) * 60, xt = (e) => e === "1" ? 60 : e === "5" ? 300 : e === "1D" ? 1440 * 3600 : parseInt(e, 10) * 60, Uh = [
|
|
4634
4634
|
"en",
|
|
4635
4635
|
"zh",
|
|
4636
4636
|
"vi",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iccandle/reactjs-widget",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"description": "React scanner overlay for TradingView Charting Library — ICCandle pattern search, remote theming, and plugin iframe integration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "ICCandle",
|