UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

37 lines (30 loc) 1.3 kB
// (C) 2020 GoodData Corporation import { VisualizationInput, AFM } from "@gooddata/typings"; import { getMeasureValueFilterCondition, IMeasureValueFilterValue, } from "../../interfaces/MeasureValueFilter"; export class MeasureValueFilterBuilder implements VisualizationInput.IMeasureValueFilter { public measureValueFilter: VisualizationInput.IMeasureValueFilter["measureValueFilter"]; constructor(measureLocalIdentifier: string) { this.measureValueFilter = { measure: { localIdentifier: measureLocalIdentifier, }, }; } public condition = (operator: string, value: IMeasureValueFilterValue, treatNullValuesAsZero = false) => { const newCondition = getMeasureValueFilterCondition(operator, value, treatNullValuesAsZero); if (newCondition === null) { delete this.measureValueFilter.condition; } else { this.measureValueFilter.condition = newCondition; } return this; }; public getAfmMeasureValueFilter = (): AFM.IMeasureValueFilter => { return { measureValueFilter: this.measureValueFilter }; }; } export const measureValueFilter = (measureLocalIdentifier: string) => new MeasureValueFilterBuilder(measureLocalIdentifier);