Advanced filter component for creating complex query string.

Advanced filter supports below operators as shown in table below:

#OpTrue ifExample
1=Equal to (implicit equal to)customerSector=1001
2eqEqual tocustomerSector:eq=1001
3ltLess thancustomerAge:lt=60
4gtGreater thancustomerAge:gt=21
5leLess than or equal tobalance:le=1000
6geGreater than or equal tobalance:ge=0
7ciContained in an array of valuescurrency:ci=[USD,EUR,GBP]
8rgIn Rangeamount:rg=[1000,9999]
9ctContains the substringnarratives:ct=Coffee
10bwBegins with the substringindustry:bw=Entertain
11ewEnds with the substringindustry:ew=Sports
12neqNot equal tocustomerSector:neq=2001
13nciNot in an array of valuescountryCode:nci=[NZ,AU]
14ncsDoes not contain the substringnarratives:ncs=pizza
15nbwDoes not begin with the substringaccountType:nbw=CURR
16newDoes not end with the substringstatus:new=PENDING
17nrgNot in rangecategory:nrg=[1001,9999]

For string type:

= Equal to (implicit equal to)
eq Equal to
ci Contained in an array of values
ct Contains the substring
bw Begins with the substring
ew Ends with the substring
neq Not equal to
nci Not in an array of values
ncs Does not contain the substring
nbw Does not begin with the substring
new Does not end with the substring

For number / date / amount:

= Equal to (implicit equal to)
eq Equal to
neq Not equal to
lt Less than
gt Greater than
le Less than or equal to
ge Greater than or equal to
rg In range
nrg Not in range

For select:

= Equal to (implicit equal to)
eq Equal to
neq Not equal to

It's also possible to display only a subset of values for each type using operators field in advancedFilterSpec

operators: ['eq', 'neq']

The component wouldn't produce any logs by default and in order to enable it writing logs to the console, the user should set the attribute _debug in the component and after doing it, one can refer to the browser’s console to find logs of the component. it has a log prefix of [advanced-filter.ts] and with that the consumer can differentiate this component's logs from other logs being written in the console.