openalgo-charts 1.0.27 → 1.0.28
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/draw/index.d.ts
CHANGED
|
@@ -142,6 +142,14 @@ interface DrawingTool {
|
|
|
142
142
|
* draggable handle.
|
|
143
143
|
*/
|
|
144
144
|
expand?(clicked: readonly DrawingPoint[], ctx: ExpandContext): DrawingPoint[];
|
|
145
|
+
/**
|
|
146
|
+
* Keyboard shortcut that arms this tool, as `'Alt+T'` / `'Shift+Alt+F'` —
|
|
147
|
+
* modifiers in `Ctrl`, `Alt`, `Shift` order, then a single key. Hosts render
|
|
148
|
+
* it beside the tool's name in a palette and bind it with
|
|
149
|
+
* `matchDrawingShortcut`; the library itself installs no listener, since only
|
|
150
|
+
* the host knows whether the chart has focus or a dialog is open.
|
|
151
|
+
*/
|
|
152
|
+
shortcut?: string;
|
|
145
153
|
/** Merged under the caller's style when a drawing is created. */
|
|
146
154
|
defaultStyle?: DrawingStyle;
|
|
147
155
|
draw(c: DrawContext): void;
|
|
@@ -165,6 +173,28 @@ declare function registerDrawingTool(tool: DrawingTool): void;
|
|
|
165
173
|
declare function getDrawingTool(id: string): DrawingTool;
|
|
166
174
|
declare function hasDrawingTool(id: string): boolean;
|
|
167
175
|
declare function registeredDrawingTools(): DrawingTool[];
|
|
176
|
+
/** Keyboard event fields a shortcut is matched against. */
|
|
177
|
+
interface ShortcutEvent {
|
|
178
|
+
key: string;
|
|
179
|
+
altKey?: boolean;
|
|
180
|
+
ctrlKey?: boolean;
|
|
181
|
+
metaKey?: boolean;
|
|
182
|
+
shiftKey?: boolean;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The id of the tool whose `shortcut` matches this key event, or `null`.
|
|
186
|
+
*
|
|
187
|
+
* Pure, so a host can bind one `keydown` listener and decide for itself when
|
|
188
|
+
* shortcuts apply — the library installs no listener, because only the host
|
|
189
|
+
* knows whether the chart has focus, a dialog is open, or the user is typing.
|
|
190
|
+
*
|
|
191
|
+
* Modifiers must match exactly: `Alt+T` will not fire for `Ctrl+Alt+T`, so a
|
|
192
|
+
* tool shortcut cannot shadow a browser or host chord. `metaKey` (Cmd) is
|
|
193
|
+
* treated as Ctrl, which is what a Mac user expects.
|
|
194
|
+
*/
|
|
195
|
+
declare function matchDrawingShortcut(e: ShortcutEvent): string | null;
|
|
196
|
+
/** Every registered tool that has a shortcut, as `id -> shortcut`. */
|
|
197
|
+
declare function drawingShortcuts(): Record<string, string>;
|
|
168
198
|
declare const TREND_LINE: DrawingTool;
|
|
169
199
|
declare const RAY: DrawingTool;
|
|
170
200
|
declare const EXTENDED_LINE: DrawingTool;
|
|
@@ -396,4 +426,4 @@ declare function extendSegment(a: ScreenPoint, b: ScreenPoint, width: number, le
|
|
|
396
426
|
|
|
397
427
|
declare const DRAW_TIER: "draw";
|
|
398
428
|
|
|
399
|
-
export { ARROW, BUILTIN_DRAWING_TOOLS, CROSS_LINE, DRAW_TIER, type DrawContext, type Drawing, DrawingController, type DrawingControllerOptions, DrawingLayer, type DrawingPoint, type DrawingStyle, type DrawingTool, ELLIPSE, EXTENDED_LINE, FIB_EXTENSION, FIB_RETRACEMENT, HORIZONTAL_LINE, HORIZONTAL_RAY, type HitContext, LONG_POSITION, MEASURE, PARALLEL_CHANNEL, PATH, RAY, RECTANGLE, SHORT_POSITION, type ScreenPoint, TEXT, TREND_LINE, VERTICAL_LINE, distToEllipse, distToLine, distToPolyline, distToRect, distToSegment, extendSegment, getDrawingTool, hasDrawingTool, rectOf, registerBuiltinDrawingTools, registerDrawingTool, registeredDrawingTools };
|
|
429
|
+
export { ARROW, BUILTIN_DRAWING_TOOLS, CROSS_LINE, DRAW_TIER, type DrawContext, type Drawing, DrawingController, type DrawingControllerOptions, DrawingLayer, type DrawingPoint, type DrawingStyle, type DrawingTool, ELLIPSE, EXTENDED_LINE, FIB_EXTENSION, FIB_RETRACEMENT, HORIZONTAL_LINE, HORIZONTAL_RAY, type HitContext, LONG_POSITION, MEASURE, PARALLEL_CHANNEL, PATH, RAY, RECTANGLE, SHORT_POSITION, type ScreenPoint, type ShortcutEvent, TEXT, TREND_LINE, VERTICAL_LINE, distToEllipse, distToLine, distToPolyline, distToRect, distToSegment, drawingShortcuts, extendSegment, getDrawingTool, hasDrawingTool, matchDrawingShortcut, rectOf, registerBuiltinDrawingTools, registerDrawingTool, registeredDrawingTools };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function t(t,e,i,n){const s=n.x-i.x,o=n.y-i.y,l=s*s+o*o;if(0===l)return Math.hypot(t-i.x,e-i.y);let r=((t-i.x)*s+(e-i.y)*o)/l;return r=r<0?0:r>1?1:r,Math.hypot(t-(i.x+r*s),e-(i.y+r*o))}function e(t,e,i,n){const s=n.x-i.x,o=n.y-i.y,l=Math.hypot(s,o);return 0===l?Math.hypot(t-i.x,e-i.y):Math.abs(o*(t-i.x)-s*(e-i.y))/l}function i(t,e){return Math.abs(t-e)}function n(t,e){return Math.abs(t-e)}function s(e,i,n){let s=1/0;for(let o=1;o<n.length;o++){const l=t(e,i,n[o-1],n[o]);l<s&&(s=l)}return s}function o(t,e){return{x0:Math.min(t.x,e.x),y0:Math.min(t.y,e.y),x1:Math.max(t.x,e.x),y1:Math.max(t.y,e.y)}}function l(e,i,n,s,l){const r=o(n,s);if(e>=r.x0&&e<=r.x1&&i>=r.y0&&i<=r.y1&&l)return 0;const a=[{x:r.x0,y:r.y0},{x:r.x1,y:r.y0},{x:r.x1,y:r.y1},{x:r.x0,y:r.y1}];let c=1/0;for(let n=0;n<4;n++){const s=t(e,i,a[n],a[(n+1)%4]);s<c&&(c=s)}return c}function r(t,e,i,n,s){const l=o(i,n),r=(l.x0+l.x1)/2,a=(l.y0+l.y1)/2,c=Math.max(1e-6,(l.x1-l.x0)/2),h=Math.max(1e-6,(l.y1-l.y0)/2),x=(t-r)/c,d=(e-a)/h,p=Math.hypot(x,d);return s&&p<=1?0:Math.abs(p-1)*Math.min(c,h)}function a(t,e,i,n,s){const o=e.x-t.x;if(0===o)return[t,e];const l=(e.y-t.y)/o;return[n?{x:0,y:t.y+(0-t.x)*l}:t,s?{x:i,y:t.y+(i-t.x)*l}:e]}function c(t){const e=function(t){const e=t.trim();if(e.startsWith("#")){const t=e.slice(1);if(3===t.length||4===t.length){const[e,i,n,s]=[...t].map(t=>parseInt(t+t,16));return[e,i,n].some(Number.isNaN)?null:{r:e,g:i,b:n,a:4===t.length?s/255:1}}if(6===t.length||8===t.length){const e=parseInt(t.slice(0,6),16);if(Number.isNaN(e))return null;const i=8===t.length?parseInt(t.slice(6,8),16)/255:1;return{r:e>>16&255,g:e>>8&255,b:255&e,a:Number.isNaN(i)?1:i}}return null}const i=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(e);return null===i?null:{r:Number(i[1]),g:Number(i[2]),b:Number(i[3]),a:void 0===i[4]?1:Number(i[4])}}(t);if(null===e)return.5;const i=t=>{const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)};return.2126*i(e.r)+.7152*i(e.g)+.0722*i(e.b)}function h(t){return c(t)>.45?"#10131a":"#ffffff"}function x(t,e,i,n,s,o){const l=t.roundRect;"function"==typeof l?l.call(t,e,i,n,s,Math.max(0,Math.min(o,n/2,s/2))):t.rect(e,i,n,s)}const d=new Map;function p(t){d.set(t.id,t)}function y(t){const e=d.get(t);if(void 0===e)throw new Error(`openalgo-charts: unknown drawing tool "${t}"`);return e}function u(t){return d.has(t)}function f(){return Array.from(d.values())}function g(t){const{ctx:e,rc:i,style:n}=t,s=i.dpr;e.strokeStyle=n.color,e.lineWidth=Math.max(1,Math.round(n.lineWidth*s)),e.lineJoin="round",e.lineCap="round",e.setLineDash("dashed"===n.lineStyle?[6*s,4*s]:"dotted"===n.lineStyle?[1*s,3*s]:[])}function m(t){return t.style.fillColor??t.style.color}function b(t,e){if(!0!==t.style.fill)return;const{ctx:i}=t;i.save(),i.globalAlpha=t.style.fillOpacity??.12,i.fillStyle=m(t),e(),i.restore()}function _(t,e,i,n,s){const{ctx:o,rc:l,style:r}=t,a=(r.fontSize??11)*l.dpr;o.save(),o.setLineDash([]),o.font=`${a}px ui-sans-serif, system-ui, sans-serif`,o.textBaseline="middle",o.textAlign="left";const c=o.measureText(e).width;o.globalAlpha=.85,o.fillStyle=l.theme.background,o.fillRect(i-2*l.dpr,n-.75*a,c+4*l.dpr,1.5*a),o.globalAlpha=1,o.fillStyle=s??r.color,o.fillText(e,i,n),o.restore()}function w(t,e,i,n,s,o={}){const{ctx:l,rc:r}=t,a=r.dpr,c=(t.style.fontSize??11)*a;l.save(),l.setLineDash([]),l.globalAlpha=1,l.font=`${c}px ui-sans-serif, system-ui, sans-serif`,l.textBaseline="middle",l.textAlign="left";const d=5*a,p=3*a,y=1.35*c;let u=0;for(const t of e)u=Math.max(u,l.measureText(t).width);const f=u+2*d,g=y*e.length+2*p,m=o.align??"left",b="center"===m?i-f/2:"right"===m?i-f:i,_=o.place??"above",w="above"===_?n-g-4*a:"below"===_?n+4*a:n-g/2;l.beginPath(),x(l,b,w,f,g,3*a),l.fillStyle=s,l.fill(),l.fillStyle=h(s);for(let t=0;t<e.length;t++)l.fillText(e[t],b+d,w+p+y*(t+.5));return l.restore(),g}function M(t,e=0){const[i,n]=Math.abs(t).toFixed(e).split(".");return(t<0?"-":"")+i.replace(/\B(?=(\d{3})+(?!\d))/g,",")+(void 0===n?"":"."+n)}function v(t){const e=new Date(1e3*t),i=t=>String(t).padStart(2,"0");return`${e.getUTCFullYear()}-${i(e.getUTCMonth()+1)}-${i(e.getUTCDate())}`}function T(t){const e=Math.max(0,Math.round(Math.abs(t))),i=Math.floor(e/86400),n=Math.floor(e%86400/3600),s=Math.floor(e%3600/60);return i>0?`${i}d ${n}h`:n>0?`${n}h ${s}m`:`${s}m`}function S(t,e,i){const n=Math.max(8,5*t.style.lineWidth)*t.rc.dpr,s=Math.atan2(i.y-e.y,i.x-e.x);t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(i.x-n*Math.cos(s-.4),i.y-n*Math.sin(s-.4)),t.ctx.lineTo(i.x-n*Math.cos(s+.4),i.y-n*Math.sin(s+.4)),t.ctx.closePath(),t.ctx.fillStyle=t.style.color,t.ctx.fill()}const P="#26a69a",L="#ef5350",k=[0,.236,.382,.5,.618,.786,1];function D(i,n,s,o){return{id:i,name:n,points:2,defaultStyle:{extendLeft:s,extendRight:o},draw:t=>{const[e,i]=a(t.pts[0],t.pts[1],t.rc.plotWidth*t.rc.dpr,t.style.extendLeft??s,t.style.extendRight??o);g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(i,n,l)=>{const r=l.drawing.style.extendLeft??s,c=l.drawing.style.extendRight??o;if(r&&c)return e(i,n,l.pts[0],l.pts[1]);const[h,x]=a(l.pts[0],l.pts[1],l.rc.plotWidth,r,c);return t(i,n,h,x)}}}const $=D("trend-line","Trend Line",!1,!1),O=D("ray","Ray",!1,!0),F=D("extended-line","Extended Line",!0,!0),A={id:"arrow",name:"Arrow",points:2,draw:t=>{const[e,i]=t.pts;g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.stroke();const n=Math.max(8,5*t.style.lineWidth)*t.rc.dpr,s=Math.atan2(i.y-e.y,i.x-e.x);t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(i.x-n*Math.cos(s-.4),i.y-n*Math.sin(s-.4)),t.ctx.lineTo(i.x-n*Math.cos(s+.4),i.y-n*Math.sin(s+.4)),t.ctx.closePath(),t.ctx.fillStyle=t.style.color,t.ctx.fill(),t.ctx.setLineDash([])},distance:(e,i,n)=>t(e,i,n.pts[0],n.pts[1])},N={id:"horizontal-line",name:"Horizontal Line",points:1,defaultStyle:{showLabels:!0},draw:t=>{const e=Math.round(t.pts[0].y)+.5;g(t),t.ctx.beginPath(),t.ctx.moveTo(0,e),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,e),t.ctx.stroke(),t.ctx.setLineDash([]),!1!==t.style.showLabels&&_(t,t.formatPrice(t.drawing.points[0].price),4*t.rc.dpr,e-8*t.rc.dpr)},distance:(t,e,n)=>i(e,n.pts[0].y)},W={id:"horizontal-ray",name:"Horizontal Ray",points:1,defaultStyle:{showLabels:!0},draw:t=>{const e=Math.round(t.pts[0].y)+.5;g(t),t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,e),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,e),t.ctx.stroke(),t.ctx.setLineDash([]),!1!==t.style.showLabels&&_(t,t.formatPrice(t.drawing.points[0].price),t.pts[0].x+4*t.rc.dpr,e-8*t.rc.dpr)},distance:(t,e,n)=>t<n.pts[0].x?null:i(e,n.pts[0].y)},C={id:"vertical-line",name:"Vertical Line",points:1,draw:t=>{const e=Math.round(t.pts[0].x)+.5;g(t),t.ctx.beginPath(),t.ctx.moveTo(e,0),t.ctx.lineTo(e,t.rc.plotHeight*t.rc.dpr),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>n(t,i.pts[0].x)},I={id:"cross-line",name:"Cross Line",points:1,draw:t=>{const e=Math.round(t.pts[0].x)+.5,i=Math.round(t.pts[0].y)+.5;g(t),t.ctx.beginPath(),t.ctx.moveTo(e,0),t.ctx.lineTo(e,t.rc.plotHeight*t.rc.dpr),t.ctx.moveTo(0,i),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,i),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,s)=>Math.min(n(t,s.pts[0].x),i(e,s.pts[0].y))},R={id:"rectangle",name:"Rectangle",points:2,defaultStyle:{fill:!0,fontSize:14,textAlign:"left",textVAlign:"top",textPosition:"inside"},draw:t=>{const e=o(t.pts[0],t.pts[1]);b(t,()=>t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0)),g(t),t.ctx.strokeRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.setLineDash([]),Z(t,e.x0,e.y0,e.x1,e.y1)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},z={id:"ellipse",name:"Ellipse",points:2,defaultStyle:{fill:!0,fontSize:14,textAlign:"center",textVAlign:"middle",textPosition:"inside"},draw:t=>{const e=o(t.pts[0],t.pts[1]),i=(e.x0+e.x1)/2,n=(e.y0+e.y1)/2,s=Math.max(1,(e.x1-e.x0)/2),l=Math.max(1,(e.y1-e.y0)/2),r=()=>{t.ctx.beginPath(),t.ctx.ellipse(i,n,s,l,0,0,2*Math.PI)};b(t,()=>{r(),t.ctx.fill()}),g(t),r(),t.ctx.stroke(),t.ctx.setLineDash([]),Z(t,e.x0,e.y0,e.x1,e.y1)},distance:(t,e,i)=>r(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},j={id:"parallel-channel",name:"Parallel Channel",points:3,defaultStyle:{fill:!0},draw:t=>{const[e,i,n]=t.pts,s=n.y-(e.y+.5*(i.y-e.y)),o={x:e.x,y:e.y+s},l={x:i.x,y:i.y+s};b(t,()=>{t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.lineTo(l.x,l.y),t.ctx.lineTo(o.x,o.y),t.ctx.closePath(),t.ctx.fill()}),g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.moveTo(o.x,o.y),t.ctx.lineTo(l.x,l.y),t.ctx.stroke(),t.ctx.setLineDash([]),Z(t,Math.min(e.x,i.x),Math.min(e.y,i.y,o.y,l.y),Math.max(e.x,i.x),Math.max(e.y,i.y,o.y,l.y))},distance:(e,i,n)=>{const[s,o,l]=n.pts,r=l.y-(s.y+.5*(o.y-s.y)),a=t(e,i,s,o),c=t(e,i,{x:s.x,y:s.y+r},{x:o.x,y:o.y+r});return Math.min(a,c)}};function U(t,e,i){return{id:t,name:e,points:i,defaultStyle:{showLabels:!0,levels:[...k],fill:!0,fillOpacity:.06},draw:t=>{const e=t.style.levels??k,n=t.drawing.points,s=2===i?n[0].price:n[2].price,o=n[1].price-n[0].price,l=Math.min(t.pts[0].x,t.pts[i-1].x),r=Math.max(t.pts[0].x,t.pts[i-1].x),a=!0===t.style.extendRight?t.rc.plotWidth*t.rc.dpr:r;g(t);let c=null;for(const i of e){const e=s+o*i,n=Math.round(t.rc.priceScale.priceToY(e)*t.rc.dpr)+.5;!0===t.style.fill&&null!==c&&(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.06,t.ctx.fillStyle=m(t),t.ctx.fillRect(l,Math.min(c,n),a-l,Math.abs(n-c)),t.ctx.restore()),c=n,t.ctx.beginPath(),t.ctx.moveTo(l,n),t.ctx.lineTo(a,n),t.ctx.stroke(),!1!==t.style.showLabels&&_(t,`${(100*i).toFixed(1)}% ${t.formatPrice(e)}`,l+4*t.rc.dpr,n-8*t.rc.dpr)}t.ctx.setLineDash([])},distance:(t,e,n)=>{const s=n.drawing.style.levels??k,o=n.drawing.points,l=2===i?o[0].price:o[2].price,r=o[1].price-o[0].price,a=Math.min(n.pts[0].x,n.pts[i-1].x),c=!0===n.drawing.style.extendRight?n.rc.plotWidth:Math.max(n.pts[0].x,n.pts[i-1].x);if(t<a-4||t>c+4)return null;let h=1/0;for(const t of s){const i=Math.abs(e-n.rc.priceScale.priceToY(l+r*t));i<h&&(h=i)}return h}}}const B=U("fib-retracement","Fib Retracement",2),H=U("fib-extension","Fib Extension",3),J={id:"measure",name:"Measure",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.14},draw:t=>{const e=o(t.pts[0],t.pts[1]),i=t.rc.dpr,n=t.drawing.points,s=n[1].price-n[0].price,l=0!==n[0].price?s/n[0].price*100:0,r=s>=0,a=r?P:L;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.14,t.ctx.fillStyle=a,t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.restore(),g(t),t.ctx.strokeStyle=a,t.ctx.strokeRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.setLineDash([]);const c=(e.x0+e.x1)/2,h=t.pts[0].y,x=t.pts[1].y;if(t.ctx.strokeStyle=a,t.ctx.beginPath(),t.ctx.moveTo(e.x0,h),t.ctx.lineTo(e.x1,h),t.ctx.stroke(),S(t,{x:e.x0,y:h},{x:e.x1,y:h}),t.ctx.beginPath(),t.ctx.moveTo(c,h),t.ctx.lineTo(c,x),t.ctx.stroke(),S(t,{x:c,y:h},{x:c,y:x}),!1===t.style.showLabels)return;const d=t.rc.dataLayer.timeToIndexFloat(n[0].time),p=t.rc.dataLayer.timeToIndexFloat(n[1].time),y=Math.abs(Math.round(p-d)),u=r?"+":"",f=[`${u}${t.formatPrice(s)} (${u}${l.toFixed(2)}%)`,`${M(y)} bars, ${T(n[1].time-n[0].time)}`],m=t.rc.bars?.();if(void 0!==m&&m.length>0){const t=Math.min(n[0].time,n[1].time),e=Math.max(n[0].time,n[1].time);let i=0,s=!1;for(const n of m)if(!(n.time<t)){if(n.time>e)break;void 0!==n.volume&&(i+=n.volume,s=!0)}s&&f.push(`Vol ${function(t){const e=Math.abs(t);return e>=1e9?`${(t/1e9).toFixed(2)}B`:e>=1e6?`${(t/1e6).toFixed(2)}M`:e>=1e3?`${(t/1e3).toFixed(2)}K`:M(t)}(i)}`)}w(t,f,c,Math.max(h,x)+6*i,a,{align:"center",place:"below"})},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)};function E(t,e,i){return{id:t,name:e,points:1,defaultStyle:{showLabels:!0,fillOpacity:.13,accountSize:1e5,risk:1},expand:(t,e)=>{const n=t[0],s=.01*Math.abs(n.price)||1,o=Math.max(5,Math.round(.08*e.visibleBars)),l=n.time+Math.max(1,e.barSeconds)*o;return i?[n,{time:l,price:n.price+s},{time:l,price:n.price-s}]:[n,{time:l,price:n.price-s},{time:l,price:n.price+s}]},draw:t=>{if(t.drawing.points.length<3||t.pts.length<3)return;const[e,n,s]=t.drawing.points,o=t.rc.dpr,l=Math.min(t.pts[0].x,t.pts[1].x,t.pts[2].x),r=Math.max(t.pts[0].x,t.pts[1].x,t.pts[2].x),a=t.rc.priceScale.priceToY(e.price)*o,c=t.rc.priceScale.priceToY(n.price)*o,h=t.rc.priceScale.priceToY(s.price)*o,x=(e,i,n)=>{t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.13,t.ctx.fillStyle=n,t.ctx.fillRect(l,Math.min(e,i),r-l,Math.abs(i-e)),t.ctx.restore()};x(a,c,P),x(a,h,L),g(t);for(const e of[a,c,h]){const i=Math.round(e)+.5;t.ctx.beginPath(),t.ctx.moveTo(l,i),t.ctx.lineTo(r,i),t.ctx.stroke()}if(t.ctx.setLineDash([]),!1===t.style.showLabels)return;const d=Math.abs(e.price-s.price),p=Math.abs(n.price-e.price),y=d>0?p/d:0,u=t.style.accountSize??0,f=t.style.risk??0,m=d>0&&u>0?Math.floor(u*f/100/d):0,b=t=>(0!==e.price?t/e.price*100:0).toFixed(3),_=t=>m>0?`, Amount: ${M(m*t)}`:"",v=(l+r)/2;w(t,[`Target: ${t.formatPrice(p)} (${b(p)}%)${_(p)}`],v,c,P,{align:"center",place:c<=a?"above":"below"}),w(t,[`Stop: ${t.formatPrice(d)} (${b(d)}%)${_(d)}`],v,h,L,{align:"center",place:h>=a?"below":"above"}),w(t,[`${i?"Long":"Short"} · Qty: ${m>0?M(m):"—"}`,`Risk/reward ratio: ${y.toFixed(2)}`],v,a,t.rc.theme.background,{align:"center",place:"middle"})},distance:(t,e,i)=>{if(i.pts.length<3)return null;const n=Math.min(i.pts[0].x,i.pts[1].x,i.pts[2].x),s=Math.max(i.pts[0].x,i.pts[1].x,i.pts[2].x);if(t<n-4||t>s+4)return null;const o=i.drawing.points.map(t=>i.rc.priceScale.priceToY(t.price)),l=Math.min(...o),r=Math.max(...o);return e>=l&&e<=r?0:Math.min(Math.abs(e-l),Math.abs(e-r))}}}const Y=E("long-position","Long Position",!0),V=E("short-position","Short Position",!1),q=1.35,G="ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif";function K(t,e){const i="bold"===t.fontWeight?"700 ":"";return`${"italic"===t.fontStyle?"italic ":""}${i}${e}px ${t.fontFamily??G}`}function Q(t,e,i){const n=(e.text??"").split("\n");if(!0!==e.wrap)return n;const s=[];for(const e of n){const n=e.split(/\s+/).filter(t=>""!==t);if(0===n.length){s.push("");continue}let o=n[0];for(let e=1;e<n.length;e++){const l=`${o} ${n[e]}`;t.measureText(l).width>i?(s.push(o),o=n[e]):o=l}s.push(o)}return s}function X(t,e,i){const n=(e.fontSize??13)*i;t.font=K(e,n);const s=Q(t,e,(e.wrapWidth??220)*i);let o=0;for(const e of s)o=Math.max(o,t.measureText(e).width);const l=n*q;return{lines:s,width:o+10*i,height:s.length*l+10*i,lineHeight:l}}function Z(t,e,i,n,s){const{ctx:o,rc:l,style:r}=t,a=r.text;if(void 0===a||""===a)return;const c=l.dpr,h=(r.fontSize??14)*c,x=6*c;o.save(),o.setLineDash([]),o.font=K(r,h),o.fillStyle=r.fontColor??r.color,o.textBaseline="top";const d=!0===r.wrap?Q(o,r,Math.max(20*c,n-e-2*x)):a.split("\n"),p=h*q,y=d.length*p,u=r.textAlign??"left";o.textAlign=u;const f="center"===u?(e+n)/2:"right"===u?n-x:e+x;let g;if("outside"===r.textPosition)g=i-y-x;else{const t=r.textVAlign??"top";g="middle"===t?(i+s-y)/2:"bottom"===t?s-y-x:i+x}for(const t of d)o.fillText(t,f,g),g+=p;o.restore()}const tt={id:"text",name:"Text",points:1,defaultStyle:{text:"Text",fontSize:14,fontWeight:"normal",fontStyle:"normal",background:!1,backgroundOpacity:1,border:!1,wrap:!1,wrapWidth:220,textAlign:"left"},draw:t=>{const{ctx:e,rc:i,style:n}=t,s=i.dpr,o=X(e,n,s),l=t.pts[0].x,r=t.pts[0].y;e.save(),e.setLineDash([]),!0===n.background&&(e.globalAlpha=n.backgroundOpacity??1,e.fillStyle=n.backgroundColor??i.theme.background,e.beginPath(),e.roundRect(l,r,o.width,o.height,4*s),e.fill(),e.globalAlpha=1),!0===n.border&&(e.strokeStyle=n.borderColor??n.color,e.lineWidth=Math.max(1,n.lineWidth*s),e.beginPath(),e.roundRect(l,r,o.width,o.height,4*s),e.stroke()),e.font=K(n,(n.fontSize??13)*s),e.fillStyle=n.color,e.textBaseline="top";const a=n.textAlign??"left";e.textAlign=a;const c="center"===a?l+o.width/2:"right"===a?l+o.width-5*s:l+5*s;let h=r+5*s;for(const t of o.lines)e.fillText(t,c,h),h+=o.lineHeight;e.restore()},distance:(t,e,i)=>{const n=i.drawing.style,s=n.fontSize??13,o=i.pts[0],l=function(){if(void 0!==et)return et;try{et="undefined"==typeof document?null:document.createElement("canvas").getContext("2d")}catch{et=null}return et}(),r=null===l?{width:(n.text??"").length*s*.6+10,height:s*q+10}:X(l,n,1);return t>=o.x-3&&t<=o.x+r.width+3&&e>=o.y-3&&e<=o.y+r.height+3?0:null}};let et;const it={id:"path",name:"Path",points:0,draw:t=>{if(!(t.pts.length<2)){g(t),t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.setLineDash([]),S(t,t.pts[t.pts.length-2],t.pts[t.pts.length-1])}},distance:(t,e,i)=>i.pts.length<2?null:s(t,e,i.pts)},nt={id:"brush",name:"Brush",points:0,freehand:!0,defaultStyle:{lineWidth:2},draw:t=>{if(!(t.pts.length<2)){g(t),t.ctx.lineCap="round",t.ctx.lineJoin="round",t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>i.pts.length<2?null:s(t,e,i.pts)},st={id:"rotated-rectangle",name:"Rotated Rectangle",points:3,defaultStyle:{fill:!0,fillOpacity:.12},draw:t=>{if(t.pts.length<3)return;const e=ot(t.pts[0],t.pts[1],t.pts[2]);t.ctx.beginPath(),t.ctx.moveTo(e[0].x,e[0].y);for(let i=1;i<4;i++)t.ctx.lineTo(e[i].x,e[i].y);t.ctx.closePath(),!0===t.style.fill&&(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.12,t.ctx.fillStyle=m(t),t.ctx.fill(),t.ctx.restore()),g(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(e,i,n)=>{if(n.pts.length<3)return null;const s=ot(n.pts[0],n.pts[1],n.pts[2]);if(!0===n.drawing.style.fill&&function(t,e,i){let n=!1;for(let s=0,o=i.length-1;s<i.length;o=s++){const l=i[s],r=i[o];l.y>e!=r.y>e&&t<(r.x-l.x)*(e-l.y)/(r.y-l.y)+l.x&&(n=!n)}return n}(e,i,s))return 0;let o=1/0;for(let n=0;n<4;n++)o=Math.min(o,t(e,i,s[n],s[(n+1)%4]));return o}};function ot(t,e,i){const n=e.x-t.x,s=e.y-t.y,o=Math.hypot(n,s)||1,l=-s/o,r=n/o,a=(i.x-e.x)*l+(i.y-e.y)*r;return[t,e,{x:e.x+l*a,y:e.y+r*a},{x:t.x+l*a,y:t.y+r*a}]}const lt={id:"double-curve",name:"Double Curve",points:3,draw:t=>{if(t.pts.length<3)return;const[e,i,n]=t.pts;g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.bezierCurveTo(i.x,i.y,e.x+n.x-i.x,e.y+n.y-i.y,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{if(i.pts.length<3)return null;const[n,o,l]=i.pts;return s(t,e,function(t,e,i,n,s){const o=[];for(let l=0;l<=s;l++){const r=l/s,a=1-r,c=a*a*a,h=3*a*a*r,x=3*a*r*r,d=r*r*r;o.push({x:c*t.x+h*e.x+x*i.x+d*n.x,y:c*t.y+h*e.y+x*i.y+d*n.y})}return o}(n,o,{x:n.x+l.x-o.x,y:n.y+l.y-o.y},l,24))}};const rt={id:"cyclic-lines",name:"Cyclic Lines",points:2,defaultStyle:{lineStyle:"dashed"},draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(!Number.isFinite(n)||Math.abs(n)<.5)return;const s=t.rc.plotHeight*t.rc.dpr,o=t.rc.plotWidth*t.rc.dpr;g(t),t.ctx.beginPath();for(let i=0;i<=12;i++){const l=Math.round(e.x+n*i)+.5;l<0||l>o||(t.ctx.moveTo(l,0),t.ctx.lineTo(l,s))}t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const n=i.pts[1].x-i.pts[0].x;if(!Number.isFinite(n)||Math.abs(n)<.5)return null;const s=Math.round((t-i.pts[0].x)/n);return s<0||s>12?null:Math.abs(t-(i.pts[0].x+n*s))}},at={id:"time-cycles",name:"Time Cycles",points:2,draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(!Number.isFinite(n)||Math.abs(n)<1)return;const s=Math.abs(n)/2;g(t),t.ctx.beginPath();for(let i=0;i<12;i++){const o=e.x+n*i+n/2;o+s<0||o-s>t.rc.plotWidth*t.rc.dpr||(t.ctx.moveTo(o+s,e.y),t.ctx.arc(o,e.y,s,0,Math.PI,!0))}t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=s.x-n.x;if(!Number.isFinite(o)||Math.abs(o)<1)return null;const l=Math.abs(o)/2;let r=1/0;for(let i=0;i<12;i++){const s=n.x+o*i+o/2;e>n.y+2||(r=Math.min(r,Math.abs(Math.hypot(t-s,e-n.y)-l)))}return Number.isFinite(r)?r:null}},ct={id:"sine-line",name:"Sine Line",points:2,draw:t=>{const e=ht(t.pts[0],t.pts[1]);if(null!==e){g(t),t.ctx.beginPath(),t.ctx.moveTo(e[0].x,e[0].y);for(let i=1;i<e.length;i++)t.ctx.lineTo(e[i].x,e[i].y);t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>{const n=ht(i.pts[0],i.pts[1]);return null===n?null:s(t,e,n)}};function ht(t,e){const i=e.x-t.x,n=e.y-t.y;if(!Number.isFinite(i)||Math.abs(i)<1)return null;const s=[];for(let e=0;e<=64;e++){const o=e/64;s.push({x:t.x+i*o,y:t.y+n*Math.sin(o*Math.PI*2)})}return s}const xt={id:"price-label",name:"Price Label",points:1,defaultStyle:{fontSize:12},draw:t=>{const e=t.pts[0],i=t.rc.dpr,n=void 0!==t.style.text&&""!==t.style.text?t.style.text:t.formatPrice(t.drawing.points[0].price),s=pt(t,[n],e.x+18*i,e.y-30*i);yt(t,s,e,t.style.color),ut(t,s,[n],t.style.color)},distance:(t,e,i)=>{const n=i.pts[0],s=n.x+18,o=n.y-30-11;return t>=s&&t<=s+64&&e>=o&&e<=o+22||Math.hypot(t-n.x,e-n.y)<=10?0:null}},dt={id:"callout",name:"Callout",points:2,defaultStyle:{fontSize:12,text:"Note"},draw:t=>{if(t.pts.length<2)return;const[e,i]=t.pts,n=(t.style.text??"Note").split("\n"),s=pt(t,n,i.x,i.y);yt(t,s,e,t.style.color),ut(t,s,n,t.style.color)},distance:(e,i,n)=>{if(n.pts.length<2)return null;const[s,o]=n.pts;return Math.abs(e-o.x)<=60&&Math.abs(i-o.y)<=16?0:t(e,i,s,o)}};function pt(t,e,i,n){const s=t.rc.dpr,o=(t.style.fontSize??12)*s;t.ctx.save(),t.ctx.font=`${o}px ui-sans-serif, system-ui, sans-serif`;let l=0;for(const i of e)l=Math.max(l,t.ctx.measureText(i).width);t.ctx.restore();const r=l+14*s,a=1.4*o*e.length+8*s;return{x:i-r/2,y:n-a/2,w:r,h:a}}function yt(t,e,i,n){const s=t.rc.dpr,o=e.x+e.w/2,l=e.y+e.h/2,r=Math.atan2(i.y-l,i.x-o),a=5*s,c=o+Math.cos(r)*(e.w/2-a),h=l+Math.sin(r)*(e.h/2-a);t.ctx.save(),t.ctx.setLineDash([]),t.ctx.fillStyle=n,t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(c-Math.sin(r)*a,h+Math.cos(r)*a),t.ctx.lineTo(c+Math.sin(r)*a,h-Math.cos(r)*a),t.ctx.closePath(),t.ctx.fill(),t.ctx.beginPath(),x(t.ctx,e.x,e.y,e.w,e.h,5*s),t.ctx.fill(),t.ctx.beginPath(),t.ctx.arc(i.x,i.y,2.5*s,0,2*Math.PI),t.ctx.fill(),t.ctx.restore()}function ut(t,e,i,n){const s=t.rc.dpr,o=(t.style.fontSize??12)*s;t.ctx.save(),t.ctx.setLineDash([]),t.ctx.font=`${o}px ui-sans-serif, system-ui, sans-serif`,t.ctx.textAlign="center",t.ctx.textBaseline="middle",t.ctx.fillStyle=t.style.fontColor??h(n);const l=1.4*o,r=e.y+e.h/2-l*(i.length-1)/2;for(let n=0;n<i.length;n++)t.ctx.fillText(i[n],e.x+e.w/2,r+l*n);t.ctx.restore()}const ft={id:"flag-mark",name:"Flag Mark",points:1,defaultStyle:{fill:!0,fillOpacity:.95},draw:t=>{const e=t.pts[0],i=t.rc.dpr,n=22*i,s=15*i,o=11*i;g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(e.x,e.y-n),t.ctx.stroke(),t.ctx.setLineDash([]),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y-n),t.ctx.lineTo(e.x+s,e.y-n+.28*o),t.ctx.lineTo(e.x+.72*s,e.y-n+.5*o),t.ctx.lineTo(e.x+s,e.y-n+.72*o),t.ctx.lineTo(e.x,e.y-n+o),t.ctx.closePath(),t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.95,t.ctx.fillStyle=m(t),t.ctx.fill(),t.ctx.restore()},distance:(t,e,i)=>{const n=i.pts[0];return t>=n.x-4&&t<=n.x+16&&e>=n.y-24&&e<=n.y+2||Math.hypot(t-n.x,e-n.y)<=8?0:null}},gt={id:"price-range",name:"Price Range",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.1},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,n=i[1].price-i[0].price,s=0!==i[0].price?n/i[0].price*100:0,o=n>=0,l=o?"#26a69a":"#ef5350",r=Math.min(t.pts[0].x,t.pts[1].x),a=Math.max(t.pts[0].x,t.pts[1].x)+(t.pts[0].x===t.pts[1].x?60*e:0),c=t.pts[0].y,h=t.pts[1].y;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.1,t.ctx.fillStyle=l,t.ctx.fillRect(r,Math.min(c,h),a-r,Math.abs(h-c)),t.ctx.restore(),g(t),t.ctx.strokeStyle=l,t.ctx.beginPath();for(const e of[c,h])t.ctx.moveTo(r,Math.round(e)+.5),t.ctx.lineTo(a,Math.round(e)+.5);const x=(r+a)/2;t.ctx.moveTo(x,c),t.ctx.lineTo(x,h);const d=h>c?1:-1;t.ctx.moveTo(x-4*e,h-5*e*d),t.ctx.lineTo(x,h),t.ctx.lineTo(x+4*e,h-5*e*d),t.ctx.moveTo(x-4*e,c+5*e*d),t.ctx.lineTo(x,c),t.ctx.lineTo(x+4*e,c+5*e*d),t.ctx.stroke(),t.ctx.setLineDash([]);const p=o?"+":"";_(t,`${p}${t.formatPrice(n)} (${p}${s.toFixed(2)}%)`,x+6*e,(c+h)/2,l)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)},mt={id:"date-range",name:"Date Range",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.1},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,n=t.style.color,s=t.pts[0].x,o=t.pts[1].x,l=Math.min(t.pts[0].y,t.pts[1].y),r=Math.max(t.pts[0].y,t.pts[1].y)+(t.pts[0].y===t.pts[1].y?40*e:0);t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.1,t.ctx.fillStyle=n,t.ctx.fillRect(Math.min(s,o),l,Math.abs(o-s),r-l),t.ctx.restore(),g(t),t.ctx.beginPath();for(const e of[s,o])t.ctx.moveTo(Math.round(e)+.5,l),t.ctx.lineTo(Math.round(e)+.5,r);const a=(l+r)/2;t.ctx.moveTo(s,a),t.ctx.lineTo(o,a);const c=o>s?1:-1;t.ctx.moveTo(o-5*e*c,a-4*e),t.ctx.lineTo(o,a),t.ctx.lineTo(o-5*e*c,a+4*e),t.ctx.moveTo(s+5*e*c,a-4*e),t.ctx.lineTo(s,a),t.ctx.lineTo(s+5*e*c,a+4*e),t.ctx.stroke(),t.ctx.setLineDash([]);const h=t.rc.dataLayer.timeToIndexFloat(i[0].time),x=t.rc.dataLayer.timeToIndexFloat(i[1].time);_(t,`${Math.abs(Math.round(x-h))} bars`,(s+o)/2,l-10*e,n)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)},bt={id:"forecast",name:"Forecast",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.12,lineStyle:"dashed"},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,[n,s]=t.pts,o=i[1].price-i[0].price,l=0!==i[0].price?o/i[0].price*100:0,r=o>=0,a=r?"#26a69a":"#ef5350",c=.35*Math.abs(s.y-n.y)+6*e;if(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.12,t.ctx.fillStyle=a,t.ctx.beginPath(),t.ctx.moveTo(n.x,n.y),t.ctx.lineTo(s.x,s.y-c),t.ctx.lineTo(s.x,s.y+c),t.ctx.closePath(),t.ctx.fill(),t.ctx.restore(),g(t),t.ctx.strokeStyle=a,t.ctx.beginPath(),t.ctx.moveTo(n.x,n.y),t.ctx.lineTo(s.x,s.y),t.ctx.stroke(),t.ctx.setLineDash([]),t.ctx.beginPath(),t.ctx.arc(n.x,n.y,3*e,0,2*Math.PI),t.ctx.fillStyle=a,t.ctx.fill(),!1===t.style.showLabels)return;const h=r?"+":"";w(t,[t.formatPrice(i[0].price),v(i[0].time)],n.x,n.y,a,{align:"center"}),w(t,[`${h}${t.formatPrice(o)} (${h}${l.toFixed(2)}%) in ${T(i[1].time-i[0].time)}`,`${t.formatPrice(i[1].price)} · ${v(i[1].time)}`],s.x,s.y,a,{align:"center",place:"below"});const x=t.rc.bars?.();if(void 0!==x&&x.length>0&&x[x.length-1].time>=i[1].time){let n=!1;for(const t of x)if(!(t.time<i[0].time)){if(t.time>i[1].time)break;if(r?t.high>=i[1].price:t.low<=i[1].price){n=!0;break}}w(t,[n?"SUCCESS":"MISSED"],s.x,s.y+36*e,n?"#4a934a":"#8a4a4a",{align:"center",place:"below"})}},distance:(e,i,n)=>t(e,i,n.pts[0],n.pts[1])},_t={id:"circle",name:"Circle",points:2,defaultStyle:{fill:!0},draw:t=>{const[e,i]=t.pts,n=Math.hypot(i.x-e.x,i.y-e.y);t.ctx.beginPath(),t.ctx.arc(e.x,e.y,n,0,2*Math.PI),b(t,()=>t.ctx.fill()),g(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=Math.hypot(s.x-n.x,s.y-n.y),l=Math.hypot(t-n.x,e-n.y);return!0===i.drawing.style.fill&&l<=o?0:Math.abs(l-o)}},wt={id:"triangle",name:"Triangle",points:3,defaultStyle:{fill:!0},draw:t=>{t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y),t.ctx.lineTo(t.pts[1].x,t.pts[1].y),t.ctx.lineTo(t.pts[2].x,t.pts[2].y),t.ctx.closePath(),b(t,()=>t.ctx.fill()),g(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>s(t,e,[...i.pts,i.pts[0]])},Mt={id:"polyline",name:"Polyline",points:0,defaultStyle:{fill:!1},draw:t=>{if(!(t.pts.length<2)){t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);!0===t.style.fill&&(t.ctx.closePath(),b(t,()=>t.ctx.fill())),g(t),t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>s(t,e,i.pts)};const vt={id:"arc",name:"Arc",points:3,draw:t=>{const[e,i,n]=t.pts;g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.quadraticCurveTo(2*i.x-(e.x+n.x)/2,2*i.y-(e.y+n.y)/2,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>s(t,e,function(t,e,i){const n=2*e.x-(t.x+i.x)/2,s=2*e.y-(t.y+i.y)/2,o=[];for(let e=0;e<=16;e++){const l=e/16,r=1-l;o.push({x:r*r*t.x+2*r*l*n+l*l*i.x,y:r*r*t.y+2*r*l*s+l*l*i.y})}return o}(i.pts[0],i.pts[1],i.pts[2]))},Tt={id:"curve",name:"Curve",points:3,draw:t=>{const[e,i,n]=t.pts;g(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.quadraticCurveTo(i.x,i.y,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,o,l]=i.pts,r=[];for(let t=0;t<=16;t++){const e=t/16,i=1-e;r.push({x:i*i*n.x+2*i*e*o.x+e*e*l.x,y:i*i*n.y+2*i*e*o.y+e*e*l.y})}return s(t,e,r)}};function St(t,e,i){return{id:t,name:e,points:1,defaultStyle:{fill:!0,fillOpacity:.9},draw:t=>{const e=t.rc.dpr,{x:n,y:s}=t.pts[0],o=16*e,l=6*e,r=i?1:-1,a=s+2*r*e;t.ctx.beginPath(),t.ctx.moveTo(n,a),t.ctx.lineTo(n-l,a+r*l),t.ctx.lineTo(n-l/2.4,a+r*l),t.ctx.lineTo(n-l/2.4,a+r*o),t.ctx.lineTo(n+l/2.4,a+r*o),t.ctx.lineTo(n+l/2.4,a+r*l),t.ctx.lineTo(n+l,a+r*l),t.ctx.closePath(),t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.9,t.ctx.fillStyle=m(t),t.ctx.fill(),t.ctx.restore(),g(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,n)=>{const s=n.pts[0],o=i?e-s.y:s.y-e;return Math.abs(t-s.x)<=8&&o>=-4&&o<=20?0:null}}}const Pt=St("arrow-up","Arrow Up",!0),Lt=St("arrow-down","Arrow Down",!1),kt={id:"highlighter",name:"Highlighter",points:0,freehand:!0,defaultStyle:{lineWidth:12,fillOpacity:.28},draw:t=>{if(t.pts.length<2)return;const e=t.rc.dpr;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.28,t.ctx.strokeStyle=t.style.color,t.ctx.lineWidth=Math.max(2,(t.style.lineWidth||12)*e),t.ctx.lineCap="round",t.ctx.lineJoin="round",t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.restore()},distance:(t,e,i)=>{const n=s(t,e,i.pts);return n<=Math.max(6,(i.drawing.style.lineWidth??12)/2)?0:n}},Dt={id:"fib-channel",name:"Fib Channel",points:3,defaultStyle:{showLabels:!0,levels:[...k]},draw:t=>{const e=t.style.levels??k,[i,n,s]=t.pts,o=s.x-n.x,l=s.y-n.y;g(t);for(const s of e)t.ctx.beginPath(),t.ctx.moveTo(i.x+o*s,i.y+l*s),t.ctx.lineTo(n.x+o*s,n.y+l*s),t.ctx.stroke(),!1!==t.style.showLabels&&_(t,`${(100*s).toFixed(1)}%`,n.x+o*s+4*t.rc.dpr,n.y+l*s);t.ctx.setLineDash([])},distance:(e,i,n)=>{const s=n.drawing.style.levels??k,[o,l,r]=n.pts;let a=1/0;for(const n of s){const s=t(e,i,{x:o.x+(r.x-l.x)*n,y:o.y+(r.y-l.y)*n},{x:l.x+(r.x-l.x)*n,y:l.y+(r.y-l.y)*n});s<a&&(a=s)}return a}},$t=[0,1,2,3,5,8,13,21,34,55],Ot={id:"fib-time-zone",name:"Fib Time Zone",points:2,defaultStyle:{showLabels:!0},draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(Math.abs(n)<.5)return;const s=t.rc.dpr,o=t.rc.plotWidth*s;g(t);for(const i of $t){const l=e.x+n*i;l<-10||l>o+10||(t.ctx.beginPath(),t.ctx.moveTo(Math.round(l)+.5,0),t.ctx.lineTo(Math.round(l)+.5,t.rc.plotHeight*s),t.ctx.stroke(),!1!==t.style.showLabels&&_(t,String(i),l+3*s,12*s))}t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=s.x-n.x;if(Math.abs(o)<.5)return null;let l=1/0;for(const e of $t)l=Math.min(l,Math.abs(t-(n.x+o*e)));return l}},Ft=[.236,.382,.5,.618,.786,1],At={id:"fib-fan",name:"Fib Speed Fan",points:2,defaultStyle:{showLabels:!0,levels:[...Ft]},draw:t=>{const e=t.style.levels??Ft,[i,n]=t.pts,s=t.rc.dpr,o=t.rc.plotWidth*s;g(t);for(const l of e){const e=a(i,{x:n.x,y:i.y+(n.y-i.y)*l},o,!1,!0)[1];t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(e.x,e.y),t.ctx.stroke(),!1!==t.style.showLabels&&_(t,`${(100*l).toFixed(1)}%`,n.x+4*s,i.y+(n.y-i.y)*l)}t.ctx.setLineDash([])},distance:(e,i,n)=>{const s=n.drawing.style.levels??Ft,[o,l]=n.pts;let r=1/0;for(const c of s)r=Math.min(r,t(e,i,o,a(o,{x:l.x,y:o.y+(l.y-o.y)*c},n.rc.plotWidth,!1,!0)[1]));return r}},Nt=[[1,.125],[1,.25],[1,.5],[1,1],[.5,1],[.25,1],[.125,1]],Wt=[$,O,F,A,N,W,C,I,R,z,j,B,H,Y,V,bt,J,gt,mt,_t,wt,Mt,vt,Tt,st,lt,Pt,Lt,kt,nt,Dt,Ot,At,{id:"gann-fan",name:"Gann Fan",points:2,defaultStyle:{showLabels:!0},draw:t=>{const[e,i]=t.pts,n=t.rc.dpr,s=t.rc.plotWidth*n,o=i.x-e.x,l=i.y-e.y;if(!(Math.abs(o)<.5)){g(t);for(const[i,n]of Nt){const r=a(e,{x:e.x+o*i,y:e.y+l*n},s,!1,!0)[1];t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(r.x,r.y),t.ctx.stroke()}!1!==t.style.showLabels&&_(t,"1x1",i.x+4*n,i.y),t.ctx.setLineDash([])}},distance:(e,i,n)=>{const[s,o]=n.pts,l=o.x-s.x,r=o.y-s.y;let c=1/0;for(const[o,h]of Nt)c=Math.min(c,t(e,i,s,a(s,{x:s.x+l*o,y:s.y+r*h},n.rc.plotWidth,!1,!0)[1]));return c}},{id:"gann-box",name:"Gann Box",points:2,defaultStyle:{fill:!0,fillOpacity:.05},draw:t=>{const e=o(t.pts[0],t.pts[1]);b(t,()=>t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0)),g(t);const i=e.x1-e.x0,n=e.y1-e.y0;t.ctx.beginPath();for(let s=0;s<=8;s++){const o=Math.round(e.x0+i*s/8)+.5,l=Math.round(e.y0+n*s/8)+.5;t.ctx.moveTo(o,e.y0),t.ctx.lineTo(o,e.y1),t.ctx.moveTo(e.x0,l),t.ctx.lineTo(e.x1,l)}t.ctx.moveTo(e.x0,e.y1),t.ctx.lineTo(e.x1,e.y0),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},rt,at,ct,tt,it,xt,dt,ft];let Ct=!1;function It(){if(!Ct){Ct=!0;for(const t of Wt)p(t)}}function Rt(t,e){return u(t)&&!0===y(t).freehand&&e>2?[0,e-1]:Array.from({length:e},(t,e)=>e)}class zt{constructor(){Object.defineProperty(this,"_drawings",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_selected",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_preview",{enumerable:!0,configurable:!0,writable:!0,value:null})}attached(t){this._host=t}detached(){this._host=null}zOrder(){return"top"}autoscaleInfo(){return null}setDrawings(t){this._drawings=t.slice(),this._host?.requestUpdate()}setSelected(t){t!==this._selected&&(this._selected=t,this._host?.requestUpdate())}setPreview(t){this._preview=t,this._host?.requestUpdate()}_project(t,e,i){return{x:t.timeScale.indexToX(t.dataLayer.timeToIndexFloat(e)),y:t.priceScale.priceToY(i)}}_points(t,e){return e.points.map(e=>this._project(t,e.time,e.price))}draw(t,e){const i=null===this._preview?this._drawings:[...this._drawings,this._preview];for(const n of i){if(!1===n.visible||!u(n.tool))continue;const i=y(n.tool);if(n.points.length<Math.max(1,i.points))continue;const s=this._points(e,n);if(!s.some(t=>Number.isFinite(t.x)&&Number.isFinite(t.y)))continue;const o={color:n.style.color??e.theme.lineColor,lineWidth:n.style.lineWidth??1.5,...n.style},l=e.dpr;t.save(),n===this._preview&&(t.globalAlpha=.7),i.draw({ctx:t,rc:e,drawing:n,selected:n.id===this._selected,pts:s.map(t=>({x:t.x*l,y:t.y*l})),style:{...o,color:o.color,lineWidth:o.lineWidth},formatPrice:t=>e.priceScale.format(t)}),t.restore(),n.id===this._selected&&!0!==n.locked&&this._drawHandles(t,e,s,n.tool)}}_drawHandles(t,e,i,n){const s=e.dpr;t.save(),t.setLineDash([]),t.lineWidth=Math.max(1,Math.round(1.5*s));for(const o of Rt(n,i.length)){const n=i[o];t.beginPath(),t.arc(n.x*s,n.y*s,5*s,0,2*Math.PI),t.fillStyle=e.theme.background,t.fill(),t.strokeStyle=e.theme.lineColor,t.stroke()}t.restore()}hitTest(t,e,i){if(null!==this._selected){const n=this._drawings.find(t=>t.id===this._selected);if(void 0!==n&&!0!==n.locked){const s=this._points(i,n);for(const i of Rt(n.tool,s.length))if(Math.hypot(t-s[i].x,e-s[i].y)<=7)return{externalId:`draw:${n.id}#${i}`,zOrder:"top",distance:0,cursor:"grabbing",draggable:!0}}}let n=null;for(let s=this._drawings.length-1;s>=0;s--){const o=this._drawings[s];if(!1===o.visible||!0===o.locked||!u(o.tool))continue;const l=y(o.tool);if(o.points.length<Math.max(1,l.points))continue;const r=l.distance(t,e,{pts:this._points(i,o),drawing:o,rc:i});null===r||!Number.isFinite(r)||r>6||(null===n||r<n.distance)&&(n={id:o.id,distance:r})}return null===n?null:{externalId:`draw:${n.id}`,zOrder:"top",distance:n.distance,cursor:"move",draggable:!0}}}let jt=1;class Ut{constructor(t,e={}){Object.defineProperty(this,"_chart",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_layers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_drawings",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_tool",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_pending",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_pendingPane",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_selected",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_undo",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_redo",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_dragStart",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_off",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_lastCursor",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_lastBar",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._chart=t,this._opts={magnet:e.magnet??!1,stayInDrawingMode:e.stayInDrawingMode??!1,historyLimit:e.historyLimit??50,defaultStyle:e.defaultStyle??{}},this._off.push(t.on("click",t=>this._onClick(t))),this._off.push(t.on("crosshair:move",t=>this._onCrosshair(t))),this._off.push(t.on("drag",t=>this._onDrag(t))),this._off.push(t.on("drag:end",()=>this._onDragEnd())),this._off.push(t.on("dblclick",()=>{this.finish()}));const i=t.drawingState();Array.isArray(i)&&(this._drawings=i.map(t=>({...t}))),this._sync()}setTool(t){if(null!==t&&!u(t))throw new Error(`openalgo-charts: unknown drawing tool "${t}"`);this._tool=t,this._pending=[],this._setPlacementMode(null!==t),this._syncPreview(),this._chart.emit("draw:tool",{tool:t})}_setPlacementMode(t){const e=this._chart;e.setPlacementMode?.(t)}activeTool(){return this._tool}setOptions(t){this._opts={...this._opts,...t,defaultStyle:t.defaultStyle??this._opts.defaultStyle}}drawings(){return this._drawings}get(t){return this._drawings.find(e=>e.id===t)}add(t){this._pushUndo();const e=y(t.tool),i={...t,id:t.id??"d"+jt++,style:{...this._opts.defaultStyle,...e.defaultStyle,...t.style}};return this._drawings.push(i),this._sync(),this._chart.emit("draw:add",{drawing:i}),i}update(t,e){const i=this.get(t);return void 0!==i&&(this._pushUndo(),void 0!==e.points&&(i.points=e.points.map(t=>({...t}))),void 0!==e.style&&(i.style={...i.style,...e.style}),void 0!==e.locked&&(i.locked=e.locked),void 0!==e.visible&&(i.visible=e.visible),this._sync(),this._chart.emit("draw:update",{drawing:i}),!0)}remove(t){const e=this._drawings.findIndex(e=>e.id===t);if(e<0)return!1;this._pushUndo();const[i]=this._drawings.splice(e,1);return this._selected===t&&(this._selected=null),this._sync(),this._chart.emit("draw:remove",{drawing:i}),!0}clear(){0!==this._drawings.length&&(this._pushUndo(),this._drawings=[],this._selected=null,this._sync())}select(t){this._selected=t;for(const e of this._layers.values())e.setSelected(t);this._chart.emit("draw:select",{id:t})}selected(){return this._selected}undo(){const t=this._undo.pop();return void 0!==t&&(this._redo.push(JSON.stringify(this._drawings)),this._drawings=JSON.parse(t),this._drawings.some(t=>t.id===this._selected)||(this._selected=null),this._sync(),!0)}redo(){const t=this._redo.pop();return void 0!==t&&(this._undo.push(JSON.stringify(this._drawings)),this._drawings=JSON.parse(t),this._sync(),!0)}canUndo(){return this._undo.length>0}canRedo(){return this._redo.length>0}toJSON(){return this._drawings.map(t=>({...t,points:t.points.map(t=>({...t})),style:{...t.style}}))}fromJSON(t){this._drawings=Array.isArray(t)?t.map(t=>({...t})):[],this._selected=null,this._undo=[],this._redo=[],this._sync()}destroy(){this._setPlacementMode(!1);for(const t of this._off)t();this._off.length=0;for(const[t,e]of this._layers)this._chart.removePrimitive(e);this._layers.clear()}_onCrosshair(t){const e=t.time,i=t.price,n=t.paneIndex??null;this._lastCursor=null===e||null===i||null===n?null:{time:e,price:i,paneIndex:n},this._lastBar=t.bar??null,null!==this._tool&&!0===t.pressed&&this._isFreehand()&&null!==e&&null!==i&&null!==n&&Number.isFinite(e)&&Number.isFinite(i)?this._inkPoint({time:e,price:i},n):null!==this._tool&&this._pending.length>0&&this._syncPreview()}_expand(t,e){if(void 0===t.expand)return e;const i=this._chart.dataLayer,n=i.baseIndex,s=n>0?i.indexToTime(n-1):void 0,o=n>=0?i.indexToTime(n):void 0,l=void 0!==s&&void 0!==o&&o>s?o-s:60,r=this._chart.getVisibleLogicalRange(),a=null===r?60:Math.max(1,r.to-r.from);return t.expand(e,{barSeconds:l,visibleBars:a})}_isFreehand(){return null!==this._tool&&!0===y(this._tool).freehand}_inkPoint(t,e){if(0===this._pending.length)this._pendingPane=e;else{if(e!==this._pendingPane)return;{const e=this._pending[this._pending.length-1];if(e.time===t.time&&e.price===t.price)return}}this._pending.push(t),this._syncPreview()}_commit(t){const e=y(this._tool),i=this.add({tool:e.id,points:t,style:{},paneIndex:this._pendingPane});this._pending=[],this._opts.stayInDrawingMode||(this._tool=null,this._setPlacementMode(!1)),this._syncPreview(),this.select(i.id),this._chart.emit("draw:tool",{tool:this._tool})}_finishFreehand(){const t=this._pending;this._pending=[],t.length<2?this._syncPreview():this._commit(t)}finish(){if(null===this._tool||0===this._pending.length)return!1;const t=y(this._tool);if(0!==t.points||!0===t.freehand)return!1;const e=this._pending;return e.length<2?(this._pending=[],this._syncPreview(),!1):(this._commit(e),!0)}_onClick(t){if(null===this._tool)null!==t.id&&t.id.startsWith("draw:")?this.select(t.id.slice(5).split("#")[0]):null===t.id&&this.select(null);else{if(this._isFreehand())return void(!0===t.viaDrag&&this._finishFreehand());if(!0===t.viaDrag&&0===this._pending.length)return;if(null===t.price||!Number.isFinite(t.price)||!Number.isFinite(t.time))return;this._placePoint({time:t.time,price:this._snap(t.price,t.paneIndex)},t.paneIndex)}}_placePoint(t,e){0===this._pending.length&&(this._pendingPane=e),this._pending.push(t);const i=y(this._tool);i.points>0&&this._pending.length>=i.points?this._commit(this._expand(i,this._pending)):this._syncPreview()}_snap(t,e){if(!this._opts.magnet||0!==e)return t;const i=this._lastBar;if(null===i)return t;let n=t,s=1/0;for(const e of[i.open,i.high,i.low,i.close]){const i=Math.abs(e-t);i<s&&(s=i,n=e)}return n}_onDrag(t){if(!t.id.startsWith("draw:"))return;const[e,i]=t.id.slice(5).split("#"),n=this.get(e);if(void 0===n||!0===n.locked)return;const s=void 0===i?null:Number(i);null!==this._dragStart&&this._dragStart.id===e&&this._dragStart.handle===s||(this._pushUndo(),this._dragStart={id:e,handle:s,points:n.points.map(t=>({...t})),from:{time:t.fromTime??t.time,price:t.fromPrice??t.price}});const o=this._dragStart;if(null===s){const e=t.time-o.from.time,i=t.price-o.from.price;n.points=o.points.map(t=>({time:t.time+e,price:t.price+i}))}else s>=0&&s<n.points.length&&(n.points=o.points.map((e,i)=>i===s?{time:t.time,price:t.price}:{...e}));this._sync()}_onDragEnd(){if(null===this._dragStart)return;const t=this.get(this._dragStart.id);this._dragStart=null,void 0!==t&&this._chart.emit("draw:update",{drawing:t})}_layerFor(t){let e=this._layers.get(t);return void 0===e&&(e=new zt,this._chart.addPrimitive(e,t),this._layers.set(t,e)),e}_sync(){const t=new Map;for(const e of this._drawings){const i=t.get(e.paneIndex)??[];i.push(e),t.set(e.paneIndex,i)}for(const[e,i]of t)this._layerFor(e).setDrawings(i);for(const[e,i]of this._layers)t.has(e)||i.setDrawings([]),i.setSelected(this._selected);this._chart.setDrawingState(this.toJSON())}_syncPreview(){for(const t of this._layers.values())t.setPreview(null);if(null===this._tool||0===this._pending.length)return;const t=this._lastCursor,e=null===t?this._pending:[...this._pending,{time:t.time,price:t.price}];this._layerFor(this._pendingPane).setPreview({id:"__preview",tool:this._tool,points:e,style:this._opts.defaultStyle,paneIndex:this._pendingPane})}_pushUndo(){this._undo.push(JSON.stringify(this._drawings)),this._undo.length>this._opts.historyLimit&&this._undo.shift(),this._redo=[]}}const Bt="draw";It();export{A as ARROW,Wt as BUILTIN_DRAWING_TOOLS,I as CROSS_LINE,Bt as DRAW_TIER,Ut as DrawingController,zt as DrawingLayer,z as ELLIPSE,F as EXTENDED_LINE,H as FIB_EXTENSION,B as FIB_RETRACEMENT,N as HORIZONTAL_LINE,W as HORIZONTAL_RAY,Y as LONG_POSITION,J as MEASURE,j as PARALLEL_CHANNEL,it as PATH,O as RAY,R as RECTANGLE,V as SHORT_POSITION,tt as TEXT,$ as TREND_LINE,C as VERTICAL_LINE,r as distToEllipse,e as distToLine,s as distToPolyline,l as distToRect,t as distToSegment,a as extendSegment,y as getDrawingTool,u as hasDrawingTool,o as rectOf,It as registerBuiltinDrawingTools,p as registerDrawingTool,f as registeredDrawingTools};
|
|
1
|
+
function t(t,e,i,n){const s=n.x-i.x,o=n.y-i.y,l=s*s+o*o;if(0===l)return Math.hypot(t-i.x,e-i.y);let r=((t-i.x)*s+(e-i.y)*o)/l;return r=r<0?0:r>1?1:r,Math.hypot(t-(i.x+r*s),e-(i.y+r*o))}function e(t,e,i,n){const s=n.x-i.x,o=n.y-i.y,l=Math.hypot(s,o);return 0===l?Math.hypot(t-i.x,e-i.y):Math.abs(o*(t-i.x)-s*(e-i.y))/l}function i(t,e){return Math.abs(t-e)}function n(t,e){return Math.abs(t-e)}function s(e,i,n){let s=1/0;for(let o=1;o<n.length;o++){const l=t(e,i,n[o-1],n[o]);l<s&&(s=l)}return s}function o(t,e){return{x0:Math.min(t.x,e.x),y0:Math.min(t.y,e.y),x1:Math.max(t.x,e.x),y1:Math.max(t.y,e.y)}}function l(e,i,n,s,l){const r=o(n,s);if(e>=r.x0&&e<=r.x1&&i>=r.y0&&i<=r.y1&&l)return 0;const c=[{x:r.x0,y:r.y0},{x:r.x1,y:r.y0},{x:r.x1,y:r.y1},{x:r.x0,y:r.y1}];let a=1/0;for(let n=0;n<4;n++){const s=t(e,i,c[n],c[(n+1)%4]);s<a&&(a=s)}return a}function r(t,e,i,n,s){const l=o(i,n),r=(l.x0+l.x1)/2,c=(l.y0+l.y1)/2,a=Math.max(1e-6,(l.x1-l.x0)/2),h=Math.max(1e-6,(l.y1-l.y0)/2),x=(t-r)/a,d=(e-c)/h,p=Math.hypot(x,d);return s&&p<=1?0:Math.abs(p-1)*Math.min(a,h)}function c(t,e,i,n,s){const o=e.x-t.x;if(0===o)return[t,e];const l=(e.y-t.y)/o;return[n?{x:0,y:t.y+(0-t.x)*l}:t,s?{x:i,y:t.y+(i-t.x)*l}:e]}function a(t){const e=function(t){const e=t.trim();if(e.startsWith("#")){const t=e.slice(1);if(3===t.length||4===t.length){const[e,i,n,s]=[...t].map(t=>parseInt(t+t,16));return[e,i,n].some(Number.isNaN)?null:{r:e,g:i,b:n,a:4===t.length?s/255:1}}if(6===t.length||8===t.length){const e=parseInt(t.slice(0,6),16);if(Number.isNaN(e))return null;const i=8===t.length?parseInt(t.slice(6,8),16)/255:1;return{r:e>>16&255,g:e>>8&255,b:255&e,a:Number.isNaN(i)?1:i}}return null}const i=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(e);return null===i?null:{r:Number(i[1]),g:Number(i[2]),b:Number(i[3]),a:void 0===i[4]?1:Number(i[4])}}(t);if(null===e)return.5;const i=t=>{const e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)};return.2126*i(e.r)+.7152*i(e.g)+.0722*i(e.b)}function h(t){return a(t)>.45?"#10131a":"#ffffff"}function x(t,e,i,n,s,o){const l=t.roundRect;"function"==typeof l?l.call(t,e,i,n,s,Math.max(0,Math.min(o,n/2,s/2))):t.rect(e,i,n,s)}const d=new Map;function p(t){d.set(t.id,t)}function y(t){const e=d.get(t);if(void 0===e)throw new Error(`openalgo-charts: unknown drawing tool "${t}"`);return e}function u(t){return d.has(t)}function f(){return Array.from(d.values())}function g(t){const e=t.split("+").map(t=>t.trim().toLowerCase());return{key:e[e.length-1]??"",alt:e.includes("alt"),ctrl:e.includes("ctrl")||e.includes("control"),shift:e.includes("shift")}}function m(t){const e=(t.key??"").toLowerCase();if(""===e)return null;const i=!0===t.altKey,n=!0===t.ctrlKey||!0===t.metaKey,s=!0===t.shiftKey;if(!i&&!n)return null;for(const t of d.values()){if(void 0===t.shortcut)continue;const o=g(t.shortcut);if(o.key===e&&o.alt===i&&o.ctrl===n&&o.shift===s)return t.id}return null}function b(){const t={};for(const e of d.values())void 0!==e.shortcut&&(t[e.id]=e.shortcut);return t}function _(t){const{ctx:e,rc:i,style:n}=t,s=i.dpr;e.strokeStyle=n.color,e.lineWidth=Math.max(1,Math.round(n.lineWidth*s)),e.lineJoin="round",e.lineCap="round",e.setLineDash("dashed"===n.lineStyle?[6*s,4*s]:"dotted"===n.lineStyle?[1*s,3*s]:[])}function w(t){return t.style.fillColor??t.style.color}function v(t,e){if(!0!==t.style.fill)return;const{ctx:i}=t;i.save(),i.globalAlpha=t.style.fillOpacity??.12,i.fillStyle=w(t),e(),i.restore()}function M(t,e,i,n,s){const{ctx:o,rc:l,style:r}=t,c=(r.fontSize??11)*l.dpr;o.save(),o.setLineDash([]),o.font=`${c}px ui-sans-serif, system-ui, sans-serif`,o.textBaseline="middle",o.textAlign="left";const a=o.measureText(e).width;o.globalAlpha=.85,o.fillStyle=l.theme.background,o.fillRect(i-2*l.dpr,n-.75*c,a+4*l.dpr,1.5*c),o.globalAlpha=1,o.fillStyle=s??r.color,o.fillText(e,i,n),o.restore()}function T(t,e,i,n,s,o={}){const{ctx:l,rc:r}=t,c=r.dpr,a=(t.style.fontSize??11)*c;l.save(),l.setLineDash([]),l.globalAlpha=1,l.font=`${a}px ui-sans-serif, system-ui, sans-serif`,l.textBaseline="middle",l.textAlign="left";const d=5*c,p=3*c,y=1.35*a;let u=0;for(const t of e)u=Math.max(u,l.measureText(t).width);const f=u+2*d,g=y*e.length+2*p,m=o.align??"left",b="center"===m?i-f/2:"right"===m?i-f:i,_=o.place??"above",w="above"===_?n-g-4*c:"below"===_?n+4*c:n-g/2;l.beginPath(),x(l,b,w,f,g,3*c),l.fillStyle=s,l.fill(),l.fillStyle=h(s);for(let t=0;t<e.length;t++)l.fillText(e[t],b+d,w+p+y*(t+.5));return l.restore(),g}function S(t,e=0){const[i,n]=Math.abs(t).toFixed(e).split(".");return(t<0?"-":"")+i.replace(/\B(?=(\d{3})+(?!\d))/g,",")+(void 0===n?"":"."+n)}function P(t){const e=new Date(1e3*t),i=t=>String(t).padStart(2,"0");return`${e.getUTCFullYear()}-${i(e.getUTCMonth()+1)}-${i(e.getUTCDate())}`}function L(t){const e=Math.max(0,Math.round(Math.abs(t))),i=Math.floor(e/86400),n=Math.floor(e%86400/3600),s=Math.floor(e%3600/60);return i>0?`${i}d ${n}h`:n>0?`${n}h ${s}m`:`${s}m`}function k(t,e,i){const n=Math.max(8,5*t.style.lineWidth)*t.rc.dpr,s=Math.atan2(i.y-e.y,i.x-e.x);t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(i.x-n*Math.cos(s-.4),i.y-n*Math.sin(s-.4)),t.ctx.lineTo(i.x-n*Math.cos(s+.4),i.y-n*Math.sin(s+.4)),t.ctx.closePath(),t.ctx.fillStyle=t.style.color,t.ctx.fill()}const D="#26a69a",$="#ef5350",O=[0,.236,.382,.5,.618,.786,1];function F(i,n,s,o){return{id:i,name:n,points:2,defaultStyle:{extendLeft:s,extendRight:o},draw:t=>{const[e,i]=c(t.pts[0],t.pts[1],t.rc.plotWidth*t.rc.dpr,t.style.extendLeft??s,t.style.extendRight??o);_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(i,n,l)=>{const r=l.drawing.style.extendLeft??s,a=l.drawing.style.extendRight??o;if(r&&a)return e(i,n,l.pts[0],l.pts[1]);const[h,x]=c(l.pts[0],l.pts[1],l.rc.plotWidth,r,a);return t(i,n,h,x)}}}const A={...F("trend-line","Trend Line",!1,!1),shortcut:"Alt+T"},C=F("ray","Ray",!1,!0),N=F("extended-line","Extended Line",!0,!0),W={id:"arrow",name:"Arrow",points:2,draw:t=>{const[e,i]=t.pts;_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.stroke();const n=Math.max(8,5*t.style.lineWidth)*t.rc.dpr,s=Math.atan2(i.y-e.y,i.x-e.x);t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(i.x-n*Math.cos(s-.4),i.y-n*Math.sin(s-.4)),t.ctx.lineTo(i.x-n*Math.cos(s+.4),i.y-n*Math.sin(s+.4)),t.ctx.closePath(),t.ctx.fillStyle=t.style.color,t.ctx.fill(),t.ctx.setLineDash([])},distance:(e,i,n)=>t(e,i,n.pts[0],n.pts[1])},I={id:"horizontal-line",name:"Horizontal Line",points:1,shortcut:"Alt+H",defaultStyle:{showLabels:!0},draw:t=>{const e=Math.round(t.pts[0].y)+.5;_(t),t.ctx.beginPath(),t.ctx.moveTo(0,e),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,e),t.ctx.stroke(),t.ctx.setLineDash([]),!1!==t.style.showLabels&&M(t,t.formatPrice(t.drawing.points[0].price),4*t.rc.dpr,e-8*t.rc.dpr)},distance:(t,e,n)=>i(e,n.pts[0].y)},R={id:"horizontal-ray",name:"Horizontal Ray",points:1,shortcut:"Alt+J",defaultStyle:{showLabels:!0},draw:t=>{const e=Math.round(t.pts[0].y)+.5;_(t),t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,e),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,e),t.ctx.stroke(),t.ctx.setLineDash([]),!1!==t.style.showLabels&&M(t,t.formatPrice(t.drawing.points[0].price),t.pts[0].x+4*t.rc.dpr,e-8*t.rc.dpr)},distance:(t,e,n)=>t<n.pts[0].x?null:i(e,n.pts[0].y)},z={id:"vertical-line",name:"Vertical Line",points:1,shortcut:"Alt+V",draw:t=>{const e=Math.round(t.pts[0].x)+.5;_(t),t.ctx.beginPath(),t.ctx.moveTo(e,0),t.ctx.lineTo(e,t.rc.plotHeight*t.rc.dpr),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>n(t,i.pts[0].x)},j={id:"cross-line",name:"Cross Line",points:1,shortcut:"Alt+C",draw:t=>{const e=Math.round(t.pts[0].x)+.5,i=Math.round(t.pts[0].y)+.5;_(t),t.ctx.beginPath(),t.ctx.moveTo(e,0),t.ctx.lineTo(e,t.rc.plotHeight*t.rc.dpr),t.ctx.moveTo(0,i),t.ctx.lineTo(t.rc.plotWidth*t.rc.dpr,i),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,s)=>Math.min(n(t,s.pts[0].x),i(e,s.pts[0].y))},U={id:"rectangle",name:"Rectangle",points:2,defaultStyle:{fill:!0,fontSize:14,textAlign:"left",textVAlign:"top",textPosition:"inside"},draw:t=>{const e=o(t.pts[0],t.pts[1]);v(t,()=>t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0)),_(t),t.ctx.strokeRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.setLineDash([]),it(t,e.x0,e.y0,e.x1,e.y1)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},B={id:"ellipse",name:"Ellipse",points:2,defaultStyle:{fill:!0,fontSize:14,textAlign:"center",textVAlign:"middle",textPosition:"inside"},draw:t=>{const e=o(t.pts[0],t.pts[1]),i=(e.x0+e.x1)/2,n=(e.y0+e.y1)/2,s=Math.max(1,(e.x1-e.x0)/2),l=Math.max(1,(e.y1-e.y0)/2),r=()=>{t.ctx.beginPath(),t.ctx.ellipse(i,n,s,l,0,0,2*Math.PI)};v(t,()=>{r(),t.ctx.fill()}),_(t),r(),t.ctx.stroke(),t.ctx.setLineDash([]),it(t,e.x0,e.y0,e.x1,e.y1)},distance:(t,e,i)=>r(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},H={id:"parallel-channel",name:"Parallel Channel",points:3,defaultStyle:{fill:!0},draw:t=>{const[e,i,n]=t.pts,s=n.y-(e.y+.5*(i.y-e.y)),o={x:e.x,y:e.y+s},l={x:i.x,y:i.y+s};v(t,()=>{t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.lineTo(l.x,l.y),t.ctx.lineTo(o.x,o.y),t.ctx.closePath(),t.ctx.fill()}),_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(i.x,i.y),t.ctx.moveTo(o.x,o.y),t.ctx.lineTo(l.x,l.y),t.ctx.stroke(),t.ctx.setLineDash([]),it(t,Math.min(e.x,i.x),Math.min(e.y,i.y,o.y,l.y),Math.max(e.x,i.x),Math.max(e.y,i.y,o.y,l.y))},distance:(e,i,n)=>{const[s,o,l]=n.pts,r=l.y-(s.y+.5*(o.y-s.y)),c=t(e,i,s,o),a=t(e,i,{x:s.x,y:s.y+r},{x:o.x,y:o.y+r});return Math.min(c,a)}};function J(t,e,i){return{id:t,name:e,points:i,defaultStyle:{showLabels:!0,levels:[...O],fill:!0,fillOpacity:.06},draw:t=>{const e=t.style.levels??O,n=t.drawing.points,s=2===i?n[0].price:n[2].price,o=n[1].price-n[0].price,l=Math.min(t.pts[0].x,t.pts[i-1].x),r=Math.max(t.pts[0].x,t.pts[i-1].x),c=!0===t.style.extendRight?t.rc.plotWidth*t.rc.dpr:r;_(t);let a=null;for(const i of e){const e=s+o*i,n=Math.round(t.rc.priceScale.priceToY(e)*t.rc.dpr)+.5;!0===t.style.fill&&null!==a&&(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.06,t.ctx.fillStyle=w(t),t.ctx.fillRect(l,Math.min(a,n),c-l,Math.abs(n-a)),t.ctx.restore()),a=n,t.ctx.beginPath(),t.ctx.moveTo(l,n),t.ctx.lineTo(c,n),t.ctx.stroke(),!1!==t.style.showLabels&&M(t,`${(100*i).toFixed(1)}% ${t.formatPrice(e)}`,l+4*t.rc.dpr,n-8*t.rc.dpr)}t.ctx.setLineDash([])},distance:(t,e,n)=>{const s=n.drawing.style.levels??O,o=n.drawing.points,l=2===i?o[0].price:o[2].price,r=o[1].price-o[0].price,c=Math.min(n.pts[0].x,n.pts[i-1].x),a=!0===n.drawing.style.extendRight?n.rc.plotWidth:Math.max(n.pts[0].x,n.pts[i-1].x);if(t<c-4||t>a+4)return null;let h=1/0;for(const t of s){const i=Math.abs(e-n.rc.priceScale.priceToY(l+r*t));i<h&&(h=i)}return h}}}const E=J("fib-retracement","Fib Retracement",2),Y=J("fib-extension","Fib Extension",3),V={id:"measure",name:"Measure",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.14},draw:t=>{const e=o(t.pts[0],t.pts[1]),i=t.rc.dpr,n=t.drawing.points,s=n[1].price-n[0].price,l=0!==n[0].price?s/n[0].price*100:0,r=s>=0,c=r?D:$;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.14,t.ctx.fillStyle=c,t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.restore(),_(t),t.ctx.strokeStyle=c,t.ctx.strokeRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0),t.ctx.setLineDash([]);const a=(e.x0+e.x1)/2,h=t.pts[0].y,x=t.pts[1].y;if(t.ctx.strokeStyle=c,t.ctx.beginPath(),t.ctx.moveTo(e.x0,h),t.ctx.lineTo(e.x1,h),t.ctx.stroke(),k(t,{x:e.x0,y:h},{x:e.x1,y:h}),t.ctx.beginPath(),t.ctx.moveTo(a,h),t.ctx.lineTo(a,x),t.ctx.stroke(),k(t,{x:a,y:h},{x:a,y:x}),!1===t.style.showLabels)return;const d=t.rc.dataLayer.timeToIndexFloat(n[0].time),p=t.rc.dataLayer.timeToIndexFloat(n[1].time),y=Math.abs(Math.round(p-d)),u=r?"+":"",f=[`${u}${t.formatPrice(s)} (${u}${l.toFixed(2)}%)`,`${S(y)} bars, ${L(n[1].time-n[0].time)}`],g=t.rc.bars?.();if(void 0!==g&&g.length>0){const t=Math.min(n[0].time,n[1].time),e=Math.max(n[0].time,n[1].time);let i=0,s=!1;for(const n of g)if(!(n.time<t)){if(n.time>e)break;void 0!==n.volume&&(i+=n.volume,s=!0)}s&&f.push(`Vol ${function(t){const e=Math.abs(t);return e>=1e9?`${(t/1e9).toFixed(2)}B`:e>=1e6?`${(t/1e6).toFixed(2)}M`:e>=1e3?`${(t/1e3).toFixed(2)}K`:S(t)}(i)}`)}T(t,f,a,Math.max(h,x)+6*i,c,{align:"center",place:"below"})},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)};function q(t,e,i){return{id:t,name:e,points:1,defaultStyle:{showLabels:!0,fillOpacity:.13,accountSize:1e5,risk:1},expand:(t,e)=>{const n=t[0],s=.01*Math.abs(n.price)||1,o=Math.max(5,Math.round(.08*e.visibleBars)),l=n.time+Math.max(1,e.barSeconds)*o;return i?[n,{time:l,price:n.price+s},{time:l,price:n.price-s}]:[n,{time:l,price:n.price-s},{time:l,price:n.price+s}]},draw:t=>{if(t.drawing.points.length<3||t.pts.length<3)return;const[e,n,s]=t.drawing.points,o=t.rc.dpr,l=Math.min(t.pts[0].x,t.pts[1].x,t.pts[2].x),r=Math.max(t.pts[0].x,t.pts[1].x,t.pts[2].x),c=t.rc.priceScale.priceToY(e.price)*o,a=t.rc.priceScale.priceToY(n.price)*o,h=t.rc.priceScale.priceToY(s.price)*o,x=(e,i,n)=>{t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.13,t.ctx.fillStyle=n,t.ctx.fillRect(l,Math.min(e,i),r-l,Math.abs(i-e)),t.ctx.restore()};x(c,a,D),x(c,h,$),_(t);for(const e of[c,a,h]){const i=Math.round(e)+.5;t.ctx.beginPath(),t.ctx.moveTo(l,i),t.ctx.lineTo(r,i),t.ctx.stroke()}if(t.ctx.setLineDash([]),!1===t.style.showLabels)return;const d=Math.abs(e.price-s.price),p=Math.abs(n.price-e.price),y=d>0?p/d:0,u=t.style.accountSize??0,f=t.style.risk??0,g=d>0&&u>0?Math.floor(u*f/100/d):0,m=t=>(0!==e.price?t/e.price*100:0).toFixed(3),b=t=>g>0?`, Amount: ${S(g*t)}`:"",w=(l+r)/2;T(t,[`Target: ${t.formatPrice(p)} (${m(p)}%)${b(p)}`],w,a,D,{align:"center",place:a<=c?"above":"below"}),T(t,[`Stop: ${t.formatPrice(d)} (${m(d)}%)${b(d)}`],w,h,$,{align:"center",place:h>=c?"below":"above"}),T(t,[`${i?"Long":"Short"} · Qty: ${g>0?S(g):"—"}`,`Risk/reward ratio: ${y.toFixed(2)}`],w,c,t.rc.theme.background,{align:"center",place:"middle"})},distance:(t,e,i)=>{if(i.pts.length<3)return null;const n=Math.min(i.pts[0].x,i.pts[1].x,i.pts[2].x),s=Math.max(i.pts[0].x,i.pts[1].x,i.pts[2].x);if(t<n-4||t>s+4)return null;const o=i.drawing.points.map(t=>i.rc.priceScale.priceToY(t.price)),l=Math.min(...o),r=Math.max(...o);return e>=l&&e<=r?0:Math.min(Math.abs(e-l),Math.abs(e-r))}}}const K=q("long-position","Long Position",!0),G=q("short-position","Short Position",!1),Q=1.35,X="ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif";function Z(t,e){const i="bold"===t.fontWeight?"700 ":"";return`${"italic"===t.fontStyle?"italic ":""}${i}${e}px ${t.fontFamily??X}`}function tt(t,e,i){const n=(e.text??"").split("\n");if(!0!==e.wrap)return n;const s=[];for(const e of n){const n=e.split(/\s+/).filter(t=>""!==t);if(0===n.length){s.push("");continue}let o=n[0];for(let e=1;e<n.length;e++){const l=`${o} ${n[e]}`;t.measureText(l).width>i?(s.push(o),o=n[e]):o=l}s.push(o)}return s}function et(t,e,i){const n=(e.fontSize??13)*i;t.font=Z(e,n);const s=tt(t,e,(e.wrapWidth??220)*i);let o=0;for(const e of s)o=Math.max(o,t.measureText(e).width);const l=n*Q;return{lines:s,width:o+10*i,height:s.length*l+10*i,lineHeight:l}}function it(t,e,i,n,s){const{ctx:o,rc:l,style:r}=t,c=r.text;if(void 0===c||""===c)return;const a=l.dpr,h=(r.fontSize??14)*a,x=6*a;o.save(),o.setLineDash([]),o.font=Z(r,h),o.fillStyle=r.fontColor??r.color,o.textBaseline="top";const d=!0===r.wrap?tt(o,r,Math.max(20*a,n-e-2*x)):c.split("\n"),p=h*Q,y=d.length*p,u=r.textAlign??"left";o.textAlign=u;const f="center"===u?(e+n)/2:"right"===u?n-x:e+x;let g;if("outside"===r.textPosition)g=i-y-x;else{const t=r.textVAlign??"top";g="middle"===t?(i+s-y)/2:"bottom"===t?s-y-x:i+x}for(const t of d)o.fillText(t,f,g),g+=p;o.restore()}const nt={id:"text",name:"Text",points:1,defaultStyle:{text:"Text",fontSize:14,fontWeight:"normal",fontStyle:"normal",background:!1,backgroundOpacity:1,border:!1,wrap:!1,wrapWidth:220,textAlign:"left"},draw:t=>{const{ctx:e,rc:i,style:n}=t,s=i.dpr,o=et(e,n,s),l=t.pts[0].x,r=t.pts[0].y;e.save(),e.setLineDash([]),!0===n.background&&(e.globalAlpha=n.backgroundOpacity??1,e.fillStyle=n.backgroundColor??i.theme.background,e.beginPath(),e.roundRect(l,r,o.width,o.height,4*s),e.fill(),e.globalAlpha=1),!0===n.border&&(e.strokeStyle=n.borderColor??n.color,e.lineWidth=Math.max(1,n.lineWidth*s),e.beginPath(),e.roundRect(l,r,o.width,o.height,4*s),e.stroke()),e.font=Z(n,(n.fontSize??13)*s),e.fillStyle=n.color,e.textBaseline="top";const c=n.textAlign??"left";e.textAlign=c;const a="center"===c?l+o.width/2:"right"===c?l+o.width-5*s:l+5*s;let h=r+5*s;for(const t of o.lines)e.fillText(t,a,h),h+=o.lineHeight;e.restore()},distance:(t,e,i)=>{const n=i.drawing.style,s=n.fontSize??13,o=i.pts[0],l=function(){if(void 0!==st)return st;try{st="undefined"==typeof document?null:document.createElement("canvas").getContext("2d")}catch{st=null}return st}(),r=null===l?{width:(n.text??"").length*s*.6+10,height:s*Q+10}:et(l,n,1);return t>=o.x-3&&t<=o.x+r.width+3&&e>=o.y-3&&e<=o.y+r.height+3?0:null}};let st;const ot={id:"path",name:"Path",points:0,draw:t=>{if(!(t.pts.length<2)){_(t),t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.setLineDash([]),k(t,t.pts[t.pts.length-2],t.pts[t.pts.length-1])}},distance:(t,e,i)=>i.pts.length<2?null:s(t,e,i.pts)},lt={id:"brush",name:"Brush",points:0,freehand:!0,defaultStyle:{lineWidth:2},draw:t=>{if(!(t.pts.length<2)){_(t),t.ctx.lineCap="round",t.ctx.lineJoin="round",t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>i.pts.length<2?null:s(t,e,i.pts)},rt={id:"rotated-rectangle",name:"Rotated Rectangle",points:3,defaultStyle:{fill:!0,fillOpacity:.12},draw:t=>{if(t.pts.length<3)return;const e=ct(t.pts[0],t.pts[1],t.pts[2]);t.ctx.beginPath(),t.ctx.moveTo(e[0].x,e[0].y);for(let i=1;i<4;i++)t.ctx.lineTo(e[i].x,e[i].y);t.ctx.closePath(),!0===t.style.fill&&(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.12,t.ctx.fillStyle=w(t),t.ctx.fill(),t.ctx.restore()),_(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(e,i,n)=>{if(n.pts.length<3)return null;const s=ct(n.pts[0],n.pts[1],n.pts[2]);if(!0===n.drawing.style.fill&&function(t,e,i){let n=!1;for(let s=0,o=i.length-1;s<i.length;o=s++){const l=i[s],r=i[o];l.y>e!=r.y>e&&t<(r.x-l.x)*(e-l.y)/(r.y-l.y)+l.x&&(n=!n)}return n}(e,i,s))return 0;let o=1/0;for(let n=0;n<4;n++)o=Math.min(o,t(e,i,s[n],s[(n+1)%4]));return o}};function ct(t,e,i){const n=e.x-t.x,s=e.y-t.y,o=Math.hypot(n,s)||1,l=-s/o,r=n/o,c=(i.x-e.x)*l+(i.y-e.y)*r;return[t,e,{x:e.x+l*c,y:e.y+r*c},{x:t.x+l*c,y:t.y+r*c}]}const at={id:"double-curve",name:"Double Curve",points:3,draw:t=>{if(t.pts.length<3)return;const[e,i,n]=t.pts;_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.bezierCurveTo(i.x,i.y,e.x+n.x-i.x,e.y+n.y-i.y,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{if(i.pts.length<3)return null;const[n,o,l]=i.pts;return s(t,e,function(t,e,i,n,s){const o=[];for(let l=0;l<=s;l++){const r=l/s,c=1-r,a=c*c*c,h=3*c*c*r,x=3*c*r*r,d=r*r*r;o.push({x:a*t.x+h*e.x+x*i.x+d*n.x,y:a*t.y+h*e.y+x*i.y+d*n.y})}return o}(n,o,{x:n.x+l.x-o.x,y:n.y+l.y-o.y},l,24))}};const ht={id:"cyclic-lines",name:"Cyclic Lines",points:2,defaultStyle:{lineStyle:"dashed"},draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(!Number.isFinite(n)||Math.abs(n)<.5)return;const s=t.rc.plotHeight*t.rc.dpr,o=t.rc.plotWidth*t.rc.dpr;_(t),t.ctx.beginPath();for(let i=0;i<=12;i++){const l=Math.round(e.x+n*i)+.5;l<0||l>o||(t.ctx.moveTo(l,0),t.ctx.lineTo(l,s))}t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const n=i.pts[1].x-i.pts[0].x;if(!Number.isFinite(n)||Math.abs(n)<.5)return null;const s=Math.round((t-i.pts[0].x)/n);return s<0||s>12?null:Math.abs(t-(i.pts[0].x+n*s))}},xt={id:"time-cycles",name:"Time Cycles",points:2,draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(!Number.isFinite(n)||Math.abs(n)<1)return;const s=Math.abs(n)/2;_(t),t.ctx.beginPath();for(let i=0;i<12;i++){const o=e.x+n*i+n/2;o+s<0||o-s>t.rc.plotWidth*t.rc.dpr||(t.ctx.moveTo(o+s,e.y),t.ctx.arc(o,e.y,s,0,Math.PI,!0))}t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=s.x-n.x;if(!Number.isFinite(o)||Math.abs(o)<1)return null;const l=Math.abs(o)/2;let r=1/0;for(let i=0;i<12;i++){const s=n.x+o*i+o/2;e>n.y+2||(r=Math.min(r,Math.abs(Math.hypot(t-s,e-n.y)-l)))}return Number.isFinite(r)?r:null}},dt={id:"sine-line",name:"Sine Line",points:2,draw:t=>{const e=pt(t.pts[0],t.pts[1]);if(null!==e){_(t),t.ctx.beginPath(),t.ctx.moveTo(e[0].x,e[0].y);for(let i=1;i<e.length;i++)t.ctx.lineTo(e[i].x,e[i].y);t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>{const n=pt(i.pts[0],i.pts[1]);return null===n?null:s(t,e,n)}};function pt(t,e){const i=e.x-t.x,n=e.y-t.y;if(!Number.isFinite(i)||Math.abs(i)<1)return null;const s=[];for(let e=0;e<=64;e++){const o=e/64;s.push({x:t.x+i*o,y:t.y+n*Math.sin(o*Math.PI*2)})}return s}const yt={id:"price-label",name:"Price Label",points:1,defaultStyle:{fontSize:12},draw:t=>{const e=t.pts[0],i=t.rc.dpr,n=void 0!==t.style.text&&""!==t.style.text?t.style.text:t.formatPrice(t.drawing.points[0].price),s=ft(t,[n],e.x+18*i,e.y-30*i);gt(t,s,e,t.style.color),mt(t,s,[n],t.style.color)},distance:(t,e,i)=>{const n=i.pts[0],s=n.x+18,o=n.y-30-11;return t>=s&&t<=s+64&&e>=o&&e<=o+22||Math.hypot(t-n.x,e-n.y)<=10?0:null}},ut={id:"callout",name:"Callout",points:2,defaultStyle:{fontSize:12,text:"Note"},draw:t=>{if(t.pts.length<2)return;const[e,i]=t.pts,n=(t.style.text??"Note").split("\n"),s=ft(t,n,i.x,i.y);gt(t,s,e,t.style.color),mt(t,s,n,t.style.color)},distance:(e,i,n)=>{if(n.pts.length<2)return null;const[s,o]=n.pts;return Math.abs(e-o.x)<=60&&Math.abs(i-o.y)<=16?0:t(e,i,s,o)}};function ft(t,e,i,n){const s=t.rc.dpr,o=(t.style.fontSize??12)*s;t.ctx.save(),t.ctx.font=`${o}px ui-sans-serif, system-ui, sans-serif`;let l=0;for(const i of e)l=Math.max(l,t.ctx.measureText(i).width);t.ctx.restore();const r=l+14*s,c=1.4*o*e.length+8*s;return{x:i-r/2,y:n-c/2,w:r,h:c}}function gt(t,e,i,n){const s=t.rc.dpr,o=e.x+e.w/2,l=e.y+e.h/2,r=Math.atan2(i.y-l,i.x-o),c=5*s,a=o+Math.cos(r)*(e.w/2-c),h=l+Math.sin(r)*(e.h/2-c);t.ctx.save(),t.ctx.setLineDash([]),t.ctx.fillStyle=n,t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(a-Math.sin(r)*c,h+Math.cos(r)*c),t.ctx.lineTo(a+Math.sin(r)*c,h-Math.cos(r)*c),t.ctx.closePath(),t.ctx.fill(),t.ctx.beginPath(),x(t.ctx,e.x,e.y,e.w,e.h,5*s),t.ctx.fill(),t.ctx.beginPath(),t.ctx.arc(i.x,i.y,2.5*s,0,2*Math.PI),t.ctx.fill(),t.ctx.restore()}function mt(t,e,i,n){const s=t.rc.dpr,o=(t.style.fontSize??12)*s;t.ctx.save(),t.ctx.setLineDash([]),t.ctx.font=`${o}px ui-sans-serif, system-ui, sans-serif`,t.ctx.textAlign="center",t.ctx.textBaseline="middle",t.ctx.fillStyle=t.style.fontColor??h(n);const l=1.4*o,r=e.y+e.h/2-l*(i.length-1)/2;for(let n=0;n<i.length;n++)t.ctx.fillText(i[n],e.x+e.w/2,r+l*n);t.ctx.restore()}const bt={id:"flag-mark",name:"Flag Mark",points:1,defaultStyle:{fill:!0,fillOpacity:.95},draw:t=>{const e=t.pts[0],i=t.rc.dpr,n=22*i,s=15*i,o=11*i;_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(e.x,e.y-n),t.ctx.stroke(),t.ctx.setLineDash([]),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y-n),t.ctx.lineTo(e.x+s,e.y-n+.28*o),t.ctx.lineTo(e.x+.72*s,e.y-n+.5*o),t.ctx.lineTo(e.x+s,e.y-n+.72*o),t.ctx.lineTo(e.x,e.y-n+o),t.ctx.closePath(),t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.95,t.ctx.fillStyle=w(t),t.ctx.fill(),t.ctx.restore()},distance:(t,e,i)=>{const n=i.pts[0];return t>=n.x-4&&t<=n.x+16&&e>=n.y-24&&e<=n.y+2||Math.hypot(t-n.x,e-n.y)<=8?0:null}},_t={id:"price-range",name:"Price Range",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.1},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,n=i[1].price-i[0].price,s=0!==i[0].price?n/i[0].price*100:0,o=n>=0,l=o?"#26a69a":"#ef5350",r=Math.min(t.pts[0].x,t.pts[1].x),c=Math.max(t.pts[0].x,t.pts[1].x)+(t.pts[0].x===t.pts[1].x?60*e:0),a=t.pts[0].y,h=t.pts[1].y;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.1,t.ctx.fillStyle=l,t.ctx.fillRect(r,Math.min(a,h),c-r,Math.abs(h-a)),t.ctx.restore(),_(t),t.ctx.strokeStyle=l,t.ctx.beginPath();for(const e of[a,h])t.ctx.moveTo(r,Math.round(e)+.5),t.ctx.lineTo(c,Math.round(e)+.5);const x=(r+c)/2;t.ctx.moveTo(x,a),t.ctx.lineTo(x,h);const d=h>a?1:-1;t.ctx.moveTo(x-4*e,h-5*e*d),t.ctx.lineTo(x,h),t.ctx.lineTo(x+4*e,h-5*e*d),t.ctx.moveTo(x-4*e,a+5*e*d),t.ctx.lineTo(x,a),t.ctx.lineTo(x+4*e,a+5*e*d),t.ctx.stroke(),t.ctx.setLineDash([]);const p=o?"+":"";M(t,`${p}${t.formatPrice(n)} (${p}${s.toFixed(2)}%)`,x+6*e,(a+h)/2,l)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)},wt={id:"date-range",name:"Date Range",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.1},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,n=t.style.color,s=t.pts[0].x,o=t.pts[1].x,l=Math.min(t.pts[0].y,t.pts[1].y),r=Math.max(t.pts[0].y,t.pts[1].y)+(t.pts[0].y===t.pts[1].y?40*e:0);t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.1,t.ctx.fillStyle=n,t.ctx.fillRect(Math.min(s,o),l,Math.abs(o-s),r-l),t.ctx.restore(),_(t),t.ctx.beginPath();for(const e of[s,o])t.ctx.moveTo(Math.round(e)+.5,l),t.ctx.lineTo(Math.round(e)+.5,r);const c=(l+r)/2;t.ctx.moveTo(s,c),t.ctx.lineTo(o,c);const a=o>s?1:-1;t.ctx.moveTo(o-5*e*a,c-4*e),t.ctx.lineTo(o,c),t.ctx.lineTo(o-5*e*a,c+4*e),t.ctx.moveTo(s+5*e*a,c-4*e),t.ctx.lineTo(s,c),t.ctx.lineTo(s+5*e*a,c+4*e),t.ctx.stroke(),t.ctx.setLineDash([]);const h=t.rc.dataLayer.timeToIndexFloat(i[0].time),x=t.rc.dataLayer.timeToIndexFloat(i[1].time);M(t,`${Math.abs(Math.round(x-h))} bars`,(s+o)/2,l-10*e,n)},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0)},vt={id:"forecast",name:"Forecast",points:2,defaultStyle:{fill:!0,showLabels:!0,fillOpacity:.12,lineStyle:"dashed"},draw:t=>{const e=t.rc.dpr,i=t.drawing.points,[n,s]=t.pts,o=i[1].price-i[0].price,l=0!==i[0].price?o/i[0].price*100:0,r=o>=0,c=r?"#26a69a":"#ef5350",a=.35*Math.abs(s.y-n.y)+6*e;if(t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.12,t.ctx.fillStyle=c,t.ctx.beginPath(),t.ctx.moveTo(n.x,n.y),t.ctx.lineTo(s.x,s.y-a),t.ctx.lineTo(s.x,s.y+a),t.ctx.closePath(),t.ctx.fill(),t.ctx.restore(),_(t),t.ctx.strokeStyle=c,t.ctx.beginPath(),t.ctx.moveTo(n.x,n.y),t.ctx.lineTo(s.x,s.y),t.ctx.stroke(),t.ctx.setLineDash([]),t.ctx.beginPath(),t.ctx.arc(n.x,n.y,3*e,0,2*Math.PI),t.ctx.fillStyle=c,t.ctx.fill(),!1===t.style.showLabels)return;const h=r?"+":"";T(t,[t.formatPrice(i[0].price),P(i[0].time)],n.x,n.y,c,{align:"center"}),T(t,[`${h}${t.formatPrice(o)} (${h}${l.toFixed(2)}%) in ${L(i[1].time-i[0].time)}`,`${t.formatPrice(i[1].price)} · ${P(i[1].time)}`],s.x,s.y,c,{align:"center",place:"below"});const x=t.rc.bars?.();if(void 0!==x&&x.length>0&&x[x.length-1].time>=i[1].time){let n=!1;for(const t of x)if(!(t.time<i[0].time)){if(t.time>i[1].time)break;if(r?t.high>=i[1].price:t.low<=i[1].price){n=!0;break}}T(t,[n?"SUCCESS":"MISSED"],s.x,s.y+36*e,n?"#4a934a":"#8a4a4a",{align:"center",place:"below"})}},distance:(e,i,n)=>t(e,i,n.pts[0],n.pts[1])},Mt={id:"circle",name:"Circle",points:2,defaultStyle:{fill:!0},draw:t=>{const[e,i]=t.pts,n=Math.hypot(i.x-e.x,i.y-e.y);t.ctx.beginPath(),t.ctx.arc(e.x,e.y,n,0,2*Math.PI),v(t,()=>t.ctx.fill()),_(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=Math.hypot(s.x-n.x,s.y-n.y),l=Math.hypot(t-n.x,e-n.y);return!0===i.drawing.style.fill&&l<=o?0:Math.abs(l-o)}},Tt={id:"triangle",name:"Triangle",points:3,defaultStyle:{fill:!0},draw:t=>{t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y),t.ctx.lineTo(t.pts[1].x,t.pts[1].y),t.ctx.lineTo(t.pts[2].x,t.pts[2].y),t.ctx.closePath(),v(t,()=>t.ctx.fill()),_(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>s(t,e,[...i.pts,i.pts[0]])},St={id:"polyline",name:"Polyline",points:0,defaultStyle:{fill:!1},draw:t=>{if(!(t.pts.length<2)){t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);!0===t.style.fill&&(t.ctx.closePath(),v(t,()=>t.ctx.fill())),_(t),t.ctx.stroke(),t.ctx.setLineDash([])}},distance:(t,e,i)=>s(t,e,i.pts)};const Pt={id:"arc",name:"Arc",points:3,draw:t=>{const[e,i,n]=t.pts;_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.quadraticCurveTo(2*i.x-(e.x+n.x)/2,2*i.y-(e.y+n.y)/2,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>s(t,e,function(t,e,i){const n=2*e.x-(t.x+i.x)/2,s=2*e.y-(t.y+i.y)/2,o=[];for(let e=0;e<=16;e++){const l=e/16,r=1-l;o.push({x:r*r*t.x+2*r*l*n+l*l*i.x,y:r*r*t.y+2*r*l*s+l*l*i.y})}return o}(i.pts[0],i.pts[1],i.pts[2]))},Lt={id:"curve",name:"Curve",points:3,draw:t=>{const[e,i,n]=t.pts;_(t),t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.quadraticCurveTo(i.x,i.y,n.x,n.y),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,o,l]=i.pts,r=[];for(let t=0;t<=16;t++){const e=t/16,i=1-e;r.push({x:i*i*n.x+2*i*e*o.x+e*e*l.x,y:i*i*n.y+2*i*e*o.y+e*e*l.y})}return s(t,e,r)}};function kt(t,e,i){return{id:t,name:e,points:1,defaultStyle:{fill:!0,fillOpacity:.9},draw:t=>{const e=t.rc.dpr,{x:n,y:s}=t.pts[0],o=16*e,l=6*e,r=i?1:-1,c=s+2*r*e;t.ctx.beginPath(),t.ctx.moveTo(n,c),t.ctx.lineTo(n-l,c+r*l),t.ctx.lineTo(n-l/2.4,c+r*l),t.ctx.lineTo(n-l/2.4,c+r*o),t.ctx.lineTo(n+l/2.4,c+r*o),t.ctx.lineTo(n+l/2.4,c+r*l),t.ctx.lineTo(n+l,c+r*l),t.ctx.closePath(),t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.9,t.ctx.fillStyle=w(t),t.ctx.fill(),t.ctx.restore(),_(t),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,n)=>{const s=n.pts[0],o=i?e-s.y:s.y-e;return Math.abs(t-s.x)<=8&&o>=-4&&o<=20?0:null}}}const Dt=kt("arrow-up","Arrow Up",!0),$t=kt("arrow-down","Arrow Down",!1),Ot={id:"highlighter",name:"Highlighter",points:0,freehand:!0,defaultStyle:{lineWidth:12,fillOpacity:.28},draw:t=>{if(t.pts.length<2)return;const e=t.rc.dpr;t.ctx.save(),t.ctx.globalAlpha=t.style.fillOpacity??.28,t.ctx.strokeStyle=t.style.color,t.ctx.lineWidth=Math.max(2,(t.style.lineWidth||12)*e),t.ctx.lineCap="round",t.ctx.lineJoin="round",t.ctx.beginPath(),t.ctx.moveTo(t.pts[0].x,t.pts[0].y);for(let e=1;e<t.pts.length;e++)t.ctx.lineTo(t.pts[e].x,t.pts[e].y);t.ctx.stroke(),t.ctx.restore()},distance:(t,e,i)=>{const n=s(t,e,i.pts);return n<=Math.max(6,(i.drawing.style.lineWidth??12)/2)?0:n}},Ft={id:"fib-channel",name:"Fib Channel",points:3,defaultStyle:{showLabels:!0,levels:[...O]},draw:t=>{const e=t.style.levels??O,[i,n,s]=t.pts,o=s.x-n.x,l=s.y-n.y;_(t);for(const s of e)t.ctx.beginPath(),t.ctx.moveTo(i.x+o*s,i.y+l*s),t.ctx.lineTo(n.x+o*s,n.y+l*s),t.ctx.stroke(),!1!==t.style.showLabels&&M(t,`${(100*s).toFixed(1)}%`,n.x+o*s+4*t.rc.dpr,n.y+l*s);t.ctx.setLineDash([])},distance:(e,i,n)=>{const s=n.drawing.style.levels??O,[o,l,r]=n.pts;let c=1/0;for(const n of s){const s=t(e,i,{x:o.x+(r.x-l.x)*n,y:o.y+(r.y-l.y)*n},{x:l.x+(r.x-l.x)*n,y:l.y+(r.y-l.y)*n});s<c&&(c=s)}return c}},At=[0,1,2,3,5,8,13,21,34,55],Ct={id:"fib-time-zone",name:"Fib Time Zone",points:2,defaultStyle:{showLabels:!0},draw:t=>{const[e,i]=t.pts,n=i.x-e.x;if(Math.abs(n)<.5)return;const s=t.rc.dpr,o=t.rc.plotWidth*s;_(t);for(const i of At){const l=e.x+n*i;l<-10||l>o+10||(t.ctx.beginPath(),t.ctx.moveTo(Math.round(l)+.5,0),t.ctx.lineTo(Math.round(l)+.5,t.rc.plotHeight*s),t.ctx.stroke(),!1!==t.style.showLabels&&M(t,String(i),l+3*s,12*s))}t.ctx.setLineDash([])},distance:(t,e,i)=>{const[n,s]=i.pts,o=s.x-n.x;if(Math.abs(o)<.5)return null;let l=1/0;for(const e of At)l=Math.min(l,Math.abs(t-(n.x+o*e)));return l}},Nt=[.236,.382,.5,.618,.786,1],Wt={id:"fib-fan",name:"Fib Speed Fan",points:2,defaultStyle:{showLabels:!0,levels:[...Nt]},draw:t=>{const e=t.style.levels??Nt,[i,n]=t.pts,s=t.rc.dpr,o=t.rc.plotWidth*s;_(t);for(const l of e){const e=c(i,{x:n.x,y:i.y+(n.y-i.y)*l},o,!1,!0)[1];t.ctx.beginPath(),t.ctx.moveTo(i.x,i.y),t.ctx.lineTo(e.x,e.y),t.ctx.stroke(),!1!==t.style.showLabels&&M(t,`${(100*l).toFixed(1)}%`,n.x+4*s,i.y+(n.y-i.y)*l)}t.ctx.setLineDash([])},distance:(e,i,n)=>{const s=n.drawing.style.levels??Nt,[o,l]=n.pts;let r=1/0;for(const a of s)r=Math.min(r,t(e,i,o,c(o,{x:l.x,y:o.y+(l.y-o.y)*a},n.rc.plotWidth,!1,!0)[1]));return r}},It=[[1,.125],[1,.25],[1,.5],[1,1],[.5,1],[.25,1],[.125,1]],Rt=[A,C,N,W,I,R,z,j,U,B,H,E,Y,K,G,vt,V,_t,wt,Mt,Tt,St,Pt,Lt,rt,at,Dt,$t,Ot,lt,Ft,Ct,Wt,{id:"gann-fan",name:"Gann Fan",points:2,defaultStyle:{showLabels:!0},draw:t=>{const[e,i]=t.pts,n=t.rc.dpr,s=t.rc.plotWidth*n,o=i.x-e.x,l=i.y-e.y;if(!(Math.abs(o)<.5)){_(t);for(const[i,n]of It){const r=c(e,{x:e.x+o*i,y:e.y+l*n},s,!1,!0)[1];t.ctx.beginPath(),t.ctx.moveTo(e.x,e.y),t.ctx.lineTo(r.x,r.y),t.ctx.stroke()}!1!==t.style.showLabels&&M(t,"1x1",i.x+4*n,i.y),t.ctx.setLineDash([])}},distance:(e,i,n)=>{const[s,o]=n.pts,l=o.x-s.x,r=o.y-s.y;let a=1/0;for(const[o,h]of It)a=Math.min(a,t(e,i,s,c(s,{x:s.x+l*o,y:s.y+r*h},n.rc.plotWidth,!1,!0)[1]));return a}},{id:"gann-box",name:"Gann Box",points:2,defaultStyle:{fill:!0,fillOpacity:.05},draw:t=>{const e=o(t.pts[0],t.pts[1]);v(t,()=>t.ctx.fillRect(e.x0,e.y0,e.x1-e.x0,e.y1-e.y0)),_(t);const i=e.x1-e.x0,n=e.y1-e.y0;t.ctx.beginPath();for(let s=0;s<=8;s++){const o=Math.round(e.x0+i*s/8)+.5,l=Math.round(e.y0+n*s/8)+.5;t.ctx.moveTo(o,e.y0),t.ctx.lineTo(o,e.y1),t.ctx.moveTo(e.x0,l),t.ctx.lineTo(e.x1,l)}t.ctx.moveTo(e.x0,e.y1),t.ctx.lineTo(e.x1,e.y0),t.ctx.stroke(),t.ctx.setLineDash([])},distance:(t,e,i)=>l(t,e,i.pts[0],i.pts[1],!0===i.drawing.style.fill)},ht,xt,dt,nt,ot,yt,ut,bt];let zt=!1;function jt(){if(!zt){zt=!0;for(const t of Rt)p(t)}}function Ut(t,e){return u(t)&&!0===y(t).freehand&&e>2?[0,e-1]:Array.from({length:e},(t,e)=>e)}class Bt{constructor(){Object.defineProperty(this,"_drawings",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_selected",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_preview",{enumerable:!0,configurable:!0,writable:!0,value:null})}attached(t){this._host=t}detached(){this._host=null}zOrder(){return"top"}autoscaleInfo(){return null}setDrawings(t){this._drawings=t.slice(),this._host?.requestUpdate()}setSelected(t){t!==this._selected&&(this._selected=t,this._host?.requestUpdate())}setPreview(t){this._preview=t,this._host?.requestUpdate()}_project(t,e,i){return{x:t.timeScale.indexToX(t.dataLayer.timeToIndexFloat(e)),y:t.priceScale.priceToY(i)}}_points(t,e){return e.points.map(e=>this._project(t,e.time,e.price))}draw(t,e){const i=null===this._preview?this._drawings:[...this._drawings,this._preview];for(const n of i){if(!1===n.visible||!u(n.tool))continue;const i=y(n.tool);if(n.points.length<Math.max(1,i.points))continue;const s=this._points(e,n);if(!s.some(t=>Number.isFinite(t.x)&&Number.isFinite(t.y)))continue;const o={color:n.style.color??e.theme.lineColor,lineWidth:n.style.lineWidth??1.5,...n.style},l=e.dpr;t.save(),n===this._preview&&(t.globalAlpha=.7),i.draw({ctx:t,rc:e,drawing:n,selected:n.id===this._selected,pts:s.map(t=>({x:t.x*l,y:t.y*l})),style:{...o,color:o.color,lineWidth:o.lineWidth},formatPrice:t=>e.priceScale.format(t)}),t.restore(),n.id===this._selected&&!0!==n.locked&&this._drawHandles(t,e,s,n.tool)}}_drawHandles(t,e,i,n){const s=e.dpr;t.save(),t.setLineDash([]),t.lineWidth=Math.max(1,Math.round(1.5*s));for(const o of Ut(n,i.length)){const n=i[o];t.beginPath(),t.arc(n.x*s,n.y*s,5*s,0,2*Math.PI),t.fillStyle=e.theme.background,t.fill(),t.strokeStyle=e.theme.lineColor,t.stroke()}t.restore()}hitTest(t,e,i){if(null!==this._selected){const n=this._drawings.find(t=>t.id===this._selected);if(void 0!==n&&!0!==n.locked){const s=this._points(i,n);for(const i of Ut(n.tool,s.length))if(Math.hypot(t-s[i].x,e-s[i].y)<=7)return{externalId:`draw:${n.id}#${i}`,zOrder:"top",distance:0,cursor:"grabbing",draggable:!0}}}let n=null;for(let s=this._drawings.length-1;s>=0;s--){const o=this._drawings[s];if(!1===o.visible||!0===o.locked||!u(o.tool))continue;const l=y(o.tool);if(o.points.length<Math.max(1,l.points))continue;const r=l.distance(t,e,{pts:this._points(i,o),drawing:o,rc:i});null===r||!Number.isFinite(r)||r>6||(null===n||r<n.distance)&&(n={id:o.id,distance:r})}return null===n?null:{externalId:`draw:${n.id}`,zOrder:"top",distance:n.distance,cursor:"move",draggable:!0}}}let Ht=1;class Jt{constructor(t,e={}){Object.defineProperty(this,"_chart",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_layers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_drawings",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_tool",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_pending",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_pendingPane",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_selected",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_undo",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_redo",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_dragStart",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_off",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_lastCursor",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_lastBar",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._chart=t,this._opts={magnet:e.magnet??!1,stayInDrawingMode:e.stayInDrawingMode??!1,historyLimit:e.historyLimit??50,defaultStyle:e.defaultStyle??{}},this._off.push(t.on("click",t=>this._onClick(t))),this._off.push(t.on("crosshair:move",t=>this._onCrosshair(t))),this._off.push(t.on("drag",t=>this._onDrag(t))),this._off.push(t.on("drag:end",()=>this._onDragEnd())),this._off.push(t.on("dblclick",()=>{this.finish()}));const i=t.drawingState();Array.isArray(i)&&(this._drawings=i.map(t=>({...t}))),this._sync()}setTool(t){if(null!==t&&!u(t))throw new Error(`openalgo-charts: unknown drawing tool "${t}"`);this._tool=t,this._pending=[],this._setPlacementMode(null!==t),this._syncPreview(),this._chart.emit("draw:tool",{tool:t})}_setPlacementMode(t){const e=this._chart;e.setPlacementMode?.(t)}activeTool(){return this._tool}setOptions(t){this._opts={...this._opts,...t,defaultStyle:t.defaultStyle??this._opts.defaultStyle}}drawings(){return this._drawings}get(t){return this._drawings.find(e=>e.id===t)}add(t){this._pushUndo();const e=y(t.tool),i={...t,id:t.id??"d"+Ht++,style:{...this._opts.defaultStyle,...e.defaultStyle,...t.style}};return this._drawings.push(i),this._sync(),this._chart.emit("draw:add",{drawing:i}),i}update(t,e){const i=this.get(t);return void 0!==i&&(this._pushUndo(),void 0!==e.points&&(i.points=e.points.map(t=>({...t}))),void 0!==e.style&&(i.style={...i.style,...e.style}),void 0!==e.locked&&(i.locked=e.locked),void 0!==e.visible&&(i.visible=e.visible),this._sync(),this._chart.emit("draw:update",{drawing:i}),!0)}remove(t){const e=this._drawings.findIndex(e=>e.id===t);if(e<0)return!1;this._pushUndo();const[i]=this._drawings.splice(e,1);return this._selected===t&&(this._selected=null),this._sync(),this._chart.emit("draw:remove",{drawing:i}),!0}clear(){0!==this._drawings.length&&(this._pushUndo(),this._drawings=[],this._selected=null,this._sync())}select(t){this._selected=t;for(const e of this._layers.values())e.setSelected(t);this._chart.emit("draw:select",{id:t})}selected(){return this._selected}undo(){const t=this._undo.pop();return void 0!==t&&(this._redo.push(JSON.stringify(this._drawings)),this._drawings=JSON.parse(t),this._drawings.some(t=>t.id===this._selected)||(this._selected=null),this._sync(),!0)}redo(){const t=this._redo.pop();return void 0!==t&&(this._undo.push(JSON.stringify(this._drawings)),this._drawings=JSON.parse(t),this._sync(),!0)}canUndo(){return this._undo.length>0}canRedo(){return this._redo.length>0}toJSON(){return this._drawings.map(t=>({...t,points:t.points.map(t=>({...t})),style:{...t.style}}))}fromJSON(t){this._drawings=Array.isArray(t)?t.map(t=>({...t})):[],this._selected=null,this._undo=[],this._redo=[],this._sync()}destroy(){this._setPlacementMode(!1);for(const t of this._off)t();this._off.length=0;for(const[t,e]of this._layers)this._chart.removePrimitive(e);this._layers.clear()}_onCrosshair(t){const e=t.time,i=t.price,n=t.paneIndex??null;this._lastCursor=null===e||null===i||null===n?null:{time:e,price:i,paneIndex:n},this._lastBar=t.bar??null,null!==this._tool&&!0===t.pressed&&this._isFreehand()&&null!==e&&null!==i&&null!==n&&Number.isFinite(e)&&Number.isFinite(i)?this._inkPoint({time:e,price:i},n):null!==this._tool&&this._pending.length>0&&this._syncPreview()}_expand(t,e){if(void 0===t.expand)return e;const i=this._chart.dataLayer,n=i.baseIndex,s=n>0?i.indexToTime(n-1):void 0,o=n>=0?i.indexToTime(n):void 0,l=void 0!==s&&void 0!==o&&o>s?o-s:60,r=this._chart.getVisibleLogicalRange(),c=null===r?60:Math.max(1,r.to-r.from);return t.expand(e,{barSeconds:l,visibleBars:c})}_isFreehand(){return null!==this._tool&&!0===y(this._tool).freehand}_inkPoint(t,e){if(0===this._pending.length)this._pendingPane=e;else{if(e!==this._pendingPane)return;{const e=this._pending[this._pending.length-1];if(e.time===t.time&&e.price===t.price)return}}this._pending.push(t),this._syncPreview()}_commit(t){const e=y(this._tool),i=this.add({tool:e.id,points:t,style:{},paneIndex:this._pendingPane});this._pending=[],this._opts.stayInDrawingMode||(this._tool=null,this._setPlacementMode(!1)),this._syncPreview(),this.select(i.id),this._chart.emit("draw:tool",{tool:this._tool})}_finishFreehand(){const t=this._pending;this._pending=[],t.length<2?this._syncPreview():this._commit(t)}finish(){if(null===this._tool||0===this._pending.length)return!1;const t=y(this._tool);if(0!==t.points||!0===t.freehand)return!1;const e=this._pending;return e.length<2?(this._pending=[],this._syncPreview(),!1):(this._commit(e),!0)}_onClick(t){if(null===this._tool)null!==t.id&&t.id.startsWith("draw:")?this.select(t.id.slice(5).split("#")[0]):null===t.id&&this.select(null);else{if(this._isFreehand())return void(!0===t.viaDrag&&this._finishFreehand());if(!0===t.viaDrag&&0===this._pending.length)return;if(null===t.price||!Number.isFinite(t.price)||!Number.isFinite(t.time))return;this._placePoint({time:t.time,price:this._snap(t.price,t.paneIndex)},t.paneIndex)}}_placePoint(t,e){0===this._pending.length&&(this._pendingPane=e),this._pending.push(t);const i=y(this._tool);i.points>0&&this._pending.length>=i.points?this._commit(this._expand(i,this._pending)):this._syncPreview()}_snap(t,e){if(!this._opts.magnet||0!==e)return t;const i=this._lastBar;if(null===i)return t;let n=t,s=1/0;for(const e of[i.open,i.high,i.low,i.close]){const i=Math.abs(e-t);i<s&&(s=i,n=e)}return n}_onDrag(t){if(!t.id.startsWith("draw:"))return;const[e,i]=t.id.slice(5).split("#"),n=this.get(e);if(void 0===n||!0===n.locked)return;const s=void 0===i?null:Number(i);null!==this._dragStart&&this._dragStart.id===e&&this._dragStart.handle===s||(this._pushUndo(),this._dragStart={id:e,handle:s,points:n.points.map(t=>({...t})),from:{time:t.fromTime??t.time,price:t.fromPrice??t.price}});const o=this._dragStart;if(null===s){const e=t.time-o.from.time,i=t.price-o.from.price;n.points=o.points.map(t=>({time:t.time+e,price:t.price+i}))}else s>=0&&s<n.points.length&&(n.points=o.points.map((e,i)=>i===s?{time:t.time,price:t.price}:{...e}));this._sync()}_onDragEnd(){if(null===this._dragStart)return;const t=this.get(this._dragStart.id);this._dragStart=null,void 0!==t&&this._chart.emit("draw:update",{drawing:t})}_layerFor(t){let e=this._layers.get(t);return void 0===e&&(e=new Bt,this._chart.addPrimitive(e,t),this._layers.set(t,e)),e}_sync(){const t=new Map;for(const e of this._drawings){const i=t.get(e.paneIndex)??[];i.push(e),t.set(e.paneIndex,i)}for(const[e,i]of t)this._layerFor(e).setDrawings(i);for(const[e,i]of this._layers)t.has(e)||i.setDrawings([]),i.setSelected(this._selected);this._chart.setDrawingState(this.toJSON())}_syncPreview(){for(const t of this._layers.values())t.setPreview(null);if(null===this._tool||0===this._pending.length)return;const t=this._lastCursor,e=null===t?this._pending:[...this._pending,{time:t.time,price:t.price}];this._layerFor(this._pendingPane).setPreview({id:"__preview",tool:this._tool,points:e,style:this._opts.defaultStyle,paneIndex:this._pendingPane})}_pushUndo(){this._undo.push(JSON.stringify(this._drawings)),this._undo.length>this._opts.historyLimit&&this._undo.shift(),this._redo=[]}}const Et="draw";jt();export{W as ARROW,Rt as BUILTIN_DRAWING_TOOLS,j as CROSS_LINE,Et as DRAW_TIER,Jt as DrawingController,Bt as DrawingLayer,B as ELLIPSE,N as EXTENDED_LINE,Y as FIB_EXTENSION,E as FIB_RETRACEMENT,I as HORIZONTAL_LINE,R as HORIZONTAL_RAY,K as LONG_POSITION,V as MEASURE,H as PARALLEL_CHANNEL,ot as PATH,C as RAY,U as RECTANGLE,G as SHORT_POSITION,nt as TEXT,A as TREND_LINE,z as VERTICAL_LINE,r as distToEllipse,e as distToLine,s as distToPolyline,l as distToRect,t as distToSegment,b as drawingShortcuts,c as extendSegment,y as getDrawingTool,u as hasDrawingTool,m as matchDrawingShortcut,o as rectOf,jt as registerBuiltinDrawingTools,p as registerDrawingTool,f as registeredDrawingTools};
|
|
2
2
|
//# sourceMappingURL=openalgo-charts.draw.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openalgo-charts.draw.mjs","sources":["../src/draw/geometry.ts","../src/render/pill.ts","../src/draw/tools.ts","../src/draw/layer.ts","../src/draw/controller.ts","../src/draw/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["distToSegment","px","py","a","b","dx","x","dy","y","len2","Math","hypot","t","distToLine","len","abs","distToHorizontal","distToVertical","distToPolyline","pts","best","Infinity","i","length","d","rectOf","x0","min","y0","x1","max","y1","distToRect","filled","r","corners","distToEllipse","cx","cy","rx","ry","nx","ny","norm","extendSegment","width","left","right","slope","luminance","color","c","trim","startsWith","hex","slice","g","map","h","parseInt","some","Number","isNaN","n","m","exec","undefined","parseColor","lin","v","s","pow","contrastText","bg","roundRectPath","ctx","w","rr","roundRect","call","rect","registry","Map","registerDrawingTool","tool","set","id","getDrawingTool","get","Error","hasDrawingTool","has","registeredDrawingTools","Array","from","values","applyStroke","rc","style","dpr","strokeStyle","lineWidth","round","lineJoin","lineCap","setLineDash","lineStyle","fillStyleOf","fillColor","withFill","paint","fill","save","globalAlpha","fillOpacity","fillStyle","restore","label","text","size","fontSize","font","textBaseline","textAlign","measureText","theme","background","fillRect","fillText","chip","lines","opts","padX","padY","lh","textW","align","bx","place","by","beginPath","grouped","dp","f","toFixed","split","replace","isoDate","sec","dt","Date","p","String","padStart","getUTCFullYear","getUTCMonth","getUTCDate","humanSpan","days","floor","hours","mins","arrowHead","head","ang","atan2","moveTo","lineTo","cos","sin","closePath","UP_TINT","DOWN_TINT","DEFAULT_FIB","lineTool","name","points","defaultStyle","extendLeft","extendRight","draw","plotWidth","stroke","distance","el","drawing","er","TREND_LINE","RAY","EXTENDED_LINE","ARROW","HORIZONTAL_LINE","showLabels","formatPrice","price","_x","HORIZONTAL_RAY","VERTICAL_LINE","plotHeight","_y","CROSS_LINE","RECTANGLE","textVAlign","textPosition","strokeRect","shapeLabel","ELLIPSE","path","ellipse","PI","PARALLEL_CHANNEL","a2","b2","d1","d2","fibTool","anchors","levels","span","prevY","lv","priceScale","priceToY","FIB_RETRACEMENT","FIB_EXTENSION","MEASURE","chg","pct","up","tint","midX","i0","dataLayer","timeToIndexFloat","time","i1","bars","sign","src","lo","hi","vol","seen","volume","push","compactNumber","positionTool","long","accountSize","risk","expand","clicked","off","visibleBars","far","barSeconds","entry","target","stop","yE","yT","yS","band","yA","yB","yy","reward","account","riskPct","qty","pctOf","delta","cash","ys","LONG_POSITION","SHORT_POSITION","LINE_GAP","DEFAULT_FONT","textFont","sizePx","weight","fontWeight","fontStyle","fontFamily","textLines","maxWidth","paragraphs","wrap","out","para","words","filter","line","next","textBox","wrapWidth","l","lineHeight","TEXT_PAD","height","pad","fontColor","blockH","tx","ty","TEXT","backgroundOpacity","border","box","backgroundColor","borderColor","probe","_probe","document","createElement","getContext","measureContext","PATH","BRUSH","freehand","ROTATED_RECTANGLE","rotatedCorners","poly","inside","j","pointInPolygon","depth","DOUBLE_CURVE","mid","bezierCurveTo","c1","c2","steps","u","w0","w1","w2","w3","sampleCubic","CYCLIC_LINES","step","isFinite","k","TIME_CYCLES","arc","SINE_LINE","sinePoints","amp","PRICE_LABEL","calloutBox","calloutTail","calloutText","hgt","CALLOUT","seat","tip","base","top","FLAG_MARK","pole","flagW","flagH","PRICE_RANGE","mx","dir","DATE_RANGE","my","FORECAST","spread","hit","bar","high","low","CIRCLE","TRIANGLE","POLYLINE","ARC","quadraticCurveTo","quadPoints","CURVE","arrowMarker","tipY","hc","ARROW_UP","ARROW_DOWN","HIGHLIGHTER","FIB_CHANNEL","offX","offY","FIB_SEQUENCE","FIB_TIME_ZONE","unit","maxX","FAN_LEVELS","FIB_FAN","end","GANN_RATIOS","BUILTIN_DRAWING_TOOLS","_registered","registerBuiltinDrawingTools","handleIndices","toolId","count","_","DrawingLayer","constructor","Object","defineProperty","this","attached","host","_host","detached","zOrder","autoscaleInfo","setDrawings","drawings","_drawings","requestUpdate","setSelected","_selected","setPreview","_preview","_project","timeScale","indexToX","_points","all","visible","media","lineColor","selected","format","locked","_drawHandles","hitTest","sel","find","HANDLE","externalId","cursor","draggable","dist","nextId","DrawingController","chart","options","value","_chart","_opts","magnet","stayInDrawingMode","historyLimit","_off","on","_onClick","_onCrosshair","_onDrag","_onDragEnd","finish","saved","drawingState","isArray","_sync","setTool","_tool","_pending","_setPlacementMode","_syncPreview","emit","active","setPlacementMode","activeTool","setOptions","patch","add","_pushUndo","created","update","remove","findIndex","removed","splice","clear","select","layer","_layers","undo","snap","_undo","pop","_redo","JSON","stringify","parse","redo","canUndo","canRedo","toJSON","fromJSON","data","destroy","pane","removePrimitive","paneIndex","_lastCursor","_lastBar","pressed","_isFreehand","_inkPoint","_expand","dl","baseIndex","indexToTime","range","getVisibleLogicalRange","to","point","_pendingPane","last","_commit","_finishFreehand","viaDrag","_placePoint","_snap","bestD","open","close","rawId","handleStr","handle","_dragStart","q","fromTime","fromPrice","start","_layerFor","addPrimitive","byPane","list","setDrawingState","shift","DRAW_TIER"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openalgo-charts.draw.mjs","sources":["../src/draw/geometry.ts","../src/render/pill.ts","../src/draw/tools.ts","../src/draw/layer.ts","../src/draw/controller.ts","../src/draw/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["distToSegment","px","py","a","b","dx","x","dy","y","len2","Math","hypot","t","distToLine","len","abs","distToHorizontal","distToVertical","distToPolyline","pts","best","Infinity","i","length","d","rectOf","x0","min","y0","x1","max","y1","distToRect","filled","r","corners","distToEllipse","cx","cy","rx","ry","nx","ny","norm","extendSegment","width","left","right","slope","luminance","color","c","trim","startsWith","hex","slice","g","map","h","parseInt","some","Number","isNaN","n","m","exec","undefined","parseColor","lin","v","s","pow","contrastText","bg","roundRectPath","ctx","w","rr","roundRect","call","rect","registry","Map","registerDrawingTool","tool","set","id","getDrawingTool","get","Error","hasDrawingTool","has","registeredDrawingTools","Array","from","values","parseShortcut","spec","parts","split","p","toLowerCase","key","alt","includes","ctrl","shift","matchDrawingShortcut","e","altKey","ctrlKey","metaKey","shiftKey","shortcut","want","drawingShortcuts","out","applyStroke","rc","style","dpr","strokeStyle","lineWidth","round","lineJoin","lineCap","setLineDash","lineStyle","fillStyleOf","fillColor","withFill","paint","fill","save","globalAlpha","fillOpacity","fillStyle","restore","label","text","size","fontSize","font","textBaseline","textAlign","measureText","theme","background","fillRect","fillText","chip","lines","opts","padX","padY","lh","textW","align","bx","place","by","beginPath","grouped","dp","f","toFixed","replace","isoDate","sec","dt","Date","String","padStart","getUTCFullYear","getUTCMonth","getUTCDate","humanSpan","days","floor","hours","mins","arrowHead","head","ang","atan2","moveTo","lineTo","cos","sin","closePath","UP_TINT","DOWN_TINT","DEFAULT_FIB","lineTool","name","points","defaultStyle","extendLeft","extendRight","draw","plotWidth","stroke","distance","el","drawing","er","TREND_LINE","RAY","EXTENDED_LINE","ARROW","HORIZONTAL_LINE","showLabels","formatPrice","price","_x","HORIZONTAL_RAY","VERTICAL_LINE","plotHeight","_y","CROSS_LINE","RECTANGLE","textVAlign","textPosition","strokeRect","shapeLabel","ELLIPSE","path","ellipse","PI","PARALLEL_CHANNEL","a2","b2","d1","d2","fibTool","anchors","levels","span","prevY","lv","priceScale","priceToY","FIB_RETRACEMENT","FIB_EXTENSION","MEASURE","chg","pct","up","tint","midX","i0","dataLayer","timeToIndexFloat","time","i1","bars","sign","src","lo","hi","vol","seen","volume","push","compactNumber","positionTool","long","accountSize","risk","expand","clicked","off","visibleBars","far","barSeconds","entry","target","stop","yE","yT","yS","band","yA","yB","yy","reward","account","riskPct","qty","pctOf","delta","cash","ys","LONG_POSITION","SHORT_POSITION","LINE_GAP","DEFAULT_FONT","textFont","sizePx","weight","fontWeight","fontStyle","fontFamily","textLines","maxWidth","paragraphs","wrap","para","words","filter","line","next","textBox","wrapWidth","l","lineHeight","TEXT_PAD","height","pad","fontColor","blockH","tx","ty","TEXT","backgroundOpacity","border","box","backgroundColor","borderColor","probe","_probe","document","createElement","getContext","measureContext","PATH","BRUSH","freehand","ROTATED_RECTANGLE","rotatedCorners","poly","inside","j","pointInPolygon","depth","DOUBLE_CURVE","mid","bezierCurveTo","c1","c2","steps","u","w0","w1","w2","w3","sampleCubic","CYCLIC_LINES","step","isFinite","k","TIME_CYCLES","arc","SINE_LINE","sinePoints","amp","PRICE_LABEL","calloutBox","calloutTail","calloutText","hgt","CALLOUT","seat","tip","base","top","FLAG_MARK","pole","flagW","flagH","PRICE_RANGE","mx","dir","DATE_RANGE","my","FORECAST","spread","hit","bar","high","low","CIRCLE","TRIANGLE","POLYLINE","ARC","quadraticCurveTo","quadPoints","CURVE","arrowMarker","tipY","hc","ARROW_UP","ARROW_DOWN","HIGHLIGHTER","FIB_CHANNEL","offX","offY","FIB_SEQUENCE","FIB_TIME_ZONE","unit","maxX","FAN_LEVELS","FIB_FAN","end","GANN_RATIOS","BUILTIN_DRAWING_TOOLS","_registered","registerBuiltinDrawingTools","handleIndices","toolId","count","_","DrawingLayer","constructor","Object","defineProperty","this","attached","host","_host","detached","zOrder","autoscaleInfo","setDrawings","drawings","_drawings","requestUpdate","setSelected","_selected","setPreview","_preview","_project","timeScale","indexToX","_points","all","visible","media","lineColor","selected","format","locked","_drawHandles","hitTest","sel","find","HANDLE","externalId","cursor","draggable","dist","nextId","DrawingController","chart","options","value","_chart","_opts","magnet","stayInDrawingMode","historyLimit","_off","on","_onClick","_onCrosshair","_onDrag","_onDragEnd","finish","saved","drawingState","isArray","_sync","setTool","_tool","_pending","_setPlacementMode","_syncPreview","emit","active","setPlacementMode","activeTool","setOptions","patch","add","_pushUndo","created","update","remove","findIndex","removed","splice","clear","select","layer","_layers","undo","snap","_undo","pop","_redo","JSON","stringify","parse","redo","canUndo","canRedo","toJSON","fromJSON","data","destroy","pane","removePrimitive","paneIndex","_lastCursor","_lastBar","pressed","_isFreehand","_inkPoint","_expand","dl","baseIndex","indexToTime","range","getVisibleLogicalRange","to","point","_pendingPane","last","_commit","_finishFreehand","viaDrag","_placePoint","_snap","bestD","open","close","rawId","handleStr","handle","_dragStart","q","fromTime","fromPrice","start","_layerFor","addPrimitive","byPane","list","setDrawingState","DRAW_TIER"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openalgo-charts",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
4
4
|
"description": "From-scratch, dependency-free canvas charting engine for OpenAlgo: professional-grade interactive rendering plus advanced on-chart trading.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "marketcalls",
|