package Ġcom . alg ol ia . instant search . insights . internal . data . local . mapper Ċ Ċ import Ġcom . alg ol ia . instant search . insights . internal . data . local . model . Facet Key Ċ import Ġcom . alg ol ia . instant search . insights . internal . data . local . model . Filter Facet DO Ċ import Ġcom . alg ol ia . instant search . insights . internal . data . local . model . ValueType Ċ import Ġcom . alg ol ia . search . helper . to Attribute Ċ import Ġcom . alg ol ia . search . model . filter . Filter Ċ Ċ internal Ġobject ĠFilter Facet Mapper Ġ: ĠMapper < Filter . Facet , ĠFilter Facet DO > Ġ{ ĊĊĠĠĠ Ġ@ Opt In ( Experimental Std lib Api :: class ) ĊĠĠĠ Ġoverride Ġfun Ġmap ( input : ĠFilter . Facet ): ĠFilter Facet DO Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuild Map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( Facet Key . Attribute . raw , Ġinput . attribute . raw ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( Facet Key . Is Neg ated . raw , Ġinput . is Neg ated ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( Facet Key . Value . raw , Ġinput . value . getRaw ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( Facet Key . ValueType . raw , Ġinput . value . getType (). raw ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput . score ?. let Ġ{ Ġput ( Facet Key . Score . raw , Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFilter . Facet . Value . getRaw (): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . String Ġ-> Ġraw ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . Boolean Ġ-> Ġraw ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . Number Ġ-> Ġraw ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠFilter . Facet . Value . getType (): ĠValueType Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . String Ġ-> ĠValueType . String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . Boolean Ġ-> ĠValueType . Boolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFilter . Facet . Value . Number Ġ-> ĠValueType . Number ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun map ( input : ĠFilter Facet DO ): ĠFilter . Facet Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġattribute Ġ= Ġinput . getValue ( Facet Key . Attribute . raw ). toString (). to Attribute () ĊĠĠĠĠĠĠĠ Ġval Ġis Neg ated Ġ= Ġinput . getValue ( Facet Key . Is Neg ated . raw ) Ġas ĠBoolean ĊĠĠĠĠĠĠĠ Ġval Ġvalue Type Ġ= ĠValueType . of (( input . getValue ( Facet Key . ValueType . raw ) Ġas ĠString )) ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġinput . getValue ( Facet Key . Value . raw ) ĊĠĠĠĠĠĠĠ Ġval Ġscore Ġ= Ġinput [ Facet Key . Score . raw ] Ġas ĠInt ? ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( valueType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValueType . String Ġ-> ĠFilter . Facet ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Ġ= Ġattribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Neg ated Ġ= Ġis Neg ated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscore Ġ= Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValueType . Boolean Ġ-> ĠFilter . Facet ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Ġ= Ġattribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġas ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Neg ated Ġ= Ġis Neg ated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscore Ġ= Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValueType . Number Ġ-> ĠFilter . Facet ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Ġ= Ġattribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġas ĠNumber , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Neg ated Ġ= Ġis Neg ated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscore Ġ= Ġscore ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ