@pipsend/charts 2.3.18 → 2.3.19

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @license
3
- * Pipsend Charts v2.3.18-dev+202610170141
3
+ * Pipsend Charts v2.3.19-dev+202610211514
4
4
  * Copyright (c) 2026 Pipsend
5
5
  * Licensed under MIT License
6
6
  * Built on TradingView Lightweight Charts™ (Apache 2.0)
@@ -27953,6 +27953,13 @@
27953
27953
  isDrawingModeActive() {
27954
27954
  return this._private__drawingModeActive;
27955
27955
  }
27956
+ /**
27957
+ * A brush armed for its next stroke is not a drawing yet: it stays out of the
27958
+ * undo history, where restoring it would re-arm a brush the app does not hold.
27959
+ */
27960
+ isComplete() {
27961
+ return (this._private__brushOptions.points ?? []).length > 0;
27962
+ }
27956
27963
  _private__onPointerDown(event) {
27957
27964
  // A press over an existing drawing belongs to that drawing: it is how the
27958
27965
  // user grabs or selects one without putting the brush away first.
@@ -30826,7 +30833,22 @@
30826
30833
  _private__applySnapshot(snapshot) {
30827
30834
  this._private__restoring = true;
30828
30835
  try {
30829
- this.restoreAll({ chart: this._private__chart, series: this._private__series }, snapshot, true);
30836
+ // The history only holds placed drawings, so a tool still being drawn
30837
+ // stays: undoing with the brush armed must leave it armed.
30838
+ this._private__applySelection(null);
30839
+ for (const [id, tool] of Array.from(this._private__tools)) {
30840
+ if (!tool.isComplete()) {
30841
+ continue;
30842
+ }
30843
+ tool.remove();
30844
+ this._private__tools.delete(id);
30845
+ this._private__pendingToolIds.delete(id);
30846
+ }
30847
+ // Annotated, or the build renames the keys the tools read
30848
+ const context = { chart: this._private__chart, series: this._private__series };
30849
+ for (const data of snapshot) {
30850
+ this.restoreTool(context, data);
30851
+ }
30830
30852
  this._private__committed = snapshot;
30831
30853
  }
30832
30854
  finally {
@@ -31434,6 +31456,8 @@
31434
31456
  event.preventDefault();
31435
31457
  }
31436
31458
  _private__handlePointerUp(event) {
31459
+ // A brush stroke ends here, and no click follows it to run the check
31460
+ this._private__scheduleCompletionCheck();
31437
31461
  if (!this._private__isDragging || this._private__draggedToolId === null) {
31438
31462
  return;
31439
31463
  }
@@ -31606,7 +31630,7 @@
31606
31630
  * Returns the current version as a string. For example `'1.0.0'`.
31607
31631
  */
31608
31632
  function version() {
31609
- return "2.3.18-dev+202610170141";
31633
+ return "2.3.19-dev+202610211514";
31610
31634
  }
31611
31635
 
31612
31636
  var PipsendChartsModule = /*#__PURE__*/Object.freeze({
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * @license
3
- * Pipsend Charts v2.3.18-dev+202610170141
3
+ * Pipsend Charts v2.3.19-dev+202610211514
4
4
  * Copyright (c) 2026 Pipsend
5
5
  * Licensed under MIT License
6
6
  * Built on TradingView Lightweight Charts™ (Apache 2.0)
@@ -27950,6 +27950,13 @@ class BrushTool extends DrawingToolBase {
27950
27950
  isDrawingModeActive() {
27951
27951
  return this._private__drawingModeActive;
27952
27952
  }
27953
+ /**
27954
+ * A brush armed for its next stroke is not a drawing yet: it stays out of the
27955
+ * undo history, where restoring it would re-arm a brush the app does not hold.
27956
+ */
27957
+ isComplete() {
27958
+ return (this._private__brushOptions.points ?? []).length > 0;
27959
+ }
27953
27960
  _private__onPointerDown(event) {
27954
27961
  // A press over an existing drawing belongs to that drawing: it is how the
27955
27962
  // user grabs or selects one without putting the brush away first.
@@ -30823,7 +30830,22 @@ class DrawingToolsManager {
30823
30830
  _private__applySnapshot(snapshot) {
30824
30831
  this._private__restoring = true;
30825
30832
  try {
30826
- this.restoreAll({ chart: this._private__chart, series: this._private__series }, snapshot, true);
30833
+ // The history only holds placed drawings, so a tool still being drawn
30834
+ // stays: undoing with the brush armed must leave it armed.
30835
+ this._private__applySelection(null);
30836
+ for (const [id, tool] of Array.from(this._private__tools)) {
30837
+ if (!tool.isComplete()) {
30838
+ continue;
30839
+ }
30840
+ tool.remove();
30841
+ this._private__tools.delete(id);
30842
+ this._private__pendingToolIds.delete(id);
30843
+ }
30844
+ // Annotated, or the build renames the keys the tools read
30845
+ const context = { chart: this._private__chart, series: this._private__series };
30846
+ for (const data of snapshot) {
30847
+ this.restoreTool(context, data);
30848
+ }
30827
30849
  this._private__committed = snapshot;
30828
30850
  }
30829
30851
  finally {
@@ -31431,6 +31453,8 @@ class DrawingToolsManager {
31431
31453
  event.preventDefault();
31432
31454
  }
31433
31455
  _private__handlePointerUp(event) {
31456
+ // A brush stroke ends here, and no click follows it to run the check
31457
+ this._private__scheduleCompletionCheck();
31434
31458
  if (!this._private__isDragging || this._private__draggedToolId === null) {
31435
31459
  return;
31436
31460
  }
@@ -31603,7 +31627,7 @@ const customSeriesDefaultOptions = {
31603
31627
  * Returns the current version as a string. For example `'1.0.0'`.
31604
31628
  */
31605
31629
  function version() {
31606
- return "2.3.18-dev+202610170141";
31630
+ return "2.3.19-dev+202610211514";
31607
31631
  }
31608
31632
 
31609
31633
  export { areaSeries as AreaSeries, ArrowTool, barSeries as BarSeries, baselineSeries as BaselineSeries, BrushTool, candlestickSeries as CandlestickSeries, CircleTool, ColorType, CrossLineTool, CrosshairMode, DEFAULT_SESSIONS, DraggablePriceLine, DrawingToolsManager, EXTENDED_FIBONACCI_RATIOS, FibonacciCalculator, FibonacciExtensionTool, FibonacciFanTool, FibonacciTool, GanttTool, histogramSeries as HistogramSeries, HorizontalLineTool, InteractiveLineManager, LastPriceAnimationMode, lineSeries as LineSeries, LineStyle, LineType, MismatchDirection, ParallelChannelTool, PitchforkTool, PolygonTool, PositionCalculator, PositionLine, PositionMarkersManager, PositionTool, PriceLineSource, PriceScaleMode, RectangleTool, RulerCalculator, RulerTool, STANDARD_FIBONACCI_RATIOS, TextTool, TickMarkType, TrackingModeExitMode, TradingSessionsIndicator, TrendLineTool, VerticalLineTool, VolumeProfileIndicator, applyADX, applyATR, applyBollingerBands, applyCCI, applyDonchianChannels, applyEMA, applyHeikinAshi, applyIchimoku, applyKeltnerChannels, applyMACD, applyMFI, applyOBV, applyParabolicSAR, applyPivotPoints, applyRSI, applySMA, applyStochastic, applySuperTrend, applyVWAP, applyVolume, applyWMA, applyWilliamsR, calculateHeikinAshi, calculatePipConfig, coordinateFromTime, createArrowTool, createBrushTool, createChart, createChartEx, createCircleTool, createCrossLineTool, createFibonacciExtensionTool, createFibonacciFanTool, createFibonacciTool, createGanttTool, createHorizontalLineTool, createImageWatermark, createInteractiveLineManager, createOptionsChart, createParallelChannelTool, createPitchforkTool, createPolygonTool, createPositionLine, createPositionMarkers, createPositionTool, createRectangleTool, createRulerTool, createSeriesMarkers, createTextTool, createTextWatermark, createTimeLabels, createTradingLine, createTradingSessionsIndicator, createTrendLineTool, createUpDownMarkers, createVerticalLineTool, createVolumeProfileIndicator, createYieldCurveChart, customSeriesDefaultOptions, defaultHorzScaleBehavior, getPipConfig, hideSeriesPaint, isBusinessDay, isUTCTimestamp, setSeriesVolumes, setVolumeProfileData, timeFromCoordinate, version };