@forgecharts/sdk 1.5.22 → 1.5.24

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.
@@ -164,6 +164,21 @@ export declare class PixiChart implements ChartBackend {
164
164
  }[]): void;
165
165
  setTradingOrders(orders: ChartOrder[]): void;
166
166
  setTradingPositions(positions: ChartPosition[]): void;
167
+ /**
168
+ * (Re)register the trading hit tests against current orders AND positions.
169
+ *
170
+ * Was inline in setTradingOrders and keyed on hardcoded roles, which left
171
+ * both interactions half-wired:
172
+ *
173
+ * - the drag hit test required a 'stop_loss'/'take_profit' order, so
174
+ * working limit and stop lines rendered a drag handle they could not
175
+ * actually be grabbed by
176
+ * - the pill hit test required an ORDER with role 'entry' and no groupId,
177
+ * but the pills are drawn on POSITIONS, so they were never grabbable
178
+ *
179
+ * Both now derive from the same predicates the renderer draws with.
180
+ */
181
+ private _refreshTradingHitTests;
167
182
  setContractSwitches(switches: import('@forgecharts/types').ContractSwitch[]): void;
168
183
  setPaneLayout(panes: readonly PaneDescriptor[], priceFraction: number): void;
169
184
  setIndicatorResults(results: ReadonlyMap<string, DAGResult>, indicators: readonly IndicatorInstance[], bars: readonly OHLCV[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA0C,OAAO,EAAE,WAAW,EAAgB,KAAK,EAA6B,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClN,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAexD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,YAAW,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IACvD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAE3D,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAqC;IAChE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAsB;IAG1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,WAAW,CAAsD;IACzE,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,8EAA8E;IAC9E,OAAO,CAAC,cAAc,CAAqC;IAG3D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,aAAa,CAAuD;IAC5E,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,gBAAgB,CAA6B;IAErD,qFAAqF;IACrF,OAAO,CAAC,UAAU,CAA8B;IAChD,IAAI,SAAS,IAAI,aAAa,GAAG,IAAI,CAA4B;IAEjE,gFAAgF;IAChF,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,8CAA8C;IAC9C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7D,iFAAiF;IACjF,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,OAAO,CAAC,iBAAiB,CAAS;IAClC,4DAA4D;IAC5D,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,4CAA4C;IAC5C,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,4DAA4D;IAC5D,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,iFAAiF;IACjF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1E,0FAA0F;IAC1F,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC7F,mDAAmD;IACnD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,oDAAoD;IACpD,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/E,8EAA8E;IAC9E,iBAAiB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;gBAEhC,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IA4U9D,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAqB/D,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKnC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKrC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAKxC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAiClD,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS3C,SAAS,IAAI,cAAc;IAI3B,OAAO,IAAI,IAAI;IA2Cf,wEAAwE;IACxE,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAO/C,OAAO,CAAC,YAAY;IA4GpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,eAAe;IA2BvB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,gBAAgB;IAsBxB,oEAAoE;IACpE,OAAO,CAAC,kBAAkB;IAe1B,WAAW,IAAI,IAAI;IAKnB,cAAc,IAAI,IAAI;IA0BtB,eAAe,IAAI,IAAI;IAKvB,WAAW,IAAI,QAAQ;IAOvB,eAAe,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAQlC,cAAc,IAAI,cAAc;IAIhC,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAUzC,iBAAiB,IAAI,IAAI;IAUzB,qBAAqB,IAAI,IAAI;IAU7B,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IASvC,SAAS,IAAI,IAAI;IAIjB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAK9C,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAS3C,aAAa,CAAC,IAAI,EAAE,OAAO,oBAAoB,EAAE,UAAU,GAAG,IAAI;IAIlE,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAI5C,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA0CnE,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAMtC,iBAAiB,CACf,KAAK,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,EAAE,GACnF,IAAI;IAIP,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI;IAM5C,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI;IAQrD;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,mBAAmB,CAAC,QAAQ,EAAE,OAAO,oBAAoB,EAAE,cAAc,EAAE,GAAG,IAAI;IAiClF,aAAa,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAa5E,mBAAmB,CACjB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACvC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,IAAI,EAAE,SAAS,KAAK,EAAE,GACrB,IAAI;IASP,OAAO,CAAC,gBAAgB;IA8HxB,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,UAAU;IAqDlB,+DAA+D;IAC/D,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,cAAc;CAOvB"}
@@ -1,6 +1,21 @@
1
1
  import type { Container } from 'pixi.js';
2
2
  import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
3
3
  import type { CoordTransform } from '../core/CoordTransform';
4
+ /**
5
+ * Returns true if the order role can be dragged to a new price.
6
+ *
7
+ * Working entry orders (limit / stop) are included alongside bracket legs: a
8
+ * resting order's price is exactly the thing a trader expects to be able to
9
+ * drag, and ChartCanvas already routes the drop through
10
+ * `onModifyOrderIntent({ limitPrice | stopPrice })`. Previously only SL/TP were
11
+ * draggable, so an unfilled limit order rendered a line with no drag handle and
12
+ * no hit zone — including orders placed directly at the broker and reconciled
13
+ * back into the chart.
14
+ *
15
+ * 'entry' is deliberately excluded: it represents an already-filled entry, and
16
+ * a fill price is history, not something that can be modified.
17
+ */
18
+ export declare function isDraggableRole(role: ChartOrder['role']): boolean;
4
19
  /**
5
20
  * Describes a TP or SL pill that can be dragged off the entry line to create
6
21
  * a bracket order. Once the user drags it away and releases, the renderer
@@ -1 +1 @@
1
- {"version":3,"file":"PixiTradingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiTradingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAgF7D;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,gEAAgE;IAChE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAyE;IAClG,yEAAyE;IACzE,OAAO,CAAC,cAAc,CAAmG;IACzH,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAkB;IAEvC,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAAgD;IAErE,8DAA8D;IAC9D,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,sFAAsF;IACtF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1E;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;gBAEjF,KAAK,EAAE,SAAS;IAQ5B,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpD;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW1D;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IASlD,4EAA4E;IAC5E,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,mEAAmE;IACnE,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAM7B,kFAAkF;IAClF,WAAW,IAAI,CAAC,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAMrD,iDAAiD;IACjD,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,CACF,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,SAAS,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,GACnC,IAAI;IAwQP;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB,sFAAsF;IACtF,OAAO,CAAC,UAAU;CAsBnB"}
1
+ {"version":3,"file":"PixiTradingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiTradingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAsB7D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAKjE;AA6CD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,8CAA8C;IAC9C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IAC1B,gEAAgE;IAChE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAyE;IAClG,yEAAyE;IACzE,OAAO,CAAC,cAAc,CAAmG;IACzH,yEAAyE;IACzE,OAAO,CAAC,aAAa,CAAkB;IAEvC,qDAAqD;IACrD,OAAO,CAAC,aAAa,CAAgD;IAErE,8DAA8D;IAC9D,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,sFAAsF;IACtF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1E;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;gBAEjF,KAAK,EAAE,SAAS;IAQ5B,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpD;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW1D;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IASlD,4EAA4E;IAC5E,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAInC,mEAAmE;IACnE,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAM7B,kFAAkF;IAClF,WAAW,IAAI,CAAC,QAAQ,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAMrD,iDAAiD;IACjD,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,IAAI,CACF,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,SAAS,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,GACnC,IAAI;IAuRP;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAoBvB,sFAAsF;IACtF,OAAO,CAAC,UAAU;CAsBnB"}
@@ -7711,6 +7711,9 @@ function orderRoleLabel(role) {
7711
7711
  function isDraggableRole(role) {
7712
7712
  return role === "stop_loss" || role === "take_profit" || role === "limit" || role === "stop";
7713
7713
  }
7714
+ function isTerminal(status) {
7715
+ return status === "cancelled" || status === "rejected" || status === "expired" || status === "filled";
7716
+ }
7714
7717
  var LINE_H = 15;
7715
7718
  var LABEL_GAP = 6;
7716
7719
  var LABEL_PAD = 6;
@@ -7975,33 +7978,37 @@ var PixiTradingRenderer = class {
7975
7978
  labelIdx = this._drawLabel(String(pos.entryPrice), plotWidth + 4, y, labelIdx, labelStyle);
7976
7979
  this._positionHitZones.push({ id: pos.id, x: pillX, y: boxY, w: pillW, h: LINE_H });
7977
7980
  const linked = pos.linkedOrderIds ?? [];
7978
- const hasTp = linked.some((id) => id.endsWith("-tp"));
7979
- const hasSl = linked.some((id) => id.endsWith("-sl"));
7981
+ const hasTp = linked.some((id) => id.endsWith("-tp")) || orders.some((o) => (o.role === "take_profit" || o.role === "limit") && !isTerminal(o.status));
7982
+ const hasSl = linked.some((id) => id.endsWith("-sl")) || orders.some((o) => (o.role === "stop_loss" || o.role === "stop") && !isTerminal(o.status));
7980
7983
  const entrySide = pos.side === "long" ? "buy" : "sell";
7981
- if (!hasTp) {
7982
- const tpY = y - PILL_H / 2;
7983
- this._boxGfx.roundRect(PILL_TP_X, tpY, PILL_W, PILL_H, PILL_R).fill({ color: TP_PILL_COLOR, alpha: 0.85 });
7984
- labelIdx = this._drawLabel("TP", PILL_TP_X + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
7984
+ let pillCursor = pillX - 4;
7985
+ if (!hasSl) {
7986
+ const slX = pillCursor - PILL_W;
7987
+ const slY = y - PILL_H / 2;
7988
+ this._boxGfx.roundRect(slX, slY, PILL_W, PILL_H, PILL_R).fill({ color: SL_PILL_COLOR, alpha: 0.85 });
7989
+ labelIdx = this._drawLabel("SL", slX + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
7985
7990
  this._pillHitZones.push({
7986
- kind: "tp",
7991
+ kind: "sl",
7987
7992
  entryOrderId: pos.id,
7988
7993
  entrySide,
7989
- x: PILL_TP_X,
7990
- y: tpY,
7994
+ x: slX,
7995
+ y: slY,
7991
7996
  w: PILL_W,
7992
7997
  h: PILL_H
7993
7998
  });
7999
+ pillCursor = slX - 4;
7994
8000
  }
7995
- if (!hasSl) {
7996
- const slY = y - PILL_H / 2;
7997
- this._boxGfx.roundRect(PILL_SL_X, slY, PILL_W, PILL_H, PILL_R).fill({ color: SL_PILL_COLOR, alpha: 0.85 });
7998
- labelIdx = this._drawLabel("SL", PILL_SL_X + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
8001
+ if (!hasTp) {
8002
+ const tpX = pillCursor - PILL_W;
8003
+ const tpY = y - PILL_H / 2;
8004
+ this._boxGfx.roundRect(tpX, tpY, PILL_W, PILL_H, PILL_R).fill({ color: TP_PILL_COLOR, alpha: 0.85 });
8005
+ labelIdx = this._drawLabel("TP", tpX + PILL_W / 2, y, labelIdx, pillLabelStyle, true);
7999
8006
  this._pillHitZones.push({
8000
- kind: "sl",
8007
+ kind: "tp",
8001
8008
  entryOrderId: pos.id,
8002
8009
  entrySide,
8003
- x: PILL_SL_X,
8004
- y: slY,
8010
+ x: tpX,
8011
+ y: tpY,
8005
8012
  w: PILL_W,
8006
8013
  h: PILL_H
8007
8014
  });
@@ -9294,30 +9301,40 @@ var PixiChart = class {
9294
9301
  setTradingOrders(orders) {
9295
9302
  this._tradingOrders = orders;
9296
9303
  this._layers.dirty.mark(4 /* TradingOverlay */);
9297
- const hasDraggable = orders.some(
9298
- (o) => (o.role === "stop_loss" || o.role === "take_profit") && o.status !== "cancelled" && o.status !== "filled"
9299
- );
9300
- if (hasDraggable) {
9301
- this._interaction.setOrderLineHitTest(
9302
- (x, y) => this._tradingRenderer.hitTestDraggableOrder(x, y)
9303
- );
9304
- } else {
9305
- this._interaction.setOrderLineHitTest(null);
9306
- }
9307
- const hasEntryWithoutBracket = orders.some(
9308
- (o) => o.role === "entry" && !o.groupId && o.status !== "cancelled" && o.status !== "filled" && o.status !== "rejected"
9309
- );
9310
- if (hasEntryWithoutBracket) {
9311
- this._interaction.setPillHitTest(
9312
- (x, y) => this._tradingRenderer.hitTestPill(x, y)
9313
- );
9314
- } else {
9315
- this._interaction.setPillHitTest(null);
9316
- }
9304
+ this._refreshTradingHitTests();
9317
9305
  }
9318
9306
  setTradingPositions(positions) {
9319
9307
  this._tradingPositions = positions;
9320
9308
  this._layers.dirty.mark(4 /* TradingOverlay */);
9309
+ this._refreshTradingHitTests();
9310
+ }
9311
+ /**
9312
+ * (Re)register the trading hit tests against current orders AND positions.
9313
+ *
9314
+ * Was inline in setTradingOrders and keyed on hardcoded roles, which left
9315
+ * both interactions half-wired:
9316
+ *
9317
+ * - the drag hit test required a 'stop_loss'/'take_profit' order, so
9318
+ * working limit and stop lines rendered a drag handle they could not
9319
+ * actually be grabbed by
9320
+ * - the pill hit test required an ORDER with role 'entry' and no groupId,
9321
+ * but the pills are drawn on POSITIONS, so they were never grabbable
9322
+ *
9323
+ * Both now derive from the same predicates the renderer draws with.
9324
+ */
9325
+ _refreshTradingHitTests() {
9326
+ const hasDraggable = this._tradingOrders.some(
9327
+ (o) => isDraggableRole(o.role) && o.status !== "cancelled" && o.status !== "filled"
9328
+ );
9329
+ this._interaction.setOrderLineHitTest(
9330
+ hasDraggable ? (x, y) => this._tradingRenderer.hitTestDraggableOrder(x, y) : null
9331
+ );
9332
+ const hasPillSource = this._tradingPositions.some((p) => p.status === "open") || this._tradingOrders.some(
9333
+ (o) => o.role === "entry" && !o.groupId && o.status !== "cancelled" && o.status !== "filled" && o.status !== "rejected"
9334
+ );
9335
+ this._interaction.setPillHitTest(
9336
+ hasPillSource ? (x, y) => this._tradingRenderer.hitTestPill(x, y) : null
9337
+ );
9321
9338
  }
9322
9339
  setContractSwitches(switches) {
9323
9340
  this._timeScale.contractSwitches = switches;