Socket
Socket
Sign inDemoInstall

@syncfusion/ej2-charts

Package Overview
Dependencies
Maintainers
2
Versions
297
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@syncfusion/ej2-charts - npm Package Compare versions

Comparing version 1.0.14 to 1.0.16

dist/es6/chart/series/step-area-series.js

67

dist/es6/accumulation-chart/accumulation.js

@@ -46,2 +46,8 @@ var __extends = (this && this.__extends) || (function () {

};
AccumulationChart.prototype.render = function () {
this.trigger(load, { accumulation: this });
this.calculateAreaType();
this.calculateVisibleSeries();
this.processData();
};
AccumulationChart.prototype.unWireEvents = function () {

@@ -53,9 +59,9 @@ var isIE11Pointer = Browser.isPointer;

var cancel = isIE11Pointer ? 'pointerleave' : 'mouseleave';
EventHandler.remove(this.element, move, this.pieMouseMove);
EventHandler.remove(this.element, stop, this.pieMouseEnd);
EventHandler.remove(this.element, start, this.pieMouseStart);
EventHandler.remove(this.element, 'click', this.pieOnMouseClick);
EventHandler.remove(this.element, 'contextmenu', this.pieRightClick);
EventHandler.remove(this.element, cancel, this.pieMouseLeave);
EventHandler.remove(window, (Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.pieResize);
EventHandler.remove(this.element, move, this.accumulationMouseMove);
EventHandler.remove(this.element, stop, this.accumulationMouseEnd);
EventHandler.remove(this.element, start, this.accumulationMouseStart);
EventHandler.remove(this.element, 'click', this.accumulationOnMouseClick);
EventHandler.remove(this.element, 'contextmenu', this.accumulationRightClick);
EventHandler.remove(this.element, cancel, this.accumulationMouseLeave);
EventHandler.remove(window, (Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.accumulationResize);
};

@@ -68,9 +74,9 @@ AccumulationChart.prototype.wireEvents = function () {

var cancel = isIE11Pointer ? 'pointerleave' : 'mouseleave';
EventHandler.add(this.element, move, this.pieMouseMove, this);
EventHandler.add(this.element, stop, this.pieMouseEnd, this);
EventHandler.add(this.element, start, this.pieMouseStart, this);
EventHandler.add(this.element, 'click', this.pieOnMouseClick, this);
EventHandler.add(this.element, 'contextmenu', this.pieRightClick, this);
EventHandler.add(this.element, cancel, this.pieMouseLeave, this);
EventHandler.add(window, (Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.pieResize, this);
EventHandler.add(this.element, move, this.accumulationMouseMove, this);
EventHandler.add(this.element, stop, this.accumulationMouseEnd, this);
EventHandler.add(this.element, start, this.accumulationMouseStart, this);
EventHandler.add(this.element, 'click', this.accumulationOnMouseClick, this);
EventHandler.add(this.element, 'contextmenu', this.accumulationRightClick, this);
EventHandler.add(this.element, cancel, this.accumulationMouseLeave, this);
EventHandler.add(window, (Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.accumulationResize, this);
new Touch(this.element);

@@ -96,3 +102,3 @@ this.setStyle(this.element);

};
AccumulationChart.prototype.pieMouseEnd = function (e) {
AccumulationChart.prototype.accumulationMouseEnd = function (e) {
this.setMouseXY(e);

@@ -114,3 +120,3 @@ this.trigger(chartMouseUp, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieMouseStart = function (e) {
AccumulationChart.prototype.accumulationMouseStart = function (e) {
this.setMouseXY(e);

@@ -120,3 +126,3 @@ this.trigger(chartMouseDown, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieResize = function (e) {
AccumulationChart.prototype.accumulationResize = function (e) {
var _this = this;

@@ -148,3 +154,3 @@ var args = {

};
AccumulationChart.prototype.pieMouseMove = function (e) {
AccumulationChart.prototype.accumulationMouseMove = function (e) {
this.setMouseXY(e);

@@ -163,3 +169,3 @@ this.trigger(chartMouseMove, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieOnMouseClick = function (e) {
AccumulationChart.prototype.accumulationOnMouseClick = function (e) {
this.setMouseXY(e);

@@ -173,3 +179,3 @@ if (this.accumulationLegendModule && this.legendSettings.visible) {

if (this.visibleSeries[0].explode) {
this.pieSeriesModule.processExplode(this, e);
this.pieSeriesModule.processExplode(e);
}

@@ -179,3 +185,3 @@ this.trigger(chartMouseClick, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieRightClick = function (event) {
AccumulationChart.prototype.accumulationRightClick = function (event) {
if (event.buttons === 2 || event.pointerType === 'touch') {

@@ -188,3 +194,3 @@ event.preventDefault();

};
AccumulationChart.prototype.pieMouseLeave = function (e) {
AccumulationChart.prototype.accumulationMouseLeave = function (e) {
this.setMouseXY(e);

@@ -216,8 +222,2 @@ this.trigger(chartMouseLeave, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.render = function () {
this.trigger(load, { pie: this });
this.calculateAreaType();
this.calculateVisibleSeries();
this.processData();
};
AccumulationChart.prototype.calculateAreaType = function () {

@@ -249,3 +249,3 @@ var series = this.series[0];

AccumulationChart.prototype.refreshChart = function () {
this.doClubbingProcess();
this.doGrouppingProcess();
this.createPieSvg();

@@ -255,3 +255,3 @@ this.calculateBounds();

};
AccumulationChart.prototype.doClubbingProcess = function () {
AccumulationChart.prototype.doGrouppingProcess = function () {
var series = this.visibleSeries[0];

@@ -283,3 +283,3 @@ if (!isNullOrUndefined(series.resultData) && ((!isNullOrUndefined(series.lastGroupTo) &&

this.processExplode();
this.trigger('loaded', { pie: this });
this.trigger('loaded', { accumulation: this });
this.animateSeries = false;

@@ -350,5 +350,8 @@ };

AccumulationChart.prototype.getModuleName = function () {
return 'pie';
return 'accumulationchart';
};
AccumulationChart.prototype.destroy = function () {
this.unWireEvents();
_super.prototype.destroy.call(this);
this.element.classList.remove('e-accumulationchart');
};

@@ -355,0 +358,0 @@ AccumulationChart.prototype.requiredModules = function () {

@@ -125,19 +125,19 @@ var __extends = (this && this.__extends) || (function () {

}
AccumulationSeries.prototype.refreshDataManager = function (pie) {
AccumulationSeries.prototype.refreshDataManager = function (accumulation) {
var _this = this;
var dataManager = this.dataModule.getData(this.dataModule.generateQuery().requiresCount());
dataManager.then(function (e) { return _this.dataManagerSuccess(e, pie); });
dataManager.then(function (e) { return _this.dataManagerSuccess(e, accumulation); });
};
AccumulationSeries.prototype.dataManagerSuccess = function (e, pie) {
AccumulationSeries.prototype.dataManagerSuccess = function (e, accumulation) {
var argsData = {
name: seriesRender, series: this, data: e.result,
};
pie.trigger(seriesRender, argsData);
accumulation.trigger(seriesRender, argsData);
this.resultData = e.result;
this.getPoints(e.result, pie);
if (++pie.seriesCounts === pie.visibleSeries.length) {
pie.refreshChart();
this.getPoints(e.result, accumulation);
if (++accumulation.seriesCounts === accumulation.visibleSeries.length) {
accumulation.refreshChart();
}
};
AccumulationSeries.prototype.getPoints = function (result, pie) {
AccumulationSeries.prototype.getPoints = function (result, accumulation) {
var length = Object.keys(result).length;

@@ -152,6 +152,6 @@ this.sumOfPoints = 0;

var point;
var colors = this.palettes.length ? this.palettes : getSeriesColor(pie.theme);
var colors = this.palettes.length ? this.palettes : getSeriesColor(accumulation.theme);
var clubValue = stringToNumber(this.groupTo, this.sumOfPoints);
for (var i = 0; i < length; i++) {
point = this.setPoints(result[i], pie);
point = this.setPoints(result[i]);
if (!this.isClub(point, clubValue)) {

@@ -193,3 +193,3 @@ if (isNullOrUndefined(point.y)) {

};
AccumulationSeries.prototype.setPoints = function (data, pie) {
AccumulationSeries.prototype.setPoints = function (data) {
var point = new AccPoints();

@@ -201,22 +201,22 @@ point.x = data[this.xName];

};
AccumulationSeries.prototype.renderSeries = function (pie) {
var seriesGroup = pie.renderer.createGroup({ id: pie.element.id + '_Series_' + this.index });
this.renderPoints(pie, seriesGroup);
AccumulationSeries.prototype.renderSeries = function (accumulation) {
var seriesGroup = accumulation.renderer.createGroup({ id: accumulation.element.id + '_Series_' + this.index });
this.renderPoints(accumulation, seriesGroup);
var datalabelGroup;
if (pie.accumulationDataLabelModule && this.dataLabel.visible) {
datalabelGroup = pie.renderer.createGroup({ id: pie.element.id + '_datalabel_Series_' + this.index });
datalabelGroup.style.visibility = (this.animation.enable && pie.animateSeries) ? 'hidden' : 'visible';
this.renderDataLabel(pie, datalabelGroup);
if (accumulation.accumulationDataLabelModule && this.dataLabel.visible) {
datalabelGroup = accumulation.renderer.createGroup({ id: accumulation.element.id + '_datalabel_Series_' + this.index });
datalabelGroup.style.visibility = (this.animation.enable && accumulation.animateSeries) ? 'hidden' : 'visible';
this.renderDataLabel(accumulation, datalabelGroup);
}
this.findMaxBounds(this.labelBound, this.pieBound);
pie.pieSeriesModule.animateSeries(pie, this.animation, this, seriesGroup);
if (pie.accumulationLegendModule) {
this.labelBound.x -= pie.explodeDistance;
this.labelBound.y -= pie.explodeDistance;
this.labelBound.height += (pie.explodeDistance - this.labelBound.y);
this.labelBound.width += (pie.explodeDistance - this.labelBound.x);
this.findMaxBounds(this.labelBound, this.accumulationBound);
accumulation.pieSeriesModule.animateSeries(accumulation, this.animation, this, seriesGroup);
if (accumulation.accumulationLegendModule) {
this.labelBound.x -= accumulation.explodeDistance;
this.labelBound.y -= accumulation.explodeDistance;
this.labelBound.height += (accumulation.explodeDistance - this.labelBound.y);
this.labelBound.width += (accumulation.explodeDistance - this.labelBound.x);
}
};
AccumulationSeries.prototype.renderPoints = function (pie, seriesGroup) {
var pointId = pie.element.id + '_Series_' + this.index + '_Point_';
AccumulationSeries.prototype.renderPoints = function (accumulation, seriesGroup) {
var pointId = accumulation.element.id + '_Series_' + this.index + '_Point_';
var option;

@@ -228,22 +228,22 @@ for (var _i = 0, _a = this.points; _i < _a.length; _i++) {

};
pie.trigger(pointRender, argsData);
accumulation.trigger(pointRender, argsData);
point.color = argsData.fill;
if (point.visible) {
option = new PathOption(pointId + point.index, point.color, this.border.width || 1, this.border.color || point.color, 1, '', '');
pie.pieSeriesModule.renderPoint(point, option, this.sumOfPoints);
seriesGroup.appendChild(pie.renderer.drawPath(option));
accumulation.pieSeriesModule.renderPoint(point, option, this.sumOfPoints);
seriesGroup.appendChild(accumulation.renderer.drawPath(option));
}
}
pie.getSeriesElement().appendChild(seriesGroup);
accumulation.getSeriesElement().appendChild(seriesGroup);
};
AccumulationSeries.prototype.renderDataLabel = function (pie, datalabelGroup) {
pie.accumulationDataLabelModule.initProperties(pie, this);
pie.accumulationDataLabelModule.findAreaRect();
AccumulationSeries.prototype.renderDataLabel = function (accumulation, datalabelGroup) {
accumulation.accumulationDataLabelModule.initProperties(accumulation, this);
accumulation.accumulationDataLabelModule.findAreaRect();
for (var _i = 0, _a = this.points; _i < _a.length; _i++) {
var point = _a[_i];
if (point.visible) {
pie.accumulationDataLabelModule.renderDataLabel(point, this.dataLabel, datalabelGroup, this.points, this.index);
accumulation.accumulationDataLabelModule.renderDataLabel(point, this.dataLabel, datalabelGroup, this.points, this.index);
}
}
pie.getSeriesElement().appendChild(datalabelGroup);
accumulation.getSeriesElement().appendChild(datalabelGroup);
};

@@ -250,0 +250,0 @@ AccumulationSeries.prototype.findMaxBounds = function (totalbound, bound) {

@@ -21,9 +21,9 @@ var __extends = (this && this.__extends) || (function () {

__extends(AccumulationDataLabel, _super);
function AccumulationDataLabel(pie) {
function AccumulationDataLabel(accumulation) {
var _this = _super.call(this) || this;
_this.pie = pie;
_this.id = pie.element.id + '_datalabel_Series_';
if (pie.title) {
var titleSize = measureText(pie.title, pie.titleStyle);
_this.titleRect = new Rect(pie.availableSize.width / 2 - titleSize.width / 2, pie.margin.top, titleSize.width, titleSize.height);
_this.accumulation = accumulation;
_this.id = accumulation.element.id + '_datalabel_Series_';
if (accumulation.title) {
var titleSize = measureText(accumulation.title, accumulation.titleStyle);
_this.titleRect = new Rect(accumulation.availableSize.width / 2 - titleSize.width / 2, accumulation.margin.top, titleSize.width, titleSize.height);
}

@@ -36,3 +36,3 @@ return _this;

point.labelPosition = dataLabel.position;
if (this.pie.enableSmartLabels) {
if (this.accumulation.enableSmartLabels) {
this.getSmartLabel(point, midAngle, dataLabel, textSize, points, parent, id);

@@ -83,4 +83,4 @@ }

}
if (this.pie.accumulationLegendModule && point.labelVisible && point.labelRegion) {
this.textTrimming(point, this.pie.accumulationLegendModule.legendBounds, dataLabel.font, this.pie.accumulationLegendModule.position);
if (this.accumulation.accumulationLegendModule && point.labelVisible && point.labelRegion) {
this.textTrimming(point, this.accumulation.accumulationLegendModule.legendBounds, dataLabel.font, this.accumulation.accumulationLegendModule.position);
}

@@ -120,5 +120,10 @@ if (point.labelVisible && point.labelRegion) {

AccumulationDataLabel.prototype.showText = function (event, seriesIndex, pointIndex, x, y) {
var point = getSeriesFromIndex(seriesIndex, this.pie.visibleSeries).points[pointIndex];
var point = getSeriesFromIndex(seriesIndex, this.accumulation.visibleSeries).points[pointIndex];
var id = 'EJ2_datalabel_tooltip';
var tooltip = document.getElementById(id);
var width = measureText(point.text || point.y.toString(), {
fontFamily: 'Segoe UI', size: '12px',
fontStyle: 'Normal', fontWeight: 'Regular'
}).width + 5;
x = (x + width > this.areaRect.width) ? x - width : x;
if (!tooltip) {

@@ -130,3 +135,3 @@ tooltip = createElement('div', {

'position:fixed;border:1px solid rgb(112, 112, 112); padding-left : 3px; padding-right : 2px;' +
'padding-bottom : 2px; font-size:12px; font-family: "Segoe UI"'
'padding-bottom : 2px; padding-top : 2px; font-size:12px; font-family: "Segoe UI"'
});

@@ -303,15 +308,15 @@ document.body.appendChild(tooltip);

AccumulationDataLabel.prototype.findAreaRect = function () {
this.areaRect = new Rect(0, 0, this.pie.availableSize.width, this.pie.availableSize.height);
var margin = this.pie.margin;
this.areaRect = new Rect(0, 0, this.accumulation.availableSize.width, this.accumulation.availableSize.height);
var margin = this.accumulation.margin;
subtractThickness(this.areaRect, new Thickness(margin.left, margin.right, margin.top, margin.bottom));
};
AccumulationDataLabel.prototype.renderDataLabel = function (point, dataLabel, parent, points, series) {
var id = this.pie.element.id + '_datalabel_Series_' + series + '_';
var datalabelGroup = this.pie.renderer.createGroup({ id: id + 'g_' + point.index });
var id = this.accumulation.element.id + '_datalabel_Series_' + series + '_';
var datalabelGroup = this.accumulation.renderer.createGroup({ id: id + 'g_' + point.index });
point.label = point.text || point.y.toString();
var argsData = {
cancel: false, name: textRender, series: this.pie.visibleSeries[0], point: point, text: point.label, border: dataLabel.border,
color: dataLabel.fill
cancel: false, name: textRender, series: this.accumulation.visibleSeries[0], point: point,
text: point.label, border: dataLabel.border, color: dataLabel.fill
};
this.pie.trigger(textRender, argsData);
this.accumulation.trigger(textRender, argsData);
point.labelVisible = !argsData.cancel;

@@ -326,10 +331,10 @@ point.text = point.label = argsData.text;

this.correctLabelRegion(point.labelRegion, textSize);
datalabelGroup.appendChild(this.pie.renderer.drawRectangle(new RectOption(id + 'shape_' + point.index, argsData.color, argsData.border, 1, point.labelRegion, dataLabel.rx, dataLabel.ry)));
datalabelGroup.appendChild(this.accumulation.renderer.drawRectangle(new RectOption(id + 'shape_' + point.index, argsData.color, argsData.border, 1, point.labelRegion, dataLabel.rx, dataLabel.ry)));
textElement(new TextOption(id + 'text_' + point.index, point.labelRegion.x + this.marginValue, point.labelRegion.y + (textSize.height * 3 / 4) + this.marginValue, 'start', point.label, '', 'auto'), dataLabel.font, dataLabel.font.color || this.getSaturatedColor(point, argsData.color), datalabelGroup);
if (this.pie.accumulationLegendModule && (dataLabel.position === 'Outside' || this.pie.enableSmartLabels)) {
this.pie.visibleSeries[0].findMaxBounds(this.pie.visibleSeries[0].labelBound, point.labelRegion);
if (this.accumulation.accumulationLegendModule && (dataLabel.position === 'Outside' || this.accumulation.enableSmartLabels)) {
this.accumulation.visibleSeries[0].findMaxBounds(this.accumulation.visibleSeries[0].labelBound, point.labelRegion);
}
if (point.labelPosition === 'Outside') {
var path = this.getConnectorPath(extend({}, point.labelRegion, null, true), point.midAngle, dataLabel.connectorStyle, null, point.labelAngle);
var pathElement = this.pie.renderer.drawPath(new PathOption(id + 'connector_' + point.index, 'transparent', dataLabel.connectorStyle.width, dataLabel.connectorStyle.color || point.color, 1, '', path));
var pathElement = this.accumulation.renderer.drawPath(new PathOption(id + 'connector_' + point.index, 'transparent', dataLabel.connectorStyle.width, dataLabel.connectorStyle.color || point.color, 1, '', path));
datalabelGroup.appendChild(pathElement);

@@ -354,3 +359,3 @@ }

AccumulationDataLabel.prototype.getLabelBackground = function (point) {
return point.labelPosition === 'Outside' ? this.pie.background : point.color;
return point.labelPosition === 'Outside' ? this.accumulation.background : point.color;
};

@@ -369,4 +374,6 @@ AccumulationDataLabel.prototype.correctLabelRegion = function (labelRegion, textSize, padding) {

};
AccumulationDataLabel.prototype.destroy = function (accumulation) {
};
return AccumulationDataLabel;
}(PieBase));
export { AccumulationDataLabel };

@@ -204,8 +204,8 @@ var __extends = (this && this.__extends) || (function () {

};
AccumulationLegend.prototype.getTitleRect = function (pie) {
if (!pie.title) {
AccumulationLegend.prototype.getTitleRect = function (accumulation) {
if (!accumulation.title) {
return null;
}
var titleSize = measureText(pie.title, pie.titleStyle);
this.titleRect = new Rect(pie.availableSize.width / 2 - titleSize.width / 2, pie.margin.top, titleSize.width, titleSize.height);
var titleSize = measureText(accumulation.title, accumulation.titleStyle);
this.titleRect = new Rect(accumulation.availableSize.width / 2 - titleSize.width / 2, accumulation.margin.top, titleSize.width, titleSize.height);
};

@@ -212,0 +212,0 @@ AccumulationLegend.prototype.legendByIndex = function (index, legendCollections) {

@@ -9,13 +9,13 @@ import { isNullOrUndefined } from '@syncfusion/ej2-base';

}
PieBase.prototype.findCenter = function (pie) {
this.pie = pie;
PieBase.prototype.findCenter = function (accumulation) {
this.accumulation = accumulation;
this.center = {
x: stringToNumber('50%', pie.initialClipRect.width) + (pie.initialClipRect.x),
y: stringToNumber('50%', pie.initialClipRect.height) + (pie.initialClipRect.y)
x: stringToNumber('50%', accumulation.initialClipRect.width) + (accumulation.initialClipRect.x),
y: stringToNumber('50%', accumulation.initialClipRect.height) + (accumulation.initialClipRect.y)
};
var pieRect = this.getSeriesBound(pie.visibleSeries[0]);
var pieRectCenter = new ChartLocation(pieRect.x + pieRect.width / 2, pieRect.y + pieRect.height / 2);
this.center.x += (this.center.x - pieRectCenter.x);
this.center.y += (this.center.y - pieRectCenter.y);
this.pie.center = this.center;
var accumulationRect = this.getSeriesBound(accumulation.visibleSeries[0]);
var accumulationRectCenter = new ChartLocation(accumulationRect.x + accumulationRect.width / 2, accumulationRect.y + accumulationRect.height / 2);
this.center.x += (this.center.x - accumulationRectCenter.x);
this.center.y += (this.center.y - accumulationRectCenter.y);
this.accumulation.center = this.center;
};

@@ -41,5 +41,5 @@ PieBase.prototype.initProperties = function (chart, series) {

PieBase.prototype.defaultLabelBound = function (series, visible, position) {
var pieBound = this.getSeriesBound(series);
series.pieBound = pieBound;
series.labelBound = new Rect(pieBound.x, pieBound.y, pieBound.width + pieBound.x, pieBound.height + pieBound.y);
var accumulationBound = this.getSeriesBound(series);
series.accumulationBound = accumulationBound;
series.labelBound = new Rect(accumulationBound.x, accumulationBound.y, accumulationBound.width + accumulationBound.x, accumulationBound.height + accumulationBound.y);
if (visible && position === 'Outside') {

@@ -104,6 +104,6 @@ series.labelBound = new Rect(Infinity, Infinity, -Infinity, -Infinity);

};
PieBase.prototype.getTooltipPoint = function (e, pie, x, y) {
PieBase.prototype.getTooltipPoint = function (e, accumulation, x, y) {
var target = e.target;
target = pie.isTouch ? document.elementFromPoint(x, y) : target;
var id = target.id.split(pie.element.id + '_Series_');
target = accumulation.isTouch ? document.elementFromPoint(x, y) : target;
var id = target.id.split(accumulation.element.id + '_Series_');
if (id[1]) {

@@ -113,14 +113,14 @@ var seriesIndex = parseInt(id[1].split('_Point_')[0], 10);

if (!isNullOrUndefined(seriesIndex) && !isNaN(seriesIndex) && !isNullOrUndefined(pointIndex) && !isNaN(pointIndex)) {
var series = this.getSeriesFromIndex(seriesIndex, pie.visibleSeries);
var series = this.getSeriesFromIndex(seriesIndex, accumulation.visibleSeries);
if (series.enableTooltip) {
pie.accumulationTooltipModule.renderTooltip(series.points[pointIndex], series.index);
accumulation.accumulationTooltipModule.renderTooltip(series.points[pointIndex], series.index);
}
}
}
else if (pie.accumulationTooltipModule && pie.accumulationTooltipModule.tooltip && !this.isDataLabel(target)) {
pie.accumulationTooltipModule.tooltip.close();
else if (accumulation.accumulationTooltipModule && accumulation.accumulationTooltipModule.tooltip && !this.isDataLabel(target)) {
accumulation.accumulationTooltipModule.tooltip.close();
}
};
PieBase.prototype.isDataLabel = function (target) {
if (target.id.indexOf(this.pie.element.id + '_datalabel_Series_') > -1) {
if (target.id.indexOf(this.accumulation.element.id + '_datalabel_Series_') > -1) {
return true;

@@ -133,3 +133,3 @@ }

};
PieBase.prototype.processExplode = function (pie, event) {
PieBase.prototype.processExplode = function (event) {
if (event.target.id.indexOf('_Series_') > -1 || event.target.id.indexOf('_datalabel_') > -1) {

@@ -145,4 +145,4 @@ var pointIndex = indexFinder(event.target.id).point;

PieBase.prototype.invokeExplode = function () {
if (this.pie.visibleSeries[0].explodeAll) {
for (var _i = 0, _a = this.pie.visibleSeries[0].points; _i < _a.length; _i++) {
if (this.accumulation.visibleSeries[0].explodeAll) {
for (var _i = 0, _a = this.accumulation.visibleSeries[0].points; _i < _a.length; _i++) {
var point = _a[_i];

@@ -152,8 +152,8 @@ this.explodePoints(point.index);

}
else if (!isNullOrUndefined(this.pie.visibleSeries[0].explodeIndex)) {
this.explodePoints(this.pie.visibleSeries[0].explodeIndex);
else if (!isNullOrUndefined(this.accumulation.visibleSeries[0].explodeIndex)) {
this.explodePoints(this.accumulation.visibleSeries[0].explodeIndex);
}
if (this.pie.accumulationSelectionModule && this.pie.selectionMode !== 'None' &&
this.pie.accumulationSelectionModule.selectedDataIndexes.length) {
for (var _b = 0, _c = this.pie.accumulationSelectionModule.selectedDataIndexes; _b < _c.length; _b++) {
if (this.accumulation.accumulationSelectionModule && this.accumulation.selectionMode !== 'None' &&
this.accumulation.accumulationSelectionModule.selectedDataIndexes.length) {
for (var _b = 0, _c = this.accumulation.accumulationSelectionModule.selectedDataIndexes; _b < _c.length; _b++) {
var index = _c[_b];

@@ -166,4 +166,4 @@ this.explodePoints(index.point, true);

PieBase.prototype.deExplodeAll = function (index) {
var pointId = this.pie.element.id + '_Series_0_Point_';
var points = this.pie.visibleSeries[0].points;
var pointId = this.accumulation.element.id + '_Series_0_Point_';
var points = this.accumulation.visibleSeries[0].points;
for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {

@@ -178,10 +178,10 @@ var currentPoint = points_1[_i];

if (explode === void 0) { explode = false; }
var pointId = this.pie.element.id + '_Series_0_Point_';
var pointId = this.accumulation.element.id + '_Series_0_Point_';
var translate;
var points = this.pie.visibleSeries[0].points;
var point = pointByIndex(index, this.pie.visibleSeries[0].points);
var points = this.accumulation.visibleSeries[0].points;
var point = pointByIndex(index, this.accumulation.visibleSeries[0].points);
if (isNullOrUndefined(point)) {
return null;
}
translate = degreeToLocation(point.midAngle, this.pie.explodeDistance, this.center);
translate = degreeToLocation(point.midAngle, this.accumulation.explodeDistance, this.center);
if (this.isExplode(pointId + index) || explode) {

@@ -210,4 +210,4 @@ this.explodeSlice(index, translate, pointId, this.center);

this.setElementTransform(sliceId + index, position);
if (this.pie.visibleSeries[0].dataLabel.visible) {
sliceId = this.pie.element.id + '_datalabel_Series_0_';
if (this.accumulation.visibleSeries[0].dataLabel.visible) {
sliceId = this.accumulation.element.id + '_datalabel_Series_0_';
this.setElementTransform(sliceId + 'shape_' + index, position);

@@ -232,3 +232,3 @@ this.setElementTransform(sliceId + 'text_' + index, position);

var value;
var radius = Math.max(this.pie.availableSize.height, this.pie.availableSize.width) * 0.75;
var radius = Math.max(this.accumulation.availableSize.height, this.accumulation.availableSize.width) * 0.75;
radius += radius * (0.414);

@@ -245,4 +245,4 @@ var effect = getAnimationFunction('Linear');

slice.setAttribute('d', _this.getPathArc(_this.center, 0, 359.99999, radius, 0));
_this.pie.trigger(animationComplete, { series: series, pie: _this.pie });
var datalabelGroup = getElement(_this.pie.element.id + '_datalabel_Series_' + series.index);
_this.accumulation.trigger(animationComplete, { series: series, accumulation: _this.accumulation });
var datalabelGroup = getElement(_this.accumulation.element.id + '_datalabel_Series_' + series.index);
datalabelGroup.style.visibility = 'visible';

@@ -249,0 +249,0 @@ }

@@ -31,10 +31,10 @@ var __extends = (this && this.__extends) || (function () {

};
PieSeries.prototype.animateSeries = function (pie, option, series, slice) {
var groupId = pie.element.id + 'SeriesGroup' + series.index;
if (series.animation.enable && pie.animateSeries) {
var clippath = pie.renderer.createClipPath({ id: groupId + '_clipPath' });
PieSeries.prototype.animateSeries = function (accumulation, option, series, slice) {
var groupId = accumulation.element.id + 'SeriesGroup' + series.index;
if (series.animation.enable && accumulation.animateSeries) {
var clippath = accumulation.renderer.createClipPath({ id: groupId + '_clipPath' });
var path = new PathOption(groupId + '_slice', 'transparent', 1, 'transparent', 1, '', '');
var clipslice = pie.renderer.drawPath(path);
var clipslice = accumulation.renderer.drawPath(path);
clippath.appendChild(clipslice);
pie.svgObject.appendChild(clippath);
accumulation.svgObject.appendChild(clippath);
slice.setAttribute('style', 'clip-path:url(#' + clippath.id + ')');

@@ -47,4 +47,6 @@ this.doAnimation(clipslice, series);

};
PieSeries.prototype.destroy = function (accumulation) {
};
return PieSeries;
}(PieBase));
export { PieSeries };

@@ -17,18 +17,18 @@ var __extends = (this && this.__extends) || (function () {

__extends(AccumulationSelection, _super);
function AccumulationSelection(pie) {
var _this = _super.call(this, pie) || this;
_this.renderer = pie.renderer;
function AccumulationSelection(accumulation) {
var _this = _super.call(this, accumulation) || this;
_this.renderer = accumulation.renderer;
return _this;
}
AccumulationSelection.prototype.initPrivateVariables = function (pie) {
this.styleId = pie.element.id + '_ej2_chart_selection';
this.unselected = pie.element.id + '_ej2_deselected';
AccumulationSelection.prototype.initPrivateVariables = function (accumulation) {
this.styleId = accumulation.element.id + '_ej2_chart_selection';
this.unselected = accumulation.element.id + '_ej2_deselected';
this.selectedDataIndexes = [];
this.rectPoints = null;
};
AccumulationSelection.prototype.invokeSelection = function (pie) {
this.initPrivateVariables(pie);
this.series = extend({}, pie.visibleSeries, null, true);
AccumulationSelection.prototype.invokeSelection = function (accumulation) {
this.initPrivateVariables(accumulation);
this.series = extend({}, accumulation.visibleSeries, null, true);
this.seriesStyles();
this.selectDataIndex(this.concatIndexes(pie.selectedDataIndexes, this.selectedDataIndexes), pie);
this.selectDataIndex(this.concatIndexes(accumulation.selectedDataIndexes, this.selectedDataIndexes), accumulation);
};

@@ -38,3 +38,3 @@ AccumulationSelection.prototype.generateStyle = function (series) {

};
AccumulationSelection.prototype.findElements = function (pie, series, index) {
AccumulationSelection.prototype.findElements = function (accumulation, series, index) {
return [this.getElementByIndex(index)];

@@ -46,15 +46,16 @@ };

};
AccumulationSelection.prototype.calculateSelectedElements = function (pie, event) {
AccumulationSelection.prototype.calculateSelectedElements = function (accumulation, event) {
if (event.target.id.indexOf('_Series_') > -1 || event.target.id.indexOf('_datalabel_') > -1) {
this.performSelection(indexFinder(event.target.id), pie, event.target);
this.performSelection(indexFinder(event.target.id), accumulation, event.target);
}
};
AccumulationSelection.prototype.performSelection = function (index, pie, element) {
element = element.id.indexOf('datalabel') > -1 ? pie.getSeriesElement().childNodes[index.series].childNodes[index.point]
AccumulationSelection.prototype.performSelection = function (index, accumulation, element) {
element = element.id.indexOf('datalabel') > -1 ?
accumulation.getSeriesElement().childNodes[index.series].childNodes[index.point]
: element;
switch (pie.selectionMode) {
switch (accumulation.selectionMode) {
case 'Point':
if (!isNaN(index.point)) {
this.selection(pie, index, [element]);
this.blurEffect(pie.element.id, pie.visibleSeries);
this.selection(accumulation, index, [element]);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
}

@@ -64,5 +65,5 @@ break;

};
AccumulationSelection.prototype.selection = function (pie, index, selectedElements) {
if (!pie.isMultiSelect) {
this.removeMultiSelectEelments(pie, this.selectedDataIndexes, index, pie.series);
AccumulationSelection.prototype.selection = function (accumulation, index, selectedElements) {
if (!accumulation.isMultiSelect) {
this.removeMultiSelectEelments(accumulation, this.selectedDataIndexes, index, accumulation.series);
}

@@ -79,10 +80,10 @@ var className = selectedElements[0] && (selectedElements[0].getAttribute('class') || '');

};
AccumulationSelection.prototype.redrawSelection = function (pie, oldMode) {
AccumulationSelection.prototype.redrawSelection = function (accumulation, oldMode) {
var selectedDataIndexes = extend([], this.selectedDataIndexes, null, true);
this.removeSelectedElements(pie, this.selectedDataIndexes);
this.blurEffect(pie.element.id, pie.visibleSeries);
this.selectDataIndex(selectedDataIndexes, pie);
this.removeSelectedElements(accumulation, this.selectedDataIndexes);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
this.selectDataIndex(selectedDataIndexes, accumulation);
};
AccumulationSelection.prototype.removeSelectedElements = function (pie, indexes) {
var seriesgroup = pie.getSeriesElement();
AccumulationSelection.prototype.removeSelectedElements = function (accumulation, indexes) {
var seriesgroup = accumulation.getSeriesElement();
for (var _i = 0, indexes_1 = indexes; _i < indexes_1.length; _i++) {

@@ -93,10 +94,10 @@ var index = indexes_1[_i];

};
AccumulationSelection.prototype.legendSelection = function (pie, series, pointIndex) {
var element = pie.getSeriesElement().childNodes[series].childNodes[pointIndex];
var seriesStyle = this.generateStyle(pie.visibleSeries[series]);
var seriesElements = pie.getSeriesElement().childNodes[series].childNodes[pointIndex];
this.selection(pie, new Index(series, pointIndex), [seriesElements]);
this.blurEffect(pie.element.id, pie.visibleSeries);
AccumulationSelection.prototype.legendSelection = function (accumulation, series, pointIndex) {
var element = accumulation.getSeriesElement().childNodes[series].childNodes[pointIndex];
var seriesStyle = this.generateStyle(accumulation.visibleSeries[series]);
var seriesElements = accumulation.getSeriesElement().childNodes[series].childNodes[pointIndex];
this.selection(accumulation, new Index(series, pointIndex), [seriesElements]);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
};
AccumulationSelection.prototype.selectDataIndex = function (indexes, pie) {
AccumulationSelection.prototype.selectDataIndex = function (indexes, accumulation) {
var element;

@@ -107,7 +108,7 @@ for (var _i = 0, indexes_2 = indexes; _i < indexes_2.length; _i++) {

if (element) {
this.performSelection(index, pie, element);
this.performSelection(index, accumulation, element);
}
}
};
AccumulationSelection.prototype.removeMultiSelectEelments = function (pie, index, currentIndex, seriesCollection) {
AccumulationSelection.prototype.removeMultiSelectEelments = function (accumulation, index, currentIndex, seriesCollection) {
var series;

@@ -117,3 +118,3 @@ for (var i = 0; i < index.length; i++) {

if (!this.checkEquals(index[i], currentIndex)) {
this.removeStyles(this.findElements(pie, series, index[i]), index[i]);
this.removeStyles(this.findElements(accumulation, series, index[i]), index[i]);
index.splice(i, 1);

@@ -220,3 +221,3 @@ i--;

};
AccumulationSelection.prototype.destroy = function (pie) {
AccumulationSelection.prototype.destroy = function (accumulation) {
};

@@ -223,0 +224,0 @@ return AccumulationSelection;

@@ -9,6 +9,6 @@ import { compile as templateComplier } from '@syncfusion/ej2-base';

var AccumulationTooltip = (function () {
function AccumulationTooltip(pie) {
this.pie = pie;
this.tooltipOption = pie.tooltip;
this.targetId = pie.element.id + '_pie_tooltip';
function AccumulationTooltip(accumulation) {
this.accumulation = accumulation;
this.tooltipOption = accumulation.tooltip;
this.targetId = accumulation.element.id + '_pie_tooltip';
var targetElement = createElement('div', {

@@ -18,3 +18,3 @@ id: this.targetId,

});
pie.element.appendChild(targetElement);
accumulation.element.appendChild(targetElement);
this.tooltip = new Tooltip({

@@ -26,3 +26,3 @@ opensOn: 'custom',

});
this.tooltip.appendTo(pie.element);
this.tooltip.appendTo(accumulation.element);
}

@@ -44,4 +44,3 @@ AccumulationTooltip.prototype.setTemplateFunction = function (template) {

this.tooltipIndex !== 'series_' + seriesIndex + '_point_' + point.index) {
this.updatePosition(this.targetId, point.symbolLocation.x, point.symbolLocation.y, this.pie.element.id + '_Series_0_Point_' +
point.index);
this.updatePosition(this.targetId, point.symbolLocation.x, point.symbolLocation.y, this.accumulation.element.id + '_Series_0_Point_' + point.index);
this.setTemplateFunction(this.tooltipOption.template);

@@ -82,6 +81,6 @@ this.currentPoint = point;

textStyle: this.tooltipOption.textStyle,
series: this.pie.visibleSeries[0],
series: this.accumulation.visibleSeries[0],
point: this.currentPoint
};
this.pie.trigger(tooltipRender, argsData);
this.accumulation.trigger(tooltipRender, argsData);
args.cancel = argsData.cancel;

@@ -145,3 +144,3 @@ this.tooltip.content = argsData.content;

var format = tooltip.format ? tooltip.format : '${point.x} : ${point.y}';
var series = getSeriesFromIndex(seriesIndex, this.pie.visibleSeries);
var series = getSeriesFromIndex(seriesIndex, this.accumulation.visibleSeries);
return this.parseTemplate(point, format, series);

@@ -148,0 +147,0 @@ };

@@ -124,3 +124,3 @@ import { getMinPointsDelta } from '../../common/utils/helper';

axis.actualRange.max = axis.maximum != null ? axis.maximum : maximum;
axis.actualRange.interval = interval;
axis.actualRange.interval = axis.interval != null ? axis.interval : interval;
};

@@ -127,0 +127,0 @@ Double.prototype.findAdditional = function (axis, start, end, interval) {

@@ -14,2 +14,3 @@ export * from './chart';

export * from './series/step-line-series';
export * from './series/step-area-series';
export * from './series/stacking-area-series';

@@ -16,0 +17,0 @@ export * from './series/scatter-series';

@@ -342,2 +342,3 @@ var __extends = (this && this.__extends) || (function () {

case 'Rectangle':
case 'StepArea':
path = 'M' + ' ' + x + ' ' + (locY + (-height / 2)) + ' ' +

@@ -344,0 +345,0 @@ 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY + (-height / 2)) + ' ' +

{
"name": "@syncfusion/ej2-charts",
"version": "1.0.14",
"version": "1.0.16",
"description": "Essential JS 2 Chart Components",

@@ -8,5 +8,5 @@ "author": "Syncfusion Inc.",

"dependencies": {
"@syncfusion/ej2-base": "^1.0.14",
"@syncfusion/ej2-base": "^1.0.16",
"@syncfusion/ej2-data": "^1.0.14",
"@syncfusion/ej2-popups": "^1.0.14"
"@syncfusion/ej2-popups": "^1.0.16"
},

@@ -13,0 +13,0 @@ "devDependencies": {

@@ -38,3 +38,3 @@ import {Property, Component, Complex, Collection, NotifyPropertyChanges, INotifyPropertyChanged, SvgRenderer} from '@syncfusion/ej2-base';import {ModuleDeclaration, Internationalization, Event, EmitType, Browser, EventHandler, Touch} from '@syncfusion/ej2-base';import { remove } from '@syncfusion/ej2-base';import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';import { Font, Margin, Border, Indexes } from '../common/model/base';import { AccumulationSeries, AccPoints, AccumulationTooltipSettings } from './model/acc-base';import { AccumulationType, AccumulationSelectionMode } from './model/enum';import { IAccSeriesRenderEventArgs, IAccTextRenderEventArgs, IAccTooltipRenderEventArgs} from './model/pie-interface';import { IAccAnimationCompleteEventArgs, IAccPointRenderEventArgs, IAccLoadedEventArgs, IAccResizeEventArgs} from './model/pie-interface';import { Theme } from '../common/model/theme';import { ILegendRenderEventArgs, IMouseEventArgs} from '../common/model/interface';import { load, seriesRender, legendRender, textRender, tooltipRender, chartMouseClick, chartMouseDown} from '../common/model/constants';import { chartMouseLeave, chartMouseMove, chartMouseUp, resized} from '../common/model/constants';import { FontModel, MarginModel, BorderModel, IndexesModel} from '../common/model/base-model';import { AccumulationSeriesModel, AccumulationTooltipSettingsModel } from './model/acc-base-model';import { LegendSettings} from '../common/legend/legend';import { AccumulationLegend} from './renderer/legend';import { LegendSettingsModel} from '../common/legend/legend-model';import { Rect, ChartLocation, Size, subtractRect, measureText, RectOption} from '../common/utils/helper';import { textElement, TextOption, removeElement, createSvg, calculateSize } from '../common/utils/helper';import { Data} from '../common/model/data';import { AccumulationTooltip} from './user-interaction/tooltip';import { PieSeries } from './renderer/pie-series';import { AccumulationDataLabel} from './renderer/dataLabel';import { AccumulationSelection } from './user-interaction/selection';import { AccumulationTheme } from './model/enum';

/**
* Options for customizing the legend of chart.
* Options for customizing the legend of accumulation chart.
*/

@@ -44,3 +44,3 @@ legendSettings?: LegendSettingsModel;

/**
* Options for customizing the tooltip of chart.
* Options for customizing the tooltip of accumulation chart.
*/

@@ -57,3 +57,3 @@

/**
* If set true, enables the multi selection in pie. It requires `selectionMode` to be `Point`.
* If set true, enables the multi selection in accumulation chart. It requires `selectionMode` to be `Point`.
* @default false

@@ -64,3 +64,3 @@ */

/**
* Specifies the point indexes to be selected while loading a pie.
* Specifies the point indexes to be selected while loading a accumulation chart.
* It requires `selectionMode` to be `Point`.

@@ -71,3 +71,3 @@ * ```html

* ```typescript
* let pie: Pie = new Pie({
* let pie: AccumulationChart = new AccumulationChart({
* ...

@@ -86,3 +86,3 @@ * selectionMode: 'Point',

/**
* Options to customize the left, right, top and bottom margins of chart.
* Options to customize the left, right, top and bottom margins of accumulation chart.
*/

@@ -111,3 +111,3 @@

/**
* The configuration for series in chart.
* The configuration for series in accumulation chart.
*/

@@ -118,3 +118,3 @@

/**
* Specifies the theme for chart.
* Specifies the theme for accumulation chart.
*/

@@ -121,0 +121,0 @@ theme?: AccumulationTheme;

@@ -66,7 +66,7 @@ /**

/**
* Options for customizing the legend of chart.
* Options for customizing the legend of accumulation chart.
*/
legendSettings: LegendSettingsModel;
/**
* Options for customizing the tooltip of chart.
* Options for customizing the tooltip of accumulation chart.
*/

@@ -80,3 +80,3 @@ tooltip: AccumulationTooltipSettingsModel;

/**
* If set true, enables the multi selection in pie. It requires `selectionMode` to be `Point`.
* If set true, enables the multi selection in accumulation chart. It requires `selectionMode` to be `Point`.
* @default false

@@ -86,3 +86,3 @@ */

/**
* Specifies the point indexes to be selected while loading a pie.
* Specifies the point indexes to be selected while loading a accumulation chart.
* It requires `selectionMode` to be `Point`.

@@ -93,3 +93,3 @@ * ```html

* ```typescript
* let pie: Pie = new Pie({
* let pie: AccumulationChart = new AccumulationChart({
* ...

@@ -107,3 +107,3 @@ * selectionMode: 'Point',

/**
* Options to customize the left, right, top and bottom margins of chart.
* Options to customize the left, right, top and bottom margins of accumulation chart.
*/

@@ -126,7 +126,7 @@ margin: MarginModel;

/**
* The configuration for series in chart.
* The configuration for series in accumulation chart.
*/
series: AccumulationSeriesModel[];
/**
* Specifies the theme for chart.
* Specifies the theme for accumulation chart.
*/

@@ -237,50 +237,63 @@ theme: AccumulationTheme;

/**
* Method to bind events for chart
* To render the accumulation chart elements
*/
protected render(): void;
/**
* Method to unbind events for accumulation chart
*/
private unWireEvents();
/**
* Method to bind events for the accumulation chart
*/
private wireEvents();
/**
* Method to set mouse x, y from events
*/
private setMouseXY(e);
/**
* Handles the mouse up.
* Handles the mouse end.
* @return {boolean}
* @private
*/
pieMouseEnd(e: PointerEvent): boolean;
accumulationMouseEnd(e: PointerEvent): boolean;
/**
* Handles the mouse down.
* Handles the mouse start.
* @return {boolean}
* @private
*/
pieMouseStart(e: PointerEvent): boolean;
accumulationMouseStart(e: PointerEvent): boolean;
/**
* Handles the chart resize.
* Handles the accumulation chart resize.
* @return {boolean}
* @private
*/
pieResize(e: Event): boolean;
accumulationResize(e: Event): boolean;
/**
* Applying styles for accumulation chart element
*/
private setStyle(element);
/**
* Handles the mouse down on Pie.
* Handles the mouse move on accumulation chart.
* @return {boolean}
* @private
*/
pieMouseMove(e: PointerEvent): boolean;
accumulationMouseMove(e: PointerEvent): boolean;
/**
* Handles the mouse down on chart.
* Handles the mouse click on accumulation chart.
* @return {boolean}
* @private
*/
pieOnMouseClick(e: PointerEvent): boolean;
accumulationOnMouseClick(e: PointerEvent): boolean;
/**
* Handles the mouse down on chart.
* Handles the mouse right click on accumulation chart.
* @return {boolean}
* @private
*/
pieRightClick(event: MouseEvent | PointerEvent): boolean;
accumulationRightClick(event: MouseEvent | PointerEvent): boolean;
/**
* Handles the mouse down on chart.
* Handles the mouse leave on accumulation chart.
* @return {boolean}
* @private
*/
pieMouseLeave(e: PointerEvent): boolean;
accumulationMouseLeave(e: PointerEvent): boolean;
/**

@@ -291,7 +304,7 @@ * Method to set culture for chart

/**
* Method to create SVG element.
* Method to create SVG element for accumulation chart.
*/
private createPieSvg();
/**
* To Remove the SVG.
* To Remove the SVG from accumulation chart.
* @return {boolean}

@@ -302,6 +315,8 @@ * @private

/**
* To render the accumulation chart elements
* Method to calculate area type based on series
*/
protected render(): void;
private calculateAreaType();
/**
* Method to find visible series based on series types
*/
private calculateVisibleSeries();

@@ -312,17 +327,62 @@ /**

private processData();
/**
* To refresh the accumulation chart
* @private
*/
refreshChart(): void;
doClubbingProcess(): void;
/**
* Method to find groupped points
*/
private doGrouppingProcess();
/**
* Method to calculate bounds for accumulation chart
*/
private calculateBounds();
/**
* Method to calculate legend bounds for accumulation chart
*/
private calculateLegendBounds();
/**
* To render elements for accumulation chart
* @private
*/
renderElements(): void;
/**
* Method to process the explode in accumulation chart
*/
private processExplode();
/**
* Method to render series for accumulation chart
*/
private renderSeries();
/**
* Method to render border for accumulation chart
*/
private renderBorder();
/**
* Method to render legend for accumulation chart
*/
private renderLegend();
/**
* To process the selection in accumulation chart
*/
private processSelection();
renderTitle(): void;
/** @private to get the series parent element */
/**
* To render title for accumulation chart
*/
private renderTitle();
/**
* To get the series parent element
* @private
*/
getSeriesElement(): Element;
/**
* To refresh the all visible series points
* @private
*/
refreshSeries(): void;
/** @private */
/**
* To refresh points label region and visible
* @private
*/
refreshPoints(points: AccPoints[]): void;

@@ -335,10 +395,19 @@ /**

/**
* To destriy the accumulationcharts
* To destroy the accumulationcharts
* @private
*/
destroy(): void;
/**
* To provide the array of modules needed for control rendering
* @return {ModuleDeclaration[]}
* @private
*/
requiredModules(): ModuleDeclaration[];
/**
* To find datalabel visibility in series
*/
private findDatalabelVisibility();
/**
* Need to analyze
* Get the properties to be maintained in the persisted state.
* @private
*/

@@ -345,0 +414,0 @@ getPersistData(): string;

@@ -35,2 +35,8 @@ var __extends = (this && this.__extends) || (function () {

};
AccumulationChart.prototype.render = function () {
this.trigger(constants_1.load, { accumulation: this });
this.calculateAreaType();
this.calculateVisibleSeries();
this.processData();
};
AccumulationChart.prototype.unWireEvents = function () {

@@ -42,9 +48,9 @@ var isIE11Pointer = ej2_base_2.Browser.isPointer;

var cancel = isIE11Pointer ? 'pointerleave' : 'mouseleave';
ej2_base_2.EventHandler.remove(this.element, move, this.pieMouseMove);
ej2_base_2.EventHandler.remove(this.element, stop, this.pieMouseEnd);
ej2_base_2.EventHandler.remove(this.element, start, this.pieMouseStart);
ej2_base_2.EventHandler.remove(this.element, 'click', this.pieOnMouseClick);
ej2_base_2.EventHandler.remove(this.element, 'contextmenu', this.pieRightClick);
ej2_base_2.EventHandler.remove(this.element, cancel, this.pieMouseLeave);
ej2_base_2.EventHandler.remove(window, (ej2_base_2.Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.pieResize);
ej2_base_2.EventHandler.remove(this.element, move, this.accumulationMouseMove);
ej2_base_2.EventHandler.remove(this.element, stop, this.accumulationMouseEnd);
ej2_base_2.EventHandler.remove(this.element, start, this.accumulationMouseStart);
ej2_base_2.EventHandler.remove(this.element, 'click', this.accumulationOnMouseClick);
ej2_base_2.EventHandler.remove(this.element, 'contextmenu', this.accumulationRightClick);
ej2_base_2.EventHandler.remove(this.element, cancel, this.accumulationMouseLeave);
ej2_base_2.EventHandler.remove(window, (ej2_base_2.Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.accumulationResize);
};

@@ -57,9 +63,9 @@ AccumulationChart.prototype.wireEvents = function () {

var cancel = isIE11Pointer ? 'pointerleave' : 'mouseleave';
ej2_base_2.EventHandler.add(this.element, move, this.pieMouseMove, this);
ej2_base_2.EventHandler.add(this.element, stop, this.pieMouseEnd, this);
ej2_base_2.EventHandler.add(this.element, start, this.pieMouseStart, this);
ej2_base_2.EventHandler.add(this.element, 'click', this.pieOnMouseClick, this);
ej2_base_2.EventHandler.add(this.element, 'contextmenu', this.pieRightClick, this);
ej2_base_2.EventHandler.add(this.element, cancel, this.pieMouseLeave, this);
ej2_base_2.EventHandler.add(window, (ej2_base_2.Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.pieResize, this);
ej2_base_2.EventHandler.add(this.element, move, this.accumulationMouseMove, this);
ej2_base_2.EventHandler.add(this.element, stop, this.accumulationMouseEnd, this);
ej2_base_2.EventHandler.add(this.element, start, this.accumulationMouseStart, this);
ej2_base_2.EventHandler.add(this.element, 'click', this.accumulationOnMouseClick, this);
ej2_base_2.EventHandler.add(this.element, 'contextmenu', this.accumulationRightClick, this);
ej2_base_2.EventHandler.add(this.element, cancel, this.accumulationMouseLeave, this);
ej2_base_2.EventHandler.add(window, (ej2_base_2.Browser.isTouch && ('orientation' in window && 'onorientationchange' in window)) ? 'orientationchange' : 'resize', this.accumulationResize, this);
new ej2_base_2.Touch(this.element);

@@ -85,3 +91,3 @@ this.setStyle(this.element);

};
AccumulationChart.prototype.pieMouseEnd = function (e) {
AccumulationChart.prototype.accumulationMouseEnd = function (e) {
this.setMouseXY(e);

@@ -103,3 +109,3 @@ this.trigger(constants_2.chartMouseUp, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieMouseStart = function (e) {
AccumulationChart.prototype.accumulationMouseStart = function (e) {
this.setMouseXY(e);

@@ -109,3 +115,3 @@ this.trigger(constants_1.chartMouseDown, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieResize = function (e) {
AccumulationChart.prototype.accumulationResize = function (e) {
var _this = this;

@@ -137,3 +143,3 @@ var args = {

};
AccumulationChart.prototype.pieMouseMove = function (e) {
AccumulationChart.prototype.accumulationMouseMove = function (e) {
this.setMouseXY(e);

@@ -152,3 +158,3 @@ this.trigger(constants_2.chartMouseMove, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieOnMouseClick = function (e) {
AccumulationChart.prototype.accumulationOnMouseClick = function (e) {
this.setMouseXY(e);

@@ -162,3 +168,3 @@ if (this.accumulationLegendModule && this.legendSettings.visible) {

if (this.visibleSeries[0].explode) {
this.pieSeriesModule.processExplode(this, e);
this.pieSeriesModule.processExplode(e);
}

@@ -168,3 +174,3 @@ this.trigger(constants_1.chartMouseClick, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.pieRightClick = function (event) {
AccumulationChart.prototype.accumulationRightClick = function (event) {
if (event.buttons === 2 || event.pointerType === 'touch') {

@@ -177,3 +183,3 @@ event.preventDefault();

};
AccumulationChart.prototype.pieMouseLeave = function (e) {
AccumulationChart.prototype.accumulationMouseLeave = function (e) {
this.setMouseXY(e);

@@ -205,8 +211,2 @@ this.trigger(constants_2.chartMouseLeave, { target: e.target.id, x: this.mouseX, y: this.mouseY });

};
AccumulationChart.prototype.render = function () {
this.trigger(constants_1.load, { pie: this });
this.calculateAreaType();
this.calculateVisibleSeries();
this.processData();
};
AccumulationChart.prototype.calculateAreaType = function () {

@@ -238,3 +238,3 @@ var series = this.series[0];

AccumulationChart.prototype.refreshChart = function () {
this.doClubbingProcess();
this.doGrouppingProcess();
this.createPieSvg();

@@ -244,3 +244,3 @@ this.calculateBounds();

};
AccumulationChart.prototype.doClubbingProcess = function () {
AccumulationChart.prototype.doGrouppingProcess = function () {
var series = this.visibleSeries[0];

@@ -272,3 +272,3 @@ if (!ej2_base_4.isNullOrUndefined(series.resultData) && ((!ej2_base_4.isNullOrUndefined(series.lastGroupTo) &&

this.processExplode();
this.trigger('loaded', { pie: this });
this.trigger('loaded', { accumulation: this });
this.animateSeries = false;

@@ -339,5 +339,8 @@ };

AccumulationChart.prototype.getModuleName = function () {
return 'pie';
return 'accumulationchart';
};
AccumulationChart.prototype.destroy = function () {
this.unWireEvents();
_super.prototype.destroy.call(this);
this.element.classList.remove('e-accumulationchart');
};

@@ -344,0 +347,0 @@ AccumulationChart.prototype.requiredModules = function () {

@@ -308,8 +308,8 @@ /**

/**
* To find the max bounds of the pie segment to place smart legend
* To find the max bounds of the accumulation segment to place smart legend
* @private
*/
pieBound: Rect;
accumulationBound: Rect;
/** @private To refresh the Datamanager for series */
refreshDataManager(pie: AccumulationChart): void;
refreshDataManager(accumulation: AccumulationChart): void;
/**

@@ -322,20 +322,54 @@ * To get points on dataManager is success

count: number;
}, pie: AccumulationChart): void;
}, accumulation: AccumulationChart): void;
/** @private To find points from result data */
getPoints(result: Object, pie: AccumulationChart): void;
getPoints(result: Object, accumulation: AccumulationChart): void;
/**
* Method to set point index and color
*/
private pushPoints(point, colors);
/**
* Method to find club point
*/
private isClub(point, clubValue);
/**
* Method to find sum of points in the series
*/
private findSumOfPoints(result);
private setPoints(data, pie);
renderSeries(pie: AccumulationChart): void;
private renderPoints(pie, seriesGroup);
private renderDataLabel(pie, datalabelGroup);
/** @private To find maximum bounds for smart legend placing */
/**
* Method to set points x, y and text from data source
*/
private setPoints(data);
/**
* Method render the series elements for accumulation chart
* @private
*/
renderSeries(accumulation: AccumulationChart): void;
/**
* Method render the points elements for accumulation chart series.
*/
private renderPoints(accumulation, seriesGroup);
/**
* Method render the datalabel elements for accumulation chart.
*/
private renderDataLabel(accumulation, datalabelGroup);
/**
* To find maximum bounds for smart legend placing
* @private
*/
findMaxBounds(totalbound: Rect, bound: Rect): void;
}
/** @private */
/**
* method to get series from index
* @private
*/
export declare function getSeriesFromIndex(index: number, visibleSeries: AccumulationSeries[]): AccumulationSeries;
/** @private */
/**
* method to get point from index
* @private
*/
export declare function pointByIndex(index: number, points: AccPoints[]): AccPoints;
/** @private */
/**
* method to find series, point index by element id
* @private
*/
export declare function indexFinder(id: string): Index;

@@ -122,19 +122,19 @@ var __extends = (this && this.__extends) || (function () {

}
AccumulationSeries.prototype.refreshDataManager = function (pie) {
AccumulationSeries.prototype.refreshDataManager = function (accumulation) {
var _this = this;
var dataManager = this.dataModule.getData(this.dataModule.generateQuery().requiresCount());
dataManager.then(function (e) { return _this.dataManagerSuccess(e, pie); });
dataManager.then(function (e) { return _this.dataManagerSuccess(e, accumulation); });
};
AccumulationSeries.prototype.dataManagerSuccess = function (e, pie) {
AccumulationSeries.prototype.dataManagerSuccess = function (e, accumulation) {
var argsData = {
name: constants_1.seriesRender, series: this, data: e.result,
};
pie.trigger(constants_1.seriesRender, argsData);
accumulation.trigger(constants_1.seriesRender, argsData);
this.resultData = e.result;
this.getPoints(e.result, pie);
if (++pie.seriesCounts === pie.visibleSeries.length) {
pie.refreshChart();
this.getPoints(e.result, accumulation);
if (++accumulation.seriesCounts === accumulation.visibleSeries.length) {
accumulation.refreshChart();
}
};
AccumulationSeries.prototype.getPoints = function (result, pie) {
AccumulationSeries.prototype.getPoints = function (result, accumulation) {
var length = Object.keys(result).length;

@@ -149,6 +149,6 @@ this.sumOfPoints = 0;

var point;
var colors = this.palettes.length ? this.palettes : theme_1.getSeriesColor(pie.theme);
var colors = this.palettes.length ? this.palettes : theme_1.getSeriesColor(accumulation.theme);
var clubValue = helper_1.stringToNumber(this.groupTo, this.sumOfPoints);
for (var i = 0; i < length; i++) {
point = this.setPoints(result[i], pie);
point = this.setPoints(result[i]);
if (!this.isClub(point, clubValue)) {

@@ -190,3 +190,3 @@ if (ej2_base_2.isNullOrUndefined(point.y)) {

};
AccumulationSeries.prototype.setPoints = function (data, pie) {
AccumulationSeries.prototype.setPoints = function (data) {
var point = new AccPoints();

@@ -198,22 +198,22 @@ point.x = data[this.xName];

};
AccumulationSeries.prototype.renderSeries = function (pie) {
var seriesGroup = pie.renderer.createGroup({ id: pie.element.id + '_Series_' + this.index });
this.renderPoints(pie, seriesGroup);
AccumulationSeries.prototype.renderSeries = function (accumulation) {
var seriesGroup = accumulation.renderer.createGroup({ id: accumulation.element.id + '_Series_' + this.index });
this.renderPoints(accumulation, seriesGroup);
var datalabelGroup;
if (pie.accumulationDataLabelModule && this.dataLabel.visible) {
datalabelGroup = pie.renderer.createGroup({ id: pie.element.id + '_datalabel_Series_' + this.index });
datalabelGroup.style.visibility = (this.animation.enable && pie.animateSeries) ? 'hidden' : 'visible';
this.renderDataLabel(pie, datalabelGroup);
if (accumulation.accumulationDataLabelModule && this.dataLabel.visible) {
datalabelGroup = accumulation.renderer.createGroup({ id: accumulation.element.id + '_datalabel_Series_' + this.index });
datalabelGroup.style.visibility = (this.animation.enable && accumulation.animateSeries) ? 'hidden' : 'visible';
this.renderDataLabel(accumulation, datalabelGroup);
}
this.findMaxBounds(this.labelBound, this.pieBound);
pie.pieSeriesModule.animateSeries(pie, this.animation, this, seriesGroup);
if (pie.accumulationLegendModule) {
this.labelBound.x -= pie.explodeDistance;
this.labelBound.y -= pie.explodeDistance;
this.labelBound.height += (pie.explodeDistance - this.labelBound.y);
this.labelBound.width += (pie.explodeDistance - this.labelBound.x);
this.findMaxBounds(this.labelBound, this.accumulationBound);
accumulation.pieSeriesModule.animateSeries(accumulation, this.animation, this, seriesGroup);
if (accumulation.accumulationLegendModule) {
this.labelBound.x -= accumulation.explodeDistance;
this.labelBound.y -= accumulation.explodeDistance;
this.labelBound.height += (accumulation.explodeDistance - this.labelBound.y);
this.labelBound.width += (accumulation.explodeDistance - this.labelBound.x);
}
};
AccumulationSeries.prototype.renderPoints = function (pie, seriesGroup) {
var pointId = pie.element.id + '_Series_' + this.index + '_Point_';
AccumulationSeries.prototype.renderPoints = function (accumulation, seriesGroup) {
var pointId = accumulation.element.id + '_Series_' + this.index + '_Point_';
var option;

@@ -225,22 +225,22 @@ for (var _i = 0, _a = this.points; _i < _a.length; _i++) {

};
pie.trigger(constants_1.pointRender, argsData);
accumulation.trigger(constants_1.pointRender, argsData);
point.color = argsData.fill;
if (point.visible) {
option = new helper_1.PathOption(pointId + point.index, point.color, this.border.width || 1, this.border.color || point.color, 1, '', '');
pie.pieSeriesModule.renderPoint(point, option, this.sumOfPoints);
seriesGroup.appendChild(pie.renderer.drawPath(option));
accumulation.pieSeriesModule.renderPoint(point, option, this.sumOfPoints);
seriesGroup.appendChild(accumulation.renderer.drawPath(option));
}
}
pie.getSeriesElement().appendChild(seriesGroup);
accumulation.getSeriesElement().appendChild(seriesGroup);
};
AccumulationSeries.prototype.renderDataLabel = function (pie, datalabelGroup) {
pie.accumulationDataLabelModule.initProperties(pie, this);
pie.accumulationDataLabelModule.findAreaRect();
AccumulationSeries.prototype.renderDataLabel = function (accumulation, datalabelGroup) {
accumulation.accumulationDataLabelModule.initProperties(accumulation, this);
accumulation.accumulationDataLabelModule.findAreaRect();
for (var _i = 0, _a = this.points; _i < _a.length; _i++) {
var point = _a[_i];
if (point.visible) {
pie.accumulationDataLabelModule.renderDataLabel(point, this.dataLabel, datalabelGroup, this.points, this.index);
accumulation.accumulationDataLabelModule.renderDataLabel(point, this.dataLabel, datalabelGroup, this.points, this.index);
}
}
pie.getSeriesElement().appendChild(datalabelGroup);
accumulation.getSeriesElement().appendChild(datalabelGroup);
};

@@ -247,0 +247,0 @@ AccumulationSeries.prototype.findMaxBounds = function (totalbound, bound) {

@@ -30,3 +30,3 @@ /**

series: AccumulationSeries;
pie: AccumulationChart;
accumulation: AccumulationChart;
}

@@ -42,3 +42,3 @@ export interface IAccPointRenderEventArgs extends IChartEventArgs {

export interface IAccLoadedEventArgs extends IChartEventArgs {
pie: AccumulationChart;
accumulation: AccumulationChart;
}

@@ -45,0 +45,0 @@ export interface IAccResizeEventArgs {

@@ -15,9 +15,18 @@ import { Size, Rect } from '../../common/utils/helper';

marginValue: number;
constructor(pie: AccumulationChart);
/** @private */
constructor(accumulation: AccumulationChart);
/**
* Method to get datalabel text location.
* @private
*/
getDataLabelPosition(point: AccPoints, midAngle: number, dataLabel: AccumulationDataLabelSettingsModel, textSize: Size, points: AccPoints[], parent: Element, id: string): void;
/**
* Method to get datalabel bound.
*/
private getLabelbound(point, midAngle, position, textSize, labelRadius, margin, endAngle?);
/**
* Method to get datalabel smart position.
*/
private getSmartLabel(point, midAngle, dataLabel, textSize, points, parent, id);
/**
* To change the pages of the legend.
* To find trimmed datalabel tooltip needed.
* @return {void}

@@ -27,24 +36,93 @@ * @private

move(e: Event, x: number, y: number): void;
/**
* To remove datalabel trimmed tooltip with animation
* @private
*/
fadeOutTooltip(): void;
/**
* To remove datalabel trimmed tooltip element
* @private
*/
removeTooltip(): void;
/** @private */
/**
* To show datalabel trimmed tooltip text.
* @private
*/
showText(event: MouseEvent, seriesIndex: number, pointIndex: number, x: number, y: number): void;
/**
* To find previous valid label point
*/
private findPreviousPoint(points, index, position);
/**
* To find current point datalabel is overlapping with other points
*/
private isOverlapping(currentPoint, points);
/**
* To get text trimmed while exceeds the accumulation chart area.
*/
private textTrimming(point, rect, font, position);
/**
* To set point label visible and region to disable.
*/
private setPointVisibileFalse(point);
/**
* To set datalabel angle position for outside labels
*/
private setOuterSmartLabel(previousPoint, point, midAngle, border, labelRadius, textsize, margin);
/**
* To find connector line overlapping.
*/
private isConnectorLineOverlapping(point, previous);
/**
* To find two rectangle intersect
*/
private isLineRectangleIntersect(line1, line2, rect);
/**
* To find two line intersect
*/
private isLinesIntersect(point1, point2, point11, point12);
/**
* To get two rectangle overlapping angles.
*/
private getOverlappedAngle(first, second, angle, padding);
/** @private */
/**
* To get connector line path
*/
getConnectorPath(label: Rect, midAngle: number, connector: ConnectorModel, labelRadius?: number, end?: number): string;
/**
* To get label edges based on the center and label rect position.
*/
private getEdgeOfLabel(labelshape, angle, middle, border?);
/**
* To find area rect based on margin, available size.
* @private
*/
findAreaRect(): void;
/**
* To render the datalabels from series points.
* @private
*/
renderDataLabel(point: AccPoints, dataLabel: AccumulationDataLabelSettingsModel, parent: Element, points: AccPoints[], series: number): void;
/**
* To find saturated color for datalabel
*/
private getSaturatedColor(point, color);
/**
* To find background color for the datalabel
*/
private getLabelBackground(point);
/**
* To correct the padding between datalabel regions.
*/
private correctLabelRegion(labelRegion, textSize, padding?);
/**
* To get the dataLabel module name
*/
protected getModuleName(): string;
/**
* To destroy the data label.
* @return {void}
* @private
*/
destroy(accumulation: AccumulationChart): void;
}

@@ -16,9 +16,9 @@ var __extends = (this && this.__extends) || (function () {

__extends(AccumulationDataLabel, _super);
function AccumulationDataLabel(pie) {
function AccumulationDataLabel(accumulation) {
var _this = _super.call(this) || this;
_this.pie = pie;
_this.id = pie.element.id + '_datalabel_Series_';
if (pie.title) {
var titleSize = helper_2.measureText(pie.title, pie.titleStyle);
_this.titleRect = new helper_1.Rect(pie.availableSize.width / 2 - titleSize.width / 2, pie.margin.top, titleSize.width, titleSize.height);
_this.accumulation = accumulation;
_this.id = accumulation.element.id + '_datalabel_Series_';
if (accumulation.title) {
var titleSize = helper_2.measureText(accumulation.title, accumulation.titleStyle);
_this.titleRect = new helper_1.Rect(accumulation.availableSize.width / 2 - titleSize.width / 2, accumulation.margin.top, titleSize.width, titleSize.height);
}

@@ -31,3 +31,3 @@ return _this;

point.labelPosition = dataLabel.position;
if (this.pie.enableSmartLabels) {
if (this.accumulation.enableSmartLabels) {
this.getSmartLabel(point, midAngle, dataLabel, textSize, points, parent, id);

@@ -78,4 +78,4 @@ }

}
if (this.pie.accumulationLegendModule && point.labelVisible && point.labelRegion) {
this.textTrimming(point, this.pie.accumulationLegendModule.legendBounds, dataLabel.font, this.pie.accumulationLegendModule.position);
if (this.accumulation.accumulationLegendModule && point.labelVisible && point.labelRegion) {
this.textTrimming(point, this.accumulation.accumulationLegendModule.legendBounds, dataLabel.font, this.accumulation.accumulationLegendModule.position);
}

@@ -115,5 +115,10 @@ if (point.labelVisible && point.labelRegion) {

AccumulationDataLabel.prototype.showText = function (event, seriesIndex, pointIndex, x, y) {
var point = acc_base_1.getSeriesFromIndex(seriesIndex, this.pie.visibleSeries).points[pointIndex];
var point = acc_base_1.getSeriesFromIndex(seriesIndex, this.accumulation.visibleSeries).points[pointIndex];
var id = 'EJ2_datalabel_tooltip';
var tooltip = document.getElementById(id);
var width = helper_2.measureText(point.text || point.y.toString(), {
fontFamily: 'Segoe UI', size: '12px',
fontStyle: 'Normal', fontWeight: 'Regular'
}).width + 5;
x = (x + width > this.areaRect.width) ? x - width : x;
if (!tooltip) {

@@ -125,3 +130,3 @@ tooltip = ej2_base_1.createElement('div', {

'position:fixed;border:1px solid rgb(112, 112, 112); padding-left : 3px; padding-right : 2px;' +
'padding-bottom : 2px; font-size:12px; font-family: "Segoe UI"'
'padding-bottom : 2px; padding-top : 2px; font-size:12px; font-family: "Segoe UI"'
});

@@ -298,15 +303,15 @@ document.body.appendChild(tooltip);

AccumulationDataLabel.prototype.findAreaRect = function () {
this.areaRect = new helper_1.Rect(0, 0, this.pie.availableSize.width, this.pie.availableSize.height);
var margin = this.pie.margin;
this.areaRect = new helper_1.Rect(0, 0, this.accumulation.availableSize.width, this.accumulation.availableSize.height);
var margin = this.accumulation.margin;
helper_2.subtractThickness(this.areaRect, new helper_2.Thickness(margin.left, margin.right, margin.top, margin.bottom));
};
AccumulationDataLabel.prototype.renderDataLabel = function (point, dataLabel, parent, points, series) {
var id = this.pie.element.id + '_datalabel_Series_' + series + '_';
var datalabelGroup = this.pie.renderer.createGroup({ id: id + 'g_' + point.index });
var id = this.accumulation.element.id + '_datalabel_Series_' + series + '_';
var datalabelGroup = this.accumulation.renderer.createGroup({ id: id + 'g_' + point.index });
point.label = point.text || point.y.toString();
var argsData = {
cancel: false, name: constants_1.textRender, series: this.pie.visibleSeries[0], point: point, text: point.label, border: dataLabel.border,
color: dataLabel.fill
cancel: false, name: constants_1.textRender, series: this.accumulation.visibleSeries[0], point: point,
text: point.label, border: dataLabel.border, color: dataLabel.fill
};
this.pie.trigger(constants_1.textRender, argsData);
this.accumulation.trigger(constants_1.textRender, argsData);
point.labelVisible = !argsData.cancel;

@@ -321,10 +326,10 @@ point.text = point.label = argsData.text;

this.correctLabelRegion(point.labelRegion, textSize);
datalabelGroup.appendChild(this.pie.renderer.drawRectangle(new helper_2.RectOption(id + 'shape_' + point.index, argsData.color, argsData.border, 1, point.labelRegion, dataLabel.rx, dataLabel.ry)));
datalabelGroup.appendChild(this.accumulation.renderer.drawRectangle(new helper_2.RectOption(id + 'shape_' + point.index, argsData.color, argsData.border, 1, point.labelRegion, dataLabel.rx, dataLabel.ry)));
helper_2.textElement(new helper_1.TextOption(id + 'text_' + point.index, point.labelRegion.x + this.marginValue, point.labelRegion.y + (textSize.height * 3 / 4) + this.marginValue, 'start', point.label, '', 'auto'), dataLabel.font, dataLabel.font.color || this.getSaturatedColor(point, argsData.color), datalabelGroup);
if (this.pie.accumulationLegendModule && (dataLabel.position === 'Outside' || this.pie.enableSmartLabels)) {
this.pie.visibleSeries[0].findMaxBounds(this.pie.visibleSeries[0].labelBound, point.labelRegion);
if (this.accumulation.accumulationLegendModule && (dataLabel.position === 'Outside' || this.accumulation.enableSmartLabels)) {
this.accumulation.visibleSeries[0].findMaxBounds(this.accumulation.visibleSeries[0].labelBound, point.labelRegion);
}
if (point.labelPosition === 'Outside') {
var path = this.getConnectorPath(ej2_base_2.extend({}, point.labelRegion, null, true), point.midAngle, dataLabel.connectorStyle, null, point.labelAngle);
var pathElement = this.pie.renderer.drawPath(new helper_3.PathOption(id + 'connector_' + point.index, 'transparent', dataLabel.connectorStyle.width, dataLabel.connectorStyle.color || point.color, 1, '', path));
var pathElement = this.accumulation.renderer.drawPath(new helper_3.PathOption(id + 'connector_' + point.index, 'transparent', dataLabel.connectorStyle.width, dataLabel.connectorStyle.color || point.color, 1, '', path));
datalabelGroup.appendChild(pathElement);

@@ -349,3 +354,3 @@ }

AccumulationDataLabel.prototype.getLabelBackground = function (point) {
return point.labelPosition === 'Outside' ? this.pie.background : point.color;
return point.labelPosition === 'Outside' ? this.accumulation.background : point.color;
};

@@ -364,2 +369,4 @@ AccumulationDataLabel.prototype.correctLabelRegion = function (labelRegion, textSize, padding) {

};
AccumulationDataLabel.prototype.destroy = function (accumulation) {
};
return AccumulationDataLabel;

@@ -366,0 +373,0 @@ }(pie_base_1.PieBase));

@@ -18,7 +18,19 @@ import { AccumulationSeries } from '../model/acc-base';

getLegendOptions(chart: AccumulationChart, series: AccumulationSeries[]): void;
/** @private To find legend bounds */
/**
* To find legend bounds for accumulation chart.
* @private
*/
getLegendBounds(availableSize: Size, legendBounds: Rect, legend: LegendSettingsModel): void;
/**
* To find maximum column size for legend
*/
private getMaxColumn(columns, width, padding, rowWidth);
/**
* To find available width from legend x position.
*/
private getAvailWidth(tx, width, legendX);
/** @private */
/**
* To find legend rendering locations from legend options.
* @private
*/
getRenderPoint(legendOption: LegendOptions, start: ChartLocation, textPadding: number, prevLegend: LegendOptions, rect: Rect, count: number, firstLegend: number): void;

@@ -31,6 +43,12 @@ /**

getSmartLegendLocation(labelBound: Rect, legendBound: Rect, margin: MarginModel): void;
private getTitleRect(pie);
/**
* To get title rect.
*/
private getTitleRect(accumulation);
/**
* To get legend by index
*/
private legendByIndex(index, legendCollections);
/**
* To show the tooltip for the trimmed text in legend.
* To show or hide the legend on clicking the legend.
* @return {void}

@@ -37,0 +55,0 @@ * @private

@@ -203,8 +203,8 @@ var __extends = (this && this.__extends) || (function () {

};
AccumulationLegend.prototype.getTitleRect = function (pie) {
if (!pie.title) {
AccumulationLegend.prototype.getTitleRect = function (accumulation) {
if (!accumulation.title) {
return null;
}
var titleSize = helper_1.measureText(pie.title, pie.titleStyle);
this.titleRect = new helper_1.Rect(pie.availableSize.width / 2 - titleSize.width / 2, pie.margin.top, titleSize.width, titleSize.height);
var titleSize = helper_1.measureText(accumulation.title, accumulation.titleStyle);
this.titleRect = new helper_1.Rect(accumulation.availableSize.width / 2 - titleSize.width / 2, accumulation.margin.top, titleSize.width, titleSize.height);
};

@@ -211,0 +211,0 @@ AccumulationLegend.prototype.legendByIndex = function (index, legendCollections) {

@@ -12,28 +12,99 @@ import { AccumulationChart } from '../accumulation';

protected labelRadius: number;
protected pie: AccumulationChart;
/** @private */
findCenter(pie: AccumulationChart): void;
protected accumulation: AccumulationChart;
/**
* To find the center of the accumulation.
* @private
*/
findCenter(accumulation: AccumulationChart): void;
/**
* To initialize the property values.
* @private
*/
initProperties(chart: AccumulationChart, series: AccumulationSeries): void;
/**
* To find angles from series.
*/
private initAngles(series);
/** @private calculating data-label bound */
/**
* To calculate data-label bound
* @private
*/
defaultLabelBound(series: AccumulationSeries, visible: boolean, position: AccumulationLabelPosition): void;
/**
* To calculate series bound
* @private
*/
getSeriesBound(series: AccumulationSeries): Rect;
/**
* To get rect location size from angle
*/
private getRectFromAngle(angle);
/**
* To get path arc direction
*/
protected getPathArc(center: ChartLocation, start: number, end: number, radius: number, innerRadius: number): string;
/**
* To get pie direction
*/
protected getPiePath(center: ChartLocation, start: ChartLocation, end: ChartLocation, radius: number, clockWise: number): string;
/**
* To get doughnut direction
*/
protected getDoughnutPath(center: ChartLocation, start: ChartLocation, end: ChartLocation, radius: number, innerStart: ChartLocation, innerEnd: ChartLocation, innerRadius: number, clockWise: number): string;
getTooltipPoint(e: MouseEvent, pie: AccumulationChart, x: number, y: number): void;
/**
* To get tooltip point from mouse x, y
* @private
*/
getTooltipPoint(e: MouseEvent, accumulation: AccumulationChart, x: number, y: number): void;
/**
* To find datalabel from target element
*/
private isDataLabel(target);
/**
* To get series from index
*/
private getSeriesFromIndex(index, visibleSeries);
processExplode(pie: AccumulationChart, event: Event): void;
/**
* To process the explode on accumulation chart loading
* @private
*/
processExplode(event: Event): void;
/**
* To invoke the explode on accumulation chart loading
* @private
*/
invokeExplode(): void;
/**
* To deExplode all points in the series
*/
private deExplodeAll(index);
/** @private */
/**
* To explode point by index
* @private
*/
explodePoints(index: number, explode?: boolean): void;
/**
* To check point is exploded by id
*/
private isExplode(id);
/**
* To deExplode the point by index
*/
private deExplodeSlice(index, sliceId, center);
/**
* To translate the point elements by index and position
*/
private setTranslate(index, sliceId, position);
/**
* To translate the point element by id and position
*/
private setElementTransform(id, position);
/**
* To translate the point elements by index position
*/
private explodeSlice(index, translate, sliceId, center);
/**
* Method to start animation for pie series.
*/
protected doAnimation(slice: Element, series: AccumulationSeries): void;
}

@@ -7,13 +7,13 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "../../common/utils/helper", "../../common/model/constants", "../model/acc-base"], function (require, exports, ej2_base_1, ej2_base_2, helper_1, constants_1, acc_base_1) {

}
PieBase.prototype.findCenter = function (pie) {
this.pie = pie;
PieBase.prototype.findCenter = function (accumulation) {
this.accumulation = accumulation;
this.center = {
x: helper_1.stringToNumber('50%', pie.initialClipRect.width) + (pie.initialClipRect.x),
y: helper_1.stringToNumber('50%', pie.initialClipRect.height) + (pie.initialClipRect.y)
x: helper_1.stringToNumber('50%', accumulation.initialClipRect.width) + (accumulation.initialClipRect.x),
y: helper_1.stringToNumber('50%', accumulation.initialClipRect.height) + (accumulation.initialClipRect.y)
};
var pieRect = this.getSeriesBound(pie.visibleSeries[0]);
var pieRectCenter = new helper_1.ChartLocation(pieRect.x + pieRect.width / 2, pieRect.y + pieRect.height / 2);
this.center.x += (this.center.x - pieRectCenter.x);
this.center.y += (this.center.y - pieRectCenter.y);
this.pie.center = this.center;
var accumulationRect = this.getSeriesBound(accumulation.visibleSeries[0]);
var accumulationRectCenter = new helper_1.ChartLocation(accumulationRect.x + accumulationRect.width / 2, accumulationRect.y + accumulationRect.height / 2);
this.center.x += (this.center.x - accumulationRectCenter.x);
this.center.y += (this.center.y - accumulationRectCenter.y);
this.accumulation.center = this.center;
};

@@ -39,5 +39,5 @@ PieBase.prototype.initProperties = function (chart, series) {

PieBase.prototype.defaultLabelBound = function (series, visible, position) {
var pieBound = this.getSeriesBound(series);
series.pieBound = pieBound;
series.labelBound = new helper_1.Rect(pieBound.x, pieBound.y, pieBound.width + pieBound.x, pieBound.height + pieBound.y);
var accumulationBound = this.getSeriesBound(series);
series.accumulationBound = accumulationBound;
series.labelBound = new helper_1.Rect(accumulationBound.x, accumulationBound.y, accumulationBound.width + accumulationBound.x, accumulationBound.height + accumulationBound.y);
if (visible && position === 'Outside') {

@@ -102,6 +102,6 @@ series.labelBound = new helper_1.Rect(Infinity, Infinity, -Infinity, -Infinity);

};
PieBase.prototype.getTooltipPoint = function (e, pie, x, y) {
PieBase.prototype.getTooltipPoint = function (e, accumulation, x, y) {
var target = e.target;
target = pie.isTouch ? document.elementFromPoint(x, y) : target;
var id = target.id.split(pie.element.id + '_Series_');
target = accumulation.isTouch ? document.elementFromPoint(x, y) : target;
var id = target.id.split(accumulation.element.id + '_Series_');
if (id[1]) {

@@ -111,14 +111,14 @@ var seriesIndex = parseInt(id[1].split('_Point_')[0], 10);

if (!ej2_base_1.isNullOrUndefined(seriesIndex) && !isNaN(seriesIndex) && !ej2_base_1.isNullOrUndefined(pointIndex) && !isNaN(pointIndex)) {
var series = this.getSeriesFromIndex(seriesIndex, pie.visibleSeries);
var series = this.getSeriesFromIndex(seriesIndex, accumulation.visibleSeries);
if (series.enableTooltip) {
pie.accumulationTooltipModule.renderTooltip(series.points[pointIndex], series.index);
accumulation.accumulationTooltipModule.renderTooltip(series.points[pointIndex], series.index);
}
}
}
else if (pie.accumulationTooltipModule && pie.accumulationTooltipModule.tooltip && !this.isDataLabel(target)) {
pie.accumulationTooltipModule.tooltip.close();
else if (accumulation.accumulationTooltipModule && accumulation.accumulationTooltipModule.tooltip && !this.isDataLabel(target)) {
accumulation.accumulationTooltipModule.tooltip.close();
}
};
PieBase.prototype.isDataLabel = function (target) {
if (target.id.indexOf(this.pie.element.id + '_datalabel_Series_') > -1) {
if (target.id.indexOf(this.accumulation.element.id + '_datalabel_Series_') > -1) {
return true;

@@ -131,3 +131,3 @@ }

};
PieBase.prototype.processExplode = function (pie, event) {
PieBase.prototype.processExplode = function (event) {
if (event.target.id.indexOf('_Series_') > -1 || event.target.id.indexOf('_datalabel_') > -1) {

@@ -143,4 +143,4 @@ var pointIndex = acc_base_1.indexFinder(event.target.id).point;

PieBase.prototype.invokeExplode = function () {
if (this.pie.visibleSeries[0].explodeAll) {
for (var _i = 0, _a = this.pie.visibleSeries[0].points; _i < _a.length; _i++) {
if (this.accumulation.visibleSeries[0].explodeAll) {
for (var _i = 0, _a = this.accumulation.visibleSeries[0].points; _i < _a.length; _i++) {
var point = _a[_i];

@@ -150,8 +150,8 @@ this.explodePoints(point.index);

}
else if (!ej2_base_1.isNullOrUndefined(this.pie.visibleSeries[0].explodeIndex)) {
this.explodePoints(this.pie.visibleSeries[0].explodeIndex);
else if (!ej2_base_1.isNullOrUndefined(this.accumulation.visibleSeries[0].explodeIndex)) {
this.explodePoints(this.accumulation.visibleSeries[0].explodeIndex);
}
if (this.pie.accumulationSelectionModule && this.pie.selectionMode !== 'None' &&
this.pie.accumulationSelectionModule.selectedDataIndexes.length) {
for (var _b = 0, _c = this.pie.accumulationSelectionModule.selectedDataIndexes; _b < _c.length; _b++) {
if (this.accumulation.accumulationSelectionModule && this.accumulation.selectionMode !== 'None' &&
this.accumulation.accumulationSelectionModule.selectedDataIndexes.length) {
for (var _b = 0, _c = this.accumulation.accumulationSelectionModule.selectedDataIndexes; _b < _c.length; _b++) {
var index = _c[_b];

@@ -164,4 +164,4 @@ this.explodePoints(index.point, true);

PieBase.prototype.deExplodeAll = function (index) {
var pointId = this.pie.element.id + '_Series_0_Point_';
var points = this.pie.visibleSeries[0].points;
var pointId = this.accumulation.element.id + '_Series_0_Point_';
var points = this.accumulation.visibleSeries[0].points;
for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {

@@ -176,10 +176,10 @@ var currentPoint = points_1[_i];

if (explode === void 0) { explode = false; }
var pointId = this.pie.element.id + '_Series_0_Point_';
var pointId = this.accumulation.element.id + '_Series_0_Point_';
var translate;
var points = this.pie.visibleSeries[0].points;
var point = acc_base_1.pointByIndex(index, this.pie.visibleSeries[0].points);
var points = this.accumulation.visibleSeries[0].points;
var point = acc_base_1.pointByIndex(index, this.accumulation.visibleSeries[0].points);
if (ej2_base_1.isNullOrUndefined(point)) {
return null;
}
translate = helper_1.degreeToLocation(point.midAngle, this.pie.explodeDistance, this.center);
translate = helper_1.degreeToLocation(point.midAngle, this.accumulation.explodeDistance, this.center);
if (this.isExplode(pointId + index) || explode) {

@@ -208,4 +208,4 @@ this.explodeSlice(index, translate, pointId, this.center);

this.setElementTransform(sliceId + index, position);
if (this.pie.visibleSeries[0].dataLabel.visible) {
sliceId = this.pie.element.id + '_datalabel_Series_0_';
if (this.accumulation.visibleSeries[0].dataLabel.visible) {
sliceId = this.accumulation.element.id + '_datalabel_Series_0_';
this.setElementTransform(sliceId + 'shape_' + index, position);

@@ -230,3 +230,3 @@ this.setElementTransform(sliceId + 'text_' + index, position);

var value;
var radius = Math.max(this.pie.availableSize.height, this.pie.availableSize.width) * 0.75;
var radius = Math.max(this.accumulation.availableSize.height, this.accumulation.availableSize.width) * 0.75;
radius += radius * (0.414);

@@ -243,4 +243,4 @@ var effect = helper_1.getAnimationFunction('Linear');

slice.setAttribute('d', _this.getPathArc(_this.center, 0, 359.99999, radius, 0));
_this.pie.trigger(constants_1.animationComplete, { series: series, pie: _this.pie });
var datalabelGroup = helper_1.getElement(_this.pie.element.id + '_datalabel_Series_' + series.index);
_this.accumulation.trigger(constants_1.animationComplete, { series: series, accumulation: _this.accumulation });
var datalabelGroup = helper_1.getElement(_this.accumulation.element.id + '_datalabel_Series_' + series.index);
datalabelGroup.style.visibility = 'visible';

@@ -247,0 +247,0 @@ }

@@ -10,6 +10,26 @@ /**

export declare class PieSeries extends PieBase {
/**
* To get path option, degree, symbolLocation from the point.
* @private
*/
renderPoint(point: AccPoints, option: PathOption, sum: number): PathOption;
/**
* To get path option from the point.
*/
private getPathOption(point, degree);
animateSeries(pie: AccumulationChart, option: AnimationModel, series: AccumulationSeries, slice: Element): void;
/**
* To animate the pie series.
* @private
*/
animateSeries(accumulation: AccumulationChart, option: AnimationModel, series: AccumulationSeries, slice: Element): void;
/**
* To get the module name of the Pie series.
*/
protected getModuleName(): string;
/**
* To destroy the pie series.
* @return {void}
* @private
*/
destroy(accumulation: AccumulationChart): void;
}

@@ -32,10 +32,10 @@ var __extends = (this && this.__extends) || (function () {

};
PieSeries.prototype.animateSeries = function (pie, option, series, slice) {
var groupId = pie.element.id + 'SeriesGroup' + series.index;
if (series.animation.enable && pie.animateSeries) {
var clippath = pie.renderer.createClipPath({ id: groupId + '_clipPath' });
PieSeries.prototype.animateSeries = function (accumulation, option, series, slice) {
var groupId = accumulation.element.id + 'SeriesGroup' + series.index;
if (series.animation.enable && accumulation.animateSeries) {
var clippath = accumulation.renderer.createClipPath({ id: groupId + '_clipPath' });
var path = new helper_1.PathOption(groupId + '_slice', 'transparent', 1, 'transparent', 1, '', '');
var clipslice = pie.renderer.drawPath(path);
var clipslice = accumulation.renderer.drawPath(path);
clippath.appendChild(clipslice);
pie.svgObject.appendChild(clippath);
accumulation.svgObject.appendChild(clippath);
slice.setAttribute('style', 'clip-path:url(#' + clippath.id + ')');

@@ -48,2 +48,4 @@ this.doAnimation(clipslice, series);

};
PieSeries.prototype.destroy = function (accumulation) {
};
return PieSeries;

@@ -50,0 +52,0 @@ }(pie_base_1.PieBase));

@@ -16,5 +16,8 @@ import { Rect } from '../../common/utils/helper';

private series;
constructor(pie: AccumulationChart);
private initPrivateVariables(pie);
constructor(accumulation: AccumulationChart);
/**
* To initialize the private variables
*/
private initPrivateVariables(accumulation);
/**
* Method to select the point and series.

@@ -24,21 +27,81 @@ * @return {void}

*/
invokeSelection(pie: AccumulationChart): void;
invokeSelection(accumulation: AccumulationChart): void;
/**
* To get series selection style by series.
*/
private generateStyle(series);
private findElements(pie, series, index);
/**
* To get elements by index, series
*/
private findElements(accumulation, series, index);
/**
* To get series point element by index
*/
private getElementByIndex(index);
calculateSelectedElements(pie: AccumulationChart, event: Event): void;
private performSelection(index, pie, element?);
private selection(pie, index, selectedElements);
redrawSelection(pie: AccumulationChart, oldMode: AccumulationSelectionMode): void;
private removeSelectedElements(pie, indexes);
legendSelection(pie: AccumulationChart, series: number, pointIndex: number): void;
private selectDataIndex(indexes, pie);
private removeMultiSelectEelments(pie, index, currentIndex, seriesCollection);
/**
* To calculate selected elements on mouse click or touch
* @private
*/
calculateSelectedElements(accumulation: AccumulationChart, event: Event): void;
/**
* To perform the selection process based on index and element.
*/
private performSelection(index, accumulation, element?);
/**
* To select the element by index. Adding or removing selection style class name.
*/
private selection(accumulation, index, selectedElements);
/**
* To redraw the selection process on accumulation chart refresh.
* @private
*/
redrawSelection(accumulation: AccumulationChart, oldMode: AccumulationSelectionMode): void;
/**
* To remove the selected elements style classes by indexes.
*/
private removeSelectedElements(accumulation, indexes);
/**
* To perform the selection for legend elements.
* @private
*/
legendSelection(accumulation: AccumulationChart, series: number, pointIndex: number): void;
/**
* To select the element by selected data indexes.
*/
private selectDataIndex(indexes, accumulation);
/**
* To remove the selection styles for multi selection process.
*/
private removeMultiSelectEelments(accumulation, index, currentIndex, seriesCollection);
/**
* To apply the opacity effect for accumulation chart series elements.
*/
private blurEffect(pieId, visibleSeries);
/**
* To check selection elements by style class name.
*/
private checkSelectionElements(element, className, visibility);
/**
* To apply selection style for elements.
*/
private applyStyles(elements, index);
/**
* To get selection style class name by id
*/
private getSelectionClass(id);
/**
* To remove selection style for elements.
*/
private removeStyles(elements, index);
/**
* To apply or remove selected elements index.
*/
private addOrRemoveIndex(indexes, index, add?);
/**
* To check two index, point and series are equal
*/
private checkEquals(first, second);
/**
* To check selected points are visibility
*/
private checkPointVisibility(selectedDataIndexes);

@@ -54,3 +117,3 @@ /**

*/
destroy(pie: AccumulationChart): void;
destroy(accumulation: AccumulationChart): void;
}

@@ -16,18 +16,18 @@ var __extends = (this && this.__extends) || (function () {

__extends(AccumulationSelection, _super);
function AccumulationSelection(pie) {
var _this = _super.call(this, pie) || this;
_this.renderer = pie.renderer;
function AccumulationSelection(accumulation) {
var _this = _super.call(this, accumulation) || this;
_this.renderer = accumulation.renderer;
return _this;
}
AccumulationSelection.prototype.initPrivateVariables = function (pie) {
this.styleId = pie.element.id + '_ej2_chart_selection';
this.unselected = pie.element.id + '_ej2_deselected';
AccumulationSelection.prototype.initPrivateVariables = function (accumulation) {
this.styleId = accumulation.element.id + '_ej2_chart_selection';
this.unselected = accumulation.element.id + '_ej2_deselected';
this.selectedDataIndexes = [];
this.rectPoints = null;
};
AccumulationSelection.prototype.invokeSelection = function (pie) {
this.initPrivateVariables(pie);
this.series = ej2_base_1.extend({}, pie.visibleSeries, null, true);
AccumulationSelection.prototype.invokeSelection = function (accumulation) {
this.initPrivateVariables(accumulation);
this.series = ej2_base_1.extend({}, accumulation.visibleSeries, null, true);
this.seriesStyles();
this.selectDataIndex(this.concatIndexes(pie.selectedDataIndexes, this.selectedDataIndexes), pie);
this.selectDataIndex(this.concatIndexes(accumulation.selectedDataIndexes, this.selectedDataIndexes), accumulation);
};

@@ -37,3 +37,3 @@ AccumulationSelection.prototype.generateStyle = function (series) {

};
AccumulationSelection.prototype.findElements = function (pie, series, index) {
AccumulationSelection.prototype.findElements = function (accumulation, series, index) {
return [this.getElementByIndex(index)];

@@ -45,15 +45,16 @@ };

};
AccumulationSelection.prototype.calculateSelectedElements = function (pie, event) {
AccumulationSelection.prototype.calculateSelectedElements = function (accumulation, event) {
if (event.target.id.indexOf('_Series_') > -1 || event.target.id.indexOf('_datalabel_') > -1) {
this.performSelection(acc_base_1.indexFinder(event.target.id), pie, event.target);
this.performSelection(acc_base_1.indexFinder(event.target.id), accumulation, event.target);
}
};
AccumulationSelection.prototype.performSelection = function (index, pie, element) {
element = element.id.indexOf('datalabel') > -1 ? pie.getSeriesElement().childNodes[index.series].childNodes[index.point]
AccumulationSelection.prototype.performSelection = function (index, accumulation, element) {
element = element.id.indexOf('datalabel') > -1 ?
accumulation.getSeriesElement().childNodes[index.series].childNodes[index.point]
: element;
switch (pie.selectionMode) {
switch (accumulation.selectionMode) {
case 'Point':
if (!isNaN(index.point)) {
this.selection(pie, index, [element]);
this.blurEffect(pie.element.id, pie.visibleSeries);
this.selection(accumulation, index, [element]);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
}

@@ -63,5 +64,5 @@ break;

};
AccumulationSelection.prototype.selection = function (pie, index, selectedElements) {
if (!pie.isMultiSelect) {
this.removeMultiSelectEelments(pie, this.selectedDataIndexes, index, pie.series);
AccumulationSelection.prototype.selection = function (accumulation, index, selectedElements) {
if (!accumulation.isMultiSelect) {
this.removeMultiSelectEelments(accumulation, this.selectedDataIndexes, index, accumulation.series);
}

@@ -78,10 +79,10 @@ var className = selectedElements[0] && (selectedElements[0].getAttribute('class') || '');

};
AccumulationSelection.prototype.redrawSelection = function (pie, oldMode) {
AccumulationSelection.prototype.redrawSelection = function (accumulation, oldMode) {
var selectedDataIndexes = ej2_base_1.extend([], this.selectedDataIndexes, null, true);
this.removeSelectedElements(pie, this.selectedDataIndexes);
this.blurEffect(pie.element.id, pie.visibleSeries);
this.selectDataIndex(selectedDataIndexes, pie);
this.removeSelectedElements(accumulation, this.selectedDataIndexes);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
this.selectDataIndex(selectedDataIndexes, accumulation);
};
AccumulationSelection.prototype.removeSelectedElements = function (pie, indexes) {
var seriesgroup = pie.getSeriesElement();
AccumulationSelection.prototype.removeSelectedElements = function (accumulation, indexes) {
var seriesgroup = accumulation.getSeriesElement();
for (var _i = 0, indexes_1 = indexes; _i < indexes_1.length; _i++) {

@@ -92,10 +93,10 @@ var index = indexes_1[_i];

};
AccumulationSelection.prototype.legendSelection = function (pie, series, pointIndex) {
var element = pie.getSeriesElement().childNodes[series].childNodes[pointIndex];
var seriesStyle = this.generateStyle(pie.visibleSeries[series]);
var seriesElements = pie.getSeriesElement().childNodes[series].childNodes[pointIndex];
this.selection(pie, new base_1.Index(series, pointIndex), [seriesElements]);
this.blurEffect(pie.element.id, pie.visibleSeries);
AccumulationSelection.prototype.legendSelection = function (accumulation, series, pointIndex) {
var element = accumulation.getSeriesElement().childNodes[series].childNodes[pointIndex];
var seriesStyle = this.generateStyle(accumulation.visibleSeries[series]);
var seriesElements = accumulation.getSeriesElement().childNodes[series].childNodes[pointIndex];
this.selection(accumulation, new base_1.Index(series, pointIndex), [seriesElements]);
this.blurEffect(accumulation.element.id, accumulation.visibleSeries);
};
AccumulationSelection.prototype.selectDataIndex = function (indexes, pie) {
AccumulationSelection.prototype.selectDataIndex = function (indexes, accumulation) {
var element;

@@ -106,7 +107,7 @@ for (var _i = 0, indexes_2 = indexes; _i < indexes_2.length; _i++) {

if (element) {
this.performSelection(index, pie, element);
this.performSelection(index, accumulation, element);
}
}
};
AccumulationSelection.prototype.removeMultiSelectEelments = function (pie, index, currentIndex, seriesCollection) {
AccumulationSelection.prototype.removeMultiSelectEelments = function (accumulation, index, currentIndex, seriesCollection) {
var series;

@@ -116,3 +117,3 @@ for (var i = 0; i < index.length; i++) {

if (!this.checkEquals(index[i], currentIndex)) {
this.removeStyles(this.findElements(pie, series, index[i]), index[i]);
this.removeStyles(this.findElements(accumulation, series, index[i]), index[i]);
index.splice(i, 1);

@@ -219,3 +220,3 @@ i--;

};
AccumulationSelection.prototype.destroy = function (pie) {
AccumulationSelection.prototype.destroy = function (accumulation) {
};

@@ -222,0 +223,0 @@ return AccumulationSelection;

@@ -5,3 +5,3 @@ import { Tooltip } from '@syncfusion/ej2-popups';

export declare class AccumulationTooltip {
pie: AccumulationChart;
accumulation: AccumulationChart;
private templateFn;

@@ -14,12 +14,42 @@ tooltip: Tooltip;

private clearTooltip;
constructor(pie: AccumulationChart);
constructor(accumulation: AccumulationChart);
/**
* To set template function for toooltip
*/
private setTemplateFunction(template);
/**
* To render the tooltip for the point
* @private
*/
renderTooltip(point: AccPoints, seriesIndex: number): void;
/**
* To remove accumulation chart tooltip with animation
* @private
*/
fadeOutTooltip(): void;
/**
* To remove accumulation chart tooltip element
* @private
*/
removeTooltip(): void;
/**
* To get accumulation chart point tooltip content
*/
private getTooltipContent(point, seriesIndex);
/**
* To customize the accumulation chart tooltip
*/
private tooltipCustomization(args);
/** @private */
/**
* To update the tooltip element position
* @private
*/
updatePosition(id: string, x: number, y: number, pointId: string): void;
/**
* To get accumulation chart tooltip text from format.
*/
private getTooltipText(point, tooltip, seriesIndex);
/**
* To parse the tooltip template
*/
private parseTemplate(point, format, series);

@@ -26,0 +56,0 @@ /**

@@ -5,6 +5,6 @@ define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-base", "@syncfusion/ej2-popups", "../model/acc-base", "../../common/utils/helper", "../../common/model/constants"], function (require, exports, ej2_base_1, ej2_base_2, ej2_base_3, ej2_popups_1, acc_base_1, helper_1, constants_1) {

var AccumulationTooltip = (function () {
function AccumulationTooltip(pie) {
this.pie = pie;
this.tooltipOption = pie.tooltip;
this.targetId = pie.element.id + '_pie_tooltip';
function AccumulationTooltip(accumulation) {
this.accumulation = accumulation;
this.tooltipOption = accumulation.tooltip;
this.targetId = accumulation.element.id + '_pie_tooltip';
var targetElement = ej2_base_2.createElement('div', {

@@ -14,3 +14,3 @@ id: this.targetId,

});
pie.element.appendChild(targetElement);
accumulation.element.appendChild(targetElement);
this.tooltip = new ej2_popups_1.Tooltip({

@@ -22,3 +22,3 @@ opensOn: 'custom',

});
this.tooltip.appendTo(pie.element);
this.tooltip.appendTo(accumulation.element);
}

@@ -40,4 +40,3 @@ AccumulationTooltip.prototype.setTemplateFunction = function (template) {

this.tooltipIndex !== 'series_' + seriesIndex + '_point_' + point.index) {
this.updatePosition(this.targetId, point.symbolLocation.x, point.symbolLocation.y, this.pie.element.id + '_Series_0_Point_' +
point.index);
this.updatePosition(this.targetId, point.symbolLocation.x, point.symbolLocation.y, this.accumulation.element.id + '_Series_0_Point_' + point.index);
this.setTemplateFunction(this.tooltipOption.template);

@@ -78,6 +77,6 @@ this.currentPoint = point;

textStyle: this.tooltipOption.textStyle,
series: this.pie.visibleSeries[0],
series: this.accumulation.visibleSeries[0],
point: this.currentPoint
};
this.pie.trigger(constants_1.tooltipRender, argsData);
this.accumulation.trigger(constants_1.tooltipRender, argsData);
args.cancel = argsData.cancel;

@@ -141,3 +140,3 @@ this.tooltip.content = argsData.content;

var format = tooltip.format ? tooltip.format : '${point.x} : ${point.y}';
var series = acc_base_1.getSeriesFromIndex(seriesIndex, this.pie.visibleSeries);
var series = acc_base_1.getSeriesFromIndex(seriesIndex, this.accumulation.visibleSeries);
return this.parseTemplate(point, format, series);

@@ -144,0 +143,0 @@ };

@@ -124,3 +124,3 @@ define(["require", "exports", "../../common/utils/helper", "../utils/double-range", "../../common/utils/helper"], function (require, exports, helper_1, double_range_1, helper_2) {

axis.actualRange.max = axis.maximum != null ? axis.maximum : maximum;
axis.actualRange.interval = interval;
axis.actualRange.interval = axis.interval != null ? axis.interval : interval;
};

@@ -127,0 +127,0 @@ Double.prototype.findAdditional = function (axis, start, end, interval) {

@@ -1,2 +0,2 @@

import { Component, Property, NotifyPropertyChanges, Internationalization, ModuleDeclaration } from '@syncfusion/ej2-base';import { TapEventArgs, EmitType, ChildProperty } from '@syncfusion/ej2-base';import { remove } from '@syncfusion/ej2-base';import { extend } from '@syncfusion/ej2-base';import { INotifyPropertyChanged, SvgRenderer, setCulture, Browser, Touch } from '@syncfusion/ej2-base';import { Event, EventHandler, Complex, Collection } from '@syncfusion/ej2-base';import { findClipRect, measureText, TextOption, findPosition } from '../common/utils/helper';import { textElement, withInBounds, RectOption, ChartLocation, createSvg, PointData } from '../common/utils/helper';import { MarginModel, BorderModel, ChartAreaModel, FontModel } from '../common/model/base-model';import { getSeriesColor, Theme } from '../common/model/theme';import { IndexesModel } from '../common/model/base-model';import { Margin, Border, ChartArea, Font, Indexes } from '../common/model/base';import { AxisModel, RowModel, ColumnModel } from './axis/axis-model';import { Row, Column, Axis } from './axis/axis';import { CartesianAxisLayoutPanel } from './axis/cartesian-panel';import { DateTime } from './axis/date-time-axis';import { Category } from './axis/category-axis';import { Logarithmic } from './axis/logarithmic-axis';import { Size, Rect } from '../common/utils/helper';import { SelectionMode, LineType, ZoomMode, ToolbarItems, ChartTheme } from './utils/enum';import { Series } from './series/chart-series';import { SeriesModel } from './series/chart-series-model';import { Data } from '../common/model/data';import { LineSeries } from './series/line-series';import { AreaSeries } from './series/area-series';import { BarSeries } from './series/bar-series';import { StepLineSeries } from './series/step-line-series';import { ColumnSeries } from './series/column-series';import { StackingColumnSeries } from './series/stacking-column-series';import { StackingBarSeries } from './series/stacking-bar-series';import { StackingAreaSeries } from './series/stacking-area-series';import { ScatterSeries } from './series/scatter-series';import { SplineSeries } from './series/spline-series';import { RangeColumnSeries } from'./series/range-column-series';import { BubbleSeries } from './series/bubble-series';import { Tooltip } from './user-interaction/tooltip';import { Crosshair } from './user-interaction/crosshair';import { Marker } from './series/marker';import { LegendSettings } from '../common/legend/legend';import { LegendSettingsModel } from '../common/legend/legend-model';import { Legend } from './legend/legend';import { Zoom } from './user-interaction/zooming';import { Selection } from './user-interaction/selection';import { DataLabel } from './series/data-label';import { ITouches, ILegendRenderEventArgs, IAxisLabelRenderEventArgs, ITextRenderEventArgs } from '../common/model/interface';import { IPointRenderEventArgs, ISeriesRenderEventArgs, IDragCompleteEventArgs, ITooltipRenderEventArgs } from '../common/model/interface';import { IZoomCompleteEventArgs, ILoadedEventArgs, IAnimationCompleteEventArgs, IMouseEventArgs } from '../common/model/interface';import { loaded, chartMouseClick, chartMouseLeave, chartMouseDown, chartMouseMove, chartMouseUp, load } from '../common/model/constants';
import { Component, Property, NotifyPropertyChanges, Internationalization, ModuleDeclaration } from '@syncfusion/ej2-base';import { TapEventArgs, EmitType, ChildProperty } from '@syncfusion/ej2-base';import { remove } from '@syncfusion/ej2-base';import { extend } from '@syncfusion/ej2-base';import { INotifyPropertyChanged, SvgRenderer, setCulture, Browser, Touch } from '@syncfusion/ej2-base';import { Event, EventHandler, Complex, Collection } from '@syncfusion/ej2-base';import { findClipRect, measureText, TextOption, findPosition } from '../common/utils/helper';import { textElement, withInBounds, RectOption, ChartLocation, createSvg, PointData } from '../common/utils/helper';import { MarginModel, BorderModel, ChartAreaModel, FontModel } from '../common/model/base-model';import { getSeriesColor, Theme } from '../common/model/theme';import { IndexesModel } from '../common/model/base-model';import { Margin, Border, ChartArea, Font, Indexes } from '../common/model/base';import { AxisModel, RowModel, ColumnModel } from './axis/axis-model';import { Row, Column, Axis } from './axis/axis';import { CartesianAxisLayoutPanel } from './axis/cartesian-panel';import { DateTime } from './axis/date-time-axis';import { Category } from './axis/category-axis';import { Logarithmic } from './axis/logarithmic-axis';import { Size, Rect } from '../common/utils/helper';import { SelectionMode, LineType, ZoomMode, ToolbarItems, ChartTheme } from './utils/enum';import { Series } from './series/chart-series';import { SeriesModel } from './series/chart-series-model';import { Data } from '../common/model/data';import { LineSeries } from './series/line-series';import { AreaSeries } from './series/area-series';import { BarSeries } from './series/bar-series';import { StepLineSeries } from './series/step-line-series';import { StepAreaSeries } from './series/step-area-series';import { ColumnSeries } from './series/column-series';import { StackingColumnSeries } from './series/stacking-column-series';import { StackingBarSeries } from './series/stacking-bar-series';import { StackingAreaSeries } from './series/stacking-area-series';import { ScatterSeries } from './series/scatter-series';import { SplineSeries } from './series/spline-series';import { RangeColumnSeries } from'./series/range-column-series';import { BubbleSeries } from './series/bubble-series';import { Tooltip } from './user-interaction/tooltip';import { Crosshair } from './user-interaction/crosshair';import { Marker } from './series/marker';import { LegendSettings } from '../common/legend/legend';import { LegendSettingsModel } from '../common/legend/legend-model';import { Legend } from './legend/legend';import { Zoom } from './user-interaction/zooming';import { Selection } from './user-interaction/selection';import { DataLabel } from './series/data-label';import { ITouches, ILegendRenderEventArgs, IAxisLabelRenderEventArgs, ITextRenderEventArgs } from '../common/model/interface';import { IPointRenderEventArgs, ISeriesRenderEventArgs, IDragCompleteEventArgs, ITooltipRenderEventArgs } from '../common/model/interface';import { IZoomCompleteEventArgs, ILoadedEventArgs, IAnimationCompleteEventArgs, IMouseEventArgs } from '../common/model/interface';import { loaded, chartMouseClick, chartMouseLeave, chartMouseDown, chartMouseMove, chartMouseUp, load } from '../common/model/constants';
import {ComponentModel} from '@syncfusion/ej2-base';

@@ -3,0 +3,0 @@

@@ -22,2 +22,3 @@ import { Component, Internationalization, ModuleDeclaration } from '@syncfusion/ej2-base';

import { StepLineSeries } from './series/step-line-series';
import { StepAreaSeries } from './series/step-area-series';
import { ColumnSeries } from './series/column-series';

@@ -222,2 +223,6 @@ import { StackingColumnSeries } from './series/stacking-column-series';

/**
* `stepAreaSeriesModule` is used to add step area series in the chart.
*/
stepAreaSeriesModule: StepAreaSeries;
/**
* `splineSeriesModule` is used to add spline series in the chart.

@@ -224,0 +229,0 @@ */

@@ -18,2 +18,3 @@ /**

export * from './series/step-line-series';
export * from './series/step-area-series';
export * from './series/stacking-area-series';

@@ -20,0 +21,0 @@ export * from './series/scatter-series';

@@ -1,2 +0,2 @@

define(["require", "exports", "./chart", "./axis/axis", "./axis/date-time-axis", "./axis/category-axis", "./axis/logarithmic-axis", "../common/model/base", "./series/line-series", "./series/column-series", "./series/area-series", "./series/bar-series", "./series/stacking-bar-series", "./series/stacking-column-series", "./series/step-line-series", "./series/stacking-area-series", "./series/scatter-series", "./series/range-column-series", "./series/bubble-series", "./series/spline-series", "./series/marker", "../common/utils/helper", "./user-interaction/crosshair", "./user-interaction/tooltip", "./user-interaction/zooming", "./user-interaction/selection", "./series/data-label", "./series/chart-series", "./legend/legend"], function (require, exports, chart_1, axis_1, date_time_axis_1, category_axis_1, logarithmic_axis_1, base_1, line_series_1, column_series_1, area_series_1, bar_series_1, stacking_bar_series_1, stacking_column_series_1, step_line_series_1, stacking_area_series_1, scatter_series_1, range_column_series_1, bubble_series_1, spline_series_1, marker_1, helper_1, crosshair_1, tooltip_1, zooming_1, selection_1, data_label_1, chart_series_1, legend_1) {
define(["require", "exports", "./chart", "./axis/axis", "./axis/date-time-axis", "./axis/category-axis", "./axis/logarithmic-axis", "../common/model/base", "./series/line-series", "./series/column-series", "./series/area-series", "./series/bar-series", "./series/stacking-bar-series", "./series/stacking-column-series", "./series/step-line-series", "./series/step-area-series", "./series/stacking-area-series", "./series/scatter-series", "./series/range-column-series", "./series/bubble-series", "./series/spline-series", "./series/marker", "../common/utils/helper", "./user-interaction/crosshair", "./user-interaction/tooltip", "./user-interaction/zooming", "./user-interaction/selection", "./series/data-label", "./series/chart-series", "./legend/legend"], function (require, exports, chart_1, axis_1, date_time_axis_1, category_axis_1, logarithmic_axis_1, base_1, line_series_1, column_series_1, area_series_1, bar_series_1, stacking_bar_series_1, stacking_column_series_1, step_line_series_1, step_area_series_1, stacking_area_series_1, scatter_series_1, range_column_series_1, bubble_series_1, spline_series_1, marker_1, helper_1, crosshair_1, tooltip_1, zooming_1, selection_1, data_label_1, chart_series_1, legend_1) {
"use strict";

@@ -20,2 +20,3 @@ function __export(m) {

__export(step_line_series_1);
__export(step_area_series_1);
__export(stacking_area_series_1);

@@ -22,0 +23,0 @@ __export(scatter_series_1);

@@ -46,2 +46,3 @@ /**

* * stepLine - Renders the step line series.
* * stepArea - Renders the step area series.
* * scatter - Renders the scatter series.

@@ -51,3 +52,3 @@ * * spline - Renders the spline series

*/
export declare type ChartSeriesType = 'Line' | 'Column' | 'Area' | 'Bar' | 'StackingColumn' | 'StackingArea' | 'StackingBar' | 'StepLine' | 'Scatter' | 'Spline' | 'StackingColumn100' | 'StackingBar100' | 'StackingArea100' | 'RangeColumn' | 'Bubble';
export declare type ChartSeriesType = 'Line' | 'Column' | 'Area' | 'Bar' | 'StackingColumn' | 'StackingArea' | 'StackingBar' | 'StepLine' | 'StepArea' | 'Scatter' | 'Spline' | 'StackingColumn100' | 'StackingBar100' | 'StackingArea100' | 'RangeColumn' | 'Bubble';
/**

@@ -54,0 +55,0 @@ * Defines the Edge Label Placement for an axis. They are

@@ -181,5 +181,17 @@ import { ChildProperty } from '@syncfusion/ej2-base';

calculateLegendBounds(rect: Rect, availableSize: Size): void;
/**
* To find legend position based on available size for chart and accumulation chart
*/
private getPosition(position, availableSize);
/**
* To set bounds for chart and accumulation chart
*/
protected setBounds(computedWidth: number, computedHeight: number, legend: LegendSettingsModel, legendBounds: Rect): void;
/**
* To find legend location based on position, alignment for chart and accumulation chart
*/
private getLocation(position, alignment, legendBounds, rect, availableSize);
/**
* To find legend alignment for chart and accumulation chart
*/
private alignLegend(start, size, legendSize, alignment);

@@ -192,19 +204,52 @@ /**

renderLegend(chart: Chart | AccumulationChart, legend: LegendSettingsModel, legendBounds: Rect): void;
/**
* To find first valid legend text index for chart and accumulation chart
*/
private findFirstLegendPosition(legendCollection);
/**
* To create legend rendering elements for chart and accumulation chart
*/
private createLegendElements(chart, legendBounds, legendGroup, legend, id);
/**
* To render legend symbols for chart and accumulation chart
*/
private renderSymbol(legendOption, group, i);
/**
* To render legend text for chart and accumulation chart
*/
private renderText(chart, legendOption, group, textOptions, i);
/**
* To render legend paging elements for chart and accumulation chart
*/
private renderPagingElements(chart, bounds, textOption, legendGroup);
/**
* To translate legend pages for chart and accumulation chart
*/
protected translatePage(pagingText: Element, page: number, pageNumber: number): void;
/**
* To change legend pages for chart and accumulation chart
*/
protected changePage(event: Event, pageUp: boolean): void;
/** @private */
/**
* To find legend elements id based on chart or accumulation chart
* @private
*/
generateId(option: LegendOptions, prefix: string, count: number): string;
/** @private */
/**
* To show the trimmed text of legend for chart and accumulation chart
* @private
*/
showText(text: string, x: number, y: number): void;
/** @private */
/**
* To hide trimmed text tooltip for legend
* @private
*/
fadeOutTooltip(): void;
/** @private */
/**
* To remove trimmed text tooltip for legend
* @private
*/
removeTooltip(): void;
/**
* To change the pages of the legend.
* To show or hide trimmed text tooltip for legend.
* @return {void}

@@ -215,3 +260,6 @@ * @private

}
/** @private */
/**
* Class for legend options
* @private
*/
export declare class LegendOptions {

@@ -218,0 +266,0 @@ render: boolean;

@@ -14,3 +14,9 @@ import { Indexes } from '../../common/model/base';

constructor(control: Chart | AccumulationChart);
/**
* To create selection styles for series
*/
protected seriesStyles(): void;
/**
* To concat indexes
*/
protected concatIndexes(userIndexes: IndexesModel[], localIndexes: Indexes[]): Indexes[];

@@ -21,5 +27,16 @@ /**

protected checkVisibility(selectedIndexes: Indexes[]): boolean;
/**
* To add svg element style class
* @private
*/
addSvgClass(element: Element, className: string): void;
/**
* To remove svg element style class
* @private
*/
removeSvgClass(element: Element, className: string): void;
/**
* To get children from parent element
*/
protected getChildren(parent: Element): Element[];
}

@@ -369,2 +369,3 @@ var __extends = (this && this.__extends) || (function () {

case 'Rectangle':
case 'StepArea':
path = 'M' + ' ' + x + ' ' + (locY + (-height / 2)) + ' ' +

@@ -371,0 +372,0 @@ 'L' + ' ' + (locX + (width / 2)) + ' ' + (locY + (-height / 2)) + ' ' +

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc