diff --git a/src/plugins/discover/public/application/components/sidebar/lib/field_filter.ts b/src/plugins/discover/public/application/components/sidebar/lib/field_filter.ts index 5517011f057188..8c7e48f173031d 100644 --- a/src/plugins/discover/public/application/components/sidebar/lib/field_filter.ts +++ b/src/plugins/discover/public/application/components/sidebar/lib/field_filter.ts @@ -59,6 +59,7 @@ export function isFieldFiltered( const scriptedOrMissing = !filterState.missing || field.type === '_source' || + field.type === 'unknown_selected' || field.scripted || fieldCounts[field.name] > 0; const needle = filterState.name ? filterState.name.toLowerCase() : ''; diff --git a/src/plugins/discover/public/application/components/sidebar/lib/group_fields.test.ts b/src/plugins/discover/public/application/components/sidebar/lib/group_fields.test.ts index 9792e98ba84c7d..68099fb0c8e2a0 100644 --- a/src/plugins/discover/public/application/components/sidebar/lib/group_fields.test.ts +++ b/src/plugins/discover/public/application/components/sidebar/lib/group_fields.test.ts @@ -217,6 +217,20 @@ describe('group_fields', function () { ]); }); + it('should filter fields by a given name', function () { + const fieldFilterState = { ...getDefaultFieldFilter(), ...{ name: 'curr' } }; + + const actual1 = groupFields( + fields as IndexPatternField[], + ['customer_birth_date', 'currency', 'unknown'], + 5, + fieldCounts, + fieldFilterState, + false + ); + expect(actual1.selected.map((field) => field.name)).toEqual(['currency']); + }); + it('excludes unmapped fields if showUnmappedFields set to false', function () { const fieldFilterState = getDefaultFieldFilter(); const fieldsWithUnmappedField = [...fields]; diff --git a/src/plugins/discover/public/application/components/sidebar/lib/group_fields.tsx b/src/plugins/discover/public/application/components/sidebar/lib/group_fields.tsx index eefb96b78aac66..dc6cbcedc80864 100644 --- a/src/plugins/discover/public/application/components/sidebar/lib/group_fields.tsx +++ b/src/plugins/discover/public/application/components/sidebar/lib/group_fields.tsx @@ -71,10 +71,18 @@ export function groupFields( } } } - // add columns, that are not part of the index pattern, to be removeable + // add selected columns, that are not part of the index pattern, to be removeable for (const column of columns) { - if (!result.selected.find((field) => field.name === column)) { - result.selected.push({ name: column, displayName: column } as IndexPatternField); + const tmpField = { + name: column, + displayName: column, + type: 'unknown_selected', + } as IndexPatternField; + if ( + !result.selected.find((field) => field.name === column) && + isFieldFiltered(tmpField, fieldFilterState, fieldCounts) + ) { + result.selected.push(tmpField); } } result.selected.sort((a, b) => {