UNPKG

ag-charts-community

Version:

Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue

706 lines 30.2 kB
"use strict"; 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 __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __values = (this && this.__values) || function(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; Object.defineProperty(exports, "__esModule", { value: true }); var group_1 = require("../../../scene/group"); var selection_1 = require("../../../scene/selection"); var series_1 = require("../series"); var node_1 = require("../../../scene/node"); var path_1 = require("../../../scene/shape/path"); var cartesianSeries_1 = require("./cartesianSeries"); var chartAxis_1 = require("../../chartAxis"); var util_1 = require("../../marker/util"); var chart_1 = require("../../chart"); var array_1 = require("../../../util/array"); var equal_1 = require("../../../util/equal"); var observable_1 = require("../../../util/observable"); var string_1 = require("../../../util/string"); var text_1 = require("../../../scene/shape/text"); var label_1 = require("../../label"); var sanitize_1 = require("../../../util/sanitize"); var value_1 = require("../../../util/value"); var continuousScale_1 = require("../../../scale/continuousScale"); var AreaSeriesLabel = /** @class */ (function (_super) { __extends(AreaSeriesLabel, _super); function AreaSeriesLabel() { return _super !== null && _super.apply(this, arguments) || this; } __decorate([ observable_1.reactive('change') ], AreaSeriesLabel.prototype, "formatter", void 0); return AreaSeriesLabel; }(label_1.Label)); var AreaSeriesTooltip = /** @class */ (function (_super) { __extends(AreaSeriesTooltip, _super); function AreaSeriesTooltip() { return _super !== null && _super.apply(this, arguments) || this; } __decorate([ observable_1.reactive('change') ], AreaSeriesTooltip.prototype, "renderer", void 0); __decorate([ observable_1.reactive('change') ], AreaSeriesTooltip.prototype, "format", void 0); return AreaSeriesTooltip; }(series_1.SeriesTooltip)); exports.AreaSeriesTooltip = AreaSeriesTooltip; var AreaSeries = /** @class */ (function (_super) { __extends(AreaSeries, _super); function AreaSeries() { var _this = _super.call(this) || this; _this.tooltip = new AreaSeriesTooltip(); _this.areaGroup = _this.group.insertBefore(new group_1.Group, _this.pickGroup); _this.strokeGroup = _this.group.insertBefore(new group_1.Group, _this.pickGroup); _this.markerGroup = _this.pickGroup.appendChild(new group_1.Group); _this.labelGroup = _this.group.appendChild(new group_1.Group); _this.fillSelection = selection_1.Selection.select(_this.areaGroup).selectAll(); _this.strokeSelection = selection_1.Selection.select(_this.strokeGroup).selectAll(); _this.markerSelection = selection_1.Selection.select(_this.markerGroup).selectAll(); _this.labelSelection = selection_1.Selection.select(_this.labelGroup).selectAll(); /** * The assumption is that the values will be reset (to `true`) * in the {@link yKeys} setter. */ _this.seriesItemEnabled = new Map(); _this.xData = []; _this.yData = []; _this.areaSelectionData = []; _this.markerSelectionData = []; _this.labelSelectionData = []; _this.yDomain = []; _this.directionKeys = { x: ['xKey'], y: ['yKeys'] }; _this.marker = new cartesianSeries_1.CartesianSeriesMarker(); _this.label = new AreaSeriesLabel(); _this.fills = [ '#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1' ]; _this.strokes = [ '#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692' ]; _this.fillOpacity = 1; _this.strokeOpacity = 1; _this.lineDash = [0]; _this.lineDashOffset = 0; _this._xKey = ''; _this.xName = ''; _this._yKeys = []; _this.yNames = []; _this.strokeWidth = 2; _this.addEventListener('update', _this.scheduleUpdate); var _a = _this, marker = _a.marker, label = _a.label; marker.enabled = false; marker.addPropertyListener('shape', _this.onMarkerShapeChange, _this); marker.addEventListener('change', _this.scheduleUpdate, _this); label.enabled = false; label.addEventListener('change', _this.scheduleUpdate, _this); return _this; } AreaSeries.prototype.onMarkerShapeChange = function () { this.markerSelection = this.markerSelection.setData([]); this.markerSelection.exit.remove(); this.fireEvent({ type: 'legendChange' }); }; Object.defineProperty(AreaSeries.prototype, "xKey", { get: function () { return this._xKey; }, set: function (value) { if (this._xKey !== value) { this._xKey = value; this.xData = []; this.scheduleData(); } }, enumerable: true, configurable: true }); Object.defineProperty(AreaSeries.prototype, "yKeys", { get: function () { return this._yKeys; }, set: function (values) { if (!equal_1.equal(this._yKeys, values)) { this._yKeys = values; this.yData = []; var seriesItemEnabled_1 = this.seriesItemEnabled; seriesItemEnabled_1.clear(); values.forEach(function (key) { return seriesItemEnabled_1.set(key, true); }); this.scheduleData(); } }, enumerable: true, configurable: true }); AreaSeries.prototype.setColors = function (fills, strokes) { this.fills = fills; this.strokes = strokes; }; Object.defineProperty(AreaSeries.prototype, "normalizedTo", { get: function () { return this._normalizedTo; }, set: function (value) { var absValue = value ? Math.abs(value) : undefined; if (this._normalizedTo !== absValue) { this._normalizedTo = absValue; this.scheduleData(); } }, enumerable: true, configurable: true }); AreaSeries.prototype.processData = function () { var _a = this, xKey = _a.xKey, yKeys = _a.yKeys, seriesItemEnabled = _a.seriesItemEnabled; var data = xKey && yKeys.length && this.data ? this.data : []; // If the data is an array of rows like so: // // [{ // xKy: 'Jan', // yKey1: 5, // yKey2: 7, // yKey3: -9, // }, { // xKey: 'Feb', // yKey1: 10, // yKey2: -15, // yKey3: 20 // }] // var keysFound = true; // only warn once this.xData = data.map(function (datum) { if (keysFound && !(xKey in datum)) { keysFound = false; console.warn("The key '" + xKey + "' was not found in the data: ", datum); } return datum[xKey]; }); this.yData = data.map(function (datum) { return yKeys.map(function (yKey) { if (keysFound && !(yKey in datum)) { keysFound = false; console.warn("The key '" + yKey + "' was not found in the data: ", datum); } var value = datum[yKey]; return isFinite(value) && seriesItemEnabled.get(yKey) ? value : 0; }); }); // xData: ['Jan', 'Feb'] // // yData: [ // [5, 7, -9], // [10, -15, 20] // ] var _b = this, yData = _b.yData, normalizedTo = _b.normalizedTo; var yMinMax = yData.map(function (values) { return array_1.findMinMax(values); }); // used for normalization var yLargestMinMax = this.findLargestMinMax(yMinMax); // Calculate the sum of the absolute values of all items in each stack. Used for normalization of stacked areas. var yAbsTotal = this.yData.map(function (values) { return values.reduce(function (acc, stack) { acc += Math.abs(stack); return acc; }, 0); }); var yMin; var yMax; if (normalizedTo && isFinite(normalizedTo)) { yMin = yLargestMinMax.min < 0 ? -normalizedTo : 0; yMax = yLargestMinMax.max > 0 ? normalizedTo : 0; yData.forEach(function (stack, i) { return stack.forEach(function (y, j) { return stack[j] = y / yAbsTotal[i] * normalizedTo; }); }); } else { yMin = yLargestMinMax.min; yMax = yLargestMinMax.max; } if (yMin === 0 && yMax === 0) { yMax = 1; } this.yDomain = this.fixNumericExtent([yMin, yMax], 'y'); this.fireEvent({ type: 'dataProcessed' }); return true; }; AreaSeries.prototype.findLargestMinMax = function (totals) { var e_1, _a; var min = 0; var max = 0; try { for (var totals_1 = __values(totals), totals_1_1 = totals_1.next(); !totals_1_1.done; totals_1_1 = totals_1.next()) { var total = totals_1_1.value; if (total.min < min) { min = total.min; } if (total.max > max) { max = total.max; } } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (totals_1_1 && !totals_1_1.done && (_a = totals_1.return)) _a.call(totals_1); } finally { if (e_1) throw e_1.error; } } return { min: min, max: max }; }; AreaSeries.prototype.getDomain = function (direction) { if (direction === chartAxis_1.ChartAxisDirection.X) { return this.xData; } else { return this.yDomain; } }; AreaSeries.prototype.update = function () { this.updatePending = false; this.updateSelections(); this.updateNodes(); }; AreaSeries.prototype.updateSelections = function () { if (!this.nodeDataPending) { return; } this.nodeDataPending = false; this.createSelectionData(); this.updateFillSelection(); this.updateStrokeSelection(); this.updateMarkerSelection(); this.updateLabelSelection(); }; AreaSeries.prototype.updateNodes = function () { this.group.visible = this.visible && this.xData.length > 0 && this.yData.length > 0; this.updateFillNodes(); this.updateStrokeNodes(); this.updateMarkerNodes(); this.updateLabelNodes(); }; AreaSeries.prototype.createSelectionData = function () { var _this = this; var _a = this, data = _a.data, xAxis = _a.xAxis, yAxis = _a.yAxis, xData = _a.xData, yData = _a.yData, areaSelectionData = _a.areaSelectionData, markerSelectionData = _a.markerSelectionData, labelSelectionData = _a.labelSelectionData; if (!data || !xAxis || !yAxis || !xData.length || !yData.length) { return; } var _b = this, yKeys = _b.yKeys, marker = _b.marker, label = _b.label, fills = _b.fills, strokes = _b.strokes; var xScale = xAxis.scale; var yScale = yAxis.scale; var xOffset = (xScale.bandwidth || 0) / 2; var yOffset = (yScale.bandwidth || 0) / 2; var last = xData.length * 2 - 1; areaSelectionData.length = 0; markerSelectionData.length = 0; labelSelectionData.length = 0; xData.forEach(function (xDatum, i) { var yDatum = yData[i]; var seriesDatum = data[i]; var x = xScale.convert(xDatum) + xOffset; var prevMin = 0; var prevMax = 0; yDatum.forEach(function (curr, j) { var prev = curr < 0 ? prevMin : prevMax; var continuousY = yScale instanceof continuousScale_1.ContinuousScale; var y = yScale.convert(prev + curr, continuousY ? continuousScale_1.clamper : undefined); var yKey = yKeys[j]; var yValue = seriesDatum[yKey]; if (marker) { markerSelectionData.push({ index: i, series: _this, itemId: yKey, datum: seriesDatum, yValue: yValue, yKey: yKey, point: { x: x, y: y }, fill: fills[j % fills.length], stroke: strokes[j % strokes.length] }); } var labelText; if (label.formatter) { labelText = label.formatter({ value: yValue }); } else { labelText = value_1.isNumber(yValue) ? yValue.toFixed(2) : String(yValue); } if (label) { labelSelectionData.push({ index: i, itemId: yKey, point: { x: x, y: y }, label: labelText ? { text: labelText, fontStyle: label.fontStyle, fontWeight: label.fontWeight, fontSize: label.fontSize, fontFamily: label.fontFamily, textAlign: 'center', textBaseline: 'bottom', fill: label.color } : undefined }); } var areaDatum = areaSelectionData[j] || (areaSelectionData[j] = { itemId: yKey, points: [] }); var areaPoints = areaDatum.points; areaPoints[i] = { x: x, y: y }; areaPoints[last - i] = { x: x, y: yScale.convert(prev) + yOffset }; // bottom y if (curr < 0) { prevMin += curr; } else { prevMax += curr; } }); }); }; AreaSeries.prototype.updateFillSelection = function () { var updateFills = this.fillSelection.setData(this.areaSelectionData); updateFills.exit.remove(); var enterFills = updateFills.enter.append(path_1.Path) .each(function (path) { path.lineJoin = 'round'; path.stroke = undefined; path.pointerEvents = node_1.PointerEvents.None; }); this.fillSelection = updateFills.merge(enterFills); }; AreaSeries.prototype.updateFillNodes = function () { var _this = this; var _a = this, fills = _a.fills, fillOpacity = _a.fillOpacity, strokes = _a.strokes, strokeOpacity = _a.strokeOpacity, strokeWidth = _a.strokeWidth, shadow = _a.shadow, seriesItemEnabled = _a.seriesItemEnabled; this.fillSelection.each(function (shape, datum, index) { var path = shape.path; shape.fill = fills[index % fills.length]; shape.fillOpacity = fillOpacity; shape.stroke = strokes[index % strokes.length]; shape.strokeOpacity = strokeOpacity; shape.strokeWidth = strokeWidth; shape.lineDash = _this.lineDash; shape.lineDashOffset = _this.lineDashOffset; shape.fillShadow = shadow; shape.visible = !!seriesItemEnabled.get(datum.itemId); shape.opacity = _this.getOpacity(datum); path.clear(); var points = datum.points; points.forEach(function (_a, i) { var x = _a.x, y = _a.y; if (i > 0) { path.lineTo(x, y); } else { path.moveTo(x, y); } }); path.closePath(); }); }; AreaSeries.prototype.updateStrokeSelection = function () { var updateStrokes = this.strokeSelection.setData(this.areaSelectionData); updateStrokes.exit.remove(); var enterStrokes = updateStrokes.enter.append(path_1.Path) .each(function (path) { path.fill = undefined; path.lineJoin = path.lineCap = 'round'; path.pointerEvents = node_1.PointerEvents.None; }); this.strokeSelection = updateStrokes.merge(enterStrokes); }; AreaSeries.prototype.updateStrokeNodes = function () { var _this = this; if (!this.data) { return; } var _a = this, data = _a.data, strokes = _a.strokes, strokeOpacity = _a.strokeOpacity, seriesItemEnabled = _a.seriesItemEnabled; this.strokeSelection.each(function (shape, datum, index) { var path = shape.path; shape.visible = !!seriesItemEnabled.get(datum.itemId); shape.opacity = _this.getOpacity(datum); shape.stroke = strokes[index % strokes.length]; shape.strokeWidth = _this.getStrokeWidth(_this.strokeWidth, datum); shape.strokeOpacity = strokeOpacity; shape.lineDash = _this.lineDash; shape.lineDashOffset = _this.lineDashOffset; path.clear(); var points = datum.points; // The stroke doesn't go all the way around the fill, only on top, // that's why we iterate until `data.length` (rather than `points.length`) and stop. for (var i = 0; i < data.length; i++) { var _a = points[i], x = _a.x, y = _a.y; if (i > 0) { path.lineTo(x, y); } else { path.moveTo(x, y); } } }); }; AreaSeries.prototype.updateMarkerSelection = function () { var MarkerShape = util_1.getMarker(this.marker.shape); var data = MarkerShape ? this.markerSelectionData : []; var updateMarkers = this.markerSelection.setData(data); updateMarkers.exit.remove(); var enterMarkers = updateMarkers.enter.append(MarkerShape); this.markerSelection = updateMarkers.merge(enterMarkers); }; AreaSeries.prototype.updateMarkerNodes = function () { var _this = this; if (!this.chart) { return; } var _a = this, xKey = _a.xKey, marker = _a.marker, seriesItemEnabled = _a.seriesItemEnabled, yKeys = _a.yKeys, fills = _a.fills, strokes = _a.strokes, highlightedDatum = _a.chart.highlightedDatum, _b = _a.highlightStyle, deprecatedFill = _b.fill, deprecatedStroke = _b.stroke, deprecatedStrokeWidth = _b.strokeWidth, _c = _b.item, _d = _c.fill, highlightedFill = _d === void 0 ? deprecatedFill : _d, _e = _c.stroke, highlightedStroke = _e === void 0 ? deprecatedStroke : _e, _f = _c.strokeWidth, highlightedDatumStrokeWidth = _f === void 0 ? deprecatedStrokeWidth : _f; var size = marker.size, formatter = marker.formatter; var markerStrokeWidth = marker.strokeWidth !== undefined ? marker.strokeWidth : this.strokeWidth; this.markerSelection.each(function (node, datum) { var yKeyIndex = yKeys.indexOf(datum.yKey); var isDatumHighlighted = datum === highlightedDatum; var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill || fills[yKeyIndex % fills.length]; var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke || strokes[yKeyIndex % fills.length]; var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined ? highlightedDatumStrokeWidth : markerStrokeWidth; var format = undefined; if (formatter) { format = formatter({ datum: datum.datum, xKey: xKey, yKey: datum.yKey, fill: fill, stroke: stroke, strokeWidth: strokeWidth, size: size, highlighted: isDatumHighlighted }); } node.fill = format && format.fill || fill; node.stroke = format && format.stroke || stroke; node.strokeWidth = format && format.strokeWidth !== undefined ? format.strokeWidth : strokeWidth; node.size = format && format.size !== undefined ? format.size : size; node.translationX = datum.point.x; node.translationY = datum.point.y; node.visible = marker.enabled && node.size > 0 && !!seriesItemEnabled.get(datum.yKey) && !isNaN(datum.point.x); node.opacity = _this.getOpacity(datum); }); }; AreaSeries.prototype.updateLabelSelection = function () { var updateLabels = this.labelSelection.setData(this.labelSelectionData); updateLabels.exit.remove(); var enterLabels = updateLabels.enter.append(text_1.Text); this.labelSelection = updateLabels.merge(enterLabels); }; AreaSeries.prototype.updateLabelNodes = function () { var _this = this; if (!this.chart) { return; } var _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color; this.labelSelection.each(function (text, datum) { var point = datum.point, label = datum.label; if (label && labelEnabled) { text.fontStyle = fontStyle; text.fontWeight = fontWeight; text.fontSize = fontSize; text.fontFamily = fontFamily; text.textAlign = label.textAlign; text.textBaseline = label.textBaseline; text.text = label.text; text.x = point.x; text.y = point.y - 10; text.fill = color; text.visible = true; text.opacity = _this.getOpacity(datum); } else { text.visible = false; } }); }; AreaSeries.prototype.getNodeData = function () { return this.markerSelectionData; }; AreaSeries.prototype.fireNodeClickEvent = function (event, datum) { this.fireEvent({ type: 'nodeClick', event: event, series: this, datum: datum.datum, xKey: this.xKey, yKey: datum.yKey }); }; AreaSeries.prototype.getTooltipHtml = function (nodeDatum) { var xKey = this.xKey; var yKey = nodeDatum.yKey; if (!(xKey && yKey)) { return ''; } var datum = nodeDatum.datum; var xValue = datum[xKey]; var yValue = datum[yKey]; var _a = this, xAxis = _a.xAxis, yAxis = _a.yAxis; if (!(xAxis && yAxis && value_1.isNumber(yValue))) { return ''; } var x = xAxis.scale.convert(xValue); var y = yAxis.scale.convert(yValue); // Don't show the tooltip for the off-screen markers. // Node: some markers might still go off-screen despite virtual rendering // (to connect the dots and render the area properly). if (!(xAxis.inRange(x) && yAxis.inRange(y))) { return ''; } var _b = this, xName = _b.xName, yKeys = _b.yKeys, yNames = _b.yNames, yData = _b.yData, fills = _b.fills, strokes = _b.strokes, tooltip = _b.tooltip, marker = _b.marker; var size = marker.size, markerFormatter = marker.formatter, markerStrokeWidth = marker.strokeWidth, markerFill = marker.fill, markerStroke = marker.stroke; var xString = xAxis.formatDatum(xValue); var yString = yAxis.formatDatum(yValue); var yKeyIndex = yKeys.indexOf(yKey); var yGroup = yData[nodeDatum.index]; var processedYValue = yGroup[yKeyIndex]; var yName = yNames[yKeyIndex]; var title = sanitize_1.sanitizeHtml(yName); var content = sanitize_1.sanitizeHtml(xString + ': ' + yString); var strokeWidth = markerStrokeWidth !== undefined ? markerStrokeWidth : this.strokeWidth; var fill = markerFill || fills[yKeyIndex % fills.length]; var stroke = markerStroke || strokes[yKeyIndex % fills.length]; var format = undefined; if (markerFormatter) { format = markerFormatter({ datum: datum, xKey: xKey, yKey: yKey, fill: fill, stroke: stroke, strokeWidth: strokeWidth, size: size, highlighted: false }); } var color = format && format.fill || markerFill; var defaults = { title: title, backgroundColor: color, content: content }; var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format; if (tooltipFormat || tooltipRenderer) { var params = { datum: datum, xKey: xKey, xName: xName, xValue: xValue, yKey: yKey, yValue: yValue, processedYValue: processedYValue, yName: yName, color: color }; if (tooltipFormat) { return chart_1.toTooltipHtml({ content: string_1.interpolate(tooltipFormat, params) }, defaults); } if (tooltipRenderer) { return chart_1.toTooltipHtml(tooltipRenderer(params), defaults); } } return chart_1.toTooltipHtml(defaults); }; AreaSeries.prototype.listSeriesItems = function (legendData) { var _a = this, data = _a.data, id = _a.id, xKey = _a.xKey, yKeys = _a.yKeys, yNames = _a.yNames, seriesItemEnabled = _a.seriesItemEnabled, marker = _a.marker, fills = _a.fills, strokes = _a.strokes, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity; if (data && data.length && xKey && yKeys.length) { yKeys.forEach(function (yKey, index) { legendData.push({ id: id, itemId: yKey, enabled: seriesItemEnabled.get(yKey) || false, label: { text: yNames[index] || yKeys[index] }, marker: { shape: marker.shape, fill: marker.fill || fills[index % fills.length], stroke: marker.stroke || strokes[index % strokes.length], fillOpacity: fillOpacity, strokeOpacity: strokeOpacity } }); }); } }; AreaSeries.prototype.toggleSeriesItem = function (itemId, enabled) { this.seriesItemEnabled.set(itemId, enabled); this.scheduleData(); }; AreaSeries.className = 'AreaSeries'; AreaSeries.type = 'area'; __decorate([ observable_1.reactive('dataChange') ], AreaSeries.prototype, "fills", void 0); __decorate([ observable_1.reactive('dataChange') ], AreaSeries.prototype, "strokes", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "fillOpacity", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "strokeOpacity", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "lineDash", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "lineDashOffset", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "xName", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "yNames", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "strokeWidth", void 0); __decorate([ observable_1.reactive('update') ], AreaSeries.prototype, "shadow", void 0); return AreaSeries; }(cartesianSeries_1.CartesianSeries)); exports.AreaSeries = AreaSeries; //# sourceMappingURL=areaSeries.js.map