public static converter()

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
        };
    }