/*!
* Simple-Jekyll-Search v1.7.2 (https://github.com/christian-fei/Simple-Jekyll-Search) * Copyright 2015-2018, Christian Fei * Licensed under the MIT License. */
!(function() {
"use strict"; var f = { load: function w(t, e) { var n = (function r() { return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"); })(); n.open("GET", t, !0), (n.onreadystatechange = (function i(e, n) { return function() { if (4 === e.readyState && 200 === e.status) try { n(null, JSON.parse(e.responseText)); } catch (t) { n(t, null); } }; })(n, e)), n.send(); } }; (function y(t) { if ( !(function e(t) { return ( !!t && "undefined" != typeof t.required && t.required instanceof Array ); })(t) ) throw new Error("-- OptionsValidator: required options missing"); if (!(this instanceof y)) return new y(t); var r = t.required; (this.getRequiredOptions = function() { return r; }), (this.validate = function(e) { var n = []; return ( r.forEach(function(t) { "undefined" == typeof e[t] && n.push(t); }), n ); }); }); var n = function g(t, e) { var n = e.length, r = t.length; if (n < r) return !1; if (r === n) return t === e; t: for (var i = 0, o = 0; i < r; i++) { for (var u = t.charCodeAt(i); o < n; ) if (e.charCodeAt(o++) === u) continue t; return !1; } return !0; }, e = new (function t() { this.matches = function(t, e) { return n(e.toLowerCase(), t.toLowerCase()); }; })(); var r = new (function O() { this.matches = function(e, t) { return ( !!e && ((e = e.trim().toLowerCase()), (t = t.trim().toLowerCase()).split(" ").filter(function(t) { return 0 <= e.indexOf(t); }).length === t.split(" ").length) ); }; })(); var l = { put: function z(t) { if (c(t)) return s(t); if ( (function e(t) { return ( Boolean(t) && "[object Array]" === Object.prototype.toString.call(t) ); })(t) ) return (function i(t) { var e = []; a(); for (var n = 0, r = t.length; n < r; n++) c(t[n]) && e.push(s(t[n])); return e; })(t); return undefined; }, clear: a, search: function S(t) { return t ? (function a(t, e, n, r) { for (var i = [], o = 0; o < t.length && i.length < r.limit; o++) { var u = d(t[o], e, n, r); u && i.push(u); } return i; })(o, t, u.searchStrategy, u).sort(u.sort) : []; }, setOptions: function q(t) { ((u = t || {}).fuzzy = t.fuzzy || !1), (u.limit = t.limit || 10), (u.searchStrategy = t.fuzzy ? e : r), (u.sort = t.sort || i); } }; function i() { return 0; } var o = [], u = {}; function a() { return (o.length = 0), o; } function c(t) { return ( Boolean(t) && "[object Object]" === Object.prototype.toString.call(t) ); } function s(t) { return o.push(t), o; } function d(t, e, n, r) { for (var i in t) if (!p(t[i], r.exclude) && n.matches(t[i], e)) return t; } function p(t, e) { for (var n = !1, r = 0, i = (e = e || []).length; r < i; r++) { var o = e[r]; !n && new RegExp(t).test(o) && (n = !0); } return n; } (u.fuzzy = !1), (u.limit = 10), (u.searchStrategy = u.fuzzy ? e : r), (u.sort = i); var h = { compile: function j(r) { return m.template.replace(m.pattern, function(t, e) { var n = m.middleware(e, r[e], m.template); return void 0 !== n ? n : r[e] || t; }); }, setOptions: function C(t) { (m.pattern = t.pattern || m.pattern), (m.template = t.template || m.template), "function" == typeof t.middleware && (m.middleware = t.middleware); } }, m = {}; (m.pattern = /\{(.*?)\}/g), (m.template = ""), (m.middleware = function() {}); var v = { merge: function L(t, e) { var n = {}; for (var r in t) (n[r] = t[r]), "undefined" != typeof e[r] && (n[r] = e[r]); return n; }, isJSON: function M(t) { try { return !!(t instanceof Object && JSON.parse(JSON.stringify(t))); } catch (e) { return !1; } } }; !(function(t) { var o = { searchInput: null, resultsContainer: null, json: [], success: Function.prototype, searchResultTemplate: '<li><a href="{url}" title="{desc}">{title}</a></li>', templateMiddleware: Function.prototype, sortMiddleware: function() { return 0; }, noResultsText: "No results found", limit: 10, fuzzy: !1, exclude: [] }, n = ["searchInput", "resultsContainer", "json"], r = (function y(e) { if ( !(function n(t) { return ( !!t && "undefined" != typeof t.required && t.required instanceof Array ); })(e) ) throw new Error("-- OptionsValidator: required options missing"); if (!(this instanceof y)) return new y(e); var r = e.required; (this.getRequiredOptions = function() { return r; }), (this.validate = function(e) { var n = []; return ( r.forEach(function(t) { "undefined" == typeof e[t] && n.push(t); }), n ); }); })({ required: n }); function i(t) { o.success(t), l.put(t), (function e() { o.searchInput.addEventListener("keyup", function(t) { (function e(t) { return -1 === [13, 16, 20, 37, 38, 39, 40, 91].indexOf(t); })(t.which) && (u(), c(t.target.value)); }); })(); } function u() { o.resultsContainer.innerHTML = ""; } function a(t) { o.resultsContainer.innerHTML += t; } function c(t) { (function e(t) { return t && 0 < t.length; })(t) && (u(), (function i(t, e) { var n = t.length; if (0 === n) return a(o.noResultsText); for (var r = 0; r < n; r++) (t[r].query = e), a(h.compile(t[r])); })(l.search(t), t)); } function s(t) { throw new Error("SimpleJekyllSearch --- " + t); } t.SimpleJekyllSearch = function(t) { return ( 0 < r.validate(t).length && s("You must specify the following required options: " + n), (o = v.merge(o, t)), h.setOptions({ template: o.searchResultTemplate, middleware: o.templateMiddleware }), l.setOptions({ fuzzy: o.fuzzy, limit: o.limit, sort: o.sortMiddleware }), v.isJSON(o.json) ? i(o.json) : (function e(n) { f.load(n, function(t, e) { t && s("failed to get JSON (" + n + ")"), i(e); }); })(o.json), { search: c } ); }; })(window);
})();