diff --git a/apps/web/ce/hooks/work-item-filters/use-work-item-filters-config.tsx b/apps/web/ce/hooks/work-item-filters/use-work-item-filters-config.tsx index 48aee8c7723..e16bdd2bda0 100644 --- a/apps/web/ce/hooks/work-item-filters/use-work-item-filters-config.tsx +++ b/apps/web/ce/hooks/work-item-filters/use-work-item-filters-config.tsx @@ -1,8 +1,9 @@ import { useCallback, useMemo } from "react"; -import { AtSign, Briefcase, Calendar } from "lucide-react"; +import { AtSign, Briefcase } from "lucide-react"; // plane imports import { Logo } from "@plane/propel/emoji-icon-picker"; import { + CalendarLayoutIcon, CycleGroupIcon, CycleIcon, ModuleIcon, @@ -21,7 +22,6 @@ import type { IState, IUserLite, TFilterConfig, - TFilterValue, IIssueLabel, IModule, IProject, @@ -74,9 +74,9 @@ export type TUseWorkItemFiltersConfigProps = { export type TWorkItemFiltersConfig = { areAllConfigsInitialized: boolean; - configs: TFilterConfig[]; + configs: TFilterConfig[]; configMap: { - [key in TWorkItemFilterProperty]?: TFilterConfig; + [key in TWorkItemFilterProperty]?: TFilterConfig; }; isFilterEnabled: (key: TWorkItemFilterProperty) => boolean; members: IUserLite[]; @@ -326,7 +326,7 @@ export const useWorkItemFiltersConfig = (props: TUseWorkItemFiltersConfigProps): () => getCreatedAtFilterConfig("created_at")({ isEnabled: true, - filterIcon: Calendar, + filterIcon: CalendarLayoutIcon, ...operatorConfigs, }), [operatorConfigs] @@ -337,7 +337,7 @@ export const useWorkItemFiltersConfig = (props: TUseWorkItemFiltersConfigProps): () => getUpdatedAtFilterConfig("updated_at")({ isEnabled: true, - filterIcon: Calendar, + filterIcon: CalendarLayoutIcon, ...operatorConfigs, }), [operatorConfigs] diff --git a/packages/shared-state/src/store/rich-filters/config-manager.ts b/packages/shared-state/src/store/rich-filters/config-manager.ts index 62c079a883d..86400d8b5a0 100644 --- a/packages/shared-state/src/store/rich-filters/config-manager.ts +++ b/packages/shared-state/src/store/rich-filters/config-manager.ts @@ -3,7 +3,7 @@ import { computedFn } from "mobx-utils"; // plane imports import type { TConfigOptions } from "@plane/constants"; import { DEFAULT_FILTER_CONFIG_OPTIONS } from "@plane/constants"; -import type { TExternalFilter, TFilterConfig, TFilterProperty, TFilterValue } from "@plane/types"; +import type { TExternalFilter, TFilterConfig, TFilterProperty } from "@plane/types"; // local imports import type { IFilterConfig } from "./config"; import { FilterConfig } from "./config"; @@ -24,17 +24,17 @@ import type { IFilterInstance } from "./filter"; */ export interface IFilterConfigManager

{ // observables - filterConfigs: Map>; // filter property -> config + filterConfigs: Map>; // filter property -> config configOptions: TConfigOptions; areConfigsReady: boolean; // computed - allAvailableConfigs: IFilterConfig[]; + allAvailableConfigs: IFilterConfig

[]; // computed functions - getConfigByProperty: (property: P) => IFilterConfig | undefined; + getConfigByProperty: (property: P) => IFilterConfig

| undefined; // helpers - register: >(config: C) => void; - registerAll: (configs: TFilterConfig[]) => void; - updateConfigByProperty: (property: P, configUpdates: Partial>) => void; + register: >(config: C) => void; + registerAll: (configs: TFilterConfig

[]) => void; + updateConfigByProperty: (property: P, configUpdates: Partial>) => void; setAreConfigsReady: (value: boolean) => void; } @@ -115,7 +115,7 @@ export class FilterConfigManager< * @returns The config for the property, or undefined if not found. */ getConfigByProperty: IFilterConfigManager

["getConfigByProperty"] = computedFn( - (property) => this.filterConfigs.get(property) as IFilterConfig + (property) => this.filterConfigs.get(property) as IFilterConfig

); // ------------ helpers ------------ @@ -165,7 +165,7 @@ export class FilterConfigManager< // ------------ private computed ------------ - private get _allConfigs(): IFilterConfig[] { + private get _allConfigs(): IFilterConfig

[] { return Array.from(this.filterConfigs.values()); } @@ -173,7 +173,7 @@ export class FilterConfigManager< * Returns all enabled filterConfigs. * @returns All enabled filterConfigs. */ - private get _allEnabledConfigs(): IFilterConfig[] { + private get _allEnabledConfigs(): IFilterConfig

[] { return this._allConfigs.filter((config) => config.isEnabled); } diff --git a/packages/shared-state/src/store/rich-filters/config.ts b/packages/shared-state/src/store/rich-filters/config.ts index 3eb0cec0ae1..b7d6a4c0d2c 100644 --- a/packages/shared-state/src/store/rich-filters/config.ts +++ b/packages/shared-state/src/store/rich-filters/config.ts @@ -25,41 +25,35 @@ type TOperatorOptionForDisplay = { label: string; }; -export interface IFilterConfig

extends TFilterConfig< - P, - V -> { +export interface IFilterConfig

extends TFilterConfig

{ // computed allEnabledSupportedOperators: TSupportedOperators[]; firstOperator: TSupportedOperators | undefined; // computed functions getOperatorConfig: ( operator: TAllAvailableOperatorsForDisplay - ) => TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs] | undefined; + ) => TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs] | undefined; getLabelForOperator: (operator: TAllAvailableOperatorsForDisplay | undefined) => string; - getDisplayOperatorByValue: (operator: T, value: V) => T; - getAllDisplayOperatorOptionsByValue: (value: V) => TOperatorOptionForDisplay[]; + getDisplayOperatorByValue: (operator: T, value: TFilterValue) => T; + getAllDisplayOperatorOptionsByValue: (value: TFilterValue) => TOperatorOptionForDisplay[]; // actions - mutate: (updates: Partial>) => void; + mutate: (updates: Partial>) => void; } -export class FilterConfig

implements IFilterConfig< - P, - V -> { +export class FilterConfig

implements IFilterConfig

{ // observables - id: IFilterConfig["id"]; - label: IFilterConfig["label"]; - icon?: IFilterConfig["icon"]; - isEnabled: IFilterConfig["isEnabled"]; - supportedOperatorConfigsMap: IFilterConfig["supportedOperatorConfigsMap"]; - allowMultipleFilters: IFilterConfig["allowMultipleFilters"]; + id: IFilterConfig

["id"]; + label: IFilterConfig

["label"]; + icon?: IFilterConfig

["icon"]; + isEnabled: IFilterConfig

["isEnabled"]; + supportedOperatorConfigsMap: IFilterConfig

["supportedOperatorConfigsMap"]; + allowMultipleFilters: IFilterConfig

["allowMultipleFilters"]; /** * Creates a new FilterConfig instance. * @param params - The parameters for the filter config. */ - constructor(params: TFilterConfig) { + constructor(params: TFilterConfig

) { this.id = params.id; this.label = params.label; this.icon = params.icon; @@ -88,7 +82,7 @@ export class FilterConfig

["allEnabledSupportedOperators"] { + get allEnabledSupportedOperators(): IFilterConfig

["allEnabledSupportedOperators"] { return Array.from(this.supportedOperatorConfigsMap.entries()) .filter(([, operatorConfig]) => operatorConfig.isOperatorEnabled) .map(([operator]) => operator); @@ -98,7 +92,7 @@ export class FilterConfig

["firstOperator"] { + get firstOperator(): IFilterConfig

["firstOperator"] { return this.allEnabledSupportedOperators[0]; } @@ -109,7 +103,7 @@ export class FilterConfig

["getOperatorConfig"] = computedFn((operator) => + getOperatorConfig: IFilterConfig

["getOperatorConfig"] = computedFn((operator) => this.supportedOperatorConfigsMap.get(getOperatorForPayload(operator).operator) ); @@ -118,7 +112,7 @@ export class FilterConfig

["getLabelForOperator"] = computedFn((operator) => { + getLabelForOperator: IFilterConfig

["getLabelForOperator"] = computedFn((operator) => { if (!operator) return EMPTY_OPERATOR_LABEL; const operatorConfig = this.getOperatorConfig(operator); @@ -139,7 +133,7 @@ export class FilterConfig

["getDisplayOperatorByValue"] = computedFn((operator, value) => { + getDisplayOperatorByValue: IFilterConfig

["getDisplayOperatorByValue"] = computedFn((operator, value) => { const operatorConfig = this.getOperatorConfig(operator); if (operatorConfig?.type === FILTER_FIELD_TYPE.MULTI_SELECT && (Array.isArray(value) ? value.length : 0) <= 1) { return operatorConfig.singleValueOperator as typeof operator; @@ -155,28 +149,26 @@ export class FilterConfig

["getAllDisplayOperatorOptionsByValue"] = computedFn( - (value) => { - const operatorOptions: TOperatorOptionForDisplay[] = []; - - // Process each supported operator to build display options - for (const operator of this.allEnabledSupportedOperators) { - const displayOperator = this.getDisplayOperatorByValue(operator, value); - const displayOperatorLabel = this.getLabelForOperator(displayOperator); - operatorOptions.push({ - value: operator, - label: displayOperatorLabel, - }); - - const additionalOperatorOption = this._getAdditionalOperatorOptions(operator, value); - if (additionalOperatorOption) { - operatorOptions.push(additionalOperatorOption); - } + getAllDisplayOperatorOptionsByValue: IFilterConfig

["getAllDisplayOperatorOptionsByValue"] = computedFn((value) => { + const operatorOptions: TOperatorOptionForDisplay[] = []; + + // Process each supported operator to build display options + for (const operator of this.allEnabledSupportedOperators) { + const displayOperator = this.getDisplayOperatorByValue(operator, value); + const displayOperatorLabel = this.getLabelForOperator(displayOperator); + operatorOptions.push({ + value: operator, + label: displayOperatorLabel, + }); + + const additionalOperatorOption = this._getAdditionalOperatorOptions(operator, value); + if (additionalOperatorOption) { + operatorOptions.push(additionalOperatorOption); } - - return operatorOptions; } - ); + + return operatorOptions; + }); // ------------ actions ------------ @@ -184,11 +176,11 @@ export class FilterConfig

["mutate"] = action((updates) => { + mutate: IFilterConfig

["mutate"] = action((updates) => { runInAction(() => { for (const key in updates) { if (updates.hasOwnProperty(key)) { - const configKey = key as keyof TFilterConfig; + const configKey = key as keyof TFilterConfig

; set(this, configKey, updates[configKey]); } } @@ -199,6 +191,6 @@ export class FilterConfig

undefined; } diff --git a/packages/shared-state/src/store/rich-filters/filter.ts b/packages/shared-state/src/store/rich-filters/filter.ts index 9166dd6fe70..037126b805d 100644 --- a/packages/shared-state/src/store/rich-filters/filter.ts +++ b/packages/shared-state/src/store/rich-filters/filter.ts @@ -110,7 +110,11 @@ export interface IFilterInstance

void; updateConditionOperator: (conditionId: string, operator: TSupportedOperators, isNegation: boolean) => void; - updateConditionValue: (conditionId: string, value: SingleOrArray) => void; + updateConditionValue: ( + conditionId: string, + value: SingleOrArray, + forceUpdate?: boolean + ) => void; removeCondition: (conditionId: string) => void; // config actions clearFilters: () => Promise; @@ -439,9 +443,10 @@ export class FilterInstance

["updateConditionValue"] = action( - (conditionId: string, value: SingleOrArray) => { + (conditionId: string, value: SingleOrArray, forceUpdate: boolean = false) => { // If the expression is not valid, return if (!this.expression) return; @@ -458,7 +463,7 @@ export class FilterInstance

= { +export type TFilterConfig

= { id: P; label: string; icon?: React.FC>; isEnabled: boolean; allowMultipleFilters?: boolean; - supportedOperatorConfigsMap: TOperatorConfigMap; + supportedOperatorConfigsMap: TOperatorConfigMap; rightContent?: React.ReactNode; // content to display on the right side of the filter option in the dropdown tooltipContent?: React.ReactNode; // content to display when hovering over the applied filter item in the filter list }; diff --git a/packages/types/src/rich-filters/derived/core.ts b/packages/types/src/rich-filters/derived/core.ts index 5eec05ad0e6..8de890272d8 100644 --- a/packages/types/src/rich-filters/derived/core.ts +++ b/packages/types/src/rich-filters/derived/core.ts @@ -14,23 +14,23 @@ import type { TFilterOperatorHelper } from "./shared"; * Union type representing all core operators that support single date filter types. */ export type TCoreSupportedSingleDateFilterOperators = { - [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< - TCoreOperatorSpecificConfigs, + [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< + TCoreOperatorSpecificConfigs, K, TDateFilterFieldConfig >; -}[keyof TCoreOperatorSpecificConfigs]; +}[keyof TCoreOperatorSpecificConfigs]; /** * Union type representing all core operators that support range date filter types. */ export type TCoreSupportedRangeDateFilterOperators = { - [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< - TCoreOperatorSpecificConfigs, + [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< + TCoreOperatorSpecificConfigs, K, TDateRangeFilterFieldConfig >; -}[keyof TCoreOperatorSpecificConfigs]; +}[keyof TCoreOperatorSpecificConfigs]; /** * Union type representing all core operators that support date filter types. @@ -48,23 +48,23 @@ export type TCoreAllAvailableDateFilterOperatorsForDisplay = { - [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< - TCoreOperatorSpecificConfigs, + [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< + TCoreOperatorSpecificConfigs, K, TSingleSelectFilterFieldConfig >; -}[keyof TCoreOperatorSpecificConfigs]; +}[keyof TCoreOperatorSpecificConfigs]; /** * Union type representing all core operators that support multi select filter types. */ export type TCoreSupportedMultiSelectFilterOperators = { - [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< - TCoreOperatorSpecificConfigs, + [K in keyof TCoreOperatorSpecificConfigs]: TFilterOperatorHelper< + TCoreOperatorSpecificConfigs, K, TMultiSelectFilterFieldConfig >; -}[keyof TCoreOperatorSpecificConfigs]; +}[keyof TCoreOperatorSpecificConfigs]; /** * Union type representing all core operators that support any select filter types. diff --git a/packages/types/src/rich-filters/operator-configs/core.ts b/packages/types/src/rich-filters/operator-configs/core.ts index df2cd1210dd..3d1909ee7a9 100644 --- a/packages/types/src/rich-filters/operator-configs/core.ts +++ b/packages/types/src/rich-filters/operator-configs/core.ts @@ -8,19 +8,19 @@ import type { import type { CORE_COLLECTION_OPERATOR, CORE_COMPARISON_OPERATOR, CORE_EQUALITY_OPERATOR } from "../operators"; // ----------------------------- EXACT Operator ----------------------------- -export type TCoreExactOperatorConfigs = - | TSingleSelectFilterFieldConfig - | TDateFilterFieldConfig; +export type TCoreExactOperatorConfigs = + | TSingleSelectFilterFieldConfig + | TDateFilterFieldConfig; // ----------------------------- IN Operator ----------------------------- -export type TCoreInOperatorConfigs = TMultiSelectFilterFieldConfig; +export type TCoreInOperatorConfigs = TMultiSelectFilterFieldConfig; // ----------------------------- RANGE Operator ----------------------------- -export type TCoreRangeOperatorConfigs = TDateRangeFilterFieldConfig; +export type TCoreRangeOperatorConfigs = TDateRangeFilterFieldConfig; // ----------------------------- Core Operator Specific Configs ----------------------------- -export type TCoreOperatorSpecificConfigs = { - [CORE_EQUALITY_OPERATOR.EXACT]: TCoreExactOperatorConfigs; - [CORE_COLLECTION_OPERATOR.IN]: TCoreInOperatorConfigs; - [CORE_COMPARISON_OPERATOR.RANGE]: TCoreRangeOperatorConfigs; +export type TCoreOperatorSpecificConfigs = { + [CORE_EQUALITY_OPERATOR.EXACT]: TCoreExactOperatorConfigs; + [CORE_COLLECTION_OPERATOR.IN]: TCoreInOperatorConfigs; + [CORE_COMPARISON_OPERATOR.RANGE]: TCoreRangeOperatorConfigs; }; diff --git a/packages/types/src/rich-filters/operator-configs/extended.ts b/packages/types/src/rich-filters/operator-configs/extended.ts index 6004b9ce759..20b08465716 100644 --- a/packages/types/src/rich-filters/operator-configs/extended.ts +++ b/packages/types/src/rich-filters/operator-configs/extended.ts @@ -1,13 +1,11 @@ -import type { TFilterValue } from "../expression"; - // ----------------------------- EXACT Operator ----------------------------- -export type TExtendedExactOperatorConfigs<_V extends TFilterValue> = never; +export type TExtendedExactOperatorConfigs = never; // ----------------------------- IN Operator ----------------------------- -export type TExtendedInOperatorConfigs<_V extends TFilterValue> = never; +export type TExtendedInOperatorConfigs = never; // ----------------------------- RANGE Operator ----------------------------- -export type TExtendedRangeOperatorConfigs<_V extends TFilterValue> = never; +export type TExtendedRangeOperatorConfigs = never; // ----------------------------- Extended Operator Specific Configs ----------------------------- -export type TExtendedOperatorSpecificConfigs<_V extends TFilterValue> = unknown; +export type TExtendedOperatorSpecificConfigs = unknown; diff --git a/packages/types/src/rich-filters/operator-configs/index.ts b/packages/types/src/rich-filters/operator-configs/index.ts index 252df7fe8a6..562befb49a7 100644 --- a/packages/types/src/rich-filters/operator-configs/index.ts +++ b/packages/types/src/rich-filters/operator-configs/index.ts @@ -1,4 +1,3 @@ -import type { TFilterValue } from "../expression"; import type { EQUALITY_OPERATOR, COLLECTION_OPERATOR, COMPARISON_OPERATOR } from "../operators"; import type { TCoreExactOperatorConfigs, TCoreInOperatorConfigs, TCoreRangeOperatorConfigs } from "./core"; import type { @@ -13,21 +12,17 @@ import type { /** * EXACT operator - combines core and extended configurations */ -export type TExactOperatorConfigs = - | TCoreExactOperatorConfigs - | TExtendedExactOperatorConfigs; +export type TExactOperatorConfigs = TCoreExactOperatorConfigs | TExtendedExactOperatorConfigs; /** * IN operator - combines core and extended configurations */ -export type TInOperatorConfigs = TCoreInOperatorConfigs | TExtendedInOperatorConfigs; +export type TInOperatorConfigs = TCoreInOperatorConfigs | TExtendedInOperatorConfigs; /** * RANGE operator - combines core and extended configurations */ -export type TRangeOperatorConfigs = - | TCoreRangeOperatorConfigs - | TExtendedRangeOperatorConfigs; +export type TRangeOperatorConfigs = TCoreRangeOperatorConfigs | TExtendedRangeOperatorConfigs; // ----------------------------- Final Operator Specific Configs ----------------------------- @@ -35,19 +30,19 @@ export type TRangeOperatorConfigs = * Type-safe mapping of specific operators to their supported filter type configurations. * Each operator maps to its composed (core + extended) configurations. */ -export type TOperatorSpecificConfigs = { - [EQUALITY_OPERATOR.EXACT]: TExactOperatorConfigs; - [COLLECTION_OPERATOR.IN]: TInOperatorConfigs; - [COMPARISON_OPERATOR.RANGE]: TRangeOperatorConfigs; -} & TExtendedOperatorSpecificConfigs; +export type TOperatorSpecificConfigs = { + [EQUALITY_OPERATOR.EXACT]: TExactOperatorConfigs; + [COLLECTION_OPERATOR.IN]: TInOperatorConfigs; + [COMPARISON_OPERATOR.RANGE]: TRangeOperatorConfigs; +} & TExtendedOperatorSpecificConfigs; /** * Operator filter configuration mapping - for different operators. * Provides type-safe mapping of operators to their specific supported configurations. */ -export type TOperatorConfigMap = Map< - keyof TOperatorSpecificConfigs, - TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs] +export type TOperatorConfigMap = Map< + keyof TOperatorSpecificConfigs, + TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs] >; // -------- RE-EXPORTS -------- diff --git a/packages/utils/src/rich-filters/factories/configs/properties/shared.ts b/packages/utils/src/rich-filters/factories/configs/properties/shared.ts index 1ffd9c67bd6..b21ddf5bae8 100644 --- a/packages/utils/src/rich-filters/factories/configs/properties/shared.ts +++ b/packages/utils/src/rich-filters/factories/configs/properties/shared.ts @@ -41,7 +41,7 @@ export const getMemberMultiSelectConfig = (params: TCreateUserFilterParams, sing // ------------ Date Operators ------------ -export const getSupportedDateOperators = (params: TCreateDateFilterParams): TOperatorConfigMap => +export const getSupportedDateOperators = (params: TCreateDateFilterParams): TOperatorConfigMap => new Map([ createOperatorConfigEntry(EQUALITY_OPERATOR.EXACT, params, (updatedParams) => getDatePickerConfig(updatedParams)), createOperatorConfigEntry(COMPARISON_OPERATOR.RANGE, params, (updatedParams) => diff --git a/packages/utils/src/rich-filters/factories/configs/shared.ts b/packages/utils/src/rich-filters/factories/configs/shared.ts index b67b1b1077a..51a57db8b08 100644 --- a/packages/utils/src/rich-filters/factories/configs/shared.ts +++ b/packages/utils/src/rich-filters/factories/configs/shared.ts @@ -11,6 +11,7 @@ import type { TSingleSelectFilterFieldConfig, TSupportedFilterFieldConfigs, TSupportedOperators, + TOperatorSpecificConfigs, } from "@plane/types"; /** @@ -18,9 +19,7 @@ import type { * @param config - The filter config to create * @returns The created filter config */ -export const createFilterConfig =

( - config: TFilterConfig -): TFilterConfig => config; +export const createFilterConfig =

(config: TFilterConfig

): TFilterConfig

=> config; /** * Base parameters for filter type config factory functions. @@ -56,16 +55,20 @@ export type TCreateDateFilterParams = TCreateFilterConfigParams & IFilterIconCon /** * Helper to create an operator entry for the supported operators map. * This ensures consistency between the operator key and the operator passed to the config function. + * Returns a type compatible with TOperatorSpecificConfigs so Map constructor accepts union types. * @param operator - The operator to use as both key and parameter * @param createParams - The base filter configuration parameters * @param configFn - Function that creates the operator config using base configuration - * @returns A tuple of operator and its config + * @returns A tuple of operator and its config, typed to be compatible with operator configs map */ -export const createOperatorConfigEntry = ( +export const createOperatorConfigEntry = < + T extends TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs], + P extends TCreateFilterConfigParams, +>( operator: TSupportedOperators, createParams: P, configFn: (updatedParams: P) => T -): [TSupportedOperators, T] => [ +): [TSupportedOperators, TOperatorSpecificConfigs[keyof TOperatorSpecificConfigs]] => [ operator, configFn({ isOperatorEnabled: createParams.allowedOperators.has(operator), ...createParams }), ]; diff --git a/packages/utils/src/work-item-filters/configs/filters/cycle.ts b/packages/utils/src/work-item-filters/configs/filters/cycle.ts index 9e67fc39be9..0999f1d1fa6 100644 --- a/packages/utils/src/work-item-filters/configs/filters/cycle.ts +++ b/packages/utils/src/work-item-filters/configs/filters/cycle.ts @@ -45,7 +45,7 @@ export const getCycleMultiSelectConfig = (params: TCreateCycleFilterParams, sing export const getCycleFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateCycleFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Cycle", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/date.ts b/packages/utils/src/work-item-filters/configs/filters/date.ts index 9137122275f..8d2d954f523 100644 --- a/packages/utils/src/work-item-filters/configs/filters/date.ts +++ b/packages/utils/src/work-item-filters/configs/filters/date.ts @@ -15,7 +15,7 @@ import { createFilterConfig, getSupportedDateOperators } from "../../../rich-fil export const getStartDateFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateDateFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Start date", ...params, @@ -33,7 +33,7 @@ export const getStartDateFilterConfig = export const getTargetDateFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateDateFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Target date", ...params, @@ -51,7 +51,7 @@ export const getTargetDateFilterConfig = export const getCreatedAtFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateDateFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Created at", ...params, @@ -69,7 +69,7 @@ export const getCreatedAtFilterConfig = export const getUpdatedAtFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateDateFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Updated at", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/label.ts b/packages/utils/src/work-item-filters/configs/filters/label.ts index bcc79be9819..909c074628e 100644 --- a/packages/utils/src/work-item-filters/configs/filters/label.ts +++ b/packages/utils/src/work-item-filters/configs/filters/label.ts @@ -45,7 +45,7 @@ export const getLabelMultiSelectConfig = (params: TCreateLabelFilterParams, sing export const getLabelFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateLabelFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Label", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/module.ts b/packages/utils/src/work-item-filters/configs/filters/module.ts index d0dd279a9f0..cec6216de67 100644 --- a/packages/utils/src/work-item-filters/configs/filters/module.ts +++ b/packages/utils/src/work-item-filters/configs/filters/module.ts @@ -45,7 +45,7 @@ export const getModuleMultiSelectConfig = (params: TCreateModuleFilterParams) => export const getModuleFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateModuleFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Module", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/priority.ts b/packages/utils/src/work-item-filters/configs/filters/priority.ts index 77ef6c4926c..f12dca03a4d 100644 --- a/packages/utils/src/work-item-filters/configs/filters/priority.ts +++ b/packages/utils/src/work-item-filters/configs/filters/priority.ts @@ -49,7 +49,7 @@ export const getPriorityMultiSelectConfig = ( export const getPriorityFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreatePriorityFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Priority", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/project.ts b/packages/utils/src/work-item-filters/configs/filters/project.ts index 0088e236952..1ee735971e7 100644 --- a/packages/utils/src/work-item-filters/configs/filters/project.ts +++ b/packages/utils/src/work-item-filters/configs/filters/project.ts @@ -16,7 +16,7 @@ import { createFilterConfig, createOperatorConfigEntry, getProjectMultiSelectCon export const getProjectFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateProjectFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Projects", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/shared.ts b/packages/utils/src/work-item-filters/configs/filters/shared.ts index 67fe5237884..eb8dc578326 100644 --- a/packages/utils/src/work-item-filters/configs/filters/shared.ts +++ b/packages/utils/src/work-item-filters/configs/filters/shared.ts @@ -12,7 +12,7 @@ import { // ------------ Date filter ------------ -export const getSupportedDateOperators = (params: TCreateDateFilterParams): TOperatorConfigMap => +export const getSupportedDateOperators = (params: TCreateDateFilterParams): TOperatorConfigMap => new Map([ createOperatorConfigEntry(EQUALITY_OPERATOR.EXACT, params, (updatedParams) => getDatePickerConfig(updatedParams)), createOperatorConfigEntry(COMPARISON_OPERATOR.RANGE, params, (updatedParams) => diff --git a/packages/utils/src/work-item-filters/configs/filters/state.ts b/packages/utils/src/work-item-filters/configs/filters/state.ts index 0962e13bb19..bbef817fa39 100644 --- a/packages/utils/src/work-item-filters/configs/filters/state.ts +++ b/packages/utils/src/work-item-filters/configs/filters/state.ts @@ -48,7 +48,7 @@ export const getStateGroupMultiSelectConfig = ( export const getStateGroupFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateStateGroupFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "State Group", ...params, @@ -102,7 +102,7 @@ export const getStateMultiSelectConfig = (params: TCreateStateFilterParams, sing export const getStateFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateStateFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "State", ...params, diff --git a/packages/utils/src/work-item-filters/configs/filters/user.ts b/packages/utils/src/work-item-filters/configs/filters/user.ts index 297fcd5ab37..31bf614a36f 100644 --- a/packages/utils/src/work-item-filters/configs/filters/user.ts +++ b/packages/utils/src/work-item-filters/configs/filters/user.ts @@ -21,7 +21,7 @@ export type TCreateAssigneeFilterParams = TCreateUserFilterParams; export const getAssigneeFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateAssigneeFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Assignees", ...params, @@ -49,7 +49,7 @@ export type TCreateMentionFilterParams = TCreateUserFilterParams; export const getMentionFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateMentionFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Mentions", ...params, @@ -77,7 +77,7 @@ export type TCreateCreatedByFilterParams = TCreateUserFilterParams; export const getCreatedByFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateCreatedByFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Created by", ...params, @@ -105,7 +105,7 @@ export type TCreateSubscriberFilterParams = TCreateUserFilterParams; export const getSubscriberFilterConfig =

(key: P): TCreateFilterConfig => (params: TCreateSubscriberFilterParams) => - createFilterConfig({ + createFilterConfig

({ id: key, label: "Subscriber", ...params,