in src/WordCloud.ts [677:721]
private static getDataPoints(
textGroups: WordCloudGroup[],
settings: WordCloudSettings): WordCloudDataPoint[] {
if (lodash.isEmpty(textGroups)) {
return [];
}
const returnValues: WordCloudDataPoint[] = textGroups.map((group: WordCloudGroup, index: number) => {
return <WordCloudDataPoint>{
x: WordCloud.DefaultX,
y: WordCloud.DefaultY,
padding: WordCloud.DefaultPadding,
width: WordCloud.DefaultWidth,
height: WordCloud.DefaultHeight,
xOff: WordCloud.DefaultXOff,
yOff: WordCloud.DefaultYOff,
x0: WordCloud.DefaultX0,
y0: WordCloud.DefaultY0,
x1: WordCloud.DefaultX1,
y1: WordCloud.DefaultY1,
text: group.text,
rotate: WordCloud.getAngle(settings, index),
color: group.color,
selectionIds: group.selectionIds,
wordIndex: group.wordIndex,
count: group.count
};
}).sort((a, b) => b.count - a.count);
const minValue: number = returnValues[returnValues.length - 1].count,
maxValue: number = returnValues[0].count;
returnValues.forEach((dataPoint: WordCloudDataPoint) => {
dataPoint.size = WordCloud.getWordFontSize(
settings,
dataPoint.count,
minValue,
maxValue);
});
return returnValues.sort((firstDataPoint: WordCloudDataPoint, secondDataPoint: WordCloudDataPoint) => {
return secondDataPoint.count - firstDataPoint.count;
});
}