UNPKG

@gooddata/gooddata-js

Version:
86 lines (74 loc) 3.06 kB
// (C) 2007-2020 GoodData Corporation import { AFM, VisualizationObject } from "@gooddata/typings"; import VisualizationObjectAttributeFilter = VisualizationObject.VisualizationObjectAttributeFilter; import IVisualizationObjectRelativeDateFilter = VisualizationObject.IVisualizationObjectRelativeDateFilter; import IVisualizationObjectAbsoluteDateFilter = VisualizationObject.IVisualizationObjectAbsoluteDateFilter; import VisualizationObjectFilter = VisualizationObject.VisualizationObjectFilter; import VisualizationObjectExtendedFilter = VisualizationObject.VisualizationObjectExtendedFilter; function convertAttributeFilter(filter: VisualizationObjectAttributeFilter): AFM.FilterItem | null { if (!VisualizationObject.isPositiveAttributeFilter(filter)) { if (!filter.negativeAttributeFilter.notIn.length) { return null; } } return filter; } export function convertAbsoluteDateFilter( filter: IVisualizationObjectAbsoluteDateFilter | AFM.IAbsoluteDateFilter, ): AFM.FilterItem | null { const { absoluteDateFilter } = filter; if (absoluteDateFilter.from === undefined || absoluteDateFilter.to === undefined) { return null; } return { absoluteDateFilter: { dataSet: absoluteDateFilter.dataSet, from: String(absoluteDateFilter.from), to: String(absoluteDateFilter.to), }, }; } export function convertRelativeDateFilter( filter: IVisualizationObjectRelativeDateFilter | AFM.IRelativeDateFilter, ): AFM.FilterItem | null { const { relativeDateFilter } = filter; if (relativeDateFilter.from === undefined || !relativeDateFilter.to === undefined) { return null; } return { relativeDateFilter: { dataSet: relativeDateFilter.dataSet, granularity: relativeDateFilter.granularity, from: Number(relativeDateFilter.from), to: Number(relativeDateFilter.to), }, }; } export function convertMeasureValueFilter( filter: VisualizationObject.IMeasureValueFilter | AFM.IMeasureValueFilter, ): AFM.IMeasureValueFilter | null { if (filter.measureValueFilter.condition === undefined) { return null; } return filter; } export function convertVisualizationObjectFilter(filter: VisualizationObjectFilter): AFM.FilterItem | null { if (VisualizationObject.isAttributeFilter(filter)) { return convertAttributeFilter(filter); } else if (VisualizationObject.isAbsoluteDateFilter(filter)) { return convertAbsoluteDateFilter(filter); } else { return convertRelativeDateFilter(filter); } } export function convertVisualizationObjectExtendedFilter( filter: VisualizationObjectExtendedFilter, ): AFM.ExtendedFilter | null { if (VisualizationObject.isMeasureValueFilter(filter)) { return convertMeasureValueFilter(filter); } else if (VisualizationObject.isRankingFilter(filter)) { return filter; } else { return convertVisualizationObjectFilter(filter); } }