diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts index 0da3e32aa5d88..2188d1583c44a 100644 --- a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts @@ -41,14 +41,6 @@ export const element: CanvasElement = { filter: '', }; -export const element: CanvasElement = { - id: '0', - position: generatePosition(0), - type: 'element', - expression: `filters group="${group2}"`, - filter: '', -}; - const element1: CanvasElement = { id: '1', position: generatePosition(1), diff --git a/x-pack/plugins/canvas/public/functions/filters.ts b/x-pack/plugins/canvas/public/functions/filters.ts index ca2cede4e8555..e410a37a44fa2 100644 --- a/x-pack/plugins/canvas/public/functions/filters.ts +++ b/x-pack/plugins/canvas/public/functions/filters.ts @@ -15,7 +15,6 @@ import { getGlobalFilters, getWorkpadVariablesAsObject } from '../state/selector import { ExpressionValueFilter } from '../../types'; import { getFunctionHelp } from '../../i18n'; import { InitializeArguments } from '.'; -import { getFiltersByGroups } from '../lib/filter'; export interface Arguments { group: string[]; @@ -36,7 +35,11 @@ function getFiltersByGroup(allFilters: string[], groups?: string[], ungrouped = }); } - return getFiltersByGroups(allFilters, groups); + return allFilters.filter((filter) => { + const ast = fromExpression(filter); + const expGroups: string[] = get(ast, 'chain[0].arguments.filterGroup', []); + return expGroups.length > 0 && expGroups.every((expGroup) => groups.includes(expGroup)); + }); } type FiltersFunction = ExpressionFunctionDefinition<