import {DisplayContext as DateRangeDisplayContext} from '../../date-range-picker/models/types'; import CohortsPropertyFilter from './cohorts-property-filter'; import CustomEventPropertyFilter from './custom-event-property-filter'; import InsightsPropertyFilter from './insights-property-filter'; import PropertyFilter from './property-filter'; import {DisplayContext} from './types'; export function createPropertyFilter( attributes: Partial, {displayContext}: {displayContext: DisplayContext}, ): PropertyFilter { const PropertyFilterClass = { [DisplayContext.Cohorts]: CohortsPropertyFilter, [DisplayContext.CustomEvent]: CustomEventPropertyFilter, [DisplayContext.Default]: PropertyFilter, [DisplayContext.Insights]: InsightsPropertyFilter, }[displayContext]; return new PropertyFilterClass(attributes); } export const DATE_RANGE_DISPLAY_CONTEXT_MAP: {[k in DisplayContext]: DateRangeDisplayContext} = { [DisplayContext.Cohorts]: DateRangeDisplayContext.Default, [DisplayContext.CustomEvent]: DateRangeDisplayContext.CustomEvent, [DisplayContext.Insights]: DateRangeDisplayContext.InsightsPropertyFilter, [DisplayContext.Default]: DateRangeDisplayContext.Default, [DisplayContext.Signal]: DateRangeDisplayContext.Default, };