in src/sampleSlicerConverter.ts [64:100]
public convert(scalableRange: ScalableRange): void {
this.dataPoints = [];
if (this.categoryValues) {
for (let categoryIndex: number = 0, categoryCount = this.categoryValues.length; categoryIndex < categoryCount; categoryIndex++) {
let categoryValue: any = this.categoryValues[categoryIndex];
let categorySelectionId: ISelectionId = this.host.createSelectionIdBuilder()
.withCategory(this.category, categoryIndex)
.createSelectionId();
let selected = !this.jsonFilters ? false : this.jsonFilters.reduce<boolean>(
(acc: boolean, currentFilter: { operator: string, values: any[] }, index: number) => {
return acc || (
currentFilter.operator === "In"
&& currentFilter.values
&& currentFilter.values.indexOf
&& (currentFilter.values.indexOf(categoryValue.toString()) !== -1)
);
},
false);
this.dataPoints.push({
identity: categorySelectionId as ISelectionId,
category: categoryValue,
selected: selected,
filtered: false,
isSelectedRangePoint: scalableRange.isActive() && SampleSlicerConverter.isNumberWithinRange(categoryValue, scalableRange.getValue())
});
}
scalableRange.setScalingTransformationDomain({
min: d3min(this.categoryValues),
max: d3max(this.categoryValues),
});
}
}