@tony01/astroneum 0.4.1-beta.2
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/CHANGELOG.md +237 -0
- package/LICENSE +21 -0
- package/README.md +198 -0
- package/dist/Indicator-BBI3L_lx.d.ts +1181 -0
- package/dist/ar-SA-AEPUSRMF.js +2 -0
- package/dist/astroneum.css +1 -0
- package/dist/chunk-2SN3RH42.js +2 -0
- package/dist/chunk-2YYGUSVX.js +3 -0
- package/dist/chunk-3GJSZFLM.js +2 -0
- package/dist/chunk-4YOLQ5DC.js +2 -0
- package/dist/chunk-I4YQBP2M.js +3 -0
- package/dist/chunk-OOMZRONH.js +35 -0
- package/dist/chunk-PV2GAINM.js +2 -0
- package/dist/chunk-SDXH2WAI.js +3 -0
- package/dist/chunk-YFPXTHZX.js +2 -0
- package/dist/chunk-YW3STIPY.js +653 -0
- package/dist/de-DE-4PR3NRQ7.js +2 -0
- package/dist/entries/alerts.d.ts +93 -0
- package/dist/entries/alerts.js +2 -0
- package/dist/entries/datafeeds/crypto.d.ts +65 -0
- package/dist/entries/datafeeds/crypto.js +2 -0
- package/dist/entries/datafeeds/polygon.d.ts +113 -0
- package/dist/entries/datafeeds/polygon.js +2 -0
- package/dist/entries/multichart.d.ts +96 -0
- package/dist/entries/multichart.js +2 -0
- package/dist/entries/portfolio.d.ts +55 -0
- package/dist/entries/portfolio.js +2 -0
- package/dist/entries/replay.d.ts +141 -0
- package/dist/entries/replay.js +2 -0
- package/dist/entries/script.d.ts +68 -0
- package/dist/entries/script.js +2 -0
- package/dist/entries/watchlist.d.ts +43 -0
- package/dist/entries/watchlist.js +2 -0
- package/dist/es-ES-HNDVPSLW.js +2 -0
- package/dist/fr-FR-Y7XWRGF2.js +2 -0
- package/dist/hi-IN-KEGIKIMV.js +2 -0
- package/dist/id-ID-QXDIUQUZ.js +2 -0
- package/dist/index.d.ts +1434 -0
- package/dist/index.js +2 -0
- package/dist/it-IT-UDTDFSRB.js +2 -0
- package/dist/ja-JP-NIODTBW3.js +2 -0
- package/dist/ko-KR-DQHPXKBA.js +2 -0
- package/dist/nl-NL-BB3ZHCXS.js +2 -0
- package/dist/pl-PL-I5MZDLFD.js +2 -0
- package/dist/pt-BR-MAMRTOYR.js +2 -0
- package/dist/ru-RU-F43D6B7G.js +2 -0
- package/dist/th-TH-KTFIUAD6.js +2 -0
- package/dist/tr-TR-WFTKJ22Y.js +2 -0
- package/dist/vi-VN-CD3WI2FQ.js +2 -0
- package/dist/zh-CN-Y2C6RSOI.js +3 -0
- package/docs/STRUCTURE.md +231 -0
- package/docs/TODO-DESIGN.md +261 -0
- package/docs/TODO.md +222 -0
- package/docs/api.md +528 -0
- package/docs/datafeed-guide.md +311 -0
- package/docs/design-astroneum.md +479 -0
- package/docs/plugin-development.md +565 -0
- package/docs/tv-functions-skill.md +706 -0
- package/package.json +147 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var i="\u0645\u0624\u0634\u0631",n="\u0627\u0644\u0645\u0624\u0634\u0631 \u0627\u0644\u0631\u0626\u064A\u0633\u064A",r="\u0627\u0644\u0645\u0624\u0634\u0631 \u0627\u0644\u0641\u0631\u0639\u064A",_="\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",o="\u0627\u0644\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0632\u0645\u0646\u064A\u0629",l="\u0644\u0642\u0637\u0629 \u0634\u0627\u0634\u0629",c="\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",s="\u062E\u0631\u0648\u062C",t="\u062D\u0641\u0638",d="\u062A\u0623\u0643\u064A\u062F",h="\u0625\u0644\u063A\u0627\u0621",m="MA(\u0627\u0644\u0645\u062A\u0648\u0633\u0637 \u0627\u0644\u0645\u062A\u062D\u0631\u0643)",C="EMA(\u0627\u0644\u0645\u062A\u0648\u0633\u0637 \u0627\u0644\u0645\u062A\u062D\u0631\u0643 \u0627\u0644\u0623\u0633\u064A)",g="SMA",p="BOLL(\u0646\u0637\u0627\u0642\u0627\u062A \u0628\u0648\u0644\u064A\u0646\u062C\u0631)",b="BBI(\u0645\u0624\u0634\u0631 \u0627\u0644\u062B\u064A\u0631\u0627\u0646 \u0648\u0627\u0644\u062F\u0628\u0628\u0629)",T="SAR(\u0646\u0642\u0637\u0629 \u0627\u0644\u062A\u0648\u0642\u0641 \u0648\u0627\u0644\u0639\u0643\u0633)",U="VOL(\u0627\u0644\u062D\u062C\u0645)",v="MACD(\u062A\u0642\u0627\u0631\u0628 \u0648\u062A\u0628\u0627\u0639\u062F \u0627\u0644\u0645\u062A\u0648\u0633\u0637 \u0627\u0644\u0645\u062A\u062D\u0631\u0643)",f="KDJ",w="RSI(\u0645\u0624\u0634\u0631 \u0627\u0644\u0642\u0648\u0629 \u0627\u0644\u0646\u0633\u0628\u064A\u0629)",u="BIAS(\u0645\u0639\u062F\u0644 \u0627\u0644\u0627\u0646\u062D\u0631\u0627\u0641)",y="BRAR(\u0645\u0639\u0646\u0648\u064A\u0627\u062A \u0627\u0644\u062B\u064A\u0631\u0627\u0646 \u0648\u0627\u0644\u062F\u0628\u0628\u0629)",k="CCI(\u0645\u0624\u0634\u0631 \u0642\u0646\u0627\u0629 \u0627\u0644\u0633\u0644\u0639)",A="DMI(\u0645\u0624\u0634\u0631 \u0627\u0644\u062D\u0631\u0643\u0629 \u0627\u0644\u0627\u062A\u062C\u0627\u0647\u064A\u0629)",R="CR(\u0645\u0624\u0634\u0631 \u0627\u0644\u0637\u0627\u0642\u0629)",M="PSY(\u0627\u0644\u062E\u0637 \u0627\u0644\u0646\u0641\u0633\u064A)",B="DMA(\u0641\u0631\u0642 \u0627\u0644\u0645\u062A\u0648\u0633\u0637 \u0627\u0644\u0645\u062A\u062D\u0631\u0643)",x="TRIX(\u0627\u0644\u0645\u062A\u0648\u0633\u0637 \u0627\u0644\u0645\u062A\u062D\u0631\u0643 \u0627\u0644\u062B\u0644\u0627\u062B\u064A \u0627\u0644\u0645\u0645\u0647\u062F)",D="OBV(\u0627\u0644\u062D\u062C\u0645 \u0627\u0644\u0645\u062A\u0648\u0627\u0632\u0646)",I="VR(\u0646\u0633\u0628\u0629 \u0627\u0644\u062D\u062C\u0645/\u0627\u0644\u062A\u0630\u0628\u0630\u0628)",O="WR(\u0648\u064A\u0644\u064A\u0627\u0645\u0632 %R)",S="MTM(\u0645\u0624\u0634\u0631 \u0627\u0644\u0632\u062E\u0645)",V="EMV(\u0633\u0647\u0648\u0644\u0629 \u0627\u0644\u062D\u0631\u0643\u0629)",z="ROC(\u0645\u0639\u062F\u0644 \u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0633\u0639\u0631)",L="PVT(\u0627\u062A\u062C\u0627\u0647 \u0627\u0644\u0633\u0639\u0631 \u0648\u0627\u0644\u062D\u062C\u0645)",j="AO(\u0645\u0630\u0628\u0630\u0628 \u0631\u0627\u0626\u0639)",E="UTC",P="(UTC-10) \u0647\u0648\u0646\u0648\u0644\u0648\u0644\u0648",X="(UTC-8) \u062C\u0648\u0646\u0648",H="(UTC-7) \u0644\u0648\u0633 \u0623\u0646\u062C\u0644\u0648\u0633",J="(UTC-5) \u0634\u064A\u0643\u0627\u063A\u0648",K="(UTC-4) \u062A\u0648\u0631\u0646\u062A\u0648",W="(UTC-3) \u0633\u0627\u0648 \u0628\u0627\u0648\u0644\u0648",Y="(UTC+1) \u0644\u0646\u062F\u0646",q="(UTC+2) \u0628\u0631\u0644\u064A\u0646",F="(UTC+3) \u0627\u0644\u0628\u062D\u0631\u064A\u0646",G="(UTC+4) \u062F\u0628\u064A",N="(UTC+5) \u0639\u0634\u0642 \u0622\u0628\u0627\u062F",Q="(UTC+6) \u0623\u0644\u0645\u0627\u062A\u064A",Z="(UTC+7) \u0628\u0627\u0646\u0643\u0648\u0643",$="(UTC+8) \u0634\u0646\u063A\u0647\u0627\u064A",aa="(UTC+9) \u0637\u0648\u0643\u064A\u0648",ea="(UTC+10) \u0633\u064A\u062F\u0646\u064A",ia="(UTC+12) \u0646\u0648\u0631\u0641\u0648\u0644\u0643",na="\u062E\u0637 \u0623\u0641\u0642\u064A",ra="\u0634\u0639\u0627\u0639 \u0623\u0641\u0642\u064A",_a="\u0645\u0642\u0637\u0639 \u0623\u0641\u0642\u064A",oa="\u062E\u0637 \u0639\u0645\u0648\u062F\u064A",la="\u0634\u0639\u0627\u0639 \u0639\u0645\u0648\u062F\u064A",ca="\u0645\u0642\u0637\u0639 \u0639\u0645\u0648\u062F\u064A",sa="\u062E\u0637 \u0627\u0644\u0627\u062A\u062C\u0627\u0647",ta="\u0634\u0639\u0627\u0639",da="\u0645\u0642\u0637\u0639",ha="\u0633\u0647\u0645",ma="\u062E\u0637 \u0627\u0644\u0633\u0639\u0631",Ca="\u0642\u0646\u0627\u0629 \u0627\u0644\u0633\u0639\u0631",ga="\u062E\u0637 \u0645\u0648\u0627\u0632\u064D",pa="\u062E\u0637 \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",ba="\u0645\u0642\u0637\u0639 \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",Ta="\u062F\u0627\u0626\u0631\u0629 \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",Ua="\u062D\u0644\u0632\u0648\u0646 \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",va="\u0645\u0631\u0648\u062D\u0629 \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",fa="\u0627\u0645\u062A\u062F\u0627\u062F \u0641\u064A\u0628\u0648\u0646\u0627\u062A\u0634\u064A",wa="\u0635\u0646\u062F\u0648\u0642 \u063A\u0627\u0646",ua="\u0645\u0631\u0648\u062D\u0629 \u063A\u0627\u0646",ya="\u0634\u0648\u0643\u0629 \u0623\u0646\u062F\u0631\u0648\u0632",ka="\u0645\u0633\u062A\u0637\u064A\u0644",Aa="\u0645\u062A\u0648\u0627\u0632\u064A \u0623\u0636\u0644\u0627\u0639",Ra="\u062F\u0627\u0626\u0631\u0629",Ma="\u0645\u062B\u0644\u062B",Ba="\u062B\u0644\u0627\u062B \u0645\u0648\u062C\u0627\u062A",xa="\u062E\u0645\u0633 \u0645\u0648\u062C\u0627\u062A",Da="\u062B\u0645\u0627\u0646\u064A \u0645\u0648\u062C\u0627\u062A",Ia="\u0645\u0648\u062C\u0627\u062A \u0627\u062E\u062A\u064A\u0627\u0631\u064A\u0629",Oa="\u0646\u0645\u0637 ABCD",Sa="\u0646\u0645\u0637 XABCD",Va="\u0645\u063A\u0646\u0627\u0637\u064A\u0633 \u0636\u0639\u064A\u0641",za="\u0645\u063A\u0646\u0627\u0637\u064A\u0633 \u0642\u0648\u064A",La="\u0627\u0644\u0628\u062D\u062B \u0639\u0646 \u0631\u0645\u0632",ja="\u0631\u0645\u0632 \u0627\u0644\u0648\u0631\u0642\u0629 \u0627\u0644\u0645\u0627\u0644\u064A\u0629",Ea="\u0627\u0644\u0645\u0639\u0627\u0645\u0644 1",Pa="\u0627\u0644\u0645\u0639\u0627\u0645\u0644 2",Xa="\u0627\u0644\u0645\u0639\u0627\u0645\u0644 3",Ha="\u0627\u0644\u0645\u0639\u0627\u0645\u0644 4",Ja="\u0627\u0644\u0645\u0639\u0627\u0645\u0644 5",Ka="\u0627\u0644\u062E\u0637 1",Wa="\u0627\u0644\u062E\u0637 2",Ya="\u0627\u0644\u062E\u0637 3",qa="\u0627\u0644\u062E\u0637 4",Fa="\u0627\u0644\u062E\u0637 5",Ga="\u0627\u0644\u0641\u062A\u0631\u0629",Na="\u0627\u0644\u0627\u0646\u062D\u0631\u0627\u0641 \u0627\u0644\u0645\u0639\u064A\u0627\u0631\u064A",Qa="\u0646\u0648\u0639 \u0627\u0644\u0634\u0645\u0639\u0629",Za="\u0634\u0645\u0639\u0629 \u0645\u0635\u0645\u062A\u0629",$a="\u062D\u062F\u0648\u062F \u0627\u0644\u0634\u0645\u0639\u0629",ae="\u062D\u062F\u0648\u062F \u0627\u0644\u0634\u0645\u0639\u0629 \u0627\u0644\u0635\u0627\u0639\u062F\u0629",ee="\u062D\u062F\u0648\u062F \u0627\u0644\u0634\u0645\u0639\u0629 \u0627\u0644\u0647\u0627\u0628\u0637\u0629",ie="OHLC",ne="\u0645\u0646\u0637\u0642\u0629",re="\u0639\u0631\u0636 \u0622\u062E\u0631 \u0633\u0639\u0631",_e="\u0639\u0631\u0636 \u0623\u0639\u0644\u0649 \u0633\u0639\u0631",oe="\u0639\u0631\u0636 \u0623\u062F\u0646\u0649 \u0633\u0639\u0631",le="\u0639\u0631\u0636 \u0622\u062E\u0631 \u0642\u064A\u0645\u0629 \u0644\u0644\u0645\u0624\u0634\u0631",ce="\u0646\u0648\u0639 \u0645\u062D\u0648\u0631 \u0627\u0644\u0633\u0639\u0631",se="\u0639\u0627\u062F\u064A",te="\u0646\u0633\u0628\u0629 \u0645\u0626\u0648\u064A\u0629",de="\u0644\u0648\u063A\u0627\u0631\u064A\u062A\u0645\u064A",he="\u0639\u0643\u0633 \u0627\u0644\u0625\u062D\u062F\u0627\u062B\u064A\u0627\u062A",me="\u0639\u0631\u0636 \u0627\u0644\u0634\u0628\u0643\u0629",Ce="\u0627\u0633\u062A\u0639\u0627\u062F\u0629 \u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A\u0629",ge={indicator:i,main_indicator:n,sub_indicator:r,setting:_,timezone:o,screenshot:l,full_screen:c,exit_full_screen:s,save:t,confirm:d,cancel:h,ma:m,ema:C,sma:g,boll:p,bbi:b,sar:T,vol:U,macd:v,kdj:f,rsi:w,bias:u,brar:y,cci:k,dmi:A,cr:R,psy:M,dma:B,trix:x,obv:D,vr:I,wr:O,mtm:S,emv:V,roc:z,pvt:L,ao:j,utc:E,honolulu:P,juneau:X,los_angeles:H,chicago:J,toronto:K,sao_paulo:W,london:Y,berlin:q,bahrain:F,dubai:G,ashkhabad:N,almaty:Q,bangkok:Z,shanghai:$,tokyo:aa,sydney:ea,norfolk:ia,horizontal_straight_line:na,horizontal_ray_line:ra,horizontal_segment:_a,vertical_straight_line:oa,vertical_ray_line:la,vertical_segment:ca,straight_line:sa,ray_line:ta,segment:da,arrow:ha,price_line:ma,price_channel_line:Ca,parallel_straight_line:ga,fibonacci_line:pa,fibonacci_segment:ba,fibonacci_circle:Ta,fibonacci_spiral:Ua,fibonacci_speed_resistance_fan:va,fibonacci_extension:fa,gann_box:wa,gann_fan:ua,pitchfork:ya,rect:ka,parallelogram:Aa,circle:Ra,triangle:Ma,three_waves:Ba,five_waves:xa,eight_waves:Da,any_waves:Ia,abcd:Oa,xabcd:Sa,weak_magnet:Va,strong_magnet:za,symbol_search:La,symbol_code:ja,params_1:Ea,params_2:Pa,params_3:Xa,params_4:Ha,params_5:Ja,line_1:Ka,line_2:Wa,line_3:Ya,line_4:qa,line_5:Fa,period:Ga,standard_deviation:Na,candle_type:Qa,candle_solid:Za,candle_stroke:$a,candle_up_stroke:ae,candle_down_stroke:ee,ohlc:ie,area:ne,last_price_show:re,high_price_show:_e,low_price_show:oe,indicator_last_value_show:le,price_axis_type:ce,normal:se,percentage:te,log:de,reverse_coordinate:he,grid_show:me,restore_default:Ce};export{Oa as abcd,Q as almaty,Ia as any_waves,j as ao,ne as area,ha as arrow,N as ashkhabad,F as bahrain,Z as bangkok,b as bbi,q as berlin,u as bias,p as boll,y as brar,h as cancel,ee as candle_down_stroke,Za as candle_solid,$a as candle_stroke,Qa as candle_type,ae as candle_up_stroke,k as cci,J as chicago,Ra as circle,d as confirm,R as cr,ge as default,B as dma,A as dmi,G as dubai,Da as eight_waves,C as ema,V as emv,s as exit_full_screen,Ta as fibonacci_circle,fa as fibonacci_extension,pa as fibonacci_line,ba as fibonacci_segment,va as fibonacci_speed_resistance_fan,Ua as fibonacci_spiral,xa as five_waves,c as full_screen,wa as gann_box,ua as gann_fan,me as grid_show,_e as high_price_show,P as honolulu,ra as horizontal_ray_line,_a as horizontal_segment,na as horizontal_straight_line,i as indicator,le as indicator_last_value_show,X as juneau,f as kdj,re as last_price_show,Ka as line_1,Wa as line_2,Ya as line_3,qa as line_4,Fa as line_5,de as log,Y as london,H as los_angeles,oe as low_price_show,m as ma,v as macd,n as main_indicator,S as mtm,ia as norfolk,se as normal,D as obv,ie as ohlc,ga as parallel_straight_line,Aa as parallelogram,Ea as params_1,Pa as params_2,Xa as params_3,Ha as params_4,Ja as params_5,te as percentage,Ga as period,ya as pitchfork,ce as price_axis_type,Ca as price_channel_line,ma as price_line,M as psy,L as pvt,ta as ray_line,ka as rect,Ce as restore_default,he as reverse_coordinate,z as roc,w as rsi,W as sao_paulo,T as sar,t as save,l as screenshot,da as segment,_ as setting,$ as shanghai,g as sma,Na as standard_deviation,sa as straight_line,za as strong_magnet,r as sub_indicator,ea as sydney,ja as symbol_code,La as symbol_search,Ba as three_waves,o as timezone,aa as tokyo,K as toronto,Ma as triangle,x as trix,E as utc,la as vertical_ray_line,ca as vertical_segment,oa as vertical_straight_line,U as vol,I as vr,Va as weak_magnet,O as wr,Sa as xabcd};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";@font-face{font-family:icomoon;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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) format("embedded-opentype"),url(data:font/ttf;base64,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) format("truetype"),url(data:font/woff;base64,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) format("woff"),url('data:image/svg+xml,<?xml version="1.0" standalone="no"?>%0D%0A<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >%0D%0A<svg xmlns="http://www.w3.org/2000/svg">%0D%0A<metadata>Generated by IcoMoon</metadata>%0D%0A<defs>%0D%0A<font id="icomoon" horiz-adv-x="1024">%0D%0A<font-face units-per-em="1024" ascent="960" descent="-64" />%0D%0A<missing-glyph horiz-adv-x="1024" />%0D%0A<glyph unicode="&%23x20;" horiz-adv-x="512" d="" />%0D%0A<glyph unicode="&%23xe900;" glyph-name="icon-close" d="M558.096 446.346l283.165 284.537c13.17 13.234 13.17 33.085 0 46.32s-32.927 13.234-46.097 0l-283.164-284.536-283.164 286.742c-13.171 13.234-32.926 13.234-46.097 0s-13.17-33.086 0-46.32l283.164-286.742-285.359-284.537c-13.17-13.232-13.17-33.087 0-46.319 6.585-6.616 15.366-8.823 24.146-8.823s17.561 2.207 24.146 8.823l283.164 284.535 283.164-284.535c6.582-6.616 15.366-8.823 24.144-8.823 8.784 0 17.562 2.207 24.149 8.823 13.17 13.232 13.17 33.087 0 46.319l-285.361 284.537z" />%0D%0A<glyph unicode="&%23xe901;" glyph-name="icon-invisible" d="M216.415 221.087c-89.251 73.086-135.38 165.283-153.076 205.984-8.601 21.333-8.601 44.089 0 65.422 31.535 72.533 153.376 308.622 448.661 308.622 91.686 0 166.764-22.984 227.635-56.812l93.582 93.588c11.11 11.108 29.121 11.108 40.232 0 11.105-11.108 11.105-29.118 0-40.226l-84.873-84.872c101.484-74.904 153.213-176.891 172.083-220.299 8.602-21.333 8.602-44.089 0-65.422-31.534-72.533-154.806-308.623-448.66-308.623-102.782 0-184.55 28.604-248.81 68.961l-73.594-73.597c-11.108-11.105-29.119-11.105-40.227 0-11.108 11.11-11.108 29.121 0 40.226l67.046 67.049zM304.931 229.148c54.793-31.881 123.036-53.811 207.069-53.811 259.447 0 368.39 209.067 395.622 273.067 2.867 7.111 2.867 14.222 0 21.333-16.799 40.359-64.694 135.382-159.835 202.267l-123.757-123.757c19.576-24.326 31.312-55.103 31.312-88.466 0-78.222-64.505-142.222-143.343-142.222-33.225 0-63.905 11.367-88.283 30.375l-118.786-118.786zM386.538 391.208c-11.386 20.366-17.88 43.754-17.88 68.574 0 78.222 64.503 142.222 143.342 142.222 24.616 0 47.836-6.24 68.13-17.204l117.305 117.305c-50.83 25.428-112.123 42.121-185.435 42.121-259.449 0-368.389-209.067-395.624-273.067-2.867-7.111-2.867-14.222 0-21.333 15.639-37.567 58.219-122.499 140.768-188.013l129.394 129.394zM464.514 388.731c13.63-9.016 29.968-14.283 47.486-14.283 47.303 0 86.005 38.4 86.005 85.333 0 17.619-5.455 34.036-14.771 47.67l-118.72-118.721zM536.805 541.476c-7.862 2.366-16.191 3.64-24.805 3.64-47.303 0-86.005-38.4-86.005-85.333 0-8.781 1.355-17.262 3.867-25.25l106.943 106.944z" />%0D%0A<glyph unicode="&%23xe902;" glyph-name="icon-setting" d="M836.625 523.116l82.847-14.499c24.855-4.142 43.497-24.854 47.639-51.78v-72.492c0-26.926-18.642-47.638-43.497-51.78l-82.847-14.498-16.566-37.282 47.633-68.351c14.501-20.713 12.43-47.639-6.212-66.276l-51.78-51.78c-18.637-18.642-45.562-20.713-66.276-6.212l-68.351 47.633-37.282-16.566-14.498-82.847c-6.214-24.855-26.926-43.497-51.78-43.497h-72.492c-26.926 0-47.638 18.642-51.78 43.497l-14.499 82.847-37.282 16.566-68.349-47.633c-20.712-14.501-47.638-12.43-66.278 6.212l-51.78 51.78c-18.641 18.637-20.712 45.562-6.213 66.276l49.709 70.422-16.57 37.282-82.848 14.498c-24.854 6.213-43.495 26.926-43.495 51.78v72.492c0 24.854 18.641 45.566 39.353 49.708l82.848 14.499 16.569 37.282-47.638 68.35c-14.498 20.712-12.427 47.637 6.213 66.278l51.78 51.78c18.641 18.641 45.566 20.712 66.278 6.213l70.42-49.709 37.282 16.57 14.499 82.848c6.213 24.854 26.926 43.495 51.78 43.495h72.492c24.854 0 45.566-18.641 47.638-41.424l14.498-82.848 37.282-16.569 68.352 47.638c20.708 14.498 47.633 12.427 66.276-6.213l51.78-51.78c18.642-18.641 20.713-45.566 6.212-66.278l-47.639-68.349 16.572-37.282zM809.7 378.131l91.136 16.57v53.851l-91.136 16.569c-10.354 2.071-18.642 8.285-22.784 18.641l-28.996 70.42c-4.142 8.285-2.071 20.712 4.142 28.997l51.78 74.563-39.35 39.353-74.564-51.78c-8.283-6.214-18.641-8.285-28.997-4.143l-68.35 28.997c-10.356 4.143-16.569 12.427-18.641 22.783l-16.569 91.133h-55.922l-16.569-91.133c-2.071-10.356-8.285-18.641-18.641-22.783l-70.42-28.997c-8.285-4.142-20.712-2.071-28.997 4.143l-74.563 51.78-39.353-39.353 51.78-74.563c6.214-8.285 8.285-18.641 4.143-28.996l-28.997-68.35c-4.143-10.356-12.427-16.569-22.783-18.641l-91.133-16.569v-55.922l91.133-16.57c10.356-2.071 18.641-8.285 22.783-18.641l28.997-70.42c4.142-8.285 2.071-20.714-4.143-28.997l-51.78-74.564 39.353-39.35 74.563 51.78c8.285 6.212 18.641 8.283 28.996 4.142l68.35-28.996c10.356-4.142 16.569-12.43 18.641-22.784l16.569-91.136h55.922l16.569 91.136c2.071 10.354 8.285 18.642 18.641 22.784l70.421 31.067c8.285 4.142 20.714 2.071 28.997-4.142l74.564-51.78 39.35 39.35-51.78 74.564c-6.212 8.283-8.283 18.641-4.142 28.997l28.996 68.349c4.142 10.356 12.43 16.57 22.784 18.641zM424.458 421.627c0 62.136 51.78 113.915 113.915 113.915s113.916-51.78 113.916-113.915c0-62.136-51.78-113.916-113.916-113.916s-113.915 51.78-113.915 113.916zM486.593 421.627c0-28.997 22.783-51.78 51.78-51.78s51.78 22.783 51.78 51.78c0 28.997-22.783 51.78-51.78 51.78s-51.78-22.783-51.78-51.78z" />%0D%0A<glyph unicode="&%23xe903;" glyph-name="icon-visible" d="M512 106.667c-295.285 0-417.125 236.089-448.661 308.622-8.601 21.333-8.601 44.089 0 65.422 31.535 72.533 153.376 308.622 448.661 308.622 293.854 0 417.126-236.089 448.66-308.622 8.602-21.333 8.602-44.089 0-65.422-31.534-72.533-154.806-308.622-448.66-308.622zM116.376 459.378c-2.867-7.111-2.867-14.222 0-21.333 27.235-65.422 136.175-274.489 395.624-274.489 259.447 0 368.39 209.067 395.622 273.067 2.867 7.111 2.867 14.222 0 21.333-27.233 65.422-136.175 274.489-395.622 274.489-259.449 0-368.389-209.067-395.624-273.067zM512 305.778c-78.838 0-143.342 64-143.342 142.222s64.503 142.222 143.342 142.222c78.838 0 143.343-64 143.343-142.222s-64.505-142.222-143.343-142.222zM512 533.333c-47.303 0-86.005-38.4-86.005-85.333s38.702-85.333 86.005-85.333c47.303 0 86.005 38.4 86.005 85.333s-38.702 85.333-86.005 85.333z" />%0D%0A</font></defs></svg>') format("svg");font-weight:400;font-style:normal;font-display:block}[class^=icon-],[class*=" icon-"]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-icon-close:before{content:"\e900";color:#fff}.icon-icon-invisible:before{content:"\e901";color:#fff}.icon-icon-setting:before{content:"\e902";color:#fff}.icon-icon-visible:before{content:"\e903";color:#fff}.astroneum-button.button{font-family:inherit;font-weight:600;height:32px;min-width:80px;border-radius:5px;font-size:12px;transition:opacity .12s,background-color .12s}.astroneum-button.button.is-primary:hover{opacity:.85}.astroneum-checkbox{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:14px;color:var(--astroneum-text-color);fill:var(--astroneum-text-color);cursor:pointer}.astroneum-checkbox .icon{width:20px;height:20px}.astroneum-checkbox .label{display:inline-block;margin-left:6px}.astroneum-checkbox.checked{color:var(--astroneum-primary-color);fill:var(--astroneum-primary-color)}.astroneum-list{position:relative;list-style:none;margin:0;padding:0;overflow-y:auto;font-size:13px;color:var(--astroneum-text-color);min-height:200px}.astroneum-list::-webkit-scrollbar{width:5px;height:5px}.astroneum-list::-webkit-scrollbar-thumb{border-radius:3px;background-color:var(--astroneum-border-color)}.astroneum-list::-webkit-scrollbar-track{background:transparent}.astroneum-list li{display:flex;flex-direction:row;align-items:center;height:36px;padding:0 16px;box-sizing:border-box;cursor:pointer;transition:background-color .12s}.astroneum-list li:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-modal.modal{position:absolute;width:100%;height:100%;left:0;top:0;z-index:99;overflow:hidden;animation:astroneum-modal-backdrop-in .18s ease forwards}.astroneum-modal .modal-background{position:absolute;background-color:#00000073}.astroneum-modal .modal-card{border-radius:8px;border:solid 1px var(--astroneum-border-color);box-shadow:0 16px 48px #0000008c;max-height:calc(100% - 40px);width:unset;animation:astroneum-modal-card-in .2s cubic-bezier(.22,1,.36,1) forwards}@keyframes astroneum-modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes astroneum-modal-card-in{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.astroneum-select{position:relative;display:flex;flex-direction:row;align-items:center;cursor:pointer;height:30px;width:100px;outline:none;color:var(--astroneum-text-color);font-size:13px}.astroneum-select .selector-container{display:flex;flex-direction:row;align-items:center;height:100%;width:100%;padding:0 8px;justify-content:space-between;border:solid 1px var(--astroneum-border-color);border-radius:4px;box-sizing:border-box;background-color:var(--astroneum-background-color);transition:border-color .15s}.astroneum-select .selector-container:hover{border-color:var(--astroneum-text-second-color)}.astroneum-select .selector-container .arrow{display:inline;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--astroneum-text-second-color);transition:transform .15s}.astroneum-select .drop-down-container{background-color:var(--astroneum-popover-background-color);box-shadow:0 4px 16px #0006;border:solid 1px var(--astroneum-border-color);position:absolute;left:0;width:100%;top:calc(100% + 2px);transition:transform .15s,opacity .15s;transform:scaleY(0);transform-origin:top;opacity:0;z-index:100;border-radius:4px;max-height:200px;overflow-y:auto}.astroneum-select .drop-down-container::-webkit-scrollbar{width:5px;height:5px}.astroneum-select .drop-down-container::-webkit-scrollbar-thumb{border-radius:3px;background-color:var(--astroneum-border-color)}.astroneum-select .drop-down-container::-webkit-scrollbar-track{background:transparent}.astroneum-select .drop-down-container ul{list-style:none;margin:0;padding:4px 0;overflow:hidden}.astroneum-select .drop-down-container ul li{display:flex;flex-direction:row;align-items:center;height:32px;padding:0 10px;font-size:13px;transition:background-color .12s}.astroneum-select .drop-down-container ul li:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.astroneum-select .drop-down-container ul li:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.astroneum-select .drop-down-container ul li:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-select-show .selector-container{border-color:var(--astroneum-primary-color)!important}.astroneum-select-show .selector-container .value{color:var(--astroneum-primary-color)}.astroneum-select-show .selector-container .arrow{transform:rotate(180deg)}.astroneum-select-show .drop-down-container{transform:scaleY(1)!important;opacity:1!important}.astroneum-input{cursor:pointer}.astroneum-input[data-status=focus] .input{border-color:var(--astroneum-primary-color);box-shadow:0 0 0 2px #2962ff33}.astroneum-loading{display:flex;flex-direction:row;align-items:center;justify-content:center;position:absolute;left:0;top:0;width:100%;height:100%;z-index:50;color:var(--astroneum-primary-color)}.astroneum-loading .circle1,.astroneum-loading .circle2,.astroneum-loading .circle3{display:inline-block;width:10px;height:10px;pointer-events:none;border-radius:50%;background-color:currentColor;animation:loading-anim .8s ease-in-out alternate infinite}.astroneum-loading .circle1{animation-delay:.48s}.astroneum-loading .circle2{margin-left:.2em;margin-right:.2em;animation-delay:.32s}.astroneum-loading .circle3{animation-delay:.16s}@keyframes loading-anim{0%{top:0}to{margin-top:-2.2em}}.astroneum-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;left:0;top:0;width:100%;height:100%;z-index:99;fill:var(--astroneum-text-second-color);color:var(--astroneum-text-second-color)}.astroneum-empty .icon{width:50px;height:50px}.astroneum-switch{display:flex;flex-direction:row;position:relative;width:36px;height:18px;border-radius:9px;cursor:pointer}.astroneum-switch .thumb{display:inline-block;position:absolute;top:2px;width:14px;height:14px;border-radius:50%;z-index:10;background-color:#fff;transition:all .2s}.astroneum-switch.turn-off{background-color:var(--astroneum-border-color)}.astroneum-switch.turn-off .thumb{left:2px}.astroneum-switch.turn-on{background-color:var(--astroneum-primary-color)}.astroneum-switch.turn-on .thumb{left:20px}.astroneum-period-bar{display:flex;flex-direction:row;align-items:center;height:36px;width:100%;box-sizing:border-box;border-bottom:solid 1px var(--astroneum-border-color);background-color:var(--astroneum-background-color)}.astroneum-period-bar .menu-container{display:flex;height:100%;flex-direction:row;justify-content:center;align-items:center;width:46px;box-sizing:border-box;border-right:solid 1px var(--astroneum-border-color)}.astroneum-period-bar .menu-container svg{fill:var(--astroneum-text-second-color);width:20px;height:20px;cursor:pointer;transition:fill .15s}.astroneum-period-bar .menu-container svg:hover{fill:var(--astroneum-text-color)}.astroneum-period-bar .menu-container svg.rotate{transform:rotate(180deg);transform-origin:center}.astroneum-period-bar .symbol{display:flex;flex-direction:row;align-items:center;height:100%;font-size:13px;font-weight:700;letter-spacing:.3px;padding:0 10px;box-sizing:border-box;border-right:solid 1px var(--astroneum-border-color);cursor:pointer;color:var(--astroneum-text-color);transition:background-color .15s}.astroneum-period-bar .symbol:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-period-bar .symbol img{width:16px;height:16px;margin-right:6px;border-radius:50%}.astroneum-period-bar .item{transition:background-color .15s,color .15s;box-sizing:border-box;cursor:pointer;fill:var(--astroneum-text-second-color);color:var(--astroneum-text-second-color);font-size:13px}.astroneum-period-bar .item.selected{background-color:transparent!important;color:var(--astroneum-primary-color);fill:var(--astroneum-primary-color);font-weight:600}.astroneum-period-bar .item:hover{color:var(--astroneum-text-color);fill:var(--astroneum-text-color)}.astroneum-period-bar .period{padding:2px 8px;margin:0 1px;border-radius:3px}.astroneum-period-bar .period:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-period-bar .period:first-child{margin-left:4px}.astroneum-period-bar .symbol+.period,.astroneum-period-bar .menu-container+.period{margin-left:8px}.astroneum-period-bar .tools{display:flex;flex-direction:row;align-items:center;justify-content:center;height:100%;padding:0 10px;border-right:solid 1px var(--astroneum-border-color);color:var(--astroneum-text-second-color);fill:var(--astroneum-text-second-color);font-size:12px;gap:4px;transition:color .15s,fill .15s}.astroneum-period-bar .tools:hover{fill:var(--astroneum-text-color);color:var(--astroneum-text-color)}.astroneum-period-bar .tools svg{width:15px;height:15px}.astroneum-period-bar .period+.tools{border-left:solid 1px var(--astroneum-border-color);margin-left:4px}.astroneum-drawing-bar{width:46px;height:100%;box-sizing:border-box;border-right:solid 1px var(--astroneum-border-color);background-color:var(--astroneum-background-color);padding-top:6px}.astroneum-drawing-bar .item{display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;width:100%;margin-top:4px;cursor:pointer;color:var(--astroneum-text-second-color);fill:var(--astroneum-text-second-color);stroke:var(--astroneum-text-second-color)}.astroneum-drawing-bar .item .icon-overlay{width:28px;height:28px;border-radius:3px;transition:background-color .15s,fill .15s,stroke .15s;display:flex;align-items:center;justify-content:center}.astroneum-drawing-bar .item .icon-overlay:hover{background-color:var(--astroneum-hover-background-color);fill:var(--astroneum-text-color);stroke:var(--astroneum-text-color)}.astroneum-drawing-bar .item .icon-overlay.selected{background-color:#2962ff26!important;fill:var(--astroneum-primary-color);stroke:var(--astroneum-primary-color)}.astroneum-drawing-bar .item .icon-arrow{display:flex;flex-direction:row;align-items:center;justify-content:center;position:absolute;top:0;right:2px;height:28px;width:8px;opacity:0;transition:opacity .15s;z-index:10}.astroneum-drawing-bar .item .icon-arrow svg{width:4px;height:4px;transition:transform .15s}.astroneum-drawing-bar .item .icon-arrow svg.rotate{transform:rotate(180deg)}.astroneum-drawing-bar .item .icon-arrow:hover{opacity:1!important}.astroneum-drawing-bar .item .list{position:absolute;top:0;white-space:nowrap;left:calc(100% + 2px);background-color:var(--astroneum-popover-background-color);z-index:99;box-shadow:0 4px 16px #0006;border-radius:4px;border:solid 1px var(--astroneum-border-color);min-height:auto;max-height:320px;overflow-y:auto}.astroneum-drawing-bar .item .list li{padding-left:12px}.astroneum-drawing-bar .item .list li .icon-overlay:hover{background-color:transparent}.astroneum-drawing-bar .item:hover .icon-arrow{opacity:1}.astroneum-drawing-bar .item:hover .icon-overlay{fill:var(--astroneum-text-color);stroke:var(--astroneum-text-color)}.astroneum-drawing-bar .split-line{display:block;width:26px;height:1px;background-color:var(--astroneum-border-color);margin:6px auto}.astroneum-indicator-modal-list{margin-left:-16px;margin-right:-16px;height:400px;position:relative}.astroneum-indicator-modal-list .title{position:sticky;top:0;background-color:var(--astroneum-popover-background-color);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--astroneum-text-second-color);padding:0 16px;font-weight:400}.astroneum-indicator-modal-list .title:hover{background-color:var(--astroneum-popover-background-color)}.astroneum-indicator-modal-list .row:hover .checkbox{fill:var(--astroneum-primary-color);color:var(--astroneum-primary-color)}.astroneum-setting-modal-content{display:grid;grid-template-columns:1fr auto;row-gap:14px;column-gap:32px;align-items:center;font-size:13px;padding:4px 0}.astroneum-indicator-setting-modal-content{margin-top:0;font-size:13px}.astroneum-indicator-setting-modal-header{display:grid;grid-template-columns:1fr 48px 52px;column-gap:10px;align-items:center;padding:0 4px 8px;font-size:11px;opacity:.6}.astroneum-indicator-setting-modal-header span:first-child{padding-left:2px}.astroneum-indicator-setting-modal-header span:nth-child(2),.astroneum-indicator-setting-modal-header span:nth-child(3){text-align:center}.astroneum-indicator-setting-modal-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.astroneum-indicator-setting-modal-label{flex:1;white-space:nowrap}.astroneum-indicator-setting-modal-color{width:28px;height:28px;padding:2px;border:1px solid var(--astroneum-border-color, #e0e0e0);border-radius:4px;background:none;cursor:pointer;flex-shrink:0}.astroneum-indicator-setting-modal-color::-webkit-color-swatch-wrapper{padding:0}.astroneum-indicator-setting-modal-color::-webkit-color-swatch{border:none;border-radius:2px}.astroneum-symbol-search-modal-input{margin:0 0 10px;height:36px}.astroneum-symbol-search-modal-input svg{width:16px;height:16px;fill:var(--astroneum-text-second-color)}.astroneum-symbol-search-modal-input .value{font-size:13px}.astroneum-symbol-search-modal-list{height:360px;margin-left:-16px;margin-right:-16px}.astroneum-symbol-search-modal-list li{height:34px;justify-content:space-between;font-size:13px}.astroneum-symbol-search-modal-list li div{display:flex;flex-direction:row;align-items:center}.astroneum-symbol-search-modal-list li div img{width:14px;height:14px;margin-right:6px;border-radius:50%}.astroneum-symbol-search-modal-list li div span{width:280px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.astroneum-screenshot-modal-img{display:block;width:100%;border-radius:4px;border:1px solid var(--astroneum-border-color)}.astroneum-alert-modal{padding:0 0 4px}.astroneum-alert-modal .astroneum-alert-modal-tabs{display:inline-flex;gap:2px;margin-bottom:16px;padding:2px;background:var(--astroneum-hover-background-color);border-radius:6px}.astroneum-alert-modal .astroneum-alert-modal-tabs .tab-btn{background:transparent;border:none;cursor:pointer;font-size:12px;color:var(--astroneum-text-second-color);padding:4px 14px;border-radius:4px;transition:color .15s,background-color .15s;font-weight:500}.astroneum-alert-modal .astroneum-alert-modal-tabs .tab-btn.active{color:var(--astroneum-text-color);font-weight:600;background-color:var(--astroneum-surface-elevated-color, #2a2e39)}.astroneum-alert-modal .astroneum-alert-modal-tabs .tab-btn:hover:not(.active){color:var(--astroneum-text-color)}.astroneum-alert-modal .astroneum-alert-modal-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.astroneum-alert-modal .astroneum-alert-modal-form .alert-field-label{font-size:12px;color:var(--astroneum-text-second-color);margin-bottom:2px}.astroneum-alert-modal .astroneum-alert-modal-form .alert-condition-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.astroneum-alert-modal .astroneum-alert-modal-form .alert-condition-row .alert-cond-btn{background:var(--astroneum-hover-background-color);border:1px solid var(--astroneum-border-color);border-radius:4px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--astroneum-text-color);transition:background-color .15s,border-color .15s}.astroneum-alert-modal .astroneum-alert-modal-form .alert-condition-row .alert-cond-btn.active{background-color:var(--astroneum-primary-color);border-color:var(--astroneum-primary-color);color:#fff}.astroneum-alert-modal .astroneum-alert-modal-form .alert-condition-row .alert-cond-btn:hover:not(.active){border-color:var(--astroneum-primary-color)}.astroneum-alert-modal .astroneum-alert-modal-form .alert-price-input,.astroneum-alert-modal .astroneum-alert-modal-form .alert-note-input,.astroneum-alert-modal .astroneum-alert-modal-form .alert-email-input{width:100%}.astroneum-alert-modal .astroneum-alert-modal-form .alert-dropdown{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;border:1px solid var(--astroneum-border-color);border-radius:4px;background:var(--astroneum-hover-background-color);color:var(--astroneum-text-color);font-size:12px;cursor:pointer;transition:border-color .15s}.astroneum-alert-modal .astroneum-alert-modal-form .alert-dropdown:hover{border-color:var(--astroneum-primary-color)}.astroneum-alert-modal .astroneum-alert-modal-form .alert-dropdown .caret{color:var(--astroneum-text-second-color)}.astroneum-alert-modal .astroneum-alert-modal-form .alert-dropdown-block{width:100%}.astroneum-alert-modal .astroneum-alert-modal-form .alert-message-textarea{width:100%;padding:6px 10px;border:1px solid var(--astroneum-border-color);border-radius:4px;background:var(--astroneum-hover-background-color);color:var(--astroneum-text-color);font-size:12px;font-family:inherit;outline:none;resize:vertical;min-height:54px;line-height:1.4;transition:border-color .15s}.astroneum-alert-modal .astroneum-alert-modal-form .alert-message-textarea:focus{border-color:var(--astroneum-primary-color)}.astroneum-alert-modal .astroneum-alert-modal-form .alert-message-textarea::placeholder{color:var(--astroneum-text-second-color)}.astroneum-alert-modal .astroneum-alert-modal-form .alert-message-hint{font-size:11px;color:var(--astroneum-text-second-color);margin-top:-2px;font-feature-settings:"tnum" 1}.astroneum-alert-modal .astroneum-alert-modal-form .alert-submit-btn{align-self:flex-end;margin-top:4px}.astroneum-alert-modal .astroneum-alert-modal-form .alert-submit-btn:disabled{opacity:.5;cursor:not-allowed}.astroneum-alert-modal .alert-notifications{display:flex;flex-direction:column;gap:12px}.astroneum-alert-modal .alert-notifications .alert-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--astroneum-text-second-color);font-size:12px;padding:0;border-radius:3px}.astroneum-alert-modal .alert-notifications .alert-back-btn:hover{color:var(--astroneum-text-color)}.astroneum-alert-modal .alert-notifications .alert-notif-item{display:flex;flex-direction:column;gap:2px}.astroneum-alert-modal .alert-notifications .alert-notif-label{font-size:12px;color:var(--astroneum-text-color)}.astroneum-alert-modal .alert-notifications .alert-notif-desc{font-size:11px;color:var(--astroneum-text-second-color);margin-left:22px}.astroneum-alert-modal .alert-notifications .alert-notif-expander{margin:6px 0 0 22px}.astroneum-alert-modal .alert-notifications .alert-sound-selects{display:flex;gap:6px}.astroneum-alert-modal .alert-notifications .alert-sound-selects .alert-dropdown{width:auto}.astroneum-alert-modal .alert-notifications .alert-webhook-url{width:100%}.astroneum-alert-modal .alert-notifications .alert-webhook-url.alert-webhook-url-invalid{border-color:#ef5350}.astroneum-alert-modal .alert-notifications .alert-webhook-url.alert-webhook-url-valid{border-color:var(--astroneum-border-color)}.astroneum-alert-modal .alert-notifications .alert-webhook-validation{font-size:11px;margin-top:4px}.astroneum-alert-modal .alert-notifications .alert-webhook-validation.alert-webhook-validation-valid{color:#26a69a}.astroneum-alert-modal .alert-notifications .alert-webhook-validation.alert-webhook-validation-invalid{color:#ef5350}.astroneum-alert-modal .alert-notifications .alert-separator{height:1px;background:var(--astroneum-border-color);margin:4px 0}.astroneum-alert-modal .alert-notifications .alert-apply-btn{align-self:flex-end;margin-top:4px}.astroneum-alert-modal .alert-section-label{font-size:12px;font-weight:600;color:var(--astroneum-text-second-color);margin-bottom:8px;text-transform:none;letter-spacing:normal}.astroneum-alert-modal .astroneum-alert-modal-list{max-height:220px;overflow-y:auto}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:13px;border-radius:4px;cursor:default}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row.alert-list-row--history{opacity:.8}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-cond-badge{font-size:11px;padding:2px 6px;border-radius:3px;font-weight:600;white-space:nowrap;flex-shrink:0}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-cond-badge.alert-cond-above{background:#26a69a26;color:#26a69a}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-cond-badge.alert-cond-below{background:#ef535026;color:#ef5350}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-cond-badge.alert-cond-crosses_above{background:#2962ff26;color:#2962ff}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-cond-badge.alert-cond-crosses_below{background:#ff980026;color:#ff9800}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-status-badge{font-size:11px;padding:2px 6px;border-radius:3px;font-weight:600;white-space:nowrap;flex-shrink:0;background:var(--astroneum-hover-background-color);color:var(--astroneum-text-second-color)}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-webhook-badge{font-size:11px;padding:2px 6px;border-radius:3px;font-weight:600;white-space:nowrap;flex-shrink:0;font-feature-settings:"tnum" 1}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-price{font-family:Trebuchet MS,monospace;font-size:13px;font-weight:600;color:var(--astroneum-text-color);flex-shrink:0}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-note{color:var(--astroneum-text-second-color);font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-time{font-size:11px;color:var(--astroneum-text-second-color);flex-shrink:0;margin-left:auto}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-delete-btn,.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-reactivate-btn{background:none;border:none;cursor:pointer;color:var(--astroneum-text-second-color);font-size:16px;line-height:1;padding:0 4px;flex-shrink:0;border-radius:3px}.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-delete-btn:hover,.astroneum-alert-modal .astroneum-alert-modal-list .alert-list-row .alert-reactivate-btn:hover{color:var(--astroneum-text-color);background-color:var(--astroneum-hover-background-color)}.astroneum-alert-modal .alert-log{display:flex;flex-direction:column}.astroneum-alert-modal .alert-log-subheader{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;min-height:24px}.astroneum-alert-modal .alert-log-subheader .alert-log-subheader-left,.astroneum-alert-modal .alert-log-subheader .alert-log-subheader-right{display:flex;align-items:center;gap:4px}.astroneum-alert-modal .alert-log-subheader .alert-log-clear-btn,.astroneum-alert-modal .alert-log-subheader .alert-log-actions-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--astroneum-text-second-color);padding:4px;border-radius:4px;transition:color .15s,background-color .15s}.astroneum-alert-modal .alert-log-subheader .alert-log-clear-btn:hover,.astroneum-alert-modal .alert-log-subheader .alert-log-actions-btn:hover{color:var(--astroneum-text-color);background-color:var(--astroneum-hover-background-color)}.astroneum-alert-modal .alert-log-list{max-height:340px;overflow-y:auto}.astroneum-alert-modal .alert-log-date-group .alert-log-date-label{font-size:11px;font-weight:600;color:var(--astroneum-text-second-color);padding:8px 0 4px;position:sticky;top:0;background:var(--astroneum-bg-color, #131722);z-index:1}.astroneum-alert-modal .alert-log-item{position:relative;padding:8px 10px;border-bottom:1px solid var(--astroneum-border-color);cursor:default;transition:background-color .12s}.astroneum-alert-modal .alert-log-item:last-child{border-bottom:none}.astroneum-alert-modal .alert-log-item:hover{background-color:var(--astroneum-hover-background-color)}.astroneum-alert-modal .alert-log-item:hover .alert-log-item-overlay{opacity:1}.astroneum-alert-modal .alert-log-item .alert-log-item-name{font-size:12px;font-weight:600;color:var(--astroneum-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.astroneum-alert-modal .alert-log-item .alert-log-item-message{font-size:11px;font-family:ui-monospace,SF Mono,Menlo,Cascadia Code,monospace;color:var(--astroneum-text-second-color);white-space:pre-wrap;word-break:break-all;line-height:1.35;max-height:60px;overflow:hidden;margin-bottom:4px}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs{display:flex;align-items:center;gap:6px;margin-bottom:2px}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-symbol-letter,.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-logo{width:16px;height:16px;border-radius:50%;flex-shrink:0}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-symbol-letter{display:flex;align-items:center;justify-content:center;background:var(--astroneum-hover-background-color);color:var(--astroneum-text-second-color);font-size:10px;font-weight:600}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-logo{object-fit:contain}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-ticker{font-size:11px;color:var(--astroneum-text-second-color);font-weight:500}.astroneum-alert-modal .alert-log-item .alert-log-item-attrs .alert-log-item-time{font-size:11px;color:var(--astroneum-text-second-color);font-feature-settings:"tnum" 1}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status{display:flex;align-items:flex-start;gap:6px;margin-top:4px}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status .alert-log-webhook-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status .alert-log-webhook-text{font-size:11px;line-height:1.35;color:var(--astroneum-text-second-color)}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status .alert-log-webhook-text .alert-log-learn-more{color:var(--astroneum-primary-color);text-decoration:none}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status .alert-log-webhook-text .alert-log-learn-more:hover{text-decoration:underline}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status.alert-log-webhook-delivered .alert-log-webhook-text{color:#26a69a}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status.alert-log-webhook-failed .alert-log-webhook-text{color:#ef5350}.astroneum-alert-modal .alert-log-item .alert-log-webhook-status.alert-log-webhook-pending .alert-log-webhook-text{color:#f89d3e}.astroneum-alert-modal .alert-log-item .alert-log-item-overlay{position:absolute;top:6px;right:6px;display:flex;gap:2px;opacity:0;transition:opacity .12s}.astroneum-alert-modal .alert-log-item .alert-log-item-overlay .alert-log-item-delete{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--astroneum-text-second-color);padding:4px;border-radius:4px;transition:color .12s,background-color .12s}.astroneum-alert-modal .alert-log-item .alert-log-item-overlay .alert-log-item-delete:hover{color:var(--astroneum-text-color);background-color:var(--astroneum-hover-background-color)}.astroneum-alert-modal .alert-empty{text-align:center;color:var(--astroneum-text-second-color);font-size:13px;padding:24px 0}.astroneum-script-editor{display:flex;flex-direction:column;gap:10px;padding:0 0 4px}.astroneum-script-editor .script-editor-hint{font-size:12px;color:var(--astroneum-text-second-color)}.astroneum-script-editor .script-editor-textarea{width:100%;background:var(--astroneum-background-color);color:var(--astroneum-text-color);border:1px solid var(--astroneum-border-color);border-radius:4px;padding:10px 12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.6;resize:vertical;outline:none;tab-size:2}.astroneum-script-editor .script-editor-textarea:focus{border-color:var(--astroneum-primary-color)}.astroneum-script-editor .script-editor-error{background:#ef53501a;border:1px solid rgba(239,83,80,.4);border-radius:4px;padding:8px 12px;font-size:12px;color:#ef5350;white-space:pre-wrap;font-family:monospace}.astroneum-script-editor .script-editor-success{background:#26a69a1a;border:1px solid rgba(38,166,154,.4);border-radius:4px;padding:8px 12px;font-size:12px;color:#26a69a}.astroneum-script-editor .script-editor-actions{display:flex;gap:8px;justify-content:flex-end}.astroneum-script-editor .script-editor-actions .script-apply-disabled{opacity:.4;pointer-events:none}.astroneum-script-editor .script-editor-api-ref{margin-top:4px;font-size:12px;color:var(--astroneum-text-second-color)}.astroneum-script-editor .script-editor-api-ref summary{cursor:pointer;padding:4px 0;user-select:none}.astroneum-script-editor .script-editor-api-ref .script-api-code{background:var(--astroneum-hover-background-color);border:1px solid var(--astroneum-border-color);border-radius:4px;padding:10px 12px;font-size:11px;line-height:1.7;overflow-x:auto;color:var(--astroneum-text-color);margin-top:6px}.astroneum-watchlist{display:flex;flex-direction:column;background:var(--astroneum-background-color);border:1px solid var(--astroneum-border-color);border-radius:4px;min-width:200px;font-size:13px;user-select:none}.astroneum-watchlist .watchlist-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--astroneum-border-color)}.astroneum-watchlist .watchlist-header .watchlist-title{font-weight:600;color:var(--astroneum-text-color)}.astroneum-watchlist .watchlist-header .watchlist-add-list-btn{background:none;border:none;color:var(--astroneum-text-second-color);cursor:pointer;font-size:18px;line-height:1;padding:0 2px}.astroneum-watchlist .watchlist-header .watchlist-add-list-btn:hover{color:var(--astroneum-primary-color)}.astroneum-watchlist .watchlist-group{border-bottom:1px solid var(--astroneum-border-color)}.astroneum-watchlist .watchlist-group:last-child{border-bottom:none}.astroneum-watchlist .watchlist-group-header{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer}.astroneum-watchlist .watchlist-group-header:hover{background:var(--astroneum-hover-background-color)}.astroneum-watchlist .watchlist-group-header .watchlist-arrow{font-size:10px;color:var(--astroneum-text-second-color);transition:transform .15s ease;display:inline-block}.astroneum-watchlist .watchlist-group-header .watchlist-arrow.expanded{transform:rotate(90deg)}.astroneum-watchlist .watchlist-group-header .watchlist-group-name{flex:1;color:var(--astroneum-text-color);font-weight:500}.astroneum-watchlist .watchlist-group-header .watchlist-rename-input{flex:1;background:var(--astroneum-background-color);border:1px solid var(--astroneum-primary-color);color:var(--astroneum-text-color);border-radius:3px;padding:2px 6px;font-size:13px;outline:none}.astroneum-watchlist .watchlist-group-header .watchlist-delete-list-btn{background:none;border:none;color:var(--astroneum-text-second-color);cursor:pointer;font-size:12px;padding:0 2px;opacity:0}.astroneum-watchlist .watchlist-group-header .watchlist-delete-list-btn:hover{color:#ef5350}.astroneum-watchlist .watchlist-group-header:hover .watchlist-delete-list-btn{opacity:1}.astroneum-watchlist .watchlist-symbols{padding:4px 0}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row{display:flex;align-items:center;padding:5px 10px 5px 26px;cursor:pointer;gap:8px}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row:hover{background:var(--astroneum-hover-background-color)}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row .watchlist-symbol-ticker{font-weight:600;color:var(--astroneum-text-color);min-width:60px}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row .watchlist-symbol-name{flex:1;color:var(--astroneum-text-second-color);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row .watchlist-remove-symbol-btn{background:none;border:none;color:var(--astroneum-text-second-color);cursor:pointer;font-size:11px;padding:0;opacity:0}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row .watchlist-remove-symbol-btn:hover{color:#ef5350}.astroneum-watchlist .watchlist-symbols .watchlist-symbol-row:hover .watchlist-remove-symbol-btn{opacity:1}.astroneum-watchlist .watchlist-symbols .watchlist-add-symbol{display:flex;gap:4px;padding:6px 10px 6px 26px}.astroneum-watchlist .watchlist-symbols .watchlist-add-symbol .watchlist-add-symbol-input{flex:1;background:var(--astroneum-background-color);border:1px solid var(--astroneum-border-color);color:var(--astroneum-text-color);border-radius:3px;padding:4px 8px;font-size:12px;outline:none}.astroneum-watchlist .watchlist-symbols .watchlist-add-symbol .watchlist-add-symbol-input:focus{border-color:var(--astroneum-primary-color)}.astroneum-watchlist .watchlist-symbols .watchlist-add-symbol .watchlist-add-symbol-btn{background:none;border:1px solid var(--astroneum-border-color);color:var(--astroneum-text-second-color);cursor:pointer;border-radius:3px;padding:4px 8px;font-size:12px;white-space:nowrap}.astroneum-watchlist .watchlist-symbols .watchlist-add-symbol .watchlist-add-symbol-btn:hover{border-color:var(--astroneum-primary-color);color:var(--astroneum-primary-color)}.astroneum{--astroneum-primary-color: #2962ff;--astroneum-hover-background-color: #eaedf6;--astroneum-background-color: #f0f2f5;--astroneum-popover-background-color: #f4f5f8;--astroneum-text-color: #131722;--astroneum-text-second-color: #787b86;--astroneum-border-color: #d8dce8;--astroneum-selected-color: rgba(41, 98, 255, .15);--bulma-primary-h: 224deg;--bulma-primary-s: 100%;--bulma-primary-l: 58%;--bulma-link-h: 224deg;--bulma-link-s: 100%;--bulma-link-l: 58%;--bulma-family-primary: "Trebuchet MS", -apple-system, BlinkMacSystemFont, Roboto, Ubuntu, sans-serif;--bulma-radius: 4px;--bulma-radius-small: 3px;--bulma-radius-large: 6px}.astroneum .button:not([class*=is-]){color:var(--astroneum-text-color);border-color:var(--astroneum-border-color);background-color:transparent;box-shadow:none}.astroneum .button:not([class*=is-]):hover{border-color:var(--astroneum-text-second-color);background-color:transparent;color:var(--astroneum-text-color)}.astroneum .button:not([class*=is-]):focus{border-color:var(--astroneum-primary-color);box-shadow:none}.astroneum .input{color:var(--astroneum-text-color);background-color:var(--astroneum-background-color);border-color:var(--astroneum-border-color);font-family:inherit;font-size:13px;height:30px;box-shadow:none}.astroneum .input::placeholder{color:var(--astroneum-text-second-color)}.astroneum .input:focus,.astroneum .input.is-focused{border-color:var(--astroneum-primary-color);box-shadow:0 0 0 2px #2962ff33}.astroneum .icon{color:var(--astroneum-text-second-color);height:30px;width:2rem}.astroneum .modal-card-head{background-color:var(--astroneum-popover-background-color);border-bottom-color:var(--astroneum-border-color);padding:0 16px 0 20px;height:48px;min-height:unset;flex-shrink:0;border-top-left-radius:8px;border-top-right-radius:8px}.astroneum .modal-card-title{font-size:14px;font-weight:600;color:var(--astroneum-text-color);flex-grow:1;letter-spacing:-.01em}.astroneum .modal-card-body{background-color:var(--astroneum-popover-background-color);padding:16px 20px;overflow-y:auto}.astroneum .modal-card-foot{background-color:var(--astroneum-popover-background-color);border-top-color:var(--astroneum-border-color);padding:12px 20px;justify-content:flex-end;border-bottom-left-radius:8px;border-bottom-right-radius:8px;gap:8px}.astroneum .delete{width:32px;height:32px;border-radius:6px;background-color:transparent;flex-shrink:0;transition:background-color .12s}.astroneum .delete:before,.astroneum .delete:after{background-color:var(--astroneum-text-second-color)}.astroneum .delete:hover{background-color:var(--astroneum-hover-background-color)}.astroneum .delete:hover:before,.astroneum .delete:hover:after{background-color:var(--astroneum-text-color)}.astroneum[data-theme=dark]{--astroneum-hover-background-color: #2a2e39;--astroneum-background-color: #131722;--astroneum-popover-background-color: #1e222d;--astroneum-text-color: #d1d4dc;--astroneum-text-second-color: #787b86;--astroneum-border-color: #2a2e39}.astroneum[data-theme=high-contrast]{--astroneum-primary-color: #ffff00;--astroneum-hover-background-color: #1a1a00;--astroneum-background-color: #000000;--astroneum-popover-background-color: #000000;--astroneum-text-color: #ffffff;--astroneum-text-second-color: #ffff00;--astroneum-border-color: #ffffff;--astroneum-selected-color: rgba(255, 255, 0, .25)}.astroneum[data-theme=high-contrast] *:focus-visible{outline:2px solid #ffff00!important;outline-offset:2px}.astroneum *:focus-visible{outline:2px solid var(--astroneum-primary-color);outline-offset:2px;border-radius:2px}.astroneum .astroneum-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.astroneum{position:relative;display:flex;flex-direction:column;color:var(--astroneum-text-color);background-color:var(--astroneum-background-color);font-family:Trebuchet MS,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,sans-serif;font-size:13px}.astroneum-watermark{position:absolute;left:50%;top:50%;z-index:1;transform:translate(-50%) translateY(-50%)}.astroneum-watermark .logo{width:120px;height:120px;fill:var(--astroneum-border-color)}.astroneum-price-unit{display:none;position:absolute;z-index:30;top:4px;left:50%;transform:translate(-50%);border-radius:3px;font-size:10px;font-weight:600;padding:1px 5px;color:var(--astroneum-text-second-color);border:solid 1px var(--astroneum-border-color);background-color:var(--astroneum-popover-background-color)}.astroneum-load-icon{position:absolute;left:0;height:0;z-index:-1;opacity:0}.astroneum-content{position:relative;display:flex;flex-direction:row;width:100%;height:calc(100% - 36px);background-color:var(--astroneum-background-color)}.astroneum-widget{width:calc(100% - 46px);height:100%;margin-left:0;background-color:var(--astroneum-background-color)}.astroneum-widget[data-drawing-bar-visible=false]{width:100%}.astroneum-clock{position:absolute;bottom:8px;right:8px;font-size:11px;font-family:Trebuchet MS,monospace,sans-serif;color:var(--astroneum-text-second-color);pointer-events:none;z-index:5;letter-spacing:.04em;user-select:none}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var a="astroneum-portfolio";function u(){return Math.random().toString(36).slice(2,10)+Date.now().toString(36)}var r=class o{static _instance;_positions=[];_listeners=new Set;constructor(){this._load();}static getInstance(){return o._instance||(o._instance=new o),o._instance}onChange(t){return this._listeners.add(t),()=>{this._listeners.delete(t);}}addPosition(t){let i={...t,id:u(),entryTime:t.entryTime??new Date().toISOString()};return this._positions.push(i),this._persist(),i}closePosition(t,i,n){let e=this._positions.find(s=>s.id===t);e&&(e.exitPrice=i,e.exitTime=n??new Date().toISOString(),this._persist());}deletePosition(t){this._positions=this._positions.filter(i=>i.id!==t),this._persist();}getOpenPositions(t){return this._positions.filter(i=>i.exitPrice===void 0&&(t==null||i.symbol===t))}getClosedPositions(t){return this._positions.filter(i=>i.exitPrice!==void 0&&(t==null||i.symbol===t))}getAllPositions(){return [...this._positions]}getPnL(t,i){let n=this._positions.find(c=>c.id===t);if(!n)return null;let e=n.exitPrice??i;if(e==null)return null;let s=(e-n.entryPrice)*n.quantity*(n.side==="long"?1:-1),l=n.entryPrice*n.quantity;return {position:n,pnl:s,pnlPercent:l===0?0:s/l}}getTotalPnL(t){let i=0;for(let n of this._positions){let e=n.exitPrice??t?.[n.symbol];e!=null&&(i+=(e-n.entryPrice)*n.quantity*(n.side==="long"?1:-1));}return i}_persist(){try{localStorage.setItem(a,JSON.stringify(this._positions));}catch{}this._listeners.forEach(t=>{t([...this._positions]);});}_load(){try{let t=localStorage.getItem(a);if(t){let i=JSON.parse(t);Array.isArray(i)&&(this._positions=i);}}catch{}}},p=r;export{p as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {e}from'./chunk-YFPXTHZX.js';import {a as a$1}from'./chunk-SDXH2WAI.js';function p(c){return c.ev==="status"}var a=class{#e;constructor(e){this.#e=e;}_prevSymbolMarket;_ws;_reconnectDelay=1e3;_reconnectTimer;_currentSymbol;_currentCallback;_prevTickTimestamp=0;_prevTickOpen=NaN;_prevTickHigh=NaN;_prevTickLow=NaN;_prevTickClose=NaN;_isDeltaTick(e){return e.timestamp!==this._prevTickTimestamp?true:e.open!==this._prevTickOpen||e.high!==this._prevTickHigh||e.low!==this._prevTickLow||e.close!==this._prevTickClose}_updateDeltaRef(e){this._prevTickTimestamp=e.timestamp,this._prevTickOpen=e.open,this._prevTickHigh=e.high,this._prevTickLow=e.low,this._prevTickClose=e.close;}_mergeTick=e(e=>{this._animator.feed(e);});_animator=new a$1(e=>{this._currentCallback?.(e);});async searchSymbols(e){let s=new URL("https://api.polygon.io/v3/reference/tickers");s.searchParams.set("active","true"),s.searchParams.set("search",e??"");let r=await fetch(s.toString(),{headers:{Authorization:`Bearer ${this.#e}`}});if(!r.ok)throw new Error(`[DefaultDatafeed] searchSymbols failed: ${r.status}`);return ((await r.json()).results??[]).map(t=>({ticker:t.ticker,name:t.name,shortName:t.ticker,market:t.market,exchange:t.primary_exchange,priceCurrency:t.currency_name,type:t.type}))}async getHistoryData(e,s,r,i){let t=new URL(`https://api.polygon.io/v2/aggs/ticker/${e.ticker}/range/${s.multiplier}/${s.timespan}/${r}/${i}`),n=await fetch(t.toString(),{headers:{Authorization:`Bearer ${this.#e}`}});if(!n.ok)throw new Error(`[DefaultDatafeed] getHistoryData failed: ${n.status}`);return ((await n.json()).results??[]).map(o=>({timestamp:o.t,open:o.o,high:o.h,low:o.l,close:o.c,volume:o.v,turnover:o.vw}))}subscribe(e,s,r){let i=e.market;i&&(this._currentSymbol=e,this._currentCallback=r,this._prevSymbolMarket!==i?(this._teardownWS(),this._setupWS(i)):this._ws?.send(JSON.stringify({action:"subscribe",params:`T.${e.ticker}`})),this._prevSymbolMarket=i);}_setupWS(e){this._ws=new WebSocket(`wss://delayed.polygon.io/${e}`),this._ws.onopen=()=>{this._reconnectDelay=1e3,this._ws?.send(JSON.stringify({action:"auth",params:this.#e}));},this._ws.onmessage=s=>{let r=JSON.parse(s.data);if(!Array.isArray(r))return;let i=r;for(let t of i)if(p(t))t.status==="auth_success"&&this._currentSymbol&&this._ws?.send(JSON.stringify({action:"subscribe",params:`T.${this._currentSymbol.ticker}`}));else {let n={timestamp:t.s,open:t.o,high:t.h,low:t.l,close:t.c,volume:t.v,turnover:t.vw};if(!this._isDeltaTick(n))continue;this._updateDeltaRef(n),this._mergeTick(n);}},this._ws.onclose=()=>{this._scheduleReconnect();},this._ws.onerror=()=>{this._ws?.close();};}_scheduleReconnect(){if(!this._currentSymbol||!this._prevSymbolMarket)return;let e=this._reconnectDelay;this._reconnectDelay=Math.min(this._reconnectDelay*2,3e4),this._reconnectTimer=setTimeout(()=>{this._setupWS(this._prevSymbolMarket);},e);}_teardownWS(){this._reconnectTimer!==void 0&&(clearTimeout(this._reconnectTimer),this._reconnectTimer=void 0),this._animator.cancel(),this._ws?.close(),this._ws=void 0;}unsubscribe(e,s){this._ws?.send(JSON.stringify({action:"unsubscribe",params:`T.${e.ticker}`}));}};
|
|
3
|
+
export{a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var r=class{_opts;_bars=[];_cursor=0;_state="idle";_timer=null;constructor(t){this._opts={startTime:0,endTime:Date.now(),intervalMs:500,initialBars:300,onBar:()=>{},onStateChange:()=>{},onFinish:()=>{},...t};}_setState(t){this._state=t,this._opts.onStateChange(t);}_emitCurrent(){let t=this._bars[this._cursor];t&&this._opts.onBar(t,this._cursor,this._bars.length);}_advance(){if(this._cursor>=this._bars.length-1){this._stop(),this._setState("finished"),this._opts.onFinish();return}this._cursor++,this._emitCurrent();}_stop(){this._timer!==null&&(clearInterval(this._timer),this._timer=null);}async load(){this._setState("idle"),this._bars=[],this._cursor=0;let{datafeed:t,symbol:e,period:i,startTime:s,endTime:o,initialBars:h}=this._opts,n=o,l=await t.getHistoryData(e,i,s||0,n);this._bars=l.filter(a=>a.timestamp>=(s||0)&&a.timestamp<=n).sort((a,_)=>a.timestamp-_.timestamp),this._cursor=Math.max(0,Math.min(h-1,this._bars.length-1));}getRevealedBars(){return this._bars.slice(0,this._cursor+1)}getAllBars(){return [...this._bars]}get state(){return this._state}get cursor(){return this._cursor}get total(){return this._bars.length}get currentBar(){return this._bars[this._cursor]??null}get progress(){return this._bars.length<=1?0:this._cursor/(this._bars.length-1)}play(){this._state!=="finished"&&this._state!=="playing"&&(this._setState("playing"),this._timer=setInterval(()=>{this._advance();},this._opts.intervalMs));}pause(){this._state==="playing"&&(this._stop(),this._setState("paused"));}togglePlayPause(){this._state==="playing"?this.pause():this.play();}stepForward(){this._state==="playing"&&this.pause(),this._advance();}stepBack(){this._state==="playing"&&this.pause(),this._cursor>0&&(this._cursor--,this._emitCurrent());}seekTo(t){this._state==="playing"&&this.pause();let e=Math.max(0,Math.min(t,this._bars.length-1));this._cursor=e,this._emitCurrent();}seekToTime(t){if(this._bars.length===0)return;let e=0,i=this._bars.length-1;for(;e<i;){let s=e+i+1>>1;this._bars[s].timestamp<=t?e=s:i=s-1;}this.seekTo(e);}setSpeed(t){this._opts.intervalMs=Math.max(50,t),this._state==="playing"&&(this._stop(),this._timer=setInterval(()=>{this._advance();},this._opts.intervalMs));}reset(){this._stop(),this._cursor=0,this._setState("idle");}destroy(){this._stop(),this._bars=[],this._setState("idle");}};export{r as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function g(r){try{let t=new URL(r);if(t.protocol!=="http:"&&t.protocol!=="https:")return !1;let e=t.hostname.toLowerCase().replace(/^\[|\]$/g,"");return !(e==="localhost"||e==="127.0.0.1"||e==="::1"||/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.|169\.254\.|127\.)/.test(e)||e.endsWith(".local")||e.endsWith(".internal"))}catch{return false}}var f="astroneum-alerts";function m(){try{let r=localStorage.getItem(f);if(!r)return [];let t=JSON.parse(r);return Array.isArray(t)?t.filter(e=>{if(e===null||typeof e!="object")return !1;let i=e;return typeof i.id=="string"&&typeof i.symbol=="string"&&typeof i.price=="number"&&typeof i.status=="string"&&typeof i.createdAt=="string"}):[]}catch{return []}}function d(r){try{localStorage.setItem(f,JSON.stringify(r));}catch{}}var b={Thin:880,Classic:660,Alert:1e3,Bell:523,Chime:784};function h(r="Thin",t="once"){try{let e=new AudioContext,i=b[r]??880,s=()=>{let n=e.createOscillator(),o=e.createGain();n.connect(o),o.connect(e.destination),n.frequency.value=i,o.gain.setValueAtTime(.3,e.currentTime),o.gain.exponentialRampToValueAtTime(.001,e.currentTime+.4),n.start(e.currentTime),n.stop(e.currentTime+.4),n.onended=()=>{t!=="repeating"&&e.close();};};if(s(),t==="repeating"){let n=setInterval(s,600);setTimeout(()=>{clearInterval(n),e.close();},5e3);}}catch{}}var c=null;function y(){return c&&document.body.contains(c)||(c=document.createElement("div"),c.id="astroneum-alert-toast-container",c.style.cssText="position:fixed;top:16px;right:16px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none",document.body.appendChild(c)),c}function A(r,t){try{let e=y(),i=document.createElement("div");i.style.cssText="pointer-events:auto;min-width:280px;max-width:400px;padding:12px 16px;border-radius:8px;background:#1d2026;border:1px solid #2962ff;color:#d1d4dc;font-family:-apple-system,sans-serif;font-size:14px;box-shadow:0 4px 16px rgba(0,0,0,0.4);cursor:pointer;transition:opacity 0.3s;animation:toast-in 0.2s ease-out";let s=document.createElement("div");s.textContent=r,s.style.cssText="font-weight:600;margin-bottom:4px;color:#2962ff";let n=document.createElement("div");n.textContent=t,n.style.cssText="color:#8a8f9c;font-size:13px",i.appendChild(s),i.appendChild(n),i.onclick=()=>{i.style.opacity="0",setTimeout(()=>i.remove(),300);},e.appendChild(i),setTimeout(()=>{i.parentNode&&(i.style.opacity="0",setTimeout(()=>i.remove(),300));},8e3);}catch{}}function v(r){if(!r||r.preset==="24/7")return true;let t=new Date,e=t.getDay(),i=String(t.getHours()).padStart(2,"0"),s=String(t.getMinutes()).padStart(2,"0"),n=`${i}:${s}`;if(r.preset==="weekdays")return e>=1&&e<=5;if(r.preset==="working_hours")return e>=1&&e<=5&&n>="09:00"&&n<="18:00";if(r.preset==="custom"){if(!(r.days??[0,1,2,3,4,5,6]).includes(e))return false;let a=r.from??"00:00",l=r.to??"23:59";return a<=l?n>=a&&n<=l:n>=a||n<=l}return true}async function p(r,t,e,i){try{await fetch("/astroneum/api/alerts/email",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:r,subject:t,body:e,isPlainText:i})});}catch{}}async function S(r,t,e,i){try{i({webhookStatus:"pending",webhookStatusAt:new Date().toISOString()});let n=await(await fetch("/astroneum/api/alerts/webhook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({webhookUrl:r,message:t,payload:e})})).json();i({webhookStatus:n?.ok?"delivered":"failed",webhookStatusAt:new Date().toISOString(),webhookHttpStatus:typeof n?.status=="number"?n.status:void 0});}catch{i({webhookStatus:"failed",webhookStatusAt:new Date().toISOString()});}}var u=class r{static _instance=null;_alerts;_lastPrice=new Map;_listeners=[];_savePending=false;constructor(){this._alerts=m();}static getInstance(){return r._instance||(r._instance=new r),r._instance}add(t){let e={...t,id:`alert_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,status:"active",createdAt:new Date().toISOString(),frequency:t.frequency??"once",soundEnabled:t.soundEnabled??true,notificationEnabled:t.notificationEnabled??false};return this._alerts.push(e),d(this._alerts),e.id}update(t,e){let i=this._alerts.findIndex(s=>s.id===t);return i===-1?false:(this._alerts[i]={...this._alerts[i],...e},d(this._alerts),true)}delete(t){let e=this._alerts.length;return this._alerts=this._alerts.filter(i=>i.id!==t),this._alerts.length!==e?(d(this._alerts),true):false}dismiss(t){return this.update(t,{status:"dismissed"})}reactivate(t){return this.update(t,{status:"active",triggeredAt:void 0})}clear(t){this._alerts=t?this._alerts.filter(e=>e.symbol!==t):[],d(this._alerts);}getAll(){return this._alerts}getActive(){return this._alerts.filter(t=>t.status==="active")}getForSymbol(t){return this._alerts.filter(e=>e.symbol===t)}getActiveForSymbol(t){return this._alerts.filter(e=>e.symbol===t&&e.status==="active")}getHistory(){return this._alerts.filter(t=>t.status!=="active")}check(t){let{symbol:e,price:i,timestamp:s}=t,n=this._lastPrice.get(e);this._lastPrice.set(e,i);for(let o of this._alerts){if(o.symbol!==e||o.status!=="active")continue;if(o.expiration&&new Date(o.expiration).getTime()<s){o.status="expired";continue}let a=false;switch(o.condition){case "above":a=i>=o.price;break;case "below":a=i<=o.price;break;case "crosses_above":a=n!==void 0&&n<o.price&&i>=o.price;break;case "crosses_below":a=n!==void 0&&n>o.price&&i<=o.price;break;case "crossing":a=n!==void 0&&(n<o.price&&i>=o.price||n>o.price&&i<=o.price);break}if(!a)continue;let l=new Date(s).toISOString();o.triggeredAt=l,o.frequency==="once"&&(o.status="triggered"),this._fire(o,i);}this._schedulePersist();}_schedulePersist(){this._savePending||(this._savePending=true,setTimeout(()=>{this._savePending=false,d(this._alerts);},1e3));}_fire(t,e){let i=v(t.notificationSchedule),s=t.messageTemplate??t.note??`${t.symbol} ${t.condition} ${t.price}`,n=`${t.symbol} ${t.condition} ${t.price} \u2014 current: ${e}`;if(t.soundEnabled&&i&&h(t.soundTitle??"Thin",t.soundDuration??"once"),t.notificationEnabled&&i&&"Notification"in window&&(Notification.permission==="granted"?new Notification(`Alert: ${s}`,{body:`Current price: ${e}`,icon:"/favicon.ico"}):Notification.permission!=="denied"&&Notification.requestPermission().then(o=>{o==="granted"&&new Notification(`Alert: ${s}`,{body:`Current price: ${e}`});})),t.toastEnabled&&i&&A(`Alert: ${s}`,n),t.webhookUrl&&g(t.webhookUrl)&&i){let o=t.messageTemplate??n,a={id:t.id,symbol:t.symbol,condition:t.condition,price:t.price,triggeredPrice:e,triggeredAt:t.triggeredAt,note:t.note,message:o};S(t.webhookUrl,o,a,l=>{this.update(t.id,l);});}t.emailEnabled&&i&&p("",`Alert: ${s}`,n,false),t.plainTextEnabled&&t.plainTextEmail&&i&&p(t.plainTextEmail,`Alert: ${s}`,n,true);for(let o of this._listeners)try{o(t,e);}catch{}}onTriggered(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(e=>e!==t);}}async requestNotificationPermission(){return "Notification"in window?Notification.permission!=="default"?Notification.permission:Notification.requestPermission():"denied"}},w=u;export{w as a};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {b as b$1}from'./chunk-SDXH2WAI.js';var q=[{ticker:"BINANCE:BTCUSDT",name:"Bitcoin Perpetual / USDT",shortName:"BTC PERP",exchange:"BINANCE",market:"crypto",pricePrecision:2,volumePrecision:6,priceCurrency:"USDT",type:"crypto",venueSymbol:"BTCUSDT"},{ticker:"BINANCE:ETHUSDT",name:"Ethereum Perpetual / USDT",shortName:"ETH PERP",exchange:"BINANCE",market:"crypto",pricePrecision:2,volumePrecision:4,priceCurrency:"USDT",type:"crypto",venueSymbol:"ETHUSDT"},{ticker:"BINANCE:SOLUSDT",name:"Solana Perpetual / USDT",shortName:"SOL PERP",exchange:"BINANCE",market:"crypto",pricePrecision:3,volumePrecision:2,priceCurrency:"USDT",type:"crypto",venueSymbol:"SOLUSDT"},{ticker:"BITGET:BTCUSDT",name:"Bitcoin USDT Futures",shortName:"BTC PERP",exchange:"BITGET",market:"crypto",pricePrecision:2,volumePrecision:6,priceCurrency:"USDT",type:"crypto",venueSymbol:"BTCUSDT",productType:"USDT-FUTURES"},{ticker:"BITGET:ETHUSDT",name:"Ethereum USDT Futures",shortName:"ETH PERP",exchange:"BITGET",market:"crypto",pricePrecision:2,volumePrecision:4,priceCurrency:"USDT",type:"crypto",venueSymbol:"ETHUSDT",productType:"USDT-FUTURES"},{ticker:"OKX:BTC-USDT-SWAP",name:"Bitcoin USDT Swap",shortName:"BTC SWAP",exchange:"OKX",market:"crypto",pricePrecision:2,volumePrecision:6,priceCurrency:"USDT",type:"crypto",instId:"BTC-USDT-SWAP"},{ticker:"OKX:ETH-USDT-SWAP",name:"Ethereum USDT Swap",shortName:"ETH SWAP",exchange:"OKX",market:"crypto",pricePrecision:2,volumePrecision:4,priceCurrency:"USDT",type:"crypto",instId:"ETH-USDT-SWAP"}],X=q,G="astroneum:datafeed-error",j="wss://fstream.binance.com/market/ws",A="https://fapi.binance.com/fapi/v1",J="wss://ws.bitget.com/v2/ws/public",_="https://api.bitget.com/api/v2/mix/market",V="wss://ws.okx.com:8443/ws/v5/public",R="https://www.okx.com/api/v5/market",E=120;function $(e,t){return `${e.ticker}::${t.text}`}function z(e,t){if(!e)return true;let n=e.toLowerCase();return t.ticker.toLowerCase().includes(n)||(t.name??"").toLowerCase().includes(n)}function U(e){if(typeof e!="string")return null;try{return JSON.parse(e)}catch{return null}}function l(e){let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function C(e){let t=true;for(let n=1;n<e.length;n++)if(e[n].timestamp<e[n-1].timestamp){t=false;break}return t?e:e.slice().sort((n,r)=>n.timestamp-r.timestamp)}function I(e,t,n){return e.filter(r=>r.timestamp>=t&&r.timestamp<=n)}function Y(e){return ({second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:2592e6,year:31536e6}[e.timespan]??6e4)*e.multiplier}function x(e,t,n){let r=Y(e),a=Math.floor(t/r)*r,o=Math.floor(n/r)*r;return o>=a?{from:a,to:o}:{from:a,to:a}}function N(e){return e.timespan==="minute"&&[1,3,5,15,30].includes(e.multiplier)?`${e.multiplier}m`:e.timespan==="hour"&&[1,2,4,6,8,12].includes(e.multiplier)?`${e.multiplier}h`:e.timespan==="day"&&[1,3].includes(e.multiplier)?`${e.multiplier}d`:e.timespan==="week"&&e.multiplier===1?"1w":e.timespan==="month"&&e.multiplier===1?"1M":null}function O(e){return e.timespan==="minute"&&[1,3,5,15,30].includes(e.multiplier)?`${e.multiplier}m`:e.timespan==="hour"&&[1,2,4,6,12].includes(e.multiplier)?`${e.multiplier}H`:e.timespan==="day"&&[1,3].includes(e.multiplier)?`${e.multiplier}D`:e.timespan==="week"&&e.multiplier===1?"1W":e.timespan==="month"&&e.multiplier===1?"1M":null}function W(e){return e.timespan==="minute"&&[1,3,5,15,30].includes(e.multiplier)?`${e.multiplier}m`:e.timespan==="hour"&&[1,2,4,6,12].includes(e.multiplier)?`${e.multiplier}H`:e.timespan==="day"&&[1,3].includes(e.multiplier)?`${e.multiplier}D`:e.timespan==="week"&&e.multiplier===1?"1W":e.timespan==="month"&&e.multiplier===1?"1M":null}function H(e){let t=e.indexOf(":");return t>=0?e.slice(t+1):e}function b(e){return (e.venueSymbol??H(e.ticker)).toUpperCase()}function F(e){return e.instId??H(e.ticker)}function Q(e){return (e.productType??"USDT-FUTURES").toUpperCase()}function Z(e){return (e.productType??"USDT-FUTURES").toLowerCase()}function K(e){if(typeof e.exchange=="string"&&e.exchange.trim())return e.exchange.toUpperCase();let t=e.ticker.split(":",1)[0]?.toUpperCase();return t&&t.length>0?t:null}function ee(e,t){return {...e,exchange:t}}async function g(e){try{let t=await fetch(e);return t.ok?await t.json():null}catch{return null}}var L=new Map;function te(e){return e&&typeof e=="object"&&"data"in e?e.data??e:e}function p(e,t,n,r){let a=`${e.ticker}::${t.text}::${n}`,o=Date.now(),c=L.get(a)??0;if(o-c<2500)return;L.set(a,o);let s={exchange:K(e)??void 0,ticker:e.ticker,period:t.text,type:n,message:r};console.error(`[astroneum:datafeed] ${s.ticker} ${s.period} - ${s.message}`),typeof window<"u"&&window.dispatchEvent(new CustomEvent(G,{detail:s}));}function M(e){if(!Array.isArray(e))return [];let t=[];for(let n of e){if(!Array.isArray(n))continue;let r=l(n[0]),a=l(n[1]),o=l(n[2]),c=l(n[3]),s=l(n[4]),i=l(n[5]),u=l(n[7]);r===null||a===null||o===null||c===null||s===null||i===null||t.push({timestamp:r,open:a,high:o,low:c,close:s,volume:i,turnover:u??i*s});}return C(t)}function P(e){if(!Array.isArray(e))return [];let t=[];for(let n of e){if(!Array.isArray(n))continue;let r=l(n[0]),a=l(n[1]),o=l(n[2]),c=l(n[3]),s=l(n[4]),i=l(n[5]),u=l(n[6]),f=l(n[7]);r===null||a===null||o===null||c===null||s===null||i===null||t.push({timestamp:r,open:a,high:o,low:c,close:s,volume:i,turnover:f??u??i*s});}return C(t)}function T(e){if(!Array.isArray(e))return [];let t=[];for(let n of e){if(!Array.isArray(n))continue;let r=l(n[0]),a=l(n[1]),o=l(n[2]),c=l(n[3]),s=l(n[4]),i=l(n[5]),u=l(n[7])??l(n[6]);r===null||a===null||o===null||c===null||s===null||i===null||t.push({timestamp:r,open:a,high:o,low:c,close:s,volume:i,turnover:u??i*s});}return C(t)}var ne={id:"BINANCE",async getHistoryBars(e,t,n,r){let a=N(t);if(a===null)return p(e,t,"unsupported-period",`Binance does not support period ${t.text}`),[];let o=x(t,n,r),c=b(e),s=new URL(`${A}/klines`);s.searchParams.set("symbol",c),s.searchParams.set("interval",a),s.searchParams.set("startTime",`${o.from}`),s.searchParams.set("endTime",`${o.to}`),s.searchParams.set("limit","1000");let i=new URL(`${A}/klines`);i.searchParams.set("symbol",c),i.searchParams.set("interval",a),i.searchParams.set("endTime",`${o.to}`),i.searchParams.set("limit","1000");let u=await g(s.toString());u===null&&p(e,t,"history-request-failed","Binance history request failed");let f=M(u),m=I(f,o.from,o.to);if(m.length<E){let d=await g(i.toString()),S=M(d).filter(y=>y.timestamp<=o.to);S.length>m.length&&(m=S);}return m.length===0&&p(e,t,"history-empty","Binance returned no candle data for this range"),m},getWebSocketUrl(e,t){let n=N(t);return n===null?"wss://invalid":`${j}/${b(e).toLowerCase()}@kline_${n}`},parseMessage(e){let t=te(U(e.data));if(!t||typeof t!="object")return null;let n=t;if(n.e!=="kline"||!n.k)return null;let r=l(n.k.t),a=l(n.k.o),o=l(n.k.h),c=l(n.k.l),s=l(n.k.c),i=l(n.k.v),u=l(n.k.q);return r===null||a===null||o===null||c===null||s===null||i===null?null:{timestamp:r,open:a,high:o,low:c,close:s,volume:i,turnover:u??i*s}}},re={id:"BITGET",async getHistoryBars(e,t,n,r){let a=O(t);if(a===null)return p(e,t,"unsupported-period",`Bitget does not support period ${t.text}`),[];let o=x(t,n,r),c=b(e),s=Z(e),i=new URL(`${_}/candles`);i.searchParams.set("symbol",c),i.searchParams.set("productType",s),i.searchParams.set("granularity",a),i.searchParams.set("startTime",`${o.from}`),i.searchParams.set("endTime",`${o.to}`),i.searchParams.set("limit","1000");let u=new URL(`${_}/candles`);u.searchParams.set("symbol",c),u.searchParams.set("productType",s),u.searchParams.set("granularity",a),u.searchParams.set("limit","1000");let f=await g(i.toString());f===null&&p(e,t,"history-request-failed","Bitget history request failed");let m=P(f?.data),d=I(m,o.from,o.to);if(d.length<E){let h=await g(u.toString()),y=P(h?.data).filter(k=>k.timestamp<=o.to);y.length>d.length&&(d=y);}return d.length===0&&p(e,t,"history-empty","Bitget returned no candle data for this range"),d},getWebSocketUrl(){return J},onOpen(e,t,n){let r=O(n);if(r===null){p(t,n,"unsupported-period",`Bitget does not support period ${n.text}`);return}let a=Q(t);e.send(JSON.stringify({op:"subscribe",args:[{instType:a,channel:`candle${r}`,instId:b(t)}]}));},parseMessage(e){let t=U(e.data);if(!t||typeof t!="object")return null;let n=t.data;if(!Array.isArray(n))return null;let r=P(n);return r.length>0?r[r.length-1]:null}},ae={id:"OKX",async getHistoryBars(e,t,n,r){let a=W(t);if(a===null)return p(e,t,"unsupported-period",`OKX does not support period ${t.text}`),[];let o=x(t,n,r),c=F(e),s=new URL(`${R}/candles`);s.searchParams.set("instId",c),s.searchParams.set("bar",a),s.searchParams.set("limit","300");let i=new URL(`${R}/history-candles`);i.searchParams.set("instId",c),i.searchParams.set("bar",a),i.searchParams.set("limit","300");let u=await g(s.toString());u===null&&p(e,t,"history-request-failed","OKX history request failed");let f=T(u?.data),m=I(f,o.from,o.to);if(m.length<E){let d=f.filter(h=>h.timestamp<=o.to);if(d.length>m.length)m=d;else {let h=await g(i.toString()),y=T(h?.data).filter(k=>k.timestamp<=o.to);y.length>m.length&&(m=y);}}return m.length===0&&p(e,t,"history-empty","OKX returned no candle data for this range"),m},getWebSocketUrl(){return V},onOpen(e,t,n){let r=W(n);if(r===null){p(t,n,"unsupported-period",`OKX does not support period ${n.text}`);return}e.send(JSON.stringify({op:"subscribe",args:[{channel:`candle${r}`,instId:F(t)}]}));},parseMessage(e){let t=U(e.data);if(!t||typeof t!="object")return null;let n=t.data;if(!Array.isArray(n))return null;let r=T(n);return r.length>0?r[r.length-1]:null}},oe=[ne,re,ae],v=class extends b$1{adapter;constructor(t,n){super({smoothingDuration:n}),this.adapter=t;}async getHistoryBars(t,n,r,a){return this.adapter.getHistoryBars(t,n,r,a)}subscribe(t,n,r){let a=this.adapter.getWebSocketUrl(t,n);if(!a||a==="wss://invalid"){p(t,n,"subscription-failed",`No WebSocket stream available for period ${n.text}`);return}super.subscribe(t,n,r);}getWebSocketUrl(t,n){return this.adapter.getWebSocketUrl(t,n)}parseMessage(t,n,r){return this.adapter.parseMessage(t,n,r)}onOpen(t,n,r){this.adapter.onOpen?.(t,n,r);}},w=class{searchSymbols(t=""){return Promise.resolve([])}getHistoryData(t,n,r,a){return p(t,n,"unsupported-symbol",`Unsupported symbol ${t.ticker}`),Promise.resolve([])}subscribe(t,n,r){p(t,n,"subscription-failed",`No live feed available for ${t.ticker}`);}unsubscribe(t,n){}},D=class{symbols;liveFeeds=new Map;supportedExchanges=new Set;noDataFeed=new w;activeFeedByKey=new Map;constructor(t={}){this.symbols=t.symbols??X;let n=Math.max(0,t.smoothingDuration??220),r=t.adapters&&t.adapters.length>0?t.adapters:oe;for(let a of r){let o=a.id.toUpperCase();this.supportedExchanges.add(o),this.liveFeeds.set(o,new v({...a,id:o},n));}}searchSymbols(t=""){return Promise.resolve(this.symbols.filter(n=>z(t,n)))}async getHistoryData(t,n,r,a){return this.resolveFeed(t).getHistoryData(t,n,r,a)}subscribe(t,n,r){let a=$(t,n);this.unsubscribe(t,n);let o=this.resolveFeed(t);this.activeFeedByKey.set(a,o),o.subscribe(this.normalizeSymbol(t),n,r);}unsubscribe(t,n){let r=$(t,n);(this.activeFeedByKey.get(r)??this.resolveFeed(t)).unsubscribe(this.normalizeSymbol(t),n),this.activeFeedByKey.delete(r);}normalizeSymbol(t){let n=this.resolveExchange(t);return n?ee(t,n):t}resolveFeed(t){let n=this.resolveExchange(t);if(n!==null){let r=this.liveFeeds.get(n);if(r)return r}return this.noDataFeed}resolveExchange(t){let n=K(t);return n&&this.supportedExchanges.has(n)?n:null}};function ie(e={}){return new D(e)}
|
|
3
|
+
export{X as a,G as b,ne as c,re as d,ae as e,D as f,ie as g};
|