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 onFilteringEnd: function() {}, 407 onShufflingStart: function() {}, 408 onShufflingEnd: function() {}, 409 onSortingStart: function() {}, 410 onSortingEnd: function() {} 411 }, 412 controlsSelector: "", 413 //delay: 0, 414 //delayMode: "alternate", 415 // easing: "ease-out", 416 filter: "all", 417 filterOutCss: { 418 top:'0px', 419 left:'0px', 420 opacity: 0.001, 421 transform: '' 422 }, 423 filterInCss: { 424 top:'0px', 425 left:'0px', 426 opacity: 1, 427 transform: '' 428 }, 429 layout: "sameSize", 430 multifilterLogicalOperator: "or", 431 setupControls: !0 432 }; 433 e.a = i 434}, function(t, e, r) { 435 t.exports = r(5) 436}, function(t, e, r) { 437 "use strict"; 438 439 function i(t) { 440 if (Array.isArray(t)) { 441 for (var e = 0, r = Array(t.length); e < t.length; e++) r[e] = t[e]; 442 return r 443 } 444 return Array.from(t) 445 } 446 Object.defineProperty(e, "__esModule", { 447 value: !0 448 }); 449 var n = r(6), 450 o = r(1), 451 s = r(2), 452 a = r(3), 453 l = r(15); 454 r.d(e, "Filterizr", function() { 455 return n.a 456 }), r.d(e, "FilterContainer", function() { 457 return o.a 458 }), r.d(e, "FilterItem", function() { 459 return s.a 460 }), r.d(e, "DefaultOptions", function() { 461 return a.a 462 }); 463 var u = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { 464 return typeof t 465 } : function(t) { 466 return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t 467 }, 468 c = void 0, 469 f = void 0; 470 c = f = window.jQuery, 471 function(t) { 472 if (!t) throw new Error("Filterizr requires jQuery to work."); 473 Object(l.a)(), t.fn.filterizr = function() { 474 var e = "." + t.trim(this.get(0).className).replace(/\s+/g, "."), 475 r = arguments; 476 if (!this._fltr && 0 === r.length || 1 === r.length && "object" === u(r[0])) { 477 var o = r.length > 0 ? r[0] : a.a; 478 this._fltr = new n.a(e, o) 479 } else if (r.length >= 1 && "string" == typeof r[0]) { 480 var s = r[0], 481 l = Array.prototype.slice.call(r, 1), 482 c = this._fltr; 483 switch (s) { 484 case "filter": 485 return c.filter.apply(c, i(l)), this; 486 case "insertItem": 487 return c.insertItem.apply(c, i(l)), this; 488 case "toggleFilter": 489 return c.toggleFilter.apply(c, i(l)), this; 490 case "sort": 491 return c.sort.apply(c, i(l)), this; 492 case "shuffle": 493 return c.shuffle.apply(c, i(l)), this; 494 case "search": 495 return c.search.apply(c, i(l)), this; 496 case "setOptions": 497 return c.setOptions.apply(c, i(l)), this; 498 case "destroy": 499 return c.destroy.apply(c, i(l)), delete this._fltr, this; 500 default: 501 throw new Error("Filterizr: " + s + " is not part of the Filterizr API. Please refer to the docs for more information.") 502 } 503 } 504 return this 505 } 506 }(f), e.default = c, r(16) 507}, function(t, e, r) { 508 "use strict"; 509 510 function i(t, e) { 511 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") 512 } 513 var n = r(7), 514 o = r(1), 515 s = r(8), 516 a = r(3), 517 l = r(0), 518 u = function() { 519 function t(t, e) { 520 for (var r = 0; r < e.length; r++) { 521 var i = e[r]; 522 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) 523 } 524 } 525 return function(e, r, i) { 526 return r && t(e.prototype, r), i && t(e, i), e 527 } 528 }(), 529 c = window.jQuery, 530 f = function() { 531 function t() { 532 var e = arguments.length >
532 0 && void 0 !== arguments[0] ? arguments[0] : ".filtr-container", 533 r = arguments[1]; 534 i(this, t), this.options = Object(l.i)(a.a, r); 535 var s = new o.a(e, this.options); 536 if (!s.$node.length) throw new Error("Filterizr: could not find a container with the selector " + e + ", to initialize Filterizr."); 537 new n.a(this, this.options.controlsSelector), this.props = { 538 filterizrState: l.a.IDLE, 539 searchTerm: "", 540 sort: "index", 541 sortOrder: "asc", 542 FilterContainer: s, 543 FilterItems: s.props.FilterItems, 544 FilteredItems: [] 545 }, this.bindEvents(), this.filter(this.options.filter) 546 } 547 return u(t, [{ 548 key: "filter", 549 value: function(t) { 550 var e = this.props, 551 r = e.searchTerm, 552 i = e.FilterContainer, 553 n = e.FilterItems; 554 i.trigger("filteringStart"), this.props.filterizrState = l.a.FILTERING, t = Array.isArray(t) ? t.map(function(t) { 555 return t.toString() 556 }) : t.toString(); 557 var o = this.searchFilterItems(this.filterFilterItems(n, t), r); 558 this.props.FilteredItems = o, this.render(o) 559 } 560 }, { 561 key: "destroy", 562 value: function() { 563 var t = this.props.FilterContainer, 564 e = this.options.controlsSelector; 565 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") 566 } 567 }, { 568 key: "insertItem", 569 value: function(t) { 570 var e = this.props.FilterContainer, 571 r = t.clone().attr("style", ""); 572 e.push(r, this.options); 573 var i = this.filterFilterItems(this.props.FilterItems, this.options.filter); 574 this.render(i) 575 } 576 }, { 577 key: "sort", 578 value: function() { 579 var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "index", 580 e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "asc", 581 r = this.props, 582 i = r.FilterContainer, 583 n = r.FilterItems; 584 i.trigger("sortingStart"), this.props.filterizrState = l.a.SORTING, this.props.FilterItems = this.sortFilterItems(n, t, e); 585 var o = this.filterFilterItems(this.props.FilterItems, this.options.filter); 586 this.props.FilteredItems = o, this.render(o) 587 } 588 }, { 589 key: "search", 590 value: function() { 591 var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.props.searchTerm, 592 e = this.props.FilterItems, 593 r = this.searchFilterItems(this.filterFilterItems(e, this.options.filter), t); 594 this.props.FilteredItems = r, this.render(r) 595 } 596 }, { 597 key: "shuffle", 598 value: function() { 599 var t = this.props, 600 e = t.FilterContainer, 601 r = t.FilteredItems; 602 e.trigger("shufflingStart"), this.props.filterizrState = l.a.SHUFFLING; 603 var i = this.shuffleFilterItems(r); 604 this.props.FilteredItems = i, this.render(i) 605 } 606 }, { 607 key: "setOptions", 608 value: function(t) { 609 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) 610 } 611 }, { 612 key: "toggleFilter", 613 value: function(t) { 614 var e = this.options.filter; 615 "all" === e ? e = t : Array.isArray(e) ? e.includes(t) ? (e = e.filter(function(e) { 616 return e !== t 617 }
617), 1 === e.length && (e = e[0])) : e.push(t) : e = e === t ? "all" : [e, t], this.options.filter = e, this.filter(this.options.filter) 618 } 619 }, { 620 key: "filterFilterItems", 621 value: function(t, e) { 622 var r = this.options.multifilterLogicalOperator; 623 return "all" === e ? t : t.filter(function(t) { 624 var i = t.getCategories(); 625 return Array.isArray(e) ? "or" === r ? Object(l.g)(i, e).length : Object(l.b)(e, i) : i.includes(e) 626 }) 627 } 628 }, { 629 key: "sortFilterItems", 630 value: function(t) { 631 var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "index", 632 r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "asc", 633 i = Object(l.k)(t, function(t) { 634 return "index" !== e && "sortData" !== e ? t.props.data[e] : t.props[e] 635 }); 636 return "asc" === r ? i : i.reverse() 637 } 638 }, { 639 key: "searchFilterItems", 640 value: function(t) { 641 var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.props.searchTerm; 642 return e ? t.filter(function(t) { 643 return t.contentsMatchSearch(e) 644 }) : t 645 } 646 }, { 647 key: "shuffleFilterItems", 648 value: function(t) { 649 for (var e = Object(l.j)(t); t.length > 1 && Object(l.f)(t, e);) e = Object(l.j)(t); 650 return e 651 } 652 }, { 653 key: "render", 654 value: function(t) { 655 var e = this, 656 r = this.options, 657 i = r.filter, 658 n = r.filterInCss, 659 o = r.filterOutCss, 660 a = r.layout, 661 u = r.multifilterLogicalOperator; 662 this.props.FilterItems.filter(function(t) { 663 var r = t.getCategories(), 664 n = Array.isArray(i), 665 o = t.contentsMatchSearch(e.props.searchTerm); 666 return !(n ? "or" === u ? Object(l.g)(r, i).length : Object(l.b)(i, r) : r.includes(i)) || !o 667 }
667).forEach(function(t) { 668 t.filterOut(o) 669 }); 670 var c = Object(s.a)(a, this); 671 t.forEach(function(t, e) { 672 t.filterIn(c[e], n) 673 }) 674 } 675 }, { 676 key: "onTransitionEndCallback", 677 value: function() { 678 var t = this.props, 679 e = t.filterizrState, 680 r = t.FilterContainer; 681 switch (e) { 682 case l.a.FILTERING: 683 r.trigger("filteringEnd"); 684 break; 685 case l.a.SORTING: 686 r.trigger("sortingEnd"); 687 break; 688 case l.a.SHUFFLING: 689 r.trigger("shufflingEnd") 690 } 691 this.props.filterizrState = l.a.IDLE 692 } 693 }, { 694 key: "rebindFilterContainerEvents", 695 value: function() { 696 var t = this, 697 e = this.props.FilterContainer, 698 r = this.options, 699 i = r.animationDuration, 700 n = r.callbacks; 701 e.unbindEvents(), e.bindEvents(n), e.bindTransitionEnd(function() { 702 t.onTransitionEndCallback() 703 }, i) 704 } 705 }, { 706 key: "bindEvents", 707 value: function() { 708 var t = this, 709 e = this.props.FilterContainer; 710 this.rebindFilterContainerEvents(), c(window).on("resize.Filterizr", Object(l.e)(function() { 711 e.updateWidth(), e.updateFilterItemsDimensions(), t.filter(t.options.filter) 712 }, 250)) 713 } 714 }]), t 715 }(); 716 e.a = f 717}, function(t, e, r) { 718 "use strict"; 719 720 function i(t, e) { 721 if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") 722 } 723 var n = r(0), 724 o = function() { 725 function t(t, e) { 726 for (var r = 0; r < e.length; r++) { 727 var i = e[r]; 728 i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) 729 } 730 } 731 return function(e, r, i) { 732 return r && t(e.prototype, r), i && t(e, i), e 733 } 734 }(), 735 s = window.jQuery, 736 a = function() { 737 function t(e) { 738 var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; 739 i(this, t), this.props = { 740 Filterizr: e, 741 selector: r 742 }, this.setupFilterControls(), this.setupShuffleControls(), this.setupSearchControl
742s(), this.setupSortControls() 743 } 744 return o(t, [{ 745 key: "setupFilterControls", 746 value: function() { 747 var t = this.props, 748 e = t.Filterizr, 749 r = t.selector; 750 s(r + "[data-filter]").on("click.Filterizr", function(t) { 751 var r = s(t.currentTarget), 752 i = r.attr("data-filter"); 753 e.options.filter = i, e.filter(e.options.filter) 754 }), s(r + "[data-multifilter]").on("click.Filterizr", function(t) { 755 var r = s(t.target), 756 i = r.attr("data-multifilter"); 757 e.toggleFilter(i) 758 }) 759 } 760 }, { 761 key: "setupShuffleControls", 762 value: function() { 763 var t = this.props, 764 e = t.Filterizr, 765 r = t.selector; 766 s(r + "[data-shuffle]").on("click.Filterizr", function() { 767 e.shuffle() 768 }) 769 } 770 }, {
771 key: "setupSearchControls", 772 value: function() { 773 var t = this.props, 774 e = t.Filterizr, 775 r = t.selector; 776 s(r + "[data-search]").on("keyup.Filterizr", Object(n.e)(function(t) { 777 var r = s(t.target), 778 i = r.val(); 779 e.props.searchTerm = i.toLowerCase(), e.search(e.props.searchTerm) 780 }, 250)) 781 } 782 }, { 783 key: "setupSortControls", 784 value: function() { 785 var t = this.props, 786 e = t.Filterizr, 787 r = t.selector; 788 s(r + "[data-sortAsc]").on("click.Filterizr", function() { 789 var t = s(r + "[data-sortOrder]").val(); 790 e.props.sortOrder = "asc", e.sort(t, "asc") 791 }), s(r + "[data-sortDesc]").on("click.Filterizr", function() { 792 var t = s(r + "[data-sortOrder]").val(); 793 e.props.sortOrder = "desc", e.sort(t, "desc") 794 }) 795 } 796 }]), t 797 }(); 798 e.a = a 799}, function(t, e, r) { 800 "use strict"; 801 var i = r(9), 802 n = r(10), 803 o = r(11), 804 s = r(12), 805 a = r(13), 806 l = r(14), 807 u = function(t, e) { 808 switch (t) { 809 case "horizontal": 810 return Object(i.a)(e); 811 case "vertical": 812 return Object(n.a)(e); 813 case "sameHeight": 814 return Object(o.a)(e); 815 case "sameWidth": 816 return Object(s.a)(e); 817 case "sameSize": 818 return Object(a.a)(e); 819 case "packed": 820 return Object(l.a)(e); 821 default: 822 return Object(a.a)(e) 823 } 824 }; 825 e.a = u 826}, function(t, e, r) { 827 "use strict"; 828 var i = function(t) { 829 var e = t.props, 830 r = e.FilterContainer, 831 i = e.FilteredItems, 832 n = 0, 833 o = 0, 834 s = i.map(function(t) { 835 var e = t.props, 836 r = e.w, 837 i = e.h, 838 s = { 839 left: n, 840 top: 0 841 }; 842 return n += r, i > o && (o = i), s 843 }); 844 return r.updateHeight(o), s 845 }; 846 e.a = i 847}, function(t, e, r) { 848 "use strict"; 849 var i = function(t) { 850 var e = t.props, 851 r = e.FilterContainer, 852 i = e.FilteredItems, 853 n = 0, 854 o = i.map(function(t) { 855 var e = t.props.h, 856 r = { 857 left: 0, 858 top: n 859 }; 860 return n += e, r 861 }); 862 return r.updateHeight(n), o 863 }; 864 e.a = i 865}, function(t, e, r) { 866 "use strict"; 867 var i = function(t) { 868 var e = t.props, 869 r = e.FilterContainer, 870 i = e.FilteredItems, 871 n = r.props.w, 872 o = i[0].props.h, 873 s = 0, 874 a = 0, 875 l = i.map(function(t) { 876 var e = t.props.w; 877 a + e > n && (s++, a = 0); 878 var r = { 879 left: a, 880 top: o * s 881 }; 882 return a += e, r 883 }); 884 return r.updateHeight((s + 1) * i[0].props.h), l 885 }; 886 e.a = i 887}, function(t, e, r) { 888 "use strict"; 889 890 function i(t) { 891 if (Array.isArray(t)) { 892 for (var e = 0, r = Array(t.length); e < t.length; e++) r[e] = t[e]; 893 return r 894 } 895 return Array.from(t) 896 } 897 var n = function(t) { 898 var e = t.props, 899 r = e.FilterContainer, 900 n = e.FilteredItems, 901 s = r.calcColumns(), 902 a = 0, 903 l = Array.apply(null, Array(s)).map(Number.prototype.valueOf, 0), 904 u = n.map(function(t, e) { 905 var r = t.props, 906 i = r.w, 907 u = r.h; 908 e % s == 0 && e >= s && a++; 909 var c = e - s * a; 910 return l[c] += u, { 911 left: c * i, 912 top: o(n, s, e) 913 } 914 }); 915 return r.updateHeight(Math.max.apply(Math, i(l))), u 916 }, 917 o = function(t, e, r) { 918 if (e <= 0) return 0; 919 var i = 0; 920 if (r < e - 1) return 0; 921 for (r -= e; r >= 0;) i += t[r].props.h, r -= e; 922 return i 923 }; 924 e.a = n 925}, function(t, e, r) { 926 "use strict"; 927 var i = function(t) { 928 var e = t.props, 929 r = e.FilterContainer, 930 i = e.FilteredItems, 931 n = r.calcColumns(), 932 o = 0, 933 s = i.map(function(t, e) { 934 return e % n == 0 && e >= n && o++, { 935 left: (e - n * o) * t.props.w, 936 top: o * t.props.h 937 } 938 }), 939 a = i[0] && i[0].props.h || 0; 940 return r.updateHeight((o + 1) * a), s 941 }; 942 e.a = i 943}, function(t, e, r) { 944 "use strict"; 945 var i = function(t) { 946 var e = t.props, 947 r = e.FilterContainer, 948 i = e.FilteredItems, 949 o = new n(r.props.w), 950 s = i.map(function(t) { 951 var e = t.props; 952 return { 953 w: e.w, 954 h: e.h 955 } 956 }); 957 o.fit(s); 958 var a = s.map(function(t) { 959 var e = t.fit; 960 return { 961 left: e.x, 962 top: e.y 963 } 964 }); 965 return r.updateHeight(o.root.h), a 966 }, 967 n = function(t) { 968 this.init(t) 969 }; 970 n.prototype = { 971 init: function(t) { 972 this.root = { 973 x: 0, 974 y: 0, 975 w: t 976 } 977 }, 978 fit: function(t) { 979 var e, r, i, n = t.length, 980 o = n > 0 ? t[0].h : 0; 981 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) 982 }, 983 findNode: function(t, e, r) { 984 return t.used ? this.findNode(t.right, e, r) || this.findNode(t.down, e, r) : e <= t.w && r <= t.h ? t : null 985 }, 986 splitNode: function(t, e, r) { 987 return t.used = !0, t.down = { 988 x: t.x, 989 y: t.y + r, 990 w: t.w, 991 h: t.h - r 992 }, t.right = { 993 x: t.x + e, 994 y: t.y, 995 w: t.w - e, 996 h: r 997 }, t 998 }, 999 growDown: function(t, e) { 1000 var r; 1001 return this.root = { 1002 used: !0, 1003 x: 0, 1004 y: 0, 1005 w: this.root.w, 1006 h: this.root.h + e, 1007 down: { 1008 x: 0, 1009 y: this.root.h, 1010 w: this.root.w, 1011 h: e 1012 }, 1013 right: this.root 1014 }, (r = this.findNode(this.root, t, e)) ? this.splitNode(r, t, e) : null 1015 } 1016 }, e.a = i 1017}, function(t, e, r) { 1018 "use strict"; 1019 1020 function i() { 1021 String.prototype.includes || (String.prototype.includes = function(t, e) { 1022 return "number" != typeof e && (e = 0), !(e + t.length > this.length) && -1 !== this.indexOf(t, e) 1023 }), Array.prototype.includes || Object.defineProperty(Array.prototype, "includes", { 1024 value: function(t, e) { 1025 if (null == this) throw new TypeError('"this" is null or not defined'); 1026 var r = Object(this), 1027 i = r.length >>> 0; 1028 if (0 === i) return !1; 1029 for (var n = 0 | e, o = Math.max(n >
1029= 0 ? n : i - Math.abs(n), 0); o < i;) { 1030 if (function(t, e) { 1031 return t === e || "number" == typeof t && "number" == typeof e && isNaN(t) && isNaN(e) 1032 }(r[o], t)) return !0; 1033 o++ 1034 } 1035 return !1 1036 } 1037 }) 1038 } 1039 e.a = i 1040}, 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.