@@ -69,16 +69,42 @@ define(['knockout', 'text!./faceted-datatable.html', 'crossfilter', 'utils/Commo
6969 self . outsideFilters = ( params . outsideFilters || ko . observable ( ) ) . extend ( { notify : 'always' } ) ;
7070
7171 self . setDataLocalStorage = ( data , nameItem ) => {
72- const filterArrayString = localStorage . getItem ( nameItem )
73- let filterArrayObj = filterArrayString ? JSON . parse ( filterArrayString ) : [ ]
72+ const filterString = localStorage . getItem ( nameItem ) ;
73+ let filterObj = filterString ? JSON . parse ( filterString ) : [ ] ;
7474
75- if ( ! data ?. selected ( ) ) {
76- filterArrayObj . push ( { title :data . facet . caption ( ) , value :`${ data . key } (${ data . value } )` , key :data . key } )
77- } else {
78- filterArrayObj = filterArrayObj . filter ( ( item ) => item . key !== data . key )
75+ if ( Array . isArray ( filterObj ) ) {
76+ if ( ! data ?. selected ( ) ) {
77+ filterObj . push ( {
78+ title : data . facet . caption ( ) ,
79+ value : `${ data . key } (${ data . value } )` ,
80+ key : data . key
81+ } ) ;
82+ } else {
83+ filterObj = filterObj . filter ( ( item ) => item . key !== data . key ) ;
84+ }
85+ } else if ( typeof filterObj === 'object' && filterObj . filterColumns ) {
86+ if ( ! data ?. selected ( ) ) {
87+ const dataPush = {
88+ title : data . facet . caption ( ) ,
89+ value : `${ data . key } (${ data . value } )` ,
90+ key : data . key
91+ } ;
92+ filterObj . filterColumns = [ ...filterObj . filterColumns , dataPush ] ;
93+ } else {
94+ filterObj . filterColumns = filterObj . filterColumns . filter ( ( item ) => item . key !== data . key ) ;
95+ }
96+ } else {
97+ filterObj = [
98+ {
99+ title : data . facet . caption ( ) ,
100+ value : `${ data . key } (${ data . value } )` ,
101+ key : data . key
102+ }
103+ ] ;
79104 }
80- localStorage . setItem ( nameItem , JSON . stringify ( filterArrayObj ) )
81- }
105+
106+ localStorage . setItem ( nameItem , JSON . stringify ( filterObj ) ) ;
107+ } ;
82108
83109 self . setDataObjectLocalStorage = ( data , nameItem ) => {
84110 const filterObjString = localStorage . getItem ( nameItem )
0 commit comments