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" |       day: "friday" | ||||||
|     open-pull-requests-limit: 5 |     open-pull-requests-limit: 5 | ||||||
|     target-branch: "master" |     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" |   - package-ecosystem: "npm" | ||||||
|     directory: "/searx/static/themes/simple" |     directory: "/searx/static/themes/simple" | ||||||
|     schedule: |     schedule: | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						| @ -87,7 +87,7 @@ MANAGE += pyenv pyenv.install pyenv.uninstall | |||||||
| MANAGE += pypi.upload pypi.upload.test | MANAGE += pypi.upload pypi.upload.test | ||||||
| MANAGE += format.python | 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 += 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 += static.build.commit static.build.drop static.build.restore | ||||||
| MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs | MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ Sample response | |||||||
|        "images", |        "images", | ||||||
|      ], |      ], | ||||||
|      "default_locale": "", |      "default_locale": "", | ||||||
|      "default_theme": "oscar", |      "default_theme": "simple", | ||||||
|      "engines": [ |      "engines": [ | ||||||
|        { |        { | ||||||
|          "categories": [ |          "categories": [ | ||||||
|  | |||||||
| @ -18,9 +18,8 @@ All of the engines above are just commented out in the :origin:`settings.yml | |||||||
| dependencies before using them. | dependencies before using them. | ||||||
| 
 | 
 | ||||||
| By default, the engines use the ``key-value`` template for displaying results / | By default, the engines use the ``key-value`` template for displaying results / | ||||||
| see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` & | see :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||||
| :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | theme.  If you are not satisfied with the original result layout, you can use | ||||||
| themes.  If you are not satisfied with the original result layout, you can use |  | ||||||
| your own template, set ``result_template`` attribute to ``{template_name}`` and | your own template, set ``result_template`` attribute to ``{template_name}`` and | ||||||
| place the templates at:: | place the templates at:: | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -30,9 +30,8 @@ engines, e.g. ``database:`` ... | |||||||
|      query_str: ... |      query_str: ... | ||||||
| 
 | 
 | ||||||
| By default, the engines use the ``key-value`` template for displaying results / | By default, the engines use the ``key-value`` template for displaying results / | ||||||
| see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` & | see :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | ||||||
| :origin:`simple <searx/templates/simple/result_templates/key-value.html>` | theme.  If you are not satisfied with the original result layout, you can use | ||||||
| themes.  If you are not satisfied with the original result layout, you can use |  | ||||||
| your own template, set ``result_template`` attribute to ``{template_name}`` and | your own template, set ``result_template`` attribute to ``{template_name}`` and | ||||||
| place the templates at:: | place the templates at:: | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -75,8 +75,8 @@ Parameters | |||||||
|   Filter search results of engines which support safe search.  See if an engine |   Filter search results of engines which support safe search.  See if an engine | ||||||
|   supports safe search in the preferences page of an instance. |   supports safe search in the preferences page of an instance. | ||||||
| 
 | 
 | ||||||
| ``theme`` : default ``oscar`` | ``theme`` : default ``simple`` | ||||||
|   [ ``oscar``, ``simple`` ] |   [ ``simple`` ] | ||||||
| 
 | 
 | ||||||
|   Theme of instance. |   Theme of instance. | ||||||
| 
 | 
 | ||||||
| @ -84,16 +84,6 @@ Parameters | |||||||
|   instance administrator deleted, created or renamed themes on their instance. |   instance administrator deleted, created or renamed themes on their instance. | ||||||
|   See the available options in the preferences page of the 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 | ``enabled_plugins`` : optional | ||||||
|   List of enabled plugins. |   List of enabled plugins. | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								manage
									
									
									
									
									
								
							
							
						
						| @ -115,7 +115,6 @@ test.: | |||||||
|   clean     : clean intermediate test stuff |   clean     : clean intermediate test stuff | ||||||
| themes.: | themes.: | ||||||
|   all       : build all themes |   all       : build all themes | ||||||
|   oscar     : build oscar theme |  | ||||||
|   simple    : build simple theme |   simple    : build simple theme | ||||||
| pygments.: | pygments.: | ||||||
|   less      : build LESS files for pygments |   less      : build LESS files for pygments | ||||||
| @ -554,9 +553,6 @@ node.env() { | |||||||
|     nodejs.ensure |     nodejs.ensure | ||||||
|     (   set -e |     (   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" |         build_msg INSTALL "searx/static/themes/simple/package.json" | ||||||
|         npm --prefix searx/static/themes/simple install |         npm --prefix searx/static/themes/simple install | ||||||
|     ) |     ) | ||||||
| @ -576,7 +572,6 @@ node.clean() { | |||||||
|     fi |     fi | ||||||
|     build_msg CLEAN "themes -- locally installed npm dependencies" |     build_msg CLEAN "themes -- locally installed npm dependencies" | ||||||
|     (   set -e |     (   set -e | ||||||
|         npm --prefix searx/static/themes/oscar run clean |  | ||||||
|         npm --prefix searx/static/themes/simple run clean |         npm --prefix searx/static/themes/simple run clean | ||||||
|     ) |     ) | ||||||
|     dump_return $? |     dump_return $? | ||||||
| @ -762,7 +757,6 @@ themes.all() { | |||||||
|     (   set -e |     (   set -e | ||||||
|         pygments.less |         pygments.less | ||||||
|         node.env |         node.env | ||||||
|         themes.oscar |  | ||||||
|         themes.simple |         themes.simple | ||||||
|     ) |     ) | ||||||
|     dump_return $? |     dump_return $? | ||||||
| @ -771,14 +765,14 @@ themes.all() { | |||||||
| themes.live() { | themes.live() { | ||||||
|     local LIVE_THEME="${LIVE_THEME:-${1}}" |     local LIVE_THEME="${LIVE_THEME:-${1}}" | ||||||
|     case "${LIVE_THEME}" in |     case "${LIVE_THEME}" in | ||||||
|         simple|oscar) |         simple) | ||||||
|             theme="searx/static/themes/${LIVE_THEME}" |             theme="searx/static/themes/${LIVE_THEME}" | ||||||
|             ;; |             ;; | ||||||
|         '') |         '') | ||||||
|             die_caller 42 "missing theme argument" |             die_caller 42 "missing theme argument" | ||||||
|             ;; |             ;; | ||||||
|         *) |         *) | ||||||
|             die_caller 42 "unknown theme '${LIVE_THEME}' // [simple|oscar]'" |             die_caller 42 "unknown theme '${LIVE_THEME}' // [simple]'" | ||||||
|             ;; |             ;; | ||||||
|     esac |     esac | ||||||
|     build_msg GRUNT "theme: $1 (live build)" |     build_msg GRUNT "theme: $1 (live build)" | ||||||
| @ -792,12 +786,6 @@ themes.live() { | |||||||
|         | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |' |         | 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() { | themes.simple() { | ||||||
|     (   set -e |     (   set -e | ||||||
|         build_msg GRUNT "theme: simple" |         build_msg GRUNT "theme: simple" | ||||||
|  | |||||||
| @ -362,11 +362,6 @@ class Preferences: | |||||||
|                 locked=is_locked('doi_resolver'), |                 locked=is_locked('doi_resolver'), | ||||||
|                 choices=DOI_RESOLVERS |                 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( |             'simple_style': EnumStringSetting( | ||||||
|                 settings['ui']['theme_args']['simple_style'], |                 settings['ui']['theme_args']['simple_style'], | ||||||
|                 locked=is_locked('simple_style'), |                 locked=is_locked('simple_style'), | ||||||
|  | |||||||
| @ -86,8 +86,6 @@ ui: | |||||||
|   # Open result links in a new tab by default |   # Open result links in a new tab by default | ||||||
|   # results_on_new_tab: false |   # results_on_new_tab: false | ||||||
|   theme_args: |   theme_args: | ||||||
|     # default style of oscar |  | ||||||
|     oscar_style: logicodev |  | ||||||
|     # style of simple theme: auto, light, dark |     # style of simple theme: auto, light, dark | ||||||
|     simple_style: auto |     simple_style: auto | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -18,7 +18,6 @@ searx_dir = abspath(dirname(__file__)) | |||||||
| logger = logging.getLogger('searx') | logger = logging.getLogger('searx') | ||||||
| OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss'] | OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss'] | ||||||
| LANGUAGE_CODES = ['all'] + list(l[0] for l in languages) | LANGUAGE_CODES = ['all'] + list(l[0] for l in languages) | ||||||
| OSCAR_STYLE = ('logicodev', 'logicodev-dark', 'pointhi') |  | ||||||
| SIMPLE_STYLE = ('auto', 'light', 'dark') | SIMPLE_STYLE = ('auto', 'light', 'dark') | ||||||
| CATEGORIES_AS_TABS = { | CATEGORIES_AS_TABS = { | ||||||
|     'general': {}, |     'general': {}, | ||||||
| @ -181,7 +180,6 @@ SCHEMA = { | |||||||
|         'default_theme': SettingsValue(str, 'simple'), |         'default_theme': SettingsValue(str, 'simple'), | ||||||
|         'default_locale': SettingsValue(str, ''), |         'default_locale': SettingsValue(str, ''), | ||||||
|         'theme_args': { |         'theme_args': { | ||||||
|             'oscar_style': SettingsValue(OSCAR_STYLE, 'logicodev'), |  | ||||||
|             'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'), |             'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'), | ||||||
|         }, |         }, | ||||||
|         'results_on_new_tab': SettingsValue(bool, False), |         '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"; |  | ||||||