summaryrefslogtreecommitdiff
path: root/searx/static/themes/simple/js
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-10-28 08:37:38 +0200
committerAlexandre Flament <alex@al-f.net>2021-10-28 08:37:38 +0200
commita93bd191012add3adb670ecbc6e4119feb59ab02 (patch)
tree0dd6787e3b6176345e681c02746177e626f0ac19 /searx/static/themes/simple/js
parentfd374d6322c6f0919832b6465bc311dac68bb753 (diff)
[build] /static
Diffstat (limited to 'searx/static/themes/simple/js')
-rw-r--r--searx/static/themes/simple/js/searxng.js104
-rw-r--r--searx/static/themes/simple/js/searxng.min.js4
-rw-r--r--searx/static/themes/simple/js/searxng.min.js.map2
3 files changed, 88 insertions, 22 deletions
diff --git a/searx/static/themes/simple/js/searxng.js b/searx/static/themes/simple/js/searxng.js
index 8f0c0cd97..02a5b87ab 100644
--- a/searx/static/themes/simple/js/searxng.js
+++ b/searx/static/themes/simple/js/searxng.js
@@ -156,7 +156,7 @@ window.searxng = (function(w, d) {
searxng.ready(function() {
searxng.on('.result', 'click', function() {
- highlightResult(this)(true);
+ highlightResult(this)(true);
});
searxng.on('.result a', 'focus', function(e) {
@@ -276,9 +276,7 @@ searxng.ready(function() {
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') {
- vimKeys[e.keyCode].fun();
- }
+ vimKeys[e.keyCode].fun(e);
} else {
if (e.target === document.body || tagName === 'a' || tagName === 'button') {
e.preventDefault();
@@ -365,9 +363,12 @@ searxng.ready(function() {
document.location.reload(true);
}
- function removeFocus() {
- if (document.activeElement) {
+ function removeFocus(e) {
+ const tagName = e.target.tagName.toLowerCase();
+ if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {
document.activeElement.blur();
+ } else {
+ searxng.closeDetail();
}
}
@@ -437,6 +438,9 @@ searxng.ready(function() {
function openResult(newTab) {
return function() {
var link = document.querySelector('.result[data-vim-selected] h3 a');
+ if (link === null) {
+ link = document.querySelector('.result[data-vim-selected] > a');
+ }
if (link !== null) {
var url = link.getAttribute('href');
if (newTab) {
@@ -520,6 +524,10 @@ searxng.ready(function() {
return;
}
}
+
+ searxng.scrollPageToSelected = scrollPageToSelected;
+ searxng.selectNext = highlightResult('down');
+ searxng.selectPrevious = highlightResult('up');
});
;/* SPDX-License-Identifier: AGPL-3.0-or-later */
/* global L */
@@ -628,7 +636,7 @@ searxng.ready(function() {
'use strict';
searxng.ready(function() {
- searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 10, 200);
+ searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);
searxng.image_thumbnail_layout.watch();
searxng.on('.btn-collapse', 'click', function() {
@@ -656,17 +664,74 @@ searxng.ready(function() {
}
});
+ function selectImage(e) {
+ /*eslint no-unused-vars: 0*/
+ let t = e.target;
+ while (t && t.nodeName != 'ARTICLE') {
+ t = t.parentNode;
+ }
+ if (t) {
+ // load full size image in background
+ const imgElement = t.querySelector('.result-images-source img');
+ const thumbnailElement = t.querySelector('.image_thumbnail');
+ const detailElement = t.querySelector('.detail');
+ if (imgElement) {
+ const imgSrc = imgElement.getAttribute('data-src');
+ if (imgSrc) {
+ const loader = d.createElement('div');
+ const imgLoader = new Image();
+
+ loader.classList.add('loader');
+ detailElement.appendChild(loader);
+
+ imgLoader.onload = e => {
+ imgElement.src = imgSrc;
+ loader.remove();
+ };
+ imgLoader.onerror = e => {
+ loader.remove();
+ };
+ imgLoader.src = imgSrc;
+ imgElement.src = thumbnailElement.src;
+ imgElement.removeAttribute('data-src');
+ }
+ }
+ }
+ d.getElementById('results').classList.add('image-detail-open');
+ searxng.image_thumbnail_layout.align();
+ searxng.scrollPageToSelected();
+ }
+
+ searxng.closeDetail = function(e) {
+ d.getElementById('results').classList.remove('image-detail-open');
+ searxng.image_thumbnail_layout.align();
+ searxng.scrollPageToSelected();
+ }
+
+ searxng.on('.result-images', 'click', e => {
+ e.preventDefault();
+ selectImage(e);
+ });
+ searxng.on('.result-images a', 'focus', selectImage, true);
+ searxng.on('.result-detail-close', 'click', e => {
+ e.preventDefault();
+ searxng.closeDetail();
+ });
+ searxng.on('.result-detail-previous', 'click', e => searxng.selectPrevious(false));
+ searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));
+
w.addEventListener('scroll', function() {
var e = d.getElementById('backToTop'),
- scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+ scrollTop = document.documentElement.scrollTop || document.body.scrollTop,
+ results = d.getElementById('results');
if (e !== null) {
- if (scrollTop >= 200) {
- e.style.opacity = 1;
+ if (scrollTop >= 100) {
+ results.classList.add('scrolling');
} else {
- e.style.opacity = 0;
+ results.classList.remove('scrolling');
}
}
- });
+ }, true);
});
@@ -791,11 +856,12 @@ searxng.ready(function() {
*/
(function (w, d) {
- function ImageLayout(container_selector, results_selector, img_selector, margin, maxHeight) {
+ function ImageLayout(container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {
this.container_selector = container_selector;
this.results_selector = results_selector;
this.img_selector = img_selector;
- this.margin = margin;
+ this.verticalMargin = verticalMargin;
+ this.horizontalMargin = horizontalMargin;
this.maxHeight = maxHeight;
this.isAlignDone = true;
}
@@ -825,7 +891,7 @@ searxng.ready(function() {
}
}
- return (width - images.length * this.margin) / r; //have to round down because Firefox will automatically roundup value with number of decimals > 3
+ return (width - images.length * this.verticalMargin) / r; //have to round down because Firefox will automatically roundup value with number of decimals > 3
};
ImageLayout.prototype._setSize = function (images, height) {
@@ -842,10 +908,10 @@ searxng.ready(function() {
}
img.style.width = imgWidth + 'px';
img.style.height = height + 'px';
- img.style.marginLeft = '3px';
- img.style.marginTop = '3px';
- img.style.marginRight = this.margin - 7 + 'px'; // -4 is the negative margin of the inline element
- img.style.marginBottom = this.margin - 7 + 'px';
+ img.style.marginLeft = this.horizontalMargin + 'px';
+ img.style.marginTop = this.horizontalMargin + 'px';
+ img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element
+ img.style.marginBottom = this.verticalMargin - 7 + 'px';
resultNode = img.parentNode.parentNode;
if (!resultNode.classList.contains('js')) {
resultNode.classList.add('js');
diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js
index c2e27c37c..a6d8e9b0a 100644
--- a/searx/static/themes/simple/js/searxng.min.js
+++ b/searx/static/themes/simple/js/searxng.min.js
@@ -4,7 +4,7 @@
* (C) Copyright Contributors to the searx project (2014 - 2021).
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
-window.searxng=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.searxng||{};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);searxng.ready(function(){searxng.on(".result","click",function(){n(this)(true)});searxng.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"}};searxng.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(".searxng_init_map","click",function(e){this.classList.remove("searxng_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.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+":&nbsp;"+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(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.searxng);(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&&n.querySelector(".help")!=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.searxng);
+window.searxng=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.searxng||{};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);searxng.ready(function(){searxng.on(".result","click",function(){n(this)(true)});searxng.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"}};searxng.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){d[e.keyCode].fun(e)}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(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}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){e=document.querySelector(".result[data-vim-selected] > 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}}searxng.scrollPageToSelected=f;searxng.selectNext=n("down");searxng.selectPrevious=n("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_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 g=JSON.parse(this.dataset.mapBoundingbox);var m=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(g){var t=L.latLng(g[0],g[2]);var n=L.latLng(g[1],g[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(m){L.geoJson(m).addTo(i)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,o,a){"use strict";a.ready(function(){let r=null;function e(){if(r==null){a.http("GET","engine_descriptions.json").then(function(e){r=JSON.parse(e);for(const[t,n]of Object.entries(r)){let e=o.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const i of e){let e=" (<i>"+a.translations["Source"]+":&nbsp;"+n[1]+"</i>)";i.innerHTML=n[0]+e}}})}}if(o.querySelector('body[class="preferences_endpoint"]')){for(const t of o.querySelectorAll("[data-engine-name]")){a.on(t,"mouseenter",e)}}})})(window,document,window.searxng);(function(e,l,u){"use strict";u.ready(function(){u.image_thumbnail_layout=new u.ImageLayout("#urls","#urls .result-images","img.image_thumbnail",14,6,200);u.image_thumbnail_layout.watch();u.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=l.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")});u.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=l.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});function t(e){let t=e.target;while(t&&t.nodeName!="ARTICLE"){t=t.parentNode}if(t){const n=t.querySelector(".result-images-source img");const i=t.querySelector(".image_thumbnail");const r=t.querySelector(".detail");if(n){const o=n.getAttribute("data-src");if(o){const a=l.createElement("div");const s=new Image;a.classList.add("loader");r.appendChild(a);s.onload=e=>{n.src=o;a.remove()};s.onerror=e=>{a.remove()};s.src=o;n.src=i.src;n.removeAttribute("data-src")}}}l.getElementById("results").classList.add("image-detail-open");u.image_thumbnail_layout.align();u.scrollPageToSelected()}u.closeDetail=function(e){l.getElementById("results").classList.remove("image-detail-open");u.image_thumbnail_layout.align();u.scrollPageToSelected()};u.on(".result-images","click",e=>{e.preventDefault();t(e)});u.on(".result-images a","focus",t,true);u.on(".result-detail-close","click",e=>{e.preventDefault();u.closeDetail()});u.on(".result-detail-previous","click",e=>u.selectPrevious(false));u.on(".result-detail-next","click",e=>u.selectNext(false));e.addEventListener("scroll",function(){var e=l.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=l.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(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&&n.querySelector(".help")!=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.searxng);
/**
*
* Google Image Layout v0.0.1
@@ -16,7 +16,7 @@ window.searxng=function(t,o){"use strict";if(t.Element){(function(e){e.matches=e
* @license Free to use under the MIT License.
*
*/
-(function(a,c){function e(e,t,n,i,r){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.margin=i;this.maxHeight=r;this.isAlignDone=true}e.prototype._getHeigth=function(e,t){var n,i;var r=0;for(n=0;n<e.length;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r+=i.naturalWidth/i.naturalHeight}else{r+=1}}return(t-e.length*this.margin)/r};e.prototype._setSize=function(e,t){var n,i,r;var o=e.length,a;for(n=0;n<o;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r=t*i.naturalWidth/i.naturalHeight}else{r=t}i.style.width=r+"px";i.style.height=t+"px";i.style.marginLeft="3px";i.style.marginTop="3px";i.style.marginRight=this.margin-7+"px";i.style.marginBottom=this.margin-7+"px";a=i.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,i,r;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(i=1;i<=e.length&&t;i++){n=e.slice(0,i);r=this._getHeigth(n,u);if(r<this.maxHeight){this._setSize(n,r);e=e.slice(i);t=false}}if(t){this._setSize(n,Math.min(this.maxHeight,r));break}}};e.prototype.align=function(){var e;var t=c.querySelectorAll(this.results_selector);var n=t.length;var i=null;var r=null;var o=[];for(e=0;e<n;e++){r=t[e];if(r.previousElementSibling!==i&&o.length>0){this._alignImgs(o);o=[]}o.push(r.querySelector(this.img_selector));i=r}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var i=c.querySelectorAll(this.results_selector);var r=i.length;function o(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}a.addEventListener("pageshow",o);a.addEventListener("load",o);a.addEventListener("resize",o);for(e=0;e<r;e++){t=i[e].querySelector(this.img_selector);if(t!==null&&t!==undefined){t.addEventListener("load",o);t.addEventListener("error",o)}}};a.searxng.ImageLayout=e})(window,document);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(o,a,s){function l(n,e){if(!a[n]){if(!o[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=a[n]={exports:{}};o[n][0].call(r.exports,function(e){var t=o[n][1][e];return l(t||e)},r,r.exports,c,o,a,s)}return a[n].exports}for(var u="function"==typeof require&&require,e=0;e<s.length;e++)l(s[e]);return l}return c}()({1:[function(e,t,n){
+(function(a,c){function e(e,t,n,i,r,o){this.container_selector=e;this.results_selector=t;this.img_selector=n;this.verticalMargin=i;this.horizontalMargin=r;this.maxHeight=o;this.isAlignDone=true}e.prototype._getHeigth=function(e,t){var n,i;var r=0;for(n=0;n<e.length;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r+=i.naturalWidth/i.naturalHeight}else{r+=1}}return(t-e.length*this.verticalMargin)/r};e.prototype._setSize=function(e,t){var n,i,r;var o=e.length,a;for(n=0;n<o;n++){i=e[n];if(i.naturalWidth>0&&i.naturalHeight>0){r=t*i.naturalWidth/i.naturalHeight}else{r=t}i.style.width=r+"px";i.style.height=t+"px";i.style.marginLeft=this.horizontalMargin+"px";i.style.marginTop=this.horizontalMargin+"px";i.style.marginRight=this.verticalMargin-7+"px";i.style.marginBottom=this.verticalMargin-7+"px";a=i.parentNode.parentNode;if(!a.classList.contains("js")){a.classList.add("js")}}};e.prototype._alignImgs=function(e){var t,n,i,r;var o=c.querySelector(this.container_selector);var a=window.getComputedStyle(o);var s=parseInt(a.getPropertyValue("padding-left"),10);var l=parseInt(a.getPropertyValue("padding-right"),10);var u=o.clientWidth-s-l;while(e.length>0){t=true;for(i=1;i<=e.length&&t;i++){n=e.slice(0,i);r=this._getHeigth(n,u);if(r<this.maxHeight){this._setSize(n,r);e=e.slice(i);t=false}}if(t){this._setSize(n,Math.min(this.maxHeight,r));break}}};e.prototype.align=function(){var e;var t=c.querySelectorAll(this.results_selector);var n=t.length;var i=null;var r=null;var o=[];for(e=0;e<n;e++){r=t[e];if(r.previousElementSibling!==i&&o.length>0){this._alignImgs(o);o=[]}o.push(r.querySelector(this.img_selector));i=r}if(o.length>0){this._alignImgs(o)}};e.prototype.watch=function(){var e,t;var n=this;var i=c.querySelectorAll(this.results_selector);var r=i.length;function o(){if(n.isAlignDone){n.isAlignDone=false;setTimeout(function(){n.align();n.isAlignDone=true},100)}}a.addEventListener("pageshow",o);a.addEventListener("load",o);a.addEventListener("resize",o);for(e=0;e<r;e++){t=i[e].querySelector(this.img_selector);if(t!==null&&t!==undefined){t.addEventListener("load",o);t.addEventListener("error",o)}}};a.searxng.ImageLayout=e})(window,document);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(o,a,s){function l(n,e){if(!a[n]){if(!o[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var i=new Error("Cannot find module '"+n+"'");throw i.code="MODULE_NOT_FOUND",i}var r=a[n]={exports:{}};o[n][0].call(r.exports,function(e){var t=o[n][1][e];return l(t||e)},r,r.exports,c,o,a,s)}return a[n].exports}for(var u="function"==typeof require&&require,e=0;e<s.length;e++)l(s[e]);return l}return c}()({1:[function(e,t,n){
/*
* @license MIT
*
diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map
index d0c875f23..41238c58d 100644
--- a/searx/static/themes/simple/js/searxng.min.js.map
+++ b/searx/static/themes/simple/js/searxng.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","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","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","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","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","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":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","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","closeDetail","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","selectNext","selectPrevious","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","engine_descriptions","load_engine_descriptions","content","engine_name","description","entries","elements","element","source","translations","image_thumbnail_layout","ImageLayout","watch","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","selectImage","t","nodeName","imgElement","thumbnailElement","detailElement","imgSrc","loader","imgLoader","Image","align","firstFocus","qinput_id","qinput","placeCursorAtEnd","setSelectionRange","len","value","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","placeCursorAtEndOnce","autocompleter","autocomplete","AutoComplete","Url","EmptyMessage","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","verticalMargin","horizontalMargin","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","results_selectorNode","results_length","previous","results_nodes","throttleAlign","f","exports","module","define","amd","g","global","self","n","o","c","require","u","code","p","1","ConditionOperator","EventType","params","Array","isArray","forEach","input","specificParams","merge","defaults","DOMResults","create","Input","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