scichart 3.2.446 → 3.2.461
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Charting/Model/BaseDataSeries.d.ts +1 -1
- package/Charting/Model/BaseDataSeries.js +21 -5
- package/Charting/Model/HlcDataSeries.js +4 -1
- package/Charting/Model/OhlcDataSeries.js +4 -1
- package/Charting/Model/XyyDataSeries.js +4 -1
- package/Charting/Visuals/Axis/AxisBase2D.d.ts +16 -0
- package/Charting/Visuals/Axis/AxisBase2D.js +26 -2
- package/Charting/Visuals/Axis/constants.d.ts +2 -1
- package/Charting/Visuals/Axis/constants.js +1 -0
- package/Charting/Visuals/PointMarkers/BasePointMarker.js +3 -1
- package/Charting/Visuals/RenderableSeries/Animations/animationHelpers.d.ts +1 -1
- package/Charting/Visuals/RenderableSeries/BaseBandRenderableSeries.js +0 -2
- package/Charting/Visuals/RenderableSeries/BaseRenderableSeries.js +4 -2
- package/Charting/Visuals/RenderableSeries/BaseStackedRenderableSeries.js +1 -1
- package/Charting/Visuals/RenderableSeries/DrawingProviders/BaseSeriesDrawingProvider.js +13 -16
- package/Charting/Visuals/SciChartSurfaceBase.js +3 -0
- package/Charting/Visuals/createMaster.js +1 -0
- package/Charting/Visuals/licenseManager2D.d.ts +1 -0
- package/Charting/Visuals/licenseManager2D.js +11 -11
- package/Charting3D/Visuals/createMaster3d.js +1 -0
- package/Charting3D/Visuals/licenseManager3D.d.ts +1 -0
- package/Charting3D/Visuals/licenseManager3D.js +5 -1
- package/Core/BuildStamp.d.ts +1 -1
- package/Core/BuildStamp.js +2 -2
- package/_wasm/scichart.browser.js +1 -1
- package/_wasm/scichart2d.wasm +0 -0
- package/_wasm/scichart3d.wasm +0 -0
- package/index.dev.js +104 -52
- package/index.min.js +1 -1
- 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,
|
|
678
|
-
var iMax = webAssemblyContext.NumberUtil.FindIndex(xValues, xRange.max,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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) {
|
|
@@ -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 = {}));
|
|
@@ -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(),
|
|
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
|
};
|
|
@@ -14,7 +14,7 @@ export declare const animationHelpers: {
|
|
|
14
14
|
checkCanDraw: (animationFSM: AnimationFiniteStateMachine) => boolean;
|
|
15
15
|
checkIsAnimationRunning: (animationQueue: IAnimation[], animationFSM: AnimationFiniteStateMachine) => boolean;
|
|
16
16
|
animationUpdate: (animationFSM: SeriesAnimationFiniteStateMachine, timeElapsed: number, beforeAnimationStart: () => void, afterAnimationComplete: () => void, updateAnimationProperties: (progress: number, animationFSM: SeriesAnimationFiniteStateMachine) => void) => void;
|
|
17
|
-
createPointMarker: (wasmContext: TSciChart, pointMarkerStyle: BasePointMarkerStyle) =>
|
|
17
|
+
createPointMarker: (wasmContext: TSciChart, pointMarkerStyle: BasePointMarkerStyle) => EllipsePointMarker | SpritePointMarker | CrossPointMarker | XPointMarker | SquarePointMarker | TrianglePointMarker;
|
|
18
18
|
interpolateNumber: (from: number, to: number, progress: number) => number;
|
|
19
19
|
interpolateColor: (from: number, to: number, progress: number) => number;
|
|
20
20
|
copyVector: (sourceVector: SCRTDoubleVector, targetVector: SCRTDoubleVector) => void;
|
|
@@ -193,7 +193,6 @@ var BaseBandRenderableSeries = /** @class */ (function (_super) {
|
|
|
193
193
|
else {
|
|
194
194
|
this.pointSeries.xRange = rp.xVisibleRange;
|
|
195
195
|
}
|
|
196
|
-
console.log(rp.resamplingMode);
|
|
197
196
|
var ps = this.pointSeries;
|
|
198
197
|
var ds = this.dataSeries;
|
|
199
198
|
var xValues = ds.getNativeXValues();
|
|
@@ -202,7 +201,6 @@ var BaseBandRenderableSeries = /** @class */ (function (_super) {
|
|
|
202
201
|
var result = this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, xValues, yValues, this.xyyTempPointSeries.intIndexes, undefined, this.xyyTempPointSeries.xValues, this.xyyTempPointSeries.yValues, false);
|
|
203
202
|
this.pointSeries.fifoStartIndex = result.OutputSplitIndex;
|
|
204
203
|
var xySize = this.xyyTempPointSeries.intIndexes.size();
|
|
205
|
-
console.log(this.xyyTempPointSeries.xValues.size(), xySize);
|
|
206
204
|
this.resamplerHelper.resampleIntoPointSeries(this.webAssemblyContext, rp, xValues, y1Values, this.xyyTempPointSeries.intIndexes, undefined, this.xyyTempPointSeries.xValues, this.xyyTempPointSeries.y1Values);
|
|
207
205
|
// Because intIndexes vector is not cleared indexes for rpLow are appended at the end of rpHigh indexes
|
|
208
206
|
var xy1Size = this.xyyTempPointSeries.intIndexes.size() - xySize;
|
|
@@ -454,7 +454,8 @@ var BaseRenderableSeries = /** @class */ (function (_super) {
|
|
|
454
454
|
/** @inheritDoc */
|
|
455
455
|
get: function () {
|
|
456
456
|
var _this = this;
|
|
457
|
-
|
|
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
|
-
|
|
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) && ((
|
|
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
|
|
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
|
|
170
|
-
var yValues = (_b = pointSeries
|
|
171
|
-
var
|
|
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(
|
|
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 =
|
|
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 = (
|
|
216
|
-
var overrideFillColor = (
|
|
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
|
-
(
|
|
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) {
|
|
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.getLocateFile = exports.copyToCanvas = exports.getMasterCanvas = exports.createChartDestination = exports.SciChartSurfaceBase = exports.ESurfaceType = exports.DebugForDpi = void 0;
|
|
19
19
|
var classFactory_1 = require("../../Builder/classFactory");
|
|
20
20
|
var licenseManager2D_1 = require("../../Charting/Visuals/licenseManager2D");
|
|
21
|
+
var licenseManager3D_1 = require("../../Charting3D/Visuals/licenseManager3D");
|
|
21
22
|
var DeletableEntity_1 = require("../../Core/DeletableEntity");
|
|
22
23
|
var Deleter_1 = require("../../Core/Deleter");
|
|
23
24
|
var EventHandler_1 = require("../../Core/EventHandler");
|
|
@@ -160,6 +161,8 @@ var SciChartSurfaceBase = /** @class */ (function (_super) {
|
|
|
160
161
|
SciChartSurfaceBase.domMasterCanvas = undefined;
|
|
161
162
|
}
|
|
162
163
|
}
|
|
164
|
+
(0, licenseManager2D_1.forceReapplyLicense2D)();
|
|
165
|
+
(0, licenseManager3D_1.forceReapplyLicense3D)();
|
|
163
166
|
// try {
|
|
164
167
|
// if (process.env.NODE_ENV !== "production") {
|
|
165
168
|
// if (MemoryUsageHelper.isMemoryUsageDebugEnabled) {
|
|
@@ -111,6 +111,7 @@ var initializeChartEngine = function () { return __awaiter(void 0, void 0, void
|
|
|
111
111
|
WebGlHelper_1.WebGlHelper.initialize();
|
|
112
112
|
if (!(!sciChartMaster.wasmContext || !sciChartMaster.createChildSurface || !sciChartMaster.getChildSurfaces)) return [3 /*break*/, 2];
|
|
113
113
|
if (!sciChartMasterPromise) {
|
|
114
|
+
(0, licenseManager2D_1.forceReapplyLicense2D)();
|
|
114
115
|
sciChartMasterPromise = createMaster();
|
|
115
116
|
}
|
|
116
117
|
return [4 /*yield*/, sciChartMasterPromise];
|
|
@@ -34,6 +34,7 @@ interface ILicenseCookie {
|
|
|
34
34
|
lastValidated: Date;
|
|
35
35
|
}
|
|
36
36
|
export declare const getLicenseCookie: () => ILicenseCookie;
|
|
37
|
+
export declare const forceReapplyLicense2D: () => void;
|
|
37
38
|
export declare const applyLicense: (licenseContext: TLicenseContext, sciChartSurface: ISciChartSurfaceBase) => void;
|
|
38
39
|
export declare type TLicenseContext = {
|
|
39
40
|
SCRTCredentials: {
|
|
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.licenseManager = exports.updateLicenseDisplay = exports.getLicenseInfo = exports.applyLicense = exports.getLicenseCookie = exports.setCallbacks3D = exports.setUseLicenseWizard = exports.setRuntimeLicenseKey = exports.setLicenseCallback = exports.setIsDebugLicensing = exports.setDependencies = void 0;
|
|
39
|
+
exports.licenseManager = exports.updateLicenseDisplay = exports.getLicenseInfo = exports.applyLicense = exports.forceReapplyLicense2D = exports.getLicenseCookie = exports.setCallbacks3D = exports.setUseLicenseWizard = exports.setRuntimeLicenseKey = exports.setLicenseCallback = exports.setIsDebugLicensing = exports.setDependencies = void 0;
|
|
40
40
|
var app_1 = require("../../constants/app");
|
|
41
41
|
var BuildStamp_1 = require("../../Core/BuildStamp");
|
|
42
42
|
var Dictionary_1 = require("../../Core/Dictionary");
|
|
@@ -406,6 +406,10 @@ var dolicenseChallenge = function (licenseContext, sciChartSurface) { return __a
|
|
|
406
406
|
});
|
|
407
407
|
}); };
|
|
408
408
|
var shouldApplyLicense2D = true;
|
|
409
|
+
var forceReapplyLicense2D = function () {
|
|
410
|
+
shouldApplyLicense2D = true;
|
|
411
|
+
};
|
|
412
|
+
exports.forceReapplyLicense2D = forceReapplyLicense2D;
|
|
409
413
|
var checkStatus = licensingClasses_1.LicenseCheckStatus.NoLicense;
|
|
410
414
|
// let licenseContext2D: TLicenseContext;
|
|
411
415
|
// let sciChartSurface2D: SciChartSurfaceBase;
|
|
@@ -675,11 +679,8 @@ var createLicenseModal = function (message, postFormMessage) {
|
|
|
675
679
|
closeDiv.innerHTML = "×";
|
|
676
680
|
closeDiv.className = "licenseModalClose";
|
|
677
681
|
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
682
|
var buttonLabel = document.createElement("div");
|
|
682
|
-
|
|
683
|
+
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
684
|
var toggleDebugModeButton = document.createElement("button");
|
|
684
685
|
toggleDebugModeButton.style.margin = "10px";
|
|
685
686
|
var setDebugModeSwitchLabel = function () {
|
|
@@ -690,7 +691,6 @@ var createLicenseModal = function (message, postFormMessage) {
|
|
|
690
691
|
(0, exports.setIsDebugLicensing)(!isDebug, true);
|
|
691
692
|
setDebugModeSwitchLabel();
|
|
692
693
|
};
|
|
693
|
-
modalContentForm.appendChild(modalInfo);
|
|
694
694
|
modalContentForm.appendChild(buttonLabel);
|
|
695
695
|
modalContentForm.appendChild(toggleDebugModeButton);
|
|
696
696
|
var modalFooter = document.createElement("div");
|
|
@@ -842,7 +842,7 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
|
|
|
842
842
|
return;
|
|
843
843
|
}
|
|
844
844
|
// 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>";
|
|
845
|
+
var licensingLink = "<a href=\"https://www.scichart.com/licensing-scichart-js\" target=\"_blank\" style=\"color: white\">www.scichart.com/licensing-scichart-js</a>";
|
|
846
846
|
var contactSupportLink = "<a href=\"https://www.scichart.com/contact-us/\" target=\"_blank\" style=\"color: orange\">contact support</a>";
|
|
847
847
|
if (licenseType === licensingClasses_1.LicenseType.NoLicense) {
|
|
848
848
|
premsg = "You need to have a license to use SciChart. ";
|
|
@@ -850,7 +850,7 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
|
|
|
850
850
|
}
|
|
851
851
|
else if (licenseType === licensingClasses_1.LicenseType.Invalid) {
|
|
852
852
|
if (error.startsWith("License is not valid for this domain"))
|
|
853
|
-
premsg = "Sorry!
|
|
853
|
+
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
854
|
else if (error.startsWith("This version of SciChart can no longer be trialed"))
|
|
855
855
|
premsg = "Sorry! This version of SciChart is too old to be trialed. Please update to the latest version";
|
|
856
856
|
else if (error.startsWith("This version of SciChart can no longer be used for the community edition"))
|
|
@@ -902,18 +902,18 @@ var updateLicenseDisplayInternal = function (licenseInfo, sciChartSurface, is2D,
|
|
|
902
902
|
if (licenseType === licensingClasses_1.LicenseType.Community) {
|
|
903
903
|
(0, Telemetry_1.sendTelemetry)();
|
|
904
904
|
}
|
|
905
|
-
chartmsg = "<br>Looking for Licensing Wizard...
|
|
905
|
+
chartmsg = "<br>Looking for Licensing Wizard...";
|
|
906
906
|
}
|
|
907
907
|
else if (checkStatus === licensingClasses_1.LicenseCheckStatus.FailedToFindLicenseWizard)
|
|
908
908
|
if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {
|
|
909
|
-
chartmsg = "<br><u>Could not connect to the Licensing Wizard. Please run it
|
|
909
|
+
chartmsg = "<br><u>Could not connect to the Licensing Wizard. Please run it, then reload this page.</u>";
|
|
910
910
|
}
|
|
911
911
|
else {
|
|
912
912
|
chartmsg = "<br><u>Could not connect to the server licensing endpoint</u>";
|
|
913
913
|
}
|
|
914
914
|
else if (checkStatus === licensingClasses_1.LicenseCheckStatus.ValidatingDeveloperLicense)
|
|
915
915
|
if (licenseManager2dState_1.licenseManager2dState.getIsDev()) {
|
|
916
|
-
chartmsg = "<br><u>Trying to validate your license...
|
|
916
|
+
chartmsg = "<br><u>Trying to validate your license...";
|
|
917
917
|
}
|
|
918
918
|
else {
|
|
919
919
|
chartmsg = "<br><u>Trying to validate your license with the server...</u>.";
|
|
@@ -78,6 +78,7 @@ var createMultichart3d = function (divElement, options) { return __awaiter(void
|
|
|
78
78
|
!sciChartMaster3D.createChildSurface ||
|
|
79
79
|
!sciChartMaster3D.getChildSurfaces)) return [3 /*break*/, 3];
|
|
80
80
|
if (!sciChartMaster3DPromise) {
|
|
81
|
+
(0, licenseManager3D_1.forceReapplyLicense3D)();
|
|
81
82
|
sciChartMaster3DPromise = createMaster();
|
|
82
83
|
}
|
|
83
84
|
return [4 /*yield*/, sciChartMaster3DPromise];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { TSciChart3D } from "../../types/TSciChart3D";
|
|
2
2
|
import { SciChart3DSurface } from "./SciChart3DSurface";
|
|
3
|
+
export declare const forceReapplyLicense3D: () => void;
|
|
3
4
|
export declare const applyLicense3D: (licenseContext: TSciChart3D, sciChartSurface: SciChart3DSurface, isSingle: boolean) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.applyLicense3D = void 0;
|
|
3
|
+
exports.applyLicense3D = exports.forceReapplyLicense3D = void 0;
|
|
4
4
|
var licenseManager2D_1 = require("../../Charting/Visuals/licenseManager2D");
|
|
5
5
|
// tslint:disable: no-console
|
|
6
6
|
var getCallbacks3D = function (licenseContext3D, sciChartSurface) {
|
|
@@ -27,6 +27,10 @@ var getCallbacks3D = function (licenseContext3D, sciChartSurface) {
|
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
+
var forceReapplyLicense3D = function () {
|
|
31
|
+
shouldApplyLicense3D = true;
|
|
32
|
+
};
|
|
33
|
+
exports.forceReapplyLicense3D = forceReapplyLicense3D;
|
|
30
34
|
var shouldApplyLicense3D = true;
|
|
31
35
|
// let licenseContext3D: TSciChart3D;
|
|
32
36
|
// let sciChartSurface3D: SciChart3DSurface;
|
package/Core/BuildStamp.d.ts
CHANGED
|
@@ -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.
|
|
3
|
+
export declare const libraryVersion = "3.2.461";
|
|
4
4
|
export declare const checkBuildStamp: (wasmContext: TSciChart | TSciChart3D) => boolean;
|
package/Core/BuildStamp.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkBuildStamp = exports.libraryVersion = void 0;
|
|
4
|
-
var buildStamp = "2023-
|
|
4
|
+
var buildStamp = "2023-08-28T00:00:00";
|
|
5
5
|
var result;
|
|
6
6
|
// tslint:disable-next-line:no-var-requires
|
|
7
|
-
exports.libraryVersion = "3.2.
|
|
7
|
+
exports.libraryVersion = "3.2.461";
|
|
8
8
|
var checkBuildStamp = function (wasmContext) {
|
|
9
9
|
if (result !== undefined)
|
|
10
10
|
return result;
|