@devexpress/dx-chart-core
Advanced tools
Comparing version 1.10.0 to 1.10.1
/** | ||
* Bundle of @devexpress/dx-chart-core | ||
* Generated: 2018-12-25 | ||
* Version: 1.10.0 | ||
* Generated: 2019-02-06 | ||
* Version: 1.10.1 | ||
* License: https://js.devexpress.com/Licensing | ||
@@ -9,4 +9,4 @@ */ | ||
import { extent } from 'd3-array'; | ||
import { scaleLinear, scaleBand, scaleOrdinal } from 'd3-scale'; | ||
import { area, line, curveMonotoneX, pie, arc, symbol, symbolCircle, stack } from 'd3-shape'; | ||
import { scaleLinear, scaleBand } from 'd3-scale'; | ||
import { area, line, curveMonotoneX, pie, symbol, symbolCircle, arc, stack } from 'd3-shape'; | ||
@@ -388,3 +388,2 @@ function _defineProperty(obj, key, value) { | ||
var DEFAULT_POINT_SIZE = 7; | ||
var dArea = area().x(getX).y1(getY).y0(getY1); | ||
@@ -396,16 +395,9 @@ var dLine = line().x(getX).y(getY); | ||
valueScale = _ref4.valueScale, | ||
points = _ref4.points, | ||
innerRadius = _ref4.innerRadius, | ||
outerRadius = _ref4.outerRadius, | ||
palette = _ref4.palette; | ||
points = _ref4.points; | ||
var x = Math.max.apply(Math, _toConsumableArray(argumentScale.range())) / 2; | ||
var y = Math.max.apply(Math, _toConsumableArray(valueScale.range())) / 2; | ||
var radius = Math.min(x, y); | ||
var maxRadius = Math.min(x, y); | ||
var pieData = pie().sort(null).value(function (d) { | ||
return d.value; | ||
})(points); | ||
var inner = innerRadius * radius; | ||
var outer = outerRadius * radius; | ||
var gen = arc().innerRadius(inner).outerRadius(outer); | ||
var colorScale = scaleOrdinal().range(palette); | ||
return function (point) { | ||
@@ -416,11 +408,7 @@ var _pieData$point$index = pieData[point.index], | ||
return _objectSpread({}, point, { | ||
// TODO: It should be calculated in *pointComponent*. | ||
d: gen.startAngle(startAngle).endAngle(endAngle)(), | ||
color: point.color || colorScale(point.index), | ||
x: x, | ||
y: y, | ||
innerRadius: inner, | ||
outerRadius: outer, | ||
startAngle: startAngle, | ||
endAngle: endAngle | ||
endAngle: endAngle, | ||
maxRadius: maxRadius | ||
}); | ||
@@ -440,2 +428,3 @@ }; | ||
}; | ||
var getScatterPointTransformer = getLinePointTransformer; | ||
var getAreaPointTransformer = function getAreaPointTransformer(series) { | ||
@@ -454,14 +443,11 @@ var transform = getLinePointTransformer(series); | ||
var argumentScale = _ref6.argumentScale, | ||
valueScale = _ref6.valueScale, | ||
barWidth = _ref6.barWidth; | ||
valueScale = _ref6.valueScale; | ||
var y1 = valueScale(0); | ||
var categoryWidth = getWidth(argumentScale); | ||
var offset = categoryWidth * (1 - barWidth) / 2; | ||
var width = categoryWidth * barWidth; | ||
var fixedArgumentScale = fixOffset(argumentScale); | ||
return function (point) { | ||
return _objectSpread({}, point, { | ||
x: argumentScale(point.argument) + offset, | ||
x: fixedArgumentScale(point.argument), | ||
y: valueScale(point.value), | ||
y1: y1, | ||
width: width | ||
maxBarWidth: getWidth(argumentScale) | ||
}); | ||
@@ -474,2 +460,7 @@ }; | ||
getBarPointTransformer.isBroad = true; | ||
getPiePointTransformer.getPointColor = function (palette, index) { | ||
return palette[index % palette.length]; | ||
}; | ||
var findSeriesByName = function findSeriesByName(name, series) { | ||
@@ -486,3 +477,3 @@ return series.find(function (seriesItem) { | ||
return { | ||
x: x, | ||
x: x - width / 2, | ||
y: Math.min(y, y1), | ||
@@ -493,24 +484,25 @@ width: width || 2, | ||
}; | ||
var pointAttributes = function pointAttributes(_ref8) { | ||
var _ref8$size = _ref8.size, | ||
size = _ref8$size === void 0 ? DEFAULT_POINT_SIZE : _ref8$size; | ||
var dPoint = symbol().size([Math.pow(size, 2)]).type(symbolCircle)(); | ||
return function (item) { | ||
return { | ||
// TODO: It should be calculated in *pointComponent*. | ||
d: dPoint, | ||
x: item.x, | ||
y: item.y | ||
}; | ||
}; | ||
var dSymbol = function dSymbol(_ref8) { | ||
var size = _ref8.size; | ||
return symbol().size([Math.pow(size, 2)]).type(symbolCircle)(); | ||
}; | ||
var dPie = function dPie(_ref9) { | ||
var maxRadius = _ref9.maxRadius, | ||
innerRadius = _ref9.innerRadius, | ||
outerRadius = _ref9.outerRadius, | ||
startAngle = _ref9.startAngle, | ||
endAngle = _ref9.endAngle; | ||
return arc().innerRadius(innerRadius * maxRadius).outerRadius(outerRadius * maxRadius).startAngle(startAngle).endAngle(endAngle)(); | ||
}; | ||
getBarPointTransformer.getTargetElement = function (_ref9) { | ||
var x = _ref9.x, | ||
y = _ref9.y, | ||
y1 = _ref9.y1, | ||
width = _ref9.width; | ||
getBarPointTransformer.getTargetElement = function (_ref10) { | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
y1 = _ref10.y1, | ||
barWidth = _ref10.barWidth, | ||
maxBarWidth = _ref10.maxBarWidth; | ||
var width = barWidth * maxBarWidth; | ||
var height = Math.abs(y1 - y); | ||
return { | ||
x: x, | ||
x: x - width / 2, | ||
y: y, | ||
@@ -521,10 +513,11 @@ d: "M0,0 ".concat(width, ",0 ").concat(width, ",").concat(height, " 0,").concat(height) | ||
getPiePointTransformer.getTargetElement = function (_ref10) { | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
innerRadius = _ref10.innerRadius, | ||
outerRadius = _ref10.outerRadius, | ||
startAngle = _ref10.startAngle, | ||
endAngle = _ref10.endAngle; | ||
var center = arc().innerRadius(innerRadius).outerRadius(outerRadius).startAngle(startAngle).endAngle(endAngle).centroid(); | ||
getPiePointTransformer.getTargetElement = function (_ref11) { | ||
var x = _ref11.x, | ||
y = _ref11.y, | ||
innerRadius = _ref11.innerRadius, | ||
outerRadius = _ref11.outerRadius, | ||
maxRadius = _ref11.maxRadius, | ||
startAngle = _ref11.startAngle, | ||
endAngle = _ref11.endAngle; | ||
var center = arc().innerRadius(innerRadius * maxRadius).outerRadius(outerRadius * maxRadius).startAngle(startAngle).endAngle(endAngle).centroid(); | ||
return { | ||
@@ -537,11 +530,9 @@ x: center[0] + x, | ||
getAreaPointTransformer.getTargetElement = function (_ref11) { | ||
var x = _ref11.x, | ||
y = _ref11.y; | ||
var size = DEFAULT_POINT_SIZE; // TODO get user size | ||
getAreaPointTransformer.getTargetElement = function (_ref12) { | ||
var x = _ref12.x, | ||
y = _ref12.y; | ||
return { | ||
x: x, | ||
y: y, | ||
d: symbol().size([Math.pow(size, 2)]).type(symbolCircle)() | ||
d: symbol().size([Math.pow(2, 2)]).type(symbolCircle)() | ||
}; | ||
@@ -552,14 +543,26 @@ }; | ||
var createNewUniqueName = function createNewUniqueName(name) { | ||
return name.replace(/\d*$/, function (str) { | ||
return str ? +str + 1 : 0; | ||
}); | ||
getScatterPointTransformer.getTargetElement = function (_ref13) { | ||
var x = _ref13.x, | ||
y = _ref13.y, | ||
point = _ref13.point; | ||
return { | ||
x: x, | ||
y: y, | ||
d: symbol().size([Math.pow(point.size, 2)]).type(symbolCircle)() | ||
}; | ||
}; | ||
var addItem = function addItem(list, item) { | ||
return list.find(function (obj) { | ||
return obj.uniqueName === item.uniqueName; | ||
}) ? addItem(list, _objectSpread({}, item, { | ||
uniqueName: createNewUniqueName(item.uniqueName) | ||
})) : list.concat(item); | ||
var getUniqueName = function getUniqueName(list, name) { | ||
var names = new Set(list.map(function (item) { | ||
return item.name; | ||
})); | ||
var ret = name; | ||
while (names.has(ret)) { | ||
ret = ret.replace(/\d*$/, function (str) { | ||
return str ? +str + 1 : 0; | ||
}); | ||
} | ||
return ret; | ||
}; // TODO: Memoization is much needed here. | ||
@@ -569,3 +572,6 @@ // Though "series" list never persists, single "series" item most often does. | ||
var createPoints = function createPoints(argumentField, valueField, data) { | ||
var createPoints = function createPoints(_ref14, data, props, palette) { | ||
var argumentField = _ref14.argumentField, | ||
valueField = _ref14.valueField, | ||
getPointTransformer = _ref14.getPointTransformer; | ||
var points = []; | ||
@@ -577,7 +583,9 @@ data.forEach(function (dataItem, index) { | ||
if (argument !== undefined && value !== undefined) { | ||
points.push({ | ||
points.push(_objectSpread({ | ||
argument: argument, | ||
value: value, | ||
index: index | ||
}); | ||
}, props, { | ||
color: getPointTransformer.getPointColor ? getPointTransformer.getPointColor(palette, index) : props.color | ||
})); | ||
} | ||
@@ -588,16 +596,15 @@ }); | ||
var addSeries = function addSeries(series, data, palette, props) { | ||
var points = createPoints(props.argumentField, props.valueField, data); // It is used to generate unique series dependent attribute names for patterns. | ||
var addSeries = function addSeries(series, data, palette, props, restProps) { | ||
// It is used to generate unique series dependent attribute names for patterns. | ||
// *symbolName* cannot be used as it cannot be part of DOM attribute name. | ||
// TODO: Consider making *name* unique and then use it instead of *index*. | ||
var index = series.length; | ||
return addItem(series, _objectSpread({}, props, { | ||
var seriesColor = props.color || palette[index % palette.length]; | ||
return [].concat(_toConsumableArray(series), [_objectSpread({}, props, { | ||
name: getUniqueName(series, props.name), | ||
index: index, | ||
points: points, | ||
uniqueName: props.name, | ||
palette: palette, | ||
// TODO: For Pie only. Find a better place for it. | ||
color: props.color || palette[index % palette.length] | ||
})); | ||
points: createPoints(props, data, _objectSpread({}, restProps, { | ||
color: seriesColor | ||
}), palette), | ||
color: seriesColor | ||
})]); | ||
}; // TODO: Memoization is much needed here by the same reason as in "createPoints". | ||
@@ -752,9 +759,7 @@ // Make "scales" persistent first. | ||
var transform = getPointTransformer(series); | ||
var barWidth = series.barWidth; | ||
var widthCoeff = 1 / groupCount; | ||
var offsetCoeff = -(1 - barWidth) / 2 + groupOffset + widthCoeff * (1 - barWidth) / 2; | ||
return function (point) { | ||
var ret = transform(point); | ||
ret.x += ret.width / barWidth * offsetCoeff; | ||
ret.width *= widthCoeff; | ||
ret.x -= ret.maxBarWidth * (0.5 - 0.5 * widthCoeff - groupOffset * widthCoeff); | ||
ret.maxBarWidth /= groupCount; | ||
return ret; | ||
@@ -781,3 +786,3 @@ }; | ||
var scale = scaleBand().domain(Array.from(groups)).range([0, 1]); | ||
var scale = scaleBand().domain(Array.from(groups)).range([0, groups.size]); | ||
return seriesList.map(function (seriesItem, i) { | ||
@@ -1088,23 +1093,28 @@ if (!seriesItem.getPointTransformer.isBroad) { | ||
var createBarHitTester = createPointsEnumeratingHitTesterCreator(function (_ref6, point) { | ||
var _ref7 = _slicedToArray(_ref6, 2), | ||
px = _ref7[0], | ||
py = _ref7[1]; | ||
var createBarHitTester = createPointsEnumeratingHitTesterCreator(function (_ref6, _ref7) { | ||
var _ref8 = _slicedToArray(_ref6, 2), | ||
px = _ref8[0], | ||
py = _ref8[1]; | ||
var xCenter = point.x + point.width / 2; | ||
var yCenter = (point.y + point.y1) / 2; | ||
var halfWidth = point.width / 2; | ||
var halfHeight = Math.abs(point.y - point.y1) / 2; | ||
var x = _ref7.x, | ||
y = _ref7.y, | ||
y1 = _ref7.y1, | ||
barWidth = _ref7.barWidth, | ||
maxBarWidth = _ref7.maxBarWidth; | ||
var xCenter = x; | ||
var yCenter = (y + y1) / 2; | ||
var halfWidth = maxBarWidth * barWidth / 2; | ||
var halfHeight = Math.abs(y - y1) / 2; | ||
return hitTestRect(px - xCenter, py - yCenter, halfWidth, halfHeight); | ||
}); // TODO: Use actual point size here! | ||
}); | ||
var createScatterHitTester = createPointsEnumeratingHitTesterCreator(function (_ref9, _ref10) { | ||
var _ref11 = _slicedToArray(_ref9, 2), | ||
px = _ref11[0], | ||
py = _ref11[1]; | ||
var createScatterHitTester = createPointsEnumeratingHitTesterCreator(function (_ref8, _ref9) { | ||
var _ref10 = _slicedToArray(_ref8, 2), | ||
px = _ref10[0], | ||
py = _ref10[1]; | ||
var x = _ref9.x, | ||
y = _ref9.y; | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
point = _ref10.point; | ||
var distance = getSegmentLength(px - x, py - y); | ||
return distance <= 10 ? { | ||
return distance <= point.size / 2 ? { | ||
distance: distance | ||
@@ -1120,16 +1130,19 @@ } : null; | ||
var createPieHitTester = createPointsEnumeratingHitTesterCreator(function (_ref11, _ref12) { | ||
var _ref13 = _slicedToArray(_ref11, 2), | ||
px = _ref13[0], | ||
py = _ref13[1]; | ||
var createPieHitTester = createPointsEnumeratingHitTesterCreator(function (_ref12, _ref13) { | ||
var _ref14 = _slicedToArray(_ref12, 2), | ||
px = _ref14[0], | ||
py = _ref14[1]; | ||
var x = _ref12.x, | ||
y = _ref12.y, | ||
innerRadius = _ref12.innerRadius, | ||
outerRadius = _ref12.outerRadius, | ||
startAngle = _ref12.startAngle, | ||
endAngle = _ref12.endAngle; | ||
var rCenter = (innerRadius + outerRadius) / 2; | ||
var x = _ref13.x, | ||
y = _ref13.y, | ||
innerRadius = _ref13.innerRadius, | ||
outerRadius = _ref13.outerRadius, | ||
startAngle = _ref13.startAngle, | ||
maxRadius = _ref13.maxRadius, | ||
endAngle = _ref13.endAngle; | ||
var inner = innerRadius * maxRadius; | ||
var outer = outerRadius * maxRadius; | ||
var rCenter = (inner + outer) / 2; | ||
var angleCenter = (startAngle + endAngle) / 2; | ||
var halfRadius = (outerRadius - innerRadius) / 2; | ||
var halfRadius = (outer - inner) / 2; | ||
var halfAngle = Math.abs(startAngle - endAngle) / 2; | ||
@@ -1147,5 +1160,5 @@ var dx = px - x; | ||
var result = {}; | ||
targets.forEach(function (_ref14) { | ||
var series = _ref14.series, | ||
point = _ref14.point; | ||
targets.forEach(function (_ref15) { | ||
var series = _ref15.series, | ||
point = _ref15.point; | ||
(result[series] = result[series] || new Set()).add(point); | ||
@@ -1191,3 +1204,3 @@ }); | ||
return series.map(function (_ref) { | ||
var text = _ref.uniqueName, | ||
var text = _ref.name, | ||
color = _ref.color; | ||
@@ -1305,4 +1318,6 @@ return { | ||
}; | ||
}; | ||
}; // The result is of Map<string, Function> type. | ||
// Keys are DOM event names (https://developer.mozilla.org/en-US/docs/Web/Events). | ||
var buildEventHandlers = function buildEventHandlers(seriesList, _ref2) { | ||
@@ -1318,4 +1333,17 @@ var clickHandlers = _ref2.clickHandlers, | ||
if (pointerMoveHandlers.length) { | ||
handlers.pointermove = buildEventHandler(seriesList, pointerMoveHandlers); | ||
handlers.pointerleave = buildLeaveEventHandler(pointerMoveHandlers); | ||
var moveHandler = buildEventHandler(seriesList, pointerMoveHandlers); | ||
var leaveHandler = buildLeaveEventHandler(pointerMoveHandlers); | ||
if ('onpointermove' in window) { | ||
// eslint-disable-line no-undef | ||
handlers.pointermove = moveHandler; | ||
handlers.pointerleave = leaveHandler; | ||
} else if ('ontouchmove' in window) { | ||
// eslint-disable-line no-undef | ||
handlers.touchmove = moveHandler; | ||
handlers.touchleave = leaveHandler; | ||
} else { | ||
handlers.mousemove = moveHandler; | ||
handlers.mouseleave = leaveHandler; | ||
} | ||
} | ||
@@ -1326,3 +1354,3 @@ | ||
export { defaultDomains, addDomain, scaleLinear$1 as scaleLinear, scaleBand$1 as scaleBand, computeDomains, buildScales, bBoxes, axisCoordinates, getGridCoordinates, dArea, dLine, dSpline, getPiePointTransformer, getLinePointTransformer, getAreaPointTransformer, getBarPointTransformer, findSeriesByName, dBar, pointAttributes, addSeries, scaleSeriesPoints, getStackedSeries, getAreaAnimationStyle, getPieAnimationStyle, getScatterAnimationStyle, buildAnimatedStyleGetter, getParameters, processHandleTooltip, createAreaHitTester, createLineHitTester, createSplineHitTester, createBarHitTester, createScatterHitTester, createPieHitTester, changeSeriesState, isHorizontal, getWidth, getValueDomainName, fixOffset, getLegendItems, buildEventHandlers, processPointerMove, HORIZONTAL, VERTICAL, TOP, BOTTOM, LEFT, RIGHT, MIDDLE, END, START, LINEAR, BAND, ARGUMENT_DOMAIN, VALUE_DOMAIN, HOVERED, SELECTED }; | ||
export { defaultDomains, addDomain, scaleLinear$1 as scaleLinear, scaleBand$1 as scaleBand, computeDomains, buildScales, bBoxes, axisCoordinates, getGridCoordinates, dArea, dLine, dSpline, getPiePointTransformer, getLinePointTransformer, getScatterPointTransformer, getAreaPointTransformer, getBarPointTransformer, findSeriesByName, dBar, dSymbol, dPie, addSeries, scaleSeriesPoints, getStackedSeries, getAreaAnimationStyle, getPieAnimationStyle, getScatterAnimationStyle, buildAnimatedStyleGetter, getParameters, processHandleTooltip, createAreaHitTester, createLineHitTester, createSplineHitTester, createBarHitTester, createScatterHitTester, createPieHitTester, changeSeriesState, isHorizontal, getWidth, getValueDomainName, fixOffset, getLegendItems, buildEventHandlers, processPointerMove, HORIZONTAL, VERTICAL, TOP, BOTTOM, LEFT, RIGHT, MIDDLE, END, START, LINEAR, BAND, ARGUMENT_DOMAIN, VALUE_DOMAIN, HOVERED, SELECTED }; | ||
//# sourceMappingURL=dx-chart-core.es.js.map |
/** | ||
* Bundle of @devexpress/dx-chart-core | ||
* Generated: 2018-12-25 | ||
* Version: 1.10.0 | ||
* Generated: 2019-02-06 | ||
* Version: 1.10.1 | ||
* License: https://js.devexpress.com/Licensing | ||
@@ -389,3 +389,2 @@ */ | ||
var DEFAULT_POINT_SIZE = 7; | ||
var dArea = d3Shape.area().x(getX).y1(getY).y0(getY1); | ||
@@ -397,16 +396,9 @@ var dLine = d3Shape.line().x(getX).y(getY); | ||
valueScale = _ref4.valueScale, | ||
points = _ref4.points, | ||
innerRadius = _ref4.innerRadius, | ||
outerRadius = _ref4.outerRadius, | ||
palette = _ref4.palette; | ||
points = _ref4.points; | ||
var x = Math.max.apply(Math, _toConsumableArray(argumentScale.range())) / 2; | ||
var y = Math.max.apply(Math, _toConsumableArray(valueScale.range())) / 2; | ||
var radius = Math.min(x, y); | ||
var maxRadius = Math.min(x, y); | ||
var pieData = d3Shape.pie().sort(null).value(function (d) { | ||
return d.value; | ||
})(points); | ||
var inner = innerRadius * radius; | ||
var outer = outerRadius * radius; | ||
var gen = d3Shape.arc().innerRadius(inner).outerRadius(outer); | ||
var colorScale = d3Scale.scaleOrdinal().range(palette); | ||
return function (point) { | ||
@@ -417,11 +409,7 @@ var _pieData$point$index = pieData[point.index], | ||
return _objectSpread({}, point, { | ||
// TODO: It should be calculated in *pointComponent*. | ||
d: gen.startAngle(startAngle).endAngle(endAngle)(), | ||
color: point.color || colorScale(point.index), | ||
x: x, | ||
y: y, | ||
innerRadius: inner, | ||
outerRadius: outer, | ||
startAngle: startAngle, | ||
endAngle: endAngle | ||
endAngle: endAngle, | ||
maxRadius: maxRadius | ||
}); | ||
@@ -441,2 +429,3 @@ }; | ||
}; | ||
var getScatterPointTransformer = getLinePointTransformer; | ||
var getAreaPointTransformer = function getAreaPointTransformer(series) { | ||
@@ -455,14 +444,11 @@ var transform = getLinePointTransformer(series); | ||
var argumentScale = _ref6.argumentScale, | ||
valueScale = _ref6.valueScale, | ||
barWidth = _ref6.barWidth; | ||
valueScale = _ref6.valueScale; | ||
var y1 = valueScale(0); | ||
var categoryWidth = getWidth(argumentScale); | ||
var offset = categoryWidth * (1 - barWidth) / 2; | ||
var width = categoryWidth * barWidth; | ||
var fixedArgumentScale = fixOffset(argumentScale); | ||
return function (point) { | ||
return _objectSpread({}, point, { | ||
x: argumentScale(point.argument) + offset, | ||
x: fixedArgumentScale(point.argument), | ||
y: valueScale(point.value), | ||
y1: y1, | ||
width: width | ||
maxBarWidth: getWidth(argumentScale) | ||
}); | ||
@@ -475,2 +461,7 @@ }; | ||
getBarPointTransformer.isBroad = true; | ||
getPiePointTransformer.getPointColor = function (palette, index) { | ||
return palette[index % palette.length]; | ||
}; | ||
var findSeriesByName = function findSeriesByName(name, series) { | ||
@@ -487,3 +478,3 @@ return series.find(function (seriesItem) { | ||
return { | ||
x: x, | ||
x: x - width / 2, | ||
y: Math.min(y, y1), | ||
@@ -494,24 +485,25 @@ width: width || 2, | ||
}; | ||
var pointAttributes = function pointAttributes(_ref8) { | ||
var _ref8$size = _ref8.size, | ||
size = _ref8$size === void 0 ? DEFAULT_POINT_SIZE : _ref8$size; | ||
var dPoint = d3Shape.symbol().size([Math.pow(size, 2)]).type(d3Shape.symbolCircle)(); | ||
return function (item) { | ||
return { | ||
// TODO: It should be calculated in *pointComponent*. | ||
d: dPoint, | ||
x: item.x, | ||
y: item.y | ||
}; | ||
}; | ||
var dSymbol = function dSymbol(_ref8) { | ||
var size = _ref8.size; | ||
return d3Shape.symbol().size([Math.pow(size, 2)]).type(d3Shape.symbolCircle)(); | ||
}; | ||
var dPie = function dPie(_ref9) { | ||
var maxRadius = _ref9.maxRadius, | ||
innerRadius = _ref9.innerRadius, | ||
outerRadius = _ref9.outerRadius, | ||
startAngle = _ref9.startAngle, | ||
endAngle = _ref9.endAngle; | ||
return d3Shape.arc().innerRadius(innerRadius * maxRadius).outerRadius(outerRadius * maxRadius).startAngle(startAngle).endAngle(endAngle)(); | ||
}; | ||
getBarPointTransformer.getTargetElement = function (_ref9) { | ||
var x = _ref9.x, | ||
y = _ref9.y, | ||
y1 = _ref9.y1, | ||
width = _ref9.width; | ||
getBarPointTransformer.getTargetElement = function (_ref10) { | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
y1 = _ref10.y1, | ||
barWidth = _ref10.barWidth, | ||
maxBarWidth = _ref10.maxBarWidth; | ||
var width = barWidth * maxBarWidth; | ||
var height = Math.abs(y1 - y); | ||
return { | ||
x: x, | ||
x: x - width / 2, | ||
y: y, | ||
@@ -522,10 +514,11 @@ d: "M0,0 ".concat(width, ",0 ").concat(width, ",").concat(height, " 0,").concat(height) | ||
getPiePointTransformer.getTargetElement = function (_ref10) { | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
innerRadius = _ref10.innerRadius, | ||
outerRadius = _ref10.outerRadius, | ||
startAngle = _ref10.startAngle, | ||
endAngle = _ref10.endAngle; | ||
var center = d3Shape.arc().innerRadius(innerRadius).outerRadius(outerRadius).startAngle(startAngle).endAngle(endAngle).centroid(); | ||
getPiePointTransformer.getTargetElement = function (_ref11) { | ||
var x = _ref11.x, | ||
y = _ref11.y, | ||
innerRadius = _ref11.innerRadius, | ||
outerRadius = _ref11.outerRadius, | ||
maxRadius = _ref11.maxRadius, | ||
startAngle = _ref11.startAngle, | ||
endAngle = _ref11.endAngle; | ||
var center = d3Shape.arc().innerRadius(innerRadius * maxRadius).outerRadius(outerRadius * maxRadius).startAngle(startAngle).endAngle(endAngle).centroid(); | ||
return { | ||
@@ -538,11 +531,9 @@ x: center[0] + x, | ||
getAreaPointTransformer.getTargetElement = function (_ref11) { | ||
var x = _ref11.x, | ||
y = _ref11.y; | ||
var size = DEFAULT_POINT_SIZE; // TODO get user size | ||
getAreaPointTransformer.getTargetElement = function (_ref12) { | ||
var x = _ref12.x, | ||
y = _ref12.y; | ||
return { | ||
x: x, | ||
y: y, | ||
d: d3Shape.symbol().size([Math.pow(size, 2)]).type(d3Shape.symbolCircle)() | ||
d: d3Shape.symbol().size([Math.pow(2, 2)]).type(d3Shape.symbolCircle)() | ||
}; | ||
@@ -553,14 +544,26 @@ }; | ||
var createNewUniqueName = function createNewUniqueName(name) { | ||
return name.replace(/\d*$/, function (str) { | ||
return str ? +str + 1 : 0; | ||
}); | ||
getScatterPointTransformer.getTargetElement = function (_ref13) { | ||
var x = _ref13.x, | ||
y = _ref13.y, | ||
point = _ref13.point; | ||
return { | ||
x: x, | ||
y: y, | ||
d: d3Shape.symbol().size([Math.pow(point.size, 2)]).type(d3Shape.symbolCircle)() | ||
}; | ||
}; | ||
var addItem = function addItem(list, item) { | ||
return list.find(function (obj) { | ||
return obj.uniqueName === item.uniqueName; | ||
}) ? addItem(list, _objectSpread({}, item, { | ||
uniqueName: createNewUniqueName(item.uniqueName) | ||
})) : list.concat(item); | ||
var getUniqueName = function getUniqueName(list, name) { | ||
var names = new Set(list.map(function (item) { | ||
return item.name; | ||
})); | ||
var ret = name; | ||
while (names.has(ret)) { | ||
ret = ret.replace(/\d*$/, function (str) { | ||
return str ? +str + 1 : 0; | ||
}); | ||
} | ||
return ret; | ||
}; // TODO: Memoization is much needed here. | ||
@@ -570,3 +573,6 @@ // Though "series" list never persists, single "series" item most often does. | ||
var createPoints = function createPoints(argumentField, valueField, data) { | ||
var createPoints = function createPoints(_ref14, data, props, palette) { | ||
var argumentField = _ref14.argumentField, | ||
valueField = _ref14.valueField, | ||
getPointTransformer = _ref14.getPointTransformer; | ||
var points = []; | ||
@@ -578,7 +584,9 @@ data.forEach(function (dataItem, index) { | ||
if (argument !== undefined && value !== undefined) { | ||
points.push({ | ||
points.push(_objectSpread({ | ||
argument: argument, | ||
value: value, | ||
index: index | ||
}); | ||
}, props, { | ||
color: getPointTransformer.getPointColor ? getPointTransformer.getPointColor(palette, index) : props.color | ||
})); | ||
} | ||
@@ -589,16 +597,15 @@ }); | ||
var addSeries = function addSeries(series, data, palette, props) { | ||
var points = createPoints(props.argumentField, props.valueField, data); // It is used to generate unique series dependent attribute names for patterns. | ||
var addSeries = function addSeries(series, data, palette, props, restProps) { | ||
// It is used to generate unique series dependent attribute names for patterns. | ||
// *symbolName* cannot be used as it cannot be part of DOM attribute name. | ||
// TODO: Consider making *name* unique and then use it instead of *index*. | ||
var index = series.length; | ||
return addItem(series, _objectSpread({}, props, { | ||
var seriesColor = props.color || palette[index % palette.length]; | ||
return [].concat(_toConsumableArray(series), [_objectSpread({}, props, { | ||
name: getUniqueName(series, props.name), | ||
index: index, | ||
points: points, | ||
uniqueName: props.name, | ||
palette: palette, | ||
// TODO: For Pie only. Find a better place for it. | ||
color: props.color || palette[index % palette.length] | ||
})); | ||
points: createPoints(props, data, _objectSpread({}, restProps, { | ||
color: seriesColor | ||
}), palette), | ||
color: seriesColor | ||
})]); | ||
}; // TODO: Memoization is much needed here by the same reason as in "createPoints". | ||
@@ -753,9 +760,7 @@ // Make "scales" persistent first. | ||
var transform = getPointTransformer(series); | ||
var barWidth = series.barWidth; | ||
var widthCoeff = 1 / groupCount; | ||
var offsetCoeff = -(1 - barWidth) / 2 + groupOffset + widthCoeff * (1 - barWidth) / 2; | ||
return function (point) { | ||
var ret = transform(point); | ||
ret.x += ret.width / barWidth * offsetCoeff; | ||
ret.width *= widthCoeff; | ||
ret.x -= ret.maxBarWidth * (0.5 - 0.5 * widthCoeff - groupOffset * widthCoeff); | ||
ret.maxBarWidth /= groupCount; | ||
return ret; | ||
@@ -782,3 +787,3 @@ }; | ||
var scale = d3Scale.scaleBand().domain(Array.from(groups)).range([0, 1]); | ||
var scale = d3Scale.scaleBand().domain(Array.from(groups)).range([0, groups.size]); | ||
return seriesList.map(function (seriesItem, i) { | ||
@@ -1089,23 +1094,28 @@ if (!seriesItem.getPointTransformer.isBroad) { | ||
var createBarHitTester = createPointsEnumeratingHitTesterCreator(function (_ref6, point) { | ||
var _ref7 = _slicedToArray(_ref6, 2), | ||
px = _ref7[0], | ||
py = _ref7[1]; | ||
var createBarHitTester = createPointsEnumeratingHitTesterCreator(function (_ref6, _ref7) { | ||
var _ref8 = _slicedToArray(_ref6, 2), | ||
px = _ref8[0], | ||
py = _ref8[1]; | ||
var xCenter = point.x + point.width / 2; | ||
var yCenter = (point.y + point.y1) / 2; | ||
var halfWidth = point.width / 2; | ||
var halfHeight = Math.abs(point.y - point.y1) / 2; | ||
var x = _ref7.x, | ||
y = _ref7.y, | ||
y1 = _ref7.y1, | ||
barWidth = _ref7.barWidth, | ||
maxBarWidth = _ref7.maxBarWidth; | ||
var xCenter = x; | ||
var yCenter = (y + y1) / 2; | ||
var halfWidth = maxBarWidth * barWidth / 2; | ||
var halfHeight = Math.abs(y - y1) / 2; | ||
return hitTestRect(px - xCenter, py - yCenter, halfWidth, halfHeight); | ||
}); // TODO: Use actual point size here! | ||
}); | ||
var createScatterHitTester = createPointsEnumeratingHitTesterCreator(function (_ref9, _ref10) { | ||
var _ref11 = _slicedToArray(_ref9, 2), | ||
px = _ref11[0], | ||
py = _ref11[1]; | ||
var createScatterHitTester = createPointsEnumeratingHitTesterCreator(function (_ref8, _ref9) { | ||
var _ref10 = _slicedToArray(_ref8, 2), | ||
px = _ref10[0], | ||
py = _ref10[1]; | ||
var x = _ref9.x, | ||
y = _ref9.y; | ||
var x = _ref10.x, | ||
y = _ref10.y, | ||
point = _ref10.point; | ||
var distance = getSegmentLength(px - x, py - y); | ||
return distance <= 10 ? { | ||
return distance <= point.size / 2 ? { | ||
distance: distance | ||
@@ -1121,16 +1131,19 @@ } : null; | ||
var createPieHitTester = createPointsEnumeratingHitTesterCreator(function (_ref11, _ref12) { | ||
var _ref13 = _slicedToArray(_ref11, 2), | ||
px = _ref13[0], | ||
py = _ref13[1]; | ||
var createPieHitTester = createPointsEnumeratingHitTesterCreator(function (_ref12, _ref13) { | ||
var _ref14 = _slicedToArray(_ref12, 2), | ||
px = _ref14[0], | ||
py = _ref14[1]; | ||
var x = _ref12.x, | ||
y = _ref12.y, | ||
innerRadius = _ref12.innerRadius, | ||
outerRadius = _ref12.outerRadius, | ||
startAngle = _ref12.startAngle, | ||
endAngle = _ref12.endAngle; | ||
var rCenter = (innerRadius + outerRadius) / 2; | ||
var x = _ref13.x, | ||
y = _ref13.y, | ||
innerRadius = _ref13.innerRadius, | ||
outerRadius = _ref13.outerRadius, | ||
startAngle = _ref13.startAngle, | ||
maxRadius = _ref13.maxRadius, | ||
endAngle = _ref13.endAngle; | ||
var inner = innerRadius * maxRadius; | ||
var outer = outerRadius * maxRadius; | ||
var rCenter = (inner + outer) / 2; | ||
var angleCenter = (startAngle + endAngle) / 2; | ||
var halfRadius = (outerRadius - innerRadius) / 2; | ||
var halfRadius = (outer - inner) / 2; | ||
var halfAngle = Math.abs(startAngle - endAngle) / 2; | ||
@@ -1148,5 +1161,5 @@ var dx = px - x; | ||
var result = {}; | ||
targets.forEach(function (_ref14) { | ||
var series = _ref14.series, | ||
point = _ref14.point; | ||
targets.forEach(function (_ref15) { | ||
var series = _ref15.series, | ||
point = _ref15.point; | ||
(result[series] = result[series] || new Set()).add(point); | ||
@@ -1192,3 +1205,3 @@ }); | ||
return series.map(function (_ref) { | ||
var text = _ref.uniqueName, | ||
var text = _ref.name, | ||
color = _ref.color; | ||
@@ -1306,4 +1319,6 @@ return { | ||
}; | ||
}; | ||
}; // The result is of Map<string, Function> type. | ||
// Keys are DOM event names (https://developer.mozilla.org/en-US/docs/Web/Events). | ||
var buildEventHandlers = function buildEventHandlers(seriesList, _ref2) { | ||
@@ -1319,4 +1334,17 @@ var clickHandlers = _ref2.clickHandlers, | ||
if (pointerMoveHandlers.length) { | ||
handlers.pointermove = buildEventHandler(seriesList, pointerMoveHandlers); | ||
handlers.pointerleave = buildLeaveEventHandler(pointerMoveHandlers); | ||
var moveHandler = buildEventHandler(seriesList, pointerMoveHandlers); | ||
var leaveHandler = buildLeaveEventHandler(pointerMoveHandlers); | ||
if ('onpointermove' in window) { | ||
// eslint-disable-line no-undef | ||
handlers.pointermove = moveHandler; | ||
handlers.pointerleave = leaveHandler; | ||
} else if ('ontouchmove' in window) { | ||
// eslint-disable-line no-undef | ||
handlers.touchmove = moveHandler; | ||
handlers.touchleave = leaveHandler; | ||
} else { | ||
handlers.mousemove = moveHandler; | ||
handlers.mouseleave = leaveHandler; | ||
} | ||
} | ||
@@ -1341,2 +1369,3 @@ | ||
exports.getLinePointTransformer = getLinePointTransformer; | ||
exports.getScatterPointTransformer = getScatterPointTransformer; | ||
exports.getAreaPointTransformer = getAreaPointTransformer; | ||
@@ -1346,3 +1375,4 @@ exports.getBarPointTransformer = getBarPointTransformer; | ||
exports.dBar = dBar; | ||
exports.pointAttributes = pointAttributes; | ||
exports.dSymbol = dSymbol; | ||
exports.dPie = dPie; | ||
exports.addSeries = addSeries; | ||
@@ -1349,0 +1379,0 @@ exports.scaleSeriesPoints = scaleSeriesPoints; |
{ | ||
"name": "@devexpress/dx-chart-core", | ||
"version": "1.10.0", | ||
"version": "1.10.1", | ||
"description": "Core library for the DevExtreme Reactive Chart component", | ||
@@ -44,22 +44,22 @@ "author": { | ||
"@babel/plugin-transform-runtime": "^7.2.0", | ||
"@babel/preset-env": "^7.2.3", | ||
"@babel/preset-env": "^7.3.1", | ||
"babel-core": "^7.0.0-bridge.0", | ||
"babel-jest": "^23.6.0", | ||
"core-js": "^2.6.1", | ||
"eslint": "^5.11.0", | ||
"babel-jest": "^24.0.0", | ||
"core-js": "^2.6.3", | ||
"eslint": "^5.13.0", | ||
"eslint-config-airbnb-base": "^13.1.0", | ||
"eslint-plugin-filenames": "^1.3.2", | ||
"eslint-plugin-import": "^2.14.0", | ||
"eslint-plugin-jest": "^22.1.2", | ||
"jest": "^23.6.0", | ||
"rollup": "^0.68.2", | ||
"rollup-plugin-babel": "^4.1.0", | ||
"rollup-plugin-license": "^0.7.0" | ||
"eslint-plugin-import": "^2.16.0", | ||
"eslint-plugin-jest": "^22.2.2", | ||
"jest": "^24.0.0", | ||
"rollup": "^1.1.2", | ||
"rollup-plugin-babel": "^4.3.2", | ||
"rollup-plugin-license": "^0.8.1" | ||
}, | ||
"dependencies": { | ||
"d3-array": "^2.0.2", | ||
"d3-scale": "^2.1.2", | ||
"d3-shape": "^1.2.2" | ||
"d3-array": "^2.0.3", | ||
"d3-scale": "^2.2.2", | ||
"d3-shape": "^1.3.3" | ||
}, | ||
"gitHead": "0890839a23a7afd042ad3984dca69232767d60cd" | ||
"gitHead": "c49e13b898b71a22a0d8045ab5b0aa28547e27b2" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
241625
2347
Updatedd3-array@^2.0.3
Updatedd3-scale@^2.2.2
Updatedd3-shape@^1.3.3