PageSourceSearch

https://www.felicitysolar.com/wp-content/uploads/ac_assets/active-filters/ue-active-filters.js?ver=1.5.143

js felicitysolar.com collected 2026-10-04 09:15:33 UTC 4,983 bytes, 217 lines download raw bytes

1function ueActiveFiters(){
2  
3  //classes
4  var g_removeButtonClass, g_activeFiltersItemClass;
5  
6  //selectors
7  var g_removeButtonSelector, g_activeFiltersItemSelector;
8  
9  //objects
10  var g_objWidget, g_itemsHolder, g_objFilterableGrid;
11  
12  //custom attrs
13  
14  //helpers
15  var g_arrayFilterItems;
16  
17  //events name
18  var g_removeActiveFilterItemEvent, g_clearFiltersEvent;
19  
20  /**
21  * get filter key
22  */
23  function getFilterKey(arrItem){
24    
25    var key = arrItem.key;
26    var slug = arrItem.slug;
27    var taxonomy = getTaxonomy(arrItem);
28    
29    if(key === undefined)      
30    key = "term|"+taxonomy+"|"+slug;
31    
32    return(key);
33    
34  }
35  
36  /**
37  * get filter key
38  */
39  function getTitle(arrItem){
40    
41    var title;
42    var slug = arrItem.slug;
43    
44    title = arrItem.title;
45    
46    if(title === undefined)
47    title = slug
48    
49    title = decodeURIComponent(title);
50    
51    return(title);
52    
53  }
54  
55  /**
56  * get filter item type
57  */
58  function getType(arrItem){
59    
60    var type = arrItem.type;
61    
62    return(type);
63    
64  }
65  
66  /**
67  * get filter key
68  */
69  function getTaxonomy(arrItem){
70    
71    var taxonomy;
72    
73    taxonomy = arrItem.taxonomy;
74    
75    if(taxonomy === undefined)
76    taxonomy = null
77    
78    return(taxonomy);
79    
80  }
81  
82  /**
83  * get object for arrItem
84  */
85  function getArrItemObject(title, key, type){
86    
87    var filterItemHtml = '<div class="'+g_activeFiltersItemClass+'" data-type="'+type+'" data-key="'+key+'">'+title+' <span class="'+g_removeButtonClass+'" style="color: red; font-weight: 700;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 61 61"><rect x="25" y="-7" width="11" height="75.41" transform="translate(-13 31) rotate(-45)"/><rect x="25" y="-7" width="11" height="75.31" transform="translate(31 -13) rotate(45)"/></svg> </span></div>';
88    
89    return(filterItemHtml);
90    
91  }
92  
93  /**
94  * check if g_arrayFilterItems contains search type item
95  */
96  function checkSearchTypeFilterAndReplace(){
97    
98    g_arrayFilterItems.forEach(function(element, index){
99      
100      var objElement = jQuery(element);
101      
102      if(objElement.data('type') === 'search')      
103      g_arrayFilterItems.splice(index, 1);
104      
105    });
106    
107  }
108  
109  /**
110  * put items in the list 
111  */
112  this.putfilterItemsInList = function(arrActiveItems){
113    
114    var arrNum = arrActiveItems.length;
115
116    g_arrayFilterItems.length = 0;
117    
118    for(let i=0;i<arrNum;i++){
119      
120      var arrItem = arrActiveItems[i];
121      
122      var key = getFilterKey(arrItem);
123      var title = getTitle(arrItem);
124      var type = getType(arrItem);
125      
126      var filterItemElem = getArrItemObject(title, key, type);
127      
128      //if item type is search see if there is such item already and replaсe it
129      checkSearchTypeFilterAndReplace();
130      
131      if(g_arrayFilterItems.indexOf(filterItemElem) == -1)
132      g_arrayFilterItems.push(filterItemElem);
133      
134    }
135    
136    g_itemsHolder.html(g_arrayFilterItems);
137    
138  }
139  
140  /*
141  * on remove button click
142  */
143  function onRemoveButtonClick(){
144    
145    var objButton = jQuery(this);
146    var objFilterItem = objButton.parents(g_activeFiltersItemSelector);
147   
148    var key = objFilterItem.data("key");
149    var itemToRemoveHTML = objFilterItem[0].outerHTML;
150  
151    //remove item from array, svg remove icon
152    g_arrayFilterItems = g_arrayFilterItems.filter(function(item) {
153      return jQuery(item).data("key") !== key;
154    });
155    
156                       
157    //remove item from array
158    for (var i = 0; i < g_arrayFilterItems.length; i++) {
159            
160      if (jQuery(g_arrayFilterItems[i]).html() == jQuery(itemToRemoveHTML).html()) {
161        g_arrayFilterItems.splice(i, 1);
162
163        break; // Exit the loop after removing the item
164        
165      }
166    }
167    
168    g_objFilterableGrid.trigger(g_removeActiveFilterItemEvent,[key]);
169
170  }
171  
172  /**
173  * on clear all filters
174  */
175  function onClearFilters(){
176    
177    g_arrayFilterItems.length = 0;
178    
179  }
180  
181  /**
182  * init from external file
183  */
184  this.init = function(widgetId, objGrid){
185    
186    //init vars
187    //classes
188    var itemsHolderClass = "ue-active-filters-holder";
189    g_removeButtonClass = "ue-active-filters-item-remove";
190    g_activeFiltersItemClass = "ue-active-filters-item";
191    
192    //events names
193    g_removeActiveFilterItemEvent = "uc_unselect_filter";
194    g_clearFiltersEvent = "clear_filters";
195    
196    //selectors
197    var itemsHolderSelector = "."+itemsHolderClass;
198    g_removeButtonSelector = "."+g_removeButtonClass;
199    g_activeFiltersItemSelector = "."+g_activeFiltersItemClass;
200    
201    //objects
202    g_objWidget = jQuery("#"+widgetId);
203    g_itemsHolder = g_objWidget.find(itemsHolderSelector);
204    g_objFilterableGrid = objGrid;
205    
206    //custom attrs    
207    
208    //helpers
209    g_arrayFilterItems = [];
210    
211    //init events
212    g_objWidget.delegate(g_removeButtonSelector, 'click', onRemoveButtonClick);
213    g_objFilterableGrid.on(g_clearFiltersEvent, onClearFilters);
214
215  }
216  
217}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.