156 lines
4.7 KiB
JavaScript
156 lines
4.7 KiB
JavaScript
/* *
|
|
*
|
|
* (c) 2010-2020 Torstein Honsi
|
|
*
|
|
* License: www.highcharts.com/license
|
|
*
|
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
*
|
|
* */
|
|
var __extends = (this && this.__extends) || (function () {
|
|
var extendStatics = function (d, b) {
|
|
extendStatics = Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
return extendStatics(d, b);
|
|
};
|
|
return function (d, b) {
|
|
extendStatics(d, b);
|
|
function __() { this.constructor = d; }
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
})();
|
|
import Axis from '../parts/Axis.js';
|
|
import U from '../parts/Utilities.js';
|
|
var addEvent = U.addEvent, merge = U.merge, pick = U.pick, splat = U.splat;
|
|
/* eslint-disable valid-jsdoc */
|
|
/**
|
|
* 3D chart with support of z coordinates.
|
|
* @private
|
|
* @class
|
|
*/
|
|
var ZChart = /** @class */ (function () {
|
|
function ZChart() {
|
|
}
|
|
/* *
|
|
*
|
|
* Static Functions
|
|
*
|
|
* */
|
|
ZChart.compose = function (ChartClass) {
|
|
addEvent(ChartClass, 'afterGetAxes', ZChart.onAfterGetAxes);
|
|
var chartProto = ChartClass.prototype;
|
|
chartProto.addZAxis = ZChart.wrapAddZAxis;
|
|
chartProto.collectionsWithInit.zAxis = [chartProto.addZAxis];
|
|
chartProto.collectionsWithUpdate.push('zAxis');
|
|
};
|
|
/**
|
|
* Get the Z axis in addition to the default X and Y.
|
|
* @private
|
|
*/
|
|
ZChart.onAfterGetAxes = function () {
|
|
var chart = this;
|
|
var options = this.options;
|
|
var zAxisOptions = options.zAxis = splat(options.zAxis || {});
|
|
if (!chart.is3d()) {
|
|
return;
|
|
}
|
|
chart.zAxis = [];
|
|
zAxisOptions.forEach(function (axisOptions, i) {
|
|
axisOptions.index = i;
|
|
// Z-Axis is shown horizontally, so it's kind of a X-Axis
|
|
axisOptions.isX = true;
|
|
chart
|
|
.addZAxis(axisOptions)
|
|
.setScale();
|
|
});
|
|
};
|
|
/**
|
|
* @private
|
|
*/
|
|
ZChart.wrapAddZAxis = function (options) {
|
|
return new ZAxis(this, options);
|
|
};
|
|
return ZChart;
|
|
}());
|
|
/**
|
|
* 3D axis for z coordinates.
|
|
*/
|
|
var ZAxis = /** @class */ (function (_super) {
|
|
__extends(ZAxis, _super);
|
|
/* *
|
|
*
|
|
* Constructors
|
|
*
|
|
* */
|
|
function ZAxis(chart, userOptions) {
|
|
var _this = _super.call(this, chart, userOptions) || this;
|
|
_this.isZAxis = true;
|
|
return _this;
|
|
}
|
|
/* *
|
|
*
|
|
* Functions
|
|
*
|
|
* */
|
|
ZAxis.prototype.getSeriesExtremes = function () {
|
|
var axis = this;
|
|
var chart = axis.chart;
|
|
axis.hasVisibleSeries = false;
|
|
// Reset properties in case we're redrawing (#3353)
|
|
axis.dataMin = axis.dataMax = axis.ignoreMinPadding = axis.ignoreMaxPadding = void 0;
|
|
if (axis.stacking) {
|
|
axis.stacking.buildStacks();
|
|
}
|
|
// loop through this axis' series
|
|
axis.series.forEach(function (series) {
|
|
if (series.visible ||
|
|
!(chart.options.chart &&
|
|
chart.options.chart.ignoreHiddenSeries)) {
|
|
var seriesOptions = series.options, zData, threshold = seriesOptions.threshold;
|
|
axis.hasVisibleSeries = true;
|
|
// Validate threshold in logarithmic axes
|
|
if (axis.positiveValuesOnly && threshold <= 0) {
|
|
threshold = void 0;
|
|
}
|
|
zData = series.zData;
|
|
if (zData.length) {
|
|
axis.dataMin = Math.min(pick(axis.dataMin, zData[0]), Math.min.apply(null, zData));
|
|
axis.dataMax = Math.max(pick(axis.dataMax, zData[0]), Math.max.apply(null, zData));
|
|
}
|
|
}
|
|
});
|
|
};
|
|
/**
|
|
* @private
|
|
*/
|
|
ZAxis.prototype.setAxisSize = function () {
|
|
var axis = this;
|
|
var chart = axis.chart;
|
|
_super.prototype.setAxisSize.call(this);
|
|
axis.width = axis.len = (chart.options.chart &&
|
|
chart.options.chart.options3d &&
|
|
chart.options.chart.options3d.depth) || 0;
|
|
axis.right = chart.chartWidth - axis.width - axis.left;
|
|
};
|
|
/**
|
|
* @private
|
|
*/
|
|
ZAxis.prototype.setOptions = function (userOptions) {
|
|
userOptions = merge({
|
|
offset: 0,
|
|
lineWidth: 0
|
|
}, userOptions);
|
|
_super.prototype.setOptions.call(this, userOptions);
|
|
this.coll = 'zAxis';
|
|
};
|
|
/* *
|
|
*
|
|
* Static Properties
|
|
*
|
|
* */
|
|
ZAxis.ZChartComposition = ZChart;
|
|
return ZAxis;
|
|
}(Axis));
|
|
export default ZAxis;
|