diff options
19 files changed, 178 insertions, 8381 deletions
diff --git a/requirements-dev.txt b/requirements-dev.txt index 04def15af..330449ed5 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,9 +5,9 @@ pycodestyle==2.8.0 pylint==2.12.1 splinter==0.16.0 selenium==3.141.0 -twine==3.6.0 +twine==3.7.0 Pallets-Sphinx-Themes==2.0.2 -Sphinx==4.3.0 +Sphinx==4.3.1 sphinx-issues==1.2.0 sphinx-jinja==1.1.1 sphinx-tabs==3.2.0 diff --git a/searx/static/themes/oscar/js/searxng.min.js b/searx/static/themes/oscar/js/searxng.min.js index 9da3a8b75..c835d8129 100644 --- a/searx/static/themes/oscar/js/searxng.min.js +++ b/searx/static/themes/oscar/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){"use strict";t.getElementsByTagName("html")[0].className="js";var e,e=t.currentScript||(e=t.getElementsByTagName("script"))[e.length-1];return{autocompleter:"true"===e.getAttribute("data-autocompleter"),method:e.getAttribute("data-method"),translations:JSON.parse(e.getAttribute("data-translations"))}}(document), +window.searxng=function(t){"use strict";t.getElementsByTagName("html")[0].className="js";var e=t.currentScript||(e=t.getElementsByTagName("script"))[e.length-1];return{autocompleter:"true"===e.getAttribute("data-autocompleter"),method:e.getAttribute("data-method"),translations:JSON.parse(e.getAttribute("data-translations"))}}(document), /** * @license * (C) Copyright Contributors to the SearXNG project. diff --git a/searx/static/themes/oscar/js/searxng.min.js.map b/searx/static/themes/oscar/js/searxng.min.js.map index 33b340aa6..0b6317471 100644 --- a/searx/static/themes/oscar/js/searxng.min.js.map +++ b/searx/static/themes/oscar/js/searxng.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","scripts","script","currentScript","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","let","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","img_load_error","originalTarget","src","static_path","theme","throttleAlign","once"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["searxng.js"],"names":["window","searxng","d","getElementsByTagName","className","script","currentScript","scripts","length","autocompleter","getAttribute","method","translations","JSON","parse","document","$","ready","searchResults","original_search_value","Bloodhound","datumTokenizer","tokenizers","obj","whitespace","queryTokenizer","remote","url","wildcard","initialize","on","e","which","val","typeahead","name","highlight","hint","displayKey","result","classNames","input","menu","dataset","source","bind","ev","suggestion","submit","focus","click","getElementById","value","this","select","btnTextCollapsed","data","btnTextNotCollapsed","new_html","hasClass","html","replace","btnClass","btnLabelDefault","btnLabelToggled","toggleClass","target","iframe_load","srctest","attr","undefined","dblclick","prop","addClass","removeClass","removeAttr","checked","a","parents","children","parent","image_thumbnail_layout","ImageLayout","watch","addEventListener","each","infobox_body","find","height","css","hide","event","leaflet_target","map_lon","map_lat","map_zoom","map_boundingbox","map_geojson","southWest","L","latLng","northEast","map_bounds","latLngBounds","Icon","Default","imagePath","map","osmMapnik","TileLayer","minZoom","maxZoom","attribution","setTimeout","fitBounds","setView","LatLng","addLayer","control","layers","OSM Mapnik","addTo","geoJson","off","let","engine_descriptions","querySelector","hover","ajax","dataType","done","engine_name","description","Object","entries","element","Source","innerHTML","w","container_selector","results_selector","img_selector","verticalMargin","horizontalMargin","maxHeight","isAlignDone","prototype","_getHeigth","images","width","img","r","i","naturalWidth","naturalHeight","_setSize","imgWidth","resultNode","imagesLength","style","marginLeft","marginTop","marginRight","marginBottom","parentNode","classList","contains","add","_alignImgs","imgGroup","isSearching","slice","h","containerElement","containerCompStyles","getComputedStyle","containerPaddingLeft","parseInt","getPropertyValue","containerPaddingRight","containerWidth","clientWidth","Math","min","align","results_selectorNode","querySelectorAll","results_length","previous","current","previousElementSibling","push","results_nodes","img_load_error","originalTarget","src","static_path","theme","throttleAlign","once"],"mappings":"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"}
\ No newline at end of file diff --git a/searx/static/themes/simple/css/searxng-rtl.css b/searx/static/themes/simple/css/searxng-rtl.css deleted file mode 100644 index 4668cb78c..000000000 --- a/searx/static/themes/simple/css/searxng-rtl.css +++ /dev/null @@ -1,3279 +0,0 @@ -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -* -* To convert "style.less" to "style.css" run: $make styles -*/ -.github-issue-button { - display: block; - padding: 8px 16px; - font-family: sans-serif; - font-size: 16px; - color: white; - background-color: #238636 !important; - /* important is needed cause to an !important in logicodev-dark */ - border: #2ea043; - border-radius: 10px !important; - box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; -} -.github-issue-button:hover { - background-color: #2ea043; -} -.issue-hide { - display: none; -} -.engine-stats .engine-name { - width: 20rem; -} -.engine-stats .engine-score { - width: 7rem; - text-align: right; -} -.engine-stats .engine-reliability { - text-align: right; -} -.engine-stats table.engine-error { - max-width: 1280px; - margin: 1rem; - border: 1px solid gray; -} -.engine-stats table.engine-error th.engine-error-type, -.engine-stats table.engine-error td.engine-error-type, -.engine-stats failed-test { - width: 10rem; -} -.engine-stats table.engine-error span.log_parameters { - border-right: 1px solid gray; - padding: 0 1rem 0 0; - margin: 0 0 0 0.5rem; -} -.bar-chart-value { - width: 3em; - display: inline-block; - text-align: right; - padding-right: 0.5rem; -} -.bar-chart-graph { - width: calc(100% - 5rem); - display: inline-block; -} -.bar-chart-bar { - border: 3px solid #5bc0de; - margin: 1px 0; -} -.bar-chart-serie1 { - border: 3px solid #5bc0de; - margin: 1px 0; - float: left; -} -.bar-chart-serie2 { - border: 3px solid #deb15b; - margin: 1px 0; - float: left; -} -.bar0 { - width: 0; - border: 0; -} -.bar1 { - width: 1%; -} -.bar2 { - width: 2%; -} -.bar3 { - width: 3%; -} -.bar4 { - width: 4%; -} -.bar5 { - width: 5%; -} -.bar6 { - width: 6%; -} -.bar7 { - width: 7%; -} -.bar8 { - width: 8%; -} -.bar9 { - width: 9%; -} -.bar10 { - width: 10%; -} -.bar11 { - width: 11%; -} -.bar12 { - width: 12%; -} -.bar13 { - width: 13%; -} -.bar14 { - width: 14%; -} -.bar15 { - width: 15%; -} -.bar16 { - width: 16%; -} -.bar17 { - width: 17%; -} -.bar18 { - width: 18%; -} -.bar19 { - width: 19%; -} -.bar20 { - width: 20%; -} -.bar21 { - width: 21%; -} -.bar22 { - width: 22%; -} -.bar23 { - width: 23%; -} -.bar24 { - width: 24%; -} -.bar25 { - width: 25%; -} -.bar26 { - width: 26%; -} -.bar27 { - width: 27%; -} -.bar28 { - width: 28%; -} -.bar29 { - width: 29%; -} -.bar30 { - width: 30%; -} -.bar31 { - width: 31%; -} -.bar32 { - width: 32%; -} -.bar33 { - width: 33%; -} -.bar34 { - width: 34%; -} -.bar35 { - width: 35%; -} -.bar36 { - width: 36%; -} -.bar37 { - width: 37%; -} -.bar38 { - width: 38%; -} -.bar39 { - width: 39%; -} -.bar40 { - width: 40%; -} -.bar41 { - width: 41%; -} -.bar42 { - width: 42%; -} -.bar43 { - width: 43%; -} -.bar44 { - width: 44%; -} -.bar45 { - width: 45%; -} -.bar46 { - width: 46%; -} -.bar47 { - width: 47%; -} -.bar48 { - width: 48%; -} -.bar49 { - width: 49%; -} -.bar50 { - width: 50%; -} -.bar51 { - width: 51%; -} -.bar52 { - width: 52%; -} -.bar53 { - width: 53%; -} -.bar54 { - width: 54%; -} -.bar55 { - width: 55%; -} -.bar56 { - width: 56%; -} -.bar57 { - width: 57%; -} -.bar58 { - width: 58%; -} -.bar59 { - width: 59%; -} -.bar60 { - width: 60%; -} -.bar61 { - width: 61%; -} -.bar62 { - width: 62%; -} -.bar63 { - width: 63%; -} -.bar64 { - width: 64%; -} -.bar65 { - width: 65%; -} -.bar66 { - width: 66%; -} -.bar67 { - width: 67%; -} -.bar68 { - width: 68%; -} -.bar69 { - width: 69%; -} -.bar70 { - width: 70%; -} -.bar71 { - width: 71%; -} -.bar72 { - width: 72%; -} -.bar73 { - width: 73%; -} -.bar74 { - width: 74%; -} -.bar75 { - width: 75%; -} -.bar76 { - width: 76%; -} -.bar77 { - width: 77%; -} -.bar78 { - width: 78%; -} -.bar79 { - width: 79%; -} -.bar80 { - width: 80%; -} -.bar81 { - width: 81%; -} -.bar82 { - width: 82%; -} -.bar83 { - width: 83%; -} -.bar84 { - width: 84%; -} -.bar85 { - width: 85%; -} -.bar86 { - width: 86%; -} -.bar87 { - width: 87%; -} -.bar88 { - width: 88%; -} -.bar89 { - width: 89%; -} -.bar90 { - width: 90%; -} -.bar91 { - width: 91%; -} -.bar92 { - width: 92%; -} -.bar93 { - width: 93%; -} -.bar94 { - width: 94%; -} -.bar95 { - width: 95%; -} -.bar96 { - width: 96%; -} -.bar97 { - width: 97%; -} -.bar98 { - width: 98%; -} -.bar99 { - width: 99%; -} -.bar100 { - width: 100%; -} -.osm-map-box { - height: 300px; - width: 100%; - margin: 10px 0; -} -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} - -/* - * SearXNG, A privacy-respecting, hackable metasearch engine - * - * To change the colors of the site, simple edit this variables - */ -:root { - --color-base-font: #444; - --color-base-font-rgb: 68, 68, 68; - --color-base-background: #fff; - --color-url-font: #29314d; - --color-url-visited-font: #80b; - --color-header-background: #f7f7f7; - --color-header-border: #ddd; - --color-footer-background: #f7f7f7; - --color-footer-border: #ddd; - --color-sidebar-border: #ddd; - --color-sidebar-font: #000; - --color-backtotop-font: #444; - --color-backtotop-border: #ddd; - --color-backtotop-background: #fff; - --color-btn-background: #3050ff; - --color-btn-font: #fff; - --color-search-border: #bbb; - --color-search-background: #fff; - --color-search-font: #222; - --color-search-background-hover: #3050ff; - --color-error: #db3434; - --color-error-background: #fae1e1; - --color-warning: #dbba34; - --color-warning-background: #faf5e1; - --color-success: #42db34; - --color-success-background: #e3fae1; - --color-categories-item-selected-font: #3050ff; - --color-categories-item-border-selected: #3050ff; - --color-autocomplete-font: #000; - --color-autocomplete-border: #bbb; - --color-autocomplete-background: #fff; - --color-autocomplete-background-hover: #f7f7f7; - --color-answer-border: #ddd; - --color-answer-font: #444; - --color-answer-background: #f7f7f7; - --color-result-border: #ddd; - --color-result-url-font: #000; - --color-result-vim-selected: #f7f7f7; - --color-result-vim-arrow: #000bbb; - --color-result-description-highlight-font: #000; - --color-result-link-font: #000bbb; - --color-result-link-font-highlight: #000bbb; - --color-result-link-visited-font: #80b; - --color-result-publishdate-font: #777; - --color-result-engines-font: #777; - --color-result-search-url-border: #ddd; - --color-result-search-url-font: #000; - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #fff; - --color-settings-tr-hover: #f7f7f7; - --color-settings-engine-description-font: #909090; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #fff; - --color-toolkit-kbd-background: #000; - --color-toolkit-dialog-border: #ddd; - --color-toolkit-dialog-background: #fff; - --color-toolkit-tabs-label-border: #fff; - --color-toolkit-tabs-section-border: #ddd; - --color-toolkit-select-background: #f7f7f7; - --color-toolkit-select-border: #ddd; - --color-toolkit-select-background-hover: #bbb; - --color-toolkit-input-text-font: #222; - --color-toolkit-checkbox-onoff-background: #ddd; - --color-toolkit-checkbox-onoff-label-background: #3050ff; - --color-toolkit-checkbox-onoff-checked-background: #aaa; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #ddd; - --color-toolkit-checkbox-input-border: #3050ff; - --color-toolkit-engine-tooltip-border: #ddd; - --color-toolkit-engine-tooltip-background: #fff; - --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); - --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); -} -@media (prefers-color-scheme: dark) { - :root.theme-auto { - --color-base-font: #bbb; - --color-base-font-rgb: 187, 187, 187; - --color-base-background: #222; - --color-url-font: #8af; - --color-url-visited-font: #96b; - --color-header-background: #181818; - --color-header-border: #333; - --color-footer-background: #181818; - --color-footer-border: #333; - --color-sidebar-border: #555; - --color-sidebar-font: #fff; - --color-backtotop-font: #bbb; - --color-backtotop-border: #333; - --color-backtotop-background: #181818; - --color-btn-background: #58f; - --color-btn-font: #222; - --color-search-border: #555; - --color-search-background: #222; - --color-search-font: #fff; - --color-search-background-hover: #58f; - --color-error: #f55b5b; - --color-error-background: #390a0a; - --color-warning: #f1d561; - --color-warning-background: #39300a; - --color-success: #79f56e; - --color-success-background: #0e390a; - --color-categories-item-selected-font: #58f; - --color-categories-item-border-selected: #58f; - --color-autocomplete-font: #fff; - --color-autocomplete-border: #555; - --color-autocomplete-background: #222; - --color-autocomplete-background-hover: #181818; - --color-answer-border: #333; - --color-answer-font: #bbb; - --color-answer-background: #181818; - --color-result-border: #333; - --color-result-url-font: #fff; - --color-result-vim-selected: #181818; - --color-result-vim-arrow: #8af; - --color-result-description-highlight-font: #fff; - --color-result-link-font: #8af; - --color-result-link-font-highlight: #8af; - --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #888; - --color-result-engines-font: #888; - --color-result-search-url-border: #555; - --color-result-search-url-font: #fff; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #222; - --color-settings-tr-hover: #2d2d2d; - --color-settings-engine-description-font: #909090; - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #000; - --color-toolkit-kbd-background: #fff; - --color-toolkit-dialog-border: #555; - --color-toolkit-dialog-background: #222; - --color-toolkit-tabs-label-border: #222; - --color-toolkit-tabs-section-border: #555; - --color-toolkit-select-background: #3c3b31; - --color-toolkit-select-border: #555; - --color-toolkit-select-background-hover: #333; - --color-toolkit-input-text-font: #fff; - --color-toolkit-checkbox-onoff-background: #3c3b31; - --color-toolkit-checkbox-onoff-label-background: #58f; - --color-toolkit-checkbox-onoff-checked-background: #ddd; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #333; - --color-toolkit-checkbox-input-border: #58f; - --color-toolkit-engine-tooltip-border: #333; - --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); - } -} -:root.theme-dark { - --color-base-font: #bbb; - --color-base-font-rgb: 187, 187, 187; - --color-base-background: #222; - --color-url-font: #8af; - --color-url-visited-font: #96b; - --color-header-background: #181818; - --color-header-border: #333; - --color-footer-background: #181818; - --color-footer-border: #333; - --color-sidebar-border: #555; - --color-sidebar-font: #fff; - --color-backtotop-font: #bbb; - --color-backtotop-border: #333; - --color-backtotop-background: #181818; - --color-btn-background: #58f; - --color-btn-font: #222; - --color-search-border: #555; - --color-search-background: #222; - --color-search-font: #fff; - --color-search-background-hover: #58f; - --color-error: #f55b5b; - --color-error-background: #390a0a; - --color-warning: #f1d561; - --color-warning-background: #39300a; - --color-success: #79f56e; - --color-success-background: #0e390a; - --color-categories-item-selected-font: #58f; - --color-categories-item-border-selected: #58f; - --color-autocomplete-font: #fff; - --color-autocomplete-border: #555; - --color-autocomplete-background: #222; - --color-autocomplete-background-hover: #181818; - --color-answer-border: #333; - --color-answer-font: #bbb; - --color-answer-background: #181818; - --color-result-border: #333; - --color-result-url-font: #fff; - --color-result-vim-selected: #181818; - --color-result-vim-arrow: #8af; - --color-result-description-highlight-font: #fff; - --color-result-link-font: #8af; - --color-result-link-font-highlight: #8af; - --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #888; - --color-result-engines-font: #888; - --color-result-search-url-border: #555; - --color-result-search-url-font: #fff; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #222; - --color-settings-tr-hover: #2d2d2d; - --color-settings-engine-description-font: #909090; - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #000; - --color-toolkit-kbd-background: #fff; - --color-toolkit-dialog-border: #555; - --color-toolkit-dialog-background: #222; - --color-toolkit-tabs-label-border: #222; - --color-toolkit-tabs-section-border: #555; - --color-toolkit-select-background: #3c3b31; - --color-toolkit-select-border: #555; - --color-toolkit-select-background-hover: #333; - --color-toolkit-input-text-font: #fff; - --color-toolkit-checkbox-onoff-background: #3c3b31; - --color-toolkit-checkbox-onoff-label-background: #58f; - --color-toolkit-checkbox-onoff-checked-background: #ddd; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #333; - --color-toolkit-checkbox-input-border: #58f; - --color-toolkit-engine-tooltip-border: #333; - --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); -} -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -*/ -.code-highlight pre { - overflow: auto; - background-color: inherit; - color: inherit; - border: inherit; -} -/* - this file is generated automatically by searxng_extra/update/update_pygments.py - using pygments version 2.10.0 -*/ -.code-highlight .linenos { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: default; - margin-right: 8px; - text-align: right; -} -.code-highlight .linenos::selection { - background: transparent; - /* WebKit/Blink Browsers */ -} -.code-highlight .linenos::-moz-selection { - background: transparent; - /* Gecko Browsers */ -} -.code-highlight pre { - line-height: 125%; -} -.code-highlight td.linenos .normal { - color: inherit; - background-color: transparent; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight span.linenos { - color: inherit; - background-color: transparent; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight td.linenos .special { - color: #000000; - background-color: #ffffc0; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight span.linenos.special { - color: #000000; - background-color: #ffffc0; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight .hll { - background-color: #ffffcc; -} -.code-highlight { - background: #f8f8f8; -} -.code-highlight .c { - color: #408080; - font-style: italic; -} -/* Comment */ -.code-highlight .err { - border: 1px solid #FF0000; -} -/* Error */ -.code-highlight .k { - color: #008000; - font-weight: bold; -} -/* Keyword */ -.code-highlight .o { - color: #666666; -} -/* Operator */ -.code-highlight .ch { - color: #408080; - font-style: italic; -} -/* Comment.Hashbang */ -.code-highlight .cm { - color: #408080; - font-style: italic; -} -/* Comment.Multiline */ -.code-highlight .cp { - color: #BC7A00; -} -/* Comment.Preproc */ -.code-highlight .cpf { - color: #408080; - font-style: italic; -} -/* Comment.PreprocFile */ -.code-highlight .c1 { - color: #408080; - font-style: italic; -} -/* Comment.Single */ -.code-highlight .cs { - color: #408080; - font-style: italic; -} -/* Comment.Special */ -.code-highlight .gd { - color: #A00000; -} -/* Generic.Deleted */ -.code-highlight .ge { - font-style: italic; -} -/* Generic.Emph */ -.code-highlight .gr { - color: #FF0000; -} -/* Generic.Error */ -.code-highlight .gh { - color: #000080; - font-weight: bold; -} -/* Generic.Heading */ -.code-highlight .gi { - color: #00A000; -} -/* Generic.Inserted */ -.code-highlight .go { - color: #888888; -} -/* Generic.Output */ -.code-highlight .gp { - color: #000080; - font-weight: bold; -} -/* Generic.Prompt */ -.code-highlight .gs { - font-weight: bold; -} -/* Generic.Strong */ -.code-highlight .gu { - color: #800080; - font-weight: bold; -} -/* Generic.Subheading */ -.code-highlight .gt { - color: #0044DD; -} -/* Generic.Traceback */ -.code-highlight .kc { - color: #008000; - font-weight: bold; -} -/* Keyword.Constant */ -.code-highlight .kd { - color: #008000; - font-weight: bold; -} -/* Keyword.Declaration */ -.code-highlight .kn { - color: #008000; - font-weight: bold; -} -/* Keyword.Namespace */ -.code-highlight .kp { - color: #008000; -} -/* Keyword.Pseudo */ -.code-highlight .kr { - color: #008000; - font-weight: bold; -} -/* Keyword.Reserved */ -.code-highlight .kt { - color: #B00040; -} -/* Keyword.Type */ -.code-highlight .m { - color: #666666; -} -/* Literal.Number */ -.code-highlight .s { - color: #BA2121; -} -/* Literal.String */ -.code-highlight .na { - color: #7D9029; -} -/* Name.Attribute */ -.code-highlight .nb { - color: #008000; -} -/* Name.Builtin */ -.code-highlight .nc { - color: #0000FF; - font-weight: bold; -} -/* Name.Class */ -.code-highlight .no { - color: #880000; -} -/* Name.Constant */ -.code-highlight .nd { - color: #AA22FF; -} -/* Name.Decorator */ -.code-highlight .ni { - color: #999999; - font-weight: bold; -} -/* Name.Entity */ -.code-highlight .ne { - color: #D2413A; - font-weight: bold; -} -/* Name.Exception */ -.code-highlight .nf { - color: #0000FF; -} -/* Name.Function */ -.code-highlight .nl { - color: #A0A000; -} -/* Name.Label */ -.code-highlight .nn { - color: #0000FF; - font-weight: bold; -} -/* Name.Namespace */ -.code-highlight .nt { - color: #008000; - font-weight: bold; -} -/* Name.Tag */ -.code-highlight .nv { - color: #19177C; -} -/* Name.Variable */ -.code-highlight .ow { - color: #AA22FF; - font-weight: bold; -} -/* Operator.Word */ -.code-highlight .w { - color: #bbbbbb; -} -/* Text.Whitespace */ -.code-highlight .mb { - color: #666666; -} -/* Literal.Number.Bin */ -.code-highlight .mf { - color: #666666; -} -/* Literal.Number.Float */ -.code-highlight .mh { - color: #666666; -} -/* Literal.Number.Hex */ -.code-highlight .mi { - color: #666666; -} -/* Literal.Number.Integer */ -.code-highlight .mo { - color: #666666; -} -/* Literal.Number.Oct */ -.code-highlight .sa { - color: #BA2121; -} -/* Literal.String.Affix */ -.code-highlight .sb { - color: #BA2121; -} -/* Literal.String.Backtick */ -.code-highlight .sc { - color: #BA2121; -} -/* Literal.String.Char */ -.code-highlight .dl { - color: #BA2121; -} -/* Literal.String.Delimiter */ -.code-highlight .sd { - color: #BA2121; - font-style: italic; -} -/* Literal.String.Doc */ -.code-highlight .s2 { - color: #BA2121; -} -/* Literal.String.Double */ -.code-highlight .se { - color: #BB6622; - font-weight: bold; -} -/* Literal.String.Escape */ -.code-highlight .sh { - color: #BA2121; -} -/* Literal.String.Heredoc */ -.code-highlight .si { - color: #BB6688; - font-weight: bold; -} -/* Literal.String.Interpol */ -.code-highlight .sx { - color: #008000; -} -/* Literal.String.Other */ -.code-highlight .sr { - color: #BB6688; -} -/* Literal.String.Regex */ -.code-highlight .s1 { - color: #BA2121; -} -/* Literal.String.Single */ -.code-highlight .ss { - color: #19177C; -} -/* Literal.String.Symbol */ -.code-highlight .bp { - color: #008000; -} -/* Name.Builtin.Pseudo */ -.code-highlight .fm { - color: #0000FF; -} -/* Name.Function.Magic */ -.code-highlight .vc { - color: #19177C; -} -/* Name.Variable.Class */ -.code-highlight .vg { - color: #19177C; -} -/* Name.Variable.Global */ -.code-highlight .vi { - color: #19177C; -} -/* Name.Variable.Instance */ -.code-highlight .vm { - color: #19177C; -} -/* Name.Variable.Magic */ -.code-highlight .il { - color: #666666; -} -/* Literal.Number.Integer.Long */ -html.no-js .hide_if_nojs { - display: none; -} -html.js .show_if_nojs { - display: none; -} -.center { - text-align: center; -} -.right { - float: right; -} -.left { - float: left; -} -.invisible { - display: none !important; -} -.list-unstyled { - list-style-type: none; -} -.list-unstyled li { - margin-top: 4px; - margin-bottom: 4px; -} -.danger { - background-color: var(--color-error-background); -} -.warning { - background: var(--color-warning-background); -} -.success { - background: var(--color-success-background); -} -.badge { - display: inline-block; - color: var(--color-toolkit-badge-font); - background-color: var(--color-toolkit-badge-background); - text-align: center; - white-space: nowrap; - vertical-align: baseline; - min-width: 10px; - padding: 1px 5px; - border-radius: 5px; -} -kbd { - padding: 2px 4px; - margin: 1px; - font-size: 90%; - color: var(--color-toolkit-kbd-font); - background: var(--color-toolkit-kbd-background); -} -table { - width: 100%; -} -table.striped tr { - border-bottom: 1px solid var(--color-settings-tr-hover); -} -th { - padding: 0.4em; -} -td { - padding: 0 4px; -} -tr:hover { - background: var(--color-settings-tr-hover) !important; -} -div.selectable_url { - display: block; - border: 1px solid var(--color-result-search-url-border); - padding: 4px; - color: var(--color-result-search-url-font); - margin: 0.1em; - overflow: hidden; - height: 1.2em; - line-height: 1.2em; - border-radius: 5px; -} -div.selectable_url pre { - display: block; - font-size: 0.8em; - word-break: break-all; - margin: 0.1em; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: element; - user-select: all; -} -.dialog-error { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - color: var(--color-error); - background: var(--color-error-background); - border-color: var(--color-error); -} -.dialog-error .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-error ul, -.dialog-error ol, -.dialog-error p { - margin: 1px 0 0 0; -} -.dialog-error table { - width: auto; -} -.dialog-error tr { - vertical-align: text-top; -} -.dialog-error tr:hover { - background: transparent !important; -} -.dialog-error td { - padding: 0 1em 0 0; -} -.dialog-error h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-warning { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - color: var(--color-warning); - background: var(--color-warning-background); - border-color: var(--color-warning); -} -.dialog-warning .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-warning ul, -.dialog-warning ol, -.dialog-warning p { - margin: 1px 0 0 0; -} -.dialog-warning table { - width: auto; -} -.dialog-warning tr { - vertical-align: text-top; -} -.dialog-warning tr:hover { - background: transparent !important; -} -.dialog-warning td { - padding: 0 1em 0 0; -} -.dialog-warning h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-modal { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - display: block; - background: var(--color-toolkit-dialog-background); - position: fixed; - top: 50%; - left: 50%; - margin: 0 auto; - transform: translate(-50%, -50%); - z-index: 10000000; -} -.dialog-modal .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-modal ul, -.dialog-modal ol, -.dialog-modal p { - margin: 1px 0 0 0; -} -.dialog-modal table { - width: auto; -} -.dialog-modal tr { - vertical-align: text-top; -} -.dialog-modal tr:hover { - background: transparent !important; -} -.dialog-modal td { - padding: 0 1em 0 0; -} -.dialog-modal h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-modal h3 { - margin-top: 0; -} -.btn-collapse { - cursor: pointer; -} -.scrollx { - overflow-x: auto; - overflow-y: hidden; - display: block; - padding: 0; - margin: 0; - border: none; -} -/* -- tabs -- */ -.tabs .tabs > label { - font-size: 90%; -} -.tabs { - display: -webkit-box; - display: -moz-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - flex-wrap: wrap; - width: 100%; - min-width: 100%; -} -.tabs > * { - order: 2; -} -.tabs > input[type=radio] { - display: none; -} -.tabs > label { - order: 1; - padding: 0.7em; - margin: 0 0.7em; - letter-spacing: 0.5px; - text-transform: uppercase; - border: solid var(--color-toolkit-tabs-label-border); - border-width: 0 0 2px 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; -} -.tabs > label:hover { - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -.tabs > section { - min-width: 100%; - padding: 0.7rem 0; - box-sizing: border-box; - border-top: 1px solid var(--color-toolkit-tabs-section-border); - display: none; -} -.tabs > label:last-of-type { - border-bottom: 2px solid var(--color-categories-item-border-selected); - background: var(--color-categories-item-selected); - color: var(--color-categories-item-selected-font); - letter-spacing: -0.1px; -} -.tabs > section:last-of-type { - display: block; -} -html body .tabs > input:checked ~ section { - display: none; -} -html body .tabs > input:checked ~ label { - position: inherited; - background: inherit; - border-bottom: 2px solid transparent; - font-weight: normal; - color: inherit; -} -html body .tabs > input:checked ~ label:hover { - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -html body .tabs > input:checked + label { - border-bottom: 2px solid var(--color-categories-item-border-selected); - background: var(--color-categories-item-selected); - color: var(--color-categories-item-selected-font); -} -html body .tabs > input:checked + label + section { - display: block; -} -/* -- select -- */ -select { - height: 2.4rem; - margin: 0 1rem 0 0; - padding: 0.2rem !important; - color: var(--color-search-font); - font-size: 0.9rem; - z-index: 2; -} -select:hover, -select:focus { - cursor: pointer; -} -@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { - select { - appearance: none; - -webkit-appearance: none; - -moz-appearance: none; - border-width: 0 2rem 0 0; - border-color: transparent; - background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; - background-position-x: calc(100% + 2rem); - background-size: 2rem; - background-origin: content-box; - background-color: var(--color-toolkit-select-background); - outline: medium none; - text-overflow: ellipsis; - border-radius: 5px; - } - select:hover, - select:focus { - background-color: var(--color-toolkit-select-background-hover); - } - select option { - background-color: var(--color-base-background); - } - @media (prefers-color-scheme: dark) { - html.theme-auto select, - html.theme-dark select { - background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); - } - } - html.theme-dark select { - background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); - } -} -/* -- checkbox-onoff -- */ -@supports (border-radius: 50px) { - .checkbox-onoff { - display: inline-block; - width: 40px; - height: 10px; - background: var(--color-toolkit-checkbox-onoff-background); - margin: 8px 1rem; - position: relative; - border-radius: 50px; - } - .checkbox-onoff label { - display: block; - width: 20px; - height: 20px; - position: absolute; - top: -5px; - cursor: pointer; - border-radius: 50px; - transition: all 0.4s ease; - left: 27px; - background-color: var(--color-toolkit-checkbox-onoff-label-background); - } - .checkbox-onoff input[type=checkbox] { - visibility: hidden; - } - .checkbox-onoff input[type=checkbox]:checked + label { - left: -5px; - background: var(--color-toolkit-checkbox-onoff-checked-background); - } -} -/* -- checkbox -- */ -@supports (transform: rotate(-45deg)) { - .checkbox { - width: 20px; - position: relative; - margin: 20px auto; - } - .checkbox label { - width: 20px; - height: 20px; - cursor: pointer; - position: absolute; - top: 0; - left: 0; - background: var(--color-toolkit-checkbox-label-background); - border-radius: 10px; - } - .checkbox label::after { - content: ''; - width: 9px; - height: 5px; - position: absolute; - top: 4px; - left: 4px; - border: 3px solid var(--color-toolkit-checkbox-label-border); - border-top: none; - border-right: none; - background: transparent; - opacity: 0; - transform: rotate(-45deg); - } - .checkbox input[type=checkbox] { - visibility: hidden; - } - .checkbox input[type=checkbox]:checked + label::after { - border-color: var(--color-toolkit-checkbox-input-border); - opacity: 1; - } - .checkbox input[disabled] + label { - background-color: transparent !important; - cursor: inherit; - } - .checkbox input:not(:checked):not([readonly]):not([disabled]) + label:hover::after { - opacity: 0.5; - } -} -@media screen and (max-width: 50em) { - .tabs > label { - width: 100%; - } -} -/* -- loader -- */ -.loader, -.loader::after { - border-radius: 50%; - width: 2em; - height: 2em; -} -.loader { - margin: 1em auto; - font-size: 10px; - position: relative; - text-indent: -9999em; - border-top: 0.5em solid var(--color-toolkit-loader-border); - border-right: 0.5em solid var(--color-toolkit-loader-border); - border-bottom: 0.5em solid var(--color-toolkit-loader-border); - border-left: 0.5em solid var(--color-toolkit-loader-borderleft); - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - -webkit-animation: load8 1.2s infinite linear; - animation: load8 1.2s infinite linear; -} -@-webkit-keyframes load8 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes load8 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -/* -- engine-tooltip -- */ -.engine-tooltip { - display: none; - position: absolute; - padding: 0.5rem 1rem; - margin: 0 0 0 2rem; - border: 1px solid var(--color-toolkit-engine-tooltip-border); - background: var(--color-toolkit-engine-tooltip-background); - font-size: 14px; - font-weight: normal; - z-index: 1000000; - text-align: left; - border-radius: 10px; -} -th:hover .engine-tooltip, -td:hover .engine-tooltip, -.engine-tooltip:hover { - display: inline-block; -} -/* -- stacked bar chart -- */ -.stacked-bar-chart { - margin: 0; - padding: 0 0.125rem 0 4rem; - width: 100%; - width: -moz-available; - width: -webkit-fill-available; - width: fill; - flex-direction: row; - flex-wrap: nowrap; - align-items: center; - display: inline-flex; -} -.stacked-bar-chart-value { - width: 3rem; - display: inline-block; - position: absolute; - padding: 0 0.5rem; - text-align: right; -} -.stacked-bar-chart-base { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; -} -.stacked-bar-chart-median { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: var(--color-base-font); - border: 1px solid rgba(var(--color-base-font-rgb), 0.9); - padding: 0.3rem 0; -} -.stacked-bar-chart-rate80 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border: 1px solid rgba(var(--color-base-font-rgb), 0.3); - padding: 0.3rem 0; -} -.stacked-bar-chart-rate95 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5); - padding: 0; -} -.stacked-bar-chart-rate100 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9); - padding: 0.4rem 0; - width: 1px; -} -/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ -.autocomplete { - position: absolute; - max-height: 0; - overflow-y: hidden; - text-align: left; - border-radius: 10px; -} -.autocomplete:active, -.autocomplete:focus, -.autocomplete:hover { - background-color: var(--color-autocomplete-background); -} -.autocomplete:empty { - display: none; -} -.autocomplete > ul { - list-style-type: none; - margin: 0; - padding: 0; -} -.autocomplete > ul > li { - cursor: pointer; - padding: 8px 0 8px 8px; -} -.autocomplete > ul > li.active, -.autocomplete > ul > li:active, -.autocomplete > ul > li:focus, -.autocomplete > ul > li:hover { - background-color: var(--color-autocomplete-background-hover); -} -.autocomplete > ul > li.active a:active, -.autocomplete > ul > li:active a:active, -.autocomplete > ul > li:focus a:active, -.autocomplete > ul > li:hover a:active, -.autocomplete > ul > li.active a:focus, -.autocomplete > ul > li:active a:focus, -.autocomplete > ul > li:focus a:focus, -.autocomplete > ul > li:hover a:focus, -.autocomplete > ul > li.active a:hover, -.autocomplete > ul > li:active a:hover, -.autocomplete > ul > li:focus a:hover, -.autocomplete > ul > li:hover a:hover { - text-decoration: none; -} -.autocomplete > ul > li.locked { - cursor: inherit; -} -.autocomplete.open { - display: block; - background-color: var(--color-autocomplete-background); - color: var(--color-autocomplete-font); - border: 1px solid var(--color-autocomplete-border); - max-height: 500px; - overflow-y: auto; - z-index: 100; -} -.autocomplete.open:empty { - display: none; -} -@media screen and (max-width: 50em) { - .autocomplete { - bottom: 0; - } - .autocomplete > ul > li { - border-bottom: 1px solid var(--color-result-top-border); - text-align: left; - } -} -#main_results #results.image-detail-open.only_template_images { - width: min(98%, 59.25rem) !important; -} -#main_results #results.only_template_images.image-detail-open #backToTop { - left: 56.75rem !important; - right: inherit; -} -article.result-images .detail { - display: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail { - display: flex; - flex-direction: column; - position: fixed; - left: 60rem; - right: 0; - top: 7.75rem; - transition: top 0.064s ease-in 0s; - bottom: 0; - background: var(--color-result-detail-background); - border: 1px solid var(--color-result-detail-background); - z-index: 10000; - padding: 4rem 3rem 3rem 3rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { - display: block; - flex: 1; - text-align: left; - width: 100%; - border: none; - text-decoration: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - padding: 0; - margin: 0; - border: none; - object-fit: contain; - width: inherit; - max-width: 100%; - min-height: inherit; - max-height: calc(100vh - 25rem - 7rem); - background: inherit; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels { - color: var(--color-result-detail-font); - max-height: 16rem; - min-height: 16rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr { - border-top: 1px solid var(--color-result-detail-hr); - border-bottom: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4 { - height: 2rem; - overflow: hidden; - text-overflow: ellipsis; - font-size: 0.9rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { - color: var(--color-result-detail-label-font); - font-size: 0.9rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { - display: inline-block; - width: 12rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a { - text-align: left; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content { - height: 2rem; - overflow: hidden; - text-overflow: ellipsis; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url { - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover { - position: relative; - overflow: inherit !important; - background: var(--color-result-detail-background); - text-overflow: inherit !important; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active { - color: var(--color-result-detail-link); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover { - text-decoration: underline; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close { - top: 1rem; - left: 1rem; - padding: 0.4rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { - top: 1rem; - right: 6rem; - padding: 0.4rem 0.5rem 0.4rem 0.3rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { - top: 1rem; - right: 2rem; - padding: 0.4rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { - border-radius: 50%; - display: block; - width: 1.5rem; - height: 1.5rem; - position: absolute; - filter: opacity(40%); - z-index: 2000002; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span { - display: block; - width: 1.5rem; - height: 1.5rem; - text-align: center; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before { - vertical-align: sub; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active { - color: var(--color-result-detail-font); - background: var(--color-result-detail-background); - border: 1px solid var(--color-result-detail-font); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover { - filter: opacity(80%); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .loader { - position: absolute; - top: 1rem; - right: 50%; - border-top: 0.5em solid var(--color-result-detail-loader-border); - border-right: 0.5em solid var(--color-result-detail-loader-border); - border-bottom: 0.5em solid var(--color-result-detail-loader-border); - border-left: 0.5em solid var(--color-result-detail-loader-borderleft); -} -#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail { - top: 0; -} -#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img { - max-height: calc(100vh - 25rem); -} -@media screen and (max-width: 80em) { - #results.image-detail-open article.result-images[data-vim-selected] .detail { - top: 0; - left: 0; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { - display: flex; - flex-direction: column; - justify-content: center; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - width: 100%; - max-height: calc(100vh - 24rem); - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { - right: 1rem; - } -} -@media screen and (max-width: 50em) { - #results.image-detail-open article.result-images[data-vim-selected] .detail { - top: 0; - left: 0; - padding: 1rem; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - width: 100%; - max-height: calc(100vh - 20rem); - margin: 0; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { - width: inherit; - margin-right: 1rem; - } -} -.dialog-modal { - animation-name: dialogmodal; - animation-duration: 0.13s; -} -@keyframes dialogmodal { - 0% { - opacity: 0; - } - 50% { - opacity: 0.5; - transform: translate(-50%, -50%) scale(1.05); - } -} -#main_index { - margin-top: 26vh; -} -#main_index #linkto_preferences { - right: 1.8rem; -} -.index { - text-align: center; -} -.index .title { - background: url('../img/searxng.png') no-repeat; - min-height: 4rem; - margin: 4rem auto; - background-position: center; - background-size: contain; -} -.index h1 { - font-size: 4em; - visibility: hidden; -} -.index #search, -.index #search_header { - margin: 0 auto; - background: inherit; - border: inherit; - padding: 0; - display: block; -} -.index .search_filters { - display: block; - margin: 1em 0; -} -.index .category label { - padding: 6px 10px; - border-bottom: initial !important; -} -@media screen and (max-width: 80em) { - div.title h1 { - font-size: 1em; - } - #main_index { - margin-top: 6em; - } -} -@media screen and (max-width: 50em) { - #main_index { - margin-top: 0; - } -} -#tab-contentquery table td, -#tab-contentquery table th { - text-align: left !important; - height: 3rem; -} -#main_preferences form { - width: 100%; -} -#main_preferences fieldset { - margin: 8px; - border: none; -} -#main_preferences legend { - margin: 0; - padding: 5px 0 0 0; - display: block; - float: left; - width: 300px; -} -#main_preferences .value { - margin: 0; - padding: 0; - float: left; - width: 15em; -} -#main_preferences .value select, -#main_preferences .value input[type="text"] { - font-size: inherit !important; - margin: 0 1rem 0 0; -} -#main_preferences .value select { - width: 14rem; -} -#main_preferences .value input[type="text"] { - width: 13.25rem; - color: var(--color-toolkit-input-text-font); - border: none; - background: none repeat scroll 0 0 var(--color-toolkit-select-background); - padding: 0.2rem 0.4rem; - height: 2rem; - border-radius: 5px; -} -#main_preferences .value input[type="text"]:hover, -#main_preferences .value input[type="text"]:focus { - background-color: var(--color-toolkit-select-background-hover); -} -#main_preferences .value select:focus, -#main_preferences .value input:focus { - outline: none; - box-shadow: 0 0 1px 1px var(--color-btn-background); -} -#main_preferences .description { - margin: 0; - padding: 5px 0 0 0; - float: left; - width: 50%; - color: var(--color-settings-engine-description-font); - font-size: 90%; -} -#main_preferences table { - border-collapse: collapse; -} -#main_preferences table td { - text-align: center; -} -#main_preferences table.cookies { - width: 100%; -} -#main_preferences table.cookies th, -#main_preferences table.cookies td { - text-align: left; - font-family: monospace; - font-size: 1rem; - padding: 0.5em; - vertical-align: top; -} -#main_preferences table.cookies td:first-child { - word-break: keep-all; - width: 14rem; - padding-right: 1rem; -} -#main_preferences table.cookies td:last-child { - word-break: break-all; -} -#main_preferences table.cookies > tbody > tr:nth-child(even) > th, -#main_preferences table.cookies > tbody > tr:nth-child(even) > td { - background-color: var(--color-settings-tr-hover); -} -#main_preferences .category { - margin-right: 0.5rem; -} -#main_preferences .category label { - border: 2px solid transparent; - padding: 0.2rem 0.4rem; - border-radius: 5px; -} -#main_preferences .category input[type="checkbox"]:checked + label { - border: 2px solid var(--color-categories-item-border-selected); -} -#main_preferences .name, -#main_preferences .shortcut { - text-align: left; -} -#main_preferences .preferences_back { - background: none repeat scroll 0 0 var(--color-btn-background); - color: var(--color-btn-font); - border: 0 none; - border-radius: 10px; - cursor: pointer; - display: inline-block; - margin: 2px 4px; - padding: 0.7em; -} -#main_preferences .preferences_back a { - color: var(--color-settings-return-font); -} -#main_preferences .preferences_back a::first-letter { - text-transform: uppercase; -} -#main_preferences div.selectable_url pre { - width: 100%; -} -#main_preferences th.name .engine-tooltip { - margin-top: 1.8rem; - left: calc((100% - 85em) / 2 + 10em); - max-width: 40rem; -} -#main_preferences th.name .engine-tooltip .engine-description { - margin-top: 0.5rem; -} -@media screen and (max-width: 80em) { - .preferences_back { - clear: both; - } - .engine-tooltip { - left: 10em !important; - } -} -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -*/ -#search { - padding: 0; - margin: 0; -} -#search_header { - padding: 1.5em 2em 0 7rem; - margin: 0; - background: var(--color-header-background); - border-bottom: 1px solid var(--color-header-border); - display: grid; - column-gap: 1.2rem; - row-gap: 1rem; - grid-template-columns: 3rem 1fr; - grid-template-areas: "logo search" "spacer categories"; -} -.category { - display: inline-block; - position: relative; - margin-right: 1rem; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.2rem 0; - display: inline-flex; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.category label svg { - padding-right: 0.2rem; -} -.category label div.category_name { - margin: auto 0; -} -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -#search_logo { - grid-area: logo; - display: flex; - align-items: center; - justify-content: center; -} -#search_logo svg { - flex: 1; - width: 30px; - height: 30px; - margin: 0.5rem 0 auto 0; -} -.search_categories { - grid-area: categories; -} -.search_box { - margin: 0; - padding: 0; - grid-area: search; - display: inline-flex; - flex-direction: row; - white-space: nowrap; -} -#clear_search { - display: block; - border-collapse: separate; - box-sizing: border-box; - width: 1.8em; - margin: 0; - padding: 8px 2px; - background: none repeat scroll 0 0 var(--color-search-background); - border-top: 1px solid var(--color-search-border); - border-bottom: 1px solid var(--color-search-border); - border-right: none; - border-left: none; - border-radius: 0; - outline: none; - color: var(--color-search-font); - font-size: 16px; - z-index: 10000; -} -#clear_search:hover { - color: var(--color-search-background-hover); -} -#clear_search.empty * { - display: none; -} -#q, -#send_search { - display: block !important; - border-collapse: separate; - box-sizing: border-box; - margin: 0; - padding: 10px; - background: none repeat scroll 0 0 var(--color-search-background); - border: 1px solid var(--color-search-border); - border-radius: 0; - outline: none; - color: var(--color-search-font); - font-size: 16px; - z-index: 2; -} -#q { - outline: medium none; - padding-left: 12px; - padding-right: 0 !important; - border-right: none; - width: 40rem; - border-radius: 10px 0 0 10px; -} -#q::-ms-clear, -#q::-webkit-search-cancel-button { - display: none; -} -#send_search { - border-left: none; - border-radius: 0 10px 10px 0; -} -#send_search:hover { - cursor: pointer; - background-color: var(--color-search-background-hover); - color: var(--color-search-background); -} -.no-js #clear_search, -.no-js #send_search { - width: auto !important; - border-left: 1px solid var(--color-search-border); - padding: 10px; -} -.search_filters { - margin: 0.6rem 0 0 10.6rem; -} -.search_filters select { - background-color: inherit; -} -.search_filters select:hover, -.search_filters select:focus { - color: var(--color-base-font); -} -@media screen and (max-width: 80em) { - #search_header { - padding: 1.5em 0.5rem 0 0.5rem; - column-gap: 0.5rem; - } - .search_filters { - margin: 0.6rem 0 0 3.5rem; - } - #categories { - font-size: 90%; - clear: both; - } - #categories .checkbox_container { - margin: auto; - margin-top: 2px; - } - html.touch #main_index #categories_container, - html.touch #main_results #categories_container { - width: 1000px; - width: -moz-max-content; - width: -webkit-max-content; - width: max-content; - } - html.touch #main_index #categories_container .category, - html.touch #main_results #categories_container .category { - display: inline-block; - width: auto; - } - html.touch #main_index #categories, - html.touch #main_results #categories { - width: 100%; - text-align: left; - overflow-x: scroll; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - } -} -@media screen and (max-width: 50em) { - #search_header { - width: 100%; - margin: 0; - padding: 0.1rem 0 0 0; - column-gap: 0; - row-gap: 0; - grid-template-areas: "logo search" "categories categories"; - } - .search_logo { - padding: 0; - } - .search_box { - width: 99%; - display: flex; - flex-direction: row; - } - #q { - width: 100%; - flex: 1; - } - #main_results #q:placeholder-shown ~ #send_search { - margin-right: 2.6rem; - transition: margin-right 0.1s; - } - .search_filters { - margin: 0; - } - .language, - .time_range { - width: 45%; - } - .category { - display: block; - width: 100%; - margin: 0; - } - .category label { - padding: 0.8rem !important; - margin: 0 !important; - } - .category label svg { - display: none; - } -} -@media screen and (max-width: 20rem) { - #search_header { - grid-template-areas: "search search" "categories categories"; - } - #search_logo { - display: none; - } -} -#categories { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#categories::-webkit-scrollbar { - width: 0; - height: 0; -} -#categories_container { - position: relative; -} -.ion-icon { - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -.ion-icon-small { - width: 1rem; - height: 1rem; - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -.ion-icon-big { - width: 1.5rem; - height: 1.5rem; - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -html { - font-family: sans-serif; - font-size: 0.9em; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -moz-text-size-adjust: 100%; - text-size-adjust: 100%; - color: var(--color-base-font); - background-color: var(--color-base-background); - padding: 0; - margin: 0; -} -body, -main { - padding: 0; - margin: 0; -} -body { - display: flex; - flex-direction: column; - height: 100vh; - margin: 0; -} -main { - width: 100%; - margin-bottom: 2rem; - flex: 1; -} -#main_preferences, -#main_about, -#main_stats { - margin: 2em auto; - width: 85em; -} -footer { - clear: both; - min-height: 4rem; - padding: 1rem 0; - width: 100%; - text-align: center; - background-color: var(--color-footer-background); - border-top: 1px solid var(--color-footer-border); - overflow: hidden; -} -footer p { - font-size: 0.9em; -} -#main_preferences h1, -#main_stats h1 { - background: url('../img/searxng.png') no-repeat; - background-size: contain; - min-height: 40px; - margin: 0 auto; -} -#main_preferences h1 span, -#main_stats h1 span { - visibility: hidden; -} -input[type="submit"], -#results button[type="submit"] { - padding: 0.7rem; - display: inline-block; - background: var(--color-btn-background); - color: var(--color-btn-font); - border-radius: 10px; - border: 0; - cursor: pointer; -} -a { - text-decoration: none; - color: var(--color-url-font); -} -a:visited { - color: var(--color-url-visited-font); -} -a:visited .highlight { - color: var(--color-url-visited-font); -} -article[data-vim-selected] { - background: var(--color-result-vim-selected); - border-left: 0.2rem solid var(--color-result-vim-arrow); - border-radius: 0 10px 10px 0; -} -article.result-images[data-vim-selected] { - background: var(--color-result-vim-arrow); - border: none; - border-radius: 10px; -} -article.result-images[data-vim-selected] .image_thumbnail { - filter: opacity(60%); -} -article[data-vim-selected].category-videos, -article[data-vim-selected].category-news, -article[data-vim-selected].category-map, -article[data-vim-selected].category-music, -article[data-vim-selected].category-files, -article[data-vim-selected].category-social { - border: 1px solid var(--color-result-vim-arrow); - border-radius: 10px; -} -.result { - margin: 0.125rem 0; - padding: 1rem; - border-left: 0.2rem solid transparent; -} -.result h3 { - font-size: 1.2rem; - word-wrap: break-word; - margin: 0.4rem 0 0.4rem 0; - padding: 0; -} -.result h3 a { - color: var(--color-result-link-font); - font-weight: normal; - font-size: 1.1em; -} -.result h3 a:visited { - color: var(--color-result-link-visited-font); -} -.result h3 a:focus, -.result h3 a:hover { - text-decoration: underline; - border: none; - outline: none; -} -.result .cache_link, -.result .proxyfied_link { - font-size: 0.9em !important; -} -.result .content, -.result .stat, -.result .altlink { - font-size: 0.9em; - margin: 0; - padding: 0; - max-width: 54em; - word-wrap: break-word; - line-height: 1.24; -} -.result .content .highlight, -.result .stat .highlight, -.result .altlink .highlight { - color: var(--color-result-description-highlight-font); - background: inherit; - font-weight: bold; -} -.result .codelines .highlight { - color: inherit; - background: inherit; - font-weight: normal; -} -.result .url_wrapper { - display: flex; - font-size: 1rem; - color: var(--color-result-url-font); - flex-wrap: nowrap; - overflow: hidden; - flex-direction: row; - margin: 0; - padding: 0; -} -.result .url_wrapper .url_o1 { - white-space: nowrap; - flex-shrink: 1; -} -.result .url_wrapper .url_o1::after { - content: " "; - width: 1ch; - display: inline-block; -} -.result .url_wrapper .url_o2 { - overflow: hidden; - white-space: nowrap; - flex-basis: content; - flex-grow: 0; - flex-shrink: 1; - text-align: right; -} -.result .url_wrapper .url_o2 .url_i2 { - float: right; -} -.result .published_date { - font-size: 0.8em; - color: var(--color-result-publishdate-font); -} -.result img.thumbnail { - float: left; - padding: 0.6rem 1rem 0 0; - width: 20rem; -} -.result img.image { - float: left; - padding: 0.6rem 1rem 0 0; - width: 7rem; - max-height: 7rem; - object-fit: scale-down; - object-position: right top; -} -.result .break { - clear: both; -} -.category-videos, -.category-news, -.category-map, -.category-music, -.category-files, -.category-social { - border: 1px solid var(--color-result-border); - margin: 1rem 0; - border-radius: 10px; -} -.category-social .image { - width: auto !important; - min-width: 48px; - min-height: 48px; - padding: 0 5px 25px 0 !important; -} -.result-videos .content { - overflow: hidden; -} -.engines { - float: right; - color: var(--color-result-engines-font); -} -.engines span { - font-size: smaller; - margin: 0 0.5em 0 0; -} -.small_font { - font-size: 0.8em; -} -.highlight { - color: var(--color-result-link-font-highlight); - background: inherit; -} -.empty_element { - font-style: italic; -} -.result-images { - display: inline-block; - margin: 0; - padding: 0; - position: relative; - max-height: 200px; - border: none !important; -} -.result-images img { - float: inherit; - margin: 0.125rem; - padding: 0; - border: none; - max-height: 200px; - background: var(--color-result-image-background); -} -.result-images span.title { - display: none; - color: var(--color-result-image-span-font); -} -.result-images:hover span.title { - display: block; - position: absolute; - bottom: 0; - right: 0; - padding: 4px; - margin: 0 0 4px 4px; - background-color: var(--color-result-image-span-background-hover); - font-size: 0.7em; -} -.result-map img.image { - float: right !important; - height: 100px !important; - width: auto !important; -} -.result-map table { - font-size: 0.9em; - width: auto; - border-collapse: separate; - border-spacing: 0 0.35rem; -} -.result-map table th { - font-weight: inherit; - width: 17rem; - vertical-align: top; - text-align: left; -} -.result-map table td { - vertical-align: top; - text-align: left; -} -.hidden { - display: none !important; -} -#results { - margin: 1rem 2rem 0 10rem; - display: grid; - grid-template-columns: 45rem 25rem; - grid-template-rows: min-content min-content 1fr min-content; - gap: 0 5rem; - grid-template-areas: "corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"; -} -#results #sidebar *:first-child, -#results #urls *:first-child { - margin-top: 0; -} -#urls { - padding: 0; - grid-area: urls; -} -#suggestions .wrapper { - display: flex; - flex-flow: row wrap; - justify-content: flex-end; -} -#suggestions .wrapper form { - display: inline-block; - flex: 1 1 50%; -} -#suggestions input, -#infoboxes input { - padding: 0; - margin: 3px; - font-size: 0.9em; - display: inline-block; - background: transparent; - color: var(--color-result-search-url-font); - cursor: pointer; -} -#suggestions input[type="submit"], -#infoboxes input[type="submit"], -#suggestions .infobox .url a, -#infoboxes .infobox .url a { - color: var(--color-result-link-font); - text-decoration: none; - font-size: 0.9rem; -} -#suggestions input[type="submit"]:hover, -#infoboxes input[type="submit"]:hover, -#suggestions .infobox .url a:hover, -#infoboxes .infobox .url a:hover { - text-decoration: underline; -} -#corrections { - grid-area: corrections; - display: flex; - flex-flow: row wrap; - margin: 0 0 1em 0; -} -#corrections h4, -#corrections input[type="submit"] { - display: inline-block; - padding: 0.5rem; - margin: 0.5rem; -} -#corrections input[type="submit"] { - font-size: 0.8rem; - border-radius: 5px; -} -#suggestions .title, -#search_url .title, -#apis .title { - margin: 2em 0 0.5em 0; - color: var(--color-base-font); -} -#answers { - grid-area: answers; - border: 1px solid var(--color-answer-border); - background: var(--color-answer-background); - padding: 1rem; - margin: 1rem 0; - margin-top: 0; - color: var(--color-answer-font); - border-radius: 10px; -} -#answers h4 { - display: none; -} -#infoboxes form { - min-width: 210px; -} -#sidebar { - grid-area: sidebar; - word-wrap: break-word; - color: var(--color-sidebar-font); -} -#sidebar .infobox { - margin: 10px 0 10px; - border: 1px solid var(--color-sidebar-border); - padding: 1rem; - font-size: 0.9em; - border-radius: 10px; -} -#sidebar .infobox h2 { - margin: 0 0 0.5em 0; -} -#sidebar .infobox img { - max-width: 100%; - max-height: 12em; - display: block; - margin: 0 auto; - padding: 0; -} -#sidebar .infobox dl { - margin: 0.5em 0; -} -#sidebar .infobox dt { - display: inline; - margin: 0.5em 0.25em 0.5em 0; - padding: 0; - font-weight: bold; -} -#sidebar .infobox dd { - display: inline; - margin: 0.5em 0; - padding: 0; -} -#sidebar .infobox input { - font-size: 1em; -} -#sidebar .infobox br { - clear: both; -} -#sidebar .infobox .attributes, -#sidebar .infobox .urls { - clear: both; -} -#search_url { - margin-top: 8px; -} -#search_url div.selectable_url pre { - width: 200em; -} -#linkto_preferences { - position: absolute; - right: 10px; - top: 2.2rem; - padding: 0; - border: 0; - display: block; - font-size: 1.2em; - color: var(--color-search-font); -} -#linkto_preferences a:link *, -#linkto_preferences a:hover *, -#linkto_preferences a:visited *, -#linkto_preferences a:active * { - color: var(--color-search-font); -} -#pagination { - grid-area: pagination; -} -#pagination br { - clear: both; -} -#apis { - margin-top: 8px; - clear: both; -} -#backToTop { - border: 1px solid var(--color-backtotop-border); - margin: 0; - padding: 0; - font-size: 1em; - background: var(--color-backtotop-background); - position: fixed; - bottom: 8rem; - left: 56.3rem; - transition: opacity 0.5s; - opacity: 0; - border-radius: 10px; -} -#backToTop a { - display: block; - margin: 0; - padding: 0.7em; -} -#backToTop a, -#backToTop a:visited, -#backToTop a:hover, -#backToTop a:active { - color: var(--color-backtotop-font); -} -#results.scrolling #backToTop { - opacity: 1; -} -@media screen and (max-width: 80em) { - #main_preferences, - #main_about, - #main_stats { - margin: 2rem 0.5rem; - width: auto; - } - #infoboxes { - position: inherit; - max-width: inherit; - } - #infoboxes .infobox { - clear: both; - } - #infoboxes .infobox img { - float: left; - max-width: 10em; - margin: 0.5em 0.5em 0.5em 0; - } - #sidebar { - margin-bottom: 0.125rem; - padding: 0; - float: none; - border: none; - width: auto; - } - #sidebar input { - border: 0; - } - #apis { - display: none; - } - #search_url { - display: none; - } - .result .thumbnail { - max-width: 98%; - } - .result .url span.url { - display: block; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - width: 100%; - } - .result .engines { - float: right; - padding: 0 0 3px 0; - } - .result-images { - border-bottom: none !important; - } - .image_result { - max-width: 98%; - } - .image_result img { - max-width: 98%; - } - #backToTop { - display: none; - } - #pagination { - margin: 2rem 0 0 0 !important; - } - #main_results div#results { - margin: 1rem auto 0 auto; - justify-content: center; - display: grid; - grid-template-columns: 45rem; - grid-template-rows: min-content min-content min-content 1fr min-content min-content; - gap: 0; - grid-template-areas: "corrections" "answers" "sidebar" "urls" "pagination"; - } -} -#main_results div#results.only_template_images { - margin: 1rem 0.5rem 0 0.5rem; - display: grid; - grid-template-columns: 100%; - grid-template-rows: min-content min-content 1fr min-content min-content; - gap: 0; - grid-template-areas: "corrections" "urls" "answers" "sidebar" "pagination"; -} -#main_results div#results.only_template_images #urls { - width: inherit; - margin: 0; -} -#main_results div#results.only_template_images #backToTop { - left: auto; - right: 1rem; -} -#main_results div#results.only_template_images #pagination { - margin-right: 4rem; -} -@media screen and (max-width: 50em) { - #main_results div#results { - grid-template-columns: 100%; - margin: 2rem 0.5rem 0 0.5rem; - } - #linkto_preferences { - top: 0.8rem; - right: 0.7rem; - } - #main_index #linkto_preferences { - top: 0.5rem; - right: 0.5rem; - } - #results { - margin: 0; - padding: 0; - } - #pagination { - margin: 2rem 1rem 0 1rem !important; - } - article[data-vim-selected] { - border: 1px solid var(--color-result-vim-arrow); - border-radius: 10px; - } - .result { - border: 1px solid var(--color-result-border); - margin: 1rem 0; - border-radius: 10px; - } - .result-images { - margin: 0; - padding: 0; - border: none; - } -} -@media screen and (max-width: 35em) { - .result-videos img.thumbnail { - float: none !important; - } - .result-videos .content { - overflow: inherit; - } -} -pre code { - white-space: pre-wrap; -} -#search_submit { - left: 1px; - right: auto; -} diff --git a/searx/static/themes/simple/css/searxng.css b/searx/static/themes/simple/css/searxng.css deleted file mode 100644 index a1f244e90..000000000 --- a/searx/static/themes/simple/css/searxng.css +++ /dev/null @@ -1,3275 +0,0 @@ -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -* -* To convert "style.less" to "style.css" run: $make styles -*/ -.github-issue-button { - display: block; - padding: 8px 16px; - font-family: sans-serif; - font-size: 16px; - color: white; - background-color: #238636 !important; - /* important is needed cause to an !important in logicodev-dark */ - border: #2ea043; - border-radius: 10px !important; - box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px; -} -.github-issue-button:hover { - background-color: #2ea043; -} -.issue-hide { - display: none; -} -.engine-stats .engine-name { - width: 20rem; -} -.engine-stats .engine-score { - width: 7rem; - text-align: right; -} -.engine-stats .engine-reliability { - text-align: right; -} -.engine-stats table.engine-error { - max-width: 1280px; - margin: 1rem; - border: 1px solid gray; -} -.engine-stats table.engine-error th.engine-error-type, -.engine-stats table.engine-error td.engine-error-type, -.engine-stats failed-test { - width: 10rem; -} -.engine-stats table.engine-error span.log_parameters { - border-right: 1px solid gray; - padding: 0 1rem 0 0; - margin: 0 0 0 0.5rem; -} -.bar-chart-value { - width: 3em; - display: inline-block; - text-align: right; - padding-right: 0.5rem; -} -.bar-chart-graph { - width: calc(100% - 5rem); - display: inline-block; -} -.bar-chart-bar { - border: 3px solid #5bc0de; - margin: 1px 0; -} -.bar-chart-serie1 { - border: 3px solid #5bc0de; - margin: 1px 0; - float: left; -} -.bar-chart-serie2 { - border: 3px solid #deb15b; - margin: 1px 0; - float: left; -} -.bar0 { - width: 0; - border: 0; -} -.bar1 { - width: 1%; -} -.bar2 { - width: 2%; -} -.bar3 { - width: 3%; -} -.bar4 { - width: 4%; -} -.bar5 { - width: 5%; -} -.bar6 { - width: 6%; -} -.bar7 { - width: 7%; -} -.bar8 { - width: 8%; -} -.bar9 { - width: 9%; -} -.bar10 { - width: 10%; -} -.bar11 { - width: 11%; -} -.bar12 { - width: 12%; -} -.bar13 { - width: 13%; -} -.bar14 { - width: 14%; -} -.bar15 { - width: 15%; -} -.bar16 { - width: 16%; -} -.bar17 { - width: 17%; -} -.bar18 { - width: 18%; -} -.bar19 { - width: 19%; -} -.bar20 { - width: 20%; -} -.bar21 { - width: 21%; -} -.bar22 { - width: 22%; -} -.bar23 { - width: 23%; -} -.bar24 { - width: 24%; -} -.bar25 { - width: 25%; -} -.bar26 { - width: 26%; -} -.bar27 { - width: 27%; -} -.bar28 { - width: 28%; -} -.bar29 { - width: 29%; -} -.bar30 { - width: 30%; -} -.bar31 { - width: 31%; -} -.bar32 { - width: 32%; -} -.bar33 { - width: 33%; -} -.bar34 { - width: 34%; -} -.bar35 { - width: 35%; -} -.bar36 { - width: 36%; -} -.bar37 { - width: 37%; -} -.bar38 { - width: 38%; -} -.bar39 { - width: 39%; -} -.bar40 { - width: 40%; -} -.bar41 { - width: 41%; -} -.bar42 { - width: 42%; -} -.bar43 { - width: 43%; -} -.bar44 { - width: 44%; -} -.bar45 { - width: 45%; -} -.bar46 { - width: 46%; -} -.bar47 { - width: 47%; -} -.bar48 { - width: 48%; -} -.bar49 { - width: 49%; -} -.bar50 { - width: 50%; -} -.bar51 { - width: 51%; -} -.bar52 { - width: 52%; -} -.bar53 { - width: 53%; -} -.bar54 { - width: 54%; -} -.bar55 { - width: 55%; -} -.bar56 { - width: 56%; -} -.bar57 { - width: 57%; -} -.bar58 { - width: 58%; -} -.bar59 { - width: 59%; -} -.bar60 { - width: 60%; -} -.bar61 { - width: 61%; -} -.bar62 { - width: 62%; -} -.bar63 { - width: 63%; -} -.bar64 { - width: 64%; -} -.bar65 { - width: 65%; -} -.bar66 { - width: 66%; -} -.bar67 { - width: 67%; -} -.bar68 { - width: 68%; -} -.bar69 { - width: 69%; -} -.bar70 { - width: 70%; -} -.bar71 { - width: 71%; -} -.bar72 { - width: 72%; -} -.bar73 { - width: 73%; -} -.bar74 { - width: 74%; -} -.bar75 { - width: 75%; -} -.bar76 { - width: 76%; -} -.bar77 { - width: 77%; -} -.bar78 { - width: 78%; -} -.bar79 { - width: 79%; -} -.bar80 { - width: 80%; -} -.bar81 { - width: 81%; -} -.bar82 { - width: 82%; -} -.bar83 { - width: 83%; -} -.bar84 { - width: 84%; -} -.bar85 { - width: 85%; -} -.bar86 { - width: 86%; -} -.bar87 { - width: 87%; -} -.bar88 { - width: 88%; -} -.bar89 { - width: 89%; -} -.bar90 { - width: 90%; -} -.bar91 { - width: 91%; -} -.bar92 { - width: 92%; -} -.bar93 { - width: 93%; -} -.bar94 { - width: 94%; -} -.bar95 { - width: 95%; -} -.bar96 { - width: 96%; -} -.bar97 { - width: 97%; -} -.bar98 { - width: 98%; -} -.bar99 { - width: 99%; -} -.bar100 { - width: 100%; -} -.osm-map-box { - height: 300px; - width: 100%; - margin: 10px 0; -} -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} - -/* - * SearXNG, A privacy-respecting, hackable metasearch engine - * - * To change the colors of the site, simple edit this variables - */ -:root { - --color-base-font: #444; - --color-base-font-rgb: 68, 68, 68; - --color-base-background: #fff; - --color-url-font: #29314d; - --color-url-visited-font: #80b; - --color-header-background: #f7f7f7; - --color-header-border: #ddd; - --color-footer-background: #f7f7f7; - --color-footer-border: #ddd; - --color-sidebar-border: #ddd; - --color-sidebar-font: #000; - --color-backtotop-font: #444; - --color-backtotop-border: #ddd; - --color-backtotop-background: #fff; - --color-btn-background: #3050ff; - --color-btn-font: #fff; - --color-search-border: #bbb; - --color-search-background: #fff; - --color-search-font: #222; - --color-search-background-hover: #3050ff; - --color-error: #db3434; - --color-error-background: #fae1e1; - --color-warning: #dbba34; - --color-warning-background: #faf5e1; - --color-success: #42db34; - --color-success-background: #e3fae1; - --color-categories-item-selected-font: #3050ff; - --color-categories-item-border-selected: #3050ff; - --color-autocomplete-font: #000; - --color-autocomplete-border: #bbb; - --color-autocomplete-background: #fff; - --color-autocomplete-background-hover: #f7f7f7; - --color-answer-border: #ddd; - --color-answer-font: #444; - --color-answer-background: #f7f7f7; - --color-result-border: #ddd; - --color-result-url-font: #000; - --color-result-vim-selected: #f7f7f7; - --color-result-vim-arrow: #000bbb; - --color-result-description-highlight-font: #000; - --color-result-link-font: #000bbb; - --color-result-link-font-highlight: #000bbb; - --color-result-link-visited-font: #80b; - --color-result-publishdate-font: #777; - --color-result-engines-font: #777; - --color-result-search-url-border: #ddd; - --color-result-search-url-font: #000; - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #fff; - --color-settings-tr-hover: #f7f7f7; - --color-settings-engine-description-font: #909090; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #fff; - --color-toolkit-kbd-background: #000; - --color-toolkit-dialog-border: #ddd; - --color-toolkit-dialog-background: #fff; - --color-toolkit-tabs-label-border: #fff; - --color-toolkit-tabs-section-border: #ddd; - --color-toolkit-select-background: #f7f7f7; - --color-toolkit-select-border: #ddd; - --color-toolkit-select-background-hover: #bbb; - --color-toolkit-input-text-font: #222; - --color-toolkit-checkbox-onoff-background: #ddd; - --color-toolkit-checkbox-onoff-label-background: #3050ff; - --color-toolkit-checkbox-onoff-checked-background: #aaa; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #ddd; - --color-toolkit-checkbox-input-border: #3050ff; - --color-toolkit-engine-tooltip-border: #ddd; - --color-toolkit-engine-tooltip-background: #fff; - --color-toolkit-loader-border: rgba(0, 0, 0, 0.2); - --color-toolkit-loader-borderleft: rgba(255, 255, 255, 0); -} -@media (prefers-color-scheme: dark) { - :root.theme-auto { - --color-base-font: #bbb; - --color-base-font-rgb: 187, 187, 187; - --color-base-background: #222; - --color-url-font: #8af; - --color-url-visited-font: #96b; - --color-header-background: #181818; - --color-header-border: #333; - --color-footer-background: #181818; - --color-footer-border: #333; - --color-sidebar-border: #555; - --color-sidebar-font: #fff; - --color-backtotop-font: #bbb; - --color-backtotop-border: #333; - --color-backtotop-background: #181818; - --color-btn-background: #58f; - --color-btn-font: #222; - --color-search-border: #555; - --color-search-background: #222; - --color-search-font: #fff; - --color-search-background-hover: #58f; - --color-error: #f55b5b; - --color-error-background: #390a0a; - --color-warning: #f1d561; - --color-warning-background: #39300a; - --color-success: #79f56e; - --color-success-background: #0e390a; - --color-categories-item-selected-font: #58f; - --color-categories-item-border-selected: #58f; - --color-autocomplete-font: #fff; - --color-autocomplete-border: #555; - --color-autocomplete-background: #222; - --color-autocomplete-background-hover: #181818; - --color-answer-border: #333; - --color-answer-font: #bbb; - --color-answer-background: #181818; - --color-result-border: #333; - --color-result-url-font: #fff; - --color-result-vim-selected: #181818; - --color-result-vim-arrow: #8af; - --color-result-description-highlight-font: #fff; - --color-result-link-font: #8af; - --color-result-link-font-highlight: #8af; - --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #888; - --color-result-engines-font: #888; - --color-result-search-url-border: #555; - --color-result-search-url-font: #fff; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #222; - --color-settings-tr-hover: #2d2d2d; - --color-settings-engine-description-font: #909090; - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #000; - --color-toolkit-kbd-background: #fff; - --color-toolkit-dialog-border: #555; - --color-toolkit-dialog-background: #222; - --color-toolkit-tabs-label-border: #222; - --color-toolkit-tabs-section-border: #555; - --color-toolkit-select-background: #3c3b31; - --color-toolkit-select-border: #555; - --color-toolkit-select-background-hover: #333; - --color-toolkit-input-text-font: #fff; - --color-toolkit-checkbox-onoff-background: #3c3b31; - --color-toolkit-checkbox-onoff-label-background: #58f; - --color-toolkit-checkbox-onoff-checked-background: #ddd; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #333; - --color-toolkit-checkbox-input-border: #58f; - --color-toolkit-engine-tooltip-border: #333; - --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); - } -} -:root.theme-dark { - --color-base-font: #bbb; - --color-base-font-rgb: 187, 187, 187; - --color-base-background: #222; - --color-url-font: #8af; - --color-url-visited-font: #96b; - --color-header-background: #181818; - --color-header-border: #333; - --color-footer-background: #181818; - --color-footer-border: #333; - --color-sidebar-border: #555; - --color-sidebar-font: #fff; - --color-backtotop-font: #bbb; - --color-backtotop-border: #333; - --color-backtotop-background: #181818; - --color-btn-background: #58f; - --color-btn-font: #222; - --color-search-border: #555; - --color-search-background: #222; - --color-search-font: #fff; - --color-search-background-hover: #58f; - --color-error: #f55b5b; - --color-error-background: #390a0a; - --color-warning: #f1d561; - --color-warning-background: #39300a; - --color-success: #79f56e; - --color-success-background: #0e390a; - --color-categories-item-selected-font: #58f; - --color-categories-item-border-selected: #58f; - --color-autocomplete-font: #fff; - --color-autocomplete-border: #555; - --color-autocomplete-background: #222; - --color-autocomplete-background-hover: #181818; - --color-answer-border: #333; - --color-answer-font: #bbb; - --color-answer-background: #181818; - --color-result-border: #333; - --color-result-url-font: #fff; - --color-result-vim-selected: #181818; - --color-result-vim-arrow: #8af; - --color-result-description-highlight-font: #fff; - --color-result-link-font: #8af; - --color-result-link-font-highlight: #8af; - --color-result-link-visited-font: #96b; - --color-result-publishdate-font: #888; - --color-result-engines-font: #888; - --color-result-search-url-border: #555; - --color-result-search-url-font: #fff; - --color-result-detail-font: #fff; - --color-result-detail-label-font: lightgray; - --color-result-detail-background: #000; - --color-result-detail-hr: #555; - --color-result-detail-link: #8af; - --color-result-detail-loader-border: rgba(255, 255, 255, 0.2); - --color-result-detail-loader-borderleft: rgba(0, 0, 0, 0); - --color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); - --color-result-image-span-font: #fff; - --color-result-image-background: #222; - --color-settings-tr-hover: #2d2d2d; - --color-settings-engine-description-font: #909090; - --color-toolkit-badge-font: #fff; - --color-toolkit-badge-background: #777; - --color-toolkit-kbd-font: #000; - --color-toolkit-kbd-background: #fff; - --color-toolkit-dialog-border: #555; - --color-toolkit-dialog-background: #222; - --color-toolkit-tabs-label-border: #222; - --color-toolkit-tabs-section-border: #555; - --color-toolkit-select-background: #3c3b31; - --color-toolkit-select-border: #555; - --color-toolkit-select-background-hover: #333; - --color-toolkit-input-text-font: #fff; - --color-toolkit-checkbox-onoff-background: #3c3b31; - --color-toolkit-checkbox-onoff-label-background: #58f; - --color-toolkit-checkbox-onoff-checked-background: #ddd; - --color-toolkit-checkbox-label-background: #fff; - --color-toolkit-checkbox-label-border: #333; - --color-toolkit-checkbox-input-border: #58f; - --color-toolkit-engine-tooltip-border: #333; - --color-toolkit-engine-tooltip-background: #222; - --color-toolkit-loader-border: rgba(255, 255, 255, 0.2); - --color-toolkit-loader-borderleft: rgba(0, 0, 0, 0); -} -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -*/ -.code-highlight pre { - overflow: auto; - background-color: inherit; - color: inherit; - border: inherit; -} -/* - this file is generated automatically by searxng_extra/update/update_pygments.py - using pygments version 2.10.0 -*/ -.code-highlight .linenos { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: default; - margin-right: 8px; - text-align: right; -} -.code-highlight .linenos::selection { - background: transparent; - /* WebKit/Blink Browsers */ -} -.code-highlight .linenos::-moz-selection { - background: transparent; - /* Gecko Browsers */ -} -.code-highlight pre { - line-height: 125%; -} -.code-highlight td.linenos .normal { - color: inherit; - background-color: transparent; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight span.linenos { - color: inherit; - background-color: transparent; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight td.linenos .special { - color: #000000; - background-color: #ffffc0; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight span.linenos.special { - color: #000000; - background-color: #ffffc0; - padding-left: 5px; - padding-right: 5px; -} -.code-highlight .hll { - background-color: #ffffcc; -} -.code-highlight { - background: #f8f8f8; -} -.code-highlight .c { - color: #408080; - font-style: italic; -} -/* Comment */ -.code-highlight .err { - border: 1px solid #FF0000; -} -/* Error */ -.code-highlight .k { - color: #008000; - font-weight: bold; -} -/* Keyword */ -.code-highlight .o { - color: #666666; -} -/* Operator */ -.code-highlight .ch { - color: #408080; - font-style: italic; -} -/* Comment.Hashbang */ -.code-highlight .cm { - color: #408080; - font-style: italic; -} -/* Comment.Multiline */ -.code-highlight .cp { - color: #BC7A00; -} -/* Comment.Preproc */ -.code-highlight .cpf { - color: #408080; - font-style: italic; -} -/* Comment.PreprocFile */ -.code-highlight .c1 { - color: #408080; - font-style: italic; -} -/* Comment.Single */ -.code-highlight .cs { - color: #408080; - font-style: italic; -} -/* Comment.Special */ -.code-highlight .gd { - color: #A00000; -} -/* Generic.Deleted */ -.code-highlight .ge { - font-style: italic; -} -/* Generic.Emph */ -.code-highlight .gr { - color: #FF0000; -} -/* Generic.Error */ -.code-highlight .gh { - color: #000080; - font-weight: bold; -} -/* Generic.Heading */ -.code-highlight .gi { - color: #00A000; -} -/* Generic.Inserted */ -.code-highlight .go { - color: #888888; -} -/* Generic.Output */ -.code-highlight .gp { - color: #000080; - font-weight: bold; -} -/* Generic.Prompt */ -.code-highlight .gs { - font-weight: bold; -} -/* Generic.Strong */ -.code-highlight .gu { - color: #800080; - font-weight: bold; -} -/* Generic.Subheading */ -.code-highlight .gt { - color: #0044DD; -} -/* Generic.Traceback */ -.code-highlight .kc { - color: #008000; - font-weight: bold; -} -/* Keyword.Constant */ -.code-highlight .kd { - color: #008000; - font-weight: bold; -} -/* Keyword.Declaration */ -.code-highlight .kn { - color: #008000; - font-weight: bold; -} -/* Keyword.Namespace */ -.code-highlight .kp { - color: #008000; -} -/* Keyword.Pseudo */ -.code-highlight .kr { - color: #008000; - font-weight: bold; -} -/* Keyword.Reserved */ -.code-highlight .kt { - color: #B00040; -} -/* Keyword.Type */ -.code-highlight .m { - color: #666666; -} -/* Literal.Number */ -.code-highlight .s { - color: #BA2121; -} -/* Literal.String */ -.code-highlight .na { - color: #7D9029; -} -/* Name.Attribute */ -.code-highlight .nb { - color: #008000; -} -/* Name.Builtin */ -.code-highlight .nc { - color: #0000FF; - font-weight: bold; -} -/* Name.Class */ -.code-highlight .no { - color: #880000; -} -/* Name.Constant */ -.code-highlight .nd { - color: #AA22FF; -} -/* Name.Decorator */ -.code-highlight .ni { - color: #999999; - font-weight: bold; -} -/* Name.Entity */ -.code-highlight .ne { - color: #D2413A; - font-weight: bold; -} -/* Name.Exception */ -.code-highlight .nf { - color: #0000FF; -} -/* Name.Function */ -.code-highlight .nl { - color: #A0A000; -} -/* Name.Label */ -.code-highlight .nn { - color: #0000FF; - font-weight: bold; -} -/* Name.Namespace */ -.code-highlight .nt { - color: #008000; - font-weight: bold; -} -/* Name.Tag */ -.code-highlight .nv { - color: #19177C; -} -/* Name.Variable */ -.code-highlight .ow { - color: #AA22FF; - font-weight: bold; -} -/* Operator.Word */ -.code-highlight .w { - color: #bbbbbb; -} -/* Text.Whitespace */ -.code-highlight .mb { - color: #666666; -} -/* Literal.Number.Bin */ -.code-highlight .mf { - color: #666666; -} -/* Literal.Number.Float */ -.code-highlight .mh { - color: #666666; -} -/* Literal.Number.Hex */ -.code-highlight .mi { - color: #666666; -} -/* Literal.Number.Integer */ -.code-highlight .mo { - color: #666666; -} -/* Literal.Number.Oct */ -.code-highlight .sa { - color: #BA2121; -} -/* Literal.String.Affix */ -.code-highlight .sb { - color: #BA2121; -} -/* Literal.String.Backtick */ -.code-highlight .sc { - color: #BA2121; -} -/* Literal.String.Char */ -.code-highlight .dl { - color: #BA2121; -} -/* Literal.String.Delimiter */ -.code-highlight .sd { - color: #BA2121; - font-style: italic; -} -/* Literal.String.Doc */ -.code-highlight .s2 { - color: #BA2121; -} -/* Literal.String.Double */ -.code-highlight .se { - color: #BB6622; - font-weight: bold; -} -/* Literal.String.Escape */ -.code-highlight .sh { - color: #BA2121; -} -/* Literal.String.Heredoc */ -.code-highlight .si { - color: #BB6688; - font-weight: bold; -} -/* Literal.String.Interpol */ -.code-highlight .sx { - color: #008000; -} -/* Literal.String.Other */ -.code-highlight .sr { - color: #BB6688; -} -/* Literal.String.Regex */ -.code-highlight .s1 { - color: #BA2121; -} -/* Literal.String.Single */ -.code-highlight .ss { - color: #19177C; -} -/* Literal.String.Symbol */ -.code-highlight .bp { - color: #008000; -} -/* Name.Builtin.Pseudo */ -.code-highlight .fm { - color: #0000FF; -} -/* Name.Function.Magic */ -.code-highlight .vc { - color: #19177C; -} -/* Name.Variable.Class */ -.code-highlight .vg { - color: #19177C; -} -/* Name.Variable.Global */ -.code-highlight .vi { - color: #19177C; -} -/* Name.Variable.Instance */ -.code-highlight .vm { - color: #19177C; -} -/* Name.Variable.Magic */ -.code-highlight .il { - color: #666666; -} -/* Literal.Number.Integer.Long */ -html.no-js .hide_if_nojs { - display: none; -} -html.js .show_if_nojs { - display: none; -} -.center { - text-align: center; -} -.right { - float: right; -} -.left { - float: left; -} -.invisible { - display: none !important; -} -.list-unstyled { - list-style-type: none; -} -.list-unstyled li { - margin-top: 4px; - margin-bottom: 4px; -} -.danger { - background-color: var(--color-error-background); -} -.warning { - background: var(--color-warning-background); -} -.success { - background: var(--color-success-background); -} -.badge { - display: inline-block; - color: var(--color-toolkit-badge-font); - background-color: var(--color-toolkit-badge-background); - text-align: center; - white-space: nowrap; - vertical-align: baseline; - min-width: 10px; - padding: 1px 5px; - border-radius: 5px; -} -kbd { - padding: 2px 4px; - margin: 1px; - font-size: 90%; - color: var(--color-toolkit-kbd-font); - background: var(--color-toolkit-kbd-background); -} -table { - width: 100%; -} -table.striped tr { - border-bottom: 1px solid var(--color-settings-tr-hover); -} -th { - padding: 0.4em; -} -td { - padding: 0 4px; -} -tr:hover { - background: var(--color-settings-tr-hover) !important; -} -div.selectable_url { - display: block; - border: 1px solid var(--color-result-search-url-border); - padding: 4px; - color: var(--color-result-search-url-font); - margin: 0.1em; - overflow: hidden; - height: 1.2em; - line-height: 1.2em; - border-radius: 5px; -} -div.selectable_url pre { - display: block; - font-size: 0.8em; - word-break: break-all; - margin: 0.1em; - -webkit-user-select: all; - -moz-user-select: all; - -ms-user-select: element; - user-select: all; -} -.dialog-error { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - color: var(--color-error); - background: var(--color-error-background); - border-color: var(--color-error); -} -.dialog-error .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-error ul, -.dialog-error ol, -.dialog-error p { - margin: 1px 0 0 0; -} -.dialog-error table { - width: auto; -} -.dialog-error tr { - vertical-align: text-top; -} -.dialog-error tr:hover { - background: transparent !important; -} -.dialog-error td { - padding: 0 1em 0 0; -} -.dialog-error h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-warning { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - color: var(--color-warning); - background: var(--color-warning-background); - border-color: var(--color-warning); -} -.dialog-warning .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-warning ul, -.dialog-warning ol, -.dialog-warning p { - margin: 1px 0 0 0; -} -.dialog-warning table { - width: auto; -} -.dialog-warning tr { - vertical-align: text-top; -} -.dialog-warning tr:hover { - background: transparent !important; -} -.dialog-warning td { - padding: 0 1em 0 0; -} -.dialog-warning h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-modal { - position: relative; - display: flex; - padding: 1rem; - margin: 0 0 1em 0; - border: 1px solid var(--color-toolkit-dialog-border); - text-align: left; - border-radius: 10px; - display: block; - background: var(--color-toolkit-dialog-background); - position: fixed; - top: 50%; - left: 50%; - margin: 0 auto; - transform: translate(-50%, -50%); - z-index: 10000000; -} -.dialog-modal .close { - float: right; - position: relative; - top: -3px; - color: inherit; - font-size: 1.5em; -} -.dialog-modal ul, -.dialog-modal ol, -.dialog-modal p { - margin: 1px 0 0 0; -} -.dialog-modal table { - width: auto; -} -.dialog-modal tr { - vertical-align: text-top; -} -.dialog-modal tr:hover { - background: transparent !important; -} -.dialog-modal td { - padding: 0 1em 0 0; -} -.dialog-modal h4 { - margin-top: 0.3em; - margin-bottom: 0.3em; -} -.dialog-modal h3 { - margin-top: 0; -} -.btn-collapse { - cursor: pointer; -} -.scrollx { - overflow-x: auto; - overflow-y: hidden; - display: block; - padding: 0; - margin: 0; - border: none; -} -/* -- tabs -- */ -.tabs .tabs > label { - font-size: 90%; -} -.tabs { - display: -webkit-box; - display: -moz-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - flex-wrap: wrap; - width: 100%; - min-width: 100%; -} -.tabs > * { - order: 2; -} -.tabs > input[type=radio] { - display: none; -} -.tabs > label { - order: 1; - padding: 0.7em; - margin: 0 0.7em; - letter-spacing: 0.5px; - text-transform: uppercase; - border: solid var(--color-toolkit-tabs-label-border); - border-width: 0 0 2px 0; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; -} -.tabs > label:hover { - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -.tabs > section { - min-width: 100%; - padding: 0.7rem 0; - box-sizing: border-box; - border-top: 1px solid var(--color-toolkit-tabs-section-border); - display: none; -} -.tabs > label:last-of-type { - border-bottom: 2px solid var(--color-categories-item-border-selected); - background: var(--color-categories-item-selected); - color: var(--color-categories-item-selected-font); - letter-spacing: -0.1px; -} -.tabs > section:last-of-type { - display: block; -} -html body .tabs > input:checked ~ section { - display: none; -} -html body .tabs > input:checked ~ label { - position: inherited; - background: inherit; - border-bottom: 2px solid transparent; - font-weight: normal; - color: inherit; -} -html body .tabs > input:checked ~ label:hover { - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -html body .tabs > input:checked + label { - border-bottom: 2px solid var(--color-categories-item-border-selected); - background: var(--color-categories-item-selected); - color: var(--color-categories-item-selected-font); -} -html body .tabs > input:checked + label + section { - display: block; -} -/* -- select -- */ -select { - height: 2.4rem; - margin: 0 1rem 0 0; - padding: 0.2rem !important; - color: var(--color-search-font); - font-size: 0.9rem; - z-index: 2; -} -select:hover, -select:focus { - cursor: pointer; -} -@supports ((background-position-x: 100%) and ((appearance: none) or (-webkit-appearance: none) or (-moz-appearance: none))) { - select { - appearance: none; - -webkit-appearance: none; - -moz-appearance: none; - border-width: 0 2rem 0 0; - border-color: transparent; - background: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E") no-repeat; - background-position-x: calc(100% + 2rem); - background-size: 2rem; - background-origin: content-box; - background-color: var(--color-toolkit-select-background); - outline: medium none; - text-overflow: ellipsis; - border-radius: 5px; - } - select:hover, - select:focus { - background-color: var(--color-toolkit-select-background-hover); - } - select option { - background-color: var(--color-base-background); - } - @media (prefers-color-scheme: dark) { - html.theme-auto select, - html.theme-dark select { - background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); - } - } - html.theme-dark select { - background-image: url("data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22512%22%20height%3D%22512%22%20viewBox%3D%220%200%20512%20512%22%3E%0A%3Cg%3E%3Cpolygon%20fill%3D%22%23ddd%22%20points%3D%22128%2C192%20256%2C320%20384%2C192%22%2F%3E%3C%2Fg%3E%0A%3C%2Fsvg%3E"); - } -} -/* -- checkbox-onoff -- */ -@supports (border-radius: 50px) { - .checkbox-onoff { - display: inline-block; - width: 40px; - height: 10px; - background: var(--color-toolkit-checkbox-onoff-background); - margin: 8px 1rem; - position: relative; - border-radius: 50px; - } - .checkbox-onoff label { - display: block; - width: 20px; - height: 20px; - position: absolute; - top: -5px; - cursor: pointer; - border-radius: 50px; - transition: all 0.4s ease; - left: 27px; - background-color: var(--color-toolkit-checkbox-onoff-label-background); - } - .checkbox-onoff input[type=checkbox] { - visibility: hidden; - } - .checkbox-onoff input[type=checkbox]:checked + label { - left: -5px; - background: var(--color-toolkit-checkbox-onoff-checked-background); - } -} -/* -- checkbox -- */ -@supports (transform: rotate(-45deg)) { - .checkbox { - width: 20px; - position: relative; - margin: 20px auto; - } - .checkbox label { - width: 20px; - height: 20px; - cursor: pointer; - position: absolute; - top: 0; - left: 0; - background: var(--color-toolkit-checkbox-label-background); - border-radius: 10px; - } - .checkbox label::after { - content: ''; - width: 9px; - height: 5px; - position: absolute; - top: 4px; - left: 4px; - border: 3px solid var(--color-toolkit-checkbox-label-border); - border-top: none; - border-right: none; - background: transparent; - opacity: 0; - transform: rotate(-45deg); - } - .checkbox input[type=checkbox] { - visibility: hidden; - } - .checkbox input[type=checkbox]:checked + label::after { - border-color: var(--color-toolkit-checkbox-input-border); - opacity: 1; - } - .checkbox input[disabled] + label { - background-color: transparent !important; - cursor: inherit; - } - .checkbox input:not(:checked):not([readonly]):not([disabled]) + label:hover::after { - opacity: 0.5; - } -} -@media screen and (max-width: 50em) { - .tabs > label { - width: 100%; - } -} -/* -- loader -- */ -.loader, -.loader::after { - border-radius: 50%; - width: 2em; - height: 2em; -} -.loader { - margin: 1em auto; - font-size: 10px; - position: relative; - text-indent: -9999em; - border-top: 0.5em solid var(--color-toolkit-loader-border); - border-right: 0.5em solid var(--color-toolkit-loader-border); - border-bottom: 0.5em solid var(--color-toolkit-loader-border); - border-left: 0.5em solid var(--color-toolkit-loader-borderleft); - -webkit-transform: translateZ(0); - -ms-transform: translateZ(0); - transform: translateZ(0); - -webkit-animation: load8 1.2s infinite linear; - animation: load8 1.2s infinite linear; -} -@-webkit-keyframes load8 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -@keyframes load8 { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} -/* -- engine-tooltip -- */ -.engine-tooltip { - display: none; - position: absolute; - padding: 0.5rem 1rem; - margin: 0 0 0 2rem; - border: 1px solid var(--color-toolkit-engine-tooltip-border); - background: var(--color-toolkit-engine-tooltip-background); - font-size: 14px; - font-weight: normal; - z-index: 1000000; - text-align: left; - border-radius: 10px; -} -th:hover .engine-tooltip, -td:hover .engine-tooltip, -.engine-tooltip:hover { - display: inline-block; -} -/* -- stacked bar chart -- */ -.stacked-bar-chart { - margin: 0; - padding: 0 0.125rem 0 4rem; - width: 100%; - width: -moz-available; - width: -webkit-fill-available; - width: fill; - flex-direction: row; - flex-wrap: nowrap; - align-items: center; - display: inline-flex; -} -.stacked-bar-chart-value { - width: 3rem; - display: inline-block; - position: absolute; - padding: 0 0.5rem; - text-align: right; -} -.stacked-bar-chart-base { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; -} -.stacked-bar-chart-median { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: var(--color-base-font); - border: 1px solid rgba(var(--color-base-font-rgb), 0.9); - padding: 0.3rem 0; -} -.stacked-bar-chart-rate80 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border: 1px solid rgba(var(--color-base-font-rgb), 0.3); - padding: 0.3rem 0; -} -.stacked-bar-chart-rate95 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border-bottom: 1px dotted rgba(var(--color-base-font-rgb), 0.5); - padding: 0; -} -.stacked-bar-chart-rate100 { - display: flex; - flex-shrink: 0; - flex-grow: 0; - flex-basis: unset; - background: transparent; - border-left: 1px solid rgba(var(--color-base-font-rgb), 0.9); - padding: 0.4rem 0; - width: 1px; -} -/*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ -.autocomplete { - position: absolute; - max-height: 0; - overflow-y: hidden; - text-align: left; - border-radius: 10px; -} -.autocomplete:active, -.autocomplete:focus, -.autocomplete:hover { - background-color: var(--color-autocomplete-background); -} -.autocomplete:empty { - display: none; -} -.autocomplete > ul { - list-style-type: none; - margin: 0; - padding: 0; -} -.autocomplete > ul > li { - cursor: pointer; - padding: 8px 0 8px 8px; -} -.autocomplete > ul > li.active, -.autocomplete > ul > li:active, -.autocomplete > ul > li:focus, -.autocomplete > ul > li:hover { - background-color: var(--color-autocomplete-background-hover); -} -.autocomplete > ul > li.active a:active, -.autocomplete > ul > li:active a:active, -.autocomplete > ul > li:focus a:active, -.autocomplete > ul > li:hover a:active, -.autocomplete > ul > li.active a:focus, -.autocomplete > ul > li:active a:focus, -.autocomplete > ul > li:focus a:focus, -.autocomplete > ul > li:hover a:focus, -.autocomplete > ul > li.active a:hover, -.autocomplete > ul > li:active a:hover, -.autocomplete > ul > li:focus a:hover, -.autocomplete > ul > li:hover a:hover { - text-decoration: none; -} -.autocomplete > ul > li.locked { - cursor: inherit; -} -.autocomplete.open { - display: block; - background-color: var(--color-autocomplete-background); - color: var(--color-autocomplete-font); - border: 1px solid var(--color-autocomplete-border); - max-height: 500px; - overflow-y: auto; - z-index: 100; -} -.autocomplete.open:empty { - display: none; -} -@media screen and (max-width: 50em) { - .autocomplete { - bottom: 0; - } - .autocomplete > ul > li { - border-bottom: 1px solid var(--color-result-top-border); - text-align: left; - } -} -#main_results #results.image-detail-open.only_template_images { - width: min(98%, 59.25rem) !important; -} -#main_results #results.only_template_images.image-detail-open #backToTop { - left: 56.75rem !important; - right: inherit; -} -article.result-images .detail { - display: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail { - display: flex; - flex-direction: column; - position: fixed; - left: 60rem; - right: 0; - top: 7.75rem; - transition: top 0.064s ease-in 0s; - bottom: 0; - background: var(--color-result-detail-background); - border: 1px solid var(--color-result-detail-background); - z-index: 10000; - padding: 4rem 3rem 3rem 3rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { - display: block; - flex: 1; - text-align: left; - width: 100%; - border: none; - text-decoration: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - padding: 0; - margin: 0; - border: none; - object-fit: contain; - width: inherit; - max-width: 100%; - min-height: inherit; - max-height: calc(100vh - 25rem - 7rem); - background: inherit; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels { - color: var(--color-result-detail-font); - max-height: 16rem; - min-height: 16rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels hr { - border-top: 1px solid var(--color-result-detail-hr); - border-bottom: none; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4 { - height: 2rem; - overflow: hidden; - text-overflow: ellipsis; - font-size: 0.9rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p { - color: var(--color-result-detail-label-font); - font-size: 0.9rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { - display: inline-block; - width: 12rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels h4, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a { - text-align: left; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content { - height: 2rem; - overflow: hidden; - text-overflow: ellipsis; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url { - white-space: nowrap; - overflow-x: hidden; - text-overflow: ellipsis; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-content:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p.result-url:hover { - position: relative; - overflow: inherit !important; - background: var(--color-result-detail-background); - text-overflow: inherit !important; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:active { - color: var(--color-result-detail-link); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels a:hover { - text-decoration: underline; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close { - top: 1rem; - left: 1rem; - padding: 0.4rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { - top: 1rem; - right: 6rem; - padding: 0.4rem 0.5rem 0.4rem 0.3rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { - top: 1rem; - right: 2rem; - padding: 0.4rem; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous { - border-radius: 50%; - display: block; - width: 1.5rem; - height: 1.5rem; - position: absolute; - filter: opacity(40%); - z-index: 2000002; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close span, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span { - display: block; - width: 1.5rem; - height: 1.5rem; - text-align: center; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next span::before, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous span::before { - vertical-align: sub; -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:active, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:active, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:visited, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:active { - color: var(--color-result-detail-font); - background: var(--color-result-detail-background); - border: 1px solid var(--color-result-detail-font); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-close:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-previous:hover, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:focus, -#results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next:hover { - filter: opacity(80%); -} -#results.image-detail-open article.result-images[data-vim-selected] .detail .loader { - position: absolute; - top: 1rem; - right: 50%; - border-top: 0.5em solid var(--color-result-detail-loader-border); - border-right: 0.5em solid var(--color-result-detail-loader-border); - border-bottom: 0.5em solid var(--color-result-detail-loader-border); - border-left: 0.5em solid var(--color-result-detail-loader-borderleft); -} -#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail { - top: 0; -} -#results.image-detail-open.scrolling article.result-images[data-vim-selected] .detail a.result-images-source img { - max-height: calc(100vh - 25rem); -} -@media screen and (max-width: 80em) { - #results.image-detail-open article.result-images[data-vim-selected] .detail { - top: 0; - left: 0; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source { - display: flex; - flex-direction: column; - justify-content: center; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - width: 100%; - max-height: calc(100vh - 24rem); - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-detail-next { - right: 1rem; - } -} -@media screen and (max-width: 50em) { - #results.image-detail-open article.result-images[data-vim-selected] .detail { - top: 0; - left: 0; - padding: 1rem; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail a.result-images-source img { - width: 100%; - max-height: calc(100vh - 20rem); - margin: 0; - } - #results.image-detail-open article.result-images[data-vim-selected] .detail .result-images-labels p span { - width: inherit; - margin-right: 1rem; - } -} -.dialog-modal { - animation-name: dialogmodal; - animation-duration: 0.13s; -} -@keyframes dialogmodal { - 0% { - opacity: 0; - } - 50% { - opacity: 0.5; - transform: translate(-50%, -50%) scale(1.05); - } -} -#main_index { - margin-top: 26vh; -} -#main_index #linkto_preferences { - right: 1.8rem; -} -.index { - text-align: center; -} -.index .title { - background: url('../img/searxng.png') no-repeat; - min-height: 4rem; - margin: 4rem auto; - background-position: center; - background-size: contain; -} -.index h1 { - font-size: 4em; - visibility: hidden; -} -.index #search, -.index #search_header { - margin: 0 auto; - background: inherit; - border: inherit; - padding: 0; - display: block; -} -.index .search_filters { - display: block; - margin: 1em 0; -} -.index .category label { - padding: 6px 10px; - border-bottom: initial !important; -} -@media screen and (max-width: 80em) { - div.title h1 { - font-size: 1em; - } - #main_index { - margin-top: 6em; - } -} -@media screen and (max-width: 50em) { - #main_index { - margin-top: 0; - } -} -#tab-contentquery table td, -#tab-contentquery table th { - text-align: left !important; - height: 3rem; -} -#main_preferences form { - width: 100%; -} -#main_preferences fieldset { - margin: 8px; - border: none; -} -#main_preferences legend { - margin: 0; - padding: 5px 0 0 0; - display: block; - float: left; - width: 300px; -} -#main_preferences .value { - margin: 0; - padding: 0; - float: left; - width: 15em; -} -#main_preferences .value select, -#main_preferences .value input[type="text"] { - font-size: inherit !important; - margin: 0 1rem 0 0; -} -#main_preferences .value select { - width: 14rem; -} -#main_preferences .value input[type="text"] { - width: 13.25rem; - color: var(--color-toolkit-input-text-font); - border: none; - background: none repeat scroll 0 0 var(--color-toolkit-select-background); - padding: 0.2rem 0.4rem; - height: 2rem; - border-radius: 5px; -} -#main_preferences .value input[type="text"]:hover, -#main_preferences .value input[type="text"]:focus { - background-color: var(--color-toolkit-select-background-hover); -} -#main_preferences .value select:focus, -#main_preferences .value input:focus { - outline: none; - box-shadow: 0 0 1px 1px var(--color-btn-background); -} -#main_preferences .description { - margin: 0; - padding: 5px 0 0 0; - float: left; - width: 50%; - color: var(--color-settings-engine-description-font); - font-size: 90%; -} -#main_preferences table { - border-collapse: collapse; -} -#main_preferences table td { - text-align: center; -} -#main_preferences table.cookies { - width: 100%; -} -#main_preferences table.cookies th, -#main_preferences table.cookies td { - text-align: left; - font-family: monospace; - font-size: 1rem; - padding: 0.5em; - vertical-align: top; -} -#main_preferences table.cookies td:first-child { - word-break: keep-all; - width: 14rem; - padding-right: 1rem; -} -#main_preferences table.cookies td:last-child { - word-break: break-all; -} -#main_preferences table.cookies > tbody > tr:nth-child(even) > th, -#main_preferences table.cookies > tbody > tr:nth-child(even) > td { - background-color: var(--color-settings-tr-hover); -} -#main_preferences .category { - margin-right: 0.5rem; -} -#main_preferences .category label { - border: 2px solid transparent; - padding: 0.2rem 0.4rem; - border-radius: 5px; -} -#main_preferences .category input[type="checkbox"]:checked + label { - border: 2px solid var(--color-categories-item-border-selected); -} -#main_preferences .name, -#main_preferences .shortcut { - text-align: left; -} -#main_preferences .preferences_back { - background: none repeat scroll 0 0 var(--color-btn-background); - color: var(--color-btn-font); - border: 0 none; - border-radius: 10px; - cursor: pointer; - display: inline-block; - margin: 2px 4px; - padding: 0.7em; -} -#main_preferences .preferences_back a { - color: var(--color-settings-return-font); -} -#main_preferences .preferences_back a::first-letter { - text-transform: uppercase; -} -#main_preferences div.selectable_url pre { - width: 100%; -} -#main_preferences th.name .engine-tooltip { - margin-top: 1.8rem; - left: calc((100% - 85em) / 2 + 10em); - max-width: 40rem; -} -#main_preferences th.name .engine-tooltip .engine-description { - margin-top: 0.5rem; -} -@media screen and (max-width: 80em) { - .preferences_back { - clear: both; - } - .engine-tooltip { - left: 10em !important; - } -} -/* -* SearXNG, A privacy-respecting, hackable metasearch engine -*/ -#search { - padding: 0; - margin: 0; -} -#search_header { - padding: 1.5em 2em 0 7rem; - margin: 0; - background: var(--color-header-background); - border-bottom: 1px solid var(--color-header-border); - display: grid; - column-gap: 1.2rem; - row-gap: 1rem; - grid-template-columns: 3rem 1fr; - grid-template-areas: "logo search" "spacer categories"; -} -.category { - display: inline-block; - position: relative; - margin-right: 1rem; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.2rem 0; - display: inline-flex; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.category label svg { - padding-right: 0.2rem; -} -.category label div.category_name { - margin: auto 0; -} -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); -} -#search_logo { - grid-area: logo; - display: flex; - align-items: center; - justify-content: center; -} -#search_logo svg { - flex: 1; - width: 30px; - height: 30px; - margin: 0.5rem 0 auto 0; -} -.search_categories { - grid-area: categories; -} -.search_box { - margin: 0; - padding: 0; - grid-area: search; - display: inline-flex; - flex-direction: row; - white-space: nowrap; -} -#clear_search { - display: block; - border-collapse: separate; - box-sizing: border-box; - width: 1.8em; - margin: 0; - padding: 8px 2px; - background: none repeat scroll 0 0 var(--color-search-background); - border-top: 1px solid var(--color-search-border); - border-bottom: 1px solid var(--color-search-border); - border-right: none; - border-left: none; - border-radius: 0; - outline: none; - color: var(--color-search-font); - font-size: 16px; - z-index: 10000; -} -#clear_search:hover { - color: var(--color-search-background-hover); -} -#clear_search.empty * { - display: none; -} -#q, -#send_search { - display: block !important; - border-collapse: separate; - box-sizing: border-box; - margin: 0; - padding: 10px; - background: none repeat scroll 0 0 var(--color-search-background); - border: 1px solid var(--color-search-border); - border-radius: 0; - outline: none; - color: var(--color-search-font); - font-size: 16px; - z-index: 2; -} -#q { - outline: medium none; - padding-left: 12px; - padding-right: 0 !important; - border-right: none; - width: 40rem; - border-radius: 10px 0 0 10px; -} -#q::-ms-clear, -#q::-webkit-search-cancel-button { - display: none; -} -#send_search { - border-left: none; - border-radius: 0 10px 10px 0; -} -#send_search:hover { - cursor: pointer; - background-color: var(--color-search-background-hover); - color: var(--color-search-background); -} -.no-js #clear_search, -.no-js #send_search { - width: auto !important; - border-left: 1px solid var(--color-search-border); - padding: 10px; -} -.search_filters { - margin: 0.6rem 0 0 10.6rem; -} -.search_filters select { - background-color: inherit; -} -.search_filters select:hover, -.search_filters select:focus { - color: var(--color-base-font); -} -@media screen and (max-width: 80em) { - #search_header { - padding: 1.5em 0.5rem 0 0.5rem; - column-gap: 0.5rem; - } - .search_filters { - margin: 0.6rem 0 0 3.5rem; - } - #categories { - font-size: 90%; - clear: both; - } - #categories .checkbox_container { - margin: auto; - margin-top: 2px; - } - html.touch #main_index #categories_container, - html.touch #main_results #categories_container { - width: 1000px; - width: -moz-max-content; - width: -webkit-max-content; - width: max-content; - } - html.touch #main_index #categories_container .category, - html.touch #main_results #categories_container .category { - display: inline-block; - width: auto; - } - html.touch #main_index #categories, - html.touch #main_results #categories { - width: 100%; - text-align: left; - overflow-x: scroll; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - } -} -@media screen and (max-width: 50em) { - #search_header { - width: 100%; - margin: 0; - padding: 0.1rem 0 0 0; - column-gap: 0; - row-gap: 0; - grid-template-areas: "logo search" "categories categories"; - } - .search_logo { - padding: 0; - } - .search_box { - width: 99%; - display: flex; - flex-direction: row; - } - #q { - width: 100%; - flex: 1; - } - #main_results #q:placeholder-shown ~ #send_search { - margin-right: 2.6rem; - transition: margin-right 0.1s; - } - .search_filters { - margin: 0; - } - .language, - .time_range { - width: 45%; - } - .category { - display: block; - width: 100%; - margin: 0; - } - .category label { - padding: 0.8rem !important; - margin: 0 !important; - } - .category label svg { - display: none; - } -} -@media screen and (max-width: 20rem) { - #search_header { - grid-template-areas: "search search" "categories categories"; - } - #search_logo { - display: none; - } -} -#categories { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -#categories::-webkit-scrollbar { - width: 0; - height: 0; -} -#categories_container { - position: relative; -} -.ion-icon { - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -.ion-icon-small { - width: 1rem; - height: 1rem; - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -.ion-icon-big { - width: 1.5rem; - height: 1.5rem; - display: inline-block; - vertical-align: bottom; - line-height: 1; - text-decoration: inherit; -} -html { - font-family: sans-serif; - font-size: 0.9em; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -moz-text-size-adjust: 100%; - text-size-adjust: 100%; - color: var(--color-base-font); - background-color: var(--color-base-background); - padding: 0; - margin: 0; -} -body, -main { - padding: 0; - margin: 0; -} -body { - display: flex; - flex-direction: column; - height: 100vh; - margin: 0; -} -main { - width: 100%; - margin-bottom: 2rem; - flex: 1; -} -#main_preferences, -#main_about, -#main_stats { - margin: 2em auto; - width: 85em; -} -footer { - clear: both; - min-height: 4rem; - padding: 1rem 0; - width: 100%; - text-align: center; - background-color: var(--color-footer-background); - border-top: 1px solid var(--color-footer-border); - overflow: hidden; -} -footer p { - font-size: 0.9em; -} -#main_preferences h1, -#main_stats h1 { - background: url('../img/searxng.png') no-repeat; - background-size: contain; - min-height: 40px; - margin: 0 auto; -} -#main_preferences h1 span, -#main_stats h1 span { - visibility: hidden; -} -input[type="submit"], -#results button[type="submit"] { - padding: 0.7rem; - display: inline-block; - background: var(--color-btn-background); - color: var(--color-btn-font); - border-radius: 10px; - border: 0; - cursor: pointer; -} -a { - text-decoration: none; - color: var(--color-url-font); -} -a:visited { - color: var(--color-url-visited-font); -} -a:visited .highlight { - color: var(--color-url-visited-font); -} -article[data-vim-selected] { - background: var(--color-result-vim-selected); - border-left: 0.2rem solid var(--color-result-vim-arrow); - border-radius: 0 10px 10px 0; -} -article.result-images[data-vim-selected] { - background: var(--color-result-vim-arrow); - border: none; - border-radius: 10px; -} -article.result-images[data-vim-selected] .image_thumbnail { - filter: opacity(60%); -} -article[data-vim-selected].category-videos, -article[data-vim-selected].category-news, -article[data-vim-selected].category-map, -article[data-vim-selected].category-music, -article[data-vim-selected].category-files, -article[data-vim-selected].category-social { - border: 1px solid var(--color-result-vim-arrow); - border-radius: 10px; -} -.result { - margin: 0.125rem 0; - padding: 1rem; - border-left: 0.2rem solid transparent; -} -.result h3 { - font-size: 1.2rem; - word-wrap: break-word; - margin: 0.4rem 0 0.4rem 0; - padding: 0; -} -.result h3 a { - color: var(--color-result-link-font); - font-weight: normal; - font-size: 1.1em; -} -.result h3 a:visited { - color: var(--color-result-link-visited-font); -} -.result h3 a:focus, -.result h3 a:hover { - text-decoration: underline; - border: none; - outline: none; -} -.result .cache_link, -.result .proxyfied_link { - font-size: 0.9em !important; -} -.result .content, -.result .stat, -.result .altlink { - font-size: 0.9em; - margin: 0; - padding: 0; - max-width: 54em; - word-wrap: break-word; - line-height: 1.24; -} -.result .content .highlight, -.result .stat .highlight, -.result .altlink .highlight { - color: var(--color-result-description-highlight-font); - background: inherit; - font-weight: bold; -} -.result .codelines .highlight { - color: inherit; - background: inherit; - font-weight: normal; -} -.result .url_wrapper { - display: flex; - font-size: 1rem; - color: var(--color-result-url-font); - flex-wrap: nowrap; - overflow: hidden; - flex-direction: row; - margin: 0; - padding: 0; -} -.result .url_wrapper .url_o1 { - white-space: nowrap; - flex-shrink: 1; -} -.result .url_wrapper .url_o1::after { - content: " "; - width: 1ch; - display: inline-block; -} -.result .url_wrapper .url_o2 { - overflow: hidden; - white-space: nowrap; - flex-basis: content; - flex-grow: 0; - flex-shrink: 1; - text-align: right; -} -.result .url_wrapper .url_o2 .url_i2 { - float: right; -} -.result .published_date { - font-size: 0.8em; - color: var(--color-result-publishdate-font); -} -.result img.thumbnail { - float: left; - padding: 0.6rem 1rem 0 0; - width: 20rem; -} -.result img.image { - float: left; - padding: 0.6rem 1rem 0 0; - width: 7rem; - max-height: 7rem; - object-fit: scale-down; - object-position: right top; -} -.result .break { - clear: both; -} -.category-videos, -.category-news, -.category-map, -.category-music, -.category-files, -.category-social { - border: 1px solid var(--color-result-border); - margin: 1rem 0; - border-radius: 10px; -} -.category-social .image { - width: auto !important; - min-width: 48px; - min-height: 48px; - padding: 0 5px 25px 0 !important; -} -.result-videos .content { - overflow: hidden; -} -.engines { - float: right; - color: var(--color-result-engines-font); -} -.engines span { - font-size: smaller; - margin: 0 0.5em 0 0; -} -.small_font { - font-size: 0.8em; -} -.highlight { - color: var(--color-result-link-font-highlight); - background: inherit; -} -.empty_element { - font-style: italic; -} -.result-images { - display: inline-block; - margin: 0; - padding: 0; - position: relative; - max-height: 200px; - border: none !important; -} -.result-images img { - float: inherit; - margin: 0.125rem; - padding: 0; - border: none; - max-height: 200px; - background: var(--color-result-image-background); -} -.result-images span.title { - display: none; - color: var(--color-result-image-span-font); -} -.result-images:hover span.title { - display: block; - position: absolute; - bottom: 0; - right: 0; - padding: 4px; - margin: 0 0 4px 4px; - background-color: var(--color-result-image-span-background-hover); - font-size: 0.7em; -} -.result-map img.image { - float: right !important; - height: 100px !important; - width: auto !important; -} -.result-map table { - font-size: 0.9em; - width: auto; - border-collapse: separate; - border-spacing: 0 0.35rem; -} -.result-map table th { - font-weight: inherit; - width: 17rem; - vertical-align: top; - text-align: left; -} -.result-map table td { - vertical-align: top; - text-align: left; -} -.hidden { - display: none !important; -} -#results { - margin: 1rem 2rem 0 10rem; - display: grid; - grid-template-columns: 45rem 25rem; - grid-template-rows: min-content min-content 1fr min-content; - gap: 0 5rem; - grid-template-areas: "corrections sidebar" "answers sidebar" "urls sidebar" "pagination sidebar"; -} -#results #sidebar *:first-child, -#results #urls *:first-child { - margin-top: 0; -} -#urls { - padding: 0; - grid-area: urls; -} -#suggestions .wrapper { - display: flex; - flex-flow: row wrap; - justify-content: flex-end; -} -#suggestions .wrapper form { - display: inline-block; - flex: 1 1 50%; -} -#suggestions input, -#infoboxes input { - padding: 0; - margin: 3px; - font-size: 0.9em; - display: inline-block; - background: transparent; - color: var(--color-result-search-url-font); - cursor: pointer; -} -#suggestions input[type="submit"], -#infoboxes input[type="submit"], -#suggestions .infobox .url a, -#infoboxes .infobox .url a { - color: var(--color-result-link-font); - text-decoration: none; - font-size: 0.9rem; -} -#suggestions input[type="submit"]:hover, -#infoboxes input[type="submit"]:hover, -#suggestions .infobox .url a:hover, -#infoboxes .infobox .url a:hover { - text-decoration: underline; -} -#corrections { - grid-area: corrections; - display: flex; - flex-flow: row wrap; - margin: 0 0 1em 0; -} -#corrections h4, -#corrections input[type="submit"] { - display: inline-block; - padding: 0.5rem; - margin: 0.5rem; -} -#corrections input[type="submit"] { - font-size: 0.8rem; - border-radius: 5px; -} -#suggestions .title, -#search_url .title, -#apis .title { - margin: 2em 0 0.5em 0; - color: var(--color-base-font); -} -#answers { - grid-area: answers; - border: 1px solid var(--color-answer-border); - background: var(--color-answer-background); - padding: 1rem; - margin: 1rem 0; - margin-top: 0; - color: var(--color-answer-font); - border-radius: 10px; -} -#answers h4 { - display: none; -} -#infoboxes form { - min-width: 210px; -} -#sidebar { - grid-area: sidebar; - word-wrap: break-word; - color: var(--color-sidebar-font); -} -#sidebar .infobox { - margin: 10px 0 10px; - border: 1px solid var(--color-sidebar-border); - padding: 1rem; - font-size: 0.9em; - border-radius: 10px; -} -#sidebar .infobox h2 { - margin: 0 0 0.5em 0; -} -#sidebar .infobox img { - max-width: 100%; - max-height: 12em; - display: block; - margin: 0 auto; - padding: 0; -} -#sidebar .infobox dl { - margin: 0.5em 0; -} -#sidebar .infobox dt { - display: inline; - margin: 0.5em 0.25em 0.5em 0; - padding: 0; - font-weight: bold; -} -#sidebar .infobox dd { - display: inline; - margin: 0.5em 0; - padding: 0; -} -#sidebar .infobox input { - font-size: 1em; -} -#sidebar .infobox br { - clear: both; -} -#sidebar .infobox .attributes, -#sidebar .infobox .urls { - clear: both; -} -#search_url { - margin-top: 8px; -} -#search_url div.selectable_url pre { - width: 200em; -} -#linkto_preferences { - position: absolute; - right: 10px; - top: 2.2rem; - padding: 0; - border: 0; - display: block; - font-size: 1.2em; - color: var(--color-search-font); -} -#linkto_preferences a:link *, -#linkto_preferences a:hover *, -#linkto_preferences a:visited *, -#linkto_preferences a:active * { - color: var(--color-search-font); -} -#pagination { - grid-area: pagination; -} -#pagination br { - clear: both; -} -#apis { - margin-top: 8px; - clear: both; -} -#backToTop { - border: 1px solid var(--color-backtotop-border); - margin: 0; - padding: 0; - font-size: 1em; - background: var(--color-backtotop-background); - position: fixed; - bottom: 8rem; - left: 56.3rem; - transition: opacity 0.5s; - opacity: 0; - border-radius: 10px; -} -#backToTop a { - display: block; - margin: 0; - padding: 0.7em; -} -#backToTop a, -#backToTop a:visited, -#backToTop a:hover, -#backToTop a:active { - color: var(--color-backtotop-font); -} -#results.scrolling #backToTop { - opacity: 1; -} -@media screen and (max-width: 80em) { - #main_preferences, - #main_about, - #main_stats { - margin: 2rem 0.5rem; - width: auto; - } - #infoboxes { - position: inherit; - max-width: inherit; - } - #infoboxes .infobox { - clear: both; - } - #infoboxes .infobox img { - float: left; - max-width: 10em; - margin: 0.5em 0.5em 0.5em 0; - } - #sidebar { - margin-bottom: 0.125rem; - padding: 0; - float: none; - border: none; - width: auto; - } - #sidebar input { - border: 0; - } - #apis { - display: none; - } - #search_url { - display: none; - } - .result .thumbnail { - max-width: 98%; - } - .result .url span.url { - display: block; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; - width: 100%; - } - .result .engines { - float: right; - padding: 0 0 3px 0; - } - .result-images { - border-bottom: none !important; - } - .image_result { - max-width: 98%; - } - .image_result img { - max-width: 98%; - } - #backToTop { - display: none; - } - #pagination { - margin: 2rem 0 0 0 !important; - } - #main_results div#results { - margin: 1rem auto 0 auto; - justify-content: center; - display: grid; - grid-template-columns: 45rem; - grid-template-rows: min-content min-content min-content 1fr min-content min-content; - gap: 0; - grid-template-areas: "corrections" "answers" "sidebar" "urls" "pagination"; - } -} -#main_results div#results.only_template_images { - margin: 1rem 0.5rem 0 0.5rem; - display: grid; - grid-template-columns: 100%; - grid-template-rows: min-content min-content 1fr min-content min-content; - gap: 0; - grid-template-areas: "corrections" "urls" "answers" "sidebar" "pagination"; -} -#main_results div#results.only_template_images #urls { - width: inherit; - margin: 0; -} -#main_results div#results.only_template_images #backToTop { - left: auto; - right: 1rem; -} -#main_results div#results.only_template_images #pagination { - margin-right: 4rem; -} -@media screen and (max-width: 50em) { - #main_results div#results { - grid-template-columns: 100%; - margin: 2rem 0.5rem 0 0.5rem; - } - #linkto_preferences { - top: 0.8rem; - right: 0.7rem; - } - #main_index #linkto_preferences { - top: 0.5rem; - right: 0.5rem; - } - #results { - margin: 0; - padding: 0; - } - #pagination { - margin: 2rem 1rem 0 1rem !important; - } - article[data-vim-selected] { - border: 1px solid var(--color-result-vim-arrow); - border-radius: 10px; - } - .result { - border: 1px solid var(--color-result-border); - margin: 1rem 0; - border-radius: 10px; - } - .result-images { - margin: 0; - padding: 0; - border: none; - } -} -@media screen and (max-width: 35em) { - .result-videos img.thumbnail { - float: none !important; - } - .result-videos .content { - overflow: inherit; - } -} -pre code { - white-space: pre-wrap; -} diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js index 762ba1087..ca59cb562 100644 --- a/searx/static/themes/simple/gruntfile.js +++ b/searx/static/themes/simple/gruntfile.js @@ -16,10 +16,8 @@ module.exports = function(grunt) { tasks: [ 'eslint', 'copy', - 'concat', 'uglify', - 'less:development', - 'less:production', + 'less', 'image', 'svg2png', 'svg2jinja' @@ -81,21 +79,6 @@ module.exports = function(grunt) { ] }, }, - concat: { - head_and_body: { - options: { - separator: ';' - }, - files: { - 'js/searxng.head.js': ['src/js/head/*.js'], - 'js/searxng.js': [ - 'src/js/main/*.js', - '../__common__/js/*.js', - './node_modules/autocomplete-js/dist/autocomplete.js' - ] - } - } - }, uglify: { options: { output: { @@ -105,25 +88,22 @@ module.exports = function(grunt) { warnings: true, compress: false, mangle: true, - sourceMap: true + sourceMap: { + includeSources: true + } }, dist: { files: { - 'js/searxng.head.min.js': ['js/searxng.head.js'], - 'js/searxng.min.js': ['js/searxng.js'] + 'js/searxng.head.min.js': ['src/js/head/*.js'], + 'js/searxng.min.js': [ + 'src/js/main/*.js', + '../__common__/js/*.js', + './node_modules/autocomplete-js/dist/autocomplete.js' + ] } } }, less: { - development: { - options: { - paths: ["less"], - }, - files: { - "css/searxng.css": "src/less/style.less", - "css/searxng-rtl.css": "src/less/style-rtl.less" - } - }, production: { options: { paths: ["less"], @@ -288,7 +268,6 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-image'); grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-less'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-stylelint'); @@ -300,10 +279,8 @@ module.exports = function(grunt) { 'eslint', 'stylelint', 'copy', - 'concat', 'uglify', - 'less:development', - 'less:production', + 'less', 'image', 'svg2png', 'svg2jinja', diff --git a/searx/static/themes/simple/js/searxng.head.js b/searx/static/themes/simple/js/searxng.head.js deleted file mode 100644 index dab0e368a..000000000 --- a/searx/static/themes/simple/js/searxng.head.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * @license - * (C) Copyright Contributors to the SearXNG project. - * (C) Copyright Contributors to the searx project (2014 - 2021). - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -/* global DocumentTouch:readonly */ -(function(w, d) { - 'use strict'; - - // add data- properties - var script = d.currentScript || (function() { - var scripts = d.getElementsByTagName('script'); - return scripts[scripts.length - 1]; - })(); - - // try to detect touch screen - w.searxng = { - touch: (("ontouchstart" in w) || w.DocumentTouch && document instanceof DocumentTouch) || false, - method: script.getAttribute('data-method'), - autocompleter: script.getAttribute('data-autocompleter') === 'true', - search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true', - infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true', - hotkeys: script.getAttribute('data-hotkeys') === 'true', - static_path: script.getAttribute('data-static-path'), - translations: JSON.parse(script.getAttribute('data-translations')), - theme : { - // image that is displayed if load of <img src='...'> failed - img_load_error: 'img/img_load_error.svg' - } - }; - - // update the css - var hmtlElement = d.getElementsByTagName("html")[0]; - hmtlElement.classList.remove('no-js'); - hmtlElement.classList.add('js'); - if (w.searxng.touch) { - hmtlElement.classList.add('touch'); - } -})(window, document);
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.head.min.js.map b/searx/static/themes/simple/js/searxng.head.min.js.map index 92faff1d6..4869cc1dd 100644 --- a/searx/static/themes/simple/js/searxng.head.min.js.map +++ b/searx/static/themes/simple/js/searxng.head.min.js.map @@ -1 +1 @@ -{"version":3,"file":"searxng.head.min.js","sources":["searxng.head.js"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","hotkeys","static_path","translations","JSON","parse","theme","img_load_error","hmtlElement","classList","remove","add","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,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,QAASd,EAAOU,aAAa,kBAAoB,OACjDK,YAAaf,EAAOU,aAAa,oBACjCM,aAAcC,KAAKC,MAAMlB,EAAOU,aAAa,sBAC7CS,MAAQ,CAEJC,eAAgB,2BAKxB,IAAIC,EAActB,EAAEI,qBAAqB,QAAQ,GACjDkB,EAAYC,UAAUC,OAAO,SAC7BF,EAAYC,UAAUE,IAAI,MAC1B,GAAI1B,EAAEO,QAAQC,MAAO,CACjBe,EAAYC,UAAUE,IAAI,WA9BlC,CAgCGC,OAAQjB"}
\ No newline at end of file +{"version":3,"file":"searxng.head.min.js","sources":["../src/js/head/00_init.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/* global DocumentTouch:readonly */\n(function(w, d) {\n 'use strict';\n\n // add data- properties\n var script = d.currentScript || (function() {\n var scripts = d.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n })();\n\n // try to detect touch screen\n w.searxng = {\n touch: ((\"ontouchstart\" in w) || w.DocumentTouch && document instanceof DocumentTouch) || false,\n method: script.getAttribute('data-method'),\n autocompleter: script.getAttribute('data-autocompleter') === 'true',\n search_on_category_select: script.getAttribute('data-search-on-category-select') === 'true',\n infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',\n hotkeys: script.getAttribute('data-hotkeys') === 'true',\n static_path: script.getAttribute('data-static-path'),\n translations: JSON.parse(script.getAttribute('data-translations')),\n theme : {\n // image that is displayed if load of <img src='...'> failed\n img_load_error: 'img/img_load_error.svg'\n }\n };\n\n // update the css\n var hmtlElement = d.getElementsByTagName(\"html\")[0];\n hmtlElement.classList.remove('no-js');\n hmtlElement.classList.add('js');\n if (w.searxng.touch) {\n hmtlElement.classList.add('touch');\n }\n})(window, document);"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","touch","DocumentTouch","document","method","getAttribute","autocompleter","search_on_category_select","infinite_scroll","hotkeys","static_path","translations","JSON","parse","theme","img_load_error","hmtlElement","classList","remove","add","window"],"mappings":";;;;;;CAOA,SAAUA,EAAGC,gBAIT,IAAIC,EAASD,EAAEE,eAAkB,WAC7B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFH,GAMjCN,EAAEO,QAAU,CACRC,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,QAASd,EAAOU,aAAa,kBAAoB,OACjDK,YAAaf,EAAOU,aAAa,oBACjCM,aAAcC,KAAKC,MAAMlB,EAAOU,aAAa,sBAC7CS,MAAQ,CAEJC,eAAgB,2BAKxB,IAAIC,EAActB,EAAEI,qBAAqB,QAAQ,GACjDkB,EAAYC,UAAUC,OAAO,SAC7BF,EAAYC,UAAUE,IAAI,MAC1B,GAAI1B,EAAEO,QAAQC,MAAO,CACjBe,EAAYC,UAAUE,IAAI,WA9BlC,CAgCGC,OAAQjB"}
\ No newline at end of file diff --git a/searx/static/themes/simple/js/searxng.js b/searx/static/themes/simple/js/searxng.js deleted file mode 100644 index c84227541..000000000 --- a/searx/static/themes/simple/js/searxng.js +++ /dev/null @@ -1,1598 +0,0 @@ -/** - * @license - * (C) Copyright Contributors to the SearXNG project. - * (C) Copyright Contributors to the searx project (2014 - 2021). - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -window.searxng = (function(w, d) { - - 'use strict'; - - // not invented here tookit with bugs fixed elsewhere - // purposes : be just good enough and as small as possible - - // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/ - if (w.Element) { - (function(ElementPrototype) { - ElementPrototype.matches = ElementPrototype.matches || - ElementPrototype.matchesSelector || - ElementPrototype.webkitMatchesSelector || - ElementPrototype.msMatchesSelector || - function(selector) { - var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1; - while (nodes[++i] && nodes[i] != node); - return !!nodes[i]; - }; - })(Element.prototype); - } - - function callbackSafe(callback, el, e) { - try { - callback.call(el, e); - } catch (exception) { - console.log(exception); - } - } - - var searxng = window.searxng || {}; - - searxng.on = function(obj, eventType, callback, useCapture) { - useCapture = useCapture || false; - if (typeof obj !== 'string') { - // obj HTMLElement, HTMLDocument - obj.addEventListener(eventType, callback, useCapture); - } else { - // obj is a selector - d.addEventListener(eventType, function(e) { - var el = e.target || e.srcElement, found = false; - while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement; - if (found) callbackSafe(callback, el, e); - }, useCapture); - } - }; - - searxng.ready = function(callback) { - if (document.readyState != 'loading') { - callback.call(w); - } else { - w.addEventListener('DOMContentLoaded', callback.bind(w)); - } - }; - - searxng.http = function(method, url) { - var req = new XMLHttpRequest(), - resolve = function() {}, - reject = function() {}, - promise = { - then: function(callback) { resolve = callback; return promise; }, - catch: function(callback) { reject = callback; return promise; } - }; - - try { - req.open(method, url, true); - - // On load - req.onload = function() { - if (req.status == 200) { - resolve(req.response, req.responseType); - } else { - reject(Error(req.statusText)); - } - }; - - // Handle network errors - req.onerror = function() { - reject(Error("Network Error")); - }; - - req.onabort = function() { - reject(Error("Transaction is aborted")); - }; - - // Make the request - req.send(); - } catch (ex) { - reject(ex); - } - - return promise; - }; - - searxng.loadStyle = function(src) { - var path = searxng.static_path + src, - id = "style_" + src.replace('.', '_'), - s = d.getElementById(id); - if (s === null) { - s = d.createElement('link'); - s.setAttribute('id', id); - s.setAttribute('rel', 'stylesheet'); - s.setAttribute('type', 'text/css'); - s.setAttribute('href', path); - d.body.appendChild(s); - } - }; - - searxng.loadScript = function(src, callback) { - var path = searxng.static_path + src, - id = "script_" + src.replace('.', '_'), - s = d.getElementById(id); - if (s === null) { - s = d.createElement('script'); - s.setAttribute('id', id); - s.setAttribute('src', path); - s.onload = callback; - s.onerror = function() { - s.setAttribute('error', '1'); - }; - d.body.appendChild(s); - } else if (!s.hasAttribute('error')) { - try { - callback.apply(s, []); - } catch (exception) { - console.log(exception); - } - } else { - console.log("callback not executed : script '" + path + "' not loaded."); - } - }; - - searxng.insertBefore = function (newNode, referenceNode) { - referenceNode.parentNode.insertBefore(newNode, referenceNode); - }; - - searxng.insertAfter = function(newNode, referenceNode) { - referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling); - }; - - searxng.on('.close', 'click', function() { - this.parentNode.classList.add('invisible'); - }); - - return searxng; -})(window, document); -;/* SPDX-License-Identifier: AGPL-3.0-or-later */ -/*global searxng*/ - -searxng.ready(function() { - - function isElementInDetail(el) { - while (el !== undefined) { - if (el.classList.contains('detail')) { - return true; - } - if (el.classList.contains('result')) { - // we found a result, no need to go to the root of the document: - // el is not inside a <div class="detail"> element - return false; - } - el = el.parentNode; - } - return false; - } - - function getResultElement(el) { - while (el !== undefined) { - if (el.classList.contains('result')) { - return el; - } - el = el.parentNode; - } - return undefined; - } - - function isImageResult(resultElement) { - return resultElement && resultElement.classList.contains('result-images'); - } - - searxng.on('.result', 'click', function(e) { - if (!isElementInDetail(e.target)) { - highlightResult(this)(true); - let resultElement = getResultElement(e.target); - if (isImageResult(resultElement)) { - e.preventDefault(); - searxng.selectImage(resultElement); - } - } - }); - - searxng.on('.result a', 'focus', function(e) { - if (!isElementInDetail(e.target)) { - let resultElement = getResultElement(e.target); - if (resultElement && resultElement.getAttribute("data-vim-selected") === null) { - highlightResult(resultElement)(true); - } - if (isImageResult(resultElement)) { - searxng.selectImage(resultElement); - } - } - }, true); - - var vimKeys = { - 27: { - key: 'Escape', - fun: removeFocus, - des: 'remove focus from the focused input', - cat: 'Control' - }, - 73: { - key: 'i', - fun: searchInputFocus, - des: 'focus on the search input', - cat: 'Control' - }, - 66: { - key: 'b', - fun: scrollPage(-window.innerHeight), - des: 'scroll one page up', - cat: 'Navigation' - }, - 70: { - key: 'f', - fun: scrollPage(window.innerHeight), - des: 'scroll one page down', - cat: 'Navigation' - }, - 85: { - key: 'u', - fun: scrollPage(-window.innerHeight / 2), - des: 'scroll half a page up', - cat: 'Navigation' - }, - 68: { - key: 'd', - fun: scrollPage(window.innerHeight / 2), - des: 'scroll half a page down', - cat: 'Navigation' - }, - 71: { - key: 'g', - fun: scrollPageTo(-document.body.scrollHeight, 'top'), - des: 'scroll to the top of the page', - cat: 'Navigation' - }, - 86: { - key: 'v', - fun: scrollPageTo(document.body.scrollHeight, 'bottom'), - des: 'scroll to the bottom of the page', - cat: 'Navigation' - }, - 75: { - key: 'k', - fun: highlightResult('up'), - des: 'select previous search result', - cat: 'Results' - }, - 74: { - key: 'j', - fun: highlightResult('down'), - des: 'select next search result', - cat: 'Results' - }, - 80: { - key: 'p', - fun: GoToPreviousPage(), - des: 'go to previous page', - cat: 'Results' - }, - 78: { - key: 'n', - fun: GoToNextPage(), - des: 'go to next page', - cat: 'Results' - }, - 79: { - key: 'o', - fun: openResult(false), - des: 'open search result', - cat: 'Results' - }, - 84: { - key: 't', - fun: openResult(true), - des: 'open the result in a new tab', - cat: 'Results' - }, - 82: { - key: 'r', - fun: reloadPage, - des: 'reload page from the server', - cat: 'Control' - }, - 72: { - key: 'h', - fun: toggleHelp, - des: 'toggle help window', - cat: 'Other' - } - }; - - if (searxng.hotkeys) { - searxng.on(document, "keydown", function(e) { - // check for modifiers so we don't break browser's hotkeys - 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) { - vimKeys[e.keyCode].fun(e); - } else { - if (e.target === document.body || tagName === 'a' || tagName === 'button') { - e.preventDefault(); - vimKeys[e.keyCode].fun(); - } - } - } - }); - } - - function highlightResult(which) { - return function(noScroll) { - var current = document.querySelector('.result[data-vim-selected]'), - effectiveWhich = which; - if (current === null) { - // no selection : choose the first one - current = document.querySelector('.result'); - if (current === null) { - // no first one : there are no results - return; - } - // replace up/down actions by selecting first one - if (which === "down" || which === "up") { - effectiveWhich = current; - } - } - - var next, results = document.querySelectorAll('.result'); - - if (typeof effectiveWhich !== 'string') { - next = effectiveWhich; - } else { - switch (effectiveWhich) { - case 'visible': - var top = document.documentElement.scrollTop || document.body.scrollTop; - var bot = top + document.documentElement.clientHeight; - - for (var i = 0; i < results.length; i++) { - next = results[i]; - var etop = next.offsetTop; - var ebot = etop + next.clientHeight; - - if ((ebot <= bot) && (etop > top)) { - break; - } - } - break; - case 'down': - next = current.nextElementSibling; - if (next === null) { - next = results[0]; - } - break; - case 'up': - next = current.previousElementSibling; - if (next === null) { - next = results[results.length - 1]; - } - break; - case 'bottom': - next = results[results.length - 1]; - break; - case 'top': - /* falls through */ - default: - next = results[0]; - } - } - - if (next) { - current.removeAttribute('data-vim-selected'); - next.setAttribute('data-vim-selected', 'true'); - var link = next.querySelector('h3 a') || next.querySelector('a'); - if (link !== null) { - link.focus(); - } - if (!noScroll) { - scrollPageToSelected(); - } - } - }; - } - - function reloadPage() { - document.location.reload(true); - } - - function removeFocus(e) { - const tagName = e.target.tagName.toLowerCase(); - if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) { - document.activeElement.blur(); - } else { - searxng.closeDetail(); - } - } - - function pageButtonClick(css_selector) { - return function() { - 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) { - return; - } - var wtop = document.documentElement.scrollTop || document.body.scrollTop, - wheight = document.documentElement.clientHeight, - etop = sel.offsetTop, - ebot = etop + sel.clientHeight, - offset = 120; - // first element ? - if ((sel.previousElementSibling === null) && (ebot < wheight)) { - // set to the top of page if the first element - // is fully included in the viewport - window.scroll(window.scrollX, 0); - return; - } - if (wtop > (etop - offset)) { - window.scroll(window.scrollX, etop - offset); - } else { - var wbot = wtop + wheight; - if (wbot < (ebot + offset)) { - window.scroll(window.scrollX, ebot - wheight + offset); - } - } - } - - function scrollPage(amount) { - return function() { - window.scrollBy(0, amount); - highlightResult('visible')(); - }; - } - - function scrollPageTo(position, nav) { - return function() { - window.scrollTo(0, position); - highlightResult(nav)(); - }; - } - - function searchInputFocus() { - window.scrollTo(0, 0); - document.querySelector('#q').focus(); - } - - 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) { - window.open(url); - } else { - window.location.href = url; - } - } - }; - } - - function initHelpContent(divElement) { - var categories = {}; - - for (var k in vimKeys) { - var key = vimKeys[k]; - categories[key.cat] = categories[key.cat] || []; - categories[key.cat].push(key); - } - - var sorted = Object.keys(categories).sort(function(a, b) { - return categories[b].length - categories[a].length; - }); - - if (sorted.length === 0) { - 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>'; - - for (var i = 0; i < sorted.length; i++) { - var cat = categories[sorted[i]]; - - var lastCategory = i === (sorted.length - 1); - var first = i % 2 === 0; - - if (first) { - html += '<tr>'; - } - html += '<td>'; - - html += '<h4>' + cat[0].cat + '</h4>'; - html += '<ul class="list-unstyled">'; - - for (var cj in cat) { - html += '<li><kbd>' + cat[cj].key + '</kbd> ' + cat[cj].des + '</li>'; - } - - html += '</ul>'; - html += '</td>'; // col-sm-* - - if (!first || lastCategory) { - html += '</tr>'; // row - } - } - - html += '</table>'; - - divElement.innerHTML = html; - } - - function toggleHelp() { - var helpPanel = document.querySelector('#vim-hotkeys-help'); - if (helpPanel === undefined || helpPanel === null) { - // first call - helpPanel = document.createElement('div'); - helpPanel.id = 'vim-hotkeys-help'; - helpPanel.className='dialog-modal'; - initHelpContent(helpPanel); - initHelpContent(helpPanel); - initHelpContent(helpPanel); - var body = document.getElementsByTagName('body')[0]; - body.appendChild(helpPanel); - } else { - // togggle hidden - helpPanel.classList.toggle('invisible'); - return; - } - } - - searxng.scrollPageToSelected = scrollPageToSelected; - searxng.selectNext = highlightResult('down'); - searxng.selectPrevious = highlightResult('up'); -}); -;/* SPDX-License-Identifier: AGPL-3.0-or-later */ -/* global L */ -(function (w, d, searxng) { - 'use strict'; - - searxng.ready(function () { - searxng.on('.searxng_init_map', 'click', function(event) { - // no more request - this.classList.remove("searxng_init_map"); - - // - var leaflet_target = this.dataset.leafletTarget; - var map_lon = parseFloat(this.dataset.mapLon); - var map_lat = parseFloat(this.dataset.mapLat); - var map_zoom = parseFloat(this.dataset.mapZoom); - var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox); - var map_geojson = JSON.parse(this.dataset.mapGeojson); - - searxng.loadStyle('css/leaflet.css'); - searxng.loadScript('js/leaflet.js', function() { - var map_bounds = null; - if(map_boundingbox) { - var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]); - var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]); - map_bounds = L.latLngBounds(southWest, northEast); - } - - // init map - var map = L.map(leaflet_target); - // create the tile layer with correct attribution - var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; - 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 | 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) { - // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021 - // Still useful ? - setTimeout(function () { - map.fitBounds(map_bounds, { - maxZoom:17 - }); - }, 0); - } else if (map_lon && map_lat) { - if(map_zoom) { - map.setView(new L.latLng(map_lat, map_lon),map_zoom); - } else { - map.setView(new L.latLng(map_lat, map_lon),8); - } - } - - map.addLayer(osmMapnik); - - var baseLayers = { - "OSM Mapnik": osmMapnik, - "OSM Wikimedia": osmWikimedia, - }; - - L.control.layers(baseLayers).addTo(map); - - if(map_geojson) { - L.geoJson(map_geojson).addTo(map); - } /*else if(map_bounds) { - L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map); - }*/ - }); - - // this event occour only once per element - event.preventDefault(); - }); - }); -})(window, document, window.searxng); -;/* SPDX-License-Identifier: AGPL-3.0-or-later */ -(function (w, d, searxng) { - 'use strict'; - - searxng.ready(function() { - let engine_descriptions = null; - function load_engine_descriptions() { - if (engine_descriptions == null) { - searxng.http("GET", "engine_descriptions.json").then(function(content) { - engine_descriptions = JSON.parse(content); - for (const [engine_name, description] of Object.entries(engine_descriptions)) { - let elements = d.querySelectorAll('[data-engine-name="' + engine_name + '"] .engine-description'); - for(const element of elements) { - let source = ' (<i>' + searxng.translations['Source'] + ': ' + description[1] + '</i>)'; - element.innerHTML = description[0] + source; - } - } - }); - } - } - - if (d.querySelector('body[class="preferences_endpoint"]')) { - for(const el of d.querySelectorAll('[data-engine-name]')) { - searxng.on(el, 'mouseenter', load_engine_descriptions); - } - } - }); -})(window, document, window.searxng); -;/* SPDX-License-Identifier: AGPL-3.0-or-later */ -(function(w, d, searxng) { - 'use strict'; - - searxng.ready(function() { - 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() { - var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed'); - var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed'); - var target = this.getAttribute('data-target'); - var targetElement = d.querySelector(target); - var html = this.innerHTML; - if (this.classList.contains('collapsed')) { - html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed); - } else { - html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed); - } - this.innerHTML = html; - this.classList.toggle('collapsed'); - targetElement.classList.toggle('invisible'); - }); - - searxng.on('.media-loader', 'click', function() { - var target = this.getAttribute('data-target'); - var iframe_load = d.querySelector(target + ' > iframe'); - var srctest = iframe_load.getAttribute('src'); - if (srctest === null || srctest === undefined || srctest === false) { - iframe_load.setAttribute('src', iframe_load.getAttribute('data-src')); - } - }); - - searxng.selectImage = function(resultElement) { - /*eslint no-unused-vars: 0*/ - if (resultElement) { - // load full size image in background - const imgElement = resultElement.querySelector('.result-images-source img'); - const thumbnailElement = resultElement.querySelector('.image_thumbnail'); - const detailElement = resultElement.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-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, - results = d.getElementById('results'); - if (e !== null) { - if (scrollTop >= 100) { - results.classList.add('scrolling'); - } else { - results.classList.remove('scrolling'); - } - } - }, true); - - }); - -})(window, document, window.searxng); -;/* SPDX-License-Identifier: AGPL-3.0-or-later */ -/* global AutoComplete */ -(function(w, d, searxng) { - 'use strict'; - - var firstFocus = true, qinput_id = "q", qinput; - - function placeCursorAtEnd(element) { - if (element.setSelectionRange) { - var len = element.value.length; - element.setSelectionRange(len, len); - } - } - - function submitIfQuery() { - if (qinput.value.length > 0) { - var search = document.getElementById('search'); - setTimeout(search.submit.bind(search), 0); - } - } - - function createClearButton(qinput) { - var cs = document.getElementById('clear_search'); - var updateClearButton = function() { - if (qinput.value.length === 0) { - cs.classList.add("empty"); - } else { - cs.classList.remove("empty"); - } - }; - - // update status, event listener - updateClearButton(); - cs.addEventListener('click', function() { - qinput.value=''; - qinput.focus(); - updateClearButton(); - }); - qinput.addEventListener('keyup', updateClearButton, false); - } - - searxng.ready(function() { - qinput = d.getElementById(qinput_id); - - function placeCursorAtEndOnce() { - if (firstFocus) { - placeCursorAtEnd(qinput); - firstFocus = false; - } else { - // e.preventDefault(); - } - } - - if (qinput !== null) { - // clear button - createClearButton(qinput); - - // autocompleter - if (searxng.autocompleter) { - searxng.autocomplete = AutoComplete.call(w, { - Url: "./autocompleter", - EmptyMessage: searxng.translations.no_item_found, - HttpMethod: searxng.method, - HttpHeaders: { - "Content-type": "application/x-www-form-urlencoded", - "X-Requested-With": "XMLHttpRequest" - }, - MinChars: 4, - Delay: 300, - }, "#" + qinput_id); - - // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37 - w.addEventListener('resize', function() { - var event = new CustomEvent("position"); - qinput.dispatchEvent(event); - }); - } - - qinput.addEventListener('focus', placeCursorAtEndOnce, false); - qinput.focus(); - } - - // vanilla js version of search_on_category_select.js - if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) { - d.querySelector('.help').className='invisible'; - - searxng.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) { - categories[i].click(); - } - } - if (! this.checked) { - this.click(); - } - submitIfQuery(); - return false; - }); - - searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery); - searxng.on(d.getElementById('time_range'), 'change', submitIfQuery); - searxng.on(d.getElementById('language'), 'change', submitIfQuery); - } - - }); - -})(window, document, window.searxng); -;/** -* -* Google Image Layout v0.0.1 -* Description, by Anh Trinh. -* Heavily modified for searx -* https://ptgamr.github.io/2014-09-12-google-image-layout/ -* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js -* -* @license Free to use under the MIT License. -* -* @example <caption>Example usage of searxng.ImageLayout class.</caption> -* searxng.image_thumbnail_layout = new searxng.ImageLayout( -* '#urls', // container_selector -* '#urls .result-images', // results_selector -* 'img.image_thumbnail', // img_selector -* 14, // verticalMargin -* 6, // horizontalMargin -* 200 // maxHeight -* ); -* searxng.image_thumbnail_layout.watch(); -*/ - - -(function (w, d) { - 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.verticalMargin = verticalMargin; - this.horizontalMargin = horizontalMargin; - this.maxHeight = maxHeight; - this.isAlignDone = true; - } - - /** - * Get the height that make all images fit the container - * - * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ... - * - * @param {[type]} images the images to be calculated - * @param {[type]} width the container witdth - * @param {[type]} margin the margin between each image - * - * @return {[type]} the height - */ - ImageLayout.prototype._getHeigth = function (images, width) { - var i, img; - var r = 0; - - for (i = 0; i < images.length; i++) { - img = images[i]; - if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) { - r += img.naturalWidth / img.naturalHeight; - } else { - // assume that not loaded images are square - r += 1; - } - } - - 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) { - var i, img, imgWidth; - var imagesLength = images.length, resultNode; - - for (i = 0; i < imagesLength; i++) { - img = images[i]; - if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) { - imgWidth = height * img.naturalWidth / img.naturalHeight; - } else { - // not loaded image : make it square as _getHeigth said it - imgWidth = height; - } - img.style.width = imgWidth + 'px'; - img.style.height = height + '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'); - } - } - }; - - ImageLayout.prototype._alignImgs = function (imgGroup) { - var isSearching, slice, i, h; - var containerElement = d.querySelector(this.container_selector); - var containerCompStyles = window.getComputedStyle(containerElement); - var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10); - var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10); - var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight; - - while (imgGroup.length > 0) { - isSearching = true; - for (i = 1; i <= imgGroup.length && isSearching; i++) { - slice = imgGroup.slice(0, i); - h = this._getHeigth(slice, containerWidth); - if (h < this.maxHeight) { - this._setSize(slice, h); - // continue with the remaining images - imgGroup = imgGroup.slice(i); - isSearching = false; - } - } - if (isSearching) { - this._setSize(slice, Math.min(this.maxHeight, h)); - break; - } - } - }; - - ImageLayout.prototype.align = function () { - var i; - var results_selectorNode = d.querySelectorAll(this.results_selector); - var results_length = results_selectorNode.length; - var previous = null; - var current = null; - var imgGroup = []; - - for (i = 0; i < results_length; i++) { - current = results_selectorNode[i]; - if (current.previousElementSibling !== previous && imgGroup.length > 0) { - // the current image is not connected to previous one - // so the current image is the start of a new group of images. - // so call _alignImgs to align the current group - this._alignImgs(imgGroup); - // and start a new empty group of images - imgGroup = []; - } - // add the current image to the group (only the img tag) - imgGroup.push(current.querySelector(this.img_selector)); - // update the previous variable - previous = current; - } - // align the remaining images - if (imgGroup.length > 0) { - this._alignImgs(imgGroup); - } - }; - - ImageLayout.prototype.watch = function () { - var i, img; - var obj = this; - var results_nodes = d.querySelectorAll(this.results_selector); - var results_length = results_nodes.length; - - function img_load_error(event) { - // console.log("ERROR can't load: " + event.originalTarget.src); - event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error; - } - - function throttleAlign() { - if (obj.isAlignDone) { - obj.isAlignDone = false; - setTimeout(function () { - obj.align(); - obj.isAlignDone = true; - }, 100); - } - } - - // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event - w.addEventListener('pageshow', throttleAlign); - // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event - w.addEventListener('load', throttleAlign); - // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event - w.addEventListener('resize', throttleAlign); - - for (i = 0; i < results_length; i++) { - img = results_nodes[i].querySelector(this.img_selector); - if (img !== null && img !== undefined) { - img.addEventListener('load', throttleAlign); - // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror - img.addEventListener('error', throttleAlign); - if (w.searxng.theme.img_load_error) { - img.addEventListener('error', img_load_error, {once: true}); - } - } - } - }; - - w.searxng.ImageLayout = ImageLayout; - -}(window, document)); -;(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ -/* - * @license MIT - * - * Autocomplete.js v2.7.1 - * Developed by Baptiste Donaux - * http://autocomplete-js.com - * - * (c) 2017, Baptiste Donaux - */ -"use strict"; -var ConditionOperator; -(function (ConditionOperator) { - ConditionOperator[ConditionOperator["AND"] = 0] = "AND"; - ConditionOperator[ConditionOperator["OR"] = 1] = "OR"; -})(ConditionOperator || (ConditionOperator = {})); -var EventType; -(function (EventType) { - EventType[EventType["KEYDOWN"] = 0] = "KEYDOWN"; - EventType[EventType["KEYUP"] = 1] = "KEYUP"; -})(EventType || (EventType = {})); -/** - * Core - * - * @class - * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux - */ -var AutoComplete = /** @class */ (function () { - // Constructor - function AutoComplete(params, selector) { - if (params === void 0) { params = {}; } - if (selector === void 0) { selector = "[data-autocomplete]"; } - if (Array.isArray(selector)) { - selector.forEach(function (s) { - new AutoComplete(params, s); - }); - } - else if (typeof selector == "string") { - var elements = document.querySelectorAll(selector); - Array.prototype.forEach.call(elements, function (input) { - new AutoComplete(params, input); - }); - } - else { - var specificParams = AutoComplete.merge(AutoComplete.defaults, params, { - DOMResults: document.createElement("div") - }); - AutoComplete.prototype.create(specificParams, selector); - return specificParams; - } - } - AutoComplete.prototype.create = function (params, element) { - params.Input = element; - if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute("type") === false || params.Input.getAttribute("type").match(/^TEXT|SEARCH$/i))) { - params.Input.setAttribute("autocomplete", "off"); - params._Position(params); - params.Input.parentNode.appendChild(params.DOMResults); - params.$Listeners = { - blur: params._Blur.bind(params), - destroy: AutoComplete.prototype.destroy.bind(null, params), - focus: params._Focus.bind(params), - keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP), - keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN), - position: params._Position.bind(params) - }; - for (var event in params.$Listeners) { - params.Input.addEventListener(event, params.$Listeners[event]); - } - } - }; - AutoComplete.prototype.getEventsByType = function (params, type) { - var mappings = {}; - for (var key in params.KeyboardMappings) { - var event = EventType.KEYUP; - if (params.KeyboardMappings[key].Event !== undefined) { - event = params.KeyboardMappings[key].Event; - } - if (event == type) { - mappings[key] = params.KeyboardMappings[key]; - } - } - return mappings; - }; - AutoComplete.prototype.event = function (params, type, event) { - var eventIdentifier = function (condition) { - if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) { - condition = AutoComplete.merge({ - Not: false - }, condition); - if (condition.hasOwnProperty("Is")) { - if (condition.Is == event.keyCode) { - match = !condition.Not; - } - else { - match = condition.Not; - } - } - else if (condition.hasOwnProperty("From") && condition.hasOwnProperty("To")) { - if (event.keyCode >= condition.From && event.keyCode <= condition.To) { - match = !condition.Not; - } - else { - match = condition.Not; - } - } - } - }; - for (var name in AutoComplete.prototype.getEventsByType(params, type)) { - var mapping = AutoComplete.merge({ - Operator: ConditionOperator.AND - }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator; - mapping.Conditions.forEach(eventIdentifier); - if (match === true) { - mapping.Callback.call(params, event); - } - } - }; - AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) { - var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + "=" + encodeURIComponent(queryParams); - if (method.match(/^GET$/i)) { - if (url.indexOf("?") !== -1) { - url += "&" + queryParamsStringify; - } - else { - url += "?" + queryParamsStringify; - } - } - request.open(method, url, true); - for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) { - request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]); - } - request.onreadystatechange = function () { - if (request.readyState == 4 && request.status == 200) { - params.$Cache[queryParams] = request.response; - callback(request.response); - } - else if (request.status >= 400) { - callbackErr(); - } - }; - return request; - }; - AutoComplete.prototype.ajax = function (params, request, timeout) { - if (timeout === void 0) { timeout = true; } - if (params.$AjaxTimer) { - window.clearTimeout(params.$AjaxTimer); - } - if (timeout === true) { - params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay); - } - else { - if (params.Request) { - params.Request.abort(); - } - params.Request = request; - params.Request.send(params._QueryArg() + "=" + params._Pre()); - } - }; - AutoComplete.prototype.cache = function (params, callback, callbackErr) { - var response = params._Cache(params._Pre()); - if (response === undefined) { - var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr); - AutoComplete.prototype.ajax(params, request); - } - else { - callback(response); - } - }; - AutoComplete.prototype.destroy = function (params) { - for (var event in params.$Listeners) { - params.Input.removeEventListener(event, params.$Listeners[event]); - } - params.DOMResults.parentNode.removeChild(params.DOMResults); - }; - AutoComplete.merge = function () { - var merge = {}, tmp; - for (var i = 0; i < arguments.length; i++) { - for (tmp in arguments[i]) { - merge[tmp] = arguments[i][tmp]; - } - } - return merge; - }; - AutoComplete.defaults = { - Delay: 150, - EmptyMessage: "No result here", - Highlight: { - getRegex: function (value) { - return new RegExp(value, "ig"); - }, - transform: function (value) { - return "<strong>" + value + "</strong>"; - } - }, - HttpHeaders: { - "Content-type": "application/x-www-form-urlencoded" - }, - Limit: 0, - MinChars: 0, - HttpMethod: "GET", - QueryArg: "q", - Url: null, - KeyboardMappings: { - "Enter": { - Conditions: [{ - Is: 13, - Not: false - }], - Callback: function (event) { - if (this.DOMResults.getAttribute("class").indexOf("open") != -1) { - var liActive = this.DOMResults.querySelector("li.active"); - if (liActive !== null) { - event.preventDefault(); - this._Select(liActive); - this.DOMResults.setAttribute("class", "autocomplete"); - } - } - }, - Operator: ConditionOperator.AND, - Event: EventType.KEYDOWN - }, - "KeyUpAndDown_down": { - Conditions: [{ - Is: 38, - Not: false - }, - { - Is: 40, - Not: false - }], - Callback: function (event) { - event.preventDefault(); - }, - Operator: ConditionOperator.OR, - Event: EventType.KEYDOWN - }, - "KeyUpAndDown_up": { - Conditions: [{ - Is: 38, - Not: false - }, - { - Is: 40, - Not: false - }], - Callback: function (event) { - event.preventDefault(); - var first = this.DOMResults.querySelector("li:first-child:not(.locked)"), last = this.DOMResults.querySelector("li:last-child:not(.locked)"), active = this.DOMResults.querySelector("li.active"); - if (active) { - var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName("li").length; - if (position < 0) { - position = lisCount - 1; - } - else if (position >= lisCount) { - position = 0; - } - active.classList.remove("active"); - active.parentElement.children.item(position).classList.add("active"); - } - else if (last && event.keyCode == 38) { - last.classList.add("active"); - } - else if (first) { - first.classList.add("active"); - } - }, - Operator: ConditionOperator.OR, - Event: EventType.KEYUP - }, - "AlphaNum": { - Conditions: [{ - Is: 13, - Not: true - }, { - From: 35, - To: 40, - Not: true - }], - Callback: function () { - var oldValue = this.Input.getAttribute("data-autocomplete-old-value"), currentValue = this._Pre(); - if (currentValue !== "" && currentValue.length >= this._MinChars()) { - if (!oldValue || currentValue != oldValue) { - this.DOMResults.setAttribute("class", "autocomplete open"); - } - AutoComplete.prototype.cache(this, function (response) { - this._Render(this._Post(response)); - this._Open(); - }.bind(this), this._Error); - } - else { - this._Close(); - } - }, - Operator: ConditionOperator.AND, - Event: EventType.KEYUP - } - }, - DOMResults: null, - Request: null, - Input: null, - /** - * Return the message when no result returns - */ - _EmptyMessage: function () { - var emptyMessage = ""; - if (this.Input.hasAttribute("data-autocomplete-empty-message")) { - emptyMessage = this.Input.getAttribute("data-autocomplete-empty-message"); - } - else if (this.EmptyMessage !== false) { - emptyMessage = this.EmptyMessage; - } - else { - emptyMessage = ""; - } - return emptyMessage; - }, - /** - * Returns the maximum number of results - */ - _Limit: function () { - var limit = this.Input.getAttribute("data-autocomplete-limit"); - if (isNaN(limit) || limit === null) { - return this.Limit; - } - return parseInt(limit, 10); - }, - /** - * Returns the minimum number of characters entered before firing ajax - */ - _MinChars: function () { - var minchars = this.Input.getAttribute("data-autocomplete-minchars"); - if (isNaN(minchars) || minchars === null) { - return this.MinChars; - } - return parseInt(minchars, 10); - }, - /** - * Apply transformation on labels response - */ - _Highlight: function (label) { - return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform); - }, - /** - * Returns the HHTP method to use - */ - _HttpMethod: function () { - if (this.Input.hasAttribute("data-autocomplete-method")) { - return this.Input.getAttribute("data-autocomplete-method"); - } - return this.HttpMethod; - }, - /** - * Returns the query param to use - */ - _QueryArg: function () { - if (this.Input.hasAttribute("data-autocomplete-param-name")) { - return this.Input.getAttribute("data-autocomplete-param-name"); - } - return this.QueryArg; - }, - /** - * Returns the URL to use for AJAX request - */ - _Url: function () { - if (this.Input.hasAttribute("data-autocomplete")) { - return this.Input.getAttribute("data-autocomplete"); - } - return this.Url; - }, - /** - * Manage the close - */ - _Blur: function (now) { - if (now === void 0) { now = false; } - if (now) { - this._Close(); - } - else { - var params = this; - setTimeout(function () { - params._Blur(true); - }, 150); - } - }, - /** - * Manage the cache - */ - _Cache: function (value) { - return this.$Cache[value]; - }, - /** - * Manage the open - */ - _Focus: function () { - var oldValue = this.Input.getAttribute("data-autocomplete-old-value"); - if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) { - this.DOMResults.setAttribute("class", "autocomplete open"); - } - }, - /** - * Bind all results item if one result is opened - */ - _Open: function () { - var params = this; - Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"), function (li) { - if (li.getAttribute("class") != "locked") { - li.onclick = function () { - params._Select(li); - }; - } - }); - }, - _Close: function () { - this.DOMResults.setAttribute("class", "autocomplete"); - }, - /** - * Position the results HTML element - */ - _Position: function () { - this.DOMResults.setAttribute("class", "autocomplete"); - this.DOMResults.setAttribute("style", "top:" + (this.Input.offsetTop + this.Input.offsetHeight) + "px;left:" + this.Input.offsetLeft + "px;width:" + this.Input.clientWidth + "px;"); - }, - /** - * Execute the render of results DOM element - */ - _Render: function (response) { - var ul; - if (typeof response == "string") { - ul = this._RenderRaw(response); - } - else { - ul = this._RenderResponseItems(response); - } - if (this.DOMResults.hasChildNodes()) { - this.DOMResults.removeChild(this.DOMResults.childNodes[0]); - } - this.DOMResults.appendChild(ul); - }, - /** - * ResponseItems[] rendering - */ - _RenderResponseItems: function (response) { - var ul = document.createElement("ul"), li = document.createElement("li"), limit = this._Limit(); - // Order - if (limit < 0) { - response = response.reverse(); - } - else if (limit === 0) { - limit = response.length; - } - for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) { - li.innerHTML = response[item].Label; - li.setAttribute("data-autocomplete-value", response[item].Value); - ul.appendChild(li); - li = document.createElement("li"); - } - return ul; - }, - /** - * string response rendering (RAW HTML) - */ - _RenderRaw: function (response) { - var ul = document.createElement("ul"), li = document.createElement("li"); - if (response.length > 0) { - this.DOMResults.innerHTML = response; - } - else { - var emptyMessage = this._EmptyMessage(); - if (emptyMessage !== "") { - li.innerHTML = emptyMessage; - li.setAttribute("class", "locked"); - ul.appendChild(li); - } - } - return ul; - }, - /** - * Deal with request response - */ - _Post: function (response) { - try { - var returnResponse = []; - //JSON return - var json = JSON.parse(response); - if (Object.keys(json).length === 0) { - return ""; - } - if (Array.isArray(json)) { - for (var i = 0; i < Object.keys(json).length; i++) { - returnResponse[returnResponse.length] = { "Value": json[i], "Label": this._Highlight(json[i]) }; - } - } - else { - for (var value in json) { - returnResponse.push({ - "Value": value, - "Label": this._Highlight(json[value]) - }); - } - } - return returnResponse; - } - catch (event) { - //HTML return - return response; - } - }, - /** - * Return the autocomplete value to send (before request) - */ - _Pre: function () { - return this.Input.value; - }, - /** - * Choice one result item - */ - _Select: function (item) { - if (item.hasAttribute("data-autocomplete-value")) { - this.Input.value = item.getAttribute("data-autocomplete-value"); - } - else { - this.Input.value = item.innerHTML; - } - this.Input.setAttribute("data-autocomplete-old-value", this.Input.value); - }, - /** - * Handle HTTP error on the request - */ - _Error: function () { - }, - $AjaxTimer: null, - $Cache: {}, - $Listeners: {} - }; - return AutoComplete; -}()); -module.exports = AutoComplete; - -},{}]},{},[1])(1) -}); diff --git a/searx/static/themes/simple/js/searxng.min.js.map b/searx/static/themes/simple/js/searxng.min.js.map index ee2728abd..a11737204 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","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","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","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","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","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","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","style","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","img_load_error","originalTarget","theme","throttleAlign","once","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":["../src/js/main/00_toolkit.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../../__common__/js/image_layout.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function(w, d) {\n\n 'use strict';\n\n // not invented here tookit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function(ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function(selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe(callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function(obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function(e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function(callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function(method, url) {\n var req = new XMLHttpRequest(),\n resolve = function() {},\n reject = function() {},\n promise = {\n then: function(callback) { resolve = callback; return promise; },\n catch: function(callback) { reject = callback; return promise; }\n };\n\n try {\n req.open(method, url, true);\n\n // On load\n req.onload = function() {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function() {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function() {\n reject(Error(\"Transaction is aborted\"));\n };\n\n // Make the request\n req.send();\n } catch (ex) {\n reject(ex);\n }\n\n return promise;\n };\n\n searxng.loadStyle = function(src) {\n var path = searxng.static_path + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function(src, callback) {\n var path = searxng.static_path + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function() {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function(newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n }; \n\n searxng.on('.close', 'click', function() {\n this.parentNode.classList.add('invisible');\n });\n \n return searxng;\n})(window, document);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/*global searxng*/\n\nsearxng.ready(function() {\n\n function isElementInDetail(el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a <div class=\"detail\"> element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement(el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult(resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function(e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function(e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n var vimKeys = {\n 27: {\n key: 'Escape',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 73: {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 66: {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 70: {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 85: {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 68: {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 71: {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 86: {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 75: {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 74: {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 80: {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 78: {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 79: {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 84: {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n 82: {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 72: {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n }\n };\n\n if (searxng.hotkeys) {\n searxng.on(document, \"keydown\", function(e) {\n // check for modifiers so we don't break browser's hotkeys\n if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.keyCode === 27) {\n vimKeys[e.keyCode].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n vimKeys[e.keyCode].fun();\n }\n }\n }\n });\n }\n\n function highlightResult(which) {\n return function(noScroll) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = current.nextElementSibling;\n if (next === null) {\n next = results[0];\n }\n break;\n case 'up':\n next = current.previousElementSibling;\n if (next === null) {\n next = results[results.length - 1];\n }\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage() {\n document.location.reload(true);\n }\n\n function removeFocus(e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick(css_selector) {\n return function() {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage() {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage() {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected() {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage(amount) {\n return function() {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo(position, nav) {\n return function() {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus() {\n window.scrollTo(0, 0);\n document.querySelector('#q').focus();\n }\n\n function openResult(newTab) {\n return function() {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent(divElement) {\n var categories = {};\n\n for (var k in vimKeys) {\n var key = vimKeys[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function(a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '<a href=\"#\" class=\"close\" aria-label=\"close\" title=\"close\">×</a>';\n html += '<h3>How to navigate searx with Vim-like hotkeys</h3>';\n html += '<table>';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '<tr>';\n }\n html += '<td>';\n\n html += '<h4>' + cat[0].cat + '</h4>';\n html += '<ul class=\"list-unstyled\">';\n\n for (var cj in cat) {\n html += '<li><kbd>' + cat[cj].key + '</kbd> ' + cat[cj].des + '</li>';\n }\n\n html += '</ul>';\n html += '</td>'; // col-sm-*\n\n if (!first || lastCategory) {\n html += '</tr>'; // row\n }\n }\n\n html += '</table>';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp() {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className='dialog-modal';\n initHelpContent(helpPanel);\n\t\t\tinitHelpContent(helpPanel);\t\t\t\t\t\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function(event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function() {\n var map_bounds = null;\n if(map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib='Map data © <a href=\"https://openstreetmap.org\">OpenStreetMap</a> contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © <a href=\"https://openstreetmap.org\">OpenStreetMap contributors</a>';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if(map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom:17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if(map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon),map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon),8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if(map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /*else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n }*/\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function() {\n let engine_descriptions = null;\n function load_engine_descriptions() {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function(content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for(const element of elements) {\n let source = ' (<i>' + searxng.translations['Source'] + ': ' + description[1] + '</i>)';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n if (d.querySelector('body[class=\"preferences_endpoint\"]')) {\n for(const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n }\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function(w, d, searxng) {\n 'use strict';\n\n searxng.ready(function() {\n searxng.image_thumbnail_layout = new searxng.ImageLayout('#urls', '#urls .result-images', 'img.image_thumbnail', 14, 6, 200);\n searxng.image_thumbnail_layout.watch();\n\n searxng.on('.btn-collapse', 'click', function() {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function() {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.selectImage = function(resultElement) {\n /*eslint no-unused-vars: 0*/\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function(e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.image_thumbnail_layout.align();\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => { \n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => searxng.selectPrevious(false));\n searxng.on('.result-detail-next', 'click', e => searxng.selectNext(false));\n\n w.addEventListener('scroll', function() {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function(w, d, searxng) {\n 'use strict';\n\n var firstFocus = true, qinput_id = \"q\", qinput;\n\n function placeCursorAtEnd(element) {\n if (element.setSelectionRange) {\n var len = element.value.length;\n element.setSelectionRange(len, len);\n }\n }\n\n function submitIfQuery() {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton(qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function() {\n if (qinput.value.length === 0) {\n\tcs.classList.add(\"empty\");\n } else {\n\tcs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function() {\n qinput.value='';\n qinput.focus();\n updateClearButton();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function() {\n qinput = d.getElementById(qinput_id);\n\n function placeCursorAtEndOnce() {\n if (firstFocus) {\n placeCursorAtEnd(qinput);\n firstFocus = false;\n } else {\n // e.preventDefault();\n }\n }\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n \n // autocompleter\n if (searxng.autocompleter) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.translations.no_item_found,\n HttpMethod: searxng.method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: 4,\n Delay: 300,\n }, \"#\" + qinput_id);\n\n // hack, see : https://github.com/autocompletejs/autocomplete.js/issues/37\n w.addEventListener('resize', function() {\n var event = new CustomEvent(\"position\");\n qinput.dispatchEvent(event);\n });\n }\n\n qinput.addEventListener('focus', placeCursorAtEndOnce, false);\n qinput.focus();\n }\n\n // vanilla js version of search_on_category_select.js\n if (qinput !== null && d.querySelector('.help') != null && searxng.search_on_category_select) {\n d.querySelector('.help').className='invisible';\n\n searxng.on('#categories input', 'change', function() {\n var i, categories = d.querySelectorAll('#categories input[type=\"checkbox\"]');\n for(i=0; i<categories.length; i++) {\n if (categories[i] !== this && categories[i].checked) {\n categories[i].click();\n }\n }\n if (! this.checked) {\n this.click();\n }\n submitIfQuery();\n return false;\n });\n\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n });\n\n})(window, document, window.searxng);\n","/**\n*\n* Google Image Layout v0.0.1\n* Description, by Anh Trinh.\n* Heavily modified for searx\n* https://ptgamr.github.io/2014-09-12-google-image-layout/\n* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js\n*\n* @license Free to use under the MIT License.\n*\n* @example <caption>Example usage of searxng.ImageLayout class.</caption>\n* searxng.image_thumbnail_layout = new searxng.ImageLayout(\n* '#urls', // container_selector\n* '#urls .result-images', // results_selector\n* 'img.image_thumbnail', // img_selector\n* 14, // verticalMargin\n* 6, // horizontalMargin\n* 200 // maxHeight\n* );\n* searxng.image_thumbnail_layout.watch();\n*/\n\n\n(function (w, d) {\n function ImageLayout(container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {\n this.container_selector = container_selector;\n this.results_selector = results_selector;\n this.img_selector = img_selector;\n this.verticalMargin = verticalMargin;\n this.horizontalMargin = horizontalMargin;\n this.maxHeight = maxHeight;\n this.isAlignDone = true;\n }\n\n /**\n * Get the height that make all images fit the container\n *\n * width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...\n *\n * @param {[type]} images the images to be calculated\n * @param {[type]} width the container witdth\n * @param {[type]} margin the margin between each image\n *\n * @return {[type]} the height\n */\n ImageLayout.prototype._getHeigth = function (images, width) {\n var i, img;\n var r = 0;\n\n for (i = 0; i < images.length; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n r += img.naturalWidth / img.naturalHeight;\n } else {\n // assume that not loaded images are square\n r += 1;\n }\n }\n\n return (width - images.length * this.verticalMargin) / r; //have to round down because Firefox will automatically roundup value with number of decimals > 3\n };\n\n ImageLayout.prototype._setSize = function (images, height) {\n var i, img, imgWidth;\n var imagesLength = images.length, resultNode;\n\n for (i = 0; i < imagesLength; i++) {\n img = images[i];\n if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {\n imgWidth = height * img.naturalWidth / img.naturalHeight;\n } else {\n // not loaded image : make it square as _getHeigth said it\n imgWidth = height;\n }\n img.style.width = imgWidth + 'px';\n img.style.height = height + 'px';\n img.style.marginLeft = this.horizontalMargin + 'px';\n img.style.marginTop = this.horizontalMargin + 'px';\n img.style.marginRight = this.verticalMargin - 7 + 'px'; // -4 is the negative margin of the inline element\n img.style.marginBottom = this.verticalMargin - 7 + 'px';\n resultNode = img.parentNode.parentNode;\n if (!resultNode.classList.contains('js')) {\n resultNode.classList.add('js');\n }\n }\n };\n\n ImageLayout.prototype._alignImgs = function (imgGroup) {\n var isSearching, slice, i, h;\n var containerElement = d.querySelector(this.container_selector);\n var containerCompStyles = window.getComputedStyle(containerElement);\n var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);\n var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);\n var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;\n\n while (imgGroup.length > 0) {\n isSearching = true;\n for (i = 1; i <= imgGroup.length && isSearching; i++) {\n slice = imgGroup.slice(0, i);\n h = this._getHeigth(slice, containerWidth);\n if (h < this.maxHeight) {\n this._setSize(slice, h);\n // continue with the remaining images\n imgGroup = imgGroup.slice(i);\n isSearching = false;\n }\n }\n if (isSearching) {\n this._setSize(slice, Math.min(this.maxHeight, h));\n break;\n }\n }\n };\n\n ImageLayout.prototype.align = function () {\n var i;\n var results_selectorNode = d.querySelectorAll(this.results_selector);\n var results_length = results_selectorNode.length;\n var previous = null;\n var current = null;\n var imgGroup = [];\n\n for (i = 0; i < results_length; i++) {\n current = results_selectorNode[i];\n if (current.previousElementSibling !== previous && imgGroup.length > 0) {\n // the current image is not connected to previous one\n // so the current image is the start of a new group of images.\n // so call _alignImgs to align the current group\n this._alignImgs(imgGroup);\n // and start a new empty group of images\n imgGroup = [];\n }\n // add the current image to the group (only the img tag)\n imgGroup.push(current.querySelector(this.img_selector));\n // update the previous variable\n previous = current;\n }\n // align the remaining images\n if (imgGroup.length > 0) {\n this._alignImgs(imgGroup);\n }\n };\n\n ImageLayout.prototype.watch = function () {\n var i, img;\n var obj = this;\n var results_nodes = d.querySelectorAll(this.results_selector);\n var results_length = results_nodes.length;\n\n function img_load_error(event) {\n // console.log(\"ERROR can't load: \" + event.originalTarget.src);\n event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;\n }\n\n function throttleAlign() {\n if (obj.isAlignDone) {\n obj.isAlignDone = false;\n setTimeout(function () {\n obj.align();\n obj.isAlignDone = true;\n }, 100);\n }\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event\n w.addEventListener('pageshow', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event\n w.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event\n w.addEventListener('resize', throttleAlign);\n\n for (i = 0; i < results_length; i++) {\n img = results_nodes[i].querySelector(this.img_selector);\n if (img !== null && img !== undefined) {\n img.addEventListener('load', throttleAlign);\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n img.addEventListener('error', throttleAlign);\n if (w.searxng.theme.img_load_error) {\n img.addEventListener('error', img_load_error, {once: true});\n }\n }\n }\n };\n\n w.searxng.ImageLayout = ImageLayout;\n\n}(window, document));\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\n/*\n * @license MIT\n *\n * Autocomplete.js v2.7.1\n * Developed by Baptiste Donaux\n * http://autocomplete-js.com\n *\n * (c) 2017, Baptiste Donaux\n */\n\"use strict\";\nvar ConditionOperator;\n(function (ConditionOperator) {\n ConditionOperator[ConditionOperator[\"AND\"] = 0] = \"AND\";\n ConditionOperator[ConditionOperator[\"OR\"] = 1] = \"OR\";\n})(ConditionOperator || (ConditionOperator = {}));\nvar EventType;\n(function (EventType) {\n EventType[EventType[\"KEYDOWN\"] = 0] = \"KEYDOWN\";\n EventType[EventType[\"KEYUP\"] = 1] = \"KEYUP\";\n})(EventType || (EventType = {}));\n/**\n * Core\n *\n * @class\n * @author Baptiste Donaux <baptiste.donaux@gmail.com> @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"<strong>\" + value + \"</strong>\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"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","isElementInDetail","undefined","contains","getResultElement","isImageResult","resultElement","highlightResult","let","preventDefault","selectImage","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","hotkeys","Object","hasOwnProperty","keyCode","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","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","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","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","style","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","img_load_error","originalTarget","theme","throttleAlign","once","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 diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json index 0cf6c4f64..356230f52 100644 --- a/searx/static/themes/simple/package.json +++ b/searx/static/themes/simple/package.json @@ -2,7 +2,6 @@ "devDependencies": { "eslint": "^8.0.1", "grunt": "~1.4.1", - "grunt-contrib-concat": "~2.0.0", "grunt-contrib-copy": "^1.0.0", "grunt-contrib-cssmin": "^4.0.0", "grunt-contrib-jshint": "~3.1.1", diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo Binary files differindex 9181806a1..1f5f4999d 100644 --- a/searx/translations/bg/LC_MESSAGES/messages.mo +++ b/searx/translations/bg/LC_MESSAGES/messages.mo diff --git a/searx/translations/bg/LC_MESSAGES/messages.po b/searx/translations/bg/LC_MESSAGES/messages.po index 9c48be936..52b8cc5b6 100644 --- a/searx/translations/bg/LC_MESSAGES/messages.po +++ b/searx/translations/bg/LC_MESSAGES/messages.po @@ -7,18 +7,19 @@ # ubone <van_ds_ff@mail.bg>, 2016-2017 msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2021-11-24 19:24+0000\n" -"PO-Revision-Date: 2021-11-03 08:06+0000\n" -"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" +"PO-Revision-Date: 2021-12-03 07:17+0000\n" +"Last-Translator: Ati Art <atiartstudio.home@gmail.com>\n" +"Language-Team: Bulgarian <https://weblate.bubu1.eu/projects/searxng/searxng/" +"bg/>\n" "Language: bg\n" -"Language-Team: Bulgarian " -"<https://weblate.bubu1.eu/projects/searxng/searxng/bg/>\n" -"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.8.1\n" "Generated-By: Babel 2.9.1\n" #: searx/webapp.py:164 @@ -59,7 +60,7 @@ msgstr "карта" #: searx/webapp.py:173 msgid "onions" -msgstr "" +msgstr "onions" #: searx/webapp.py:174 msgid "science" @@ -67,72 +68,72 @@ msgstr "наука" #: searx/webapp.py:178 msgid "auto" -msgstr "" +msgstr "автоматичен" #: searx/webapp.py:179 msgid "light" -msgstr "" +msgstr "светъл" #: searx/webapp.py:180 msgid "dark" -msgstr "" +msgstr "тъмен" #: searx/webapp.py:184 msgid "timeout" -msgstr "" +msgstr "изчакване" #: searx/webapp.py:185 msgid "parsing error" -msgstr "" +msgstr "грешка при анализа" #: searx/webapp.py:186 msgid "HTTP protocol error" -msgstr "" +msgstr "Грешка в протокола HTTP" #: searx/webapp.py:187 msgid "network error" -msgstr "" +msgstr "мрежова грешка" #: searx/webapp.py:189 msgid "unexpected crash" -msgstr "" +msgstr "неочакван срив" #: searx/webapp.py:196 msgid "HTTP error" -msgstr "" +msgstr "HTTP грешка" #: searx/webapp.py:197 msgid "HTTP connection error" -msgstr "" +msgstr "HTTP грешка във връзката" #: searx/webapp.py:203 msgid "proxy error" -msgstr "" +msgstr "прокси грешка" #: searx/webapp.py:204 msgid "CAPTCHA" -msgstr "" +msgstr "Кепча" #: searx/webapp.py:205 msgid "too many requests" -msgstr "" +msgstr "твърде много искания" #: searx/webapp.py:206 msgid "access denied" -msgstr "" +msgstr "отказан достъп" #: searx/webapp.py:207 msgid "server API error" -msgstr "" +msgstr "грешка в API на сървъра" #: searx/webapp.py:399 msgid "No item found" -msgstr "" +msgstr "Не е намерен артикул" #: searx/engines/qwant.py:198 #: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401 msgid "Source" -msgstr "" +msgstr "Източник" #: searx/webapp.py:523 searx/webapp.py:935 msgid "Invalid settings, please edit your preferences" @@ -140,7 +141,7 @@ msgstr "Неправилни настройки, моля проверете п #: searx/webapp.py:539 msgid "Invalid settings" -msgstr "" +msgstr "невалидни настройки" #: searx/webapp.py:617 searx/webapp.py:688 msgid "search error" @@ -156,47 +157,47 @@ msgstr "преди {hours} час(ове), {minutes} минута(минути)" #: searx/webapp.py:856 msgid "Suspended" -msgstr "" +msgstr "преустановен" #: searx/answerers/random/answerer.py:65 msgid "Random value generator" -msgstr "" +msgstr "Генератор на произволни стойности" #: searx/answerers/random/answerer.py:66 msgid "Generate different random values" -msgstr "" +msgstr "Генерирайте различни произволни стойности" #: searx/answerers/statistics/answerer.py:50 msgid "Statistics functions" -msgstr "" +msgstr "Функции за статистика" #: searx/answerers/statistics/answerer.py:51 msgid "Compute {functions} of the arguments" -msgstr "" +msgstr "Изчислете {функции} на аргументите" #: searx/engines/openstreetmap.py:155 msgid "Get directions" -msgstr "" +msgstr "Вземете упътвания" #: searx/engines/pdbe.py:90 msgid "{title} (OBSOLETE)" -msgstr "" +msgstr "{заглавие} (ОСТАРЯЛО)" #: searx/engines/pdbe.py:97 msgid "This entry has been superseded by" -msgstr "" +msgstr "Този запис е заменен от" #: searx/engines/pubmed.py:78 msgid "No abstract is available for this publication." -msgstr "" +msgstr "Няма резюме за тази публикация." #: searx/engines/qwant.py:200 msgid "Channel" -msgstr "" +msgstr "Канал" #: searx/plugins/hash_plugin.py:24 msgid "Converts strings to different hash digests." -msgstr "" +msgstr "Преобразува низове в различни хаш-извлечение." #: searx/plugins/hash_plugin.py:52 msgid "hash digest" @@ -204,11 +205,13 @@ msgstr "" #: searx/plugins/hostname_replace.py:9 msgid "Hostname replace" -msgstr "" +msgstr "Замяна на името на хоста" #: searx/plugins/hostname_replace.py:10 msgid "Rewrite result hostnames or remove results based on the hostname" msgstr "" +"Пренапишете имената на хостове на резултатите или премахнете резултатите въз " +"основа на името на хоста" #: searx/plugins/infinite_scroll.py:3 msgid "Infinite scroll" @@ -220,13 +223,15 @@ msgstr "Автоматично зареждане на следващата ст #: searx/plugins/oa_doi_rewrite.py:9 msgid "Open Access DOI rewrite" -msgstr "" +msgstr "Отворен достъп DOI пренаписване" #: searx/plugins/oa_doi_rewrite.py:10 msgid "" "Avoid paywalls by redirecting to open-access versions of publications " "when available" msgstr "" +"Избягвайте заплатите, като пренасочвате към версии с отворен достъп на " +"публикации, когато са налични" #: searx/plugins/search_on_category_select.py:18 msgid "Search on category select" @@ -267,6 +272,9 @@ msgid "" "Navigate search results with Vim-like hotkeys (JavaScript required). " "Press \"h\" key on main or result page to get help." msgstr "" +"Навигирайте резултатите от търсенето с Vim-подобни горещи клавиши (изисква " +"се JavaScript). Натиснете клавиша \"h\" на главната или резултатната " +"страница, за да получите помощ." #: searx/templates/oscar/404.html:4 searx/templates/simple/404.html:4 msgid "Page not found" @@ -305,11 +313,11 @@ msgstr "Грешка!" #: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54 msgid "Powered by" -msgstr "" +msgstr "С подкрепата на" #: searx/templates/oscar/base.html:85 searx/templates/simple/base.html:54 msgid "a privacy-respecting, hackable metasearch engine" -msgstr "" +msgstr "за спазване на поверителността, хакерска метатърсачка" #: searx/templates/oscar/base.html:86 searx/templates/simple/base.html:55 msgid "Source code" @@ -337,7 +345,7 @@ msgstr "" #: searx/templates/oscar/languages.html:2 msgid "Language" -msgstr "" +msgstr "Език" #: searx/templates/oscar/languages.html:4 #: searx/templates/simple/filters/languages.html:2 @@ -378,15 +386,15 @@ msgstr "Позволи" #: searx/templates/oscar/macros.html:139 msgid "broken" -msgstr "" +msgstr "развален" #: searx/templates/oscar/macros.html:141 msgid "supported" -msgstr "" +msgstr "поддържан" #: searx/templates/oscar/macros.html:143 msgid "not supported" -msgstr "" +msgstr "неподдържан" #: searx/templates/oscar/navbar.html:7 #: searx/templates/oscar/preferences.html:90 @@ -396,7 +404,7 @@ msgstr "предпочитания" #: searx/templates/oscar/preferences.html:12 #: searx/templates/simple/preferences.html:29 msgid "No HTTPS" -msgstr "" +msgstr "Без HTTPS" #: searx/templates/oscar/preferences.html:14 #: searx/templates/oscar/results.html:27 searx/templates/simple/results.html:40 @@ -458,13 +466,13 @@ msgstr "Общи" #: searx/templates/oscar/preferences.html:102 #: searx/templates/oscar/preferences.html:193 msgid "User Interface" -msgstr "" +msgstr "Потребителски интерфейс" #: searx/templates/oscar/preferences.html:103 #: searx/templates/oscar/preferences.html:257 #: searx/templates/simple/preferences.html:234 msgid "Privacy" -msgstr "" +msgstr "Поверителност" #: searx/templates/oscar/preferences.html:104 #: searx/templates/oscar/preferences.html:307 @@ -946,20 +954,20 @@ msgstr "" #: searx/templates/oscar/stats.html:118 searx/templates/simple/stats.html:117 msgid "Parameter" -msgstr "" +msgstr "Параметър" #: searx/templates/oscar/result_templates/files.html:35 #: searx/templates/oscar/stats.html:126 searx/templates/simple/stats.html:125 msgid "Filename" -msgstr "" +msgstr "Име на файла" #: searx/templates/oscar/stats.html:127 searx/templates/simple/stats.html:126 msgid "Function" -msgstr "" +msgstr "Функция" #: searx/templates/oscar/stats.html:128 searx/templates/simple/stats.html:127 msgid "Code" -msgstr "" +msgstr "Код" #: searx/templates/oscar/stats.html:135 searx/templates/simple/stats.html:134 msgid "Checker" @@ -967,36 +975,36 @@ msgstr "" #: searx/templates/oscar/stats.html:138 searx/templates/simple/stats.html:137 msgid "Failed test" -msgstr "" +msgstr "Неуспешен тест" #: searx/templates/oscar/stats.html:139 searx/templates/simple/stats.html:138 msgid "Comment(s)" -msgstr "" +msgstr "Коментар (и)" #: searx/templates/oscar/time-range.html:5 #: searx/templates/simple/filters/time_range.html:3 msgid "Anytime" -msgstr "" +msgstr "По всяко време" #: searx/templates/oscar/time-range.html:8 #: searx/templates/simple/filters/time_range.html:6 msgid "Last day" -msgstr "" +msgstr "Последен ден" #: searx/templates/oscar/time-range.html:11 #: searx/templates/simple/filters/time_range.html:9 msgid "Last week" -msgstr "" +msgstr "Миналата седмица" #: searx/templates/oscar/time-range.html:14 #: searx/templates/simple/filters/time_range.html:12 msgid "Last month" -msgstr "" +msgstr "Миналия месец" #: searx/templates/oscar/time-range.html:17 #: searx/templates/simple/filters/time_range.html:15 msgid "Last year" -msgstr "" +msgstr "Миналата година" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 @@ -1005,7 +1013,7 @@ msgstr "Внимание!" #: searx/templates/oscar/messages/first_time.html:7 msgid "It look like you are using SearXNG first time." -msgstr "" +msgstr "Изглежда, че използвате SearXNG за първи път." #: searx/templates/oscar/messages/no_cookies.html:3 msgid "Information!" @@ -1023,12 +1031,12 @@ msgstr "Няма налична достъпна информация." #: searx/templates/oscar/messages/no_results.html:4 #: searx/templates/simple/messages/no_results.html:6 msgid "Engines cannot retrieve results." -msgstr "" +msgstr "Търсачките не могат да извлекат резултати." #: searx/templates/oscar/messages/no_results.html:13 #: searx/templates/simple/messages/no_results.html:15 msgid "Please, try again later or find another SearXNG instance." -msgstr "" +msgstr "Моля, опитайте отново по-късно или намерете друг сървър SearXNG." #: searx/templates/oscar/messages/no_results.html:17 #: searx/templates/simple/messages/no_results.html:20 @@ -1077,7 +1085,7 @@ msgstr "скрий медия" #: searx/templates/oscar/result_templates/videos.html:19 #: searx/templates/simple/result_templates/images.html:21 msgid "Author" -msgstr "" +msgstr "Автор" #: searx/templates/oscar/result_templates/files.html:37 #: searx/templates/oscar/result_templates/torrent.html:7 @@ -1117,11 +1125,11 @@ msgstr "терабайт" #: searx/templates/oscar/result_templates/files.html:46 msgid "Date" -msgstr "" +msgstr "Дата" #: searx/templates/oscar/result_templates/files.html:48 msgid "Type" -msgstr "" +msgstr "Вид" #: searx/templates/oscar/result_templates/images.html:27 msgid "Get image" @@ -1135,7 +1143,7 @@ msgstr "Покажи източник" #: searx/templates/oscar/result_templates/map.html:26 #: searx/templates/simple/result_templates/map.html:12 msgid "address" -msgstr "" +msgstr "адрес" #: searx/templates/oscar/result_templates/map.html:59 #: searx/templates/simple/result_templates/map.html:43 @@ -1174,7 +1182,7 @@ msgstr "скрий видеото" #: searx/templates/oscar/result_templates/videos.html:20 msgid "Length" -msgstr "" +msgstr "Дължина" #: searx/templates/simple/categories.html:16 msgid "Click on the magnifier to perform search" @@ -1182,19 +1190,20 @@ msgstr "Кликнете лупичката, за да изпълните тър #: searx/templates/simple/preferences.html:85 msgid "Errors:" -msgstr "" +msgstr "Грешки:" #: searx/templates/simple/preferences.html:181 msgid "User interface" -msgstr "" +msgstr "Потребителски интерфейс" #: searx/templates/simple/preferences.html:208 msgid "Theme style" -msgstr "" +msgstr "Тематичен стил" #: searx/templates/simple/preferences.html:216 msgid "Choose auto to follow your browser settings" msgstr "" +"Изберете автоматични настойки, за да следвате настройките на браузъра си" #: searx/templates/simple/preferences.html:275 msgid "Currently used search engines" @@ -1202,7 +1211,7 @@ msgstr "Използвани търсачки в момента" #: searx/templates/simple/preferences.html:285 msgid "Supports selected language" -msgstr "" +msgstr "Поддържка на избраният език" #: searx/templates/simple/results.html:24 msgid "Answers" @@ -1211,25 +1220,25 @@ msgstr "Отговори" #: searx/templates/simple/search.html:9 #: searx/templates/simple/simple_search.html:5 msgid "clear" -msgstr "" +msgstr "изчисти" #: searx/templates/simple/search.html:10 #: searx/templates/simple/simple_search.html:6 msgid "search" -msgstr "" +msgstr "търси" #: searx/templates/simple/result_templates/default.html:14 #: searx/templates/simple/result_templates/videos.html:14 msgid "This site did not provide any description." -msgstr "" +msgstr "Този сайт не предостави никакво описание." #: searx/templates/simple/result_templates/images.html:22 msgid "Format" -msgstr "" +msgstr "Формат" #: searx/templates/simple/result_templates/images.html:24 msgid "Engine" -msgstr "" +msgstr "Търсачка" #~ msgid "Engine time (sec)" #~ msgstr "" @@ -1343,4 +1352,3 @@ msgstr "" #~ " contains your query. Your browser " #~ "can record this title." #~ msgstr "" - diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo Binary files differindex 90ebd5a02..4e0d8e251 100644 --- a/searx/translations/es/LC_MESSAGES/messages.mo +++ b/searx/translations/es/LC_MESSAGES/messages.mo diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po index cfb3e2302..9fb1c744b 100644 --- a/searx/translations/es/LC_MESSAGES/messages.po +++ b/searx/translations/es/LC_MESSAGES/messages.po @@ -17,18 +17,19 @@ # wefwefew ewfewfewf <nnnedmz0d@moakt.ws>, 2016 msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2021-11-24 19:24+0000\n" -"PO-Revision-Date: 2021-11-23 10:08+0000\n" -"Last-Translator: Markus Heiser <markus.heiser@darmarit.de>\n" +"PO-Revision-Date: 2021-12-03 07:17+0000\n" +"Last-Translator: Alexandre Flament <alex@al-f.net>\n" +"Language-Team: Spanish <https://weblate.bubu1.eu/projects/searxng/searxng/es/" +">\n" "Language: es\n" -"Language-Team: Spanish " -"<https://weblate.bubu1.eu/projects/searxng/searxng/es/>\n" -"Plural-Forms: nplurals=2; plural=n != 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.8.1\n" "Generated-By: Babel 2.9.1\n" #: searx/webapp.py:164 @@ -77,47 +78,47 @@ msgstr "Ciencia" #: searx/webapp.py:178 msgid "auto" -msgstr "" +msgstr "auto" #: searx/webapp.py:179 msgid "light" -msgstr "" +msgstr "claro" #: searx/webapp.py:180 msgid "dark" -msgstr "" +msgstr "oscuro" #: searx/webapp.py:184 msgid "timeout" -msgstr "" +msgstr "expirado" #: searx/webapp.py:185 msgid "parsing error" -msgstr "" +msgstr "error de procesamiento" #: searx/webapp.py:186 msgid "HTTP protocol error" -msgstr "" +msgstr "Error de protocolo HTTP" #: searx/webapp.py:187 msgid "network error" -msgstr "" +msgstr "Error de red" #: searx/webapp.py:189 msgid "unexpected crash" -msgstr "" +msgstr "cierre inesperado" #: searx/webapp.py:196 msgid "HTTP error" -msgstr "" +msgstr "Error de HTTP" #: searx/webapp.py:197 msgid "HTTP connection error" -msgstr "" +msgstr "Error de conexíon HTTP" #: searx/webapp.py:203 msgid "proxy error" -msgstr "" +msgstr "error de proxy" #: searx/webapp.py:204 msgid "CAPTCHA" @@ -125,15 +126,15 @@ msgstr "CAPTCHA" #: searx/webapp.py:205 msgid "too many requests" -msgstr "" +msgstr "demasiadas peticiones" #: searx/webapp.py:206 msgid "access denied" -msgstr "" +msgstr "acceso denegado" #: searx/webapp.py:207 msgid "server API error" -msgstr "" +msgstr "error en la API del servidor" #: searx/webapp.py:399 msgid "No item found" @@ -142,7 +143,7 @@ msgstr "Ningún artículo encontrado" #: searx/engines/qwant.py:198 #: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401 msgid "Source" -msgstr "" +msgstr "Fuente" #: searx/webapp.py:523 searx/webapp.py:935 msgid "Invalid settings, please edit your preferences" @@ -1379,4 +1380,3 @@ msgstr "" #~ " contains your query. Your browser " #~ "can record this title." #~ msgstr "" - diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo Binary files differindex dba239ec5..875fe50e2 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.mo +++ b/searx/translations/fr/LC_MESSAGES/messages.mo diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po index ff74b60d0..d9b252406 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.po +++ b/searx/translations/fr/LC_MESSAGES/messages.po @@ -13,18 +13,19 @@ # rike, 2014 msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2021-11-24 19:24+0000\n" -"PO-Revision-Date: 2021-08-27 07:16+0000\n" +"PO-Revision-Date: 2021-12-03 07:17+0000\n" "Last-Translator: Alexandre Flament <alex@al-f.net>\n" +"Language-Team: French <https://weblate.bubu1.eu/projects/searxng/searxng/fr/>" +"\n" "Language: fr\n" -"Language-Team: French " -"<https://weblate.bubu1.eu/projects/searxng/searxng/fr/>\n" -"Plural-Forms: nplurals=2; plural=n > 1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.8.1\n" "Generated-By: Babel 2.9.1\n" #: searx/webapp.py:164 @@ -73,15 +74,15 @@ msgstr "science" #: searx/webapp.py:178 msgid "auto" -msgstr "" +msgstr "auto" #: searx/webapp.py:179 msgid "light" -msgstr "" +msgstr "clair" #: searx/webapp.py:180 msgid "dark" -msgstr "" +msgstr "sombre" #: searx/webapp.py:184 msgid "timeout" @@ -210,11 +211,11 @@ msgstr "hash digest" #: searx/plugins/hostname_replace.py:9 msgid "Hostname replace" -msgstr "" +msgstr "Remplacer les noms de domaine" #: searx/plugins/hostname_replace.py:10 msgid "Rewrite result hostnames or remove results based on the hostname" -msgstr "" +msgstr "Réécrit ou supprime les résultats en se basant sur les noms de domaine" #: searx/plugins/infinite_scroll.py:3 msgid "Infinite scroll" @@ -596,12 +597,12 @@ msgstr "Changer la langue d'affichage" #: searx/templates/oscar/preferences.html:210 #: searx/templates/simple/preferences.html:197 msgid "Theme" -msgstr "" +msgstr "Thème" #: searx/templates/oscar/preferences.html:211 #: searx/templates/simple/preferences.html:205 msgid "Change SearXNG layout" -msgstr "" +msgstr "Change l'apparence de SearXNG" #: searx/templates/oscar/preferences.html:222 #: searx/templates/oscar/preferences.html:228 @@ -666,7 +667,7 @@ msgstr "Proxy d'images" #: searx/templates/oscar/preferences.html:274 #: searx/templates/simple/preferences.html:256 msgid "Proxying image results through SearXNG" -msgstr "" +msgstr "Proxifier les images à travers SearXNG" #: searx/templates/oscar/preferences.html:277 #: searx/templates/oscar/preferences.html:288 @@ -685,7 +686,7 @@ msgstr "Désactivé" #: searx/templates/oscar/preferences.html:284 #: searx/templates/simple/preferences.html:261 msgid "Query in the page's title" -msgstr "" +msgstr "Requête dans le titre de la page" #: searx/templates/oscar/preferences.html:285 #: searx/templates/simple/preferences.html:268 @@ -693,6 +694,8 @@ msgid "" "When enabled, the result page's title contains your query. Your browser " "can record this title" msgstr "" +"Activer pour inclure la requête utilisateur dans le titre de la page HTML. " +"Votre navigateur peut être enregistrer ce titre de page" #: searx/templates/oscar/preferences.html:315 msgid "Allow all" @@ -777,7 +780,7 @@ msgstr "Exemples" #: searx/templates/oscar/preferences.html:411 #: searx/templates/simple/preferences.html:327 msgid "This is the list of SearXNG's instant answering modules." -msgstr "" +msgstr "Liste des modules de réponse instantanée de SearXNG." #: searx/templates/oscar/preferences.html:424 #: searx/templates/simple/preferences.html:338 @@ -790,11 +793,13 @@ msgid "" "This is the list of cookies and their values SearXNG is storing on your " "computer." msgstr "" +"Les cookies et leurs valeurs que SearXNG stocke sur votre ordinateur sont " +"énumérés ci-dessous." #: searx/templates/oscar/preferences.html:446 #: searx/templates/simple/preferences.html:358 msgid "With that list, you can assess SearXNG transparency." -msgstr "" +msgstr "Avec cette liste, vous pouvez juger de la transparence de searx." #: searx/templates/oscar/preferences.html:451 #: searx/templates/simple/preferences.html:363 @@ -1028,7 +1033,7 @@ msgstr "Astuces !" #: searx/templates/oscar/messages/first_time.html:7 msgid "It look like you are using SearXNG first time." -msgstr "" +msgstr "Il semblerait que vous utilisez SearXNG pour la première fois." #: searx/templates/oscar/messages/no_cookies.html:3 msgid "Information!" @@ -1052,6 +1057,7 @@ msgstr "Les moteurs ne peuvent récupérer de résultats." #: searx/templates/simple/messages/no_results.html:15 msgid "Please, try again later or find another SearXNG instance." msgstr "" +"Veuillez réessayer ultérieurement ou trouver une autre instance SearXNG." #: searx/templates/oscar/messages/no_results.html:17 #: searx/templates/simple/messages/no_results.html:20 @@ -1213,11 +1219,11 @@ msgstr "Interface utilisateur" #: searx/templates/simple/preferences.html:208 msgid "Theme style" -msgstr "" +msgstr "Style du thème" #: searx/templates/simple/preferences.html:216 msgid "Choose auto to follow your browser settings" -msgstr "" +msgstr "Choisissez auto pour respecter les paramètres de votre navigateur" #: searx/templates/simple/preferences.html:275 msgid "Currently used search engines" @@ -1234,25 +1240,25 @@ msgstr "Réponses" #: searx/templates/simple/search.html:9 #: searx/templates/simple/simple_search.html:5 msgid "clear" -msgstr "" +msgstr "effacer" #: searx/templates/simple/search.html:10 #: searx/templates/simple/simple_search.html:6 msgid "search" -msgstr "" +msgstr "chercher" #: searx/templates/simple/result_templates/default.html:14 #: searx/templates/simple/result_templates/videos.html:14 msgid "This site did not provide any description." -msgstr "" +msgstr "Ce site n'a pas fourni de description." #: searx/templates/simple/result_templates/images.html:22 msgid "Format" -msgstr "" +msgstr "Format" #: searx/templates/simple/result_templates/images.html:24 msgid "Engine" -msgstr "" +msgstr "Moteur" #~ msgid "Engine time (sec)" #~ msgstr "Temps du moteur (sec)" @@ -1374,4 +1380,3 @@ msgstr "" #~ " contains your query. Your browser " #~ "can record this title." #~ msgstr "" - diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo Binary files differindex a872c1201..e18ff8af8 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.mo +++ b/searx/translations/ja/LC_MESSAGES/messages.mo diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po index 73e1948ea..d02e9e64c 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.po +++ b/searx/translations/ja/LC_MESSAGES/messages.po @@ -14,18 +14,19 @@ # Thomas Pointhuber, 2015-2016 msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2021-11-24 19:24+0000\n" -"PO-Revision-Date: 2020-07-09 13:10+0000\n" -"Last-Translator: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>\n" +"PO-Revision-Date: 2021-12-03 07:17+0000\n" +"Last-Translator: Alexandre Flament <alex@al-f.net>\n" +"Language-Team: Japanese <https://weblate.bubu1.eu/projects/searxng/searxng/" +"ja/>\n" "Language: ja\n" -"Language-Team: Japanese " -"(http://www.transifex.com/asciimoo/searx/language/ja/)\n" -"Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.8.1\n" "Generated-By: Babel 2.9.1\n" #: searx/webapp.py:164 @@ -74,7 +75,7 @@ msgstr "学問" #: searx/webapp.py:178 msgid "auto" -msgstr "" +msgstr "自動" #: searx/webapp.py:179 msgid "light" @@ -82,11 +83,11 @@ msgstr "" #: searx/webapp.py:180 msgid "dark" -msgstr "" +msgstr "ダーク" #: searx/webapp.py:184 msgid "timeout" -msgstr "" +msgstr "タイムアウト" #: searx/webapp.py:185 msgid "parsing error" @@ -94,43 +95,43 @@ msgstr "" #: searx/webapp.py:186 msgid "HTTP protocol error" -msgstr "" +msgstr "HTTPプロトコルエラー" #: searx/webapp.py:187 msgid "network error" -msgstr "" +msgstr "ネットワークエラー" #: searx/webapp.py:189 msgid "unexpected crash" -msgstr "" +msgstr "予期しないクラッシュ" #: searx/webapp.py:196 msgid "HTTP error" -msgstr "" +msgstr "HTTPエラー" #: searx/webapp.py:197 msgid "HTTP connection error" -msgstr "" +msgstr "HTTP接続エラー" #: searx/webapp.py:203 msgid "proxy error" -msgstr "" +msgstr "プロキシエラー" #: searx/webapp.py:204 msgid "CAPTCHA" -msgstr "" +msgstr "CAPTCHA" #: searx/webapp.py:205 msgid "too many requests" -msgstr "" +msgstr "多すぎるリクエスト" #: searx/webapp.py:206 msgid "access denied" -msgstr "" +msgstr "アクセスが拒否されました" #: searx/webapp.py:207 msgid "server API error" -msgstr "" +msgstr "サーバーAPIエラー" #: searx/webapp.py:399 msgid "No item found" @@ -139,7 +140,7 @@ msgstr "アイテムが見つかりません" #: searx/engines/qwant.py:198 #: searx/templates/simple/result_templates/images.html:23 searx/webapp.py:401 msgid "Source" -msgstr "" +msgstr "ソース" #: searx/webapp.py:523 searx/webapp.py:935 msgid "Invalid settings, please edit your preferences" @@ -163,7 +164,7 @@ msgstr "{hours}時間と{minutes}分前" #: searx/webapp.py:856 msgid "Suspended" -msgstr "" +msgstr "一時停止" #: searx/answerers/random/answerer.py:65 msgid "Random value generator" @@ -199,15 +200,15 @@ msgstr "この出版物には要約がありません。" #: searx/engines/qwant.py:200 msgid "Channel" -msgstr "" +msgstr "チャンネル" #: searx/plugins/hash_plugin.py:24 msgid "Converts strings to different hash digests." -msgstr "" +msgstr "文字列を異なるハッシュダイジェストに変換。" #: searx/plugins/hash_plugin.py:52 msgid "hash digest" -msgstr "" +msgstr "ハッシュダイジェスト" #: searx/plugins/hostname_replace.py:9 msgid "Hostname replace" @@ -1346,4 +1347,3 @@ msgstr "" #~ " contains your query. Your browser " #~ "can record this title." #~ msgstr "" - |