in src/sampleSlicer.ts [210:267]
public static converter(
dataView: DataView,
searchText: string,
scalableRange: ScalableRange,
visualHost: IVisualHost,
jsonFilters: powerbiVisualsApi.IFilter[]
): SampleSlicerData {
if (!dataView ||
!dataView.categorical ||
!dataView.categorical.categories ||
!dataView.categorical.categories[0] ||
!dataView.categorical.categories[0].values ||
!(dataView.categorical.categories[0].values.length > 0)) {
return;
}
const converter: SampleSlicerConverter = new SampleSlicerConverter(dataView, visualHost, jsonFilters);
converter.convert(scalableRange);
const slicerSettings: Settings = defaultSettings;
if (dataView.metadata.objects) {
slicerSettings.general.selection = DataViewObjectsModule.getValue(
dataView.metadata.objects,
persistedSettingsDataViewObjectPropertyIdentifiers.general.selection,
defaultSettings.general.selection
);
slicerSettings.general.rangeSelectionStart = DataViewObjectsModule.getValue(
dataView.metadata.objects,
persistedSettingsDataViewObjectPropertyIdentifiers.general.rangeSelectionStart,
defaultSettings.general.selection
);
slicerSettings.general.rangeSelectionEnd = DataViewObjectsModule.getValue(
dataView.metadata.objects,
persistedSettingsDataViewObjectPropertyIdentifiers.general.rangeSelectionEnd,
defaultSettings.general.selection
);
slicerSettings.general.filter = DataViewObjectsModule.getValue(
dataView.metadata.objects,
persistedSettingsDataViewObjectPropertyIdentifiers.general.filter,
defaultSettings.general.filter
);
}
if (searchText) {
searchText = searchText.toLowerCase();
converter.dataPoints.forEach(x => x.filtered = x.category.toString().toLowerCase().indexOf(searchText) !== 0);
}
const categories: DataViewCategoricalColumn = dataView.categorical.categories[0];
return <SampleSlicerData> {
categorySourceName: categories.source.displayName,
formatString: valueFormatter.getFormatStringByColumn(categories.source),
slicerSettings: slicerSettings,
slicerDataPoints: converter.dataPoints
};
}