summaryrefslogtreecommitdiff
path: root/searx/static/themes/simple/js
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-08-31 15:33:38 +0200
committerAlexandre Flament <alex@al-f.net>2021-08-31 15:43:28 +0200
commitd246679dbe5eccc5e7d5be50b8c78c76e1f0bebb (patch)
tree3e22fe42715cb31f009b85ad0d49a3404259d451 /searx/static/themes/simple/js
parentf77f797f8c7016a5748acfcf934a2c54d15af765 (diff)
downloadsearxng-d246679dbe5eccc5e7d5be50b8c78c76e1f0bebb.tar.gz
searxng-d246679dbe5eccc5e7d5be50b8c78c76e1f0bebb.zip
[build] /static
Diffstat (limited to 'searx/static/themes/simple/js')
-rw-r--r--searx/static/themes/simple/js/searx.head.js1
-rw-r--r--searx/static/themes/simple/js/searx.head.min.js.map2
-rw-r--r--searx/static/themes/simple/js/searx.js103
-rw-r--r--searx/static/themes/simple/js/searx.min.js2
-rw-r--r--searx/static/themes/simple/js/searx.min.js.map2
5 files changed, 58 insertions, 52 deletions
diff --git a/searx/static/themes/simple/js/searx.head.js b/searx/static/themes/simple/js/searx.head.js
index be7560451..0a4fafbce 100644
--- a/searx/static/themes/simple/js/searx.head.js
+++ b/searx/static/themes/simple/js/searx.head.js
@@ -15,6 +15,7 @@
* (C) 2019 by Alexandre Flament
*
*/
+/* global DocumentTouch:readonly */
(function(w, d) {
'use strict';
diff --git a/searx/static/themes/simple/js/searx.head.min.js.map b/searx/static/themes/simple/js/searx.head.min.js.map
index 04525c616..69490193e 100644
--- a/searx/static/themes/simple/js/searx.head.min.js.map
+++ b/searx/static/themes/simple/js/searx.head.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"searx.head.min.js","sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":"CAiBA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,aAAcC,KAAKC,MAAMjB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGe,UAAapB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGc,OAAQX"} \ No newline at end of file
+{"version":3,"file":"searx.head.min.js","sources":["searx.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searx","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","static_path","translations","JSON","parse","className","window"],"mappings":"CAkBA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,MAAQ,CACNC,MAAS,iBAAkBR,GAAMA,EAAES,eAAiBC,oBAAoBD,eAAkB,MAC1FE,OAAQT,EAAOU,aAAa,eAC5BC,cAAeX,EAAOU,aAAa,wBAA0B,OAC7DE,0BAA2BZ,EAAOU,aAAa,oCAAsC,OACrFG,gBAAiBb,EAAOU,aAAa,0BAA4B,OACjEI,YAAad,EAAOU,aAAa,oBACjCK,aAAcC,KAAKC,MAAMjB,EAAOU,aAAa,uBAIjDX,EAAEI,qBAAqB,QAAQ,GAAGe,UAAapB,EAAEO,MAAW,MAAE,WAAW,MArB7E,CAsBGc,OAAQX"} \ No newline at end of file
diff --git a/searx/static/themes/simple/js/searx.js b/searx/static/themes/simple/js/searx.js
index 5ded864cb..5982a06cf 100644
--- a/searx/static/themes/simple/js/searx.js
+++ b/searx/static/themes/simple/js/searx.js
@@ -70,7 +70,7 @@ window.searx = (function(w, d) {
}
};
- searx.http = function(method, url, callback) {
+ searx.http = function(method, url) {
var req = new XMLHttpRequest(),
resolve = function() {},
reject = function() {},
@@ -148,21 +148,22 @@ window.searx = (function(w, d) {
};
searx.insertBefore = function (newNode, referenceNode) {
- element.parentNode.insertBefore(newNode, referenceNode);
+ referenceNode.parentNode.insertBefore(newNode, referenceNode);
};
searx.insertAfter = function(newNode, referenceNode) {
- referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
+ referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);
};
- searx.on('.close', 'click', function(e) {
- var el = e.target || e.srcElement;
+ searx.on('.close', 'click', function() {
this.parentNode.classList.add('invisible');
});
return searx;
})(window, document);
-;searx.ready(function() {
+;/*global searx*/
+
+searx.ready(function() {
searx.on('.result', 'click', function() {
highlightResult(this)(true);
@@ -244,13 +245,13 @@ window.searx = (function(w, d) {
},
80: {
key: 'p',
- fun: pageButtonClick(0),
+ fun: GoToPreviousPage(),
des: 'go to previous page',
cat: 'Results'
},
78: {
key: 'n',
- fun: pageButtonClick(1),
+ fun: GoToNextPage(),
des: 'go to next page',
cat: 'Results'
},
@@ -282,7 +283,7 @@ window.searx = (function(w, d) {
searx.on(document, "keydown", function(e) {
// check for modifiers so we don't break browser's hotkeys
- if (vimKeys.hasOwnProperty(e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
+ if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
var tagName = e.target.tagName.toLowerCase();
if (e.keyCode === 27) {
if (tagName === 'input' || tagName === 'select' || tagName === 'textarea') {
@@ -380,21 +381,23 @@ window.searx = (function(w, d) {
}
}
- function pageButtonClick(num) {
+ function pageButtonClick(css_selector) {
return function() {
- var buttons = $('div#pagination button[type="submit"]');
- if (buttons.length !== 2) {
- console.log('page navigation with this theme is not supported');
- return;
- }
- if (num >= 0 && num < buttons.length) {
- buttons[num].click();
- } else {
- console.log('pageButtonClick(): invalid argument');
+ var button = document.querySelector(css_selector);
+ if (button) {
+ button.click();
}
};
}
+ function GoToNextPage() {
+ return pageButtonClick('nav#pagination .next_page button[type="submit"]');
+ }
+
+ function GoToPreviousPage() {
+ return pageButtonClick('nav#pagination .previous_page button[type="submit"]');
+ }
+
function scrollPageToSelected() {
var sel = document.querySelector('.result[data-vim-selected]');
if (sel === null) {
@@ -472,9 +475,9 @@ window.searx = (function(w, d) {
return;
}
- var html = '<a href="#" class="close" aria-label="close" title="close">×</a>';
- html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
- html += '<table>';
+ var html = '<a href="#" class="close" aria-label="close" title="close">×</a>';
+ html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';
+ html += '<table>';
for (var i = 0; i < sorted.length; i++) {
var cat = categories[sorted[i]];
@@ -502,31 +505,31 @@ window.searx = (function(w, d) {
}
}
- html += '</table>';
+ html += '</table>';
- divElement.innerHTML = html;
- }
+ divElement.innerHTML = html;
+ }
function toggleHelp() {
- var helpPanel = document.querySelector('#vim-hotkeys-help');
- console.log(helpPanel);
- if (helpPanel === undefined || helpPanel === null) {
- // first call
- helpPanel = document.createElement('div');
- helpPanel.id = 'vim-hotkeys-help';
- helpPanel.className='dialog-modal';
- helpPanel.style='width: 40%';
+ var helpPanel = document.querySelector('#vim-hotkeys-help');
+ console.log(helpPanel);
+ if (helpPanel === undefined || helpPanel === null) {
+ // first call
+ helpPanel = document.createElement('div');
+ helpPanel.id = 'vim-hotkeys-help';
+ helpPanel.className='dialog-modal';
+ helpPanel.style='width: 40%';
+ initHelpContent(helpPanel);
initHelpContent(helpPanel);
- var body = document.getElementsByTagName('body')[0];
- body.appendChild(helpPanel);
- } else {
- // togggle hidden
- helpPanel.classList.toggle('invisible');
- return;
- }
-
+ initHelpContent(helpPanel);
+ var body = document.getElementsByTagName('body')[0];
+ body.appendChild(helpPanel);
+ } else {
+ // togggle hidden
+ helpPanel.classList.toggle('invisible');
+ return;
+ }
}
-
});
;/**
* searx is free software: you can redistribute it and/or modify
@@ -545,6 +548,7 @@ window.searx = (function(w, d) {
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
* (C) 2017 by Alexandre Flament, <alex@al-f.net>
*/
+/* global L */
(function (w, d, searx) {
'use strict';
@@ -577,7 +581,7 @@ window.searx = (function(w, d) {
var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
- var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
+ var osmWikimediaAttrib = 'Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';
var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
// init map view
if(map_bounds) {
@@ -599,8 +603,8 @@ window.searx = (function(w, d) {
map.addLayer(osmMapnik);
var baseLayers = {
- "OSM Mapnik": osmMapnik/*,
- "OSM Wikimedia": osmWikimedia*/
+ "OSM Mapnik": osmMapnik,
+ "OSM Wikimedia": osmWikimedia,
};
L.control.layers(baseLayers).addTo(map);
@@ -640,7 +644,7 @@ window.searx = (function(w, d) {
searx.image_thumbnail_layout = new searx.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 10, 200);
searx.image_thumbnail_layout.watch();
- searx.on('.btn-collapse', 'click', function(event) {
+ searx.on('.btn-collapse', 'click', function() {
var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');
var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');
var target = this.getAttribute('data-target');
@@ -656,7 +660,7 @@ window.searx = (function(w, d) {
targetElement.classList.toggle('invisible');
});
- searx.on('.media-loader', 'click', function(event) {
+ searx.on('.media-loader', 'click', function() {
var target = this.getAttribute('data-target');
var iframe_load = d.querySelector(target + ' > iframe');
var srctest = iframe_load.getAttribute('src');
@@ -696,6 +700,7 @@ window.searx = (function(w, d) {
*
* (C) 2017 by Alexandre Flament, <alex@al-f.net>
*/
+/* global AutoComplete */
(function(w, d, searx) {
'use strict';
@@ -738,7 +743,7 @@ window.searx = (function(w, d) {
searx.ready(function() {
qinput = d.getElementById(qinput_id);
- function placeCursorAtEndOnce(e) {
+ function placeCursorAtEndOnce() {
if (firstFocus) {
placeCursorAtEnd(qinput);
firstFocus = false;
@@ -780,7 +785,7 @@ window.searx = (function(w, d) {
if (qinput !== null && searx.search_on_category_select) {
d.querySelector('.help').className='invisible';
- searx.on('#categories input', 'change', function(e) {
+ searx.on('#categories input', 'change', function() {
var i, categories = d.querySelectorAll('#categories input[type="checkbox"]');
for(i=0; i<categories.length; i++) {
if (categories[i] !== this && categories[i].checked) {
diff --git a/searx/static/themes/simple/js/searx.min.js b/searx/static/themes/simple/js/searx.min.js
index 428aa8a49..2b0cd9a4d 100644
--- a/searx/static/themes/simple/js/searx.min.js
+++ b/searx/static/themes/simple/js/searx.min.js
@@ -1,4 +1,4 @@
-window.searx=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searx||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t,n){var i=new XMLHttpRequest,r=function(){},o=function(){},a={then:function(e){r=e;return a},catch:function(e){o=e;return a}};try{i.open(e,t,true);i.onload=function(){if(i.status==200){r(i.response,i.responseType)}else{o(Error(i.statusText))}};i.onerror=function(){o(Error("Network Error"))};i.onabort=function(){o(Error("Transaction is aborted"))};i.send()}catch(e){o(e)}return a};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){element.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertBefore(e,t.nextSibling)};s.on(".close","click",function(e){var t=e.target||e.srcElement;this.parentNode.classList.add("invisible")});return s}(window,document);searx.ready(function(){searx.on(".result","click",function(){n(this)(true)});searx.on(".result a","focus",function(e){var t=e.target;while(t!==undefined){if(t.classList.contains("result")){if(t.getAttribute("data-vim-selected")===null){n(t)(true)}break}t=t.parentNode}},true);var d={27:{key:"Escape",fun:t,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:a,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:r(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:r(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:r(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:r(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:o(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:o(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:n("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:n("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:i(0),des:"go to previous page",cat:"Results"},78:{key:"n",fun:i(1),des:"go to next page",cat:"Results"},79:{key:"o",fun:s(false),des:"open search result",cat:"Results"},84:{key:"t",fun:s(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:e,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:u,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(e){if(d.hasOwnProperty(e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){if(t==="input"||t==="select"||t==="textarea"){d[e.keyCode].fun()}}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}});function n(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function e(){document.location.reload(true)}function t(){if(document.activeElement){document.activeElement.blur()}}function i(t){return function(){var e=$('div#pagination button[type="submit"]');if(e.length!==2){console.log("page navigation with this theme is not supported");return}if(t>=0&&t<e.length){e[t].click()}else{console.log("pageButtonClick(): invalid argument")}}}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function r(e){return function(){window.scrollBy(0,e);n("visible")()}}function o(e,t){return function(){window.scrollTo(0,e);n(t)()}}function a(){window.scrollTo(0,0);document.querySelector("#q").focus()}function s(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function l(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function u(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";l(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a};L.control.layers(c).addTo(i);if(g){L.geoJson(g).addTo(i)}});e.preventDefault()})})})(window,document,window.searx);(function(e,a,t){"use strict";t.ready(function(){t.image_thumbnail_layout=new t.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",10,200);t.image_thumbnail_layout.watch();t.on(".btn-collapse","click",function(e){var t=this.getAttribute("data-btn-text-collapsed");var n=this.getAttribute("data-btn-text-not-collapsed");var i=this.getAttribute("data-target");var r=a.querySelector(i);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(t,n)}else{o=o.replace(n,t)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});t.on(".media-loader","click",function(e){var t=this.getAttribute("data-target");var n=a.querySelector(t+" > iframe");var i=n.getAttribute("src");if(i===null||i===undefined||i===false){n.setAttribute("src",n.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(t>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(t,i,n){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}n.ready(function(){a=i.getElementById(o);function e(e){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(n.autocompleter){n.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:n.translations.no_item_found,HttpMethod:n.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&n.search_on_category_select){i.querySelector(".help").className="invisible";n.on("#categories input","change",function(e){var t,n=i.querySelectorAll('#categories input[type="checkbox"]');for(t=0;t<n.length;t++){if(n[t]!==this&&n[t].checked){n[t].click()}}if(!this.checked){this.click()}l();return false});n.on(i.getElementById("time_range"),"change",l);n.on(i.getElementById("language"),"change",l)}})})(window,document,window.searx);
+window.searx=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),i=-1;while(n[++i]&&n[i]!=t);return!!n[i]}})(Element.prototype)}function a(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var s=window.searx||{};s.on=function(i,e,r,t){t=t||false;if(typeof i!=="string"){i.addEventListener(e,r,t)}else{o.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==o&&!(n=t.matches(i)))t=t.parentElement;if(n)a(r,t,e)},t)}};s.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};s.http=function(e,t){var n=new XMLHttpRequest,i=function(){},r=function(){},o={then:function(e){i=e;return o},catch:function(e){r=e;return o}};try{n.open(e,t,true);n.onload=function(){if(n.status==200){i(n.response,n.responseType)}else{r(Error(n.statusText))}};n.onerror=function(){r(Error("Network Error"))};n.onabort=function(){r(Error("Transaction is aborted"))};n.send()}catch(e){r(e)}return o};s.loadStyle=function(e){var t=s.static_path+e,n="style_"+e.replace(".","_"),i=o.getElementById(n);if(i===null){i=o.createElement("link");i.setAttribute("id",n);i.setAttribute("rel","stylesheet");i.setAttribute("type","text/css");i.setAttribute("href",t);o.body.appendChild(i)}};s.loadScript=function(e,t){var n=s.static_path+e,i="script_"+e.replace(".","_"),r=o.getElementById(i);if(r===null){r=o.createElement("script");r.setAttribute("id",i);r.setAttribute("src",n);r.onload=t;r.onerror=function(){r.setAttribute("error","1")};o.body.appendChild(r)}else if(!r.hasAttribute("error")){try{t.apply(r,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};s.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};s.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};s.on(".close","click",function(){this.parentNode.classList.add("invisible")});return s}(window,document);searx.ready(function(){searx.on(".result","click",function(){n(this)(true)});searx.on(".result a","focus",function(e){var t=e.target;while(t!==undefined){if(t.classList.contains("result")){if(t.getAttribute("data-vim-selected")===null){n(t)(true)}break}t=t.parentNode}},true);var d={27:{key:"Escape",fun:t,des:"remove focus from the focused input",cat:"Control"},73:{key:"i",fun:l,des:"focus on the search input",cat:"Control"},66:{key:"b",fun:a(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},70:{key:"f",fun:a(window.innerHeight),des:"scroll one page down",cat:"Navigation"},85:{key:"u",fun:a(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},68:{key:"d",fun:a(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},71:{key:"g",fun:s(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},86:{key:"v",fun:s(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},75:{key:"k",fun:n("up"),des:"select previous search result",cat:"Results"},74:{key:"j",fun:n("down"),des:"select next search result",cat:"Results"},80:{key:"p",fun:o(),des:"go to previous page",cat:"Results"},78:{key:"n",fun:r(),des:"go to next page",cat:"Results"},79:{key:"o",fun:u(false),des:"open search result",cat:"Results"},84:{key:"t",fun:u(true),des:"open the result in a new tab",cat:"Results"},82:{key:"r",fun:e,des:"reload page from the server",cat:"Control"},72:{key:"h",fun:p,des:"toggle help window",cat:"Other"}};searx.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.keyCode)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.keyCode===27){if(t==="input"||t==="select"||t==="textarea"){d[e.keyCode].fun()}}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.keyCode].fun()}}}});function n(d){return function(e){var t=document.querySelector(".result[data-vim-selected]"),n=d;if(t===null){t=document.querySelector(".result");if(t===null){return}if(d==="down"||d==="up"){n=t}}var i,r=document.querySelectorAll(".result");if(typeof n!=="string"){i=n}else{switch(n){case"visible":var o=document.documentElement.scrollTop||document.body.scrollTop;var a=o+document.documentElement.clientHeight;for(var s=0;s<r.length;s++){i=r[s];var l=i.offsetTop;var u=l+i.clientHeight;if(u<=a&&l>o){break}}break;case"down":i=t.nextElementSibling;if(i===null){i=r[0]}break;case"up":i=t.previousElementSibling;if(i===null){i=r[r.length-1]}break;case"bottom":i=r[r.length-1];break;case"top":default:i=r[0]}}if(i){t.removeAttribute("data-vim-selected");i.setAttribute("data-vim-selected","true");var c=i.querySelector("h3 a")||i.querySelector("a");if(c!==null){c.focus()}if(!e){f()}}}}function e(){document.location.reload(true)}function t(){if(document.activeElement){document.activeElement.blur()}}function i(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function r(){return i('nav#pagination .next_page button[type="submit"]')}function o(){return i('nav#pagination .previous_page button[type="submit"]')}function f(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,i=e.offsetTop,r=i+e.clientHeight,o=120;if(e.previousElementSibling===null&&r<n){window.scroll(window.scrollX,0);return}if(t>i-o){window.scroll(window.scrollX,i-o)}else{var a=t+n;if(a<r+o){window.scroll(window.scrollX,r-n+o)}}}function a(e){return function(){window.scrollBy(0,e);n("visible")()}}function s(e,t){return function(){window.scrollTo(0,e);n(t)()}}function l(){window.scrollTo(0,0);document.querySelector("#q").focus()}function u(n){return function(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function c(e){var n={};for(var t in d){var i=d[t];n[i.cat]=n[i.cat]||[];n[i.cat].push(i)}var r=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(r.length===0){return}var o='<a href="#" class="close" aria-label="close" title="close">×</a>';o+="<h3>How to navigate searx with Vim-like hotkeys</h3>";o+="<table>";for(var a=0;a<r.length;a++){var s=n[r[a]];var l=a===r.length-1;var u=a%2===0;if(u){o+="<tr>"}o+="<td>";o+="<h4>"+s[0].cat+"</h4>";o+='<ul class="list-unstyled">';for(var c in s){o+="<li><kbd>"+s[c].key+"</kbd> "+s[c].des+"</li>"}o+="</ul>";o+="</td>";if(!u||l){o+="</tr>"}}o+="</table>";e.innerHTML=o}function p(){var e=document.querySelector("#vim-hotkeys-help");console.log(e);if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";e.style="width: 40%";c(e);c(e);c(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}});(function(e,t,n){"use strict";n.ready(function(){n.on(".searx_init_map","click",function(e){this.classList.remove("searx_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var i=L.map(d);var r="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';var a=new L.TileLayer(r,{minZoom:1,maxZoom:19,attribution:o});var s="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © <a href="https://openstreetmap.org">OpenStreetMap contributors</a>';var u=new L.TileLayer(s,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){i.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){i.setView(new L.latLng(p,f),h)}else{i.setView(new L.latLng(p,f),8)}}i.addLayer(a);var c={"OSM Mapnik":a,"OSM Wikimedia":u};L.control.layers(c).addTo(i);if(g){L.geoJson(g).addTo(i)}});e.preventDefault()})})})(window,document,window.searx);(function(e,o,t){"use strict";t.ready(function(){t.image_thumbnail_layout=new t.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",10,200);t.image_thumbnail_layout.watch();t.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var i=o.querySelector(n);var r=this.innerHTML;if(this.classList.contains("collapsed")){r=r.replace(e,t)}else{r=r.replace(t,e)}this.innerHTML=r;this.classList.toggle("collapsed");i.classList.toggle("invisible")});t.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=o.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});e.addEventListener("scroll",function(){var e=o.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop;if(e!==null){if(t>=200){e.style.opacity=1}else{e.style.opacity=0}}})})})(window,document,window.searx);(function(t,n,i){"use strict";var r=true,o="q",a;function s(e){if(e.setSelectionRange){var t=e.value.length;e.setSelectionRange(t,t)}}function l(){if(a.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function u(e){var t=document.getElementById("clear_search");var n=function(){if(e.value.length===0){t.classList.add("empty")}else{t.classList.remove("empty")}};n();t.addEventListener("click",function(){e.value="";e.focus();n()});e.addEventListener("keyup",n,false)}i.ready(function(){a=n.getElementById(o);function e(){if(r){s(a);r=false}else{}}if(a!==null){u(a);if(i.autocompleter){i.autocomplete=AutoComplete.call(t,{Url:"./autocompleter",EmptyMessage:i.translations.no_item_found,HttpMethod:i.method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:4,Delay:300},"#"+o);t.addEventListener("resize",function(){var e=new CustomEvent("position");a.dispatchEvent(e)})}a.addEventListener("focus",e,false);a.focus()}if(a!==null&&i.search_on_category_select){n.querySelector(".help").className="invisible";i.on("#categories input","change",function(){var e,t=n.querySelectorAll('#categories input[type="checkbox"]');for(e=0;e<t.length;e++){if(t[e]!==this&&t[e].checked){t[e].click()}}if(!this.checked){this.click()}l();return false});i.on(n.getElementById("time_range"),"change",l);i.on(n.getElementById("language"),"change",l)}})})(window,document,window.searx);
/**
*
* Google Image Layout v0.0.1
diff --git a/searx/static/themes/simple/js/searx.min.js.map b/searx/static/themes/simple/js/searx.min.js.map
index 4579e5907..1763fd2e5 100644
--- a/searx/static/themes/simple/js/searx.min.js.map
+++ b/searx/static/themes/simple/js/searx.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"searx.min.js","sources":["searx.js"],"names":["window","searx","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","element","insertAfter","nextSibling","classList","add","highlightResult","undefined","contains","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","pageButtonClick","78","79","openResult","84","82","reloadPage","72","toggleHelp","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","preventDefault","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","num","buttons","$","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","Object","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","style","getElementsByTagName","toggle","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","control","layers","addTo","geoJson","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","translations","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","margin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","_Position","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","offsetHeight","offsetLeft","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"searx.min.js","sources":["searx.js"],"names":["window","searx","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","req","XMLHttpRequest","resolve","reject","promise","then","catch","open","onload","status","response","responseType","Error","statusText","onerror","onabort","send","ex","loadStyle","src","path","static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","highlightResult","undefined","contains","getAttribute","vimKeys","27","key","fun","removeFocus","des","cat","73","searchInputFocus","66","scrollPage","innerHeight","70","85","68","71","scrollPageTo","scrollHeight","86","75","74","80","GoToPreviousPage","78","GoToNextPage","79","openResult","84","82","reloadPage","72","toggleHelp","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","preventDefault","which","noScroll","current","querySelector","effectiveWhich","next","results","top","documentElement","scrollTop","bot","clientHeight","length","etop","offsetTop","ebot","nextElementSibling","previousElementSibling","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","newTab","href","initHelpContent","divElement","categories","k","push","sorted","keys","sort","a","b","html","lastCategory","first","cj","innerHTML","helpPanel","className","style","getElementsByTagName","toggle","event","remove","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","opacity","firstFocus","qinput_id","qinput","placeCursorAtEnd","element","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","translations","no_item_found","HttpMethod","HttpHeaders","Content-type","X-Requested-With","MinChars","Delay","CustomEvent","dispatchEvent","search_on_category_select","checked","container_selector","results_selector","img_selector","margin","maxHeight","isAlignDone","_getHeigth","images","width","img","r","naturalWidth","naturalHeight","_setSize","height","imgWidth","imagesLength","resultNode","marginLeft","marginTop","marginRight","marginBottom","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","t","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","elements","input","specificParams","merge","defaults","DOMResults","create","Input","nodeName","match","_Position","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","KeyboardMappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","Not","Is","From","To","name","Conditions","Callback","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","request","_HttpMethod","_Url","queryParams","_Pre","queryParamsStringify","encodeURIComponent","_QueryArg","indexOf","setRequestHeader","onreadystatechange","$Cache","ajax","timeout","$AjaxTimer","clearTimeout","Request","abort","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","Enter","liActive","_Select","KeyUpAndDown_down","KeyUpAndDown_up","last","active","currentIndex","children","lisCount","item","AlphaNum","oldValue","currentValue","_MinChars","_Render","_Post","_Open","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","minchars","_Highlight","label","now","li","onclick","offsetHeight","offsetLeft","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file