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.