@@ -75,6 +75,28 @@ export const getFilteredIndexPatterns = (
7575 }
7676} ;
7777
78+ // fields.filter(({ name }) => {
79+ // if (field != null && selectedFieldIsTextType) {
80+ // const keywordField = field.split('.').slice(-1).join('.');
81+
82+ // return field === name || name === keywordField;
83+ // } else {
84+ // return field != null && field === name;
85+ // }
86+ // }).reduce<{ foundField: IFieldType | null; foundKeywordField: IFieldType | null}>((acc, foundField) => {
87+ // if (selectedFieldIsTextType && foundField.esTypes != null && foundField.esTypes.includes('keyword')) {
88+ // return {
89+ // ...acc,
90+ // foundKeywordField: foundField,
91+ // }
92+ // } else {
93+ // return {
94+ // ...acc,
95+ // foundField
96+ // }
97+ // }
98+ // }, { foundField: null, foundKeywordField: null});
99+
78100/**
79101 * Formats the entry into one that is easily usable for the UI, most of the
80102 * complexity was introduced with nested fields
@@ -95,11 +117,41 @@ export const getFormattedBuilderEntry = (
95117) : FormattedBuilderEntry => {
96118 const { fields } = indexPattern ;
97119 const field = parent != null ? `${ parent . field } .${ item . field } ` : item . field ;
120+ const selectedFieldIsTextType = field != null && field . split ( '.' ) . slice ( - 1 ) [ 0 ] === 'text' ;
98121 const [ selectedField ] = fields . filter ( ( { name } ) => field != null && field === name ) ;
122+ const foundFields = fields
123+ . filter ( ( { name } ) => {
124+ if ( field != null && selectedFieldIsTextType ) {
125+ const fieldBits = field . split ( '.' ) ;
126+ const keywordField = fieldBits . slice ( 0 , fieldBits . length - 1 ) . join ( '.' ) ;
127+
128+ return field === name || name === keywordField ;
129+ } else {
130+ return field != null && field === name ;
131+ }
132+ } )
133+ . reduce < { foundField : IFieldType ; foundKeywordField : IFieldType } > ( ( acc , foundField ) => {
134+ if (
135+ selectedFieldIsTextType &&
136+ foundField . esTypes != null &&
137+ foundField . esTypes . includes ( 'keyword' )
138+ ) {
139+ return {
140+ ...acc ,
141+ foundKeywordField : foundField ,
142+ } ;
143+ } else {
144+ return {
145+ ...acc ,
146+ foundField,
147+ } ;
148+ }
149+ } , { } ) ;
99150
100151 if ( parent != null && parentIndex != null ) {
101152 return {
102- field : selectedField ,
153+ field : foundFields . foundField ,
154+ correspondingKeywordField : foundFields . foundKeywordField ,
103155 operator : getExceptionOperatorSelect ( item ) ,
104156 value : getEntryValue ( item ) ,
105157 nested : 'child' ,
@@ -108,7 +160,8 @@ export const getFormattedBuilderEntry = (
108160 } ;
109161 } else {
110162 return {
111- field : selectedField ,
163+ field : foundFields . foundField ,
164+ correspondingKeywordField : foundFields . foundKeywordField ,
112165 operator : getExceptionOperatorSelect ( item ) ,
113166 value : getEntryValue ( item ) ,
114167 nested : undefined ,
0 commit comments