
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import { Line } from "../../../core/render/Line";
import { DrawingSeries } from "./DrawingSeries";
import * as $array from "../../../core/util/Array";
export class PolylineSeries extends DrawingSeries {
constructor() {
super(...arguments);
// point index in segment
Object.defineProperty(this, "_pIndex", {
enumerable: true,
configurable: true,
writable: true,
value: 0
});
Object.defineProperty(this, "_tag", {
enumerable: true,
configurable: true,
writable: true,
value: "polyline"
});
Object.defineProperty(this, "_drawingLine", {
enumerable: true,
configurable: true,
writable: true,
value: this.mainContainer.children.push(Line.new(this._root, { forceInactive: true }))
});
}
_handlePointerClick(event) {
if (this._drawingEnabled) {
super._handlePointerClick(event);
if (event.target.get("userData") == "grip") {
this._endPolyline(event.target.dataItem);
}
else {
if (!this._isDragging) {
this._isDrawing = true;
// for consistency with other series
if (this._index == 0) {
this._index = 1;
}
if (this._pIndex == 0) {
this.data.push({ stroke: this._getStrokeTemplate(), index: this._index, corner: "e" });
}
this._drawingLine.show();
this._addPoint(event);
}
this._drawingLine.set("stroke", this.get("strokeColor"));
}
}
}
_handleBulletDragStop(event) {
super._handleBulletDragStop(event);
}
disableDrawing() {
super.disableDrawing();
this._endPolyline();
}
_afterDataChange() {
super._afterDataChange();
const dataItems = this.dataItems;
if (dataItems.length > 0) {
const lastDataItem = dataItems[dataItems.length - 1];
const dataContext = lastDataItem.dataContext;
if (dataContext.closing) {
this._pIndex = 0;
}
}
}
clearDrawings() {
super.clearDrawings();
this._drawingLine.hide();
}
_addPoint(event) {
const chart = this.chart;
if (chart) {
const xAxis = this.get("xAxis");
const yAxis = this.get("yAxis");
const point = chart.plotContainer.toLocal(event.point);
const valueX = this._getXValue(xAxis.positionToValue(xAxis.coordinateToPosition(point.x)));
const valueY = this._getYValue(yAxis.positionToValue(yAxis.coordinateToPosition(point.y)), valueX);
const dataItems = this.dataItems;
const len = dataItems.length;
this.data.push({ valueY: valueY, valueX: valueX, index: this._index, corner: this._pIndex });
this.setPrivate("startIndex", 0);
this.setPrivate("endIndex", len);
const dataItem = dataItems[len];
this._positionBullets(dataItem);
this._setXLocation(dataItem, valueX);
this._pIndex++;
}
}
_endPolyline(dataItem) {
if (!dataItem) {
dataItem = this.dataItems[this.dataItems.length - 1];
}
if (dataItem) {
this._pIndex = 0;
const dataContext = dataItem.dataContext;
const index = dataContext.index;
if (dataContext.corner == 0) {
this.data.push({ valueX: dataItem.get("valueX"), valueY: dataItem.get("valueY"), index: index, corner: this._pIndex + 1, closing: true });
const dataItems = this.dataItems;
const len = dataItems.length - 1;
this.setPrivate("startIndex", 0);
this.setPrivate("endIndex", len);
dataItem = dataItems[len];
this._positionBullets(dataItem);
this._setXLocation(dataItem, dataItem.get("valueX", 0));
}
this.data.push({ stroke: this._getStrokeTemplate(), index: index + 1, corner: "e" });
this._drawingLine.hide();
}
}
_handlePointerMove(event) {
super._handlePointerMove(event);
if (this._isDrawing) {
const movePoint = this._movePointerPoint;
if (movePoint) {
const dataItems = this.dataItems;
const len = dataItems.length;
if (len > 0) {
const lastItem = dataItems[len - 1];
const point = lastItem.get("point");
if (point) {
this._drawingLine.set("points", [point, movePoint]);
}
}
}
}
}
_updateElements() {
$array.each(this.dataItems, (dataItem) => {
const dataContext = dataItem.dataContext;
if (dataContext) {
const closing = dataContext.closing;
if (closing) {
if (this._di[dataContext.index]) {
const closingDataItem = this._di[dataContext.index][0];
const valueX = closingDataItem.get("valueX", 0);
const valueY = closingDataItem.get("valueY");
this._setContext(dataItem, "valueX", valueX);
this._setContext(dataItem, "valueY", valueY, true);
this._setXLocation(dataItem, valueX);
this._positionBullets(dataItem);
const bullets = dataItem.bullets;
if (bullets) {
$array.each(bullets, (bullet) => {
const sprite = bullet.get("sprite");
if (sprite) {
sprite.set("forceHidden", true);
}
});
}
}
}
}
});
}
}
Object.defineProperty(PolylineSeries, "className", {
enumerable: true,
configurable: true,
writable: true,
value: "PolylineSeries"
});
Object.defineProperty(PolylineSeries, "classNames", {
enumerable: true,
configurable: true,
writable: true,
value: DrawingSeries.classNames.concat([PolylineSeries.className])
});
//# sourceMappingURL=PolylineSeries.js.map