export default function buildContainsFilter()

in packages/attribute-slicer-powerbi/src/visual-utils/buildContainsFilter.ts [37:77]


export default function buildContainsFilter(
	source: powerbiVisualsApi.DataViewMetadataColumn,
	searchVal: any,
) {
	"use strict";
	let filter: AdvancedFilter;
	if (source) {
		const sourceType = source.type;
		// Only support "contains" with text columns

		const target = buildColumnTarget(source);

		if (searchVal) {
			if (sourceType.text) {
				filter = new AdvancedFilter(target, "And", {
					operator: <AdvancedFilterConditionOperators>"Contains",
					value: searchVal,
				});
			} else {
				if (sourceType.numeric) {
					filter = new AdvancedFilter(target, "And", {
						operator: <AdvancedFilterConditionOperators>"Is",
						value: searchVal,
					});
				} else if (sourceType.bool) {
					filter = new AdvancedFilter(target, "Or", [
						{
							operator: <AdvancedFilterConditionOperators>"Is",
							value: "1",
						},
						{
							operator: <AdvancedFilterConditionOperators>"Is",
							value: "true",
						},
					]);
				}
			}
		}
	}
	return filter;
}