Merge pull request #1153 from return42/drop-oscar
[theme] peel out oscar from SearXNG development
							
								
								
									
										7
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -8,13 +8,6 @@ updates: | ||||
|       day: "friday" | ||||
|     open-pull-requests-limit: 5 | ||||
|     target-branch: "master" | ||||
|   - package-ecosystem: "npm" | ||||
|     directory: "/searx/static/themes/oscar" | ||||
|     schedule: | ||||
|       interval: "weekly" | ||||
|       day: "friday" | ||||
|     open-pull-requests-limit: 5 | ||||
|     target-branch: "master" | ||||
|   - package-ecosystem: "npm" | ||||
|     directory: "/searx/static/themes/simple" | ||||
|     schedule: | ||||
|  | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						| @ -87,7 +87,7 @@ MANAGE += pyenv pyenv.install pyenv.uninstall | ||||
| MANAGE += pypi.upload pypi.upload.test | ||||
| MANAGE += format.python | ||||
| MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean | ||||
| MANAGE += themes.all themes.oscar themes.simple themes.simple.test pygments.less | ||||
| MANAGE += themes.all themes.simple themes.simple.test pygments.less | ||||
| MANAGE += static.build.commit static.build.drop static.build.restore | ||||
| MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs | ||||
| 
 | ||||
|  | ||||
| @ -24,7 +24,7 @@ Sample response | ||||
|        "images", | ||||
|      ], | ||||
|      "default_locale": "", | ||||
|      "default_theme": "oscar", | ||||
|      "default_theme": "simple", | ||||
|      "engines": [ | ||||
|        { | ||||
|          "categories": [ | ||||
|  | ||||
| @ -18,9 +18,8 @@ All of the engines above are just commented out in the :origin:`settings.yml | ||||
| dependencies before using them. | ||||
| 
 | ||||
| By default, the engines use the ``key-value`` template for displaying results / | ||||
| see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` & | ||||
| :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||
| themes.  If you are not satisfied with the original result layout, you can use | ||||
| see :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||
| theme.  If you are not satisfied with the original result layout, you can use | ||||
| your own template, set ``result_template`` attribute to ``{template_name}`` and | ||||
| place the templates at:: | ||||
| 
 | ||||
|  | ||||
| @ -30,9 +30,8 @@ engines, e.g. ``database:`` ... | ||||
|      query_str: ... | ||||
| 
 | ||||
| By default, the engines use the ``key-value`` template for displaying results / | ||||
| see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` & | ||||
| :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||
| themes.  If you are not satisfied with the original result layout, you can use | ||||
| see :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||
| theme.  If you are not satisfied with the original result layout, you can use | ||||
| your own template, set ``result_template`` attribute to ``{template_name}`` and | ||||
| place the templates at:: | ||||
| 
 | ||||
|  | ||||
| @ -75,8 +75,8 @@ Parameters | ||||
|   Filter search results of engines which support safe search.  See if an engine | ||||
|   supports safe search in the preferences page of an instance. | ||||
| 
 | ||||
| ``theme`` : default ``oscar`` | ||||
|   [ ``oscar``, ``simple`` ] | ||||
| ``theme`` : default ``simple`` | ||||
|   [ ``simple`` ] | ||||
| 
 | ||||
|   Theme of instance. | ||||
| 
 | ||||
| @ -84,16 +84,6 @@ Parameters | ||||
|   instance administrator deleted, created or renamed themes on their instance. | ||||
|   See the available options in the preferences page of the instance. | ||||
| 
 | ||||
| ``oscar-style`` : default ``logicodev`` | ||||
|   [ ``pointhi``, ``logicodev`` ] | ||||
| 
 | ||||
|   Style of Oscar theme.  It is only parsed if the theme of an instance is | ||||
|   ``oscar``. | ||||
| 
 | ||||
|   Please note, available styles depend on an instance.  It is possible that an | ||||
|   instance administrator deleted, created or renamed styles on their | ||||
|   instance. See the available options in the preferences page of the instance. | ||||
| 
 | ||||
| ``enabled_plugins`` : optional | ||||
|   List of enabled plugins. | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										16
									
								
								manage
									
									
									
									
									
								
							
							
						
						| @ -115,7 +115,6 @@ test.: | ||||
|   clean     : clean intermediate test stuff | ||||
| themes.: | ||||
|   all       : build all themes | ||||
|   oscar     : build oscar theme | ||||
|   simple    : build simple theme | ||||
| pygments.: | ||||
|   less      : build LESS files for pygments | ||||
| @ -554,9 +553,6 @@ node.env() { | ||||
|     nodejs.ensure | ||||
|     (   set -e | ||||
| 
 | ||||
|         build_msg INSTALL "searx/static/themes/oscar/package.json" | ||||
|         npm --prefix searx/static/themes/oscar install | ||||
| 
 | ||||
|         build_msg INSTALL "searx/static/themes/simple/package.json" | ||||
|         npm --prefix searx/static/themes/simple install | ||||
|     ) | ||||
| @ -576,7 +572,6 @@ node.clean() { | ||||
|     fi | ||||
|     build_msg CLEAN "themes -- locally installed npm dependencies" | ||||
|     (   set -e | ||||
|         npm --prefix searx/static/themes/oscar run clean | ||||
|         npm --prefix searx/static/themes/simple run clean | ||||
|     ) | ||||
|     dump_return $? | ||||
| @ -762,7 +757,6 @@ themes.all() { | ||||
|     (   set -e | ||||
|         pygments.less | ||||
|         node.env | ||||
|         themes.oscar | ||||
|         themes.simple | ||||
|     ) | ||||
|     dump_return $? | ||||
| @ -771,14 +765,14 @@ themes.all() { | ||||
| themes.live() { | ||||
|     local LIVE_THEME="${LIVE_THEME:-${1}}" | ||||
|     case "${LIVE_THEME}" in | ||||
|         simple|oscar) | ||||
|         simple) | ||||
|             theme="searx/static/themes/${LIVE_THEME}" | ||||
|             ;; | ||||
|         '') | ||||
|             die_caller 42 "missing theme argument" | ||||
|             ;; | ||||
|         *) | ||||
|             die_caller 42 "unknown theme '${LIVE_THEME}' // [simple|oscar]'" | ||||
|             die_caller 42 "unknown theme '${LIVE_THEME}' // [simple]'" | ||||
|             ;; | ||||
|     esac | ||||
|     build_msg GRUNT "theme: $1 (live build)" | ||||
| @ -792,12 +786,6 @@ themes.live() { | ||||
|         | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |' | ||||
| } | ||||
| 
 | ||||
| themes.oscar() { | ||||
|     build_msg GRUNT "theme: oscar" | ||||
|     npm --prefix searx/static/themes/oscar run build | ||||
|     dump_return $? | ||||
| } | ||||
| 
 | ||||
| themes.simple() { | ||||
|     (   set -e | ||||
|         build_msg GRUNT "theme: simple" | ||||
|  | ||||
| @ -362,11 +362,6 @@ class Preferences: | ||||
|                 locked=is_locked('doi_resolver'), | ||||
|                 choices=DOI_RESOLVERS | ||||
|             ), | ||||
|             'oscar-style': EnumStringSetting( | ||||
|                 settings['ui']['theme_args']['oscar_style'], | ||||
|                 locked=is_locked('oscar-style'), | ||||
|                 choices=['', 'logicodev', 'logicodev-dark', 'pointhi'] | ||||
|             ), | ||||
|             'simple_style': EnumStringSetting( | ||||
|                 settings['ui']['theme_args']['simple_style'], | ||||
|                 locked=is_locked('simple_style'), | ||||
|  | ||||
| @ -86,8 +86,6 @@ ui: | ||||
|   # Open result links in a new tab by default | ||||
|   # results_on_new_tab: false | ||||
|   theme_args: | ||||
|     # default style of oscar | ||||
|     oscar_style: logicodev | ||||
|     # style of simple theme: auto, light, dark | ||||
|     simple_style: auto | ||||
| 
 | ||||
|  | ||||
| @ -18,7 +18,6 @@ searx_dir = abspath(dirname(__file__)) | ||||
| logger = logging.getLogger('searx') | ||||
| OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss'] | ||||
| LANGUAGE_CODES = ['all'] + list(l[0] for l in languages) | ||||
| OSCAR_STYLE = ('logicodev', 'logicodev-dark', 'pointhi') | ||||
| SIMPLE_STYLE = ('auto', 'light', 'dark') | ||||
| CATEGORIES_AS_TABS = { | ||||
|     'general': {}, | ||||
| @ -181,7 +180,6 @@ SCHEMA = { | ||||
|         'default_theme': SettingsValue(str, 'simple'), | ||||
|         'default_locale': SettingsValue(str, ''), | ||||
|         'theme_args': { | ||||
|             'oscar_style': SettingsValue(OSCAR_STYLE, 'logicodev'), | ||||
|             'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'), | ||||
|         }, | ||||
|         'results_on_new_tab': SettingsValue(bool, False), | ||||
|  | ||||
							
								
								
									
										2
									
								
								searx/static/themes/oscar/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,2 +0,0 @@ | ||||
| /node_modules | ||||
| package-lock.json | ||||
| @ -1,56 +0,0 @@ | ||||
| install dependencies | ||||
| ~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| run this command in the directory ``searx/static/themes/oscar`` | ||||
| 
 | ||||
| ``npm install`` | ||||
| 
 | ||||
| compile sources | ||||
| ~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| run this command in the directory ``searx/static/themes/oscar`` | ||||
| 
 | ||||
| ``grunt`` | ||||
| 
 | ||||
| or in the root directory: | ||||
| 
 | ||||
| ``make grunt`` | ||||
| 
 | ||||
| directory structure | ||||
| ~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| see: | ||||
| 
 | ||||
| - gruntfile.js | ||||
| - package.json | ||||
| 
 | ||||
| ************* | ||||
| css directory | ||||
| ************* | ||||
| 
 | ||||
| - ``bootstrap*``: bootstrap NPM package, | ||||
| - ``leaflet.*``: leaflet NPM package | ||||
| - ``leaflet.min.css``: minimized version of ``leaflet.css`` (see gruntfile.js) | ||||
| - ``logicodev.*``: compiled from ``src/less/logicodev`` | ||||
| - ``logicodev-dark*``: compiled from ``src/less/logicodev-dark`` | ||||
| - ``pointhi*``: compiled from ``src/less/pointhi`` | ||||
| - ``images``: leaflet NPM package | ||||
| 
 | ||||
| ************** | ||||
| font directory | ||||
| ************** | ||||
| 
 | ||||
| - from bootstrap NPM package | ||||
| 
 | ||||
| ************ | ||||
| js directory | ||||
| ************ | ||||
| 
 | ||||
| - ``searx.*``: compiled from ``src/js`` | ||||
| - other files are from NPM packages | ||||
| 
 | ||||
| ************* | ||||
| img directory | ||||
| ************* | ||||
| 
 | ||||
| - images for the oscar theme | ||||
							
								
								
									
										587
									
								
								searx/static/themes/oscar/css/bootstrap-theme.css
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,587 +0,0 @@ | ||||
| /*! | ||||
|  * Bootstrap v3.4.1 (https://getbootstrap.com/) | ||||
|  * Copyright 2011-2019 Twitter, Inc. | ||||
|  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | ||||
|  */ | ||||
| .btn-default, | ||||
| .btn-primary, | ||||
| .btn-success, | ||||
| .btn-info, | ||||
| .btn-warning, | ||||
| .btn-danger { | ||||
|   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); | ||||
|   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); | ||||
|   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); | ||||
| } | ||||
| .btn-default:active, | ||||
| .btn-primary:active, | ||||
| .btn-success:active, | ||||
| .btn-info:active, | ||||
| .btn-warning:active, | ||||
| .btn-danger:active, | ||||
| .btn-default.active, | ||||
| .btn-primary.active, | ||||
| .btn-success.active, | ||||
| .btn-info.active, | ||||
| .btn-warning.active, | ||||
| .btn-danger.active { | ||||
|   -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | ||||
|   box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); | ||||
| } | ||||
| .btn-default.disabled, | ||||
| .btn-primary.disabled, | ||||
| .btn-success.disabled, | ||||
| .btn-info.disabled, | ||||
| .btn-warning.disabled, | ||||
| .btn-danger.disabled, | ||||
| .btn-default[disabled], | ||||
| .btn-primary[disabled], | ||||
| .btn-success[disabled], | ||||
| .btn-info[disabled], | ||||
| .btn-warning[disabled], | ||||
| .btn-danger[disabled], | ||||
| fieldset[disabled] .btn-default, | ||||
| fieldset[disabled] .btn-primary, | ||||
| fieldset[disabled] .btn-success, | ||||
| fieldset[disabled] .btn-info, | ||||
| fieldset[disabled] .btn-warning, | ||||
| fieldset[disabled] .btn-danger { | ||||
|   -webkit-box-shadow: none; | ||||
|   box-shadow: none; | ||||
| } | ||||
| .btn-default .badge, | ||||
| .btn-primary .badge, | ||||
| .btn-success .badge, | ||||
| .btn-info .badge, | ||||
| .btn-warning .badge, | ||||
| .btn-danger .badge { | ||||
|   text-shadow: none; | ||||
| } | ||||
| .btn:active, | ||||
| .btn.active { | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-default { | ||||
|   background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); | ||||
|   background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); | ||||
|   background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #dbdbdb; | ||||
|   text-shadow: 0 1px 0 #fff; | ||||
|   border-color: #ccc; | ||||
| } | ||||
| .btn-default:hover, | ||||
| .btn-default:focus { | ||||
|   background-color: #e0e0e0; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-default:active, | ||||
| .btn-default.active { | ||||
|   background-color: #e0e0e0; | ||||
|   border-color: #dbdbdb; | ||||
| } | ||||
| .btn-default.disabled, | ||||
| .btn-default[disabled], | ||||
| fieldset[disabled] .btn-default, | ||||
| .btn-default.disabled:hover, | ||||
| .btn-default[disabled]:hover, | ||||
| fieldset[disabled] .btn-default:hover, | ||||
| .btn-default.disabled:focus, | ||||
| .btn-default[disabled]:focus, | ||||
| fieldset[disabled] .btn-default:focus, | ||||
| .btn-default.disabled.focus, | ||||
| .btn-default[disabled].focus, | ||||
| fieldset[disabled] .btn-default.focus, | ||||
| .btn-default.disabled:active, | ||||
| .btn-default[disabled]:active, | ||||
| fieldset[disabled] .btn-default:active, | ||||
| .btn-default.disabled.active, | ||||
| .btn-default[disabled].active, | ||||
| fieldset[disabled] .btn-default.active { | ||||
|   background-color: #e0e0e0; | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-primary { | ||||
|   background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); | ||||
|   background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); | ||||
|   background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #245580; | ||||
| } | ||||
| .btn-primary:hover, | ||||
| .btn-primary:focus { | ||||
|   background-color: #265a88; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-primary:active, | ||||
| .btn-primary.active { | ||||
|   background-color: #265a88; | ||||
|   border-color: #245580; | ||||
| } | ||||
| .btn-primary.disabled, | ||||
| .btn-primary[disabled], | ||||
| fieldset[disabled] .btn-primary, | ||||
| .btn-primary.disabled:hover, | ||||
| .btn-primary[disabled]:hover, | ||||
| fieldset[disabled] .btn-primary:hover, | ||||
| .btn-primary.disabled:focus, | ||||
| .btn-primary[disabled]:focus, | ||||
| fieldset[disabled] .btn-primary:focus, | ||||
| .btn-primary.disabled.focus, | ||||
| .btn-primary[disabled].focus, | ||||
| fieldset[disabled] .btn-primary.focus, | ||||
| .btn-primary.disabled:active, | ||||
| .btn-primary[disabled]:active, | ||||
| fieldset[disabled] .btn-primary:active, | ||||
| .btn-primary.disabled.active, | ||||
| .btn-primary[disabled].active, | ||||
| fieldset[disabled] .btn-primary.active { | ||||
|   background-color: #265a88; | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-success { | ||||
|   background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); | ||||
|   background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); | ||||
|   background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #3e8f3e; | ||||
| } | ||||
| .btn-success:hover, | ||||
| .btn-success:focus { | ||||
|   background-color: #419641; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-success:active, | ||||
| .btn-success.active { | ||||
|   background-color: #419641; | ||||
|   border-color: #3e8f3e; | ||||
| } | ||||
| .btn-success.disabled, | ||||
| .btn-success[disabled], | ||||
| fieldset[disabled] .btn-success, | ||||
| .btn-success.disabled:hover, | ||||
| .btn-success[disabled]:hover, | ||||
| fieldset[disabled] .btn-success:hover, | ||||
| .btn-success.disabled:focus, | ||||
| .btn-success[disabled]:focus, | ||||
| fieldset[disabled] .btn-success:focus, | ||||
| .btn-success.disabled.focus, | ||||
| .btn-success[disabled].focus, | ||||
| fieldset[disabled] .btn-success.focus, | ||||
| .btn-success.disabled:active, | ||||
| .btn-success[disabled]:active, | ||||
| fieldset[disabled] .btn-success:active, | ||||
| .btn-success.disabled.active, | ||||
| .btn-success[disabled].active, | ||||
| fieldset[disabled] .btn-success.active { | ||||
|   background-color: #419641; | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-info { | ||||
|   background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); | ||||
|   background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); | ||||
|   background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #28a4c9; | ||||
| } | ||||
| .btn-info:hover, | ||||
| .btn-info:focus { | ||||
|   background-color: #2aabd2; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-info:active, | ||||
| .btn-info.active { | ||||
|   background-color: #2aabd2; | ||||
|   border-color: #28a4c9; | ||||
| } | ||||
| .btn-info.disabled, | ||||
| .btn-info[disabled], | ||||
| fieldset[disabled] .btn-info, | ||||
| .btn-info.disabled:hover, | ||||
| .btn-info[disabled]:hover, | ||||
| fieldset[disabled] .btn-info:hover, | ||||
| .btn-info.disabled:focus, | ||||
| .btn-info[disabled]:focus, | ||||
| fieldset[disabled] .btn-info:focus, | ||||
| .btn-info.disabled.focus, | ||||
| .btn-info[disabled].focus, | ||||
| fieldset[disabled] .btn-info.focus, | ||||
| .btn-info.disabled:active, | ||||
| .btn-info[disabled]:active, | ||||
| fieldset[disabled] .btn-info:active, | ||||
| .btn-info.disabled.active, | ||||
| .btn-info[disabled].active, | ||||
| fieldset[disabled] .btn-info.active { | ||||
|   background-color: #2aabd2; | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-warning { | ||||
|   background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); | ||||
|   background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); | ||||
|   background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #e38d13; | ||||
| } | ||||
| .btn-warning:hover, | ||||
| .btn-warning:focus { | ||||
|   background-color: #eb9316; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-warning:active, | ||||
| .btn-warning.active { | ||||
|   background-color: #eb9316; | ||||
|   border-color: #e38d13; | ||||
| } | ||||
| .btn-warning.disabled, | ||||
| .btn-warning[disabled], | ||||
| fieldset[disabled] .btn-warning, | ||||
| .btn-warning.disabled:hover, | ||||
| .btn-warning[disabled]:hover, | ||||
| fieldset[disabled] .btn-warning:hover, | ||||
| .btn-warning.disabled:focus, | ||||
| .btn-warning[disabled]:focus, | ||||
| fieldset[disabled] .btn-warning:focus, | ||||
| .btn-warning.disabled.focus, | ||||
| .btn-warning[disabled].focus, | ||||
| fieldset[disabled] .btn-warning.focus, | ||||
| .btn-warning.disabled:active, | ||||
| .btn-warning[disabled]:active, | ||||
| fieldset[disabled] .btn-warning:active, | ||||
| .btn-warning.disabled.active, | ||||
| .btn-warning[disabled].active, | ||||
| fieldset[disabled] .btn-warning.active { | ||||
|   background-color: #eb9316; | ||||
|   background-image: none; | ||||
| } | ||||
| .btn-danger { | ||||
|   background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); | ||||
|   background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); | ||||
|   background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #b92c28; | ||||
| } | ||||
| .btn-danger:hover, | ||||
| .btn-danger:focus { | ||||
|   background-color: #c12e2a; | ||||
|   background-position: 0 -15px; | ||||
| } | ||||
| .btn-danger:active, | ||||
| .btn-danger.active { | ||||
|   background-color: #c12e2a; | ||||
|   border-color: #b92c28; | ||||
| } | ||||
| .btn-danger.disabled, | ||||
| .btn-danger[disabled], | ||||
| fieldset[disabled] .btn-danger, | ||||
| .btn-danger.disabled:hover, | ||||
| .btn-danger[disabled]:hover, | ||||
| fieldset[disabled] .btn-danger:hover, | ||||
| .btn-danger.disabled:focus, | ||||
| .btn-danger[disabled]:focus, | ||||
| fieldset[disabled] .btn-danger:focus, | ||||
| .btn-danger.disabled.focus, | ||||
| .btn-danger[disabled].focus, | ||||
| fieldset[disabled] .btn-danger.focus, | ||||
| .btn-danger.disabled:active, | ||||
| .btn-danger[disabled]:active, | ||||
| fieldset[disabled] .btn-danger:active, | ||||
| .btn-danger.disabled.active, | ||||
| .btn-danger[disabled].active, | ||||
| fieldset[disabled] .btn-danger.active { | ||||
|   background-color: #c12e2a; | ||||
|   background-image: none; | ||||
| } | ||||
| .thumbnail, | ||||
| .img-thumbnail { | ||||
|   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); | ||||
|   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); | ||||
| } | ||||
| .dropdown-menu > li > a:hover, | ||||
| .dropdown-menu > li > a:focus { | ||||
|   background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); | ||||
|   background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   background-color: #e8e8e8; | ||||
| } | ||||
| .dropdown-menu > .active > a, | ||||
| .dropdown-menu > .active > a:hover, | ||||
| .dropdown-menu > .active > a:focus { | ||||
|   background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|   background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); | ||||
|   background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   background-color: #2e6da4; | ||||
| } | ||||
| .navbar-default { | ||||
|   background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); | ||||
|   background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8)); | ||||
|   background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   border-radius: 4px; | ||||
|   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); | ||||
|   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); | ||||
| } | ||||
| .navbar-default .navbar-nav > .open > a, | ||||
| .navbar-default .navbar-nav > .active > a { | ||||
|   background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); | ||||
|   background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); | ||||
|   background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); | ||||
|   box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); | ||||
| } | ||||
| .navbar-brand, | ||||
| .navbar-nav > li > a { | ||||
|   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); | ||||
| } | ||||
| .navbar-inverse { | ||||
|   background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); | ||||
|   background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); | ||||
|   background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); | ||||
|   border-radius: 4px; | ||||
| } | ||||
| .navbar-inverse .navbar-nav > .open > a, | ||||
| .navbar-inverse .navbar-nav > .active > a { | ||||
|   background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); | ||||
|   background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); | ||||
|   background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); | ||||
|   box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); | ||||
| } | ||||
| .navbar-inverse .navbar-brand, | ||||
| .navbar-inverse .navbar-nav > li > a { | ||||
|   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||||
| } | ||||
| .navbar-static-top, | ||||
| .navbar-fixed-top, | ||||
| .navbar-fixed-bottom { | ||||
|   border-radius: 0; | ||||
| } | ||||
| @media (max-width: 767px) { | ||||
|   .navbar .navbar-nav .open .dropdown-menu > .active > a, | ||||
|   .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, | ||||
|   .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { | ||||
|     color: #fff; | ||||
|     background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|     background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|     background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); | ||||
|     background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); | ||||
|     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); | ||||
|     background-repeat: repeat-x; | ||||
|   } | ||||
| } | ||||
| .alert { | ||||
|   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); | ||||
|   -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||
|   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); | ||||
| } | ||||
| .alert-success { | ||||
|   background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); | ||||
|   background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); | ||||
|   background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #b2dba1; | ||||
| } | ||||
| .alert-info { | ||||
|   background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); | ||||
|   background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); | ||||
|   background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #9acfea; | ||||
| } | ||||
| .alert-warning { | ||||
|   background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); | ||||
|   background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); | ||||
|   background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #f5e79e; | ||||
| } | ||||
| .alert-danger { | ||||
|   background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); | ||||
|   background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); | ||||
|   background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #dca7a7; | ||||
| } | ||||
| .progress { | ||||
|   background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); | ||||
|   background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); | ||||
|   background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar { | ||||
|   background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); | ||||
|   background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); | ||||
|   background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar-success { | ||||
|   background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); | ||||
|   background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); | ||||
|   background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar-info { | ||||
|   background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); | ||||
|   background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); | ||||
|   background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar-warning { | ||||
|   background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); | ||||
|   background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); | ||||
|   background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar-danger { | ||||
|   background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); | ||||
|   background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); | ||||
|   background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .progress-bar-striped { | ||||
|   background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | ||||
|   background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | ||||
|   background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); | ||||
| } | ||||
| .list-group { | ||||
|   border-radius: 4px; | ||||
|   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); | ||||
|   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); | ||||
| } | ||||
| .list-group-item.active, | ||||
| .list-group-item.active:hover, | ||||
| .list-group-item.active:focus { | ||||
|   text-shadow: 0 -1px 0 #286090; | ||||
|   background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); | ||||
|   background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); | ||||
|   background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #2b669a; | ||||
| } | ||||
| .list-group-item.active .badge, | ||||
| .list-group-item.active:hover .badge, | ||||
| .list-group-item.active:focus .badge { | ||||
|   text-shadow: none; | ||||
| } | ||||
| .panel { | ||||
|   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); | ||||
|   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); | ||||
| } | ||||
| .panel-default > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); | ||||
|   background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .panel-primary > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|   background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); | ||||
|   background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .panel-success > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); | ||||
|   background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); | ||||
|   background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .panel-info > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); | ||||
|   background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); | ||||
|   background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .panel-warning > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); | ||||
|   background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); | ||||
|   background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .panel-danger > .panel-heading { | ||||
|   background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); | ||||
|   background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); | ||||
|   background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
| } | ||||
| .well { | ||||
|   background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); | ||||
|   background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); | ||||
|   background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); | ||||
|   background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); | ||||
|   filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); | ||||
|   background-repeat: repeat-x; | ||||
|   border-color: #dcdcdc; | ||||
|   -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); | ||||
|   box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); | ||||
| } | ||||
| /*# sourceMappingURL=bootstrap-theme.css.map */ | ||||
							
								
								
									
										6990
									
								
								searx/static/themes/oscar/css/bootstrap.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/bootstrap.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 696 B | 
| Before Width: | Height: | Size: 2.4 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 618 B | 
| @ -1,657 +0,0 @@ | ||||
| /* required styles */ | ||||
| 
 | ||||
| .leaflet-pane, | ||||
| .leaflet-tile, | ||||
| .leaflet-marker-icon, | ||||
| .leaflet-marker-shadow, | ||||
| .leaflet-tile-container, | ||||
| .leaflet-pane > svg, | ||||
| .leaflet-pane > canvas, | ||||
| .leaflet-zoom-box, | ||||
| .leaflet-image-layer, | ||||
| .leaflet-layer { | ||||
| 	position: absolute; | ||||
| 	left: 0; | ||||
| 	top: 0; | ||||
| 	} | ||||
| .leaflet-container { | ||||
| 	overflow: hidden; | ||||
| 	} | ||||
| .leaflet-tile, | ||||
| .leaflet-marker-icon, | ||||
| .leaflet-marker-shadow { | ||||
| 	-webkit-user-select: none; | ||||
| 	   -moz-user-select: none; | ||||
| 	        user-select: none; | ||||
| 	  -webkit-user-drag: none; | ||||
| 	} | ||||
| /* Prevents IE11 from highlighting tiles in blue */ | ||||
| .leaflet-tile::selection { | ||||
| 	background: transparent; | ||||
| } | ||||
| /* Safari renders non-retina tile on retina better with this, but Chrome is worse */ | ||||
| .leaflet-safari .leaflet-tile { | ||||
| 	image-rendering: -webkit-optimize-contrast; | ||||
| 	} | ||||
| /* hack that prevents hw layers "stretching" when loading new tiles */ | ||||
| .leaflet-safari .leaflet-tile-container { | ||||
| 	width: 1600px; | ||||
| 	height: 1600px; | ||||
| 	-webkit-transform-origin: 0 0; | ||||
| 	} | ||||
| .leaflet-marker-icon, | ||||
| .leaflet-marker-shadow { | ||||
| 	display: block; | ||||
| 	} | ||||
| /* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ | ||||
| /* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ | ||||
| .leaflet-container .leaflet-overlay-pane svg { | ||||
| 	max-width: none !important; | ||||
| 	max-height: none !important; | ||||
| 	} | ||||
| .leaflet-container .leaflet-marker-pane img, | ||||
| .leaflet-container .leaflet-shadow-pane img, | ||||
| .leaflet-container .leaflet-tile-pane img, | ||||
| .leaflet-container img.leaflet-image-layer, | ||||
| .leaflet-container .leaflet-tile { | ||||
| 	max-width: none !important; | ||||
| 	max-height: none !important; | ||||
| 	width: auto; | ||||
| 	padding: 0; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-container.leaflet-touch-zoom { | ||||
| 	-ms-touch-action: pan-x pan-y; | ||||
| 	touch-action: pan-x pan-y; | ||||
| 	} | ||||
| .leaflet-container.leaflet-touch-drag { | ||||
| 	-ms-touch-action: pinch-zoom; | ||||
| 	/* Fallback for FF which doesn't support pinch-zoom */ | ||||
| 	touch-action: none; | ||||
| 	touch-action: pinch-zoom; | ||||
| } | ||||
| .leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { | ||||
| 	-ms-touch-action: none; | ||||
| 	touch-action: none; | ||||
| } | ||||
| .leaflet-container { | ||||
| 	-webkit-tap-highlight-color: transparent; | ||||
| } | ||||
| .leaflet-container a { | ||||
| 	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); | ||||
| } | ||||
| .leaflet-tile { | ||||
| 	filter: inherit; | ||||
| 	visibility: hidden; | ||||
| 	} | ||||
| .leaflet-tile-loaded { | ||||
| 	visibility: inherit; | ||||
| 	} | ||||
| .leaflet-zoom-box { | ||||
| 	width: 0; | ||||
| 	height: 0; | ||||
| 	-moz-box-sizing: border-box; | ||||
| 	     box-sizing: border-box; | ||||
| 	z-index: 800; | ||||
| 	} | ||||
| /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ | ||||
| .leaflet-overlay-pane svg { | ||||
| 	-moz-user-select: none; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-pane         { z-index: 400; } | ||||
| 
 | ||||
| .leaflet-tile-pane    { z-index: 200; } | ||||
| .leaflet-overlay-pane { z-index: 400; } | ||||
| .leaflet-shadow-pane  { z-index: 500; } | ||||
| .leaflet-marker-pane  { z-index: 600; } | ||||
| .leaflet-tooltip-pane   { z-index: 650; } | ||||
| .leaflet-popup-pane   { z-index: 700; } | ||||
| 
 | ||||
| .leaflet-map-pane canvas { z-index: 100; } | ||||
| .leaflet-map-pane svg    { z-index: 200; } | ||||
| 
 | ||||
| .leaflet-vml-shape { | ||||
| 	width: 1px; | ||||
| 	height: 1px; | ||||
| 	} | ||||
| .lvml { | ||||
| 	behavior: url(#default#VML); | ||||
| 	display: inline-block; | ||||
| 	position: absolute; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* control positioning */ | ||||
| 
 | ||||
| .leaflet-control { | ||||
| 	position: relative; | ||||
| 	z-index: 800; | ||||
| 	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ | ||||
| 	pointer-events: auto; | ||||
| 	} | ||||
| .leaflet-top, | ||||
| .leaflet-bottom { | ||||
| 	position: absolute; | ||||
| 	z-index: 1000; | ||||
| 	pointer-events: none; | ||||
| 	} | ||||
| .leaflet-top { | ||||
| 	top: 0; | ||||
| 	} | ||||
| .leaflet-right { | ||||
| 	right: 0; | ||||
| 	} | ||||
| .leaflet-bottom { | ||||
| 	bottom: 0; | ||||
| 	} | ||||
| .leaflet-left { | ||||
| 	left: 0; | ||||
| 	} | ||||
| .leaflet-control { | ||||
| 	float: left; | ||||
| 	clear: both; | ||||
| 	} | ||||
| .leaflet-right .leaflet-control { | ||||
| 	float: right; | ||||
| 	} | ||||
| .leaflet-top .leaflet-control { | ||||
| 	margin-top: 10px; | ||||
| 	} | ||||
| .leaflet-bottom .leaflet-control { | ||||
| 	margin-bottom: 10px; | ||||
| 	} | ||||
| .leaflet-left .leaflet-control { | ||||
| 	margin-left: 10px; | ||||
| 	} | ||||
| .leaflet-right .leaflet-control { | ||||
| 	margin-right: 10px; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* zoom and fade animations */ | ||||
| 
 | ||||
| .leaflet-fade-anim .leaflet-popup { | ||||
| 	opacity: 0; | ||||
| 	-webkit-transition: opacity 0.2s linear; | ||||
| 	   -moz-transition: opacity 0.2s linear; | ||||
| 	        transition: opacity 0.2s linear; | ||||
| 	} | ||||
| .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { | ||||
| 	opacity: 1; | ||||
| 	} | ||||
| .leaflet-zoom-animated { | ||||
| 	-webkit-transform-origin: 0 0; | ||||
| 	    -ms-transform-origin: 0 0; | ||||
| 	        transform-origin: 0 0; | ||||
| 	} | ||||
| svg.leaflet-zoom-animated { | ||||
| 	will-change: transform; | ||||
| } | ||||
| 
 | ||||
| .leaflet-zoom-anim .leaflet-zoom-animated { | ||||
| 	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); | ||||
| 	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1); | ||||
| 	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1); | ||||
| 	} | ||||
| .leaflet-zoom-anim .leaflet-tile, | ||||
| .leaflet-pan-anim .leaflet-tile { | ||||
| 	-webkit-transition: none; | ||||
| 	   -moz-transition: none; | ||||
| 	        transition: none; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-zoom-anim .leaflet-zoom-hide { | ||||
| 	visibility: hidden; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* cursors */ | ||||
| 
 | ||||
| .leaflet-interactive { | ||||
| 	cursor: pointer; | ||||
| 	} | ||||
| .leaflet-grab { | ||||
| 	cursor: -webkit-grab; | ||||
| 	cursor:    -moz-grab; | ||||
| 	cursor:         grab; | ||||
| 	} | ||||
| .leaflet-crosshair, | ||||
| .leaflet-crosshair .leaflet-interactive { | ||||
| 	cursor: crosshair; | ||||
| 	} | ||||
| .leaflet-popup-pane, | ||||
| .leaflet-control { | ||||
| 	cursor: auto; | ||||
| 	} | ||||
| .leaflet-dragging .leaflet-grab, | ||||
| .leaflet-dragging .leaflet-grab .leaflet-interactive, | ||||
| .leaflet-dragging .leaflet-marker-draggable { | ||||
| 	cursor: move; | ||||
| 	cursor: -webkit-grabbing; | ||||
| 	cursor:    -moz-grabbing; | ||||
| 	cursor:         grabbing; | ||||
| 	} | ||||
| 
 | ||||
| /* marker & overlays interactivity */ | ||||
| .leaflet-marker-icon, | ||||
| .leaflet-marker-shadow, | ||||
| .leaflet-image-layer, | ||||
| .leaflet-pane > svg path, | ||||
| .leaflet-tile-container { | ||||
| 	pointer-events: none; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-marker-icon.leaflet-interactive, | ||||
| .leaflet-image-layer.leaflet-interactive, | ||||
| .leaflet-pane > svg path.leaflet-interactive, | ||||
| svg.leaflet-image-layer.leaflet-interactive path { | ||||
| 	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ | ||||
| 	pointer-events: auto; | ||||
| 	} | ||||
| 
 | ||||
| /* visual tweaks */ | ||||
| 
 | ||||
| .leaflet-container { | ||||
| 	background: #ddd; | ||||
| 	outline-offset: 1px; | ||||
| 	} | ||||
| .leaflet-container a { | ||||
| 	color: #0078A8; | ||||
| 	} | ||||
| .leaflet-zoom-box { | ||||
| 	border: 2px dotted #38f; | ||||
| 	background: rgba(255,255,255,0.5); | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* general typography */ | ||||
| .leaflet-container { | ||||
| 	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; | ||||
| 	font-size: 12px; | ||||
| 	font-size: 0.75rem; | ||||
| 	line-height: 1.5; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* general toolbar styles */ | ||||
| 
 | ||||
| .leaflet-bar { | ||||
| 	box-shadow: 0 1px 5px rgba(0,0,0,0.65); | ||||
| 	border-radius: 4px; | ||||
| 	} | ||||
| .leaflet-bar a { | ||||
| 	background-color: #fff; | ||||
| 	border-bottom: 1px solid #ccc; | ||||
| 	width: 26px; | ||||
| 	height: 26px; | ||||
| 	line-height: 26px; | ||||
| 	display: block; | ||||
| 	text-align: center; | ||||
| 	text-decoration: none; | ||||
| 	color: black; | ||||
| 	} | ||||
| .leaflet-bar a, | ||||
| .leaflet-control-layers-toggle { | ||||
| 	background-position: 50% 50%; | ||||
| 	background-repeat: no-repeat; | ||||
| 	display: block; | ||||
| 	} | ||||
| .leaflet-bar a:hover, | ||||
| .leaflet-bar a:focus { | ||||
| 	background-color: #f4f4f4; | ||||
| 	} | ||||
| .leaflet-bar a:first-child { | ||||
| 	border-top-left-radius: 4px; | ||||
| 	border-top-right-radius: 4px; | ||||
| 	} | ||||
| .leaflet-bar a:last-child { | ||||
| 	border-bottom-left-radius: 4px; | ||||
| 	border-bottom-right-radius: 4px; | ||||
| 	border-bottom: none; | ||||
| 	} | ||||
| .leaflet-bar a.leaflet-disabled { | ||||
| 	cursor: default; | ||||
| 	background-color: #f4f4f4; | ||||
| 	color: #bbb; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-touch .leaflet-bar a { | ||||
| 	width: 30px; | ||||
| 	height: 30px; | ||||
| 	line-height: 30px; | ||||
| 	} | ||||
| .leaflet-touch .leaflet-bar a:first-child { | ||||
| 	border-top-left-radius: 2px; | ||||
| 	border-top-right-radius: 2px; | ||||
| 	} | ||||
| .leaflet-touch .leaflet-bar a:last-child { | ||||
| 	border-bottom-left-radius: 2px; | ||||
| 	border-bottom-right-radius: 2px; | ||||
| 	} | ||||
| 
 | ||||
| /* zoom control */ | ||||
| 
 | ||||
| .leaflet-control-zoom-in, | ||||
| .leaflet-control-zoom-out { | ||||
| 	font: bold 18px 'Lucida Console', Monaco, monospace; | ||||
| 	text-indent: 1px; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  { | ||||
| 	font-size: 22px; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* layers control */ | ||||
| 
 | ||||
| .leaflet-control-layers { | ||||
| 	box-shadow: 0 1px 5px rgba(0,0,0,0.4); | ||||
| 	background: #fff; | ||||
| 	border-radius: 5px; | ||||
| 	} | ||||
| .leaflet-control-layers-toggle { | ||||
| 	background-image: url(images/layers.png); | ||||
| 	width: 36px; | ||||
| 	height: 36px; | ||||
| 	} | ||||
| .leaflet-retina .leaflet-control-layers-toggle { | ||||
| 	background-image: url(images/layers-2x.png); | ||||
| 	background-size: 26px 26px; | ||||
| 	} | ||||
| .leaflet-touch .leaflet-control-layers-toggle { | ||||
| 	width: 44px; | ||||
| 	height: 44px; | ||||
| 	} | ||||
| .leaflet-control-layers .leaflet-control-layers-list, | ||||
| .leaflet-control-layers-expanded .leaflet-control-layers-toggle { | ||||
| 	display: none; | ||||
| 	} | ||||
| .leaflet-control-layers-expanded .leaflet-control-layers-list { | ||||
| 	display: block; | ||||
| 	position: relative; | ||||
| 	} | ||||
| .leaflet-control-layers-expanded { | ||||
| 	padding: 6px 10px 6px 6px; | ||||
| 	color: #333; | ||||
| 	background: #fff; | ||||
| 	} | ||||
| .leaflet-control-layers-scrollbar { | ||||
| 	overflow-y: scroll; | ||||
| 	overflow-x: hidden; | ||||
| 	padding-right: 5px; | ||||
| 	} | ||||
| .leaflet-control-layers-selector { | ||||
| 	margin-top: 2px; | ||||
| 	position: relative; | ||||
| 	top: 1px; | ||||
| 	} | ||||
| .leaflet-control-layers label { | ||||
| 	display: block; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 1.08333em; | ||||
| 	} | ||||
| .leaflet-control-layers-separator { | ||||
| 	height: 0; | ||||
| 	border-top: 1px solid #ddd; | ||||
| 	margin: 5px -10px 5px -6px; | ||||
| 	} | ||||
| 
 | ||||
| /* Default icon URLs */ | ||||
| .leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ | ||||
| 	background-image: url(images/marker-icon.png); | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* attribution and scale controls */ | ||||
| 
 | ||||
| .leaflet-container .leaflet-control-attribution { | ||||
| 	background: #fff; | ||||
| 	background: rgba(255, 255, 255, 0.8); | ||||
| 	margin: 0; | ||||
| 	} | ||||
| .leaflet-control-attribution, | ||||
| .leaflet-control-scale-line { | ||||
| 	padding: 0 5px; | ||||
| 	color: #333; | ||||
| 	line-height: 1.4; | ||||
| 	} | ||||
| .leaflet-control-attribution a { | ||||
| 	text-decoration: none; | ||||
| 	} | ||||
| .leaflet-control-attribution a:hover, | ||||
| .leaflet-control-attribution a:focus { | ||||
| 	text-decoration: underline; | ||||
| 	} | ||||
| .leaflet-control-attribution svg { | ||||
| 	display: inline !important; | ||||
| 	} | ||||
| .leaflet-left .leaflet-control-scale { | ||||
| 	margin-left: 5px; | ||||
| 	} | ||||
| .leaflet-bottom .leaflet-control-scale { | ||||
| 	margin-bottom: 5px; | ||||
| 	} | ||||
| .leaflet-control-scale-line { | ||||
| 	border: 2px solid #777; | ||||
| 	border-top: none; | ||||
| 	line-height: 1.1; | ||||
| 	padding: 2px 5px 1px; | ||||
| 	white-space: nowrap; | ||||
| 	overflow: hidden; | ||||
| 	-moz-box-sizing: border-box; | ||||
| 	     box-sizing: border-box; | ||||
| 
 | ||||
| 	background: #fff; | ||||
| 	background: rgba(255, 255, 255, 0.5); | ||||
| 	} | ||||
| .leaflet-control-scale-line:not(:first-child) { | ||||
| 	border-top: 2px solid #777; | ||||
| 	border-bottom: none; | ||||
| 	margin-top: -2px; | ||||
| 	} | ||||
| .leaflet-control-scale-line:not(:first-child):not(:last-child) { | ||||
| 	border-bottom: 2px solid #777; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-touch .leaflet-control-attribution, | ||||
| .leaflet-touch .leaflet-control-layers, | ||||
| .leaflet-touch .leaflet-bar { | ||||
| 	box-shadow: none; | ||||
| 	} | ||||
| .leaflet-touch .leaflet-control-layers, | ||||
| .leaflet-touch .leaflet-bar { | ||||
| 	border: 2px solid rgba(0,0,0,0.2); | ||||
| 	background-clip: padding-box; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* popup */ | ||||
| 
 | ||||
| .leaflet-popup { | ||||
| 	position: absolute; | ||||
| 	text-align: center; | ||||
| 	margin-bottom: 20px; | ||||
| 	} | ||||
| .leaflet-popup-content-wrapper { | ||||
| 	padding: 1px; | ||||
| 	text-align: left; | ||||
| 	border-radius: 12px; | ||||
| 	} | ||||
| .leaflet-popup-content { | ||||
| 	margin: 13px 24px 13px 20px; | ||||
| 	line-height: 1.3; | ||||
| 	font-size: 13px; | ||||
| 	font-size: 1.08333em; | ||||
| 	min-height: 1px; | ||||
| 	} | ||||
| .leaflet-popup-content p { | ||||
| 	margin: 17px 0; | ||||
| 	margin: 1.3em 0; | ||||
| 	} | ||||
| .leaflet-popup-tip-container { | ||||
| 	width: 40px; | ||||
| 	height: 20px; | ||||
| 	position: absolute; | ||||
| 	left: 50%; | ||||
| 	margin-top: -1px; | ||||
| 	margin-left: -20px; | ||||
| 	overflow: hidden; | ||||
| 	pointer-events: none; | ||||
| 	} | ||||
| .leaflet-popup-tip { | ||||
| 	width: 17px; | ||||
| 	height: 17px; | ||||
| 	padding: 1px; | ||||
| 
 | ||||
| 	margin: -10px auto 0; | ||||
| 	pointer-events: auto; | ||||
| 
 | ||||
| 	-webkit-transform: rotate(45deg); | ||||
| 	   -moz-transform: rotate(45deg); | ||||
| 	    -ms-transform: rotate(45deg); | ||||
| 	        transform: rotate(45deg); | ||||
| 	} | ||||
| .leaflet-popup-content-wrapper, | ||||
| .leaflet-popup-tip { | ||||
| 	background: white; | ||||
| 	color: #333; | ||||
| 	box-shadow: 0 3px 14px rgba(0,0,0,0.4); | ||||
| 	} | ||||
| .leaflet-container a.leaflet-popup-close-button { | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	right: 0; | ||||
| 	border: none; | ||||
| 	text-align: center; | ||||
| 	width: 24px; | ||||
| 	height: 24px; | ||||
| 	font: 16px/24px Tahoma, Verdana, sans-serif; | ||||
| 	color: #757575; | ||||
| 	text-decoration: none; | ||||
| 	background: transparent; | ||||
| 	} | ||||
| .leaflet-container a.leaflet-popup-close-button:hover, | ||||
| .leaflet-container a.leaflet-popup-close-button:focus { | ||||
| 	color: #585858; | ||||
| 	} | ||||
| .leaflet-popup-scrolled { | ||||
| 	overflow: auto; | ||||
| 	border-bottom: 1px solid #ddd; | ||||
| 	border-top: 1px solid #ddd; | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-oldie .leaflet-popup-content-wrapper { | ||||
| 	-ms-zoom: 1; | ||||
| 	} | ||||
| .leaflet-oldie .leaflet-popup-tip { | ||||
| 	width: 24px; | ||||
| 	margin: 0 auto; | ||||
| 
 | ||||
| 	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; | ||||
| 	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); | ||||
| 	} | ||||
| 
 | ||||
| .leaflet-oldie .leaflet-control-zoom, | ||||
| .leaflet-oldie .leaflet-control-layers, | ||||
| .leaflet-oldie .leaflet-popup-content-wrapper, | ||||
| .leaflet-oldie .leaflet-popup-tip { | ||||
| 	border: 1px solid #999; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* div icon */ | ||||
| 
 | ||||
| .leaflet-div-icon { | ||||
| 	background: #fff; | ||||
| 	border: 1px solid #666; | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
| /* Tooltip */ | ||||
| /* Base styles for the element that has a tooltip */ | ||||
| .leaflet-tooltip { | ||||
| 	position: absolute; | ||||
| 	padding: 6px; | ||||
| 	background-color: #fff; | ||||
| 	border: 1px solid #fff; | ||||
| 	border-radius: 3px; | ||||
| 	color: #222; | ||||
| 	white-space: nowrap; | ||||
| 	-webkit-user-select: none; | ||||
| 	-moz-user-select: none; | ||||
| 	-ms-user-select: none; | ||||
| 	user-select: none; | ||||
| 	pointer-events: none; | ||||
| 	box-shadow: 0 1px 3px rgba(0,0,0,0.4); | ||||
| 	} | ||||
| .leaflet-tooltip.leaflet-interactive { | ||||
| 	cursor: pointer; | ||||
| 	pointer-events: auto; | ||||
| 	} | ||||
| .leaflet-tooltip-top:before, | ||||
| .leaflet-tooltip-bottom:before, | ||||
| .leaflet-tooltip-left:before, | ||||
| .leaflet-tooltip-right:before { | ||||
| 	position: absolute; | ||||
| 	pointer-events: none; | ||||
| 	border: 6px solid transparent; | ||||
| 	background: transparent; | ||||
| 	content: ""; | ||||
| 	} | ||||
| 
 | ||||
| /* Directions */ | ||||
| 
 | ||||
| .leaflet-tooltip-bottom { | ||||
| 	margin-top: 6px; | ||||
| } | ||||
| .leaflet-tooltip-top { | ||||
| 	margin-top: -6px; | ||||
| } | ||||
| .leaflet-tooltip-bottom:before, | ||||
| .leaflet-tooltip-top:before { | ||||
| 	left: 50%; | ||||
| 	margin-left: -6px; | ||||
| 	} | ||||
| .leaflet-tooltip-top:before { | ||||
| 	bottom: 0; | ||||
| 	margin-bottom: -12px; | ||||
| 	border-top-color: #fff; | ||||
| 	} | ||||
| .leaflet-tooltip-bottom:before { | ||||
| 	top: 0; | ||||
| 	margin-top: -12px; | ||||
| 	margin-left: -6px; | ||||
| 	border-bottom-color: #fff; | ||||
| 	} | ||||
| .leaflet-tooltip-left { | ||||
| 	margin-left: -6px; | ||||
| } | ||||
| .leaflet-tooltip-right { | ||||
| 	margin-left: 6px; | ||||
| } | ||||
| .leaflet-tooltip-left:before, | ||||
| .leaflet-tooltip-right:before { | ||||
| 	top: 50%; | ||||
| 	margin-top: -6px; | ||||
| 	} | ||||
| .leaflet-tooltip-left:before { | ||||
| 	right: 0; | ||||
| 	margin-right: -12px; | ||||
| 	border-left-color: #fff; | ||||
| 	} | ||||
| .leaflet-tooltip-right:before { | ||||
| 	left: 0; | ||||
| 	margin-left: -12px; | ||||
| 	border-right-color: #fff; | ||||
| 	} | ||||
| 
 | ||||
| /* Printing */ | ||||
| 	 | ||||
| @media print { | ||||
| 	/* Prevent printers from removing background-images of controls. */ | ||||
| 	.leaflet-control { | ||||
| 		-webkit-print-color-adjust: exact; | ||||
| 		color-adjust: exact; | ||||
| 		} | ||||
| 	} | ||||
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/leaflet.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/logicodev-dark.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/logicodev.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/css/pointhi.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						| Before Width: | Height: | Size: 106 KiB | 
| @ -1,155 +0,0 @@ | ||||
| /*jshint esversion: 6 */ | ||||
| module.exports = function(grunt) { | ||||
| 
 | ||||
|   grunt.initConfig({ | ||||
|     pkg: grunt.file.readJSON('package.json'), | ||||
|     copy: { | ||||
|       js: { | ||||
|         expand: true, | ||||
|         cwd: './node_modules', | ||||
|         dest: './js/', | ||||
|         flatten: true, | ||||
|         filter: 'isFile', | ||||
|         timestamp: true, | ||||
|         src: [ | ||||
|           './bootstrap/dist/js/bootstrap.min.js', | ||||
|           './corejs-typeahead/dist/typeahead.bundle.min.js', | ||||
|           './jquery/dist/jquery.min.js', | ||||
|           './leaflet/dist/leaflet.js', | ||||
|         ] | ||||
|       }, | ||||
|       css: { | ||||
|         expand: true, | ||||
|         cwd: './node_modules', | ||||
|         dest: './css/', | ||||
|         flatten: true, | ||||
|         filter: 'isFile', | ||||
|         timestamp: true, | ||||
|         src: [ | ||||
|           './bootstrap/dist/css/bootstrap-theme.css', | ||||
|           './bootstrap/dist/css/bootstrap-theme.min.css', | ||||
|           './bootstrap/dist/css/bootstrap-theme.min.css.map', | ||||
|           './leaflet/dist/leaflet.css', | ||||
|         ] | ||||
|       }, | ||||
|       fonts: { | ||||
|         expand: true, | ||||
|         cwd: './node_modules', | ||||
|         dest: './fonts/', | ||||
|         flatten: true, | ||||
|         filter: 'isFile', | ||||
|         timestamp: true, | ||||
|         src: [ | ||||
|           './bootstrap/dist/fonts/glyphicons-*.*', | ||||
|         ] | ||||
|       }, | ||||
|       leaflet_images: { | ||||
|         expand: true, | ||||
|         cwd: './node_modules', | ||||
|         dest: './css/images/', | ||||
|         flatten: true, | ||||
|         filter: 'isFile', | ||||
|         timestamp: true, | ||||
|         src: [ | ||||
|           './leaflet/dist/images/*.png', | ||||
|         ] | ||||
|       } | ||||
|     }, | ||||
|     concat: { | ||||
|       options: { | ||||
|         separator: ';' | ||||
|       }, | ||||
|       dist: { | ||||
|         src: ['src/js/*.js'], | ||||
|         dest: 'js/searxng.js' | ||||
|       } | ||||
|     }, | ||||
|     uglify: { | ||||
|       options: { | ||||
|         output: { | ||||
| 	        comments: 'some' | ||||
|         }, | ||||
|         sourceMap: true, | ||||
|       }, | ||||
|       dist: { | ||||
|         files: { | ||||
|           'js/searxng.min.js': ['<%= concat.dist.dest %>'] | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     jshint: { | ||||
|       files: ['gruntfile.js', 'src/js/*.js'],  // files in __common__ are linted by es lint in simple theme
 | ||||
|       options: { | ||||
|         reporterOutput: "", | ||||
|         esversion: 6, | ||||
|         // options here to override JSHint defaults
 | ||||
|         globals: { | ||||
|           jQuery: true, | ||||
|           console: true, | ||||
|           module: true, | ||||
|           document: true, | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     less: { | ||||
|       development: { | ||||
|         options: { | ||||
|           paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"] | ||||
|         }, | ||||
|         files: { | ||||
|           "css/bootstrap.css": "src/less/bootstrap/bootstrap.less", | ||||
|           "css/pointhi.css": "src/less/pointhi/oscar.less", | ||||
|           "css/logicodev.css": "src/less/logicodev/oscar.less", | ||||
|           "css/logicodev-dark.css": "src/less/logicodev-dark/oscar.less" | ||||
|         } | ||||
|       }, | ||||
|       production: { | ||||
|         options: { | ||||
|           paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"], | ||||
|           plugins: [ | ||||
|             new (require('less-plugin-clean-css'))() | ||||
|           ], | ||||
|           sourceMap: true, | ||||
|           sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map';}, | ||||
|           outputSourceFiles: false, | ||||
|           sourceMapRootpath: '../' | ||||
|         }, | ||||
|         files: { | ||||
|           "css/bootstrap.min.css": "css/bootstrap.css", | ||||
|           "css/leaflet.min.css": "css/leaflet.css", | ||||
|           "css/pointhi.min.css": "src/less/pointhi/oscar.less", | ||||
|           "css/logicodev.min.css": "src/less/logicodev/oscar.less", | ||||
|           "css/logicodev-dark.min.css": "src/less/logicodev-dark/oscar.less" | ||||
|         } | ||||
|       }, | ||||
|     }, | ||||
|     watch: { | ||||
|         scripts: { | ||||
|             files: ['<%= jshint.files %>'], | ||||
|             tasks: ['jshint', 'concat', 'uglify'] | ||||
|         }, | ||||
|         oscar_styles: { | ||||
|             files: ['src/less/pointhi/**/*.less'], | ||||
|             tasks: ['less:development', 'less:production'] | ||||
|         }, | ||||
|         bootstrap_styles: { | ||||
|             files: ['less/bootstrap/**/*.less'], | ||||
|             tasks: ['less:bootstrap'] | ||||
|         } | ||||
|     } | ||||
|   }); | ||||
| 
 | ||||
|   grunt.loadNpmTasks('grunt-contrib-copy'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-uglify'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-jshint'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-watch'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-concat'); | ||||
|   grunt.loadNpmTasks('grunt-contrib-less'); | ||||
| 
 | ||||
|   grunt.registerTask('test', ['jshint']); | ||||
| 
 | ||||
|   grunt.registerTask('default', ['copy', 'jshint', 'concat', 'uglify', 'less']); | ||||
| 
 | ||||
|   grunt.registerTask('styles', ['less']); | ||||
| 
 | ||||
| }; | ||||
| Before Width: | Height: | Size: 11 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| @ -1,2 +0,0 @@ | ||||
| Source: http://www.iconspedia.com/pack/flat-gradient-social-icons-4384/ | ||||
| License: Free for non commercial use. | ||||
| Before Width: | Height: | Size: 4.0 KiB | 
| Before Width: | Height: | Size: 919 B | 
| Before Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 3.7 KiB | 
| Before Width: | Height: | Size: 957 B | 
| Before Width: | Height: | Size: 3.6 KiB | 
| Before Width: | Height: | Size: 3.7 KiB | 
| Before Width: | Height: | Size: 4.2 KiB | 
| Before Width: | Height: | Size: 3.3 KiB | 
| Before Width: | Height: | Size: 4.4 KiB | 
| Before Width: | Height: | Size: 5.1 KiB | 
| Before Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 3.7 KiB | 
| Before Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 3.7 KiB | 
| Before Width: | Height: | Size: 3.8 KiB | 
| Before Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 587 B | 
| Before Width: | Height: | Size: 8.1 KiB | 
| Before Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 10 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/js/bootstrap.bundle.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/js/bootstrap.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/js/jquery.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,594 +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(d) { | ||||
|     'use strict'; | ||||
| 
 | ||||
|     //
 | ||||
|     d.getElementsByTagName("html")[0].className = "js"; | ||||
| 
 | ||||
|     // add data- properties
 | ||||
|     var script = d.currentScript  || (function() { | ||||
|         var scripts = d.getElementsByTagName('script'); | ||||
|         return scripts[scripts.length - 1]; | ||||
|     })(); | ||||
| 
 | ||||
|     return { | ||||
|         autocompleter: script.getAttribute('data-autocompleter') === 'true', | ||||
|         infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true', | ||||
|         method: script.getAttribute('data-method'), | ||||
|         translations: JSON.parse(script.getAttribute('data-translations')) | ||||
|     }; | ||||
| })(document); | ||||
| ;/** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     var original_search_value = ''; | ||||
|     if(searxng.autocompleter) { | ||||
|         var searchResults = new Bloodhound({ | ||||
|             datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), | ||||
|             queryTokenizer: Bloodhound.tokenizers.whitespace, | ||||
|             remote: { | ||||
|                 url: './autocompleter?q=%QUERY', | ||||
|                 wildcard: '%QUERY' | ||||
|             } | ||||
|         }); | ||||
|         searchResults.initialize(); | ||||
| 
 | ||||
|         $("#q").on('keydown', function(e) { | ||||
| 			if(e.which == 13) { | ||||
|                 original_search_value = $('#q').val(); | ||||
| 			} | ||||
| 		}); | ||||
|         $('#q').typeahead({ | ||||
|             name: 'search-results', | ||||
|             highlight: false, | ||||
|             hint: true, | ||||
|             displayKey: function(result) { | ||||
|                 return result; | ||||
|             }, | ||||
|             classNames: { | ||||
|                 input: 'tt-input', | ||||
|                 hint: 'tt-hint', | ||||
|                 menu: 'tt-dropdown-menu', | ||||
|                 dataset: 'tt-dataset-search-results', | ||||
|             }, | ||||
|         }, { | ||||
|             name: 'autocomplete', | ||||
|             source: searchResults, | ||||
|         }); | ||||
|         $('#q').bind('typeahead:select', function(ev, suggestion) { | ||||
|             if(original_search_value) { | ||||
|                 $('#q').val(original_search_value); | ||||
|             } | ||||
|             $("#search_form").submit(); | ||||
|         }); | ||||
|     } | ||||
| }); | ||||
| ;/** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     /** | ||||
|      * focus element if class="autofocus" and id="q" | ||||
|      */ | ||||
|     $('#q.autofocus').focus(); | ||||
| 
 | ||||
|     /** | ||||
|      * Empty search bar when click on reset button | ||||
|      */ | ||||
|     $("#clear_search").click(function () { | ||||
| 	document.getElementById("q").value = ""; | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * select full content on click if class="select-all-on-click" | ||||
|      */ | ||||
|     $(".select-all-on-click").click(function () { | ||||
|         $(this).select(); | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * change text during btn-collapse click if possible | ||||
|      */ | ||||
|     $('.btn-collapse').click(function() { | ||||
|         var btnTextCollapsed = $(this).data('btn-text-collapsed'); | ||||
|         var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed'); | ||||
| 
 | ||||
|         if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') { | ||||
|             if($(this).hasClass('collapsed')) { | ||||
|                 new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed); | ||||
|             } else { | ||||
|                 new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed); | ||||
|             } | ||||
|             $(this).html(new_html); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * change text during btn-toggle click if possible | ||||
|      */ | ||||
|     $('.btn-toggle .btn').click(function() { | ||||
|         var btnClass = 'btn-' + $(this).data('btn-class'); | ||||
|         var btnLabelDefault = $(this).data('btn-label-default'); | ||||
|         var btnLabelToggled = $(this).data('btn-label-toggled'); | ||||
|         if(btnLabelToggled !== '') { | ||||
|             if($(this).hasClass('btn-default')) { | ||||
|                 new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled); | ||||
|             } else { | ||||
|                 new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault); | ||||
|             } | ||||
|             $(this).html(new_html); | ||||
|         } | ||||
|         $(this).toggleClass(btnClass); | ||||
|         $(this).toggleClass('btn-default'); | ||||
|     }); | ||||
| 
 | ||||
|         /** | ||||
|      * change text during btn-toggle click if possible | ||||
|      */ | ||||
|     $('.media-loader').click(function() { | ||||
|         var target = $(this).data('target'); | ||||
|         var iframe_load = $(target + ' > iframe'); | ||||
|         var srctest = iframe_load.attr('src'); | ||||
|         if(srctest === undefined || srctest === false){ | ||||
|             iframe_load.attr('src', iframe_load.data('src')); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * Select or deselect every categories on double clic | ||||
|      */ | ||||
|     $(".btn-sm").dblclick(function() { | ||||
|     var btnClass = 'btn-' + $(this).data('btn-class'); // primary
 | ||||
|         if($(this).hasClass('btn-default')) { | ||||
|             $(".btn-sm > input").attr('checked', 'checked'); | ||||
|             $(".btn-sm > input").prop("checked", true); | ||||
|             $(".btn-sm").addClass(btnClass); | ||||
|             $(".btn-sm").addClass('active'); | ||||
|             $(".btn-sm").removeClass('btn-default'); | ||||
|         } else { | ||||
|             $(".btn-sm > input").attr('checked', ''); | ||||
|             $(".btn-sm > input").removeAttr('checked'); | ||||
|             $(".btn-sm > input").checked = false; | ||||
|             $(".btn-sm").removeClass(btnClass); | ||||
|             $(".btn-sm").removeClass('active'); | ||||
|             $(".btn-sm").addClass('btn-default'); | ||||
|         } | ||||
|     }); | ||||
|     $(".nav-tabs").click(function(a) { | ||||
|         var tabs = $(a.target).parents("ul"); | ||||
|         tabs.children().attr("aria-selected", "false"); | ||||
|         $(a.target).parent().attr("aria-selected", "true"); | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * Layout images according to their sizes | ||||
|      */ | ||||
|     searxng.image_thumbnail_layout = new searxng.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 3, 200); | ||||
|     searxng.image_thumbnail_layout.watch(); | ||||
| }); | ||||
| ;/** | ||||
| * | ||||
| * 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.trottleCallToAlign = null; | ||||
|     this.alignAfterThrotteling = false; | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|   * 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.setAttribute('width', Math.round(imgWidth)); | ||||
|       img.setAttribute('height', Math.round(height)); | ||||
|       img.style.marginLeft = Math.round(this.horizontalMargin) + 'px'; | ||||
|       img.style.marginTop = Math.round(this.horizontalMargin) + 'px'; | ||||
|       img.style.marginRight = Math.round(this.verticalMargin - 7) + 'px'; // -4 is the negative margin of the inline element
 | ||||
|       img.style.marginBottom = Math.round(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.throttleAlign = function () { | ||||
|     var obj = this; | ||||
|     if (obj.trottleCallToAlign) { | ||||
|       obj.alignAfterThrotteling = true; | ||||
|     } else { | ||||
|       obj.alignAfterThrotteling = false; | ||||
|       obj.align(); | ||||
|       obj.trottleCallToAlign = setTimeout(function () { | ||||
|         if (obj.alignAfterThrotteling) { | ||||
|           obj.align(); | ||||
|         } | ||||
|         obj.alignAfterThrotteling = false; | ||||
|         obj.trottleCallToAlign = null; | ||||
|       }, 20); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   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._monitorImages = function () { | ||||
|     var i, img; | ||||
|     var objthrottleAlign = this.throttleAlign.bind(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; | ||||
|     } | ||||
| 
 | ||||
|     for (i = 0; i < results_length; i++) { | ||||
|       img = results_nodes[i].querySelector(this.img_selector); | ||||
|       if (img !== null && img !== undefined && !img.classList.contains('aligned')) { | ||||
|         img.addEventListener('load', objthrottleAlign); | ||||
|         // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
 | ||||
|         img.addEventListener('error', objthrottleAlign); | ||||
|         img.addEventListener('timeout', objthrottleAlign); | ||||
|         if (w.searxng.theme.img_load_error) { | ||||
|           img.addEventListener('error', img_load_error, {once: true}); | ||||
|         } | ||||
|         img.classList.add('aligned'); | ||||
|       } | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   ImageLayout.prototype.watch = function () { | ||||
|     var objthrottleAlign = this.throttleAlign.bind(this); | ||||
| 
 | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event
 | ||||
|     w.addEventListener('pageshow', objthrottleAlign); | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event
 | ||||
|     w.addEventListener('load', objthrottleAlign); | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event
 | ||||
|     w.addEventListener('resize', objthrottleAlign); | ||||
| 
 | ||||
|     this._monitorImages(); | ||||
| 
 | ||||
|     var obj = this; | ||||
| 
 | ||||
|     let observer = new MutationObserver(entries => { | ||||
|       let newElement = false; | ||||
|       for (let i = 0; i < entries.length; i++) { | ||||
|         if (entries[i].addedNodes.length > 0 && entries[i].addedNodes[0].classList.contains('result')) { | ||||
|           newElement = true; | ||||
|           break; | ||||
|         } | ||||
|       } | ||||
|       if (newElement) { | ||||
|         obj._monitorImages(); | ||||
|       } | ||||
|     }); | ||||
|     observer.observe(d.querySelector(this.container_selector), { | ||||
|       childList: true, | ||||
|       subtree: true, | ||||
|       attributes: false, | ||||
|       characterData: false, | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
|   w.searxng.ImageLayout = ImageLayout; | ||||
| 
 | ||||
| }(window, document)); | ||||
| ;/** | ||||
|  * @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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function() { | ||||
|     function hasScrollbar() { | ||||
|         var root = document.compatMode=='BackCompat'? document.body : document.documentElement; | ||||
|         return root.scrollHeight>root.clientHeight; | ||||
|     } | ||||
| 
 | ||||
|     function loadNextPage() { | ||||
|         var formData = $('#pagination form:last').serialize(); | ||||
|         if (formData) { | ||||
|             $('#pagination').html('<div class="loading-spinner"></div>'); | ||||
|             $.ajax({ | ||||
|                 type: "POST", | ||||
|                 url: $('#search_form').prop('action'), | ||||
|                 data: formData, | ||||
|                 dataType: 'html', | ||||
|                 success: function(data) { | ||||
|                     var body = $(data); | ||||
|                     $('#pagination').remove(); | ||||
|                     $('#main_results').append('<hr/>'); | ||||
|                     $('#main_results').append(body.find('.result')); | ||||
|                     $('#main_results').append(body.find('#pagination')); | ||||
|                     if(!hasScrollbar()) { | ||||
|                         loadNextPage(); | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (searxng.infinite_scroll) { | ||||
|         var win = $(window); | ||||
|         $("html").addClass('infinite_scroll'); | ||||
|         if(!hasScrollbar()) { | ||||
|             loadNextPage(); | ||||
|         } | ||||
|         win.on('scroll', function() { | ||||
|             if ($(document).height() - win.height() - win.scrollTop() < 150) { | ||||
|                 loadNextPage(); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
| }); | ||||
| ;/** | ||||
|  * @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.addEventListener('load', function() { | ||||
|     // Hide infobox toggle if shrunk size already fits all content.
 | ||||
|     $('.infobox').each(function() { | ||||
|         var infobox_body = $(this).find('.infobox_body'); | ||||
|         var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height(); | ||||
|         var max_height = infobox_body.css('max-height').replace('px', ''); | ||||
|         if (total_height <= max_height) { | ||||
|             $(this).find('.infobox_toggle').hide(); | ||||
|         } | ||||
|     }); | ||||
| }); | ||||
| ;/** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     $(".searxng_init_map").on( "click", function( event ) { | ||||
|         var leaflet_target = $(this).data('leaflet-target'); | ||||
|         var map_lon = $(this).data('map-lon'); | ||||
|         var map_lat = $(this).data('map-lat'); | ||||
|         var map_zoom = $(this).data('map-zoom'); | ||||
|         var map_boundingbox = $(this).data('map-boundingbox'); | ||||
|         var map_geojson = $(this).data('map-geojson'); | ||||
| 
 | ||||
|         if(map_boundingbox) { | ||||
|             southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]); | ||||
|             northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]); | ||||
|             map_bounds = L.latLngBounds(southWest, northEast); | ||||
|         } | ||||
| 
 | ||||
|         // change default imagePath
 | ||||
|         L.Icon.Default.imagePath =  "./static/themes/oscar/css/images/"; | ||||
| 
 | ||||
|         // 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 beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'; | ||||
|         var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib}); | ||||
| 
 | ||||
|         // init map view
 | ||||
|         setTimeout(function() { | ||||
|             if(map_bounds) { | ||||
|                 map.fitBounds(map_bounds, { | ||||
|                     maxZoom:17 | ||||
|                 }); | ||||
|             } 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); | ||||
|             }     | ||||
|         }, 0); | ||||
| 
 | ||||
|         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
 | ||||
|         $( this ).off( event ); | ||||
|     }); | ||||
| }); | ||||
| ;/** | ||||
|  * @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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     let engine_descriptions = null; | ||||
|     function load_engine_descriptions() { | ||||
|         if (engine_descriptions == null) { | ||||
|             $.ajax("engine_descriptions.json", dataType="json").done(function(data) { | ||||
|                 engine_descriptions = data; | ||||
|                 for (const [engine_name, description] of Object.entries(data)) { | ||||
|                     let elements = $('[data-engine-name="' + engine_name + '"] .description'); | ||||
|                     for(const element of elements) { | ||||
|                         let source = ' (<i>' + searxng.translations.Source + ': ' + description[1] + '</i>)'; | ||||
|                         element.innerHTML = description[0] + source; | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (document.querySelector('body[class="preferences_endpoint"]')) { | ||||
|         $('[data-engine-name]').hover(function() { | ||||
|             load_engine_descriptions(); | ||||
|         }); | ||||
|     } | ||||
| }); | ||||
| ;/** | ||||
|  * @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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     $("#allow-all-engines").click(function() { | ||||
|         $(".onoffswitch-checkbox").each(function() { this.checked = false;}); | ||||
|     }); | ||||
| 
 | ||||
|     $("#disable-all-engines").click(function() { | ||||
|         $(".onoffswitch-checkbox").each(function() { this.checked = true;}); | ||||
|     }); | ||||
| }); | ||||
| 
 | ||||
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/js/searxng.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/oscar/js/typeahead.bundle.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -1,27 +0,0 @@ | ||||
| { | ||||
|     "devDependencies": { | ||||
|         "grunt": "~1.4.1", | ||||
|         "grunt-cli": "^1.4.3", | ||||
|         "grunt-contrib-concat": "~2.0.0", | ||||
|         "grunt-contrib-copy": "^1.0.0", | ||||
|         "grunt-contrib-jshint": "~3.1.1", | ||||
|         "grunt-contrib-less": "~3.0.0", | ||||
|         "grunt-contrib-uglify": "~5.1.0", | ||||
|         "grunt-contrib-watch": "~1.1.0", | ||||
|         "jslint": "^0.12.1", | ||||
|         "less": "^4.1.1", | ||||
|         "less-plugin-clean-css": "^1.5.1" | ||||
|     }, | ||||
|     "dependencies": { | ||||
|         "bootstrap": "^3.4.1", | ||||
|         "corejs-typeahead": "^1.3.1", | ||||
|         "jquery": "^3.6.0", | ||||
|         "leaflet": "^1.7.1" | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "all": "npm install && grunt", | ||||
|         "build": "grunt", | ||||
|         "watch": "grunt watch", | ||||
|         "clean": "rm -Rf node_modules package-lock.json" | ||||
|     } | ||||
| } | ||||
| @ -1,99 +0,0 @@ | ||||
| /* | ||||
|    this file is generated automatically by searxng_extra/update/update_pygments.py | ||||
|    using pygments version 2.12.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; | ||||
| 
 | ||||
|     &::selection { | ||||
|         background: transparent; /* WebKit/Blink Browsers */ | ||||
|     } | ||||
|     &::-moz-selection { | ||||
|         background: transparent; /* Gecko Browsers */ | ||||
|     } | ||||
| 
 | ||||
|     margin-right: 8px; | ||||
|     text-align: right; | ||||
| } | ||||
| 
 | ||||
| .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: #282C34; } | ||||
| .code-highlight .c { color: #556366; font-style: italic } /* Comment */ | ||||
| .code-highlight .err { border: 1px solid #ff0000 } /* Error */ | ||||
| .code-highlight .k { color: #BE74D5; font-weight: bold } /* Keyword */ | ||||
| .code-highlight .o { color: #D19A66 } /* Operator */ | ||||
| .code-highlight .ch { color: #556366; font-style: italic } /* Comment.Hashbang */ | ||||
| .code-highlight .cm { color: #556366; font-style: italic } /* Comment.Multiline */ | ||||
| .code-highlight .cp { color: #BC7A00; font-style: italic } /* Comment.Preproc */ | ||||
| .code-highlight .cpf { color: #556366; font-style: italic } /* Comment.PreprocFile */ | ||||
| .code-highlight .c1 { color: #556366; font-style: italic } /* Comment.Single */ | ||||
| .code-highlight .cs { color: #556366; 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: #BE74D5; font-weight: bold } /* Keyword.Constant */ | ||||
| .code-highlight .kd { color: #BE74D5; font-weight: bold } /* Keyword.Declaration */ | ||||
| .code-highlight .kn { color: #BE74D5; font-weight: bold } /* Keyword.Namespace */ | ||||
| .code-highlight .kp { color: #BE74D5; font-weight: bold } /* Keyword.Pseudo */ | ||||
| .code-highlight .kr { color: #BE74D5; font-weight: bold } /* Keyword.Reserved */ | ||||
| .code-highlight .kt { color: #D46C72; font-weight: bold } /* Keyword.Type */ | ||||
| .code-highlight .m { color: #D19A66 } /* Literal.Number */ | ||||
| .code-highlight .s { color: #86C372 } /* Literal.String */ | ||||
| .code-highlight .na { color: #7D9029 } /* Name.Attribute */ | ||||
| .code-highlight .nb { color: #BE74D5 } /* Name.Builtin */ | ||||
| .code-highlight .nc { color: #61AFEF; font-weight: bold } /* Name.Class */ | ||||
| .code-highlight .no { color: #D19A66 } /* 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: #61AFEF } /* Name.Function */ | ||||
| .code-highlight .nl { color: #A0A000 } /* Name.Label */ | ||||
| .code-highlight .nn { color: #61AFEF; font-weight: bold } /* Name.Namespace */ | ||||
| .code-highlight .nt { color: #BE74D5; font-weight: bold } /* Name.Tag */ | ||||
| .code-highlight .nv { color: #DFC06F } /* Name.Variable */ | ||||
| .code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | ||||
| .code-highlight .w { color: #D7DAE0 } /* Text.Whitespace */ | ||||
| .code-highlight .mb { color: #D19A66 } /* Literal.Number.Bin */ | ||||
| .code-highlight .mf { color: #D19A66 } /* Literal.Number.Float */ | ||||
| .code-highlight .mh { color: #D19A66 } /* Literal.Number.Hex */ | ||||
| .code-highlight .mi { color: #D19A66 } /* Literal.Number.Integer */ | ||||
| .code-highlight .mo { color: #D19A66 } /* Literal.Number.Oct */ | ||||
| .code-highlight .sa { color: #86C372 } /* Literal.String.Affix */ | ||||
| .code-highlight .sb { color: #86C372 } /* Literal.String.Backtick */ | ||||
| .code-highlight .sc { color: #86C372 } /* Literal.String.Char */ | ||||
| .code-highlight .dl { color: #86C372 } /* Literal.String.Delimiter */ | ||||
| .code-highlight .sd { color: #86C372; font-style: italic } /* Literal.String.Doc */ | ||||
| .code-highlight .s2 { color: #86C372 } /* Literal.String.Double */ | ||||
| .code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ | ||||
| .code-highlight .sh { color: #86C372 } /* Literal.String.Heredoc */ | ||||
| .code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ | ||||
| .code-highlight .sx { color: #BE74D5 } /* Literal.String.Other */ | ||||
| .code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */ | ||||
| .code-highlight .s1 { color: #86C372 } /* Literal.String.Single */ | ||||
| .code-highlight .ss { color: #DFC06F } /* Literal.String.Symbol */ | ||||
| .code-highlight .bp { color: #BE74D5 } /* Name.Builtin.Pseudo */ | ||||
| .code-highlight .fm { color: #61AFEF } /* Name.Function.Magic */ | ||||
| .code-highlight .vc { color: #DFC06F } /* Name.Variable.Class */ | ||||
| .code-highlight .vg { color: #DFC06F } /* Name.Variable.Global */ | ||||
| .code-highlight .vi { color: #DFC06F } /* Name.Variable.Instance */ | ||||
| .code-highlight .vm { color: #DFC06F } /* Name.Variable.Magic */ | ||||
| .code-highlight .il { color: #D19A66 } /* Literal.Number.Integer.Long */ | ||||
| @ -1,99 +0,0 @@ | ||||
| /* | ||||
|    this file is generated automatically by searxng_extra/update/update_pygments.py | ||||
|    using pygments version 2.12.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; | ||||
| 
 | ||||
|     &::selection { | ||||
|         background: transparent; /* WebKit/Blink Browsers */ | ||||
|     } | ||||
|     &::-moz-selection { | ||||
|         background: transparent; /* Gecko Browsers */ | ||||
|     } | ||||
| 
 | ||||
|     margin-right: 8px; | ||||
|     text-align: right; | ||||
| } | ||||
| 
 | ||||
| .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: #3D7B7B; 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: #3D7B7B; font-style: italic } /* Comment.Hashbang */ | ||||
| .code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ | ||||
| .code-highlight .cp { color: #9C6500 } /* Comment.Preproc */ | ||||
| .code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ | ||||
| .code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ | ||||
| .code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ | ||||
| .code-highlight .gd { color: #A00000 } /* Generic.Deleted */ | ||||
| .code-highlight .ge { font-style: italic } /* Generic.Emph */ | ||||
| .code-highlight .gr { color: #E40000 } /* Generic.Error */ | ||||
| .code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | ||||
| .code-highlight .gi { color: #008400 } /* Generic.Inserted */ | ||||
| .code-highlight .go { color: #717171 } /* 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: #687822 } /* 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: #717171; font-weight: bold } /* Name.Entity */ | ||||
| .code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ | ||||
| .code-highlight .nf { color: #0000FF } /* Name.Function */ | ||||
| .code-highlight .nl { color: #767600 } /* 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: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ | ||||
| .code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ | ||||
| .code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ | ||||
| .code-highlight .sx { color: #008000 } /* Literal.String.Other */ | ||||
| .code-highlight .sr { color: #A45A77 } /* 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 */ | ||||
| @ -1,26 +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(d) { | ||||
|     'use strict'; | ||||
| 
 | ||||
|     //
 | ||||
|     d.getElementsByTagName("html")[0].className = "js"; | ||||
| 
 | ||||
|     // add data- properties
 | ||||
|     var script = d.currentScript  || (function() { | ||||
|         var scripts = d.getElementsByTagName('script'); | ||||
|         return scripts[scripts.length - 1]; | ||||
|     })(); | ||||
| 
 | ||||
|     return { | ||||
|         autocompleter: script.getAttribute('data-autocompleter') === 'true', | ||||
|         infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true', | ||||
|         method: script.getAttribute('data-method'), | ||||
|         translations: JSON.parse(script.getAttribute('data-translations')) | ||||
|     }; | ||||
| })(document); | ||||
| @ -1,51 +0,0 @@ | ||||
| /** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     var original_search_value = ''; | ||||
|     if(searxng.autocompleter) { | ||||
|         var searchResults = new Bloodhound({ | ||||
|             datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), | ||||
|             queryTokenizer: Bloodhound.tokenizers.whitespace, | ||||
|             remote: { | ||||
|                 url: './autocompleter?q=%QUERY', | ||||
|                 wildcard: '%QUERY' | ||||
|             } | ||||
|         }); | ||||
|         searchResults.initialize(); | ||||
| 
 | ||||
|         $("#q").on('keydown', function(e) { | ||||
| 			if(e.which == 13) { | ||||
|                 original_search_value = $('#q').val(); | ||||
| 			} | ||||
| 		}); | ||||
|         $('#q').typeahead({ | ||||
|             name: 'search-results', | ||||
|             highlight: false, | ||||
|             hint: true, | ||||
|             displayKey: function(result) { | ||||
|                 return result; | ||||
|             }, | ||||
|             classNames: { | ||||
|                 input: 'tt-input', | ||||
|                 hint: 'tt-hint', | ||||
|                 menu: 'tt-dropdown-menu', | ||||
|                 dataset: 'tt-dataset-search-results', | ||||
|             }, | ||||
|         }, { | ||||
|             name: 'autocomplete', | ||||
|             source: searchResults, | ||||
|         }); | ||||
|         $('#q').bind('typeahead:select', function(ev, suggestion) { | ||||
|             if(original_search_value) { | ||||
|                 $('#q').val(original_search_value); | ||||
|             } | ||||
|             $("#search_form").submit(); | ||||
|         }); | ||||
|     } | ||||
| }); | ||||
| @ -1,108 +0,0 @@ | ||||
| /** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     /** | ||||
|      * focus element if class="autofocus" and id="q" | ||||
|      */ | ||||
|     $('#q.autofocus').focus(); | ||||
| 
 | ||||
|     /** | ||||
|      * Empty search bar when click on reset button | ||||
|      */ | ||||
|     $("#clear_search").click(function () { | ||||
| 	document.getElementById("q").value = ""; | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * select full content on click if class="select-all-on-click" | ||||
|      */ | ||||
|     $(".select-all-on-click").click(function () { | ||||
|         $(this).select(); | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * change text during btn-collapse click if possible | ||||
|      */ | ||||
|     $('.btn-collapse').click(function() { | ||||
|         var btnTextCollapsed = $(this).data('btn-text-collapsed'); | ||||
|         var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed'); | ||||
| 
 | ||||
|         if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') { | ||||
|             if($(this).hasClass('collapsed')) { | ||||
|                 new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed); | ||||
|             } else { | ||||
|                 new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed); | ||||
|             } | ||||
|             $(this).html(new_html); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * change text during btn-toggle click if possible | ||||
|      */ | ||||
|     $('.btn-toggle .btn').click(function() { | ||||
|         var btnClass = 'btn-' + $(this).data('btn-class'); | ||||
|         var btnLabelDefault = $(this).data('btn-label-default'); | ||||
|         var btnLabelToggled = $(this).data('btn-label-toggled'); | ||||
|         if(btnLabelToggled !== '') { | ||||
|             if($(this).hasClass('btn-default')) { | ||||
|                 new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled); | ||||
|             } else { | ||||
|                 new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault); | ||||
|             } | ||||
|             $(this).html(new_html); | ||||
|         } | ||||
|         $(this).toggleClass(btnClass); | ||||
|         $(this).toggleClass('btn-default'); | ||||
|     }); | ||||
| 
 | ||||
|         /** | ||||
|      * change text during btn-toggle click if possible | ||||
|      */ | ||||
|     $('.media-loader').click(function() { | ||||
|         var target = $(this).data('target'); | ||||
|         var iframe_load = $(target + ' > iframe'); | ||||
|         var srctest = iframe_load.attr('src'); | ||||
|         if(srctest === undefined || srctest === false){ | ||||
|             iframe_load.attr('src', iframe_load.data('src')); | ||||
|         } | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * Select or deselect every categories on double clic | ||||
|      */ | ||||
|     $(".btn-sm").dblclick(function() { | ||||
|     var btnClass = 'btn-' + $(this).data('btn-class'); // primary
 | ||||
|         if($(this).hasClass('btn-default')) { | ||||
|             $(".btn-sm > input").attr('checked', 'checked'); | ||||
|             $(".btn-sm > input").prop("checked", true); | ||||
|             $(".btn-sm").addClass(btnClass); | ||||
|             $(".btn-sm").addClass('active'); | ||||
|             $(".btn-sm").removeClass('btn-default'); | ||||
|         } else { | ||||
|             $(".btn-sm > input").attr('checked', ''); | ||||
|             $(".btn-sm > input").removeAttr('checked'); | ||||
|             $(".btn-sm > input").checked = false; | ||||
|             $(".btn-sm").removeClass(btnClass); | ||||
|             $(".btn-sm").removeClass('active'); | ||||
|             $(".btn-sm").addClass('btn-default'); | ||||
|         } | ||||
|     }); | ||||
|     $(".nav-tabs").click(function(a) { | ||||
|         var tabs = $(a.target).parents("ul"); | ||||
|         tabs.children().attr("aria-selected", "false"); | ||||
|         $(a.target).parent().attr("aria-selected", "true"); | ||||
|     }); | ||||
| 
 | ||||
|     /** | ||||
|      * Layout images according to their sizes | ||||
|      */ | ||||
|     searxng.image_thumbnail_layout = new searxng.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 3, 200); | ||||
|     searxng.image_thumbnail_layout.watch(); | ||||
| }); | ||||
| @ -1,224 +0,0 @@ | ||||
| /** | ||||
| * | ||||
| * 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.trottleCallToAlign = null; | ||||
|     this.alignAfterThrotteling = false; | ||||
|   } | ||||
| 
 | ||||
|   /** | ||||
|   * 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.setAttribute('width', Math.round(imgWidth)); | ||||
|       img.setAttribute('height', Math.round(height)); | ||||
|       img.style.marginLeft = Math.round(this.horizontalMargin) + 'px'; | ||||
|       img.style.marginTop = Math.round(this.horizontalMargin) + 'px'; | ||||
|       img.style.marginRight = Math.round(this.verticalMargin - 7) + 'px'; // -4 is the negative margin of the inline element
 | ||||
|       img.style.marginBottom = Math.round(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.throttleAlign = function () { | ||||
|     var obj = this; | ||||
|     if (obj.trottleCallToAlign) { | ||||
|       obj.alignAfterThrotteling = true; | ||||
|     } else { | ||||
|       obj.alignAfterThrotteling = false; | ||||
|       obj.align(); | ||||
|       obj.trottleCallToAlign = setTimeout(function () { | ||||
|         if (obj.alignAfterThrotteling) { | ||||
|           obj.align(); | ||||
|         } | ||||
|         obj.alignAfterThrotteling = false; | ||||
|         obj.trottleCallToAlign = null; | ||||
|       }, 20); | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   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._monitorImages = function () { | ||||
|     var i, img; | ||||
|     var objthrottleAlign = this.throttleAlign.bind(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; | ||||
|     } | ||||
| 
 | ||||
|     for (i = 0; i < results_length; i++) { | ||||
|       img = results_nodes[i].querySelector(this.img_selector); | ||||
|       if (img !== null && img !== undefined && !img.classList.contains('aligned')) { | ||||
|         img.addEventListener('load', objthrottleAlign); | ||||
|         // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
 | ||||
|         img.addEventListener('error', objthrottleAlign); | ||||
|         img.addEventListener('timeout', objthrottleAlign); | ||||
|         if (w.searxng.theme.img_load_error) { | ||||
|           img.addEventListener('error', img_load_error, {once: true}); | ||||
|         } | ||||
|         img.classList.add('aligned'); | ||||
|       } | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   ImageLayout.prototype.watch = function () { | ||||
|     var objthrottleAlign = this.throttleAlign.bind(this); | ||||
| 
 | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event
 | ||||
|     w.addEventListener('pageshow', objthrottleAlign); | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event
 | ||||
|     w.addEventListener('load', objthrottleAlign); | ||||
|     // https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event
 | ||||
|     w.addEventListener('resize', objthrottleAlign); | ||||
| 
 | ||||
|     this._monitorImages(); | ||||
| 
 | ||||
|     var obj = this; | ||||
| 
 | ||||
|     let observer = new MutationObserver(entries => { | ||||
|       let newElement = false; | ||||
|       for (let i = 0; i < entries.length; i++) { | ||||
|         if (entries[i].addedNodes.length > 0 && entries[i].addedNodes[0].classList.contains('result')) { | ||||
|           newElement = true; | ||||
|           break; | ||||
|         } | ||||
|       } | ||||
|       if (newElement) { | ||||
|         obj._monitorImages(); | ||||
|       } | ||||
|     }); | ||||
|     observer.observe(d.querySelector(this.container_selector), { | ||||
|       childList: true, | ||||
|       subtree: true, | ||||
|       attributes: false, | ||||
|       characterData: false, | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
|   w.searxng.ImageLayout = ImageLayout; | ||||
| 
 | ||||
| }(window, document)); | ||||
| @ -1,50 +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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function() { | ||||
|     function hasScrollbar() { | ||||
|         var root = document.compatMode=='BackCompat'? document.body : document.documentElement; | ||||
|         return root.scrollHeight>root.clientHeight; | ||||
|     } | ||||
| 
 | ||||
|     function loadNextPage() { | ||||
|         var formData = $('#pagination form:last').serialize(); | ||||
|         if (formData) { | ||||
|             $('#pagination').html('<div class="loading-spinner"></div>'); | ||||
|             $.ajax({ | ||||
|                 type: "POST", | ||||
|                 url: $('#search_form').prop('action'), | ||||
|                 data: formData, | ||||
|                 dataType: 'html', | ||||
|                 success: function(data) { | ||||
|                     var body = $(data); | ||||
|                     $('#pagination').remove(); | ||||
|                     $('#main_results').append('<hr/>'); | ||||
|                     $('#main_results').append(body.find('.result')); | ||||
|                     $('#main_results').append(body.find('#pagination')); | ||||
|                     if(!hasScrollbar()) { | ||||
|                         loadNextPage(); | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (searxng.infinite_scroll) { | ||||
|         var win = $(window); | ||||
|         $("html").addClass('infinite_scroll'); | ||||
|         if(!hasScrollbar()) { | ||||
|             loadNextPage(); | ||||
|         } | ||||
|         win.on('scroll', function() { | ||||
|             if ($(document).height() - win.height() - win.scrollTop() < 150) { | ||||
|                 loadNextPage(); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
| }); | ||||
| @ -1,18 +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.addEventListener('load', function() { | ||||
|     // Hide infobox toggle if shrunk size already fits all content.
 | ||||
|     $('.infobox').each(function() { | ||||
|         var infobox_body = $(this).find('.infobox_body'); | ||||
|         var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height(); | ||||
|         var max_height = infobox_body.css('max-height').replace('px', ''); | ||||
|         if (total_height <= max_height) { | ||||
|             $(this).find('.infobox_toggle').hide(); | ||||
|         } | ||||
|     }); | ||||
| }); | ||||
| @ -1,70 +0,0 @@ | ||||
| /** | ||||
|  * @license | ||||
|  * (C) Copyright Contributors to the SearXNG project. | ||||
|  * (C) Copyright Contributors to the searx project (2014 - 2021). | ||||
|  * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     $(".searxng_init_map").on( "click", function( event ) { | ||||
|         var leaflet_target = $(this).data('leaflet-target'); | ||||
|         var map_lon = $(this).data('map-lon'); | ||||
|         var map_lat = $(this).data('map-lat'); | ||||
|         var map_zoom = $(this).data('map-zoom'); | ||||
|         var map_boundingbox = $(this).data('map-boundingbox'); | ||||
|         var map_geojson = $(this).data('map-geojson'); | ||||
| 
 | ||||
|         if(map_boundingbox) { | ||||
|             southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]); | ||||
|             northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]); | ||||
|             map_bounds = L.latLngBounds(southWest, northEast); | ||||
|         } | ||||
| 
 | ||||
|         // change default imagePath
 | ||||
|         L.Icon.Default.imagePath =  "./static/themes/oscar/css/images/"; | ||||
| 
 | ||||
|         // 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 beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'; | ||||
|         var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib}); | ||||
| 
 | ||||
|         // init map view
 | ||||
|         setTimeout(function() { | ||||
|             if(map_bounds) { | ||||
|                 map.fitBounds(map_bounds, { | ||||
|                     maxZoom:17 | ||||
|                 }); | ||||
|             } 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); | ||||
|             }     | ||||
|         }, 0); | ||||
| 
 | ||||
|         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
 | ||||
|         $( this ).off( event ); | ||||
|     }); | ||||
| }); | ||||
| @ -1,30 +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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     let engine_descriptions = null; | ||||
|     function load_engine_descriptions() { | ||||
|         if (engine_descriptions == null) { | ||||
|             $.ajax("engine_descriptions.json", dataType="json").done(function(data) { | ||||
|                 engine_descriptions = data; | ||||
|                 for (const [engine_name, description] of Object.entries(data)) { | ||||
|                     let elements = $('[data-engine-name="' + engine_name + '"] .description'); | ||||
|                     for(const element of elements) { | ||||
|                         let source = ' (<i>' + searxng.translations.Source + ': ' + description[1] + '</i>)'; | ||||
|                         element.innerHTML = description[0] + source; | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     if (document.querySelector('body[class="preferences_endpoint"]')) { | ||||
|         $('[data-engine-name]').hover(function() { | ||||
|             load_engine_descriptions(); | ||||
|         }); | ||||
|     } | ||||
| }); | ||||
| @ -1,17 +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 | ||||
|  */ | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
|     $("#allow-all-engines").click(function() { | ||||
|         $(".onoffswitch-checkbox").each(function() { this.checked = false;}); | ||||
|     }); | ||||
| 
 | ||||
|     $("#disable-all-engines").click(function() { | ||||
|         $(".onoffswitch-checkbox").each(function() { this.checked = true;}); | ||||
|     }); | ||||
| }); | ||||
| 
 | ||||
| @ -1,3 +0,0 @@ | ||||
| @import "../../../node_modules/bootstrap/less/bootstrap.less"; | ||||
| 
 | ||||
| @import "typeahead.less"; | ||||
| @ -1,154 +0,0 @@ | ||||
| /* | ||||
|  * typehead.js-bootstrap3.less | ||||
|  * @version 0.2.3 | ||||
|  * https://github.com/hyspace/typeahead.js-bootstrap3.less | ||||
|  * | ||||
|  * Licensed under the MIT license: | ||||
|  * http://www.opensource.org/licenses/MIT | ||||
|  */ | ||||
| 
 | ||||
| //custom mixin for .form-control-validation | ||||
| .typeahead-form-control(@border-color: #ccc;) { | ||||
|     border-color: @border-color; | ||||
|     .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work | ||||
|     &:focus { | ||||
|       border-color: darken(@border-color, 10%); | ||||
|       @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%); | ||||
|       .box-shadow(@shadow); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   //main styles for control | ||||
|   .tt-input, | ||||
|   .tt-hint { | ||||
|     .twitter-typeahead &{ | ||||
|       //validation states | ||||
|       .has-warning &{ | ||||
|         .typeahead-form-control(@state-warning-text); | ||||
|       } | ||||
|       .has-error &{ | ||||
|         .typeahead-form-control(@state-danger-text); | ||||
|       } | ||||
|       .has-success &{ | ||||
|         .typeahead-form-control(@state-success-text); | ||||
|       } | ||||
|     } | ||||
|    | ||||
|     //border | ||||
|     .input-group .twitter-typeahead:first-child &{ | ||||
|       .border-left-radius(@border-radius-base); | ||||
|     } | ||||
|     .input-group .twitter-typeahead:last-child &{ | ||||
|       .border-right-radius(@border-radius-base); | ||||
|     } | ||||
|    | ||||
|     //sizing - small:size and border | ||||
|     .input-group.input-group-sm .twitter-typeahead &{ | ||||
|       .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small); | ||||
|     } | ||||
|     .input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) &{ | ||||
|       border-radius: 0; | ||||
|     } | ||||
|     .input-group.input-group-sm .twitter-typeahead:first-child &{ | ||||
|       .border-left-radius(@border-radius-small); | ||||
|       .border-right-radius(0); | ||||
|     } | ||||
|     .input-group.input-group-sm .twitter-typeahead:last-child &{ | ||||
|       .border-left-radius(0); | ||||
|       .border-right-radius(@border-radius-small); | ||||
|     } | ||||
|    | ||||
|     //sizing - large:size and border | ||||
|     .input-group.input-group-lg .twitter-typeahead &{ | ||||
|       .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large); | ||||
|     } | ||||
|     .input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) &{ | ||||
|       border-radius: 0; | ||||
|     } | ||||
|     .input-group.input-group-lg .twitter-typeahead:first-child &{ | ||||
|       .border-left-radius(@border-radius-large); | ||||
|       .border-right-radius(0); | ||||
|     } | ||||
|     .input-group.input-group-lg .twitter-typeahead:last-child &{ | ||||
|       .border-left-radius(0); | ||||
|       .border-right-radius(@border-radius-large); | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   //for wrapper | ||||
|   .twitter-typeahead { | ||||
|     width: 100%; | ||||
|     .input-group &{ | ||||
|       //overwrite `display:inline-block` style | ||||
|       display: table-cell!important; | ||||
|       float: left; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   //particular style for each other | ||||
|   .twitter-typeahead .tt-hint { | ||||
|     color: @text-muted;//color - hint | ||||
|   } | ||||
|   .twitter-typeahead .tt-input { | ||||
|     z-index: 2; | ||||
|     //disabled status | ||||
|     //overwrite inline styles of .tt-query | ||||
|     &[disabled], | ||||
|     &[readonly], | ||||
|     fieldset[disabled] & { | ||||
|       cursor: not-allowed; | ||||
|       //overwirte inline style | ||||
|       background-color: @input-bg-disabled!important; | ||||
|     } | ||||
|   } | ||||
|    | ||||
|   //dropdown styles | ||||
|   .tt-dropdown-menu { | ||||
|     //dropdown menu | ||||
|     position: absolute; | ||||
|     top: 100%; | ||||
|     left: 0; | ||||
|     z-index: @zindex-dropdown; | ||||
|     min-width: 160px; | ||||
|     width: 100%; | ||||
|     padding: 5px 0; | ||||
|     margin: 2px 0 0; | ||||
|     list-style: none; | ||||
|     font-size: @font-size-base; | ||||
|     background-color: @dropdown-bg; | ||||
|     border: 1px solid @dropdown-fallback-border; | ||||
|     border: 1px solid @dropdown-border; | ||||
|     border-radius: @border-radius-base; | ||||
|     .box-shadow(0 6px 12px rgba(0,0,0,.175)); | ||||
|     background-clip: padding-box; | ||||
|     *border-right-width: 2px; | ||||
|     *border-bottom-width: 2px; | ||||
|    | ||||
|     .tt-suggestion { | ||||
|       //item | ||||
|       display: block; | ||||
|       padding: 3px 20px; | ||||
|       clear: both; | ||||
|       font-weight: normal; | ||||
|       line-height: @line-height-base; | ||||
|       color: @dropdown-link-color; | ||||
|       white-space: nowrap; | ||||
|       text-align: left; | ||||
|       cursor: pointer !important; | ||||
|       &.tt-cursor { | ||||
|         //item selected | ||||
|         text-decoration: none; | ||||
|         outline: 0; | ||||
|         background-color: @dropdown-link-hover-bg; | ||||
|         color: @dropdown-link-hover-color; | ||||
|         a { | ||||
|           //link in item selected | ||||
|           color: @dropdown-link-hover-color; | ||||
|         } | ||||
|       } | ||||
|       p { | ||||
|         margin: 0; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|    | ||||
| @ -1,21 +0,0 @@ | ||||
| @keyframes rotate-forever { | ||||
|     0%   { transform: rotate(0deg) } | ||||
|     100% { transform: rotate(360deg) } | ||||
| } | ||||
| 
 | ||||
| .loading-spinner { | ||||
|     animation-duration: 0.75s; | ||||
|     animation-iteration-count: infinite; | ||||
|     animation-name: rotate-forever; | ||||
|     animation-timing-function: linear; | ||||
|     height: 30px; | ||||
|     width: 30px; | ||||
|     border: 8px solid #666; | ||||
|     border-right-color: transparent; | ||||
|     border-radius: 50% !important; | ||||
|     margin: 0 auto; | ||||
| } | ||||
| 
 | ||||
| html.infinite_scroll #pagination button { | ||||
| 	visibility: hidden; | ||||
| } | ||||
| @ -1,269 +0,0 @@ | ||||
| @import "../logicodev/variables.less"; | ||||
| @import "../../../../__common__/less/new_issue.less"; | ||||
| @import "../../../../__common__/less/stats.less"; | ||||
| @import "../../../../__common__/less/result_templates.less"; | ||||
| @import "../../less/result_templates.less"; | ||||
| @import "../../less/preferences.less"; | ||||
| @import "../infinite_scroll.less"; | ||||
| @import "../../generated/pygments-logicodev.less"; | ||||
| 
 | ||||
| @stacked-bar-chart: rgb(213, 216, 215, 1); | ||||
| 
 | ||||
| @import "../logicodev/footer.less"; | ||||
| @import "../logicodev/checkbox.less"; | ||||
| @import "../logicodev/onoff.less"; | ||||
| @import "../logicodev/results.less"; | ||||
| @import "../logicodev/infobox.less"; | ||||
| @import "../logicodev/search.less"; | ||||
| @import "../logicodev/advanced.less"; | ||||
| @import "../logicodev/cursor.less"; | ||||
| @import "../logicodev/code.less"; | ||||
| @import "../logicodev/preferences.less"; | ||||
| 
 | ||||
| @import (inline) "../safari.css"; | ||||
| 
 | ||||
| /*Global*/ | ||||
| body { | ||||
|   background:#1d1f21 none !important; | ||||
|   color:#D5D8D7 !important; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|   color:#41a2ce !important; | ||||
|   text-decoration: none !important; | ||||
| } | ||||
| 
 | ||||
| a:hover { | ||||
|   color:#5F89AC !important; | ||||
| } | ||||
| 
 | ||||
| input, button, textarea, select { | ||||
|   border: 1px solid #282a2e !important; | ||||
|   background-color: #444 !important; | ||||
|   color: #BBB !important; | ||||
| } | ||||
| 
 | ||||
| input:focus, button:focus, textarea:focus, select:focus { | ||||
|   border: 1px solid #C5C8C6 !important; | ||||
|   box-shadow: initial !important; | ||||
| } | ||||
| 
 | ||||
| div#advanced-search-container  div#categories label{ | ||||
|   background:none; | ||||
|   border: 1px solid #282a2e; | ||||
| } | ||||
| 
 | ||||
| ul.nav li a { | ||||
|   border: 0 !important; | ||||
|   border-bottom: 1px solid #4d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| #categories *, .modal-wrapper * { | ||||
|   background:#1d1f21 none !important; | ||||
|   color:#D5D8D7 !important; | ||||
| } | ||||
| 
 | ||||
| #categories *, { | ||||
|   border: 1px solid #3d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| #categories *:checked + label { | ||||
|   border-bottom: 4px solid #3d9f94 !important; | ||||
| } | ||||
| 
 | ||||
| .result-content, .result-source, .result-format { | ||||
|   color:#B5B8B7 !important; | ||||
| } | ||||
| 
 | ||||
| .external-link { | ||||
|   color:#35B887 !important; | ||||
| } | ||||
| 
 | ||||
| .table-striped tr td, .table-striped tr th { | ||||
|   border-color: #4d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| /*nav*/ | ||||
| .navbar{ | ||||
|   background:#1d1f21 none; | ||||
|   border: none; | ||||
| } | ||||
| 
 | ||||
| .navbar .active, .menu { | ||||
|   background: none !important; | ||||
| } | ||||
| 
 | ||||
| .label-default { | ||||
|   background: none; | ||||
|   color: #BBB; | ||||
| } | ||||
| 
 | ||||
| .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus, .nav-tabs.nav-justified > .active > a{ | ||||
|   background-color: #282a2e !important; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| /*Search Page*/ | ||||
| .result-default:hover, .result-code:hover, .result-torrent:hover, .result-videos:hover, .result-map:hover { | ||||
|     background-color: #222426; | ||||
| } | ||||
| 
 | ||||
| /*buttons*/ | ||||
| .btn { | ||||
|   color: #BBB; | ||||
|   background-color: #444 ; | ||||
|   border: 1px solid #282a2e; | ||||
| } | ||||
| 
 | ||||
| .btn:hover { | ||||
|   color:#444 !important; | ||||
|   background-color: #BBB !important; | ||||
| } | ||||
| 
 | ||||
| .btn-primary.active { | ||||
|   color: #C5C8C6; | ||||
|   background-color: #5F89AC; | ||||
|   border-color: #5F89AC; | ||||
| } | ||||
| 
 | ||||
| /*Right Pannels*/ | ||||
| .panel { | ||||
|   border: 1px solid #111; | ||||
|   background: none; | ||||
| } | ||||
| 
 | ||||
| .panel-heading { | ||||
|   color: #C5C8C6 !important; | ||||
|   background: #282a2e !important; | ||||
|   border-bottom: none; | ||||
| } | ||||
| 
 | ||||
| .panel-body { | ||||
|   color: #C5C8C6 !important; | ||||
|   background: #1d1f21 !important; | ||||
|   border-color: #111 !important; | ||||
| } | ||||
| 
 | ||||
| .panel-footer { | ||||
|   color: #C5C8C6 !important; | ||||
|   background: #282a2e !important; | ||||
|   border-top: 1px solid #111 !important; | ||||
| } | ||||
| 
 | ||||
| .infobox_toggle:hover { | ||||
|   background: #3d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| p.btn.btn-default{ | ||||
|   background: none; | ||||
| } | ||||
| 
 | ||||
| .table-striped>tbody>tr:nth-child(odd)>td, .table-striped>tbody>tr:nth-child(odd)>th, .table-striped>thead>tr:nth-child(odd)>th { | ||||
|   background:#2d2f32 none !important; | ||||
|   color:#D5D8D7 !important; | ||||
| } | ||||
| 
 | ||||
| .label-success { | ||||
|   background:#1d6f42 none !important; | ||||
| } | ||||
| 
 | ||||
| .label-danger { | ||||
|   background:#ad1f12 none !important; | ||||
| } | ||||
| 
 | ||||
| .searxng-navbar { | ||||
|     background: #333334; | ||||
|     height: 2.3rem; | ||||
|     font-size: 1.3rem; | ||||
|     line-height: 1.3rem; | ||||
|     padding: 0.5rem; | ||||
|     font-weight: bold; | ||||
|     margin-bottom: 0.8rem; | ||||
| 
 | ||||
|     a, a:hover { | ||||
|         margin-right: 2.0rem; | ||||
|         color: white; | ||||
|         text-decoration: none; | ||||
|     } | ||||
| 
 | ||||
|     .instance a { | ||||
|         color: @light-green; | ||||
|         margin-left: 2.0rem; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #main-logo { | ||||
|     margin-top: 20vh; | ||||
|     margin-bottom: 25px; | ||||
| 
 | ||||
|     & > img { | ||||
|         max-width: 350px; | ||||
|         width: 80%; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| .onoffswitch-inner:before, .onoffswitch-inner:after { | ||||
|   background:#1d1f21 none !important; | ||||
| } | ||||
| 
 | ||||
| .onoffswitch-switch,  .onoffswitch-label { | ||||
|   border: 2px solid #3d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| .nav>li>a:hover, .nav>li>a:focus { | ||||
|   background-color: #3d3f43 !important; | ||||
| } | ||||
| 
 | ||||
| /*Images search*/ | ||||
| .img-thumbnail, .thumbnail { | ||||
|     padding: 0px; | ||||
|     line-height: 1.42857143; | ||||
|     background: none; | ||||
|     border: none; | ||||
| } | ||||
| 
 | ||||
| .modal-content { | ||||
|   background:#1d1f21 none !important; | ||||
| } | ||||
| 
 | ||||
| /*Preferences*/ | ||||
| 
 | ||||
| .table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { | ||||
|   background: RGBA(240, 0, 0, 0.56) !important; | ||||
|   color: #C5C8C6 !important; | ||||
| } | ||||
| 
 | ||||
| .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { | ||||
|   background: RGBA(237, 59, 59, 0.61) !important; | ||||
|   color: #C5C8C6 !important; | ||||
| } | ||||
| 
 | ||||
| .table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { | ||||
|   background: rgb(102, 105, 110) !important; | ||||
| } | ||||
| 
 | ||||
| .btn-success { | ||||
|   color: #C5C8C6; | ||||
|   background: #449d44; | ||||
| } | ||||
| 
 | ||||
| .btn-danger { | ||||
|   color: #C5C8C6; | ||||
|   background: #d9534f; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| .well { | ||||
|   background: #444; | ||||
|   border-color: #282a2e; | ||||
| } | ||||
| 
 | ||||
| .highlight { | ||||
|   background-color: transparent !important; | ||||
| } | ||||
| 
 | ||||
| /* engine tooltip */ | ||||
| .engine-tooltip { | ||||
|   border: 1px solid #3d3f43; | ||||
|   background: #1d1f21 ; | ||||
| } | ||||
| @ -1,49 +0,0 @@ | ||||
| #advanced-search-container { | ||||
|     display: none; | ||||
|     text-align: left; | ||||
|     margin-bottom: 1rem; | ||||
|     clear: both; | ||||
| 
 | ||||
|     label, .input-group-addon { | ||||
|         font-size: 1.2rem; | ||||
|         font-weight:normal; | ||||
|         background-color: white; | ||||
|         border: @mild-gray 1px solid; | ||||
|         border-right: none; | ||||
|         color: @dark-gray; | ||||
|         padding-bottom: 0.4rem; | ||||
|         padding-right: 0.7rem; | ||||
|         padding-left: 0.7rem; | ||||
|     } | ||||
| 
 | ||||
|     label:last-child, .input-group-addon:last-child { | ||||
|         border-right: @mild-gray 1px solid; | ||||
|     } | ||||
| 
 | ||||
|     input[type="radio"] { | ||||
|         display: none; | ||||
|     } | ||||
| 
 | ||||
|     input[type="radio"]:checked + label{ | ||||
|         color: @black; | ||||
|         font-weight: bold; | ||||
|         border-bottom: @light-green 5px solid; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #check-advanced:focus + label { | ||||
|     text-decoration: underline; | ||||
| } | ||||
| 
 | ||||
| #check-advanced:checked ~ #advanced-search-container { | ||||
|     display: block; | ||||
| } | ||||
| 
 | ||||
| .advanced { | ||||
|     padding: 0; | ||||
|     margin-top: 0.3rem; | ||||
|     text-align: right; | ||||
|     label, select { | ||||
|         cursor: pointer; | ||||
|     } | ||||
| } | ||||
| @ -1,9 +0,0 @@ | ||||
| // Hide element if checkbox is checked | ||||
| input[type=checkbox]:checked + .label_hide_if_checked, input[type=checkbox]:checked + .label_hide_if_not_checked + .label_hide_if_checked { | ||||
|   display:none; | ||||
| } | ||||
| 
 | ||||
| // Hide element if checkbox is not checked | ||||
| input[type=checkbox]:not(:checked) + .label_hide_if_not_checked, input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not_checked { | ||||
|   display:none; | ||||
| } | ||||
| @ -1,12 +0,0 @@ | ||||
| pre, code { | ||||
|     font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important; | ||||
| } | ||||
| 
 | ||||
| .code-highlight pre { | ||||
|     margin-bottom: 25px; | ||||
|     padding: 20px 10px; | ||||
|     background-color: inherit; | ||||
|     color: inherit; | ||||
|     border: inherit; | ||||
|     color: #D7DAE0; | ||||
| } | ||||
| @ -1,8 +0,0 @@ | ||||
| // display cursor | ||||
| .cursor-text { | ||||
|     cursor: text !important; | ||||
| } | ||||
| 
 | ||||
| .cursor-pointer { | ||||
|     cursor: pointer !important; | ||||
| } | ||||
| @ -1,30 +0,0 @@ | ||||
| // Sticky footer styles | ||||
| *{ | ||||
|   border-radius: 0 !important; | ||||
| } | ||||
| html { | ||||
|   position: relative; | ||||
|   min-height: 100%; | ||||
|   color: @black; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   /* Margin bottom by footer height */ | ||||
|   font-family: 'Roboto', Helvetica, Arial, sans-serif; | ||||
|   margin-bottom: 80px; | ||||
|   background-color: white; | ||||
| 
 | ||||
|   a{ | ||||
|       color: @blue; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .footer { | ||||
|   position: absolute; | ||||
|   bottom: 0; | ||||
|   width: 100%; | ||||
|   /* Set the fixed height of the footer here */ | ||||
|   height: 60px; | ||||
|   text-align: center; | ||||
|   color: #999; | ||||
| } | ||||
| @ -1,92 +0,0 @@ | ||||
| .infobox { | ||||
| 
 | ||||
|     .panel-heading{ | ||||
|         background-color: @dim-gray; | ||||
| 
 | ||||
|         .panel-title{ | ||||
|             font-weight: 700; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     .header_url { | ||||
|         white-space: nowrap; | ||||
|         overflow: hidden; | ||||
|         text-overflow: ellipsis; | ||||
|         display: block; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     p{ | ||||
|         font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important; | ||||
|         font-style: italic; | ||||
|     } | ||||
| 
 | ||||
|     img{ | ||||
|         max-height: "250px"; | ||||
|     } | ||||
| 
 | ||||
|     .btn{ | ||||
|         background-color: @dark-blue; | ||||
|         border: none; | ||||
| 
 | ||||
|         a{ | ||||
|             color: white; | ||||
|             margin: 5px; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     .infobox_part { | ||||
|         margin-bottom: 20px; | ||||
|         word-wrap: break-word; | ||||
|         table-layout: fixed; | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     .infobox_part:last-child { | ||||
|         margin-bottom: 0; | ||||
|     } | ||||
| 
 | ||||
|     .infobox_toggle { | ||||
|         width: 100%; | ||||
|         text-align: center; | ||||
|         margin-bottom: 0px; | ||||
|         cursor: pointer; | ||||
|     } | ||||
| 
 | ||||
|     .infobox_toggle:hover { | ||||
|         background: @mild-gray; | ||||
|     } | ||||
| 
 | ||||
|     // Shrink infobox size when toggle is off | ||||
|     .infobox_checkbox ~ .infobox_body { | ||||
|         max-height: 300px; | ||||
|         overflow: hidden; | ||||
|     } | ||||
|     .infobox_checkbox:checked ~ .infobox_body { | ||||
|         max-height: none; | ||||
|     } | ||||
| 
 | ||||
|     // Show toggle button as down when infobox is shrunk | ||||
|     .infobox_checkbox ~ .infobox_toggle .infobox_label_down { | ||||
|         display: block; | ||||
|     } | ||||
|     .infobox_checkbox ~ .infobox_toggle .infobox_label_up { | ||||
|         display: none; | ||||
|     } | ||||
| 
 | ||||
|     // Show toggle button as up when infobox is expanded | ||||
|     .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { | ||||
|         display: block; | ||||
|     } | ||||
|     .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { | ||||
|         display: none; | ||||
|     } | ||||
| 
 | ||||
|     // Hide main image when toggle is off | ||||
|     .infobox_checkbox ~ .infobox_body img.infobox_part { | ||||
|         display: none; | ||||
|     } | ||||
|     .infobox_checkbox:checked ~ .infobox_body img.infobox_part { | ||||
|         display: block; | ||||
|     } | ||||
| } | ||||
| @ -1,30 +0,0 @@ | ||||
| .searxng-navbar { | ||||
|     background: @black; | ||||
|     height: 2.3rem; | ||||
|     font-size: 1.3rem; | ||||
|     line-height: 1.3rem; | ||||
|     padding: 0.5rem; | ||||
|     font-weight: bold; | ||||
|     margin-bottom: 0.8rem; | ||||
| 
 | ||||
|     a, a:hover { | ||||
|         margin-right: 2.0rem; | ||||
|         color: white; | ||||
|         text-decoration: none; | ||||
|     } | ||||
| 
 | ||||
|     .instance a { | ||||
|         color: @light-green; | ||||
|         margin-left: 2.0rem; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| #main-logo { | ||||
|     margin-top: 20vh; | ||||
|     margin-bottom: 25px; | ||||
| 
 | ||||
|     & > img { | ||||
|         max-width: 350px; | ||||
|         width: 80%; | ||||
|     } | ||||
| } | ||||
| @ -1,74 +0,0 @@ | ||||
| .onoff-checkbox { | ||||
|     width:15%; | ||||
| } | ||||
| .onoffswitch { | ||||
|     position: relative; | ||||
|     width: 110px; | ||||
|     -webkit-user-select:none; | ||||
|     -moz-user-select:none; | ||||
|     -ms-user-select: none; | ||||
| } | ||||
| .onoffswitch-checkbox { | ||||
|     opacity: 0; | ||||
|     position: absolute; | ||||
| } | ||||
| .onoffswitch-checkbox:before { | ||||
|     content: ""; | ||||
|     display: inline-block; | ||||
|     width: 16px; | ||||
|     height: 16px; | ||||
|     margin-right: 10px; | ||||
|     position: absolute; | ||||
|     left: 0; | ||||
|     bottom: 1px; | ||||
|     background-color: #fff; | ||||
|     border: 1px solid #ccc; | ||||
|     border-radius: 0px; | ||||
| } | ||||
| .onoffswitch-label { | ||||
|     display: block; | ||||
|     overflow: hidden; | ||||
|     cursor: pointer; | ||||
|     border: 2px solid #FFFFFF !important; | ||||
|     border-radius: 50px !important; | ||||
| } | ||||
| .onoffswitch-inner { | ||||
|     display: block; | ||||
|     transition: margin 0.3s ease-in 0s; | ||||
| } | ||||
| 
 | ||||
| .onoffswitch-inner:before, .onoffswitch-inner:after { | ||||
|     display: block; | ||||
|     float: left; | ||||
|     width: 50%; | ||||
|     height: 30px; | ||||
|     padding: 0; | ||||
|     line-height: 40px; | ||||
|     font-size: 20px; | ||||
|     box-sizing: border-box; | ||||
|     content: ""; | ||||
|     background-color: #EEEEEE; | ||||
| } | ||||
| 
 | ||||
| .onoffswitch-switch { | ||||
|     display: block; | ||||
|     width: 37px; | ||||
|     background-color: @light-green; | ||||
|     position: absolute; | ||||
|     top: 0; | ||||
|     bottom: 0; | ||||
|     right: 0px; | ||||
|     border: 2px solid #FFFFFF; | ||||
|     border-radius: 50px !important; | ||||
|     transition: all 0.3s ease-in 0s; | ||||
| } | ||||
| .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { | ||||
|     margin-right: 0; | ||||
| } | ||||
| .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { | ||||
|     right: 71px; | ||||
|     background-color: #A1A1A1; | ||||
| } | ||||
| .onoffswitch-checkbox:focus + .onoffswitch-label .onoffswitch-switch { | ||||
|     border: 3px solid #444444; | ||||
| } | ||||
| @ -1,22 +0,0 @@ | ||||
| @import "variables.less"; | ||||
| @import "../../../../__common__/less/new_issue.less"; | ||||
| @import "../../../../__common__/less/stats.less"; | ||||
| @import "../../../../__common__/less/result_templates.less"; | ||||
| @import "../../less/result_templates.less"; | ||||
| @import "../../less/preferences.less"; | ||||
| @import "../infinite_scroll.less"; | ||||
| @import "../../generated/pygments-logicodev.less"; | ||||
| 
 | ||||
| @import "navbar.less"; | ||||
| @import "footer.less"; | ||||
| @import "checkbox.less"; | ||||
| @import "onoff.less"; | ||||
| @import "results.less"; | ||||
| @import "infobox.less"; | ||||
| @import "search.less"; | ||||
| @import "advanced.less"; | ||||
| @import "cursor.less"; | ||||
| @import "code.less"; | ||||
| @import "preferences.less"; | ||||
| 
 | ||||
| @import (inline) "../safari.css"; | ||||