scichart 3.2.442 → 3.2.457

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.
Files changed (28) hide show
  1. package/Charting/Model/BaseDataSeries.d.ts +1 -1
  2. package/Charting/Model/BaseDataSeries.js +21 -5
  3. package/Charting/Model/HlcDataSeries.js +4 -1
  4. package/Charting/Model/OhlcDataSeries.js +4 -1
  5. package/Charting/Model/XyyDataSeries.js +4 -1
  6. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +1 -1
  7. package/Charting/Visuals/Annotations/RolloverTooltipSvgAnnotation.js +1 -1
  8. package/Charting/Visuals/Axis/AxisBase2D.d.ts +16 -0
  9. package/Charting/Visuals/Axis/AxisBase2D.js +26 -2
  10. package/Charting/Visuals/Axis/constants.d.ts +2 -1
  11. package/Charting/Visuals/Axis/constants.js +1 -0
  12. package/Charting/Visuals/Legend/SciChartLegendBase.js +1 -1
  13. package/Charting/Visuals/PointMarkers/BasePointMarker.js +3 -1
  14. package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +6 -1
  15. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +4 -2
  16. package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +1 -1
  17. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +13 -16
  18. package/Charting/Visuals/SciChartSurface.js +5 -2
  19. package/Charting/Visuals/licenseManager2D.js +7 -11
  20. package/Charting3D/Visuals/Annotations/TooltipSvgAnnotation3D.js +1 -1
  21. package/Core/BuildStamp.d.ts +1 -1
  22. package/Core/BuildStamp.js +7 -3
  23. package/_wasm/scichart.browser.js +1 -1
  24. package/_wasm/scichart2d.wasm +0 -0
  25. package/_wasm/scichart3d.wasm +0 -0
  26. package/index.dev.js +110 -57
  27. package/index.min.js +1 -1
  28. package/package.json +1 -1
@@ -286,5 +286,5 @@ export declare abstract class BaseDataSeries extends DeletableEntity implements
286
286
  private getYValues;
287
287
  }
288
288
  /** @ignore */
289
- export declare const getIndicesRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, xRange: NumberRange, isSorted: boolean) => NumberRange;
289
+ export declare const getIndicesRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, xRange: NumberRange, isSorted: boolean, downSearchMode?: ESearchMode, upSearchMode?: ESearchMode) => NumberRange;
290
290
  export declare const getWindowedYRange: (webAssemblyContext: TSciChart, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, xRange: NumberRange, getPositiveRange: boolean, isXCategoryAxis: boolean, isSorted: boolean) => NumberRange;
@@ -352,7 +352,7 @@ var BaseDataSeries = /** @class */ (function (_super) {
352
352
  if (upSearchMode === void 0) { upSearchMode = SearchMode_1.ESearchMode.RoundUp; }
353
353
  // TODO SearchMode downSearchMode = SearchMode.RoundDown, SearchMode upSearchMode = SearchMode.RoundUp
354
354
  var vector = isCategoryData ? this.getNativeIndexes() : this.xValues;
355
- return (0, exports.getIndicesRange)(this.webAssemblyContext, vector, xRange, this.dataDistributionCalculator.isSortedAscending);
355
+ return (0, exports.getIndicesRange)(this.webAssemblyContext, vector, xRange, this.dataDistributionCalculator.isSortedAscending, downSearchMode, upSearchMode);
356
356
  };
357
357
  Object.defineProperty(BaseDataSeries.prototype, "hasValues", {
358
358
  /** @inheritDoc */
@@ -665,7 +665,9 @@ var BaseDataSeries = /** @class */ (function (_super) {
665
665
  }(DeletableEntity_1.DeletableEntity));
666
666
  exports.BaseDataSeries = BaseDataSeries;
667
667
  /** @ignore */
668
- var getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted) {
668
+ var getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted, downSearchMode, upSearchMode) {
669
+ if (downSearchMode === void 0) { downSearchMode = SearchMode_1.ESearchMode.RoundDown; }
670
+ if (upSearchMode === void 0) { upSearchMode = SearchMode_1.ESearchMode.RoundUp; }
669
671
  var count = xValues.size();
670
672
  var result = new NumberRange_1.NumberRange(0, -1);
671
673
  if (count > 0) {
@@ -673,9 +675,21 @@ var getIndicesRange = function (webAssemblyContext, xValues, xRange, isSorted) {
673
675
  if (!isSorted) {
674
676
  return new NumberRange_1.NumberRange(0, count - 1);
675
677
  }
678
+ var convertSearchMode = function (mode) {
679
+ switch (mode) {
680
+ case SearchMode_1.ESearchMode.Exact:
681
+ return webAssemblyContext.SCRTFindIndexSearchMode.Exact;
682
+ case SearchMode_1.ESearchMode.Nearest:
683
+ return webAssemblyContext.SCRTFindIndexSearchMode.Nearest;
684
+ case SearchMode_1.ESearchMode.RoundDown:
685
+ return webAssemblyContext.SCRTFindIndexSearchMode.RoundDown;
686
+ case SearchMode_1.ESearchMode.RoundUp:
687
+ return webAssemblyContext.SCRTFindIndexSearchMode.RoundUp;
688
+ }
689
+ };
676
690
  // For sorted data, we search the points in the viewport
677
- var iMin = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.min, webAssemblyContext.SCRTFindIndexSearchMode.RoundDown, true);
678
- var iMax = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.max, webAssemblyContext.SCRTFindIndexSearchMode.RoundUp, true);
691
+ var iMin = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.min, convertSearchMode(downSearchMode), true);
692
+ var iMax = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.max, convertSearchMode(upSearchMode), true);
679
693
  result = new NumberRange_1.NumberRange(iMin, iMax);
680
694
  }
681
695
  return result;
@@ -691,7 +705,9 @@ isSorted) {
691
705
  var y = yValues.get(0);
692
706
  return new NumberRange_1.NumberRange(y, y);
693
707
  }
694
- var indicesRange = isXCategoryAxis ? xRange : (0, exports.getIndicesRange)(webAssemblyContext, xValues, xRange, isSorted);
708
+ var indicesRange = isXCategoryAxis
709
+ ? xRange
710
+ : (0, exports.getIndicesRange)(webAssemblyContext, xValues, xRange, isSorted, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
695
711
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
696
712
  var iMax = Math.min(Math.ceil(indicesRange.max), count - 1);
697
713
  if (iMax < iMin) {
@@ -20,6 +20,7 @@ var Deleter_1 = require("../../Core/Deleter");
20
20
  var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
+ var SearchMode_1 = require("../../types/SearchMode");
23
24
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
24
25
  var isRealNumber_1 = require("../../utils/isRealNumber");
25
26
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
@@ -409,7 +410,9 @@ var HlcDataSeries = /** @class */ (function (_super) {
409
410
  return new NumberRange_1.NumberRange(min, max);
410
411
  }
411
412
  }
412
- var indicesRange = isXCategoryAxis ? xRange : this.getIndicesRange(xRange);
413
+ var indicesRange = isXCategoryAxis
414
+ ? xRange
415
+ : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
413
416
  var yMin = Number.MAX_VALUE;
414
417
  var yMax = Number.MIN_VALUE;
415
418
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
@@ -20,6 +20,7 @@ var Deleter_1 = require("../../Core/Deleter");
20
20
  var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
+ var SearchMode_1 = require("../../types/SearchMode");
23
24
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
24
25
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
25
26
  var BaseDataSeries_1 = require("./BaseDataSeries");
@@ -360,7 +361,9 @@ var OhlcDataSeries = /** @class */ (function (_super) {
360
361
  var y = closeValues.get(0);
361
362
  return new NumberRange_1.NumberRange(y, y);
362
363
  }
363
- var indicesRange = isXCategoryAxis ? xRange : this.getIndicesRange(xRange);
364
+ var indicesRange = isXCategoryAxis
365
+ ? xRange
366
+ : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
364
367
  var yMin = Number.MAX_VALUE;
365
368
  var yMax = Number.MIN_VALUE;
366
369
  var iMin = Math.max(indicesRange.min, 0);
@@ -20,6 +20,7 @@ var Deleter_1 = require("../../Core/Deleter");
20
20
  var Guard_1 = require("../../Core/Guard");
21
21
  var NumberRange_1 = require("../../Core/NumberRange");
22
22
  var NumberArray_1 = require("../../types/NumberArray");
23
+ var SearchMode_1 = require("../../types/SearchMode");
23
24
  var appendDoubleVectorFromJsArray_1 = require("../../utils/ccall/appendDoubleVectorFromJsArray");
24
25
  var isRealNumber_1 = require("../../utils/isRealNumber");
25
26
  var animationHelpers_1 = require("../Visuals/RenderableSeries/Animations/animationHelpers");
@@ -300,7 +301,9 @@ var XyyDataSeries = /** @class */ (function (_super) {
300
301
  var max = Math.max(yValues.get(0), y1Values.get(0));
301
302
  return new NumberRange_1.NumberRange(min, max);
302
303
  }
303
- var indicesRange = isXCategoryAxis ? xRange : this.getIndicesRange(xRange);
304
+ var indicesRange = isXCategoryAxis
305
+ ? xRange
306
+ : this.getIndicesRange(xRange, false, SearchMode_1.ESearchMode.RoundUp, SearchMode_1.ESearchMode.RoundDown);
304
307
  var iMin = Math.max(Math.floor(indicesRange.min), 0);
305
308
  var iMax = Math.min(Math.ceil(indicesRange.max), this.count() - 1);
306
309
  if (iMax < iMin) {
@@ -49,7 +49,7 @@ var CursorTooltipSvgAnnotation = /** @class */ (function (_super) {
49
49
  _this.cursorModifier = options.cursorModifier;
50
50
  _this.placementDivId = (_j = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _j !== void 0 ? _j : _this.placementDivId;
51
51
  if (_this.placementDivId) {
52
- var svgRoot = document.getElementById(_this.placementDivId);
52
+ var svgRoot = document.querySelector("[id='".concat(_this.placementDivId, "']"));
53
53
  _this.svgDivRoot = svgRoot;
54
54
  }
55
55
  return _this;
@@ -150,7 +150,7 @@ var RolloverTooltipSvgAnnotation = /** @class */ (function (_super) {
150
150
  else {
151
151
  svgString = this.generateSvgString();
152
152
  }
153
- this.svgDivRoot = document.getElementById(this.placementDivId);
153
+ this.svgDivRoot = document.querySelector("[id='".concat(this.placementDivId, "']"));
154
154
  var svgNode = annotationHelpers_1.annotationHelpers.createSvg(svgString, this.svgDivRoot);
155
155
  this.setSvg(svgNode);
156
156
  };
@@ -156,6 +156,11 @@ export interface IAxisBase2dOptions extends IAxisCoreOptions {
156
156
  * which is 0 for normal axes, but is used to position stacked axes.
157
157
  */
158
158
  overrideOffset?: number;
159
+ /**
160
+ * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.
161
+ * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.
162
+ */
163
+ clipToXRange?: boolean;
159
164
  }
160
165
  /**
161
166
  * The base class for 2D Chart Axis within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}.
@@ -323,6 +328,16 @@ export declare abstract class AxisBase2D extends AxisCore implements IThemeable
323
328
  * Gets or sets a {@link IAutoRangeAnimationOptions} object that controls if and how the visible range is animated during autoRanging
324
329
  */
325
330
  set autoRangeAnimation(autoRangeAnimation: IAutoRangeAnimationOptions);
331
+ /**
332
+ * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.
333
+ * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.
334
+ */
335
+ get clipToXRange(): boolean;
336
+ /**
337
+ * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.
338
+ * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.
339
+ */
340
+ set clipToXRange(clipToXRange: boolean);
326
341
  abstract type: EAxisType.CategoryAxis | EAxisType.LogarithmicAxis | EAxisType.NumericAxis | EAxisType.DateTimeNumericAxis;
327
342
  /**
328
343
  * Gets the parent {@link SciChartSurface} that this axis is attached to
@@ -369,6 +384,7 @@ export declare abstract class AxisBase2D extends AxisCore implements IThemeable
369
384
  private tickCache;
370
385
  private backgroundColorProperty;
371
386
  private dpiAdjustedLabelStyleCache;
387
+ private clipToXRangeProperty;
372
388
  /**
373
389
  * Creates an instance of the {@link AxisBase2D}
374
390
  * @param webAssemblyContext The {@link TSciChart | SciChart 2D WebAssembly Context} containing native methods and
@@ -102,7 +102,7 @@ var AxisBase2D = /** @class */ (function (_super) {
102
102
  */
103
103
  function AxisBase2D(webAssemblyContext, options) {
104
104
  var _this = this;
105
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
105
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
106
106
  _this = _super.call(this, options) || this;
107
107
  /**
108
108
  * Gets the {@link AxisLayoutState} class which manages layout
@@ -130,6 +130,7 @@ var AxisBase2D = /** @class */ (function (_super) {
130
130
  _this.offsetProperty = 0;
131
131
  _this.offsetOverrideProperty = undefined;
132
132
  _this.tickCache = undefined;
133
+ _this.clipToXRangeProperty = true;
133
134
  _this.webAssemblyContext2D = webAssemblyContext;
134
135
  _this.penCacheForMajorGridLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);
135
136
  _this.penCacheForMinorGridLines = new Pen2DCache_1.Pen2DCache(webAssemblyContext);
@@ -163,6 +164,7 @@ var AxisBase2D = /** @class */ (function (_super) {
163
164
  _this.autoRangeAnimationProperty = options === null || options === void 0 ? void 0 : options.autoRangeAnimation;
164
165
  _this.backgroundColor = (_k = options === null || options === void 0 ? void 0 : options.backgroundColor) !== null && _k !== void 0 ? _k : _this.backgroundColor;
165
166
  _this.offsetOverrideProperty = options === null || options === void 0 ? void 0 : options.overrideOffset; // undefined if not set
167
+ _this.clipToXRangeProperty = (_l = options === null || options === void 0 ? void 0 : options.clipToXRange) !== null && _l !== void 0 ? _l : _this.clipToXRange;
166
168
  return _this;
167
169
  }
168
170
  Object.defineProperty(AxisBase2D.prototype, "labelProvider", {
@@ -559,6 +561,27 @@ var AxisBase2D = /** @class */ (function (_super) {
559
561
  enumerable: false,
560
562
  configurable: true
561
563
  });
564
+ Object.defineProperty(AxisBase2D.prototype, "clipToXRange", {
565
+ /**
566
+ * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.
567
+ * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.
568
+ */
569
+ get: function () {
570
+ return this.clipToXRangeProperty;
571
+ },
572
+ /**
573
+ * For an X Axis only - Determines whether the series will be clipped to the {@link visibleRange}. Defaults true.
574
+ * You may want to set this false if you have stacked horizontal axes, or are using {@link offsetOverride}.
575
+ */
576
+ set: function (clipToXRange) {
577
+ if (this.clipToXRangeProperty !== clipToXRange) {
578
+ this.clipToXRangeProperty = clipToXRange;
579
+ this.notifyPropertyChanged(constants_1.PROPERTY.DRAW_ONLY_WITHIN_XRANGE);
580
+ }
581
+ },
582
+ enumerable: false,
583
+ configurable: true
584
+ });
562
585
  /** @inheritDoc */
563
586
  AxisBase2D.prototype.applyTheme = function (themeProvider) {
564
587
  var previousThemeProvider = this.parentSurface.previousThemeProvider;
@@ -974,7 +997,8 @@ var AxisBase2D = /** @class */ (function (_super) {
974
997
  minorDelta: this.minorDelta,
975
998
  // @ts-ignore
976
999
  labelProvider: this.labelProvider.toJSON(),
977
- keepLabelsWithinAxis: this.axisRenderer.keepLabelsWithinAxis
1000
+ keepLabelsWithinAxis: this.axisRenderer.keepLabelsWithinAxis,
1001
+ clipToXRange: this.clipToXRange
978
1002
  };
979
1003
  return { type: this.type, options: options };
980
1004
  };
@@ -45,5 +45,6 @@ export declare enum PROPERTY {
45
45
  VISIBLE_RANGE_SIZE_LIMIT = "VISIBLE_RANGE_SIZE_LIMIT",
46
46
  TICK_PROVIDER = "TICK_PROVIDER",
47
47
  VIEW_RECT = "VIEW_RECT",
48
- ZOOMEXTENTS_RANGE = "ZOOMEXTENTS_RANGE"
48
+ ZOOMEXTENTS_RANGE = "ZOOMEXTENTS_RANGE",
49
+ DRAW_ONLY_WITHIN_XRANGE = "DRAW_ONLY_WITHIN_XRANGE"
49
50
  }
@@ -50,4 +50,5 @@ var PROPERTY;
50
50
  PROPERTY["TICK_PROVIDER"] = "TICK_PROVIDER";
51
51
  PROPERTY["VIEW_RECT"] = "VIEW_RECT";
52
52
  PROPERTY["ZOOMEXTENTS_RANGE"] = "ZOOMEXTENTS_RANGE";
53
+ PROPERTY["DRAW_ONLY_WITHIN_XRANGE"] = "DRAW_ONLY_WITHIN_XRANGE";
53
54
  })(PROPERTY = exports.PROPERTY || (exports.PROPERTY = {}));
@@ -336,7 +336,7 @@ var SciChartLegendBase = /** @class */ (function (_super) {
336
336
  SciChartLegendBase.prototype.getParentDiv = function () {
337
337
  if (this.placementDivId) {
338
338
  return typeof this.placementDivId === "string"
339
- ? document.getElementById(this.placementDivId)
339
+ ? document.querySelector("[id='".concat(this.placementDivId, "']"))
340
340
  : this.placementDivId;
341
341
  }
342
342
  return this.rootDiv;
@@ -300,7 +300,9 @@ var BasePointMarker = /** @class */ (function (_super) {
300
300
  strokeMask.copyTexture();
301
301
  var fillMask = new CanvasTexture_1.CanvasTexture(this.webAssemblyContext, widthPadded, heightPadded);
302
302
  fillMask.clear();
303
- this.drawSprite(fillMask.getContext(), this.width * DpiHelper_1.DpiHelper.PIXEL_RATIO, this.height * DpiHelper_1.DpiHelper.PIXEL_RATIO, "#00000000", 0, "#ffffffff");
303
+ this.drawSprite(fillMask.getContext(),
304
+ // Temporary fix for ring around pointmarkers with paletteProvider
305
+ this.width * DpiHelper_1.DpiHelper.PIXEL_RATIO - 3, this.height * DpiHelper_1.DpiHelper.PIXEL_RATIO - 3, "#00000000", 0, "#ffffffff");
304
306
  fillMask.copyTexture();
305
307
  return { spriteTexture: spriteTexture, strokeMask: strokeMask, fillMask: fillMask };
306
308
  };
@@ -208,7 +208,12 @@ var BaseBandRenderableSeries = /** @class */ (function (_super) {
208
208
  var mergedSize = this.resamplerHelper.mergeIndexes(this.xyyTempPointSeries.intIndexes, xySize, xy1Size, ps.intIndexes);
209
209
  // Clear the intIndexes as long as we do not need them any more
210
210
  this.xyyTempPointSeries.intIndexes.clear();
211
- ps.indexes.resizeFast(mergedSize + 1);
211
+ if (rp.dataIsFifo) {
212
+ ps.indexes.resizeFast(mergedSize);
213
+ }
214
+ else {
215
+ ps.indexes.resizeFast(mergedSize + 1);
216
+ }
212
217
  // Get values by indexes for Y and Y1 values
213
218
  this.resamplerHelper.copyValuesByIndexes(ps.intIndexes, xValues, yValues, y1Values, mergedSize, rp.isCategoryAxis, this.dataSeries.fifoSweeping, ps.indexes, ps.xValues, ps.yValues, ps.y1Values);
214
219
  // This is now done in the copy step above
@@ -454,7 +454,8 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
454
454
  /** @inheritDoc */
455
455
  get: function () {
456
456
  var _this = this;
457
- return this.parentSurface.xAxes.asArray().find(function (el) { return el.id === _this.xAxisId; });
457
+ var _a;
458
+ return (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.xAxes.asArray().find(function (el) { return el.id === _this.xAxisId; });
458
459
  },
459
460
  enumerable: false,
460
461
  configurable: true
@@ -463,7 +464,8 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
463
464
  /** @inheritDoc */
464
465
  get: function () {
465
466
  var _this = this;
466
- return this.parentSurface.yAxes.asArray().find(function (el) { return el.id === _this.yAxisId; });
467
+ var _a;
468
+ return (_a = this.parentSurface) === null || _a === void 0 ? void 0 : _a.yAxes.asArray().find(function (el) { return el.id === _this.yAxisId; });
467
469
  },
468
470
  enumerable: false,
469
471
  configurable: true
@@ -76,7 +76,7 @@ var BaseStackedRenderableSeries = /** @class */ (function (_super) {
76
76
  * Called when the {@link BaseStackedRenderableSeries} is detached from its parent {@link BaseStackedCollection}
77
77
  */
78
78
  BaseStackedRenderableSeries.prototype.onDetachFromParentCollection = function () {
79
- console.log("onDetachFromParentCollection");
79
+ // console.log("onDetachFromParentCollection");
80
80
  this.parentCollection = undefined;
81
81
  this.getParentSurfaceFn = undefined;
82
82
  this.notifyParentPropertyChangedFn = undefined;
@@ -67,12 +67,14 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
67
67
  * @returns
68
68
  */
69
69
  BaseSeriesDrawingProvider.prototype.getStartAndCount = function (renderPassData, xValues) {
70
- var _a;
70
+ var _a, _b, _c;
71
71
  var pointSeries = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries;
72
+ var xAxis = (_a = this.parentSeries) === null || _a === void 0 ? void 0 : _a.xAxis;
73
+ var shouldClip = (_b = xAxis === null || xAxis === void 0 ? void 0 : xAxis.clipToXRange) !== null && _b !== void 0 ? _b : true; // fo the sake of tests
72
74
  var xCount = xValues.size();
73
75
  var count = Math.min(pointSeries ? pointSeries.indexes.size() : xCount, xCount);
74
76
  var startIndex = 0;
75
- if (!(pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.resampled) && ((_a = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.indexRange) === null || _a === void 0 ? void 0 : _a.diff) > 0) {
77
+ if (shouldClip && !(pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.resampled) && ((_c = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.indexRange) === null || _c === void 0 ? void 0 : _c.diff) > 0) {
76
78
  if (renderPassData.indexRange.diff + 1 < count) {
77
79
  startIndex = renderPassData.indexRange.min;
78
80
  }
@@ -134,7 +136,7 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
134
136
  }
135
137
  };
136
138
  BaseSeriesDrawingProvider.prototype.applyStrokeFillPaletting = function (stroke, strokePen, fill, fillBrush, opacity, usePalette, resetPenBrushColors) {
137
- var _a, _b, _c, _d, _e, _f;
139
+ var _a, _b, _c, _d, _e;
138
140
  if (usePalette === void 0) { usePalette = false; }
139
141
  if (resetPenBrushColors === void 0) { resetPenBrushColors = true; }
140
142
  var hasStrokePaletteProvider = this.parentSeries.hasStrokePaletteProvider();
@@ -166,20 +168,15 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
166
168
  var dataSeries = this.parentSeries.dataSeries;
167
169
  var renderPassData = this.parentSeries.getCurrentRenderPassData();
168
170
  var pointSeries = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.pointSeries;
169
- var xValues = (_a = pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.xValues) !== null && _a !== void 0 ? _a : dataSeries.getNativeXValues();
170
- var yValues = (_b = pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.yValues) !== null && _b !== void 0 ? _b : dataSeries.getNativeYValues();
171
- var drawCount = pointSeries ? pointSeries.indexes.size() : xValues.size();
172
- var indexStart = 0;
173
- if (!(pointSeries === null || pointSeries === void 0 ? void 0 : pointSeries.resampled) && ((_c = renderPassData === null || renderPassData === void 0 ? void 0 : renderPassData.indexRange) === null || _c === void 0 ? void 0 : _c.diff) > 0) {
174
- drawCount = renderPassData.indexRange.diff + 1;
175
- indexStart = renderPassData.indexRange.min;
176
- }
171
+ var xValues = (_a = (pointSeries ? this.xSelector(pointSeries) : undefined)) !== null && _a !== void 0 ? _a : dataSeries.getNativeXValues();
172
+ var yValues = (_b = (pointSeries ? this.ySelector(pointSeries) : undefined)) !== null && _b !== void 0 ? _b : dataSeries.getNativeYValues();
173
+ var _f = this.getStartAndCount(renderPassData, xValues), startIndex = _f.startIndex, count = _f.count;
177
174
  if (!this.palettingState.palettedColors) {
178
175
  this.palettingState.palettedColors = new this.webAssemblyContext.UIntVector();
179
176
  }
180
177
  this.palettingState.paletteTextureCache.reset();
181
178
  this.palettingState.palettedColors.clear();
182
- this.palettingState.palettedColors.reserve(drawCount * 2);
179
+ this.palettingState.palettedColors.reserve(count * 2);
183
180
  // Commented this code out, because I don't know what this code does
184
181
  if (resetPenBrushColors) {
185
182
  if (strokePen) {
@@ -203,7 +200,7 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
203
200
  }
204
201
  // Override stroke and fill colors
205
202
  var hashCode = 0;
206
- for (var index = indexStart; index < indexStart + drawCount; index++) {
203
+ for (var index = startIndex; index < startIndex + count; index++) {
207
204
  var originalDataIndex = pointSeries ? pointSeries.indexes.get(index) : index;
208
205
  if (originalDataIndex < 0)
209
206
  originalDataIndex = 0;
@@ -212,8 +209,8 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
212
209
  var xValue = xValues.get(index);
213
210
  var yValue = yValues.get(index);
214
211
  var overriddenColors = this.overridePaletteProviderColors(this.parentSeries, xValue, yValue, originalDataIndex, opacity, dataSeries.getMetadataAt(originalDataIndex));
215
- var overrideStrokeColor = (_d = overriddenColors.stroke) !== null && _d !== void 0 ? _d : strokeColor;
216
- var overrideFillColor = (_e = overriddenColors.fill) !== null && _e !== void 0 ? _e : fillColor;
212
+ var overrideStrokeColor = (_c = overriddenColors.stroke) !== null && _c !== void 0 ? _c : strokeColor;
213
+ var overrideFillColor = (_d = overriddenColors.fill) !== null && _d !== void 0 ? _d : fillColor;
217
214
  this.palettingState.palettedColors.push_back(overrideStrokeColor);
218
215
  this.palettingState.palettedColors.push_back(overrideFillColor);
219
216
  hashCode = (0, number_1.numericHashCode)(hashCode, overrideStrokeColor);
@@ -230,7 +227,7 @@ var BaseSeriesDrawingProvider = /** @class */ (function (_super) {
230
227
  }
231
228
  else {
232
229
  this.palettingState.paletteTextureCache.reset();
233
- (_f = this.palettingState.palettedColors) === null || _f === void 0 ? void 0 : _f.clear();
230
+ (_e = this.palettingState.palettedColors) === null || _e === void 0 ? void 0 : _e.clear();
234
231
  // This was needed for resetPenBrushColors, therefore commented out as well
235
232
  if (strokePen) {
236
233
  if (this.palettingState.originalPenColor) {
@@ -1495,7 +1495,7 @@ var SciChartSubSurface = /** @class */ (function (_super) {
1495
1495
  if (_this.subChartContainerId) {
1496
1496
  _this.subChartContainer =
1497
1497
  typeof _this.subChartContainerId === "string"
1498
- ? document.getElementById(_this.subChartContainerId)
1498
+ ? document.querySelector("[id='".concat(_this.subChartContainerId, "']"))
1499
1499
  : _this.subChartContainerId;
1500
1500
  }
1501
1501
  _this.applyOptions(options.subSurfaceOptions);
@@ -1705,7 +1705,10 @@ var SciChartSubSurface = /** @class */ (function (_super) {
1705
1705
  SciChartSubSurface.prototype.getSubChartRect = function () {
1706
1706
  var _a = this.renderSurface.viewportSize, width = _a.width, height = _a.height;
1707
1707
  var _b = this.adjustedPadding, top = _b.top, left = _b.left, bottom = _b.bottom, right = _b.right;
1708
- return new Rect_1.Rect(left, top, width - left - right, height - top - bottom);
1708
+ // When resizing too fast it could happen that width < left + right or height < top + bottom and it breaks subcharts
1709
+ var newWidth = width - left - right > 0 ? width - left - right : 0;
1710
+ var newHeight = height - top - bottom > 0 ? height - top - bottom : 0;
1711
+ return new Rect_1.Rect(left, top, newWidth, newHeight);
1709
1712
  };
1710
1713
  /**
1711
1714
  * @inheritDoc
@@ -675,11 +675,8 @@ var createLicenseModal = function (message, postFormMessage) {
675
675
  closeDiv.innerHTML = "&times;";
676
676
  closeDiv.className = "licenseModalClose";
677
677
  modalHeader.appendChild(closeDiv);
678
- var modalInfo = document.createElement("div");
679
- modalInfo.style.padding = "10px 26px 10px 16px";
680
- modalInfo.innerHTML = "<ol><li>If you have not done so already, download the SciChart Cross Platform Licensing Wizard for\n <a href=\"https://github.com/ABTSoftware/SciChart.LicenseWizard/releases/latest/download/SciChart-Licensing-Wizard.exe\" download> Windows</a> or\n <a href=\"https://github.com/ABTSoftware/SciChart.LicenseWizard/releases/latest/download/SciChart-Licensing-Wizard.dmg\" download> macOS</a></li>\n <li>Install it and sign in with your SciChart username and password</li>\n <li>Start a trial for SciChart Web</li>\n <li>This web page should pick up your license from the wizard in a few seconds, or refresh the page</li>";
681
678
  var buttonLabel = document.createElement("div");
682
- modalInfo.innerHTML = "To toggle License debug mode use button below and refresh the page.";
679
+ buttonLabel.innerHTML = "If you contact support with a licensing issue, we will ask you to send us the license debug log.\n To toggle License debug mode use the button below and refresh the page, then check the console output. \n When copying the log, make sure to start from the beginning, indicated by the reported version number";
683
680
  var toggleDebugModeButton = document.createElement("button");
684
681
  toggleDebugModeButton.style.margin = "10px";
685
682
  var setDebugModeSwitchLabel = function () {
@@ -690,7 +687,6 @@ var createLicenseModal = function (message, postFormMessage) {
690
687
  (0, exports.setIsDebugLicensing)(!isDebug, true);
691
688
  setDebugModeSwitchLabel();
692
689
  };
693
- modalContentForm.appendChild(modalInfo);
694
690
  modalContentForm.appendChild(buttonLabel);
695
691
  modalContentForm.appendChild(toggleDebugModeButton);
696
692
  var modalFooter = document.createElement("div");
@@ -705,7 +701,7 @@ var createLicenseModal = function (message, postFormMessage) {
705
701
  licenseModal.style.display = "none";
706
702
  }
707
703
  };
708
- var oldModal = document.getElementById(licenseModal.id);
704
+ var oldModal = document.querySelector("[id='".concat(licenseModal.id, "']"));
709
705
  if (oldModal == null)
710
706
  document.body.appendChild(licenseModal);
711
707
  else
@@ -842,7 +838,7 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
842
838
  return;
843
839
  }
844
840
  // Update license message text
845
- var licensingLink = "<a href=\"https://www.scichart.com/licensing-scichart\" target=\"_blank\" style=\"color: white\">www.scichart.com/licensing-scichart</a>";
841
+ var licensingLink = "<a href=\"https://www.scichart.com/licensing-scichart-js\" target=\"_blank\" style=\"color: white\">www.scichart.com/licensing-scichart-js</a>";
846
842
  var contactSupportLink = "<a href=\"https://www.scichart.com/contact-us/\" target=\"_blank\" style=\"color: orange\">contact support</a>";
847
843
  if (licenseType === licensingClasses_1.LicenseType.NoLicense) {
848
844
  premsg = "You need to have a license to use SciChart. ";
@@ -850,7 +846,7 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
850
846
  }
851
847
  else if (licenseType === licensingClasses_1.LicenseType.Invalid) {
852
848
  if (error.startsWith("License is not valid for this domain"))
853
- premsg = "Sorry! Your license key is invalid for this domain</br>Please ".concat(contactSupportLink, " with your OrderID if you believe this to be incorrect.");
849
+ premsg = "Sorry! The runtime license key is not valid for this domain</br>\n Please ".concat(contactSupportLink, " with your OrderID if you believe this to be incorrect. <u>Click for more information</u></br>\n For local development, make sure the Licensing Wizard is running and activated.</br>\n To use Community Edition, remove the call to setRuntimeLicenseKey");
854
850
  else if (error.startsWith("This version of SciChart can no longer be trialed"))
855
851
  premsg = "Sorry! This version of SciChart is too old to be trialed. Please update to the latest version";
856
852
  else if (error.startsWith("This version of SciChart can no longer be used for the community edition"))
@@ -902,18 +898,18 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
902
898
  if (licenseType === licensingClasses_1.LicenseType.Community) {
903
899
  (0, Telemetry_1.sendTelemetry)();
904
900
  }
905
- chartmsg = "<br>Looking for Licensing Wizard... <u>Please run it or click for download and installation instructions</u>.";
901
+ chartmsg = "<br>Looking for Licensing Wizard...";
906
902
  }
907
903
  else if (checkStatus === licensingClasses_1.LicenseCheckStatus.FailedToFindLicenseWizard)
908
904
  if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {
909
- chartmsg = "<br><u>Could not connect to the Licensing Wizard. Please run it or click for download and installation instructions, then reload this page.</u>";
905
+ chartmsg = "<br><u>Could not connect to the Licensing Wizard. Please run it, then reload this page.</u>";
910
906
  }
911
907
  else {
912
908
  chartmsg = "<br><u>Could not connect to the server licensing endpoint</u>";
913
909
  }
914
910
  else if (checkStatus === licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense)
915
911
  if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {
916
- chartmsg = "<br><u>Trying to validate your license... Please run the Licensing Wizard or click for download and installation instructions</u>.";
912
+ chartmsg = "<br><u>Trying to validate your license...";
917
913
  }
918
914
  else {
919
915
  chartmsg = "<br><u>Trying to validate your license with the server...</u>.";
@@ -49,7 +49,7 @@ var TooltipSvgAnnotation3D = /** @class */ (function (_super) {
49
49
  _this.placementDivIdProperty = (_h = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _h !== void 0 ? _h : _this.placementDivId;
50
50
  _this.tooltipDataTemplateProperty = options === null || options === void 0 ? void 0 : options.tooltipDataTemplate;
51
51
  if (_this.placementDivId) {
52
- var svgRoot = document.getElementById(_this.placementDivId);
52
+ var svgRoot = document.querySelector("[id='".concat(_this.placementDivId, "']"));
53
53
  _this.svgDivRoot = svgRoot;
54
54
  }
55
55
  return _this;
@@ -1,4 +1,4 @@
1
1
  import { TSciChart } from "../types/TSciChart";
2
2
  import { TSciChart3D } from "../types/TSciChart3D";
3
- export declare const libraryVersion = "3.2.442";
3
+ export declare const libraryVersion = "3.2.457";
4
4
  export declare const checkBuildStamp: (wasmContext: TSciChart | TSciChart3D) => boolean;
@@ -1,20 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.checkBuildStamp = exports.libraryVersion = void 0;
4
- var buildStamp = "2023-07-27T00:00:00";
4
+ var buildStamp = "2023-08-17T00:00:00";
5
5
  var result;
6
6
  // tslint:disable-next-line:no-var-requires
7
- exports.libraryVersion = "3.2.442";
7
+ exports.libraryVersion = "3.2.457";
8
8
  var checkBuildStamp = function (wasmContext) {
9
9
  if (result !== undefined)
10
10
  return result;
11
11
  if (!wasmContext)
12
12
  return false;
13
13
  if (wasmContext.SCRTCredentials.GetBuildStamp) {
14
- if (wasmContext.SCRTCredentials.GetBuildStamp() === buildStamp) {
14
+ var wasmBuildStamp = wasmContext.SCRTCredentials.GetBuildStamp();
15
+ if (wasmBuildStamp === buildStamp) {
15
16
  result = true;
16
17
  return result;
17
18
  }
19
+ else {
20
+ console.warn("Build stamp diff: JS - ".concat(buildStamp, "; WASM - ").concat(wasmBuildStamp));
21
+ }
18
22
  }
19
23
  console.warn("The SciChart webassembly module is from a different version than the javascript that is calling it.\n Ensure that your build process is copying the correct wasm and data files.");
20
24
  result = false;