package Ġcom . alg ol ia . instant search . helper . tracker . internal Ċ Ċ import Ġcom . alg ol ia . instant search . helper . filter . state . to Filter Ċ import Ġcom . alg ol ia . instant search . helper . tracker . Filter Tracker Ċ import Ġcom . alg ol ia . instant search . insights . Filter Track able Ċ import Ġcom . alg ol ia . search . model . Attribute Ċ import Ġcom . alg ol ia . search . model . filter . Filter Ċ import Ġcom . alg ol ia . search . model . insights . Event Name Ċ import Ġcom . alg ol ia . search . model . search . Facet Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠTracker Ġof Ġfilter Ġevents Ġinsights . Ċ Ġ*/ Ċ internal Ġclass ĠFilter Data Tracker ( ĊĠĠĠ Ġoverride Ġval ĠeventName : ĠEvent Name , ĊĠĠĠ Ġoverride Ġval Ġtrack able Searcher : ĠTrack able Searcher <* >, ĊĠĠĠ Ġoverride Ġval Ġtracker : ĠFilter Track able , ĊĠĠĠ Ġoverride Ġval Ġtracker Scope : ĠCor outine Scope Ġ= ĠInsights Scope (), Ċ ) Ġ: ĠFilter Tracker , ĠInsights Tracker < Filter Track able > Ġ{ ĊĊĠĠĠ Ġ// Ġregion ĠFilter Ġtracking Ġmethods ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack Click ( filter : ĠFilter . Facet , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtracker Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracker . clicked Filters ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠeventName Ġ= Ġcustom Event Name Ġ?: ĠeventName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠlistOf ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack View ( filter : ĠFilter . Facet , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtracker Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracker . view ed Filters ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠeventName Ġ= Ġcustom Event Name Ġ?: ĠeventName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠlistOf ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack Conversion ( filter : ĠFilter . Facet , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtracker Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtracker . converted Filters ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠeventName Ġ= Ġcustom Event Name Ġ?: ĠeventName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilters Ġ= ĠlistOf ( filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġend region ĊĊĠĠĠ Ġ// Ġregion ĠFac et Ġtracking Ġmethods ĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack Click ( facet : ĠFac et , Ġattribute : ĠAttribute , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Facet Ġ= Ġfacet . to Filter ( attribute ) ĊĠĠĠĠĠĠĠ Ġtrack Click ( filter Ġ= Ġfilter Facet , Ġcustom Event Name Ġ= Ġcustom Event Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack View ( facet : ĠFac et , Ġattribute : ĠAttribute , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Facet Ġ= Ġfacet . to Filter ( attribute ) ĊĠĠĠĠĠĠĠ Ġtrack View ( filter Ġ= Ġfilter Facet , Ġcustom Event Name Ġ= Ġcustom Event Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġtrack Conversion ( facet : ĠFac et , Ġattribute : ĠAttribute , Ġcustom Event Name : ĠEvent Name ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfilter Facet Ġ= Ġfacet . to Filter ( attribute ) ĊĠĠĠĠĠĠĠ Ġtrack Conversion ( filter Ġ= Ġfilter Facet , Ġcustom Event Name Ġ= Ġcustom Event Name ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġend region Ċ } Ċ