scichart 3.2.0-beta → 3.2.442

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 (123) hide show
  1. package/Builder/buildSurface.d.ts +2 -2
  2. package/Builder/chartBuilder.d.ts +4 -4
  3. package/Charting/ChartModifiers/ChartModifierBase.d.ts +5 -5
  4. package/Charting/ChartModifiers/ChartModifierBase.js +2 -3
  5. package/Charting/ChartModifiers/CursorModifier.d.ts +9 -9
  6. package/Charting/ChartModifiers/CursorModifier.js +1 -1
  7. package/Charting/ChartModifiers/DataPointSelectionModifier.d.ts +1 -0
  8. package/Charting/ChartModifiers/DataPointSelectionModifier.js +6 -1
  9. package/Charting/ChartModifiers/LegendModifier.d.ts +9 -24
  10. package/Charting/ChartModifiers/LegendModifier.js +9 -21
  11. package/Charting/ChartModifiers/MouseWheelZoomModifier.js +20 -11
  12. package/Charting/ChartModifiers/OverviewRangeSelectionModifier.d.ts +5 -5
  13. package/Charting/ChartModifiers/PinchZoomModifier.js +9 -9
  14. package/Charting/ChartModifiers/RubberBandXyZoomModifier.d.ts +4 -7
  15. package/Charting/ChartModifiers/RubberBandXyZoomModifier.js +6 -8
  16. package/Charting/ChartModifiers/SeriesSelectionModifier.js +10 -8
  17. package/Charting/ChartModifiers/XAxisDragModifier.d.ts +1 -1
  18. package/Charting/ChartModifiers/XAxisDragModifier.js +3 -3
  19. package/Charting/ChartModifiers/YAxisDragModifier.d.ts +2 -4
  20. package/Charting/ChartModifiers/YAxisDragModifier.js +7 -8
  21. package/Charting/Drawing/BaseCache.js +13 -8
  22. package/Charting/Model/BaseDataSeries.d.ts +2 -2
  23. package/Charting/Model/Filters/HlcFilterBase.d.ts +6 -2
  24. package/Charting/Model/Filters/HlcFilterBase.js +17 -1
  25. package/Charting/Model/Filters/IFilterBase.d.ts +24 -0
  26. package/Charting/Model/Filters/IFilterBase.js +2 -0
  27. package/Charting/Model/Filters/OhlcFilterBase.d.ts +6 -2
  28. package/Charting/Model/Filters/OhlcFilterBase.js +17 -1
  29. package/Charting/Model/Filters/XyFilterBase.d.ts +6 -5
  30. package/Charting/Model/Filters/XyFilterBase.js +17 -1
  31. package/Charting/Model/Filters/XyyFilterBase.d.ts +6 -2
  32. package/Charting/Model/Filters/XyyFilterBase.js +17 -1
  33. package/Charting/Model/Filters/XyzFilterBase.d.ts +6 -2
  34. package/Charting/Model/Filters/XyzFilterBase.js +17 -1
  35. package/Charting/Model/XyyDataSeries.js +15 -16
  36. package/Charting/Visuals/Annotations/CursorTooltipSvgAnnotation.js +0 -4
  37. package/Charting/Visuals/Annotations/NativeTextAnnotation.js +4 -0
  38. package/Charting/Visuals/Axis/AxisBase2D.d.ts +3 -3
  39. package/Charting/Visuals/Axis/AxisCore.d.ts +2 -2
  40. package/Charting/Visuals/Axis/DeltaCalculator/DateTimeDeltaCalculator.js +15 -1
  41. package/Charting/Visuals/Legend/ManualLegend.d.ts +57 -0
  42. package/Charting/Visuals/Legend/ManualLegend.js +150 -0
  43. package/Charting/Visuals/Legend/SciChartLegend.js +4 -3
  44. package/Charting/Visuals/Legend/SciChartLegendBase.d.ts +62 -3
  45. package/Charting/Visuals/Legend/SciChartLegendBase.js +70 -11
  46. package/Charting/Visuals/PointMarkers/BasePointMarker.js +13 -8
  47. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.d.ts +1 -1
  48. package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +3 -3
  49. package/Charting/Visuals/RenderableSeries/BaseStackedCollection.js +8 -3
  50. package/Charting/Visuals/RenderableSeries/DrawingProviders/BandSeriesDrawingProvider.js +6 -10
  51. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.d.ts +14 -3
  52. package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +34 -10
  53. package/Charting/Visuals/RenderableSeries/DrawingProviders/BubbleSeriesDrawingProvider.js +3 -8
  54. package/Charting/Visuals/RenderableSeries/DrawingProviders/ColumnSeriesDrawingProvider.js +5 -10
  55. package/Charting/Visuals/RenderableSeries/DrawingProviders/LineSeriesDrawingProvider.js +5 -10
  56. package/Charting/Visuals/RenderableSeries/DrawingProviders/MountainSeriesDrawingProvider.js +5 -9
  57. package/Charting/Visuals/RenderableSeries/DrawingProviders/OhlcSeriesDrawingProvider.js +3 -8
  58. package/Charting/Visuals/RenderableSeries/DrawingProviders/PointMarkerDrawingProvider.js +5 -9
  59. package/Charting/Visuals/RenderableSeries/HoveredChangedArgs.d.ts +6 -1
  60. package/Charting/Visuals/RenderableSeries/HoveredChangedArgs.js +2 -1
  61. package/Charting/Visuals/RenderableSeries/IRenderableSeries.d.ts +1 -1
  62. package/Charting/Visuals/RenderableSeries/SelectionChangedArgs.d.ts +6 -1
  63. package/Charting/Visuals/RenderableSeries/SelectionChangedArgs.js +2 -1
  64. package/Charting/Visuals/RenderableSeries/SplineBandRenderableSeries.js +43 -1
  65. package/Charting/Visuals/RenderableSeries/SplineLineRenderableSeries.js +6 -1
  66. package/Charting/Visuals/RenderableSeries/SplineMountainRenderableSeries.js +6 -1
  67. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.d.ts +4 -0
  68. package/Charting/Visuals/RubberBandSvgRect/RubberBandSvgRect.js +8 -2
  69. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.d.ts +6 -0
  70. package/Charting/Visuals/SciChartPieSurface/SciChartPieSurface.js +7 -0
  71. package/Charting/Visuals/SciChartSurface.d.ts +0 -5
  72. package/Charting/Visuals/SciChartSurface.js +11 -12
  73. package/Charting/Visuals/SciChartSurfaceBase.d.ts +19 -1
  74. package/Charting/Visuals/SciChartSurfaceBase.js +45 -23
  75. package/Charting/Visuals/createMaster.d.ts +3 -0
  76. package/Charting/Visuals/createMaster.js +54 -23
  77. package/Charting/Visuals/createSingle.js +2 -2
  78. package/Charting/Visuals/licenseManager2D.js +9 -4
  79. package/Charting3D/ChartModifiers/ResetCamera3DModifier.d.ts +1 -1
  80. package/Charting3D/ChartModifiers/ResetCamera3DModifier.js +1 -2
  81. package/Charting3D/ChartModifiers/TooltipModifier3D.d.ts +35 -0
  82. package/Charting3D/ChartModifiers/TooltipModifier3D.js +41 -5
  83. package/Charting3D/Model/DataSeries/BaseGridDataSeries3D.d.ts +1 -1
  84. package/Charting3D/Model/DataSeries/BaseGridDataSeries3D.js +2 -2
  85. package/Charting3D/Model/DataSeries/IPointMetadata3D.d.ts +7 -2
  86. package/Charting3D/Visuals/Axis/AxisBase3D.d.ts +8 -1
  87. package/Charting3D/Visuals/Axis/AxisBase3D.js +0 -2
  88. package/Charting3D/Visuals/Axis/NumericAxis3D.d.ts +3 -2
  89. package/Charting3D/Visuals/Axis/NumericAxis3D.js +7 -3
  90. package/Charting3D/Visuals/Primitives/PointLine3DSceneEntity.js +4 -2
  91. package/Charting3D/Visuals/Primitives/ScatterPointsSceneEntity.js +5 -2
  92. package/Charting3D/Visuals/Primitives/SurfaceMeshSceneEntity.js +2 -1
  93. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.d.ts +5 -0
  94. package/Charting3D/Visuals/RenderableSeries/BaseRenderableSeries3D.js +19 -5
  95. package/Charting3D/Visuals/SciChart3DRenderer.d.ts +0 -1
  96. package/Charting3D/Visuals/SciChart3DRenderer.js +3 -26
  97. package/Charting3D/Visuals/SciChart3DSurface.d.ts +12 -5
  98. package/Charting3D/Visuals/SciChart3DSurface.js +35 -6
  99. package/Charting3D/Visuals/createMaster3d.js +9 -4
  100. package/Core/BuildStamp.d.ts +1 -1
  101. package/Core/BuildStamp.js +2 -2
  102. package/Core/DeletableEntity.d.ts +11 -5
  103. package/Core/DeletableEntity.js +42 -45
  104. package/Core/Mouse/MouseManager.js +6 -0
  105. package/Core/OneTimePerformanceWarning.d.ts +1 -1
  106. package/Core/OneTimePerformanceWarning.js +2 -1
  107. package/_wasm/scichart.browser.js +1 -1
  108. package/_wasm/scichart2d.js +1 -1
  109. package/_wasm/scichart2d.wasm +0 -0
  110. package/_wasm/scichart3d.js +1 -1
  111. package/_wasm/scichart3d.wasm +0 -0
  112. package/constants/performanceWarnings.d.ts +1 -0
  113. package/constants/performanceWarnings.js +2 -1
  114. package/index.d.ts +5 -6
  115. package/index.dev.js +68886 -0
  116. package/index.js +13 -21
  117. package/index.min.js +1 -1
  118. package/package.json +1 -1
  119. package/utils/MemoryUsageHelper.d.ts +55 -8
  120. package/utils/MemoryUsageHelper.js +64 -14
  121. package/utils/colorUtil.d.ts +7 -0
  122. package/utils/colorUtil.js +13 -1
  123. package/utils/parseColor.js +19 -4
@@ -16,6 +16,7 @@ var __extends = (this && this.__extends) || (function () {
16
16
  })();
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.DateTimeDeltaCalculator = void 0;
19
+ var performanceWarnings_1 = require("../../../../constants/performanceWarnings");
19
20
  var NumberRange_1 = require("../../../../Core/NumberRange");
20
21
  var NumericDeltaCalculator_1 = require("./NumericDeltaCalculator");
21
22
  /**
@@ -42,10 +43,12 @@ var DateTimeDeltaCalculator = /** @class */ (function (_super) {
42
43
  15 * 60,
43
44
  30 * 60,
44
45
  60 * 60,
46
+ 2 * 60 * 60,
45
47
  3 * 60 * 60,
46
48
  6 * 60 * 60,
47
49
  12 * 60 * 60,
48
50
  24 * 60 * 60,
51
+ 2 * 24 * 60 * 60,
49
52
  3 * 24 * 60 * 60,
50
53
  5 * 24 * 60 * 60,
51
54
  10 * 24 * 60 * 60,
@@ -59,9 +62,10 @@ var DateTimeDeltaCalculator = /** @class */ (function (_super) {
59
62
  365.25 * 24 * 60 * 60
60
63
  // Years also need special handling
61
64
  ];
62
- _this.currIndex = 12;
65
+ _this.currIndex = 1;
63
66
  _this.possibleDeltasProperty = (_a = options === null || options === void 0 ? void 0 : options.possibleDeltas) !== null && _a !== void 0 ? _a : _this.possibleDeltasProperty;
64
67
  _this.minTicks = options === null || options === void 0 ? void 0 : options.minTicks;
68
+ _this.currIndex = Math.floor(_this.possibleDeltas.length / 2);
65
69
  return _this;
66
70
  }
67
71
  Object.defineProperty(DateTimeDeltaCalculator.prototype, "possibleDeltas", {
@@ -74,6 +78,7 @@ var DateTimeDeltaCalculator = /** @class */ (function (_super) {
74
78
  set: function (value) {
75
79
  if (this.possibleDeltasProperty !== value) {
76
80
  this.possibleDeltasProperty = value;
81
+ this.currIndex = Math.floor(this.possibleDeltas.length / 2);
77
82
  }
78
83
  },
79
84
  enumerable: false,
@@ -98,9 +103,18 @@ var DateTimeDeltaCalculator = /** @class */ (function (_super) {
98
103
  var _this = this;
99
104
  var diff = max - min;
100
105
  this.prevIndex = undefined;
106
+ if (this.currIndex >= this.possibleDeltas.length) {
107
+ this.currIndex = Math.floor(this.possibleDeltas.length / 2);
108
+ }
109
+ var tries = 0;
101
110
  var calculateDelta = function (index) {
102
111
  var _a, _b;
103
112
  var delta = _this.possibleDeltasProperty[index];
113
+ tries++;
114
+ if (tries > _this.possibleDeltas.length + 1) {
115
+ performanceWarnings_1.performanceWarnings.dateTimeDeltaCalculatorBadDelta.warn();
116
+ return delta;
117
+ }
104
118
  var ticksCount = Math.floor(diff / delta);
105
119
  if (ticksCount < ((_a = _this.minTicks) !== null && _a !== void 0 ? _a : maxTicks / 3) && index === 0 && index !== _this.prevIndex) {
106
120
  if (!_this.prevIndex)
@@ -0,0 +1,57 @@
1
+ import { ISciChartSurfaceBase } from "../SciChartSurfaceBase";
2
+ import { ELegendType, ILegendOptionsBase, SciChartLegendBase, TLegendItem } from "./SciChartLegendBase";
3
+ export interface IManualLegendOptions extends ILegendOptionsBase {
4
+ /**
5
+ * Sets whether the legend has visibility checkboxes in it or not
6
+ */
7
+ showCheckboxes?: boolean;
8
+ /**
9
+ * Sets whether Series markers are visible or not
10
+ */
11
+ showSeriesMarkers?: boolean;
12
+ items?: TLegendItem[];
13
+ /**
14
+ * Callback when a legend item checkbox is checked or unchecked
15
+ * @param item
16
+ * @param isChecked
17
+ */
18
+ isCheckedChangedCallback?: (item: TLegendItem, isChecked: boolean) => void;
19
+ }
20
+ export declare class ManualLegend extends SciChartLegendBase {
21
+ type: ELegendType;
22
+ legendItemCheckedChangedCallback: (item: TLegendItem, isChecked: boolean) => void;
23
+ private itemsProperty;
24
+ private showCheckboxesProperty;
25
+ private showSeriesMarkersProperty;
26
+ constructor(options?: IManualLegendOptions, sciChartSurface?: ISciChartSurfaceBase);
27
+ /**
28
+ * Gets or sets whether series visibility checkboxes should be shown
29
+ */
30
+ get showCheckboxes(): boolean;
31
+ /**
32
+ * Gets or sets whether series visibility checkboxes should be shown
33
+ */
34
+ set showCheckboxes(value: boolean);
35
+ /**
36
+ * Gets or sets whether series markers should be shown
37
+ */
38
+ get showSeriesMarkers(): boolean;
39
+ /**
40
+ * Gets or sets whether series markers should be shown
41
+ */
42
+ set showSeriesMarkers(value: boolean);
43
+ /**
44
+ * Gets or sets the items to be displayed in the legend
45
+ */
46
+ get items(): TLegendItem[];
47
+ /**
48
+ * Gets or sets the items to be displayed in the legend
49
+ */
50
+ set items(value: TLegendItem[]);
51
+ attachTo(sciChartSurface: ISciChartSurfaceBase): void;
52
+ applyTheme(): void;
53
+ protected getInnerHTML(): string;
54
+ protected addEventListeners(): void;
55
+ protected addEventListenerToItem(item: TLegendItem): void;
56
+ protected removeEventListeners(): void;
57
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.ManualLegend = void 0;
19
+ var Thickness_1 = require("../../../Core/Thickness");
20
+ var SciChartLegendBase_1 = require("./SciChartLegendBase");
21
+ var ManualLegend = /** @class */ (function (_super) {
22
+ __extends(ManualLegend, _super);
23
+ function ManualLegend(options, sciChartSurface) {
24
+ var _this = this;
25
+ var _a, _b, _c;
26
+ _this = _super.call(this, options) || this;
27
+ _this.type = SciChartLegendBase_1.ELegendType.ManualLegend;
28
+ _this.itemsProperty = [];
29
+ _this.showCheckboxesProperty = false;
30
+ _this.showSeriesMarkersProperty = true;
31
+ _this.showCheckboxesProperty = (_a = options === null || options === void 0 ? void 0 : options.showCheckboxes) !== null && _a !== void 0 ? _a : _this.showCheckboxes;
32
+ _this.showSeriesMarkersProperty = (_b = options === null || options === void 0 ? void 0 : options.showSeriesMarkers) !== null && _b !== void 0 ? _b : _this.showSeriesMarkers;
33
+ _this.itemsProperty = (_c = options === null || options === void 0 ? void 0 : options.items) !== null && _c !== void 0 ? _c : _this.items;
34
+ _this.legendItemCheckedChangedCallback = options === null || options === void 0 ? void 0 : options.isCheckedChangedCallback;
35
+ if (sciChartSurface) {
36
+ _this.attachTo(sciChartSurface);
37
+ }
38
+ return _this;
39
+ }
40
+ Object.defineProperty(ManualLegend.prototype, "showCheckboxes", {
41
+ /**
42
+ * Gets or sets whether series visibility checkboxes should be shown
43
+ */
44
+ get: function () {
45
+ return this.showCheckboxesProperty;
46
+ },
47
+ /**
48
+ * Gets or sets whether series visibility checkboxes should be shown
49
+ */
50
+ set: function (value) {
51
+ this.showCheckboxesProperty = value;
52
+ this.notifyPropertyChanged();
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ Object.defineProperty(ManualLegend.prototype, "showSeriesMarkers", {
58
+ /**
59
+ * Gets or sets whether series markers should be shown
60
+ */
61
+ get: function () {
62
+ return this.showSeriesMarkersProperty;
63
+ },
64
+ /**
65
+ * Gets or sets whether series markers should be shown
66
+ */
67
+ set: function (value) {
68
+ this.showSeriesMarkersProperty = value;
69
+ this.notifyPropertyChanged();
70
+ },
71
+ enumerable: false,
72
+ configurable: true
73
+ });
74
+ Object.defineProperty(ManualLegend.prototype, "items", {
75
+ /**
76
+ * Gets or sets the items to be displayed in the legend
77
+ */
78
+ get: function () {
79
+ return this.itemsProperty;
80
+ },
81
+ /**
82
+ * Gets or sets the items to be displayed in the legend
83
+ */
84
+ set: function (value) {
85
+ this.itemsProperty = value;
86
+ this.notifyPropertyChanged();
87
+ },
88
+ enumerable: false,
89
+ configurable: true
90
+ });
91
+ ManualLegend.prototype.attachTo = function (sciChartSurface) {
92
+ var _this = this;
93
+ _super.prototype.attachTo.call(this, sciChartSurface);
94
+ sciChartSurface.addDeletable({
95
+ delete: function () {
96
+ _this.delete();
97
+ _this.setRootDiv(undefined);
98
+ _this.setInvalidateParentSurface(undefined);
99
+ _this.setParentSurface(undefined);
100
+ }
101
+ });
102
+ };
103
+ ManualLegend.prototype.applyTheme = function () { };
104
+ ManualLegend.prototype.getInnerHTML = function () {
105
+ var _a, _b;
106
+ var backgroundColor = (_a = this.backgroundColor) !== null && _a !== void 0 ? _a : this.parentSurfaceProperty.themeProvider.legendBackgroundBrush;
107
+ var color = (_b = this.textColor) !== null && _b !== void 0 ? _b : this.parentSurfaceProperty.themeProvider.labelForegroundBrush;
108
+ var _c = this.parentSurfaceProperty.getSeriesViewRectPadding(false), left = _c.left, top = _c.top, right = _c.right, bottom = _c.bottom;
109
+ var margin = this.isExternal()
110
+ ? new Thickness_1.Thickness(this.margin, this.margin, this.margin, this.margin)
111
+ : new Thickness_1.Thickness(top + this.margin, right + this.margin, bottom + this.margin, left + this.margin);
112
+ return this.getLegendHTML(this.placement, color, backgroundColor, margin, this.orientation, this.showCheckboxes, this.showSeriesMarkers, this.items);
113
+ };
114
+ ManualLegend.prototype.addEventListeners = function () {
115
+ var _this = this;
116
+ this.items.forEach(function (item) { return _this.addEventListenerToItem(item); });
117
+ };
118
+ ManualLegend.prototype.addEventListenerToItem = function (item) {
119
+ var _this = this;
120
+ var el = this.parentDiv.querySelector("[id='".concat(item.id, "']"));
121
+ if (el) {
122
+ var onChangeEventListener_1 = function (e) {
123
+ item.checked = el.checked;
124
+ if (_this.legendItemCheckedChangedCallback) {
125
+ _this.legendItemCheckedChangedCallback(item, item.checked);
126
+ }
127
+ };
128
+ el.addEventListener("change", onChangeEventListener_1);
129
+ var eventSubscriptionItem = {
130
+ element: el,
131
+ eventType: "change",
132
+ eventListener: onChangeEventListener_1,
133
+ delete: function () { return el.removeEventListener("change", onChangeEventListener_1); }
134
+ };
135
+ var eventListenersForRenderableSeries = this.eventListenersCollection.get(item.id);
136
+ if (eventListenersForRenderableSeries) {
137
+ eventListenersForRenderableSeries.push(eventSubscriptionItem);
138
+ }
139
+ else {
140
+ this.eventListenersCollection.set(item.id, [eventSubscriptionItem]);
141
+ }
142
+ }
143
+ };
144
+ ManualLegend.prototype.removeEventListeners = function () {
145
+ var _this = this;
146
+ this.items.forEach(function (item) { return _this.removeEventListenerFromSeries(item.id); });
147
+ };
148
+ return ManualLegend;
149
+ }(SciChartLegendBase_1.SciChartLegendBase));
150
+ exports.ManualLegend = ManualLegend;
@@ -118,8 +118,9 @@ var SciChartLegend = /** @class */ (function (_super) {
118
118
  };
119
119
  /** @inheritDoc */
120
120
  SciChartLegend.prototype.getInnerHTML = function () {
121
- var backgroundColor = this.parentSurfaceProperty.themeProvider.legendBackgroundBrush;
122
- var color = this.parentSurfaceProperty.themeProvider.labelForegroundBrush;
121
+ var _a, _b;
122
+ var backgroundColor = (_a = this.backgroundColor) !== null && _a !== void 0 ? _a : this.parentSurfaceProperty.themeProvider.legendBackgroundBrush;
123
+ var color = (_b = this.textColor) !== null && _b !== void 0 ? _b : this.parentSurfaceProperty.themeProvider.labelForegroundBrush;
123
124
  var legendItems = this.renderableSeriesArray.map(function (rs, index) {
124
125
  var _a;
125
126
  return ({
@@ -130,7 +131,7 @@ var SciChartLegend = /** @class */ (function (_super) {
130
131
  gradient: undefined
131
132
  });
132
133
  });
133
- var _a = this.parentSurfaceProperty.getSeriesViewRectPadding(false), left = _a.left, top = _a.top, right = _a.right, bottom = _a.bottom;
134
+ var _c = this.parentSurfaceProperty.getSeriesViewRectPadding(false), left = _c.left, top = _c.top, right = _c.right, bottom = _c.bottom;
134
135
  var margin = this.isExternal()
135
136
  ? new Thickness_1.Thickness(this.margin, this.margin, this.margin, this.margin)
136
137
  : new Thickness_1.Thickness(top + this.margin, right + this.margin, bottom + this.margin, left + this.margin);
@@ -10,6 +10,7 @@ export declare type TLegendItem = {
10
10
  color: string;
11
11
  checked: boolean;
12
12
  gradient?: GradientParams;
13
+ showMarker?: boolean;
13
14
  };
14
15
  export interface IEventSubscriptionItem extends IDeletable {
15
16
  element: HTMLElement;
@@ -37,8 +38,43 @@ export declare enum ELegendPlacement {
37
38
  */
38
39
  export declare enum ELegendType {
39
40
  SciChartLegend = "SciChartLegend",
41
+ ManualLegend = "ManualLegend",
40
42
  SciChartPieLegend = "SciChartPieLegend"
41
43
  }
44
+ export interface ILegendOptionsBase {
45
+ /**
46
+ * Sets the initial orientation of the legend. See {@link ELegendOrientation} for a list of values
47
+ */
48
+ orientation?: ELegendOrientation;
49
+ /**
50
+ * Sets whether the legend is initially visible or not
51
+ */
52
+ showLegend?: boolean;
53
+ /**
54
+ * Sets whether the legend has visibility checkboxes in it or not
55
+ */
56
+ showCheckboxes?: boolean;
57
+ /**
58
+ * Sets whether Series markers are visible or not
59
+ */
60
+ showSeriesMarkers?: boolean;
61
+ /**
62
+ * Sets the initial legend placement in the parent chart surface. See {@link ELegendPlacement} for a list of values
63
+ */
64
+ placement?: ELegendPlacement;
65
+ /**
66
+ * Sets the margin for the legend control
67
+ */
68
+ margin?: number;
69
+ /**
70
+ * The parent div element Id or reference, the Legend will be appended to this element
71
+ */
72
+ placementDivId?: string | HTMLDivElement;
73
+ /** Sets the legend background color. Defaults to theme.legendBackgroundBrush */
74
+ backgroundColor?: string;
75
+ /** Sets the legend text color. Defaults to theme.labelForegroundBrush */
76
+ textColor?: string;
77
+ }
42
78
  /**
43
79
  * Base class for legends in the SciChart library
44
80
  */
@@ -47,7 +83,6 @@ export declare abstract class SciChartLegendBase extends DeletableEntity impleme
47
83
  protected rootDiv: HTMLDivElement;
48
84
  protected parentDiv: HTMLDivElement;
49
85
  protected div: HTMLDivElement;
50
- protected seriesViewRect: Rect;
51
86
  protected invalidateParentSurface: () => void;
52
87
  protected orientationProperty: ELegendOrientation;
53
88
  protected showLegendProperty: boolean;
@@ -56,7 +91,10 @@ export declare abstract class SciChartLegendBase extends DeletableEntity impleme
56
91
  protected isDirty: boolean;
57
92
  protected parentSurfaceProperty: ISciChartSurfaceBase;
58
93
  protected placementDivIdProperty: string | HTMLDivElement;
94
+ protected backgroundColorProperty: string;
95
+ protected textColorProperty: string;
59
96
  protected eventListenersCollection: Map<string, IEventSubscriptionItem[]>;
97
+ constructor(options?: ILegendOptionsBase);
60
98
  /** @inheritDoc */
61
99
  abstract applyTheme(): void;
62
100
  setInvalidateParentSurface(value: () => void): void;
@@ -66,14 +104,19 @@ export declare abstract class SciChartLegendBase extends DeletableEntity impleme
66
104
  */
67
105
  setRootDiv(rootDivProperty: HTMLDivElement): void;
68
106
  /**
69
- * Set the series view rect - a rectangle defining where on the parent chart the legend is shown
70
- * @param seriesViewRect
107
+ * @deprecated
71
108
  */
72
109
  setSeriesViewRect(seriesViewRect: Rect): void;
73
110
  /**
74
111
  * Sets the parent {@link ISciChartSurfaceBase}
75
112
  */
76
113
  setParentSurface(scs: ISciChartSurfaceBase): void;
114
+ /**
115
+ * Attach this legend to a SciChartSurfaceBase
116
+ * @param sciChartSurface
117
+ */
118
+ attachTo(sciChartSurface: ISciChartSurfaceBase): void;
119
+ detach(): void;
77
120
  /**
78
121
  * Update the legend
79
122
  */
@@ -122,6 +165,22 @@ export declare abstract class SciChartLegendBase extends DeletableEntity impleme
122
165
  * Gets or sets the parent div element reference or id for the Legend
123
166
  */
124
167
  set placementDivId(value: string | HTMLDivElement);
168
+ /**
169
+ * Gets or sets the backgroundColor as an html color code
170
+ */
171
+ get backgroundColor(): string;
172
+ /**
173
+ * Gets or sets the backgroundColor as an html color code
174
+ */
175
+ set backgroundColor(value: string);
176
+ /**
177
+ * Gets or sets the textColor as an html color code
178
+ */
179
+ get textColor(): string;
180
+ /**
181
+ * Gets or sets the textColor as an html color code
182
+ */
183
+ set textColor(value: string);
125
184
  clear(): void;
126
185
  /** @inheritDoc */
127
186
  delete(): void;
@@ -44,6 +44,7 @@ var ELegendPlacement;
44
44
  var ELegendType;
45
45
  (function (ELegendType) {
46
46
  ELegendType["SciChartLegend"] = "SciChartLegend";
47
+ ELegendType["ManualLegend"] = "ManualLegend";
47
48
  ELegendType["SciChartPieLegend"] = "SciChartPieLegend";
48
49
  })(ELegendType = exports.ELegendType || (exports.ELegendType = {}));
49
50
  /**
@@ -51,8 +52,10 @@ var ELegendType;
51
52
  */
52
53
  var SciChartLegendBase = /** @class */ (function (_super) {
53
54
  __extends(SciChartLegendBase, _super);
54
- function SciChartLegendBase() {
55
- var _this = _super !== null && _super.apply(this, arguments) || this;
55
+ function SciChartLegendBase(options) {
56
+ var _this = this;
57
+ var _a, _b, _c, _d, _e;
58
+ _this = _super.call(this) || this;
56
59
  _this.orientationProperty = ELegendOrientation.Vertical;
57
60
  _this.showLegendProperty = true;
58
61
  _this.placementProperty = ELegendPlacement.TopLeft;
@@ -70,6 +73,14 @@ var SciChartLegendBase = /** @class */ (function (_super) {
70
73
  });
71
74
  _this.eventListenersCollection.delete(renderableSeriesId);
72
75
  };
76
+ _this.orientationProperty = (_a = options === null || options === void 0 ? void 0 : options.orientation) !== null && _a !== void 0 ? _a : _this.orientationProperty;
77
+ _this.showLegendProperty = (_b = options === null || options === void 0 ? void 0 : options.showLegend) !== null && _b !== void 0 ? _b : _this.showLegend;
78
+ _this.placementProperty = (_c = options === null || options === void 0 ? void 0 : options.placement) !== null && _c !== void 0 ? _c : _this.placement;
79
+ _this.marginProperty = (_d = options === null || options === void 0 ? void 0 : options.margin) !== null && _d !== void 0 ? _d : _this.margin;
80
+ _this.placementDivIdProperty = (_e = options === null || options === void 0 ? void 0 : options.placementDivId) !== null && _e !== void 0 ? _e : _this.placementDivId;
81
+ // No default here as need theme from parent surface
82
+ _this.backgroundColorProperty = options === null || options === void 0 ? void 0 : options.backgroundColor;
83
+ _this.textColorProperty = options === null || options === void 0 ? void 0 : options.textColor;
73
84
  return _this;
74
85
  }
75
86
  SciChartLegendBase.prototype.setInvalidateParentSurface = function (value) {
@@ -83,21 +94,34 @@ var SciChartLegendBase = /** @class */ (function (_super) {
83
94
  this.rootDiv = rootDivProperty;
84
95
  };
85
96
  /**
86
- * Set the series view rect - a rectangle defining where on the parent chart the legend is shown
87
- * @param seriesViewRect
97
+ * @deprecated
88
98
  */
89
- SciChartLegendBase.prototype.setSeriesViewRect = function (seriesViewRect) {
90
- if (this.seriesViewRect !== seriesViewRect) {
91
- this.seriesViewRect = seriesViewRect;
92
- this.notifyPropertyChanged();
93
- }
94
- };
99
+ SciChartLegendBase.prototype.setSeriesViewRect = function (seriesViewRect) { };
95
100
  /**
96
101
  * Sets the parent {@link ISciChartSurfaceBase}
97
102
  */
98
103
  SciChartLegendBase.prototype.setParentSurface = function (scs) {
99
104
  this.parentSurfaceProperty = scs;
100
105
  };
106
+ /**
107
+ * Attach this legend to a SciChartSurfaceBase
108
+ * @param sciChartSurface
109
+ */
110
+ SciChartLegendBase.prototype.attachTo = function (sciChartSurface) {
111
+ var _this = this;
112
+ this.setParentSurface(sciChartSurface);
113
+ this.setRootDiv(sciChartSurface.domDivContainer);
114
+ this.setInvalidateParentSurface(sciChartSurface.invalidateElement);
115
+ sciChartSurface.rendered.subscribe(function () {
116
+ _this.update();
117
+ });
118
+ };
119
+ SciChartLegendBase.prototype.detach = function () {
120
+ this.setRootDiv(undefined);
121
+ this.setInvalidateParentSurface(undefined);
122
+ this.setParentSurface(undefined);
123
+ this.delete();
124
+ };
101
125
  /**
102
126
  * Update the legend
103
127
  */
@@ -203,6 +227,40 @@ var SciChartLegendBase = /** @class */ (function (_super) {
203
227
  enumerable: false,
204
228
  configurable: true
205
229
  });
230
+ Object.defineProperty(SciChartLegendBase.prototype, "backgroundColor", {
231
+ /**
232
+ * Gets or sets the backgroundColor as an html color code
233
+ */
234
+ get: function () {
235
+ return this.backgroundColorProperty;
236
+ },
237
+ /**
238
+ * Gets or sets the backgroundColor as an html color code
239
+ */
240
+ set: function (value) {
241
+ this.backgroundColorProperty = value;
242
+ this.notifyPropertyChanged();
243
+ },
244
+ enumerable: false,
245
+ configurable: true
246
+ });
247
+ Object.defineProperty(SciChartLegendBase.prototype, "textColor", {
248
+ /**
249
+ * Gets or sets the textColor as an html color code
250
+ */
251
+ get: function () {
252
+ return this.textColorProperty;
253
+ },
254
+ /**
255
+ * Gets or sets the textColor as an html color code
256
+ */
257
+ set: function (value) {
258
+ this.textColorProperty = value;
259
+ this.notifyPropertyChanged();
260
+ },
261
+ enumerable: false,
262
+ configurable: true
263
+ });
206
264
  SciChartLegendBase.prototype.clear = function () {
207
265
  var _a;
208
266
  if (this.div) {
@@ -236,7 +294,8 @@ var SciChartLegendBase = /** @class */ (function (_super) {
236
294
  SciChartLegendBase.prototype.getLegendHTML = function (placement, textColor, backgroundColor, margin, orientation, showCheckboxes, showSeriesMarkers, items) {
237
295
  var _this = this;
238
296
  var body = items.reduce(function (prev, curr) {
239
- return prev + _this.getLegendItemHTML(orientation, showCheckboxes, showSeriesMarkers, curr);
297
+ var _a;
298
+ return (prev + _this.getLegendItemHTML(orientation, showCheckboxes, (_a = curr.showMarker) !== null && _a !== void 0 ? _a : showSeriesMarkers, curr));
240
299
  }, "");
241
300
  return (0, exports.getLegendContainerHtml)(placement, textColor, backgroundColor, margin, body);
242
301
  };
@@ -265,16 +265,21 @@ var BasePointMarker = /** @class */ (function (_super) {
265
265
  var _this = this;
266
266
  this.invalidateCache();
267
267
  WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(this);
268
- if (process.env.NODE_ENV !== "production") {
269
- // resolve memory debug issue when comparing to proxy object
270
- if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
271
- WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.forEach(function (ref) {
272
- if (ref.resetCache === _this.resetCache) {
273
- WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(ref);
274
- }
275
- });
268
+ try {
269
+ if (process.env.NODE_ENV !== "production") {
270
+ // resolve memory debug issue when comparing to proxy object
271
+ if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
272
+ WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.forEach(function (ref) {
273
+ if (ref.resetCache === _this.resetCache) {
274
+ WebGlRenderContext2D_1.WebGlRenderContext2D.webGlResourcesRefs.delete(ref);
275
+ }
276
+ });
277
+ }
276
278
  }
277
279
  }
280
+ catch (err) {
281
+ console.warn(err);
282
+ }
278
283
  };
279
284
  /**
280
285
  * Called internally - creates the {@link CanvasTexture} object and calls {@link drawSprite} for creating the cached texture to draw
@@ -131,7 +131,7 @@ export declare abstract class BaseRenderableSeries extends DeletableEntity imple
131
131
  /** @inheritDoc */
132
132
  get pointMarker(): IPointMarker;
133
133
  /** @inheritDoc */
134
- set pointMarker(pointMarker: IPointMarker);
134
+ set pointMarker(pointMarker: IPointMarker | undefined);
135
135
  /** @inheritDoc */
136
136
  get drawNaNAs(): ELineDrawMode;
137
137
  /** @inheritDoc */
@@ -863,6 +863,9 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
863
863
  }
864
864
  if (!this.animationFSM)
865
865
  return;
866
+ if (!this.dataSeries.xInitialAnimationValues) {
867
+ this.dataSeries.createAnimationVectors();
868
+ }
866
869
  animationHelpers_1.animationHelpers.animationUpdate(this.animationFSM, timeElapsed, this.beforeAnimationStart, this.afterAnimationComplete, this.updateAnimationProperties);
867
870
  };
868
871
  /** @inheritDoc */
@@ -967,9 +970,6 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
967
970
  */
968
971
  BaseRenderableSeries.prototype.setAnimationVectors = function (animation) {
969
972
  var ds = this.dataSeries;
970
- if (!ds.xInitialAnimationValues) {
971
- ds.createAnimationVectors();
972
- }
973
973
  if (animation.isOnStartAnimation) {
974
974
  ds.setFinalAnimationVectors(ds);
975
975
  }
@@ -73,11 +73,16 @@ var BaseStackedCollection = /** @class */ (function (_super) {
73
73
  _this.updateAnimationProperties = _this.updateAnimationProperties.bind(_this);
74
74
  _this.accumulatedValues0 = new _this.webAssemblyContext.SCRTDoubleVector();
75
75
  _this.accumulatedFinalAnimationValues0 = new _this.webAssemblyContext.SCRTDoubleVector();
76
- if (process.env.NODE_ENV !== "production") {
77
- if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
78
- return new Proxy(_this, new DeletableEntity_1.DeletableEntityProxyHandler(_this));
76
+ try {
77
+ if (process.env.NODE_ENV !== "production") {
78
+ if (MemoryUsageHelper_1.MemoryUsageHelper.isMemoryUsageDebugEnabled) {
79
+ return (0, DeletableEntity_1.createTrackableProxy)(_this);
80
+ }
79
81
  }
80
82
  }
83
+ catch (err) {
84
+ console.warn(err);
85
+ }
81
86
  return _this;
82
87
  }
83
88
  Object.defineProperty(BaseStackedCollection.prototype, "isVisibleChanged", {
@@ -80,7 +80,7 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
80
80
  * @inheritDoc
81
81
  */
82
82
  BandSeriesDrawingProvider.prototype.draw = function (renderContext, renderPassData) {
83
- var _a, _b;
83
+ var _a;
84
84
  var pointSeries = renderPassData.pointSeries;
85
85
  var containsNaN = this.parentSeries.dataSeries.dataDistributionCalculator.containsNaN;
86
86
  this.args.Reset();
@@ -110,7 +110,7 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
110
110
  }
111
111
  var isCategoryAxis = renderPassData.xCoordinateCalculator.isCategoryCoordinateCalculator;
112
112
  var xValues = pointSeries.xValues;
113
- var _c = this.parentSeries.dataSeries, fifoCapacity = _c.fifoCapacity, fifoSweeping = _c.fifoSweeping, fifoSweepingGap = _c.fifoSweepingGap;
113
+ var _b = this.parentSeries.dataSeries, fifoCapacity = _b.fifoCapacity, fifoSweeping = _b.fifoSweeping, fifoSweepingGap = _b.fifoSweepingGap;
114
114
  var fifoStartIndex = pointSeries.fifoStartIndex;
115
115
  var xDrawValues = isCategoryAxis ? pointSeries.indexes : xValues;
116
116
  var yDrawValues = this.ySelector(pointSeries);
@@ -125,19 +125,15 @@ var BandSeriesDrawingProvider = /** @class */ (function (_super) {
125
125
  yDrawValues = splineBandSeries.ySplineValues;
126
126
  y1DrawValues = splineBandSeries.y1SplineValues;
127
127
  }
128
- if (!isSplineBandSeries && !pointSeries.resampled && ((_a = renderPassData.indexRange) === null || _a === void 0 ? void 0 : _a.diff) > 0) {
129
- this.args.count = Math.min(renderPassData.indexRange.diff + 1, yDrawValues.size());
130
- this.args.startIndex = renderPassData.indexRange.min;
131
- }
132
- else {
133
- this.args.count = yDrawValues.size();
134
- }
128
+ var _c = this.getStartAndCount(isSplineBandSeries ? undefined : renderPassData, xDrawValues), startIndex = _c.startIndex, count = _c.count;
129
+ this.args.count = count;
130
+ this.args.startIndex = startIndex;
135
131
  if (fifoCapacity > 0 && fifoSweeping && fifoCapacity === this.parentSeries.dataSeries.count()) {
136
132
  this.args.count = fifoStartIndex;
137
133
  }
138
134
  // Paletting per point
139
135
  _super.prototype.applyStrokeFillPaletting.call(this, undefined, undefined, undefined, undefined, this.parentSeries.opacity, true);
140
- var paletteTexture = (_b = this.palettingState.paletteTextureCache) === null || _b === void 0 ? void 0 : _b.value;
136
+ var paletteTexture = (_a = this.palettingState.paletteTextureCache) === null || _a === void 0 ? void 0 : _a.value;
141
137
  if (paletteTexture) {
142
138
  this.args.SetPalette(paletteTexture);
143
139
  }