PageSourceSearch

https://ryax.tech/wp-content/plugins/blog-filter/js/jquery.filterizr.js?ver=7.0.5

js ryax.tech collected 2026-09-24 18:20:32 UTC 41,828 bytes, 1,057 lines download raw bytes

1/**
2* Filterizr is a jQuery plugin that sorts, shuffles and applies stunning filters over
3* responsive galleries using CSS3 transitions and custom CSS effects.
4*
5* @author Yiotis Kaltsikis
6* @see {@link http://yiotis.net/filterizr}
7* @version ???
8* @license MIT License
9*/
10
11! function(t) {
12    function e(i) {
13        if (r[i]) return r[i].exports;
14        var n = r[i] = {
15            i: i,
16            l: !1,
17            exports: {}
18        };
19        return t[i].call(n.exports, n, n.exports, e), n.l = !0, n.exports
20    }
21    var r = {};
22    e.m = t, e.c = r, e.d = function(t, r, i) {
23        e.o(t, r) || Object.defineProperty(t, r, {
24            configurable: !1,
25            enumerable: !0,
26            get: i
27        })
28    }, e.n = function(t) {
29        var r = t && t.__esModule ? function() {
30            return t.default
31        } : function() {
32            return t
33        };
34        return e.d(r, "a", r), r
35    }, e.o = function(t, e) {
36        return Object.prototype.hasOwnProperty.call(t, e)
37    }, e.p = "", e(e.s = 4)
38}([function(t, e, r) {
39    "use strict";
40    r.d(e, "b", function() {
41        return n
42    }), r.d(e, "h", function() {
43        return o
44    }), r.d(e, "i", function() {
45        return s
46    }), r.d(e, "g", function() {
47        return a
48    }), r.d(e, "e", function() {
49        return l
50    }), r.d(e, "j", function() {
51        return u
52    }), r.d(e, "f", function() {
53        return c
54    }), r.d(e, "k", function() {
55        return f
56    }), r.d(e, "c", function() {
57        return p
58    }), r.d(e, "d", function() {
59        return h
60    }), r.d(e, "l", function() {
61        return d
62    }), r.d(e, "a", function() {
63        return v
64    });
65    var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
66            return typeof t
67        } : function(t) {
68            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
69        },
70        n = function(t, e) {
71            for (var r = 0; r < t.length; r++) {
72                for (var i = !1, n = t[r], o = 0; o < e.length; o++) n === e[o] && (i = !0);
73                if (!i) return !1
74            }
75            return !0
76        },
77        o = function(t) {
78            var e = {};
79            for (var r in t) e[r] = t[r];
80            return e
81        },
82        s = function t(e, r) {
83            var n = o(r);
84            for (var s in e) s in n ? "object" !== i(n[s]) || "object" !== i(e[s]) || Array.isArray(e[s]) || (n[s] = t("object" === i(n[s]) ? n[s] : {}, e[s])) : n[s] = e[s];
85            return n
86        },
87        a = function(t, e) {
88            return Array.prototype.filter.call(t, function(t) {
89                return e.includes(t)
90            })
91        },
92        l = function(t, e, r) {
93            var i = void 0;
94            return function() {
95                var n = this,
96                    o = arguments;
97                clearTimeout(i), i = setTimeout(function() {
98                    i = null, r || t.apply(n, o)
99                }, e), r && !i && t.apply(n, o)
100            }
101        },
102        u = function(t) {
103            for (var e = t.slice(0), r = []; 0 !== e.length;) {
104                var i = Math.floor(e.length * Math.random());
105                r.push(e[i]), e.splice(i, 1)
106            }
107            return r
108        },
109        c = function(t, e) {
110            if (t.length !== e.length) return !1;
111            for (var r = 0; r < t.length; r++)
112                if (t[r].props.index !== e[r].props.index) return !1;
113            return !0
114        },
115        f = function(t, e) {
116            return t.slice(0).sort(function(t) {
117                return function(e, r) {
118                    var i = t(e),
119                        n = t(r);
120                    return i < n ? -1 : i > n ? 1 : 0
121                }
122            }(e))
123        },
124        p = function(t, e, r, n, o) {
125            if (void 0 !== e) {
126                var s = new Error('Filterizr: expected type of option "' + t + '" to be "' + r + '", but its type is: "' + (void 0 === e ? "undefined" : i(e)) + '"'),
127                    a = !1,
128                    l = !1,
129                    u = r.includes("array");
130                if ((void 0 === e ? "undefined" : i(e)).match(r) ? a = !0 : !a && u && (l = Array.isArray(e)), !a && !u) throw s;
131                if (!a && u && !l) throw s;
132                var c = function(t) {
133                    return t ? " For further help read here: " + t : ""
134                };
135                if (Array.isArray(n)) {
136                    var f = !1;
137                    if (n.forEach(function(t) {
138                            t === e && (f = !0)
139                        }), !f) throw new Error('Filterizr: allowed values for option "' + t + '" are: ' + n.map(function(t) {
140                        return '"' + t + '"'
141                    }
141).join(", ") + '. Value received: "' + e + '".' + c(o))
142                } else if (n instanceof RegExp) {
143                    var p = e.match(n);
144                    if (!p) throw new Error('Filterizr: invalid value "' + e + '" for option "' + t + '" received.' + c(o))
145                }
146            }
147        },
148        h = /(^linear$)|(^ease-in-out$)|(^ease-in$)|(^ease-out$)|(^ease$)|(^step-start$)|(^step-end$)|(^steps\(\d\s*,\s*(end|start)\))$|(^cubic-bezier\((\d*\.*\d+)\s*,\s*(\d*\.*\d+)\s*,\s*(\d*\.*\d+)\s*,\s*(\d*\.*\d+)\))$/,
149        d = "\n  webkitTransitionEnd.Filterizr \n  otransitionend.Filterizr \n  oTransitionEnd.Filterizr \n  msTransitionEnd.Filterizr \n  transitionend.Filterizr\n",
150        v = {
151            IDLE: "IDLE",
152            FILTERING: "FILTERING",
153            SORTING: "SORTING",
154            SHUFFLING: "SHUFFLING"
155        }
156}, function(t, e, r) {
157    "use strict";
158
159    function i(t, e) {
160        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
161    }
162    var n = r(2),
163        o = r(0),
164        s = function() {
165            function t(t, e) {
166                for (var r = 0; r < e.length; r++) {
167                    var i = e[r];
168                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
169                }
170            }
171            return function(e, r, i) {
172                return r && t(e.prototype, r), i && t(e, i), e
173            }
174        }(),
175        a = window.jQuery,
176        l = function() {
177            function t() {
178                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ".filtr-container",
179                    r = arguments[1];
180                i(this, t), this.$node = a(e), this.$node.css({
181                    padding: 0,
182                    position: "relative",
183                    width: "100%",
184                    display: "flex",
185                    "flex-wrap": "wrap"
186                }), this.props = {
187                    FilterItems: this.getFilterItems(r),
188                    w: this.getWidth(),
189                    h: 0
190                }, this.updateFilterItemsDimensions()
191            }
192            return s(t, [{
193                key: "destroy",
194                value: function() {
195                    this.$node.attr("style", "").find(".filtr-item").attr("style", ""), this.unbindEvents()
196                }
197            }, {
198                key: "getFilterItems",
199                value: function(t) {
200                    return a.map(this.$node.find(".filtr-item"), function(e, r) {
201                        return new n.a(a(e), r, t)
202                    })
203                }
204            }, {
205                key: "push",
206                value: function(t, e) {
207                    var r = this.props.FilterItems;
208                    this.$node.append(t);
209                    var i = r.length,
210                        o = new n.a(t, i, e);
211                    this.props.FilterItems.push(o)
212                }
213            }, {
214                key: "calcColumns",
215                value: function() {
216                    return Math.round(this.props.w / this.props.FilterItems[0].props.w)
217                }
218            }, {
219                key: "updateFilterItemsTransitionStyle",
220                value: function(t, e, r, i) {
221                    this.props.FilterItems.forEach(function(n) {
222                        return n.$node.css({
223                            transition: "all " + t + "s " + e + " " + n.calcDelay(r, i) + "ms"
224                        })
225                    })
226                }
227            }, {
228                key: "updateHeight",
229                value: function(t) {
230                    this.props.h = t, this.$node.css("height", t)
231                }
232            }, {
233                key: "updateWidth",
234                value: function() {
235                    this.props.w = this.getWidth()
236                }
237            }, {
238                key: "updateFilterItemsDimensions",
239                value: function() {
240                    this.props.FilterItems.forEach(function(t) {
241                        return t.updateDimensions()
242                    })
243                }
244            }, {
245                key: "getWidth",
246                value: function() {
247                    return this.$node.innerWidth()
248                }
249            }, {
250                key: "bindTransitionEnd",
251                value: function(t, e) {
252                    this.$node.on(o.l, Object(o.e)(function() {
253                        t()
254                    }, e))
255                }
256            }, {
257                key: "bindEvents",
258                value: function(t) {
259                    this.$node.on("filteringStart.Filterizr", t.onFilteringStart), this.$node.on("filteringEnd.Filterizr", t.onFilteringEnd), this.$node.on("shufflingStart.Filterizr", t.onShufflingStart), this.$node.on("shufflingEnd.Filterizr", t.onShufflingEnd), this.$node.on("sortingStart.Filterizr", t.onSortingStart), this.$node.on("sortingEnd.Filterizr", t.onSortingEnd)
260                }
261            }, {
262                key: "unbindEvents",
263                value: function() {
264                    this.$node.off(o.l + "\n      filteringStart.Filterizr \n      filteringEnd.Filterizr \n      shufflingStart.Filterizr \n      shufflingEnd.Filterizr \n      sortingStart.Filterizr \n      sortingEnd.Filterizr")
265                }
266            }, {
267                key: "trigger",
268                value: function(t) {
269                    this.$node.trigger(t)
270                }
271            }]), t
272        }();
273    e.a = l
274}, function(t, e, r) {
275    "use strict";
276
277    function i(t, e) {
278        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
279    }
280    var n = r(0),
281        o = function() {
282            function t(t, e) {
283                for (var r = 0; r < e.length; r++) {
284                    var i = e[r];
285                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
286                }
287            }
288            return function(e, r, i) {
289                return r && t(e.prototype, r), i && t(e, i), e
290            }
291        }(),
292        s = function() {
293            function t(e, r, n) {
294                var o = this;
295                i(this, t);
296                var s = n.delay,
297                    a = n.delayMode,
298                    l = n.filterOutCss,
299                    u = n.animationDuration,
300                    c = n.easing;
301                this.$node = e, this.props = {
302                    data: function() {
303                        var t = o.$node.data();
304                        return delete t.category, delete t.sort, t
305                    }(),
306                    index: r,
307                    sortData: this.$node.data("sort"),
308                    lastPosition: {
309                        left: 0,
310                        top: 0
311                    },
312                    filteredOut: !1,
313                    w: this.getWidth(),
314                    h: this.getHeight()
315                }, this.$node.css(l).css({
316                   //"-webkit-backface-visibility": "hidden",
317                  //  perspective: "1000px",
318                  //  "-webkit-perspective": "1000px",
319                  //  "-webkit-transform-style": "preserve-3d",
320                    position: "absolute",
321                  //transition: "all 350ms ease 0s"
322				   
323					
324                }), this.bindEvents()
325            }
326            return o(t, [{
327                key: "filterIn",
328                value: function(t, e) {
329                    var r = Object(n.h)(e);
330                     r.transform += " translate3d(" + t.left + "px," + t.top + "px, 0) scale3d(" + e.opacity + ", " + e.opacity + ", 1 )", this.$node.css(r), this.props.lastPosition = t, this.props.filteredOut = !1
331					
332                }
333            }, {
334                key: "filterOut",
335                value: function(t) {
336                    var e = Object(n.h)(t),
337                        r = this.props.lastPosition;
338                   e.transform += " translate3d(" + r.left + "px," + r.top + "px, 0) scale3d(" + e.opacity + ", " + e.opacity + ", 1 )", this.$node.css(e), this.props.filteredOut = !0
339					
340					
341                }
342            }, {
343                key: "calcDelay",
344                value: function(t, e) {
345                    var r = 0;
346                    return "progressive" === e ? r = t * this.props.index : this.props.index % 2 == 0 && (r = t), r
347                }
348            }, {
349                key: "contentsMatchSearch",
350                value: function(t) {
351                    return Boolean(this.getContentsLowercase().includes(t))
352                }
353            }, {
354                key: "getContentsLowercase",
355                value: function() {
356                    return this.$node.text().toLowerCase()
357                }
358            }, {
359                key: "getCategories",
360                value: function() {
361                    return this.$node.attr("data-category").split(/\s*,\s*/g)
362                }
363            }, {
364                key: "getHeight",
365                value: function() {
366                    return this.$node.innerHeight()
367                }
368            }, {
369                key: "getWidth",
370                value: function() {
371                    return this.$node.innerWidth()
372                }
373            }, {
374                key: "trigger",
375                value: function(t) {
376                    this.$node.trigger(t)
377                }
378            }, {
379                key: "updateDimensions",
380                value: function() {
381                    this.props.w = this.getWidth(), this.props.h = this.getHeight()
382                }
383            }, {
384                key: "bindEvents",
385                value: function() {
386                    var t = this;
387                    this.$node.on(n.l, function() {
388                        var e = t.props.filteredOut;
389                        t.$node.toggleClass("filteredOut", e), t.$node.css("z-index", e ? -1e3 : "")
390                    })
391                }
392            }, {
393                key: "unbindEvents",
394                value: function() {
395                    this.$node.off(n.l)
396                }
397            }]), t
398        }();
399    e.a = s
400}, function(t, e, r) {
401    "use strict";
402    var i = {
403        animationDuration: .65,
404        callbacks: {
405            onFilteringStart: function() {
406				/* ;( function( jQuery ) {
407					jQuery( '.woodwork' ).swipebox( {
408						useCSS : true, // false will force the use of jQuery for animations
409						useSVG : true, // false to force the use of png for buttons
410						initialIndexOnArray : 0, // which image index to init when a array is passed
411						hideCloseButtonOnMobile : false, // true will hide the close button on mobile devices
412						removeBarsOnMobile : true, // false will show top bar on mobile devices
413						hideBarsDelay : false, // delay before hiding bars on desktop
414						videoMaxWidth : 1140, // videos max width
415						beforeOpen: function() {}, // called before opening
416						afterOpen: null, // called after opening
417						afterClose: function() {}, // called after closing
418						loopAtEnd: true // true will return to the first image after the last image is reached
419					} );
420
421				} )( jQuery ); */
422			},
423            onFilteringEnd: function() {},
424            onShufflingStart: function() {},
425            onShufflingEnd: function() {},
426            onSortingStart: function() {},
427            onSortingEnd: function() {}
428        },
429        controlsSelector: "",
430        //delay: 0,
431        //delayMode: "alternate",
432       // easing: "ease-out",
433        filter: "all",
434        filterOutCss: {
435		  top:'0px',
436			left:'0px',
437			opacity: 0.001,
438			transform: ''
439		  },
440		  filterInCss: {
441			  top:'0px',
442			left:'0px',
443			opacity: 1,
444			transform: ''
445		  },
446        layout: "sameSize",
447        multifilterLogicalOperator: "or",
448        setupControls: !0
449    };
450    e.a = i
451}, function(t, e, r) {
452    t.exports = r(5)
453}, function(t, e, r) {
454    "use strict";
455
456    function i(t) {
457        if (Array.isArray(t)) {
458            for (var e = 0, r = Array(t.length); e < t.length; e++) r[e] = t[e];
459            return r
460        }
461        return Array.from(t)
462    }
463    Object.defineProperty(e, "__esModule", {
464        value: !0
465    });
466    var n = r(6),
467        o = r(1),
468        s = r(2),
469        a = r(3),
470        l = r(15);
471    r.d(e, "Filterizr", function() {
472        return n.a
473    }), r.d(e, "FilterContainer", function() {
474        return o.a
475    }), r.d(e, "FilterItem", function() {
476        return s.a
477    }), r.d(e, "DefaultOptions", function() {
478        return a.a
479    });
480    var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) {
481            return typeof t
482        } : function(t) {
483            return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
484        },
485        c = void 0,
486        f = void 0;
487    c = f = window.jQuery,
488        function(t) {
489            if (!t) throw new Error("Filterizr requires jQuery to work.");
490            Object(l.a)(), t.fn.filterizr = function() {
491                var e = "." + t.trim(this.get(0).className).replace(/\s+/g, "."),
492                    r = arguments;
493                if (!this._fltr && 0 === r.length || 1 === r.length && "object" === u(r[0])) {
494                    var o = r.length > 0 ? r[0] : a.a;
495                    this._fltr = new n.a(e, o)
496                } else if (r.length >= 1 && "string" == typeof r[0]) {
497                    var s = r[0],
498                        l = Array.prototype.slice.call(r, 1),
499                        c = this._fltr;
500                    switch (s) {
501                        case "filter":
502                            return c.filter.apply(c, i(l)), this;
503                        case "insertItem":
504                            return c.insertItem.apply(c, i(l)), this;
505                        case "toggleFilter":
506                            return c.toggleFilter.apply(c, i(l)), this;
507                        case "sort":
508                            return c.sort.apply(c, i(l)), this;
509                        case "shuffle":
510                            return c.shuffle.apply(c, i(l)), this;
511                        case "search":
512                            return c.search.apply(c, i(l)), this;
513                        case "setOptions":
514                            return c.setOptions.apply(c, i(l)), this;
515                        case "destroy":
516                            return c.destroy.apply(c, i(l)), delete this._fltr, this;
517                        default:
518                            throw new Error("Filterizr: " + s + " is not part of the Filterizr API. Please refer to the docs for more information.")
519                    }
520                }
521                return this
522            }
523        }(f), e.default = c, r(16)
524}, function(t, e, r) {
525    "use strict";
526
527    function i(t, e) {
528        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
529    }
530    var n = r(7),
531        o = r(1),
532        s = r(8),
533        a = r(3),
534        l = r(0),
535        u = function() {
536            function t(t, e) {
537                for (var r = 0; r < e.length; r++) {
538                    var i = e[r];
539                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
540                }
541            }
542            return function(e, r, i) {
543                return r && t(e.prototype, r), i && t(e, i), e
544            }
545        }(),
546        c = window.jQuery,
547        f = function() {
548            function t() {
549                var e = arguments.length >
549 0 && void 0 !== arguments[0] ? arguments[0] : ".filtr-container",
550                    r = arguments[1];
551                i(this, t), this.options = Object(l.i)(a.a, r);
552                var s = new o.a(e, this.options);
553                if (!s.$node.length) throw new Error("Filterizr: could not find a container with the selector " + e + ", to initialize Filterizr.");
554                new n.a(this, this.options.controlsSelector), this.props = {
555                    filterizrState: l.a.IDLE,
556                    searchTerm: "",
557                    sort: "index",
558                    sortOrder: "asc",
559                    FilterContainer: s,
560                    FilterItems: s.props.FilterItems,
561                    FilteredItems: []
562                }, this.bindEvents(), this.filter(this.options.filter)
563            }
564            return u(t, [{
565                key: "filter",
566                value: function(t) {
567                    var e = this.props,
568                        r = e.searchTerm,
569                        i = e.FilterContainer,
570                        n = e.FilterItems;
571                    i.trigger("filteringStart"), this.props.filterizrState = l.a.FILTERING, t = Array.isArray(t) ? t.map(function(t) {
572                        return t.toString()
573                    }) : t.toString();
574                    var o = this.searchFilterItems(this.filterFilterItems(n, t), r);
575                    this.props.FilteredItems = o, this.render(o)
576                }
577            }, {
578                key: "destroy",
579                value: function() {
580                    var t = this.props.FilterContainer,
581                        e = this.options.controlsSelector;
582                    t.destroy(), c(window).off("resize.Filterizr"), c(e + "[data-filter]").off("click.Filterizr"), c(e + "[data-multifilter]").off("click.Filterizr"), c(e + "[data-shuffle]").off("click.Filterizr"), c(e + "[data-search]").off("keyup.Filterizr"), c(e + "[data-sortAsc]").off("click.Filterizr"), c(e + "[data-sortDesc]").off("click.Filterizr")
583                }
584            }, {
585                key: "insertItem",
586                value: function(t) {
587                    var e = this.props.FilterContainer,
588                        r = t.clone().attr("style", "");
589                    e.push(r, this.options);
590                    var i = this.filterFilterItems(this.props.FilterItems, this.options.filter);
591                    this.render(i)
592                }
593            }, {
594                key: "sort",
595                value: function() {
596                    var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "index",
597                        e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "asc",
598                        r = this.props,
599                        i = r.FilterContainer,
600                        n = r.FilterItems;
601                    i.trigger("sortingStart"), this.props.filterizrState = l.a.SORTING, this.props.FilterItems = this.sortFilterItems(n, t, e);
602                    var o = this.filterFilterItems(this.props.FilterItems, this.options.filter);
603                    this.props.FilteredItems = o, this.render(o)
604                }
605            }, {
606                key: "search",
607                value: function() {
608                    var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props.searchTerm,
609                        e = this.props.FilterItems,
610                        r = this.searchFilterItems(this.filterFilterItems(e, this.options.filter), t);
611                    this.props.FilteredItems = r, this.render(r)
612                }
613            }, {
614                key: "shuffle",
615                value: function() {
616                    var t = this.props,
617                        e = t.FilterContainer,
618                        r = t.FilteredItems;
619                    e.trigger("shufflingStart"), this.props.filterizrState = l.a.SHUFFLING;
620                    var i = this.shuffleFilterItems(r);
621                    this.props.FilteredItems = i, this.render(i)
622                }
623            }, {
624                key: "setOptions",
625                value: function(t) {
626                    Object(l.c)("animationDuration", t.animationDuration, "number"), Object(l.c)("callbacks", t.callbacks, "object"), Object(l.c)("controlsSelector", t.controlsSelector, "string"), Object(l.c)("delay", t.delay, "number"), Object(l.c)("easing", t.easing, "string", l.d, "https://www.w3schools.com/cssref/css3_pr_transition-timing-function.asp"), Object(l.c)("delayMode", t.delayMode, "string", ["progressive", "alternate"]), Object(l.c)("filter", t.filter, "string|number|array"), Object(l.c)("filterOutCss", t.filterOutCss, "object"), Object(l.c)("filterInCss", t.filterOutCss, "object"), Object(l.c)("layout", t.layout, "string", ["sameSize", "vertical", "horizontal", "sameHeight", "sameWidth", "packed"]), Object(l.c)("multifilterLogicalOperator", t.multifilterLogicalOperator, "string", ["and", "or"]), Object(l.c)("setupControls", t.setupControls, "boolean"), this.options = Object(l.i)(this.options, t), (t.animationDuration || t.delay || t.delayMode || t.easing) && this.props.FilterContainer.updateFilterItemsTransitionStyle(t.animationDuration, t.easing, t.delay, t.delayMode), (t.callbacks || t.animationDuration) && this.rebindFilterContainerEvents(), t.filter && this.filter(t.filter), t.multifilterLogicalOperator && this.filter(this.options.filter)
627                }
628            }, {
629                key: "toggleFilter",
630                value: function(t) {
631                    var e = this.options.filter;
632                    "all" === e ? e = t : Array.isArray(e) ? e.includes(t) ? (e = e.filter(function(e) {
633                        return e !== t
634                    }
634), 1 === e.length && (e = e[0])) : e.push(t) : e = e === t ? "all" : [e, t], this.options.filter = e, this.filter(this.options.filter)
635                }
636            }, {
637                key: "filterFilterItems",
638                value: function(t, e) {
639                    var r = this.options.multifilterLogicalOperator;
640                    return "all" === e ? t : t.filter(function(t) {
641                        var i = t.getCategories();
642                        return Array.isArray(e) ? "or" === r ? Object(l.g)(i, e).length : Object(l.b)(e, i) : i.includes(e)
643                    })
644                }
645            }, {
646                key: "sortFilterItems",
647                value: function(t) {
648                    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "index",
649                        r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "asc",
650                        i = Object(l.k)(t, function(t) {
651                            return "index" !== e && "sortData" !== e ? t.props.data[e] : t.props[e]
652                        });
653                    return "asc" === r ? i : i.reverse()
654                }
655            }, {
656                key: "searchFilterItems",
657                value: function(t) {
658                    var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.props.searchTerm;
659                    return e ? t.filter(function(t) {
660                        return t.contentsMatchSearch(e)
661                    }) : t
662                }
663            }, {
664                key: "shuffleFilterItems",
665                value: function(t) {
666                    for (var e = Object(l.j)(t); t.length > 1 && Object(l.f)(t, e);) e = Object(l.j)(t);
667                    return e
668                }
669            }, {
670                key: "render",
671                value: function(t) {
672                    var e = this,
673                        r = this.options,
674                        i = r.filter,
675                        n = r.filterInCss,
676                        o = r.filterOutCss,
677                        a = r.layout,
678                        u = r.multifilterLogicalOperator;
679                    this.props.FilterItems.filter(function(t) {
680                        var r = t.getCategories(),
681                            n = Array.isArray(i),
682                            o = t.contentsMatchSearch(e.props.searchTerm);
683                        return !(n ? "or" === u ? Object(l.g)(r, i).length : Object(l.b)(i, r) : r.includes(i)) || !o
684                    }
684).forEach(function(t) {
685                        t.filterOut(o)
686                    });
687                    var c = Object(s.a)(a, this);
688                    t.forEach(function(t, e) {
689                        t.filterIn(c[e], n)
690                    })
691                }
692            }, {
693                key: "onTransitionEndCallback",
694                value: function() {
695                    var t = this.props,
696                        e = t.filterizrState,
697                        r = t.FilterContainer;
698                    switch (e) {
699                        case l.a.FILTERING:
700                            r.trigger("filteringEnd");
701                            break;
702                        case l.a.SORTING:
703                            r.trigger("sortingEnd");
704                            break;
705                        case l.a.SHUFFLING:
706                            r.trigger("shufflingEnd")
707                    }
708                    this.props.filterizrState = l.a.IDLE
709                }
710            }, {
711                key: "rebindFilterContainerEvents",
712                value: function() {
713                    var t = this,
714                        e = this.props.FilterContainer,
715                        r = this.options,
716                        i = r.animationDuration,
717                        n = r.callbacks;
718                    e.unbindEvents(), e.bindEvents(n), e.bindTransitionEnd(function() {
719                        t.onTransitionEndCallback()
720                    }, i)
721                }
722            }, {
723                key: "bindEvents",
724                value: function() {
725                    var t = this,
726                        e = this.props.FilterContainer;
727                    this.rebindFilterContainerEvents(), c(window).on("resize.Filterizr", Object(l.e)(function() {
728                        e.updateWidth(), e.updateFilterItemsDimensions(), t.filter(t.options.filter)
729                    }, 250))
730                }
731            }]), t
732        }();
733    e.a = f
734}, function(t, e, r) {
735    "use strict";
736
737    function i(t, e) {
738        if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function")
739    }
740    var n = r(0),
741        o = function() {
742            function t(t, e) {
743                for (var r = 0; r < e.length; r++) {
744                    var i = e[r];
745                    i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i)
746                }
747            }
748            return function(e, r, i) {
749                return r && t(e.prototype, r), i && t(e, i), e
750            }
751        }(),
752        s = window.jQuery,
753        a = function() {
754            function t(e) {
755                var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "";
756                i(this, t), this.props = {
757                    Filterizr: e,
758                    selector: r
759                }, this.setupFilterControls(), this.setupShuffleControls(), this.setupSearchControl
759s(), this.setupSortControls()
760            }
761            return o(t, [{
762                key: "setupFilterControls",
763                value: function() {
764                    var t = this.props,
765                        e = t.Filterizr,
766                        r = t.selector;
767                    s(r + "[data-filter]").on("click.Filterizr", function(t) {
768                        var r = s(t.currentTarget),
769                            i = r.attr("data-filter");
770                        e.options.filter = i, e.filter(e.options.filter)
771                    }), s(r + "[data-multifilter]").on("click.Filterizr", function(t) {
772                        var r = s(t.target),
773                            i = r.attr("data-multifilter");
774                        e.toggleFilter(i)
775                    })
776                }
777            }, {
778                key: "setupShuffleControls",
779                value: function() {
780                    var t = this.props,
781                        e = t.Filterizr,
782                        r = t.selector;
783                    s(r + "[data-shuffle]").on("click.Filterizr", function() {
784                        e.shuffle()
785                    })
786                }
787            }, {
788                key: "setupSearchControls",
789                value: function() {
790                    var t = this.props,
791                        e = t.Filterizr,
792                        r = t.selector;
793                    s(r + "[data-search]").on("keyup.Filterizr", Object(n.e)(function(t) {
794                        var r = s(t.target),
795                            i = r.val();
796                        e.props.searchTerm = i.toLowerCase(), e.search(e.props.searchTerm)
797                    }, 250))
798                }
799            }, {
800                key: "setupSortControls",
801                value: function() {
802                    var t = this.props,
803                        e = t.Filterizr,
804                        r = t.selector;
805                    s(r + "[data-sortAsc]").on("click.Filterizr", function() {
806                        var t = s(r + "[data-sortOrder]").val();
807                        e.props.sortOrder = "asc", e.sort(t, "asc")
808                    }), s(r + "[data-sortDesc]").on("click.Filterizr", function() {
809                        var t = s(r + "[data-sortOrder]").val();
810                        e.props.sortOrder = "desc", e.sort(t, "desc")
811                    })
812                }
813            }]), t
814        }();
815    e.a = a
816}, function(t, e, r) {
817    "use strict";
818    var i = r(9),
819        n = r(10),
820        o = r(11),
821        s = r(12),
822        a = r(13),
823        l = r(14),
824        u = function(t, e) {
825            switch (t) {
826                case "horizontal":
827                    return Object(i.a)(e);
828                case "vertical":
829                    return Object(n.a)(e);
830                case "sameHeight":
831                    return Object(o.a)(e);
832                case "sameWidth":
833                    return Object(s.a)(e);
834                case "sameSize":
835                    return Object(a.a)(e);
836                case "packed":
837                    return Object(l.a)(e);
838                default:
839                    return Object(a.a)(e)
840            }
841        };
842    e.a = u
843}, function(t, e, r) {
844    "use strict";
845    var i = function(t) {
846        var e = t.props,
847            r = e.FilterContainer,
848            i = e.FilteredItems,
849            n = 0,
850            o = 0,
851            s = i.map(function(t) {
852                var e = t.props,
853                    r = e.w,
854                    i = e.h,
855                    s = {
856                        left: n,
857                        top: 0
858                    };
859                return n += r, i > o && (o = i), s
860            });
861        return r.updateHeight(o), s
862    };
863    e.a = i
864}, function(t, e, r) {
865    "use strict";
866    var i = function(t) {
867        var e = t.props,
868            r = e.FilterContainer,
869            i = e.FilteredItems,
870            n = 0,
871            o = i.map(function(t) {
872                var e = t.props.h,
873                    r = {
874                        left: 0,
875                        top: n
876                    };
877                return n += e, r
878            });
879        return r.updateHeight(n), o
880    };
881    e.a = i
882}, function(t, e, r) {
883    "use strict";
884    var i = function(t) {
885        var e = t.props,
886            r = e.FilterContainer,
887            i = e.FilteredItems,
888            n = r.props.w,
889            o = i[0].props.h,
890            s = 0,
891            a = 0,
892            l = i.map(function(t) {
893                var e = t.props.w;
894                a + e > n && (s++, a = 0);
895                var r = {
896                    left: a,
897                    top: o * s
898                };
899                return a += e, r
900            });
901        return r.updateHeight((s + 1) * i[0].props.h), l
902    };
903    e.a = i
904}, function(t, e, r) {
905    "use strict";
906
907    function i(t) {
908        if (Array.isArray(t)) {
909            for (var e = 0, r = Array(t.length); e < t.length; e++) r[e] = t[e];
910            return r
911        }
912        return Array.from(t)
913    }
914    var n = function(t) {
915            var e = t.props,
916                r = e.FilterContainer,
917                n = e.FilteredItems,
918                s = r.calcColumns(),
919                a = 0,
920                l = Array.apply(null, Array(s)).map(Number.prototype.valueOf, 0),
921                u = n.map(function(t, e) {
922                    var r = t.props,
923                        i = r.w,
924                        u = r.h;
925                    e % s == 0 && e >= s && a++;
926                    var c = e - s * a;
927                    return l[c] += u, {
928                        left: c * i,
929                        top: o(n, s, e)
930                    }
931                });
932            return r.updateHeight(Math.max.apply(Math, i(l))), u
933        },
934        o = function(t, e, r) {
935            if (e <= 0) return 0;
936            var i = 0;
937            if (r < e - 1) return 0;
938            for (r -= e; r >= 0;) i += t[r].props.h, r -= e;
939            return i
940        };
941    e.a = n
942}, function(t, e, r) {
943    "use strict";
944    var i = function(t) {
945        var e = t.props,
946            r = e.FilterContainer,
947            i = e.FilteredItems,
948            n = r.calcColumns(),
949            o = 0,
950            s = i.map(function(t, e) {
951                return e % n == 0 && e >= n && o++, {
952                    left: (e - n * o) * t.props.w,
953                    top: o * t.props.h
954                }
955            }),
956            a = i[0] && i[0].props.h || 0;
957        return r.updateHeight((o + 1) * a), s
958    };
959    e.a = i
960}, function(t, e, r) {
961    "use strict";
962    var i = function(t) {
963            var e = t.props,
964                r = e.FilterContainer,
965                i = e.FilteredItems,
966                o = new n(r.props.w),
967                s = i.map(function(t) {
968                    var e = t.props;
969                    return {
970                        w: e.w,
971                        h: e.h
972                    }
973                });
974            o.fit(s);
975            var a = s.map(function(t) {
976                var e = t.fit;
977                return {
978                    left: e.x,
979                    top: e.y
980                }
981            });
982            return r.updateHeight(o.root.h), a
983        },
984        n = function(t) {
985            this.init(t)
986        };
987    n.prototype = {
988        init: function(t) {
989            this.root = {
990                x: 0,
991                y: 0,
992                w: t
993            }
994        },
995        fit: function(t) {
996            var e, r, i, n = t.length,
997                o = n > 0 ? t[0].h : 0;
998            for (this.root.h = o, e = 0; e < n; e++) i = t[e], (r = this.findNode(this.root, i.w, i.h)) ? i.fit = this.splitNode(r, i.w, i.h) : i.fit = this.growDown(i.w, i.h)
999        },
1000        findNode: function(t, e, r) {
1001            return t.used ? this.findNode(t.right, e, r) || this.findNode(t.down, e, r) : e <= t.w && r <= t.h ? t : null
1002        },
1003        splitNode: function(t, e, r) {
1004            return t.used = !0, t.down = {
1005                x: t.x,
1006                y: t.y + r,
1007                w: t.w,
1008                h: t.h - r
1009            }, t.right = {
1010                x: t.x + e,
1011                y: t.y,
1012                w: t.w - e,
1013                h: r
1014            }, t
1015        },
1016        growDown: function(t, e) {
1017            var r;
1018            return this.root = {
1019                used: !0,
1020                x: 0,
1021                y: 0,
1022                w: this.root.w,
1023                h: this.root.h + e,
1024                down: {
1025                    x: 0,
1026                    y: this.root.h,
1027                    w: this.root.w,
1028                    h: e
1029                },
1030                right: this.root
1031            }, (r = this.findNode(this.root, t, e)) ? this.splitNode(r, t, e) : null
1032        }
1033    }, e.a = i
1034}, function(t, e, r) {
1035    "use strict";
1036
1037    function i() {
1038        String.prototype.includes || (String.prototype.includes = function(t, e) {
1039            return "number" != typeof e && (e = 0), !(e + t.length > this.length) && -1 !== this.indexOf(t, e)
1040        }), Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", {
1041            value: function(t, e) {
1042                if (null == this) throw new TypeError('"this" is null or not defined');
1043                var r = Object(this),
1044                    i = r.length >>> 0;
1045                if (0 === i) return !1;
1046                for (var n = 0 | e, o = Math.max(n >
1046= 0 ? n : i - Math.abs(n), 0); o < i;) {
1047                    if (function(t, e) {
1048                            return t === e || "number" == typeof t && "number" == typeof e && isNaN(t) && isNaN(e)
1049                        }(r[o], t)) return !0;
1050                    o++
1051                }
1052                return !1
1053            }
1054        })
1055    }
1056    e.a = i
1057}, function(t, e, r) {}]);

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.