├── local.gen ├── model ├── __init__.py ├── aws.py └── files.py ├── requirements.txt ├── img ├── favicon.ico ├── bg-color-bar.png └── logo-iiif-34x30.png ├── css ├── themes │ ├── proton │ │ ├── 30px.png │ │ ├── 32px.png │ │ ├── throbber.gif │ │ ├── fonts │ │ │ └── titillium │ │ │ │ ├── titilliumweb-bold-webfont.eot │ │ │ │ ├── titilliumweb-bold-webfont.ttf │ │ │ │ ├── titilliumweb-bold-webfont.woff │ │ │ │ ├── titilliumweb-regular-webfont.eot │ │ │ │ ├── titilliumweb-regular-webfont.ttf │ │ │ │ ├── titilliumweb-regular-webfont.woff │ │ │ │ ├── titilliumweb-extralight-webfont.eot │ │ │ │ ├── titilliumweb-extralight-webfont.ttf │ │ │ │ └── titilliumweb-extralight-webfont.woff │ │ ├── style.min.css │ │ └── style.css │ └── default │ │ ├── 30px.png │ │ ├── 32px.png │ │ ├── 40px.png │ │ ├── throbber.gif │ │ ├── style.min.css │ │ └── style.css ├── normalize.min.css └── main.css ├── runDocker.sh ├── app.wsgi ├── tests ├── fixtures │ ├── existing_metadata.json │ ├── video_desc_only.json │ └── video_desc_metadata.json └── TestSuite.py ├── Dockerfile ├── README.md ├── views ├── footer.tpl ├── header.tpl ├── index.tpl └── info.tpl ├── index.py ├── apache.conf ├── .gitignore └── LICENSE /local.gen: -------------------------------------------------------------------------------- 1 | en_US.UTF-8 UTF-8 2 | -------------------------------------------------------------------------------- /model/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | boto3 2 | bottle 3 | pymediainfo 4 | -------------------------------------------------------------------------------- /img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/img/favicon.ico -------------------------------------------------------------------------------- /img/bg-color-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/img/bg-color-bar.png -------------------------------------------------------------------------------- /img/logo-iiif-34x30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/img/logo-iiif-34x30.png -------------------------------------------------------------------------------- /css/themes/proton/30px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/30px.png -------------------------------------------------------------------------------- /css/themes/proton/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/32px.png -------------------------------------------------------------------------------- /css/themes/default/30px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/default/30px.png -------------------------------------------------------------------------------- /css/themes/default/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/default/32px.png -------------------------------------------------------------------------------- /css/themes/default/40px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/default/40px.png -------------------------------------------------------------------------------- /css/themes/default/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/default/throbber.gif -------------------------------------------------------------------------------- /css/themes/proton/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/throbber.gif -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.eot -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.ttf -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-bold-webfont.woff -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.eot -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.ttf -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-regular-webfont.woff -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.eot -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.ttf -------------------------------------------------------------------------------- /css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IIIF/fixtures/master/css/themes/proton/fonts/titillium/titilliumweb-extralight-webfont.woff -------------------------------------------------------------------------------- /runDocker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker build -t iiif-fixtures . && docker run -it --rm -p 8000:80 -e AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" -e AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" --name iiif-fixtures iiif-fixtures:latest 4 | -------------------------------------------------------------------------------- /app.wsgi: -------------------------------------------------------------------------------- 1 | import os 2 | # Change working directory so relative paths (and template lookup) work again 3 | os.chdir(os.path.dirname(__file__)) 4 | import sys 5 | print (sys.path) 6 | import bottle 7 | # ... build or import your bottle application here ... 8 | import index 9 | # Do NOT use bottle.run() with mod_wsgi 10 | application = bottle.default_app() 11 | -------------------------------------------------------------------------------- /tests/fixtures/existing_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "images/Glen/photos/gottingen.jpg": { 3 | "title": "Picture of Göttingen taken during the 2019 IIIF Conference", 4 | "source": "Picture taken by the IIIF Technical Coordinator", 5 | "attribution": "Glen Robson, IIIF Technical Coordinator. [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)]" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM srittau/wsgi-base:latest 2 | 3 | RUN apt-get -y install mediainfo 4 | WORKDIR /app/pylibs 5 | COPY requirements.txt ./ 6 | RUN /app/virtualenv/bin/pip install -r requirements.txt 7 | RUN mkdir /app/www-data 8 | RUN a2enmod proxy proxy_http proxy_http2 rewrite headers 9 | RUN chmod 777 . 10 | 11 | COPY . . 12 | RUN if test -f "files.json"; then chmod 777 files.json; fi 13 | 14 | RUN ln -sf /dev/stdout /var/log/apache2/access.log && ln -sf /dev/stderr /var/log/apache2/error.log 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | ## Architecture 8 | 9 | To make responses quicker the filesystem layout is stored in the following file: 10 | 11 | * files.json 12 | 13 | This is generated on boot and then updated by subscribing to the SQS topic for the bucket. The SQS messages are generated when there is a change to the underlying s3 bucket. More info: 14 | 15 | * [S3 Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) 16 | * [Python client](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/sqs-example-sending-receiving-msgs.html) 17 | -------------------------------------------------------------------------------- /model/aws.py: -------------------------------------------------------------------------------- 1 | #!`which python3` 2 | 3 | import os 4 | import boto3 5 | 6 | class AWS: 7 | def __init__(self): 8 | if 'AWS_ACCESS_KEY_ID' in os.environ and 'AWS_SECRET_ACCESS_KEY' in os.environ: 9 | self.session = boto3.Session(aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'], aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY']) 10 | else: 11 | self.session = boto3.Session() 12 | 13 | def s3(self): 14 | return self.session.resource('s3') 15 | 16 | def client(self, service, region='us-east-1'): 17 | return self.session.client(service, region_name=region) 18 | -------------------------------------------------------------------------------- /tests/fixtures/video_desc_only.json: -------------------------------------------------------------------------------- 1 | { 2 | "video/indiana/30-minute-clock/medium/30-minute-clock.mp4": { 3 | "metadata": { 4 | "description": { 5 | "title": "30 minute clock", 6 | "source": "The video was created by DrLex1 and was released using a Creative Commons Attribution license", 7 | "attribution": "http://creativecommons.org/licenses/by/3.0/", 8 | "source_url": "https://www.youtube.com/watch?v=Lsq0FiXjGHg", 9 | "description": "Attribution must be added to recipes and manifests that use this video." 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /views/footer.tpl: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /index.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | import json 5 | import os 6 | import bottle 7 | from bottle import route, run, template,debug, get, static_file, post, get,request, redirect 8 | from model import files 9 | 10 | @route('/index.html') 11 | @route('/') 12 | def showIndex(): 13 | if 'refresh' in request.query and request.query['refresh'] == 'true': 14 | refresh = True 15 | else: 16 | refresh = False 17 | fileList = files.getFileList(refresh) 18 | return template('views/index.tpl', fileList=fileList) 19 | 20 | @route('/info.html') 21 | def showInfo(): 22 | fileInfo = files.getFileInfo(request.query['file']) 23 | 24 | return template('views/info.tpl', fileInfo=fileInfo) 25 | 26 | @route('/css/') 27 | def css(filepath): 28 | print ('looking for {}'.format(filepath)) 29 | return static_file(filepath, root='./css') 30 | 31 | @route('/img/') 32 | def css(filepath): 33 | print ('looking for {}'.format(filepath)) 34 | return static_file(filepath, root='./img') 35 | 36 | 37 | @route('/favicon.ico') 38 | def favicon(): 39 | return static_file('favicon.ico', root='./img') 40 | 41 | if __name__ == "__main__": 42 | 43 | debug(True) 44 | app = bottle.app() 45 | run(app=app, host='0.0.0.0', port=8000) 46 | -------------------------------------------------------------------------------- /apache.conf: -------------------------------------------------------------------------------- 1 | DirectoryIndex index.html index.wsgi 2 | AddHandler wsgi-script .wsgi 3 | LogLevel debug 4 | 5 | 6 | ServerName fixtures.iiif.io 7 | ServerAdmin admin@iiif.io 8 | 9 | AllowEncodedSlashes NoDecode 10 | 11 | DocumentRoot /app/www-data 12 | 13 | Require all granted 14 | AllowOverride None 15 | Options MultiViews ExecCGI 16 | MultiviewsMatch Handlers 17 | 18 | 19 | Require all granted 20 | AllowOverride None 21 | Options MultiViews ExecCGI 22 | MultiviewsMatch Handlers 23 | 24 | 25 | ErrorLog ${APACHE_LOG_DIR}/error.log 26 | CustomLog ${APACHE_LOG_DIR}/access.log combined 27 | 28 | Header always set Access-Control-Allow-Origin "*" 29 | 30 | #With mod_rewrite 31 | RewriteEngine on 32 | RewriteRule "^/video/(.+).mp4" "https://iiif-fixtures.s3.amazonaws.com/video/$1.mp4" [R,L] 33 | 34 | # The following is set by S3 35 | Header unset Access-Control-Allow-Origin 36 | ProxyPass "/video" "http://iiif-fixtures.s3-website-us-east-1.amazonaws.com/video" 37 | ProxyPass "/audio" "http://iiif-fixtures.s3-website-us-east-1.amazonaws.com/audio" 38 | ProxyPass "/images" "http://iiif-fixtures.s3-website-us-east-1.amazonaws.com/images" 39 | ProxyPass "/other" "http://iiif-fixtures.s3-website-us-east-1.amazonaws.com/other" 40 | 41 | WSGIDaemonProcess fixtures.iiif.io python-home=/app/virtualenv python-path=/app/pylibs 42 | WSGIProcessGroup fixtures.iiif.io 43 | WSGIScriptAlias / /app/pylibs/app.wsgi 44 | 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .apikeys 3 | *.swp 4 | files.json 5 | 6 | # Byte-compiled / optimized / DLL files 7 | __pycache__/ 8 | *.py[cod] 9 | *$py.class 10 | 11 | # C extensions 12 | *.so 13 | 14 | # Distribution / packaging 15 | .Python 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | downloads/ 20 | eggs/ 21 | .eggs/ 22 | lib/ 23 | lib64/ 24 | parts/ 25 | sdist/ 26 | var/ 27 | wheels/ 28 | *.egg-info/ 29 | .installed.cfg 30 | *.egg 31 | MANIFEST 32 | 33 | # PyInstaller 34 | # Usually these files are written by a python script from a template 35 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 36 | *.manifest 37 | *.spec 38 | 39 | # Installer logs 40 | pip-log.txt 41 | pip-delete-this-directory.txt 42 | 43 | # Unit test / coverage reports 44 | htmlcov/ 45 | .tox/ 46 | .coverage 47 | .coverage.* 48 | .cache 49 | nosetests.xml 50 | coverage.xml 51 | *.cover 52 | .hypothesis/ 53 | .pytest_cache/ 54 | 55 | # Translations 56 | *.mo 57 | *.pot 58 | 59 | # Django stuff: 60 | *.log 61 | local_settings.py 62 | db.sqlite3 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # pyenv 81 | .python-version 82 | 83 | # celery beat schedule file 84 | celerybeat-schedule 85 | 86 | # SageMath parsed files 87 | *.sage.py 88 | 89 | # Environments 90 | .env 91 | .venv 92 | env/ 93 | venv/ 94 | ENV/ 95 | env.bak/ 96 | venv.bak/ 97 | 98 | # Spyder project settings 99 | .spyderproject 100 | .spyproject 101 | 102 | # Rope project settings 103 | .ropeproject 104 | 105 | # mkdocs documentation 106 | /site 107 | 108 | # mypy 109 | .mypy_cache/ 110 | -------------------------------------------------------------------------------- /views/header.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | {{ title }} 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 | Home 28 | 35 | 36 |
37 |
38 |
39 |
40 |
41 | 42 | -------------------------------------------------------------------------------- /css/normalize.min.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0} -------------------------------------------------------------------------------- /views/index.tpl: -------------------------------------------------------------------------------- 1 | % def json2html(jsonData, level=0, path=''): 2 |
    3 | % for key in jsonData.keys(): 4 | % if isinstance(jsonData[key], dict) and jsonData[key] and not 'metadata' in jsonData[key]: 5 | % style = '' 6 | % if level < 2: 7 | % style = 'class="jstree-open"' 8 | % end 9 |
  • {{ key }} 10 | % json2html(jsonData[key], level + 1, '{}/{}'.format(path,key)) 11 |
  • 12 | % else: 13 |
  • {{key}}
  • 14 | % end 15 | % end 16 |
17 | % end 18 | 19 | <% include('views/header.tpl', title='IIIF Fixture Repository') %> 20 |
21 |
22 |

Browsing the IIIF Fixture Repository

23 |

This repository aims to store assets that can be used to create IIIF Recipes. If you are looking to create a IIIF Recipe this is a good place to start to see if there is an asset already available which you can embed into a IIIF manifest. You can see below the assets have been split into Images, Videos and Audio files, once you have navigated to a file click on it and it will take you to an information page giving you the technical details that you can embed in a Manifest.

24 |
25 |
26 | 27 |
28 |
29 | % json2html(fileList) 30 |
31 |
32 | 63 | 64 | <% include('views/footer.tpl') %> 65 | -------------------------------------------------------------------------------- /tests/TestSuite.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python3 2 | import unittest 3 | 4 | import os 5 | import sys 6 | import json 7 | sys.path.append(".") 8 | from model import files 9 | from model.aws import AWS 10 | 11 | class TestFixtures(unittest.TestCase): 12 | def testExistingMetadataFile(self): 13 | with open('tests/fixtures/existing_metadata.json') as json_file: 14 | data = json.load(json_file) 15 | 16 | s3client = AWS().s3() 17 | 18 | directory = 'images/Glen/photos' 19 | imgfiles = { 20 | "gottingen.jpg": { 'key', 'images/Glen/photos/gottingen.jpg' }, 21 | "metadata.json": "" 22 | } 23 | 24 | (changed, metadata) = files.processDir(s3client, directory, imgfiles, unittest=True, metadataCache=data) 25 | self.assertTrue('images/Glen/photos/gottingen.jpg' in metadata, 'File not present in generated metadata') 26 | self.assertTrue('attribution' in metadata['images/Glen/photos/gottingen.jpg'], 'Existing metadata not present in file') 27 | self.assertEqual(metadata['images/Glen/photos/gottingen.jpg']['attribution'], 'Glen Robson, IIIF Technical Coordinator. [CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)]', 'Existing metadata not present in file') 28 | 29 | def testExistingWithVideo(self): 30 | with open('tests/fixtures/video_desc_metadata.json') as json_file: 31 | data = json.load(json_file) 32 | 33 | s3client = AWS().s3() 34 | 35 | directory = 'video/indiana/30-minute-clock/medium' 36 | imgfiles = { 37 | "30-minute-clock.mp4": { 'key', 'video/indiana/30-minute-clock/medium/30-minute-clock.mp4' }, 38 | "metadata.json": "" 39 | } 40 | 41 | (changed, metadata) = files.processDir(s3client, directory, imgfiles, unittest=True, metadataCache=data) 42 | filename = 'video/indiana/30-minute-clock/medium/30-minute-clock.mp4' 43 | self.assertTrue(filename in metadata, 'File not present in generated metadata') 44 | self.assertTrue('metadata' in metadata[filename] and 'description' in metadata[filename]['metadata'], 'Existing metadata not present in file') 45 | self.assertTrue('title' in metadata[filename]['metadata']['description'], 'Existing metadata (title) not present in file') 46 | self.assertTrue('mediainfo' in metadata[filename]['metadata'], 'Missing MediaInfo file') 47 | self.assertFalse(changed, 'Metadata should not have changed') 48 | 49 | def testDescWithVideo(self): 50 | with open('tests/fixtures/video_desc_only.json') as json_file: 51 | data = json.load(json_file) 52 | 53 | s3client = AWS().s3() 54 | 55 | directory = 'video/indiana/30-minute-clock/medium' 56 | imgfiles = { 57 | "30-minute-clock.mp4": { 'key', 'video/indiana/30-minute-clock/medium/30-minute-clock.mp4' }, 58 | "metadata.json": "" 59 | } 60 | 61 | (changed, metadata) = files.processDir(s3client, directory, imgfiles, unittest=True, metadataCache=data) 62 | print(json.dumps(metadata, indent=4)) 63 | filename = 'video/indiana/30-minute-clock/medium/30-minute-clock.mp4' 64 | self.assertTrue(filename in metadata, 'File not present in generated metadata') 65 | self.assertTrue('metadata' in metadata[filename] and 'description' in metadata[filename]['metadata'], 'Existing metadata not present in file') 66 | self.assertTrue('title' in metadata[filename]['metadata']['description'], 'Existing metadata (title) not present in file') 67 | self.assertTrue('mediainfo' in metadata[filename]['metadata'], 'Missing MediaInfo file') 68 | self.assertTrue(changed, 'Metadata should have changed as the media info was added') 69 | 70 | def testMixedFiles(self): 71 | directory = 'video/indiana/donizetti-elixir' 72 | s3client = AWS().s3() 73 | dirFiles = { 74 | "act1-thumbnail.png" : "", 75 | "act2-thumbnail.png" : "", 76 | "metadata.json" : "", 77 | "vae0637_accessH264_low.mp4" : "", 78 | "vae0637_accessH264_low_act_1.mp4" : "", 79 | "vae0637_accessH264_low_act_2.mp4" : "" 80 | } 81 | 82 | (changed, metadata) = files.processDir(s3client, directory, dirFiles, unittest=True, metadataCache={}) 83 | #print(json.dumps(metadata, indent=4)) 84 | 85 | self.assertTrue('video/indiana/donizetti-elixir/act1-thumbnail.png' in metadata, 'File not present in generated metadata') 86 | self.assertTrue('video/indiana/donizetti-elixir/vae0637_accessH264_low.mp4' in metadata, 'File not present in generated metadata') 87 | self.assertTrue('metadata' in metadata['video/indiana/donizetti-elixir/vae0637_accessH264_low.mp4'], 'Missing metadata') 88 | self.assertTrue('mediainfo' in metadata['video/indiana/donizetti-elixir/vae0637_accessH264_low.mp4']['metadata'], 'Missing mediainfo') 89 | 90 | if __name__ == '__main__': 91 | unittest.main() 92 | -------------------------------------------------------------------------------- /views/info.tpl: -------------------------------------------------------------------------------- 1 | % import json 2 | <% include('views/header.tpl', title='IIIF Fixture Repository - File Info') %> 3 |
4 |
5 |

File Information

6 |
7 |
8 | 9 |
10 |
11 | % contentType = fileInfo['type'] 12 | % if contentType == 'Video' or contentType == 'Audio': 13 | <% 14 | if contentType == 'Video' : 15 | size = 'width="320" height="240"' 16 | else: 17 | contentType = 'Audio' 18 | size = '' 19 | end 20 | %> 21 | 22 |
23 | 27 |
28 | % elif contentType == 'Image' and not (fileInfo['name'].endswith('.vtt') or fileInfo['name'].endswith('.txt')): 29 | % url = fileInfo['url'] 30 | % if 'info.json' in fileInfo: 31 | % url += '/full/!500,500/0/default.jpg' 32 | % end 33 |
34 |
35 | 36 |
37 |
38 | % end 39 |
40 |

Details

41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | % for key in fileInfo.keys(): 53 | % if key not in ('name','url','path', 'General', 'Video', 'Audio', 'type', 'info.json', 'Image', 'Text', 'image_url', 'metadata'): 54 | 55 | 56 | 57 | % elif key == 'image_url' and 'info.json' in fileInfo: 58 | 59 | 60 | 61 | % end 62 | % end 63 | % if contentType == 'Video' or contentType == 'Audio': 64 | 65 | 66 | 67 | 68 | 69 | 70 | % if contentType == 'Video': 71 | 72 | 73 | 74 | 75 | 76 | 77 | % end 78 | % end 79 |
Name: {{ fileInfo['name'] }}
Type: {{ fileInfo['type'] }}
URL: {{ fileInfo['url'] }}
{{ key }}: {{ fileInfo[key] }}
Source Image URL: {{ fileInfo[key] }}
Type: {{ fileInfo['General']['format'] }} ({{ fileInfo['General']['internet_media_type']}})
Duration: {{ fileInfo['General']['duration'] / 1000 }} seconds
Width: {{ fileInfo['Video']['width'] }}
Height: {{ fileInfo['Video']['height'] }}
80 | % if 'metadata' in fileInfo and fileInfo['metadata'] and 'description' in fileInfo['metadata']: 81 |

Metadata

82 |
    83 | % for key in fileInfo['metadata']['description']: 84 |
  • 85 | {{ key[0].upper() + key[1:] }}: 86 | % if fileInfo['metadata']['description'][key].startswith('http'): 87 | {{ fileInfo['metadata']['description'][key] }} 88 | % else: 89 | {{ fileInfo['metadata']['description'][key] }} 90 | % end 91 |
  • 92 | % end 93 |
94 | % end 95 | % if contentType != 'Other': 96 |

JSON Resource details

97 |

The data below gives extra information on this resource and can be copied and pasted into a IIIF Manifest.

98 | <% 99 | if contentType == 'Image': 100 | if 'info.json' in fileInfo: 101 | infoJson = fileInfo['info.json'] 102 | else: 103 | if fileInfo['name'].endswith('.vtt'): 104 | # vtt for some reason gets assigned as a image 105 | infoJson = { 106 | "id": fileInfo['url'], 107 | "type": "Text", 108 | "format": 'text/vtt' 109 | } 110 | elif fileInfo['name'].endswith('.txt'): 111 | infoJson = { 112 | "id": fileInfo['url'], 113 | "type": "Text", 114 | "format": 'text/plain' 115 | } 116 | else: 117 | # straight image 118 | print (json.dumps(fileInfo, indent=4)) 119 | infoJson = { 120 | "id": fileInfo['url'], 121 | "type": "Image", 122 | "format": fileInfo['General']['internet_media_type'], 123 | "height": fileInfo['Image']['height'], 124 | "width": fileInfo['Image']['width'] 125 | } 126 | end 127 | end 128 | else: 129 | infoJson = { 130 | 'id': fileInfo['url'], 131 | 'type': contentType 132 | } 133 | 134 | if contentType == 'Video': 135 | infoJson['height'] = fileInfo['Video']['height'] 136 | infoJson['width'] = fileInfo['Video']['width'] 137 | end 138 | if 'General' in fileInfo: 139 | infoJson['duration'] = fileInfo['General']['duration'] / 1000 140 | infoJson['format'] = fileInfo['General']['internet_media_type'] 141 | end 142 | end 143 | %> 144 |
145 | {{ json.dumps(infoJson, indent=4) }}
146 |             
147 | % end 148 |
149 |
150 | <% include('views/footer.tpl') %> 151 | -------------------------------------------------------------------------------- /model/files.py: -------------------------------------------------------------------------------- 1 | #!`which python3` 2 | 3 | from .aws import AWS 4 | import json 5 | from os import path 6 | import os 7 | from pymediainfo import MediaInfo 8 | from botocore.exceptions import ClientError 9 | import hashlib 10 | import urllib.request 11 | from urllib.error import HTTPError 12 | 13 | hostName = 'https://fixtures.iiif.io' 14 | 15 | def shorternFilename(filepath): 16 | if filepath.startswith('/'): 17 | filepath = filepath[1:] 18 | dirpath = hashlib.md5(path.dirname(filepath).encode('utf-8')).hexdigest() 19 | basename = path.basename(filepath) 20 | 21 | return "{}-{}".format(dirpath, basename.split('.')[0]) 22 | 23 | def getFileInfo(filepath): 24 | fileInfo = { 25 | 'name': path.basename(filepath), 26 | 'path': filepath, 27 | 'url': '{}{}'.format(hostName,filepath) 28 | } 29 | 30 | data = getFileList() 31 | for filePart in filepath.split('/'): 32 | if filePart != '': 33 | data = data[filePart] 34 | # turn media info tracks into dict 35 | if 'metadata' in data: 36 | fileInfo['metadata'] = {} 37 | for key in data['metadata'].keys(): 38 | if key != 'mediainfo': 39 | fileInfo['metadata'][key] = data['metadata'][key] 40 | 41 | if 'mediainfo' in data['metadata'] and 'tracks' in data['metadata']['mediainfo']: 42 | simplifiedData = {} 43 | for track in data['metadata']['mediainfo']['tracks']: 44 | simplifiedData[track['track_type']] = track 45 | fileInfo.update(simplifiedData) 46 | 47 | if 'Video' in fileInfo: 48 | fileInfo['type'] = 'Video' 49 | elif 'Audio' in fileInfo: 50 | fileInfo['type'] = 'Audio' 51 | elif fileInfo['path'].startswith('/other'): 52 | fileInfo['type'] = 'Other' 53 | else: 54 | fileInfo['type'] = 'Image' 55 | fileInfo['image_url'] = '{}{}'.format(hostName,filepath) 56 | try: 57 | fileInfo['url'] = 'https://iiif.io/api/image/3.0/example/reference/{}'.format(shorternFilename(fileInfo['path'])) 58 | with urllib.request.urlopen("{}/info.json".format(fileInfo['url'])) as url: 59 | fileInfo['info.json'] = json.loads(url.read().decode()) 60 | except HTTPError as error: 61 | print ('Failed to get info.json at {}. Treat as flat image'.format(fileInfo['url'])) 62 | fileInfo['url'] = '{}{}'.format(hostName,filepath) 63 | 64 | return fileInfo 65 | 66 | def getFileList(refresh=False): 67 | files = {} 68 | cachefile = 'files.json' 69 | if path.exists(cachefile) and not refresh: 70 | with open(cachefile) as json_data: 71 | files = json.load(json_data) 72 | json_data.close() 73 | else: 74 | files = generateFilelist() 75 | print (os.path.realpath(cachefile)) 76 | with open(cachefile, 'w') as json_data: 77 | json.dump(files, json_data) 78 | return files 79 | 80 | def getMetadataFile(s3client, directory): 81 | metadata = {} 82 | filename = '{}/metadata.json'.format(directory) 83 | try: 84 | content_object = s3client.Object('iiif-fixtures', filename) 85 | file_content = content_object.get()['Body'].read().decode('utf-8') 86 | metadata = json.loads(file_content) 87 | except ClientError as no_metadata_error: 88 | print ('No metadata file for {}'.format(filename)) 89 | 90 | return metadata 91 | 92 | def saveMetadata(directory, metadata): 93 | metadataFilename = '{}/{}'.format(directory, 'metadata.json') 94 | print ('Updating: {}'.format(metadataFilename)) 95 | test=False 96 | if not test: 97 | s3cli = AWS().client('s3',region='us-east-1') 98 | s3cli.put_object(ACL='private', Body=json.dumps(metadata).encode('utf-8'), Bucket='iiif-fixtures', Key=metadataFilename, ContentType='application/json', ContentDisposition='inline') 99 | 100 | def processDir(s3client, directory, files, unittest=False, metadataCache=None): 101 | if metadataCache: 102 | metadata = metadataCache 103 | else: 104 | metadata = getMetadataFile(s3client, directory) 105 | metadataChange=False 106 | filesystem = {} 107 | for filename in files: 108 | s3fileinfo = files[filename] 109 | fullpath = "{}/{}".format(directory, filename) 110 | if not filename.endswith('metadata.json'): 111 | path = fullpath.split('/') 112 | dirEl = filesystem 113 | leaf = {} 114 | for pathElement in path: 115 | if pathElement != '': 116 | if pathElement not in dirEl: 117 | dirEl[pathElement] = {} 118 | leaf = dirEl[pathElement] 119 | dirEl = dirEl[pathElement] 120 | 121 | try: 122 | if fullpath in metadata and 'metadata' in metadata[fullpath]: 123 | leaf['metadata'] = {} 124 | for key in metadata[fullpath]['metadata']: 125 | leaf['metadata'][key] = metadata[fullpath]['metadata'][key] 126 | if (directory.startswith('video/') or directory.startswith('audio/')) and ('metadata' not in leaf or 'mediainfo' not in leaf['metadata']): 127 | print ('Media info not found so adding') 128 | fileJson = json.loads(MediaInfo.parse('{}/{}'.format(hostName,fullpath)).to_json()) 129 | leaf['metadata'] = { 'mediainfo': fileJson } 130 | 131 | if fullpath not in metadata: 132 | metadata[fullpath] = {} 133 | if 'metadata' not in metadata[fullpath]: 134 | metadata[fullpath]['metadata'] = {} 135 | 136 | metadata[fullpath]['metadata']['mediainfo'] = fileJson 137 | metadataChange=True 138 | 139 | except OSError as configError: 140 | print('Failed to analysis file due to a problem with the setup of mediainfo:') 141 | print(configError) 142 | if not unittest and metadataChange: 143 | # save metadata to s3 144 | saveMetadata(directory, metadata) 145 | 146 | if unittest: 147 | return (metadataChange, metadata) 148 | else: 149 | return filesystem 150 | 151 | def recursiveMergeDicts(sourceDict, newDict): 152 | for key in newDict: 153 | if key not in sourceDict: 154 | sourceDict[key] = newDict[key] 155 | else: 156 | recursiveMergeDicts(sourceDict[key], newDict[key]) 157 | 158 | 159 | def generateFilelist(): 160 | s3client = AWS().s3() 161 | 162 | bucketcontents = s3client.Bucket('iiif-fixtures').objects.all() 163 | filesystem = {} 164 | # turn in to a dict of files and folders 165 | filesDict = {} 166 | for s3fileinfo in bucketcontents: 167 | if os.path.basename(s3fileinfo.key): 168 | directory = os.path.dirname(s3fileinfo.key) 169 | if directory not in filesDict: 170 | filesDict[directory] = {} 171 | 172 | filesDict[directory][os.path.basename(s3fileinfo.key)] = s3fileinfo 173 | 174 | metadata = {} 175 | for dirName in filesDict: 176 | dirInfo = processDir(s3client, dirName, filesDict[dirName]) 177 | recursiveMergeDicts(metadata, dirInfo) 178 | 179 | return metadata 180 | 181 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /tests/fixtures/video_desc_metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "video/indiana/30-minute-clock/medium/30-minute-clock.mp4": { 3 | "metadata": { 4 | "description": { 5 | "title": "30 minute clock", 6 | "source": "The video was created by DrLex1 and was released using a Creative Commons Attribution license", 7 | "attribution": "http://creativecommons.org/licenses/by/3.0/", 8 | "source_url": "https://www.youtube.com/watch?v=Lsq0FiXjGHg", 9 | "description": "Attribution must be added to recipes and manifests that use this video." 10 | }, 11 | "mediainfo": { 12 | "tracks": [ 13 | { 14 | "audio_codecs": "AAC LC", 15 | "audio_format_list": "AAC LC", 16 | "audio_format_withhint_list": "AAC LC", 17 | "audio_language_list": "English", 18 | "codec_id": "mp42", 19 | "codec_id_url": "http://www.apple.com/quicktime/download/standalone.html", 20 | "codecid_compatible": "isom/mp42", 21 | "codecs_video": "AVC", 22 | "commercial_name": "MPEG-4", 23 | "complete_name": "https://fixtures.iiif.io/video/indiana/30-minute-clock/medium/30-minute-clock.mp4", 24 | "count": "331", 25 | "count_of_audio_streams": "1", 26 | "count_of_stream_of_this_kind": "1", 27 | "count_of_video_streams": "1", 28 | "datasize": "24555074", 29 | "duration": 1801055, 30 | "encoded_date": "UTC 2015-09-06 10:35:10", 31 | "file_extension": "mp4", 32 | "file_name": "30-minute-clock.mp4", 33 | "file_size": 24964368, 34 | "folder_name": "https://fixtures.iiif.io/video/indiana/30-minute-clock/medium", 35 | "footersize": "41", 36 | "format": "MPEG-4", 37 | "format_extensions_usually_used": "mov mp4 m4v m4a m4b m4p m4r 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v", 38 | "format_profile": "Base Media / Version 2", 39 | "frame_count": "14408", 40 | "frame_rate": "8.000", 41 | "headersize": "409253", 42 | "internet_media_type": "video/mp4", 43 | "isstreamable": "Yes", 44 | "kind_of_stream": "General", 45 | "other_codec_id": [ 46 | "mp42 (isom/mp42)" 47 | ], 48 | "other_duration": [ 49 | "30 min 1 s", 50 | "30 min 1 s 55 ms", 51 | "30 min 1 s", 52 | "00:30:01.055", 53 | "00:30:01:00", 54 | "00:30:01.055 (00:30:01:00)" 55 | ], 56 | "other_file_name": [ 57 | "30-minute-clock" 58 | ], 59 | "other_file_size": [ 60 | "23.8 MiB", 61 | "24 MiB", 62 | "24 MiB", 63 | "23.8 MiB", 64 | "23.81 MiB" 65 | ], 66 | "other_format": [ 67 | "MPEG-4" 68 | ], 69 | "other_frame_rate": [ 70 | "8.000 FPS" 71 | ], 72 | "other_kind_of_stream": [ 73 | "General" 74 | ], 75 | "other_overall_bit_rate": [ 76 | "111 kb/s" 77 | ], 78 | "other_overall_bit_rate_mode": [ 79 | "Variable" 80 | ], 81 | "other_stream_size": [ 82 | "400 KiB (2%)", 83 | "400 KiB", 84 | "400 KiB", 85 | "400 KiB", 86 | "399.7 KiB", 87 | "400 KiB (2%)" 88 | ], 89 | "overall_bit_rate": 110888, 90 | "overall_bit_rate_mode": "VBR", 91 | "proportion_of_this_stream": "0.01640", 92 | "stream_identifier": "0", 93 | "stream_size": 409302, 94 | "tagged_date": "UTC 2015-09-06 10:35:10", 95 | "track_type": "General", 96 | "video_format_list": "AVC", 97 | "video_format_withhint_list": "AVC" 98 | }, 99 | { 100 | "bit_depth": 8, 101 | "bit_rate": 37070, 102 | "bits__pixel_frame": "0.020", 103 | "chroma_subsampling": "4:2:0", 104 | "codec_configuration_box": "avcC", 105 | "codec_id": "avc1", 106 | "codec_id_info": "Advanced Video Coding", 107 | "color_space": "YUV", 108 | "commercial_name": "AVC", 109 | "count": "375", 110 | "count_of_stream_of_this_kind": "1", 111 | "display_aspect_ratio": "1.778", 112 | "duration": 1801000, 113 | "format": "AVC", 114 | "format_info": "Advanced Video Codec", 115 | "format_profile": "Baseline@L2.2", 116 | "format_settings": "1 Ref Frames", 117 | "format_settings__cabac": "No", 118 | "format_settings__reframes": 1, 119 | "format_url": "http://developers.videolan.org/x264.html", 120 | "frame_count": "14408", 121 | "frame_rate": "8.000", 122 | "frame_rate_mode": "CFR", 123 | "framerate_mode_original": "VFR", 124 | "height": 360, 125 | "internet_media_type": "video/H264", 126 | "kind_of_stream": "Video", 127 | "maximum_bit_rate": 191968, 128 | "other_bit_depth": [ 129 | "8 bits" 130 | ], 131 | "other_bit_rate": [ 132 | "37.1 kb/s" 133 | ], 134 | "other_chroma_subsampling": [ 135 | "4:2:0" 136 | ], 137 | "other_display_aspect_ratio": [ 138 | "16:9" 139 | ], 140 | "other_duration": [ 141 | "30 min 1 s", 142 | "30 min 1 s 0 ms", 143 | "30 min 1 s", 144 | "00:30:01.000", 145 | "00:30:01:00", 146 | "00:30:01.000 (00:30:01:00)" 147 | ], 148 | "other_format": [ 149 | "AVC" 150 | ], 151 | "other_format_settings__cabac": [ 152 | "No" 153 | ], 154 | "other_format_settings__reframes": [ 155 | "1 frame" 156 | ], 157 | "other_frame_rate": [ 158 | "8.000 FPS" 159 | ], 160 | "other_frame_rate_mode": [ 161 | "Constant" 162 | ], 163 | "other_height": [ 164 | "360 pixels" 165 | ], 166 | "other_kind_of_stream": [ 167 | "Video" 168 | ], 169 | "other_maximum_bit_rate": [ 170 | "192 kb/s" 171 | ], 172 | "other_scan_type": [ 173 | "Progressive" 174 | ], 175 | "other_stream_size": [ 176 | "7.96 MiB (33%)", 177 | "8 MiB", 178 | "8.0 MiB", 179 | "7.96 MiB", 180 | "7.959 MiB", 181 | "7.96 MiB (33%)" 182 | ], 183 | "other_track_id": [ 184 | "1" 185 | ], 186 | "other_width": [ 187 | "640 pixels" 188 | ], 189 | "pixel_aspect_ratio": "1.000", 190 | "proportion_of_this_stream": "0.33429", 191 | "rotation": "0.000", 192 | "sampled_height": "360", 193 | "sampled_width": "640", 194 | "scan_type": "Progressive", 195 | "stored_height": "368", 196 | "stream_identifier": "0", 197 | "stream_size": 8345408, 198 | "streamorder": "0", 199 | "tagged_date": "UTC 2015-09-06 10:35:13", 200 | "track_id": 1, 201 | "track_type": "Video", 202 | "width": 640 203 | }, 204 | { 205 | "bit_rate": 72000, 206 | "bit_rate_mode": "VBR", 207 | "channel_layout": "C", 208 | "channel_positions": "Front: C", 209 | "channel_s": 1, 210 | "codec_id": "mp4a-40-2", 211 | "commercial_name": "AAC", 212 | "compression_mode": "Lossy", 213 | "count": "277", 214 | "count_of_stream_of_this_kind": "1", 215 | "duration": 1801055, 216 | "encoded_date": "UTC 2015-09-06 10:35:11", 217 | "format": "AAC", 218 | "format_additionalfeatures": "LC", 219 | "format_info": "Advanced Audio Codec Low Complexity", 220 | "frame_count": "77565", 221 | "frame_rate": "43.066", 222 | "kind_of_stream": "Audio", 223 | "language": "en", 224 | "maximum_bit_rate": 76296, 225 | "other_bit_rate": [ 226 | "72.0 kb/s" 227 | ], 228 | "other_bit_rate_mode": [ 229 | "Variable" 230 | ], 231 | "other_channel_positions": [ 232 | "1/0/0" 233 | ], 234 | "other_channel_s": [ 235 | "1 channel" 236 | ], 237 | "other_compression_mode": [ 238 | "Lossy" 239 | ], 240 | "other_duration": [ 241 | "30 min 1 s", 242 | "30 min 1 s 55 ms", 243 | "30 min 1 s", 244 | "00:30:01.055", 245 | "00:30:03:36", 246 | "00:30:01.055 (00:30:03:36)" 247 | ], 248 | "other_format": [ 249 | "AAC LC" 250 | ], 251 | "other_frame_rate": [ 252 | "43.066 FPS (1024 SPF)" 253 | ], 254 | "other_kind_of_stream": [ 255 | "Audio" 256 | ], 257 | "other_language": [ 258 | "English", 259 | "English", 260 | "en", 261 | "eng", 262 | "en" 263 | ], 264 | "other_maximum_bit_rate": [ 265 | "76.3 kb/s" 266 | ], 267 | "other_sampling_rate": [ 268 | "44.1 kHz" 269 | ], 270 | "other_stream_size": [ 271 | "15.5 MiB (65%)", 272 | "15 MiB", 273 | "15 MiB", 274 | "15.5 MiB", 275 | "15.46 MiB", 276 | "15.5 MiB (65%)" 277 | ], 278 | "other_track_id": [ 279 | "2" 280 | ], 281 | "proportion_of_this_stream": "0.64931", 282 | "samples_count": "79426528", 283 | "samples_per_frame": "1024", 284 | "sampling_rate": 44100, 285 | "stream_identifier": "0", 286 | "stream_size": 16209658, 287 | "streamorder": "1", 288 | "tagged_date": "UTC 2015-09-06 10:35:13", 289 | "title": "IsoMedia File Produced by Google, 5-11-2011", 290 | "track_id": 2, 291 | "track_type": "Audio" 292 | } 293 | ] 294 | } 295 | } 296 | } 297 | } 298 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | HTML5 Boilerplate styles - h5bp.com (generated via initializr.com) 3 | ========================================================================== */ 4 | html, 5 | button, 6 | input, 7 | select, 8 | textarea { 9 | color: #222; } 10 | 11 | body { 12 | font-size: 1em; 13 | line-height: 1.4; } 14 | 15 | ::-moz-selection { 16 | background: #b3d4fc; 17 | text-shadow: none; } 18 | 19 | ::selection { 20 | background: #b3d4fc; 21 | text-shadow: none; } 22 | 23 | hr { 24 | display: block; 25 | height: 1px; 26 | border: 0; 27 | border-top: 1px solid #ccc; 28 | margin: 1em 0; 29 | padding: 0; } 30 | 31 | img { 32 | vertical-align: middle; } 33 | 34 | fieldset { 35 | border: 0; 36 | margin: 0; 37 | padding: 0; } 38 | 39 | textarea { 40 | resize: vertical; } 41 | 42 | .chromeframe { 43 | margin: 0.2em 0; 44 | background: #ccc; 45 | color: #000; 46 | padding: 0.2em 0; } 47 | 48 | /* ===== Initializr Styles ================================================== 49 | Author: Jonathan Verrecchia - verekia.com/initializr/responsive-template 50 | ============================================================================= */ 51 | body { 52 | color: #555; 53 | font: 15px/26px 'Open Sans', Helvetica, Helvetica Neue, Arial; } 54 | 55 | .wrapper { 56 | width: 90%; 57 | margin: 0 5%; } 58 | 59 | a:link, a:visited, a:hover, a:active { 60 | color: #2e8b74; 61 | padding-bottom: 1px; 62 | text-decoration: none; } 63 | 64 | .font-weight-600 { 65 | font-weight: 600; } 66 | 67 | .text-align-center { 68 | text-align: center; } 69 | 70 | /*==== MOBILE: Menu ====*/ 71 | nav ul { 72 | margin: 0; 73 | padding: 0; } 74 | 75 | nav a:link, nav a:visited, nav a:hover, nav a:active { 76 | border-top: 1px solid #424957; 77 | color: #b3b5b7; 78 | display: block; 79 | font-family: 'Open Sans', Arial, sans-serif; 80 | font-size: 11px; 81 | font-weight: 600; 82 | letter-spacing: 1px; 83 | padding: 12px 0; 84 | text-align: center; 85 | text-decoration: none; 86 | text-transform: uppercase; } 87 | 88 | nav ul a.is-selected { 89 | color: #00bc99; } 90 | 91 | nav a:hover { 92 | color: #fff; } 93 | 94 | /*==== MOBILE: Main ====*/ 95 | .header-container { 96 | background: #21252c url("../img/bg-color-bar.png") left top repeat-x; 97 | padding-top: 3px; } 98 | 99 | .title { 100 | background: transparent url("../img/logo-iiif-34x30.png") center 8px no-repeat; 101 | display: block; 102 | font-size: 0; 103 | height: 40px; 104 | margin: 0 auto; 105 | padding-bottom: 4px; 106 | width: 34px; } 107 | 108 | .text-align-right { 109 | text-align: right; } 110 | 111 | .text-align-left { 112 | text-align: left; } 113 | 114 | a.button-turquoise { 115 | background-color: #00bc99; 116 | border: 0; 117 | border-bottom: 3px solid #2e8b74 !important; 118 | border-radius: 4px; 119 | color: #fff; 120 | display: block; 121 | clear: left; 122 | font-family: 'Open Sans', Arial, sans-serif; 123 | font-size: 12px; 124 | font-weight: 400; 125 | letter-spacing: 1px; 126 | margin-top: 10px; 127 | padding: 8px 16px; } 128 | 129 | /* Home page */ 130 | .main-blurb { 131 | background-color: #2f353e; 132 | color: #979A9E; 133 | padding: 30px 0; 134 | text-align: center; } 135 | 136 | .main-blurb h1 { 137 | font-family: 'Raleway', Arial, sans-serif; 138 | font-weight: 100; 139 | color: #fff; 140 | font-size: 22px; 141 | letter-spacing: 2px; 142 | line-height: 1.5; 143 | margin: 0.3em 0; 144 | word-wrap: break-word; } 145 | 146 | .main-blurb p { 147 | font-family: 'Open Sans', Arial, sans-serif; 148 | font-size: 15px; 149 | font-weight: 500; 150 | letter-spacing: 1px; 151 | line-height: 1.8; 152 | word-spacing: 1px; } 153 | 154 | .front-announcement { 155 | padding: 10px; 156 | border-top: 1px solid black; 157 | font-size: 14pt; 158 | background: #21252c; 159 | color: white; } 160 | .front-announcement div { 161 | margin: 0 auto; 162 | text-align: center; } 163 | 164 | .carousel-wrapper, #carousel { 165 | background: #21252c; } 166 | 167 | .carousel-tab { 168 | height: 430px; 169 | width: 400; 170 | background: #21252c; 171 | text-align: center; } 172 | 173 | .carousel-wrapper .carousel-head { 174 | font-size: 16pt; 175 | background: #2f353e; 176 | margin-bottom: 5px; 177 | border-bottom: 1px solid black; 178 | color: white; 179 | font-weight: regular; 180 | text-align: center; 181 | padding-top: 10px; 182 | padding-bottom: 10px; } 183 | 184 | .main-highlight-blurbs { 185 | background-color: #F7F7F8; 186 | overflow: auto; 187 | padding: 40px 0; } 188 | 189 | .main-highlight-blurbs .highlight { 190 | background-position: center top; 191 | background-repeat: no-repeat; 192 | color: #444C5A; 193 | font-family: 'Open Sans', Arial, sans-serif; 194 | font-size: 14px; 195 | padding: 80px 5% 5px 5%; 196 | width: 90%; 197 | text-align: center; } 198 | 199 | .main-highlight-blurbs .highlight h2, .try-it h2 { 200 | color: #2e8b74; 201 | font-family: 'Raleway', Arial, sans-serif; 202 | font-size: 22px; 203 | font-weight: 300; 204 | letter-spacing: 1px; 205 | margin: 0; 206 | text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.3); } 207 | 208 | .main-highlight-blurbs .highlight p { 209 | line-height: 2; 210 | margin: 20px 0; } 211 | 212 | .main-highlight-blurbs .plug-n-play { 213 | background-image: url("../img/icon-plug-n-play-60x60.png"); } 214 | 215 | .main-highlight-blurbs .defined-apis { 216 | background-image: url("../img/icon-defined-apis-60x60.png"); } 217 | 218 | .main-highlight-blurbs .community-driven { 219 | background-image: url("../img/icon-community-driven-60x60.png"); } 220 | 221 | .main aside { 222 | color: white; 223 | padding: 0px 5% 10px; } 224 | 225 | /*==== MOBILE: Sub pages : Common styles ====*/ 226 | .sub-pages-container a:link, 227 | .sub-pages-container a:visited, 228 | .sub-pages-container a:hover, 229 | .sub-pages-container a:active { 230 | border-bottom: 1px dotted #2e8b74; } 231 | 232 | .sub-pages-container article { 233 | background-color: #fff; } 234 | 235 | .sub-pages-container article section { 236 | margin-bottom: 4em; } 237 | 238 | .sub-pages-container article header { 239 | border-bottom: 1px solid #dbdde0; 240 | margin-bottom: 1.5em; 241 | overflow: auto; } 242 | 243 | .sub-pages-container article h1 { 244 | color: #2f353e; 245 | font-family: 'Raleway', Arial, sans-serif; 246 | font-weight: 300; 247 | font-size: 25px; 248 | letter-spacing: 2px; 249 | line-height: 1.5; 250 | margin: 0.5em 0; } 251 | 252 | .sub-pages-container article ul, .sub-pages-container article ul { 253 | list-style-type: circle; } 254 | 255 | .sub-pages-container article ul li, .sub-pages-container article ol li { 256 | padding: 3px 0 3px 8px; } 257 | 258 | .sub-pages-container article .step-box { 259 | background-color: #ed2534; 260 | border-radius: 4px; 261 | color: #fff; 262 | font-size: 15px; 263 | font-weight: 400; 264 | padding: 8px 16px; } 265 | 266 | .sub-pages-container h2, 267 | .sub-pages-container h3, 268 | .sub-pages-container h4 { 269 | color: #2f353e; 270 | font-family: 'Raleway', Arial, sans-serif; 271 | font-size: 18px; 272 | font-weight: 300; 273 | letter-spacing: 1px; 274 | margin: 0 0 10px 0; } 275 | 276 | .sub-pages-container h3 { 277 | font-size: 17px; } 278 | 279 | .sub-pages-container h4 { 280 | font-size: 15px; } 281 | 282 | .sub-pages-container section.step h2 { 283 | display: inline; 284 | margin-bottom: 5px; } 285 | 286 | .sub-pages-container section .question { 287 | color: #7f899f; 288 | font-family: 'Open Sans', Arial, sans-serif; 289 | font-size: 15px; 290 | font-weight: 300; 291 | font-style: italic; 292 | padding-top: 6px; } 293 | 294 | .sub-pages-container section dt { 295 | margin-bottom: 10px; } 296 | 297 | .sub-pages-container section dd { 298 | margin-bottom: 20px; } 299 | 300 | .sub-pages-container section.image-viewers ul, 301 | .sub-pages-container section.image-servers ul, 302 | .sub-pages-container section.impl-demos ul { 303 | padding-left: 40px; } 304 | 305 | /* Sub pages : Individual styles */ 306 | .sub-pages-container .technical-details article header { 307 | margin-bottom: 0; } 308 | 309 | .sub-pages-container .technical-details .section-quick-links { 310 | background-color: #F7F7F8; 311 | border-bottom: 1px solid #dbdde0; 312 | overflow: auto; 313 | /*padding-bottom: 30px;*/ 314 | padding: 30px 0 32px 0; 315 | text-align: center; } 316 | 317 | .sub-pages-container .technical-details a.button-turquoise { 318 | margin-left: 20px; 319 | margin-right: 20px; } 320 | 321 | .sub-pages-container .community .participants ul { 322 | padding-left: 40px; } 323 | 324 | .sub-pages-container .community .get-involved dl dd { 325 | margin-left: 20px; } 326 | 327 | .sub-pages-container .image-api { 328 | color: #222; } 329 | 330 | .sub-pages-container .image-api .names { 331 | list-style-type: none; 332 | margin: 1em 0 0 0; 333 | padding-left: 20px; } 334 | 335 | .sub-pages-container .image-api .names li { 336 | line-height: 1.1; 337 | padding-left: 0; } 338 | 339 | .sub-pages-container .toc ol { 340 | counter-reset: item; 341 | margin: 0; 342 | padding-left: 10px; } 343 | 344 | .sub-pages-container .toc ol ol { 345 | padding-left: 25px; } 346 | 347 | .sub-pages-container .toc li { 348 | display: inline-block; 349 | width: 92%; } 350 | 351 | .sub-pages-container .toc li:before { 352 | content: counters(item,".") ". "; 353 | counter-increment: item; } 354 | 355 | .sub-pages-container table { 356 | margin: 25px 0; } 357 | 358 | .sub-pages-container .api-table tr { 359 | border-top: 1px solid #2e8b74; 360 | border-bottom: 1px solid #2e8b74; 361 | font-size: 13px; } 362 | 363 | .sub-pages-container .api-table th { 364 | background-color: #2e8b74; 365 | color: #fff; 366 | font-weight: normal; 367 | padding: 8px 15px; 368 | text-align: left; 369 | vertical-align: middle; 370 | white-space: normal; } 371 | 372 | .sub-pages-container .md-requirements .api-table th { 373 | border-right: 1px solid #fff; 374 | text-align: center; 375 | padding: 8px 5px; } 376 | 377 | .sub-pages-container .md-requirements .api-table td { 378 | padding: 8px 5px; } 379 | 380 | .sub-pages-container .md-requirements .legend { 381 | list-style-type: none; 382 | line-height: 20px; 383 | padding-left: 0; } 384 | 385 | .sub-pages-container .md-requirements .legend .req { 386 | float: left; 387 | margin-right: 20px; } 388 | 389 | .sub-pages-container .api-table td:first-child { 390 | font-family: monospace; 391 | /*text-align: center;*/ } 392 | 393 | .sub-pages-container .api-table td { 394 | padding: 8px 15px; 395 | vertical-align: middle; 396 | word-wrap: break-word; 397 | white-space: -pre-wrap; 398 | /* Opera 4-6 */ 399 | white-space: -o-pre-wrap; 400 | /* Opera 7 */ 401 | white-space: -moz-pre-wrap; 402 | /* Mozilla */ 403 | white-space: -hp-pre-wrap; 404 | /* HP Printers */ } 405 | 406 | .sub-pages-container .url-encoding-and-decoding .api-table td { 407 | word-break: break-all; } 408 | 409 | .sub-pages-container .example-urls { 410 | font-family: monospace; 411 | font-size: 13px; 412 | list-style-type: none; 413 | margin-bottom: 25px; 414 | padding-left: 0; } 415 | 416 | .sub-pages-container .example-urls li { 417 | padding: 2px 0; 418 | word-break: break-all; } 419 | 420 | .sub-pages-container .container-figure { 421 | text-align: left; } 422 | 423 | .sub-pages-container .container-figure .figure-label { 424 | color: #999; 425 | font-size: 13px; 426 | font-style: italic; } 427 | 428 | .figure-image-api-region { 429 | background-image: url("/api/image/1.1/img/iiif-region.png"); } 430 | 431 | .figure-image-api-size { 432 | background-image: url("/api/image/1.1/img/iiif-size.png"); } 433 | 434 | .figure-image-api-rotation { 435 | background-image: url("/api/image/1.1/img/iiif-rotation.png"); } 436 | 437 | .figure-image-api-quality { 438 | background-image: url("/api/image/1.1/img/iiif-quality.png"); } 439 | 440 | .figure-presentation-api-objects { 441 | height: 350px; 442 | width: 117px; } 443 | 444 | .figure-presentation-api-objects-md { 445 | height: 400px; 446 | width: 428px; } 447 | 448 | .figure-presentation-api-objects-all { 449 | height: 500px; 450 | width: 702px; } 451 | 452 | .to-toc { 453 | float: right; 454 | height: 25px; 455 | padding-left: 20px; 456 | width: 25px; } 457 | 458 | .monospace { 459 | font-family: monospace; } 460 | 461 | .left-indent { 462 | text-indent: 20px; } 463 | 464 | .visibility-hidden { 465 | visibility: hidden; } 466 | 467 | .code-block { 468 | background-color: #e0efef; 469 | border: 1px solid #c0d3d3; 470 | border-radius: 3px; 471 | display: inline-block; 472 | font-family: monospace; 473 | font-size: 13px; 474 | line-height: 1.6; 475 | margin: 0; 476 | padding: 4px 12px; 477 | word-break: break-all; } 478 | 479 | .multi-line-code { 480 | white-space: pre; 481 | white-space: pre-wrap; 482 | word-wrap: break-word; } 483 | 484 | .numbered-box { 485 | background-color: #eb2026; 486 | border-radius: 3px; 487 | color: #fff; 488 | padding: 4px 6px 3px 6px; } 489 | 490 | .req { 491 | background: transparent url("/img/metadata-api/icons-metadata-requirements.png") left top no-repeat; 492 | height: 20px; 493 | margin: 0 auto; 494 | width: 20px; } 495 | 496 | .mandatory { 497 | background-position: 0 0; } 498 | 499 | .recommended { 500 | background-position: -20px 0; } 501 | 502 | .optional { 503 | background-position: 0 -20px; } 504 | 505 | .not-applicable { 506 | background-position: -20px -20px; } 507 | 508 | .sub-rh { 509 | background-color: #DCF4EE; 510 | font-weight: bold; } 511 | 512 | .compliance-tick { 513 | color: #2E8B74; 514 | text-align: center; } 515 | 516 | /* Footer */ 517 | .footer-container { 518 | border-top: 1px solid black; 519 | background: #2f353e; 520 | color: #c0c0c0; 521 | padding: 8px; } 522 | 523 | .footer-container .footer-column { 524 | float: left; 525 | width: 50%; 526 | background: #2f353e; 527 | color: #a7aaae; 528 | font-size: 12px; 529 | text-align: center; } 530 | 531 | .footer-container ul { 532 | line-height: 1.6; 533 | list-style: none; 534 | margin: 0; 535 | padding: 0; 536 | width: 100%; } 537 | 538 | .footer-container ul li { 539 | display: inline; 540 | padding-right: 25px; } 541 | 542 | /* =============== 543 | ALL: IE Fixes 544 | ================== */ 545 | .ie7 .title { 546 | padding-top: 20px; } 547 | 548 | /* ========================================================================== 549 | Media Queries 550 | ============================================================================= */ 551 | @media only screen and (min-width: 480px) { 552 | /* ==================== 553 | INTERMEDIATE: Menu 554 | ==================== */ 555 | .title { 556 | margin: 0 0 5px 0; } 557 | 558 | nav { 559 | border-top: 1px solid #424957; } 560 | 561 | nav a:link, nav a:visited, nav a:hover, nav a:active { 562 | border-top: 0; 563 | display: inline-block; 564 | padding: 12px 3% 12px 0; 565 | margin-bottom: 0; } 566 | 567 | nav li:first-child a { 568 | margin-left: 0; } 569 | 570 | nav li:last-child a { 571 | margin-right: 0; 572 | padding-right: 0; } 573 | 574 | .main-blurb h1 { 575 | font-size: 32px; } 576 | 577 | .main-blurb p { 578 | font-size: 17px; } 579 | 580 | a.button-turquoise { 581 | font-size: 15px; 582 | padding: 12px 24px; } 583 | 584 | .main-blurb .buttons { 585 | padding: 15px 0 10px 0; } 586 | 587 | .main-blurb a.button-turquoise { 588 | margin: 10px; 589 | display: inline; 590 | clear: none; } 591 | 592 | .sub-pages-container article .step-box { 593 | background-color: #ed2534; 594 | /*border: 2px solid #ed2534;*/ 595 | border-radius: 4px; 596 | color: #fff; 597 | font-size: 14px; 598 | font-weight: 600; 599 | padding: 8px 16px; } 600 | 601 | .sub-pages-container .container-figure { 602 | text-align: center; } 603 | 604 | /* ======================== 605 | INTERMEDIATE: IE Fixes 606 | ======================== */ 607 | nav ul li { 608 | display: inline; } 609 | 610 | .oldie nav a { 611 | margin: 0 0.7%; } } 612 | @media only screen and (min-width: 768px) { 613 | /* ============ 614 | WIDE: Menu 615 | ============ */ 616 | .title { 617 | float: left; 618 | margin: 0 0 5px 0; 619 | width: 34px; } 620 | 621 | nav { 622 | float: right; 623 | text-align: right; 624 | width: 70%; } 625 | 626 | nav a:link, nav a:visited, nav a:hover, nav a:active { 627 | padding: 12px 0 12px 4%; 628 | margin-bottom: 0; } 629 | 630 | /* ============ 631 | WIDE: Main 632 | ============ */ 633 | .main aside { 634 | float: right; 635 | width: 28%; } 636 | 637 | .main-highlight-blurbs .highlight { 638 | float: left; 639 | width: 23%; } 640 | 641 | a.button-turquoise { 642 | margin: 10px; 643 | display: inline; 644 | clear: none; } 645 | 646 | .sub-pages-container article { 647 | float: left; 648 | min-height: 400px; 649 | width: 100%; } 650 | 651 | .sub-pages-container h2 { 652 | font-size: 20px; } 653 | 654 | .sub-pages-container h3 { 655 | font-size: 18px; } 656 | 657 | .sub-pages-container section.about-content, 658 | .sub-pages-container section.quick-start, 659 | .sub-pages-container section.step-1, 660 | .sub-pages-container section.step-2, 661 | .sub-pages-container section.step-3, 662 | .sub-pages-container section.tips-n-tricks, 663 | .sub-pages-container section.image-viewers, 664 | .sub-pages-container section.image-servers, 665 | .sub-pages-container section.impl-demos, 666 | .sub-pages-container section.get-involved, 667 | .sub-pages-container section.participants { 668 | box-sizing: border-box; 669 | padding-left: 110px; 670 | -moz-box-sizing: border-box; 671 | -webkit-box-sizing: border-box; } 672 | 673 | .sub-pages-container section.about-content { 674 | background: transparent url(../img/text-bg-about.png) left top no-repeat; } 675 | 676 | .sub-pages-container section.quick-start { 677 | background: transparent url(../img/text-bg-quick-start.png) left top no-repeat; } 678 | 679 | .sub-pages-container section.step-1 { 680 | background: transparent url(../img/text-bg-step-1.png) 10px top no-repeat; } 681 | 682 | .sub-pages-container section.step-2 { 683 | background: transparent url(../img/text-bg-step-2.png) 10px top no-repeat; } 684 | 685 | .sub-pages-container section.step-3 { 686 | background: transparent url(../img/text-bg-step-3.png) 10px top no-repeat; } 687 | 688 | .sub-pages-container section.tips-n-tricks { 689 | background: transparent url(../img/text-bg-tips-n-tricks.png) left top no-repeat; } 690 | 691 | .sub-pages-container section.image-viewers { 692 | background: transparent url(../img/text-bg-img-viewers.png) left top no-repeat; } 693 | 694 | .sub-pages-container section.image-servers { 695 | background: transparent url(../img/text-bg-img-servers.png) left top no-repeat; } 696 | 697 | .sub-pages-container section.impl-demos { 698 | background: transparent url(../img/text-bg-impl-demos.png) left top no-repeat; } 699 | 700 | .sub-pages-container section.get-involved { 701 | background: transparent url(../img/text-bg-get-involved.png) left top no-repeat; } 702 | 703 | .sub-pages-container section.participants { 704 | background: transparent url(../img/text-bg-participants.png) left top no-repeat; } 705 | 706 | .sub-pages-container .api-table th { 707 | white-space: nowrap; } 708 | 709 | .sub-pages-container .sched-table { 710 | width: 100%; } 711 | 712 | .sub-pages-container .sched-table td:first-child { 713 | width: 20%; } 714 | 715 | .sub-pages-container .sched-table td:nth-child(2) { 716 | width: 45%; } 717 | 718 | .sub-pages-container .sched-table td:nth-child(3) { 719 | width: 35%; } 720 | 721 | .sub-pages-container .msched-table { 722 | width: 100%; } 723 | 724 | .sub-pages-container .msched-table td:first-child { 725 | width: 13%; } 726 | 727 | .sub-pages-container .msched-table td:nth-child(2) { 728 | width: 29%; } 729 | 730 | .sub-pages-container .msched-table td:nth-child(3) { 731 | width: 29%; } 732 | 733 | .sub-pages-container .msched-table td:nth-child(4) { 734 | width: 29%; } 735 | 736 | .code-block { 737 | margin: 0 0 0 20px; } 738 | 739 | .footer-container .footer-column { 740 | float: left; 741 | width: 50%; } } 742 | @media only screen and (min-width: 1140px) { 743 | /* =============== 744 | Maximal Width 745 | =============== */ 746 | .wrapper { 747 | width: 1026px; 748 | /* 1140px - 10% for margins */ 749 | margin: 0 auto; } 750 | 751 | .footer-container .footer-column { 752 | float: left; 753 | width: 25%; } } 754 | /* ========================================================================== 755 | Helper classes 756 | ========================================================================== */ 757 | .ir { 758 | background-color: transparent; 759 | border: 0; 760 | overflow: hidden; 761 | *text-indent: -9999px; } 762 | 763 | .ir:before { 764 | content: ""; 765 | display: block; 766 | width: 0; 767 | height: 150%; } 768 | 769 | .hidden { 770 | display: none !important; 771 | visibility: hidden; } 772 | 773 | .visuallyhidden { 774 | border: 0; 775 | clip: rect(0 0 0 0); 776 | height: 1px; 777 | margin: -1px; 778 | overflow: hidden; 779 | padding: 0; 780 | position: absolute; 781 | width: 1px; } 782 | 783 | .visuallyhidden.focusable:active, 784 | .visuallyhidden.focusable:focus { 785 | clip: auto; 786 | height: auto; 787 | margin: 0; 788 | overflow: visible; 789 | position: static; 790 | width: auto; } 791 | 792 | .invisible { 793 | visibility: hidden; } 794 | 795 | .clearfix:before, 796 | .clearfix:after { 797 | content: " "; 798 | display: table; } 799 | 800 | .clearfix:after { 801 | clear: both; } 802 | 803 | .clearfix { 804 | *zoom: 1; } 805 | 806 | /* ========================================================================== 807 | Print styles 808 | ========================================================================== */ 809 | @media print { 810 | * { 811 | background: transparent !important; 812 | color: #000 !important; 813 | /* Black prints faster: h5bp.com/s */ 814 | box-shadow: none !important; 815 | text-shadow: none !important; } 816 | 817 | a, 818 | a:visited { 819 | text-decoration: underline; } 820 | 821 | a[href]:after { 822 | content: " (" attr(href) ")"; } 823 | 824 | abbr[title]:after { 825 | content: " (" attr(title) ")"; } 826 | 827 | /* 828 | * Don't show links for images, or javascript/internal links 829 | */ 830 | .ir a:after, 831 | a[href^="javascript:"]:after, 832 | a[href^="#"]:after { 833 | content: ""; } 834 | 835 | pre, 836 | blockquote { 837 | border: 1px solid #999; 838 | page-break-inside: avoid; } 839 | 840 | thead { 841 | display: table-header-group; 842 | /* h5bp.com/t */ } 843 | 844 | tr, 845 | img { 846 | page-break-inside: avoid; } 847 | 848 | img { 849 | max-width: 100% !important; } 850 | 851 | @page { 852 | margin: 0.5cm; } 853 | p, 854 | h2, 855 | h3 { 856 | orphans: 3; 857 | widows: 3; } 858 | 859 | h2, 860 | h3 { 861 | page-break-after: avoid; } } 862 | .short-post-title .post-date { 863 | font-size: smaller; } 864 | 865 | .post h2, .post h3, .post h4 { 866 | font-weight: 600; } 867 | .post .meta p { 868 | line-height: 1.1; 869 | margin-top: 5px; 870 | margin-bottom: 5px; } 871 | .post dd ul { 872 | margin: 0; 873 | padding: 0; } 874 | .post li { 875 | padding-bottom: 0 !important; 876 | padding-top: 0 !important; } 877 | -------------------------------------------------------------------------------- /css/themes/default/style.min.css: -------------------------------------------------------------------------------- 1 | .jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;-moz-box-shadow:5px 5px 4px -4px #666;-webkit-box-shadow:2px 2px 2px #999;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none;display:inline}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;-moz-text-shadow:1px 1px 0 #fff;-webkit-text-shadow:1px 1px 0 #fff;text-shadow:1px 1px 0 #fff;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;-moz-text-shadow:0 0 0 transparent;-webkit-text-shadow:0 0 0 transparent;text-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:0 0;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-moz-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#beebff),color-stop(100%,#a8e4ff));background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-o-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:-ms-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url(32px.png)}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:0 0}.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url(32px.png)}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:0 0}.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-ok,#jstree-dnd.jstree-default-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url(32px.png)}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:0 0}.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-ok,#jstree-dnd.jstree-default-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}} -------------------------------------------------------------------------------- /css/themes/proton/style.min.css: -------------------------------------------------------------------------------- 1 | .jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#333;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;-moz-box-shadow:5px 5px 4px -4px #666;-webkit-box-shadow:2px 2px 2px #999;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none;display:inline}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;-moz-text-shadow:1px 1px 0 #fff;-webkit-text-shadow:1px 1px 0 #fff;text-shadow:1px 1px 0 #fff;-moz-border-radius:1px;-webkit-border-radius:1px;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;-moz-box-shadow:0 0 2px #0a6aa1;-webkit-box-shadow:0 0 2px #0a6aa1;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;-moz-text-shadow:0 0 0 transparent;-webkit-text-shadow:0 0 0 transparent;text-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;-webkit-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-proton .jstree-node,.jstree-proton .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-proton .jstree-anchor,.jstree-proton .jstree-wholerow{transition:background-color .15s,box-shadow .15s,color .15s}.jstree-proton .jstree-hovered{background:#76b6ec;color:#fff;border-radius:3px;box-shadow:inset 0 0 1px #76b6ec}.jstree-proton .jstree-clicked{background:#3392e3;color:#fff;border-radius:3px;box-shadow:inset 0 0 1px #3392e3}.jstree-proton .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-proton .jstree-disabled{background:0 0;color:#666}.jstree-proton .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-proton .jstree-disabled.jstree-clicked{background:#efefef}.jstree-proton .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");-webkit-filter:grayscale(100%)}.jstree-proton .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-proton .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-proton.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;color:inherit;box-shadow:none}.jstree-proton.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#76b6ec;color:#fff}.jstree-proton.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0;color:inherit}.jstree-proton.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#76b6ec;color:#fff}.jstree-proton>.jstree-striped{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-proton>.jstree-wholerow-ul .jstree-hovered,.jstree-proton>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-proton .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-proton .jstree-wholerow-hovered{background:#76b6ec}.jstree-proton .jstree-wholerow-clicked{background:#3392e3;background:-moz-linear-gradient(top,#3392e3 0,#3392e3 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3392e3),color-stop(100%,#3392e3));background:-webkit-linear-gradient(top,#3392e3 0,#3392e3 100%);background:-o-linear-gradient(top,#3392e3 0,#3392e3 100%);background:-ms-linear-gradient(top,#3392e3 0,#3392e3 100%);background:linear-gradient(to bottom,#3392e3 0,#3392e3 100%)}.jstree-proton .jstree-node{min-height:22px;line-height:22px;margin-left:22px;min-width:22px}.jstree-proton .jstree-anchor{line-height:22px;margin:1px 0 2px;height:22px}.jstree-proton .jstree-icon{width:22px;height:22px;line-height:22px}.jstree-proton .jstree-icon:empty{width:22px;height:22px;line-height:22px}.jstree-proton.jstree-rtl .jstree-node{margin-right:22px}.jstree-proton .jstree-wholerow{height:22px}.jstree-proton .jstree-node,.jstree-proton .jstree-icon{background-size:320px 96px;background-image:url(32px.png)}.jstree-proton .jstree-node{background-position:-293px -5px;background-repeat:repeat-y}.jstree-proton .jstree-last{background:0 0}.jstree-proton .jstree-open>.jstree-ocl{background-position:-133px -5px}.jstree-proton .jstree-closed>.jstree-ocl{background-position:-101px -5px}.jstree-proton .jstree-leaf>.jstree-ocl{background-position:-69px -5px}.jstree-proton .jstree-themeicon{background-position:-261px -7px}.jstree-proton>.jstree-no-dots .jstree-node,.jstree-proton>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-37px -5px}.jstree-proton>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-5px -5px}.jstree-proton .jstree-disabled{background:0 0}.jstree-proton .jstree-disabled.jstree-hovered{background:0 0}.jstree-proton .jstree-disabled.jstree-clicked{background:#efefef}.jstree-proton .jstree-checkbox{background-position:-165px -5px}.jstree-proton .jstree-checkbox:hover{background-position:-165px -37px}.jstree-proton.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-proton .jstree-checked>.jstree-checkbox{background-position:-229px -5px}.jstree-proton.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-proton .jstree-checked>.jstree-checkbox:hover{background-position:-229px -37px}.jstree-proton .jstree-anchor>.jstree-undetermined{background-position:-197px -5px}.jstree-proton .jstree-anchor>.jstree-undetermined:hover{background-position:-197px -37px}.jstree-proton>.jstree-striped{background-size:auto 44px}.jstree-proton.jstree-rtl .jstree-node{background-size:320px 96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-proton.jstree-rtl .jstree-last{background:0 0}.jstree-proton.jstree-rtl .jstree-open>.jstree-ocl{background-position:-133px -37px}.jstree-proton.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-101px -37px}.jstree-proton.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-69px -37px}.jstree-proton.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-proton.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-37px -37px}.jstree-proton.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-5px -37px}.jstree-proton .jstree-themeicon-custom{background-color:transparent;background-size:320px 96px;background-image:none;background-position:0 0}.jstree-proton>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-proton .jstree-file{background:url(32px.png) -101px -69px no-repeat}.jstree-proton .jstree-folder{background:url(32px.png) -261px -5px no-repeat}.jstree-proton>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-proton{line-height:22px;padding:0 4px}#jstree-dnd.jstree-proton .jstree-ok,#jstree-dnd.jstree-proton .jstree-er{background-size:320px 96px;background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-proton i{background:0 0;width:22px;height:22px;line-height:22px}#jstree-dnd.jstree-proton .jstree-ok{background-position:-5px -69px}#jstree-dnd.jstree-proton .jstree-er{background-position:-37px -69px}.jstree-proton.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-proton.jstree-rtl .jstree-last{background:0 0}.jstree-proton-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-proton-small .jstree-anchor{line-height:18px;margin:1px 0 2px;height:18px}.jstree-proton-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-proton-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-proton-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-proton-small .jstree-wholerow{height:18px}.jstree-proton-small .jstree-node,.jstree-proton-small .jstree-icon{background-size:320px 96px;background-image:url(32px.png)}.jstree-proton-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-proton-small .jstree-last{background:0 0}.jstree-proton-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-proton-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-proton-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-proton-small .jstree-themeicon{background-position:-263px -9px}.jstree-proton-small>.jstree-no-dots .jstree-node,.jstree-proton-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-proton-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-proton-small .jstree-disabled{background:0 0}.jstree-proton-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-proton-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-proton-small .jstree-checkbox{background-position:-167px -7px}.jstree-proton-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-proton-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-proton-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-proton-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-proton-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-proton-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-proton-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-proton-small>.jstree-striped{background-size:auto 36px}.jstree-proton-small.jstree-rtl .jstree-node{background-size:320px 96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-proton-small.jstree-rtl .jstree-last{background:0 0}.jstree-proton-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-proton-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-proton-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-proton-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-proton-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-proton-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-proton-small .jstree-themeicon-custom{background-color:transparent;background-size:320px 96px;background-image:none;background-position:0 0}.jstree-proton-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-proton-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-proton-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-proton-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-proton-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-proton-small .jstree-ok,#jstree-dnd.jstree-proton-small .jstree-er{background-size:320px 96px;background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-proton-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-proton-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-proton-small .jstree-er{background-position:-39px -71px}.jstree-proton-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-proton-small.jstree-rtl .jstree-last{background:0 0}.jstree-proton-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-proton-large .jstree-anchor{line-height:32px;margin:1px 0 2px;height:32px}.jstree-proton-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-proton-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-proton-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-proton-large .jstree-wholerow{height:32px}.jstree-proton-large .jstree-node,.jstree-proton-large .jstree-icon{background-size:320px 96px;background-image:url(32px.png)}.jstree-proton-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-proton-large .jstree-last{background:0 0}.jstree-proton-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-proton-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-proton-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-proton-large .jstree-themeicon{background-position:-256px -2px}.jstree-proton-large>.jstree-no-dots .jstree-node,.jstree-proton-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-proton-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-proton-large .jstree-disabled{background:0 0}.jstree-proton-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-proton-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-proton-large .jstree-checkbox{background-position:-160px 0}.jstree-proton-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-proton-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-proton-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-proton-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-proton-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-proton-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-proton-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-proton-large>.jstree-striped{background-size:auto 64px}.jstree-proton-large.jstree-rtl .jstree-node{background-size:320px 96px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-proton-large.jstree-rtl .jstree-last{background:0 0}.jstree-proton-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-proton-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-proton-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-proton-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-proton-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-proton-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-proton-large .jstree-themeicon-custom{background-color:transparent;background-size:320px 96px;background-image:none;background-position:0 0}.jstree-proton-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-proton-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-proton-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-proton-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-proton-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-proton-large .jstree-ok,#jstree-dnd.jstree-proton-large .jstree-er{background-size:320px 96px;background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-proton-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-proton-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-proton-large .jstree-er{background-position:-32px -64px}.jstree-proton-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-proton-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:30px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:30px;height:30px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(30px.png);background-position:0 -150px;background-size:90px 180px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(30px.png);background-position:-30px -150px;background-size:90px 180px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-proton-responsive .jstree-container-ul{overflow:hidden}.jstree-proton-responsive .jstree-icon{background-image:url(30px.png);background-size:90px 180px}.jstree-proton-responsive .jstree-node,.jstree-proton-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-responsive .jstree-node{min-height:30px;line-height:30px;margin-left:30px;min-width:30px;white-space:nowrap}.jstree-proton-responsive .jstree-anchor{line-height:38px;height:38px;margin:0}.jstree-proton-responsive .jstree-icon,.jstree-proton-responsive .jstree-icon:empty{margin-top:4px;width:30px;height:30px;line-height:30px}.jstree-proton-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-proton-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:30px}.jstree-proton-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-proton-responsive .jstree-ocl,.jstree-proton-responsive .jstree-themeicon,.jstree-proton-responsive .jstree-checkbox{background-size:90px 180px}.jstree-proton-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-proton-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-proton-responsive .jstree-closed>.jstree-ocl{background-position:0 -30px!important}.jstree-proton-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-30px 0!important}.jstree-proton-responsive .jstree-themeicon{background-position:-30px -30px}.jstree-proton-responsive .jstree-checkbox,.jstree-proton-responsive .jstree-checkbox:hover{background-position:-30px -60px}.jstree-proton-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-proton-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-proton-responsive .jstree-checked>.jstree-checkbox,.jstree-proton-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -60px}.jstree-proton-responsive .jstree-anchor>.jstree-undetermined,.jstree-proton-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -90px}.jstree-proton-responsive>.jstree-striped{background:0 0}.jstree-proton-responsive .jstree-wholerow-ul li{position:relative}.jstree-proton-responsive .jstree-wholerow-ul .jstree-wholerow{position:absolute;top:0;left:-1000px;right:-1000px;width:auto;height:100%}.jstree-proton-responsive .jstree-wholerow{border-top:1px solid rgba(0,0,0,.05);background:rgba(0,0,0,.02);height:30px}.jstree-proton-responsive .jstree-wholerow-hovered{background:#76b6ec}.jstree-proton-responsive .jstree-wholerow-clicked{background:#3392e3}.jstree-proton-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-proton-responsive .jstree-node,.jstree-proton-responsive .jstree-icon,.jstree-proton-responsive .jstree-node>.jstree-ocl,.jstree-proton-responsive .jstree-themeicon,.jstree-proton-responsive .jstree-checkbox{background-image:url(30px.png);background-size:90px 180px}.jstree-proton-responsive .jstree-node{background-position:-60px 0;background-repeat:repeat-y}.jstree-proton-responsive .jstree-last{background:0 0}.jstree-proton-responsive .jstree-leaf>.jstree-ocl{background-position:-30px -90px}.jstree-proton-responsive .jstree-last>.jstree-ocl{background-position:-30px -120px}.jstree-proton-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-proton-responsive .jstree-file{background:url(30px.png) 0 -120px no-repeat;background-size:90px 180px}.jstree-proton-responsive .jstree-folder{background:url(30px.png) -30px -30px no-repeat;background-size:90px 180px}.jstree-proton-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-extralight-webfont.eot);src:url(fonts/titillium/titilliumweb-extralight-webfont.eot?#iefix) format('embedded-opentype'),url(fonts/titillium/titilliumweb-extralight-webfont.woff) format('woff'),url(fonts/titillium/titilliumweb-extralight-webfont.ttf) format('truetype'),url(fonts/titillium/titilliumweb-extralight-webfont.svg#titillium_webthin) format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-regular-webfont.eot);src:url(fonts/titillium/titilliumweb-regular-webfont.eot?#iefix) format('embedded-opentype'),url(fonts/titillium/titilliumweb-regular-webfont.woff) format('woff'),url(fonts/titillium/titilliumweb-regular-webfont.ttf) format('truetype'),url(fonts/titillium/titilliumweb-regular-webfont.svg#titillium_webregular) format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-bold-webfont.eot);src:url(fonts/titillium/titilliumweb-bold-webfont.eot?#iefix) format('embedded-opentype'),url(fonts/titillium/titilliumweb-bold-webfont.woff) format('woff'),url(fonts/titillium/titilliumweb-bold-webfont.ttf) format('truetype'),url(fonts/titillium/titilliumweb-bold-webfont.svg#titillium_webbold) format('svg');font-weight:700;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-extralight-webfont.svg#titillium_webthin) format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-regular-webfont.svg#titillium_webregular) format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Titillium Web';src:url(fonts/titillium/titilliumweb-bold-webfont.svg#titillium_webbold) format('svg');font-weight:700;font-style:normal}}.jstree-proton{font-family:'Titillium Web',sans-serif,Arial,sans-serif} -------------------------------------------------------------------------------- /css/themes/default/style.css: -------------------------------------------------------------------------------- 1 | /* jsTree default theme */ 2 | .jstree-node, 3 | .jstree-children, 4 | .jstree-container-ul { 5 | display: block; 6 | margin: 0; 7 | padding: 0; 8 | list-style-type: none; 9 | list-style-image: none; 10 | } 11 | .jstree-node { 12 | white-space: nowrap; 13 | } 14 | .jstree-anchor { 15 | display: inline-block; 16 | color: black; 17 | white-space: nowrap; 18 | padding: 0 4px 0 1px; 19 | margin: 0; 20 | vertical-align: top; 21 | } 22 | .jstree-anchor:focus { 23 | outline: 0; 24 | } 25 | .jstree-anchor, 26 | .jstree-anchor:link, 27 | .jstree-anchor:visited, 28 | .jstree-anchor:hover, 29 | .jstree-anchor:active { 30 | text-decoration: none; 31 | color: inherit; 32 | } 33 | .jstree-icon { 34 | display: inline-block; 35 | text-decoration: none; 36 | margin: 0; 37 | padding: 0; 38 | vertical-align: top; 39 | text-align: center; 40 | } 41 | .jstree-icon:empty { 42 | display: inline-block; 43 | text-decoration: none; 44 | margin: 0; 45 | padding: 0; 46 | vertical-align: top; 47 | text-align: center; 48 | } 49 | .jstree-ocl { 50 | cursor: pointer; 51 | } 52 | .jstree-leaf > .jstree-ocl { 53 | cursor: default; 54 | } 55 | .jstree .jstree-open > .jstree-children { 56 | display: block; 57 | } 58 | .jstree .jstree-closed > .jstree-children, 59 | .jstree .jstree-leaf > .jstree-children { 60 | display: none; 61 | } 62 | .jstree-anchor > .jstree-themeicon { 63 | margin-right: 2px; 64 | } 65 | .jstree-no-icons .jstree-themeicon, 66 | .jstree-anchor > .jstree-themeicon-hidden { 67 | display: none; 68 | } 69 | .jstree-rtl .jstree-anchor { 70 | padding: 0 1px 0 4px; 71 | } 72 | .jstree-rtl .jstree-anchor > .jstree-themeicon { 73 | margin-left: 2px; 74 | margin-right: 0; 75 | } 76 | .jstree-rtl .jstree-node { 77 | margin-left: 0; 78 | } 79 | .jstree-rtl .jstree-container-ul > .jstree-node { 80 | margin-right: 0; 81 | } 82 | .jstree-wholerow-ul { 83 | position: relative; 84 | display: inline-block; 85 | min-width: 100%; 86 | } 87 | .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { 88 | cursor: pointer; 89 | } 90 | .jstree-wholerow-ul .jstree-anchor, 91 | .jstree-wholerow-ul .jstree-icon { 92 | position: relative; 93 | } 94 | .jstree-wholerow-ul .jstree-wholerow { 95 | width: 100%; 96 | cursor: pointer; 97 | position: absolute; 98 | left: 0; 99 | -webkit-user-select: none; 100 | -moz-user-select: none; 101 | -ms-user-select: none; 102 | user-select: none; 103 | } 104 | .vakata-context { 105 | display: none; 106 | } 107 | .vakata-context, 108 | .vakata-context ul { 109 | margin: 0; 110 | padding: 2px; 111 | position: absolute; 112 | background: #f5f5f5; 113 | border: 1px solid #979797; 114 | -moz-box-shadow: 5px 5px 4px -4px #666666; 115 | -webkit-box-shadow: 2px 2px 2px #999999; 116 | box-shadow: 2px 2px 2px #999999; 117 | } 118 | .vakata-context ul { 119 | list-style: none; 120 | left: 100%; 121 | margin-top: -2.7em; 122 | margin-left: -4px; 123 | } 124 | .vakata-context .vakata-context-right ul { 125 | left: auto; 126 | right: 100%; 127 | margin-left: auto; 128 | margin-right: -4px; 129 | } 130 | .vakata-context li { 131 | list-style: none; 132 | display: inline; 133 | } 134 | .vakata-context li > a { 135 | display: block; 136 | padding: 0 2em 0 2em; 137 | text-decoration: none; 138 | width: auto; 139 | color: black; 140 | white-space: nowrap; 141 | line-height: 2.4em; 142 | -moz-text-shadow: 1px 1px 0 white; 143 | -webkit-text-shadow: 1px 1px 0 white; 144 | text-shadow: 1px 1px 0 white; 145 | -moz-border-radius: 1px; 146 | -webkit-border-radius: 1px; 147 | border-radius: 1px; 148 | } 149 | .vakata-context li > a:hover { 150 | position: relative; 151 | background-color: #e8eff7; 152 | -moz-box-shadow: 0 0 2px #0a6aa1; 153 | -webkit-box-shadow: 0 0 2px #0a6aa1; 154 | box-shadow: 0 0 2px #0a6aa1; 155 | } 156 | .vakata-context li > a.vakata-context-parent { 157 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); 158 | background-position: right center; 159 | background-repeat: no-repeat; 160 | } 161 | .vakata-context li > a:focus { 162 | outline: 0; 163 | } 164 | .vakata-context .vakata-context-hover > a { 165 | position: relative; 166 | background-color: #e8eff7; 167 | -moz-box-shadow: 0 0 2px #0a6aa1; 168 | -webkit-box-shadow: 0 0 2px #0a6aa1; 169 | box-shadow: 0 0 2px #0a6aa1; 170 | } 171 | .vakata-context .vakata-context-separator > a, 172 | .vakata-context .vakata-context-separator > a:hover { 173 | background: white; 174 | border: 0; 175 | border-top: 1px solid #e2e3e3; 176 | height: 1px; 177 | min-height: 1px; 178 | max-height: 1px; 179 | padding: 0; 180 | margin: 0 0 0 2.4em; 181 | border-left: 1px solid #e0e0e0; 182 | -moz-text-shadow: 0 0 0 transparent; 183 | -webkit-text-shadow: 0 0 0 transparent; 184 | text-shadow: 0 0 0 transparent; 185 | -moz-box-shadow: 0 0 0 transparent; 186 | -webkit-box-shadow: 0 0 0 transparent; 187 | box-shadow: 0 0 0 transparent; 188 | -moz-border-radius: 0; 189 | -webkit-border-radius: 0; 190 | border-radius: 0; 191 | } 192 | .vakata-context .vakata-contextmenu-disabled a, 193 | .vakata-context .vakata-contextmenu-disabled a:hover { 194 | color: silver; 195 | background-color: transparent; 196 | border: 0; 197 | box-shadow: 0 0 0; 198 | } 199 | .vakata-context li > a > i { 200 | text-decoration: none; 201 | display: inline-block; 202 | width: 2.4em; 203 | height: 2.4em; 204 | background: transparent; 205 | margin: 0 0 0 -2em; 206 | vertical-align: top; 207 | text-align: center; 208 | line-height: 2.4em; 209 | } 210 | .vakata-context li > a > i:empty { 211 | width: 2.4em; 212 | line-height: 2.4em; 213 | } 214 | .vakata-context li > a .vakata-contextmenu-sep { 215 | display: inline-block; 216 | width: 1px; 217 | height: 2.4em; 218 | background: white; 219 | margin: 0 0.5em 0 0; 220 | border-left: 1px solid #e2e3e3; 221 | } 222 | .vakata-context .vakata-contextmenu-shortcut { 223 | font-size: 0.8em; 224 | color: silver; 225 | opacity: 0.5; 226 | display: none; 227 | } 228 | .vakata-context-rtl ul { 229 | left: auto; 230 | right: 100%; 231 | margin-left: auto; 232 | margin-right: -4px; 233 | } 234 | .vakata-context-rtl li > a.vakata-context-parent { 235 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); 236 | background-position: left center; 237 | background-repeat: no-repeat; 238 | } 239 | .vakata-context-rtl .vakata-context-separator > a { 240 | margin: 0 2.4em 0 0; 241 | border-left: 0; 242 | border-right: 1px solid #e2e3e3; 243 | } 244 | .vakata-context-rtl .vakata-context-left ul { 245 | right: auto; 246 | left: 100%; 247 | margin-left: -4px; 248 | margin-right: auto; 249 | } 250 | .vakata-context-rtl li > a > i { 251 | margin: 0 -2em 0 0; 252 | } 253 | .vakata-context-rtl li > a .vakata-contextmenu-sep { 254 | margin: 0 0 0 0.5em; 255 | border-left-color: white; 256 | background: #e2e3e3; 257 | } 258 | #jstree-marker { 259 | position: absolute; 260 | top: 0; 261 | left: 0; 262 | margin: -5px 0 0 0; 263 | padding: 0; 264 | border-right: 0; 265 | border-top: 5px solid transparent; 266 | border-bottom: 5px solid transparent; 267 | border-left: 5px solid; 268 | width: 0; 269 | height: 0; 270 | font-size: 0; 271 | line-height: 0; 272 | } 273 | #jstree-dnd { 274 | line-height: 16px; 275 | margin: 0; 276 | padding: 4px; 277 | } 278 | #jstree-dnd .jstree-icon, 279 | #jstree-dnd .jstree-copy { 280 | display: inline-block; 281 | text-decoration: none; 282 | margin: 0 2px 0 0; 283 | padding: 0; 284 | width: 16px; 285 | height: 16px; 286 | } 287 | #jstree-dnd .jstree-ok { 288 | background: green; 289 | } 290 | #jstree-dnd .jstree-er { 291 | background: red; 292 | } 293 | #jstree-dnd .jstree-copy { 294 | margin: 0 2px 0 2px; 295 | } 296 | .jstree-default .jstree-node, 297 | .jstree-default .jstree-icon { 298 | background-repeat: no-repeat; 299 | background-color: transparent; 300 | } 301 | .jstree-default .jstree-anchor, 302 | .jstree-default .jstree-wholerow { 303 | transition: background-color 0.15s, box-shadow 0.15s; 304 | } 305 | .jstree-default .jstree-hovered { 306 | background: #e7f4f9; 307 | border-radius: 2px; 308 | box-shadow: inset 0 0 1px #cccccc; 309 | } 310 | .jstree-default .jstree-clicked { 311 | background: #beebff; 312 | border-radius: 2px; 313 | box-shadow: inset 0 0 1px #999999; 314 | } 315 | .jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { 316 | display: none; 317 | } 318 | .jstree-default .jstree-disabled { 319 | background: transparent; 320 | color: #666666; 321 | } 322 | .jstree-default .jstree-disabled.jstree-hovered { 323 | background: transparent; 324 | box-shadow: none; 325 | } 326 | .jstree-default .jstree-disabled.jstree-clicked { 327 | background: #efefef; 328 | } 329 | .jstree-default .jstree-disabled > .jstree-icon { 330 | opacity: 0.8; 331 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 332 | /* Firefox 10+ */ 333 | filter: gray; 334 | /* IE6-9 */ 335 | -webkit-filter: grayscale(100%); 336 | /* Chrome 19+ & Safari 6+ */ 337 | } 338 | .jstree-default .jstree-search { 339 | font-style: italic; 340 | color: #8b0000; 341 | font-weight: bold; 342 | } 343 | .jstree-default .jstree-no-checkboxes .jstree-checkbox { 344 | display: none !important; 345 | } 346 | .jstree-default.jstree-checkbox-no-clicked .jstree-clicked { 347 | background: transparent; 348 | box-shadow: none; 349 | } 350 | .jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { 351 | background: #e7f4f9; 352 | } 353 | .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { 354 | background: transparent; 355 | } 356 | .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { 357 | background: #e7f4f9; 358 | } 359 | .jstree-default > .jstree-striped { 360 | background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; 361 | } 362 | .jstree-default > .jstree-wholerow-ul .jstree-hovered, 363 | .jstree-default > .jstree-wholerow-ul .jstree-clicked { 364 | background: transparent; 365 | box-shadow: none; 366 | border-radius: 0; 367 | } 368 | .jstree-default .jstree-wholerow { 369 | -moz-box-sizing: border-box; 370 | -webkit-box-sizing: border-box; 371 | box-sizing: border-box; 372 | } 373 | .jstree-default .jstree-wholerow-hovered { 374 | background: #e7f4f9; 375 | } 376 | .jstree-default .jstree-wholerow-clicked { 377 | background: #beebff; 378 | background: -moz-linear-gradient(top, #beebff 0%, #a8e4ff 100%); 379 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #beebff), color-stop(100%, #a8e4ff)); 380 | background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); 381 | background: -o-linear-gradient(top, #beebff 0%, #a8e4ff 100%); 382 | background: -ms-linear-gradient(top, #beebff 0%, #a8e4ff 100%); 383 | background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); 384 | /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@color1', endColorstr='@color2',GradientType=0 );*/ 385 | } 386 | .jstree-default .jstree-node { 387 | min-height: 24px; 388 | line-height: 24px; 389 | margin-left: 24px; 390 | min-width: 24px; 391 | } 392 | .jstree-default .jstree-anchor { 393 | line-height: 24px; 394 | height: 24px; 395 | } 396 | .jstree-default .jstree-icon { 397 | width: 24px; 398 | height: 24px; 399 | line-height: 24px; 400 | } 401 | .jstree-default .jstree-icon:empty { 402 | width: 24px; 403 | height: 24px; 404 | line-height: 24px; 405 | } 406 | .jstree-default.jstree-rtl .jstree-node { 407 | margin-right: 24px; 408 | } 409 | .jstree-default .jstree-wholerow { 410 | height: 24px; 411 | } 412 | .jstree-default .jstree-node, 413 | .jstree-default .jstree-icon { 414 | background-image: url("32px.png"); 415 | } 416 | .jstree-default .jstree-node { 417 | background-position: -292px -4px; 418 | background-repeat: repeat-y; 419 | } 420 | .jstree-default .jstree-last { 421 | background: transparent; 422 | } 423 | .jstree-default .jstree-open > .jstree-ocl { 424 | background-position: -132px -4px; 425 | } 426 | .jstree-default .jstree-closed > .jstree-ocl { 427 | background-position: -100px -4px; 428 | } 429 | .jstree-default .jstree-leaf > .jstree-ocl { 430 | background-position: -68px -4px; 431 | } 432 | .jstree-default .jstree-themeicon { 433 | background-position: -260px -4px; 434 | } 435 | .jstree-default > .jstree-no-dots .jstree-node, 436 | .jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { 437 | background: transparent; 438 | } 439 | .jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { 440 | background-position: -36px -4px; 441 | } 442 | .jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { 443 | background-position: -4px -4px; 444 | } 445 | .jstree-default .jstree-disabled { 446 | background: transparent; 447 | } 448 | .jstree-default .jstree-disabled.jstree-hovered { 449 | background: transparent; 450 | } 451 | .jstree-default .jstree-disabled.jstree-clicked { 452 | background: #efefef; 453 | } 454 | .jstree-default .jstree-checkbox { 455 | background-position: -164px -4px; 456 | } 457 | .jstree-default .jstree-checkbox:hover { 458 | background-position: -164px -36px; 459 | } 460 | .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 461 | .jstree-default .jstree-checked > .jstree-checkbox { 462 | background-position: -228px -4px; 463 | } 464 | .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 465 | .jstree-default .jstree-checked > .jstree-checkbox:hover { 466 | background-position: -228px -36px; 467 | } 468 | .jstree-default .jstree-anchor > .jstree-undetermined { 469 | background-position: -196px -4px; 470 | } 471 | .jstree-default .jstree-anchor > .jstree-undetermined:hover { 472 | background-position: -196px -36px; 473 | } 474 | .jstree-default > .jstree-striped { 475 | background-size: auto 48px; 476 | } 477 | .jstree-default.jstree-rtl .jstree-node { 478 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 479 | background-position: 100% 1px; 480 | background-repeat: repeat-y; 481 | } 482 | .jstree-default.jstree-rtl .jstree-last { 483 | background: transparent; 484 | } 485 | .jstree-default.jstree-rtl .jstree-open > .jstree-ocl { 486 | background-position: -132px -36px; 487 | } 488 | .jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { 489 | background-position: -100px -36px; 490 | } 491 | .jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { 492 | background-position: -68px -36px; 493 | } 494 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, 495 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 496 | background: transparent; 497 | } 498 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 499 | background-position: -36px -36px; 500 | } 501 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 502 | background-position: -4px -36px; 503 | } 504 | .jstree-default .jstree-themeicon-custom { 505 | background-color: transparent; 506 | background-image: none; 507 | background-position: 0 0; 508 | } 509 | .jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { 510 | background: url("throbber.gif") center center no-repeat; 511 | } 512 | .jstree-default .jstree-file { 513 | background: url("32px.png") -100px -68px no-repeat; 514 | } 515 | .jstree-default .jstree-folder { 516 | background: url("32px.png") -260px -4px no-repeat; 517 | } 518 | .jstree-default > .jstree-container-ul > .jstree-node { 519 | margin-left: 0; 520 | margin-right: 0; 521 | } 522 | #jstree-dnd.jstree-default { 523 | line-height: 24px; 524 | padding: 0 4px; 525 | } 526 | #jstree-dnd.jstree-default .jstree-ok, 527 | #jstree-dnd.jstree-default .jstree-er { 528 | background-image: url("32px.png"); 529 | background-repeat: no-repeat; 530 | background-color: transparent; 531 | } 532 | #jstree-dnd.jstree-default i { 533 | background: transparent; 534 | width: 24px; 535 | height: 24px; 536 | line-height: 24px; 537 | } 538 | #jstree-dnd.jstree-default .jstree-ok { 539 | background-position: -4px -68px; 540 | } 541 | #jstree-dnd.jstree-default .jstree-er { 542 | background-position: -36px -68px; 543 | } 544 | .jstree-default.jstree-rtl .jstree-node { 545 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 546 | } 547 | .jstree-default.jstree-rtl .jstree-last { 548 | background: transparent; 549 | } 550 | .jstree-default-small .jstree-node { 551 | min-height: 18px; 552 | line-height: 18px; 553 | margin-left: 18px; 554 | min-width: 18px; 555 | } 556 | .jstree-default-small .jstree-anchor { 557 | line-height: 18px; 558 | height: 18px; 559 | } 560 | .jstree-default-small .jstree-icon { 561 | width: 18px; 562 | height: 18px; 563 | line-height: 18px; 564 | } 565 | .jstree-default-small .jstree-icon:empty { 566 | width: 18px; 567 | height: 18px; 568 | line-height: 18px; 569 | } 570 | .jstree-default-small.jstree-rtl .jstree-node { 571 | margin-right: 18px; 572 | } 573 | .jstree-default-small .jstree-wholerow { 574 | height: 18px; 575 | } 576 | .jstree-default-small .jstree-node, 577 | .jstree-default-small .jstree-icon { 578 | background-image: url("32px.png"); 579 | } 580 | .jstree-default-small .jstree-node { 581 | background-position: -295px -7px; 582 | background-repeat: repeat-y; 583 | } 584 | .jstree-default-small .jstree-last { 585 | background: transparent; 586 | } 587 | .jstree-default-small .jstree-open > .jstree-ocl { 588 | background-position: -135px -7px; 589 | } 590 | .jstree-default-small .jstree-closed > .jstree-ocl { 591 | background-position: -103px -7px; 592 | } 593 | .jstree-default-small .jstree-leaf > .jstree-ocl { 594 | background-position: -71px -7px; 595 | } 596 | .jstree-default-small .jstree-themeicon { 597 | background-position: -263px -7px; 598 | } 599 | .jstree-default-small > .jstree-no-dots .jstree-node, 600 | .jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { 601 | background: transparent; 602 | } 603 | .jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { 604 | background-position: -39px -7px; 605 | } 606 | .jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { 607 | background-position: -7px -7px; 608 | } 609 | .jstree-default-small .jstree-disabled { 610 | background: transparent; 611 | } 612 | .jstree-default-small .jstree-disabled.jstree-hovered { 613 | background: transparent; 614 | } 615 | .jstree-default-small .jstree-disabled.jstree-clicked { 616 | background: #efefef; 617 | } 618 | .jstree-default-small .jstree-checkbox { 619 | background-position: -167px -7px; 620 | } 621 | .jstree-default-small .jstree-checkbox:hover { 622 | background-position: -167px -39px; 623 | } 624 | .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 625 | .jstree-default-small .jstree-checked > .jstree-checkbox { 626 | background-position: -231px -7px; 627 | } 628 | .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 629 | .jstree-default-small .jstree-checked > .jstree-checkbox:hover { 630 | background-position: -231px -39px; 631 | } 632 | .jstree-default-small .jstree-anchor > .jstree-undetermined { 633 | background-position: -199px -7px; 634 | } 635 | .jstree-default-small .jstree-anchor > .jstree-undetermined:hover { 636 | background-position: -199px -39px; 637 | } 638 | .jstree-default-small > .jstree-striped { 639 | background-size: auto 36px; 640 | } 641 | .jstree-default-small.jstree-rtl .jstree-node { 642 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 643 | background-position: 100% 1px; 644 | background-repeat: repeat-y; 645 | } 646 | .jstree-default-small.jstree-rtl .jstree-last { 647 | background: transparent; 648 | } 649 | .jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { 650 | background-position: -135px -39px; 651 | } 652 | .jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { 653 | background-position: -103px -39px; 654 | } 655 | .jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { 656 | background-position: -71px -39px; 657 | } 658 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, 659 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 660 | background: transparent; 661 | } 662 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 663 | background-position: -39px -39px; 664 | } 665 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 666 | background-position: -7px -39px; 667 | } 668 | .jstree-default-small .jstree-themeicon-custom { 669 | background-color: transparent; 670 | background-image: none; 671 | background-position: 0 0; 672 | } 673 | .jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { 674 | background: url("throbber.gif") center center no-repeat; 675 | } 676 | .jstree-default-small .jstree-file { 677 | background: url("32px.png") -103px -71px no-repeat; 678 | } 679 | .jstree-default-small .jstree-folder { 680 | background: url("32px.png") -263px -7px no-repeat; 681 | } 682 | .jstree-default-small > .jstree-container-ul > .jstree-node { 683 | margin-left: 0; 684 | margin-right: 0; 685 | } 686 | #jstree-dnd.jstree-default-small { 687 | line-height: 18px; 688 | padding: 0 4px; 689 | } 690 | #jstree-dnd.jstree-default-small .jstree-ok, 691 | #jstree-dnd.jstree-default-small .jstree-er { 692 | background-image: url("32px.png"); 693 | background-repeat: no-repeat; 694 | background-color: transparent; 695 | } 696 | #jstree-dnd.jstree-default-small i { 697 | background: transparent; 698 | width: 18px; 699 | height: 18px; 700 | line-height: 18px; 701 | } 702 | #jstree-dnd.jstree-default-small .jstree-ok { 703 | background-position: -7px -71px; 704 | } 705 | #jstree-dnd.jstree-default-small .jstree-er { 706 | background-position: -39px -71px; 707 | } 708 | .jstree-default-small.jstree-rtl .jstree-node { 709 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); 710 | } 711 | .jstree-default-small.jstree-rtl .jstree-last { 712 | background: transparent; 713 | } 714 | .jstree-default-large .jstree-node { 715 | min-height: 32px; 716 | line-height: 32px; 717 | margin-left: 32px; 718 | min-width: 32px; 719 | } 720 | .jstree-default-large .jstree-anchor { 721 | line-height: 32px; 722 | height: 32px; 723 | } 724 | .jstree-default-large .jstree-icon { 725 | width: 32px; 726 | height: 32px; 727 | line-height: 32px; 728 | } 729 | .jstree-default-large .jstree-icon:empty { 730 | width: 32px; 731 | height: 32px; 732 | line-height: 32px; 733 | } 734 | .jstree-default-large.jstree-rtl .jstree-node { 735 | margin-right: 32px; 736 | } 737 | .jstree-default-large .jstree-wholerow { 738 | height: 32px; 739 | } 740 | .jstree-default-large .jstree-node, 741 | .jstree-default-large .jstree-icon { 742 | background-image: url("32px.png"); 743 | } 744 | .jstree-default-large .jstree-node { 745 | background-position: -288px 0px; 746 | background-repeat: repeat-y; 747 | } 748 | .jstree-default-large .jstree-last { 749 | background: transparent; 750 | } 751 | .jstree-default-large .jstree-open > .jstree-ocl { 752 | background-position: -128px 0px; 753 | } 754 | .jstree-default-large .jstree-closed > .jstree-ocl { 755 | background-position: -96px 0px; 756 | } 757 | .jstree-default-large .jstree-leaf > .jstree-ocl { 758 | background-position: -64px 0px; 759 | } 760 | .jstree-default-large .jstree-themeicon { 761 | background-position: -256px 0px; 762 | } 763 | .jstree-default-large > .jstree-no-dots .jstree-node, 764 | .jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { 765 | background: transparent; 766 | } 767 | .jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { 768 | background-position: -32px 0px; 769 | } 770 | .jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { 771 | background-position: 0px 0px; 772 | } 773 | .jstree-default-large .jstree-disabled { 774 | background: transparent; 775 | } 776 | .jstree-default-large .jstree-disabled.jstree-hovered { 777 | background: transparent; 778 | } 779 | .jstree-default-large .jstree-disabled.jstree-clicked { 780 | background: #efefef; 781 | } 782 | .jstree-default-large .jstree-checkbox { 783 | background-position: -160px 0px; 784 | } 785 | .jstree-default-large .jstree-checkbox:hover { 786 | background-position: -160px -32px; 787 | } 788 | .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 789 | .jstree-default-large .jstree-checked > .jstree-checkbox { 790 | background-position: -224px 0px; 791 | } 792 | .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 793 | .jstree-default-large .jstree-checked > .jstree-checkbox:hover { 794 | background-position: -224px -32px; 795 | } 796 | .jstree-default-large .jstree-anchor > .jstree-undetermined { 797 | background-position: -192px 0px; 798 | } 799 | .jstree-default-large .jstree-anchor > .jstree-undetermined:hover { 800 | background-position: -192px -32px; 801 | } 802 | .jstree-default-large > .jstree-striped { 803 | background-size: auto 64px; 804 | } 805 | .jstree-default-large.jstree-rtl .jstree-node { 806 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 807 | background-position: 100% 1px; 808 | background-repeat: repeat-y; 809 | } 810 | .jstree-default-large.jstree-rtl .jstree-last { 811 | background: transparent; 812 | } 813 | .jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { 814 | background-position: -128px -32px; 815 | } 816 | .jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { 817 | background-position: -96px -32px; 818 | } 819 | .jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { 820 | background-position: -64px -32px; 821 | } 822 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, 823 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 824 | background: transparent; 825 | } 826 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 827 | background-position: -32px -32px; 828 | } 829 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 830 | background-position: 0px -32px; 831 | } 832 | .jstree-default-large .jstree-themeicon-custom { 833 | background-color: transparent; 834 | background-image: none; 835 | background-position: 0 0; 836 | } 837 | .jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { 838 | background: url("throbber.gif") center center no-repeat; 839 | } 840 | .jstree-default-large .jstree-file { 841 | background: url("32px.png") -96px -64px no-repeat; 842 | } 843 | .jstree-default-large .jstree-folder { 844 | background: url("32px.png") -256px 0px no-repeat; 845 | } 846 | .jstree-default-large > .jstree-container-ul > .jstree-node { 847 | margin-left: 0; 848 | margin-right: 0; 849 | } 850 | #jstree-dnd.jstree-default-large { 851 | line-height: 32px; 852 | padding: 0 4px; 853 | } 854 | #jstree-dnd.jstree-default-large .jstree-ok, 855 | #jstree-dnd.jstree-default-large .jstree-er { 856 | background-image: url("32px.png"); 857 | background-repeat: no-repeat; 858 | background-color: transparent; 859 | } 860 | #jstree-dnd.jstree-default-large i { 861 | background: transparent; 862 | width: 32px; 863 | height: 32px; 864 | line-height: 32px; 865 | } 866 | #jstree-dnd.jstree-default-large .jstree-ok { 867 | background-position: 0px -64px; 868 | } 869 | #jstree-dnd.jstree-default-large .jstree-er { 870 | background-position: -32px -64px; 871 | } 872 | .jstree-default-large.jstree-rtl .jstree-node { 873 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); 874 | } 875 | .jstree-default-large.jstree-rtl .jstree-last { 876 | background: transparent; 877 | } 878 | @media (max-width: 768px) { 879 | #jstree-dnd.jstree-dnd-responsive { 880 | line-height: 40px; 881 | font-weight: bold; 882 | font-size: 1.1em; 883 | text-shadow: 1px 1px white; 884 | } 885 | #jstree-dnd.jstree-dnd-responsive > i { 886 | background: transparent; 887 | width: 40px; 888 | height: 40px; 889 | } 890 | #jstree-dnd.jstree-dnd-responsive > .jstree-ok { 891 | background-image: url("40px.png"); 892 | background-position: 0 -200px; 893 | background-size: 120px 240px; 894 | } 895 | #jstree-dnd.jstree-dnd-responsive > .jstree-er { 896 | background-image: url("40px.png"); 897 | background-position: -40px -200px; 898 | background-size: 120px 240px; 899 | } 900 | #jstree-marker.jstree-dnd-responsive { 901 | border-left-width: 10px; 902 | border-top-width: 10px; 903 | border-bottom-width: 10px; 904 | margin-top: -10px; 905 | } 906 | } 907 | @media (max-width: 768px) { 908 | .jstree-default-responsive { 909 | /* 910 | .jstree-open > .jstree-ocl, 911 | .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } 912 | */ 913 | } 914 | .jstree-default-responsive .jstree-icon { 915 | background-image: url("40px.png"); 916 | } 917 | .jstree-default-responsive .jstree-node, 918 | .jstree-default-responsive .jstree-leaf > .jstree-ocl { 919 | background: transparent; 920 | } 921 | .jstree-default-responsive .jstree-node { 922 | min-height: 40px; 923 | line-height: 40px; 924 | margin-left: 40px; 925 | min-width: 40px; 926 | white-space: nowrap; 927 | } 928 | .jstree-default-responsive .jstree-anchor { 929 | line-height: 40px; 930 | height: 40px; 931 | } 932 | .jstree-default-responsive .jstree-icon, 933 | .jstree-default-responsive .jstree-icon:empty { 934 | width: 40px; 935 | height: 40px; 936 | line-height: 40px; 937 | } 938 | .jstree-default-responsive > .jstree-container-ul > .jstree-node { 939 | margin-left: 0; 940 | } 941 | .jstree-default-responsive.jstree-rtl .jstree-node { 942 | margin-left: 0; 943 | margin-right: 40px; 944 | } 945 | .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { 946 | margin-right: 0; 947 | } 948 | .jstree-default-responsive .jstree-ocl, 949 | .jstree-default-responsive .jstree-themeicon, 950 | .jstree-default-responsive .jstree-checkbox { 951 | background-size: 120px 240px; 952 | } 953 | .jstree-default-responsive .jstree-leaf > .jstree-ocl { 954 | background: transparent; 955 | } 956 | .jstree-default-responsive .jstree-open > .jstree-ocl { 957 | background-position: 0 0px !important; 958 | } 959 | .jstree-default-responsive .jstree-closed > .jstree-ocl { 960 | background-position: 0 -40px !important; 961 | } 962 | .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { 963 | background-position: -40px 0px !important; 964 | } 965 | .jstree-default-responsive .jstree-themeicon { 966 | background-position: -40px -40px; 967 | } 968 | .jstree-default-responsive .jstree-checkbox, 969 | .jstree-default-responsive .jstree-checkbox:hover { 970 | background-position: -40px -80px; 971 | } 972 | .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 973 | .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 974 | .jstree-default-responsive .jstree-checked > .jstree-checkbox, 975 | .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { 976 | background-position: 0 -80px; 977 | } 978 | .jstree-default-responsive .jstree-anchor > .jstree-undetermined, 979 | .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { 980 | background-position: 0 -120px; 981 | } 982 | .jstree-default-responsive .jstree-anchor { 983 | font-weight: bold; 984 | font-size: 1.1em; 985 | text-shadow: 1px 1px white; 986 | } 987 | .jstree-default-responsive > .jstree-striped { 988 | background: transparent; 989 | } 990 | .jstree-default-responsive .jstree-wholerow { 991 | border-top: 1px solid rgba(255, 255, 255, 0.7); 992 | border-bottom: 1px solid rgba(64, 64, 64, 0.2); 993 | background: #ebebeb; 994 | height: 40px; 995 | } 996 | .jstree-default-responsive .jstree-wholerow-hovered { 997 | background: #e7f4f9; 998 | } 999 | .jstree-default-responsive .jstree-wholerow-clicked { 1000 | background: #beebff; 1001 | } 1002 | .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { 1003 | box-shadow: inset 0 -6px 3px -5px #666666; 1004 | } 1005 | .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { 1006 | box-shadow: inset 0 6px 3px -5px #666666; 1007 | border-top: 0; 1008 | } 1009 | .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { 1010 | box-shadow: none; 1011 | } 1012 | .jstree-default-responsive .jstree-node, 1013 | .jstree-default-responsive .jstree-icon, 1014 | .jstree-default-responsive .jstree-node > .jstree-ocl, 1015 | .jstree-default-responsive .jstree-themeicon, 1016 | .jstree-default-responsive .jstree-checkbox { 1017 | background-image: url("40px.png"); 1018 | background-size: 120px 240px; 1019 | } 1020 | .jstree-default-responsive .jstree-node { 1021 | background-position: -80px 0; 1022 | background-repeat: repeat-y; 1023 | } 1024 | .jstree-default-responsive .jstree-last { 1025 | background: transparent; 1026 | } 1027 | .jstree-default-responsive .jstree-leaf > .jstree-ocl { 1028 | background-position: -40px -120px; 1029 | } 1030 | .jstree-default-responsive .jstree-last > .jstree-ocl { 1031 | background-position: -40px -160px; 1032 | } 1033 | .jstree-default-responsive .jstree-themeicon-custom { 1034 | background-color: transparent; 1035 | background-image: none; 1036 | background-position: 0 0; 1037 | } 1038 | .jstree-default-responsive .jstree-file { 1039 | background: url("40px.png") 0 -160px no-repeat; 1040 | background-size: 120px 240px; 1041 | } 1042 | .jstree-default-responsive .jstree-folder { 1043 | background: url("40px.png") -40px -40px no-repeat; 1044 | background-size: 120px 240px; 1045 | } 1046 | .jstree-default-responsive > .jstree-container-ul > .jstree-node { 1047 | margin-left: 0; 1048 | margin-right: 0; 1049 | } 1050 | } 1051 | -------------------------------------------------------------------------------- /css/themes/proton/style.css: -------------------------------------------------------------------------------- 1 | /* jsTree default theme */ 2 | .jstree-node, 3 | .jstree-children, 4 | .jstree-container-ul { 5 | display: block; 6 | margin: 0; 7 | padding: 0; 8 | list-style-type: none; 9 | list-style-image: none; 10 | } 11 | .jstree-node { 12 | white-space: nowrap; 13 | } 14 | .jstree-anchor { 15 | display: inline-block; 16 | color: #333; 17 | white-space: nowrap; 18 | padding: 0 4px 0 1px; 19 | margin: 0; 20 | vertical-align: top; 21 | } 22 | .jstree-anchor:focus { 23 | outline: 0; 24 | } 25 | .jstree-anchor, 26 | .jstree-anchor:link, 27 | .jstree-anchor:visited, 28 | .jstree-anchor:hover, 29 | .jstree-anchor:active { 30 | text-decoration: none; 31 | color: inherit; 32 | } 33 | .jstree-icon { 34 | display: inline-block; 35 | text-decoration: none; 36 | margin: 0; 37 | padding: 0; 38 | vertical-align: top; 39 | text-align: center; 40 | } 41 | .jstree-icon:empty { 42 | display: inline-block; 43 | text-decoration: none; 44 | margin: 0; 45 | padding: 0; 46 | vertical-align: top; 47 | text-align: center; 48 | } 49 | .jstree-ocl { 50 | cursor: pointer; 51 | } 52 | .jstree-leaf > .jstree-ocl { 53 | cursor: default; 54 | } 55 | .jstree .jstree-open > .jstree-children { 56 | display: block; 57 | } 58 | .jstree .jstree-closed > .jstree-children, 59 | .jstree .jstree-leaf > .jstree-children { 60 | display: none; 61 | } 62 | .jstree-anchor > .jstree-themeicon { 63 | margin-right: 2px; 64 | } 65 | .jstree-no-icons .jstree-themeicon, 66 | .jstree-anchor > .jstree-themeicon-hidden { 67 | display: none; 68 | } 69 | .jstree-rtl .jstree-anchor { 70 | padding: 0 1px 0 4px; 71 | } 72 | .jstree-rtl .jstree-anchor > .jstree-themeicon { 73 | margin-left: 2px; 74 | margin-right: 0; 75 | } 76 | .jstree-rtl .jstree-node { 77 | margin-left: 0; 78 | } 79 | .jstree-rtl .jstree-container-ul > .jstree-node { 80 | margin-right: 0; 81 | } 82 | .jstree-wholerow-ul { 83 | position: relative; 84 | display: inline-block; 85 | min-width: 100%; 86 | } 87 | .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { 88 | cursor: pointer; 89 | } 90 | .jstree-wholerow-ul .jstree-anchor, 91 | .jstree-wholerow-ul .jstree-icon { 92 | position: relative; 93 | } 94 | .jstree-wholerow-ul .jstree-wholerow { 95 | width: 100%; 96 | cursor: pointer; 97 | position: absolute; 98 | left: 0; 99 | -webkit-user-select: none; 100 | -moz-user-select: none; 101 | -ms-user-select: none; 102 | user-select: none; 103 | } 104 | .vakata-context { 105 | display: none; 106 | } 107 | .vakata-context, 108 | .vakata-context ul { 109 | margin: 0; 110 | padding: 2px; 111 | position: absolute; 112 | background: #f5f5f5; 113 | border: 1px solid #979797; 114 | -moz-box-shadow: 5px 5px 4px -4px #666666; 115 | -webkit-box-shadow: 2px 2px 2px #999999; 116 | box-shadow: 2px 2px 2px #999999; 117 | } 118 | .vakata-context ul { 119 | list-style: none; 120 | left: 100%; 121 | margin-top: -2.7em; 122 | margin-left: -4px; 123 | } 124 | .vakata-context .vakata-context-right ul { 125 | left: auto; 126 | right: 100%; 127 | margin-left: auto; 128 | margin-right: -4px; 129 | } 130 | .vakata-context li { 131 | list-style: none; 132 | display: inline; 133 | } 134 | .vakata-context li > a { 135 | display: block; 136 | padding: 0 2em 0 2em; 137 | text-decoration: none; 138 | width: auto; 139 | color: black; 140 | white-space: nowrap; 141 | line-height: 2.4em; 142 | -moz-text-shadow: 1px 1px 0 white; 143 | -webkit-text-shadow: 1px 1px 0 white; 144 | text-shadow: 1px 1px 0 white; 145 | -moz-border-radius: 1px; 146 | -webkit-border-radius: 1px; 147 | border-radius: 1px; 148 | } 149 | .vakata-context li > a:hover { 150 | position: relative; 151 | background-color: #e8eff7; 152 | -moz-box-shadow: 0 0 2px #0a6aa1; 153 | -webkit-box-shadow: 0 0 2px #0a6aa1; 154 | box-shadow: 0 0 2px #0a6aa1; 155 | } 156 | .vakata-context li > a.vakata-context-parent { 157 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); 158 | background-position: right center; 159 | background-repeat: no-repeat; 160 | } 161 | .vakata-context li > a:focus { 162 | outline: 0; 163 | } 164 | .vakata-context .vakata-context-hover > a { 165 | position: relative; 166 | background-color: #e8eff7; 167 | -moz-box-shadow: 0 0 2px #0a6aa1; 168 | -webkit-box-shadow: 0 0 2px #0a6aa1; 169 | box-shadow: 0 0 2px #0a6aa1; 170 | } 171 | .vakata-context .vakata-context-separator > a, 172 | .vakata-context .vakata-context-separator > a:hover { 173 | background: white; 174 | border: 0; 175 | border-top: 1px solid #e2e3e3; 176 | height: 1px; 177 | min-height: 1px; 178 | max-height: 1px; 179 | padding: 0; 180 | margin: 0 0 0 2.4em; 181 | border-left: 1px solid #e0e0e0; 182 | -moz-text-shadow: 0 0 0 transparent; 183 | -webkit-text-shadow: 0 0 0 transparent; 184 | text-shadow: 0 0 0 transparent; 185 | -moz-box-shadow: 0 0 0 transparent; 186 | -webkit-box-shadow: 0 0 0 transparent; 187 | box-shadow: 0 0 0 transparent; 188 | -moz-border-radius: 0; 189 | -webkit-border-radius: 0; 190 | border-radius: 0; 191 | } 192 | .vakata-context .vakata-contextmenu-disabled a, 193 | .vakata-context .vakata-contextmenu-disabled a:hover { 194 | color: silver; 195 | background-color: transparent; 196 | border: 0; 197 | box-shadow: 0 0 0; 198 | } 199 | .vakata-context li > a > i { 200 | text-decoration: none; 201 | display: inline-block; 202 | width: 2.4em; 203 | height: 2.4em; 204 | background: transparent; 205 | margin: 0 0 0 -2em; 206 | vertical-align: top; 207 | text-align: center; 208 | line-height: 2.4em; 209 | } 210 | .vakata-context li > a > i:empty { 211 | width: 2.4em; 212 | line-height: 2.4em; 213 | } 214 | .vakata-context li > a .vakata-contextmenu-sep { 215 | display: inline-block; 216 | width: 1px; 217 | height: 2.4em; 218 | background: white; 219 | margin: 0 0.5em 0 0; 220 | border-left: 1px solid #e2e3e3; 221 | } 222 | .vakata-context .vakata-contextmenu-shortcut { 223 | font-size: 0.8em; 224 | color: silver; 225 | opacity: 0.5; 226 | display: none; 227 | } 228 | .vakata-context-rtl ul { 229 | left: auto; 230 | right: 100%; 231 | margin-left: auto; 232 | margin-right: -4px; 233 | } 234 | .vakata-context-rtl li > a.vakata-context-parent { 235 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); 236 | background-position: left center; 237 | background-repeat: no-repeat; 238 | } 239 | .vakata-context-rtl .vakata-context-separator > a { 240 | margin: 0 2.4em 0 0; 241 | border-left: 0; 242 | border-right: 1px solid #e2e3e3; 243 | } 244 | .vakata-context-rtl .vakata-context-left ul { 245 | right: auto; 246 | left: 100%; 247 | margin-left: -4px; 248 | margin-right: auto; 249 | } 250 | .vakata-context-rtl li > a > i { 251 | margin: 0 -2em 0 0; 252 | } 253 | .vakata-context-rtl li > a .vakata-contextmenu-sep { 254 | margin: 0 0 0 0.5em; 255 | border-left-color: white; 256 | background: #e2e3e3; 257 | } 258 | #jstree-marker { 259 | position: absolute; 260 | top: 0; 261 | left: 0; 262 | margin: -5px 0 0 0; 263 | padding: 0; 264 | border-right: 0; 265 | border-top: 5px solid transparent; 266 | border-bottom: 5px solid transparent; 267 | border-left: 5px solid; 268 | width: 0; 269 | height: 0; 270 | font-size: 0; 271 | line-height: 0; 272 | } 273 | #jstree-dnd { 274 | line-height: 16px; 275 | margin: 0; 276 | padding: 4px; 277 | } 278 | #jstree-dnd .jstree-icon, 279 | #jstree-dnd .jstree-copy { 280 | display: inline-block; 281 | text-decoration: none; 282 | margin: 0 2px 0 0; 283 | padding: 0; 284 | width: 16px; 285 | height: 16px; 286 | } 287 | #jstree-dnd .jstree-ok { 288 | background: green; 289 | } 290 | #jstree-dnd .jstree-er { 291 | background: red; 292 | } 293 | #jstree-dnd .jstree-copy { 294 | margin: 0 2px 0 2px; 295 | } 296 | .jstree-proton .jstree-node, 297 | .jstree-proton .jstree-icon { 298 | background-repeat: no-repeat; 299 | background-color: transparent; 300 | } 301 | .jstree-proton .jstree-anchor, 302 | .jstree-proton .jstree-wholerow { 303 | transition: background-color 0.15s, box-shadow 0.15s, color 0.15s; 304 | } 305 | .jstree-proton .jstree-hovered { 306 | background: #76b6ec; 307 | color: #ffffff; 308 | border-radius: 3px; 309 | box-shadow: inset 0 0 1px #76b6ec; 310 | } 311 | .jstree-proton .jstree-clicked { 312 | background: #3392e3; 313 | color: #ffffff; 314 | border-radius: 3px; 315 | box-shadow: inset 0 0 1px #3392e3; 316 | } 317 | .jstree-proton .jstree-no-icons .jstree-anchor > .jstree-themeicon { 318 | display: none; 319 | } 320 | .jstree-proton .jstree-disabled { 321 | background: transparent; 322 | color: #666666; 323 | } 324 | .jstree-proton .jstree-disabled.jstree-hovered { 325 | background: transparent; 326 | box-shadow: none; 327 | } 328 | .jstree-proton .jstree-disabled.jstree-clicked { 329 | background: #efefef; 330 | } 331 | .jstree-proton .jstree-disabled > .jstree-icon { 332 | opacity: 0.8; 333 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 334 | /* Firefox 10+ * 335 | filter: gray; 336 | /* IE6-9 */ 337 | -webkit-filter: grayscale(100%); 338 | /* Chrome 19+ & Safari 6+ */ 339 | } 340 | .jstree-proton .jstree-search { 341 | font-style: italic; 342 | color: #8b0000; 343 | font-weight: bold; 344 | } 345 | .jstree-proton .jstree-no-checkboxes .jstree-checkbox { 346 | display: none !important; 347 | } 348 | .jstree-proton.jstree-checkbox-no-clicked .jstree-clicked { 349 | background: transparent; 350 | color: inherit; 351 | box-shadow: none; 352 | } 353 | .jstree-proton.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { 354 | background: #76b6ec; 355 | color: #ffffff; 356 | } 357 | .jstree-proton.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { 358 | background: transparent; 359 | color: inherit; 360 | } 361 | .jstree-proton.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { 362 | background: #76b6ec; 363 | color: #ffffff; 364 | } 365 | .jstree-proton > .jstree-striped { 366 | background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; 367 | } 368 | .jstree-proton > .jstree-wholerow-ul .jstree-hovered, 369 | .jstree-proton > .jstree-wholerow-ul .jstree-clicked { 370 | background: transparent; 371 | box-shadow: none; 372 | border-radius: 0; 373 | } 374 | .jstree-proton .jstree-wholerow { 375 | -moz-box-sizing: border-box; 376 | -webkit-box-sizing: border-box; 377 | box-sizing: border-box; 378 | } 379 | .jstree-proton .jstree-wholerow-hovered { 380 | background: #76b6ec; 381 | } 382 | .jstree-proton .jstree-wholerow-clicked { 383 | background: #3392e3; 384 | background: -moz-linear-gradient(top, #3392e3 0%, #3392e3 100%); 385 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #3392e3), color-stop(100%, #3392e3)); 386 | background: -webkit-linear-gradient(top, #3392e3 0%, #3392e3 100%); 387 | background: -o-linear-gradient(top, #3392e3 0%, #3392e3 100%); 388 | background: -ms-linear-gradient(top, #3392e3 0%, #3392e3 100%); 389 | background: linear-gradient(to bottom, #3392e3 0%, #3392e3 100%); 390 | /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='@color1', endColorstr='@color2',GradientType=0 );*/ 391 | } 392 | .jstree-proton .jstree-node { 393 | min-height: 22px; 394 | line-height: 22px; 395 | margin-left: 22px; 396 | min-width: 22px; 397 | } 398 | .jstree-proton .jstree-anchor { 399 | line-height: 22px; 400 | margin: 1px 0 2px; 401 | height: 22px; 402 | } 403 | .jstree-proton .jstree-icon { 404 | width: 22px; 405 | height: 22px; 406 | line-height: 22px; 407 | } 408 | .jstree-proton .jstree-icon:empty { 409 | width: 22px; 410 | height: 22px; 411 | line-height: 22px; 412 | } 413 | .jstree-proton.jstree-rtl .jstree-node { 414 | margin-right: 22px; 415 | } 416 | .jstree-proton .jstree-wholerow { 417 | height: 22px; 418 | } 419 | .jstree-proton .jstree-node, 420 | .jstree-proton .jstree-icon { 421 | background-size: 320px 96px; 422 | background-image: url("32px.png"); 423 | } 424 | .jstree-proton .jstree-node { 425 | background-position: -293px -5px; 426 | background-repeat: repeat-y; 427 | } 428 | .jstree-proton .jstree-last { 429 | background: transparent; 430 | } 431 | .jstree-proton .jstree-open > .jstree-ocl { 432 | background-position: -133px -5px; 433 | } 434 | .jstree-proton .jstree-closed > .jstree-ocl { 435 | background-position: -101px -5px; 436 | } 437 | .jstree-proton .jstree-leaf > .jstree-ocl { 438 | background-position: -69px -5px; 439 | } 440 | .jstree-proton .jstree-themeicon { 441 | background-position: -261px -7px; 442 | } 443 | .jstree-proton > .jstree-no-dots .jstree-node, 444 | .jstree-proton > .jstree-no-dots .jstree-leaf > .jstree-ocl { 445 | background: transparent; 446 | } 447 | .jstree-proton > .jstree-no-dots .jstree-open > .jstree-ocl { 448 | background-position: -37px -5px; 449 | } 450 | .jstree-proton > .jstree-no-dots .jstree-closed > .jstree-ocl { 451 | background-position: -5px -5px; 452 | } 453 | .jstree-proton .jstree-disabled { 454 | background: transparent; 455 | } 456 | .jstree-proton .jstree-disabled.jstree-hovered { 457 | background: transparent; 458 | } 459 | .jstree-proton .jstree-disabled.jstree-clicked { 460 | background: #efefef; 461 | } 462 | .jstree-proton .jstree-checkbox { 463 | background-position: -165px -5px; 464 | } 465 | .jstree-proton .jstree-checkbox:hover { 466 | background-position: -165px -37px; 467 | } 468 | .jstree-proton.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 469 | .jstree-proton .jstree-checked > .jstree-checkbox { 470 | background-position: -229px -5px; 471 | } 472 | .jstree-proton.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 473 | .jstree-proton .jstree-checked > .jstree-checkbox:hover { 474 | background-position: -229px -37px; 475 | } 476 | .jstree-proton .jstree-anchor > .jstree-undetermined { 477 | background-position: -197px -5px; 478 | } 479 | .jstree-proton .jstree-anchor > .jstree-undetermined:hover { 480 | background-position: -197px -37px; 481 | } 482 | .jstree-proton > .jstree-striped { 483 | background-size: auto 44px; 484 | } 485 | .jstree-proton.jstree-rtl .jstree-node { 486 | background-size: 320px 96px; 487 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 488 | background-position: 100% 1px; 489 | background-repeat: repeat-y; 490 | } 491 | .jstree-proton.jstree-rtl .jstree-last { 492 | background: transparent; 493 | } 494 | .jstree-proton.jstree-rtl .jstree-open > .jstree-ocl { 495 | background-position: -133px -37px; 496 | } 497 | .jstree-proton.jstree-rtl .jstree-closed > .jstree-ocl { 498 | background-position: -101px -37px; 499 | } 500 | .jstree-proton.jstree-rtl .jstree-leaf > .jstree-ocl { 501 | background-position: -69px -37px; 502 | } 503 | .jstree-proton.jstree-rtl > .jstree-no-dots .jstree-node, 504 | .jstree-proton.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 505 | background: transparent; 506 | } 507 | .jstree-proton.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 508 | background-position: -37px -37px; 509 | } 510 | .jstree-proton.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 511 | background-position: -5px -37px; 512 | } 513 | .jstree-proton .jstree-themeicon-custom { 514 | background-color: transparent; 515 | background-size: 320px 96px; 516 | background-image: none; 517 | background-position: 0 0; 518 | } 519 | .jstree-proton > .jstree-container-ul .jstree-loading > .jstree-ocl { 520 | background: url("throbber.gif") center center no-repeat; 521 | } 522 | .jstree-proton .jstree-file { 523 | background: url("32px.png") -101px -69px no-repeat; 524 | } 525 | .jstree-proton .jstree-folder { 526 | background: url("32px.png") -261px -5px no-repeat; 527 | } 528 | .jstree-proton > .jstree-container-ul > .jstree-node { 529 | margin-left: 0; 530 | margin-right: 0; 531 | } 532 | #jstree-dnd.jstree-proton { 533 | line-height: 22px; 534 | padding: 0 4px; 535 | } 536 | #jstree-dnd.jstree-proton .jstree-ok, 537 | #jstree-dnd.jstree-proton .jstree-er { 538 | background-size: 320px 96px; 539 | background-image: url("32px.png"); 540 | background-repeat: no-repeat; 541 | background-color: transparent; 542 | } 543 | #jstree-dnd.jstree-proton i { 544 | background: transparent; 545 | width: 22px; 546 | height: 22px; 547 | line-height: 22px; 548 | } 549 | #jstree-dnd.jstree-proton .jstree-ok { 550 | background-position: -5px -69px; 551 | } 552 | #jstree-dnd.jstree-proton .jstree-er { 553 | background-position: -37px -69px; 554 | } 555 | .jstree-proton.jstree-rtl .jstree-node { 556 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 557 | } 558 | .jstree-proton.jstree-rtl .jstree-last { 559 | background: transparent; 560 | } 561 | .jstree-proton-small .jstree-node { 562 | min-height: 18px; 563 | line-height: 18px; 564 | margin-left: 18px; 565 | min-width: 18px; 566 | } 567 | .jstree-proton-small .jstree-anchor { 568 | line-height: 18px; 569 | margin: 1px 0 2px; 570 | height: 18px; 571 | } 572 | .jstree-proton-small .jstree-icon { 573 | width: 18px; 574 | height: 18px; 575 | line-height: 18px; 576 | } 577 | .jstree-proton-small .jstree-icon:empty { 578 | width: 18px; 579 | height: 18px; 580 | line-height: 18px; 581 | } 582 | .jstree-proton-small.jstree-rtl .jstree-node { 583 | margin-right: 18px; 584 | } 585 | .jstree-proton-small .jstree-wholerow { 586 | height: 18px; 587 | } 588 | .jstree-proton-small .jstree-node, 589 | .jstree-proton-small .jstree-icon { 590 | background-size: 320px 96px; 591 | background-image: url("32px.png"); 592 | } 593 | .jstree-proton-small .jstree-node { 594 | background-position: -295px -7px; 595 | background-repeat: repeat-y; 596 | } 597 | .jstree-proton-small .jstree-last { 598 | background: transparent; 599 | } 600 | .jstree-proton-small .jstree-open > .jstree-ocl { 601 | background-position: -135px -7px; 602 | } 603 | .jstree-proton-small .jstree-closed > .jstree-ocl { 604 | background-position: -103px -7px; 605 | } 606 | .jstree-proton-small .jstree-leaf > .jstree-ocl { 607 | background-position: -71px -7px; 608 | } 609 | .jstree-proton-small .jstree-themeicon { 610 | background-position: -263px -9px; 611 | } 612 | .jstree-proton-small > .jstree-no-dots .jstree-node, 613 | .jstree-proton-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { 614 | background: transparent; 615 | } 616 | .jstree-proton-small > .jstree-no-dots .jstree-open > .jstree-ocl { 617 | background-position: -39px -7px; 618 | } 619 | .jstree-proton-small > .jstree-no-dots .jstree-closed > .jstree-ocl { 620 | background-position: -7px -7px; 621 | } 622 | .jstree-proton-small .jstree-disabled { 623 | background: transparent; 624 | } 625 | .jstree-proton-small .jstree-disabled.jstree-hovered { 626 | background: transparent; 627 | } 628 | .jstree-proton-small .jstree-disabled.jstree-clicked { 629 | background: #efefef; 630 | } 631 | .jstree-proton-small .jstree-checkbox { 632 | background-position: -167px -7px; 633 | } 634 | .jstree-proton-small .jstree-checkbox:hover { 635 | background-position: -167px -39px; 636 | } 637 | .jstree-proton-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 638 | .jstree-proton-small .jstree-checked > .jstree-checkbox { 639 | background-position: -231px -7px; 640 | } 641 | .jstree-proton-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 642 | .jstree-proton-small .jstree-checked > .jstree-checkbox:hover { 643 | background-position: -231px -39px; 644 | } 645 | .jstree-proton-small .jstree-anchor > .jstree-undetermined { 646 | background-position: -199px -7px; 647 | } 648 | .jstree-proton-small .jstree-anchor > .jstree-undetermined:hover { 649 | background-position: -199px -39px; 650 | } 651 | .jstree-proton-small > .jstree-striped { 652 | background-size: auto 36px; 653 | } 654 | .jstree-proton-small.jstree-rtl .jstree-node { 655 | background-size: 320px 96px; 656 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 657 | background-position: 100% 1px; 658 | background-repeat: repeat-y; 659 | } 660 | .jstree-proton-small.jstree-rtl .jstree-last { 661 | background: transparent; 662 | } 663 | .jstree-proton-small.jstree-rtl .jstree-open > .jstree-ocl { 664 | background-position: -135px -39px; 665 | } 666 | .jstree-proton-small.jstree-rtl .jstree-closed > .jstree-ocl { 667 | background-position: -103px -39px; 668 | } 669 | .jstree-proton-small.jstree-rtl .jstree-leaf > .jstree-ocl { 670 | background-position: -71px -39px; 671 | } 672 | .jstree-proton-small.jstree-rtl > .jstree-no-dots .jstree-node, 673 | .jstree-proton-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 674 | background: transparent; 675 | } 676 | .jstree-proton-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 677 | background-position: -39px -39px; 678 | } 679 | .jstree-proton-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 680 | background-position: -7px -39px; 681 | } 682 | .jstree-proton-small .jstree-themeicon-custom { 683 | background-color: transparent; 684 | background-size: 320px 96px; 685 | background-image: none; 686 | background-position: 0 0; 687 | } 688 | .jstree-proton-small > .jstree-container-ul .jstree-loading > .jstree-ocl { 689 | background: url("throbber.gif") center center no-repeat; 690 | } 691 | .jstree-proton-small .jstree-file { 692 | background: url("32px.png") -103px -71px no-repeat; 693 | } 694 | .jstree-proton-small .jstree-folder { 695 | background: url("32px.png") -263px -7px no-repeat; 696 | } 697 | .jstree-proton-small > .jstree-container-ul > .jstree-node { 698 | margin-left: 0; 699 | margin-right: 0; 700 | } 701 | #jstree-dnd.jstree-proton-small { 702 | line-height: 18px; 703 | padding: 0 4px; 704 | } 705 | #jstree-dnd.jstree-proton-small .jstree-ok, 706 | #jstree-dnd.jstree-proton-small .jstree-er { 707 | background-size: 320px 96px; 708 | background-image: url("32px.png"); 709 | background-repeat: no-repeat; 710 | background-color: transparent; 711 | } 712 | #jstree-dnd.jstree-proton-small i { 713 | background: transparent; 714 | width: 18px; 715 | height: 18px; 716 | line-height: 18px; 717 | } 718 | #jstree-dnd.jstree-proton-small .jstree-ok { 719 | background-position: -7px -71px; 720 | } 721 | #jstree-dnd.jstree-proton-small .jstree-er { 722 | background-position: -39px -71px; 723 | } 724 | .jstree-proton-small.jstree-rtl .jstree-node { 725 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); 726 | } 727 | .jstree-proton-small.jstree-rtl .jstree-last { 728 | background: transparent; 729 | } 730 | .jstree-proton-large .jstree-node { 731 | min-height: 32px; 732 | line-height: 32px; 733 | margin-left: 32px; 734 | min-width: 32px; 735 | } 736 | .jstree-proton-large .jstree-anchor { 737 | line-height: 32px; 738 | margin: 1px 0 2px; 739 | height: 32px; 740 | } 741 | .jstree-proton-large .jstree-icon { 742 | width: 32px; 743 | height: 32px; 744 | line-height: 32px; 745 | } 746 | .jstree-proton-large .jstree-icon:empty { 747 | width: 32px; 748 | height: 32px; 749 | line-height: 32px; 750 | } 751 | .jstree-proton-large.jstree-rtl .jstree-node { 752 | margin-right: 32px; 753 | } 754 | .jstree-proton-large .jstree-wholerow { 755 | height: 32px; 756 | } 757 | .jstree-proton-large .jstree-node, 758 | .jstree-proton-large .jstree-icon { 759 | background-size: 320px 96px; 760 | background-image: url("32px.png"); 761 | } 762 | .jstree-proton-large .jstree-node { 763 | background-position: -288px 0px; 764 | background-repeat: repeat-y; 765 | } 766 | .jstree-proton-large .jstree-last { 767 | background: transparent; 768 | } 769 | .jstree-proton-large .jstree-open > .jstree-ocl { 770 | background-position: -128px 0px; 771 | } 772 | .jstree-proton-large .jstree-closed > .jstree-ocl { 773 | background-position: -96px 0px; 774 | } 775 | .jstree-proton-large .jstree-leaf > .jstree-ocl { 776 | background-position: -64px 0px; 777 | } 778 | .jstree-proton-large .jstree-themeicon { 779 | background-position: -256px -2px; 780 | } 781 | .jstree-proton-large > .jstree-no-dots .jstree-node, 782 | .jstree-proton-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { 783 | background: transparent; 784 | } 785 | .jstree-proton-large > .jstree-no-dots .jstree-open > .jstree-ocl { 786 | background-position: -32px 0px; 787 | } 788 | .jstree-proton-large > .jstree-no-dots .jstree-closed > .jstree-ocl { 789 | background-position: 0px 0px; 790 | } 791 | .jstree-proton-large .jstree-disabled { 792 | background: transparent; 793 | } 794 | .jstree-proton-large .jstree-disabled.jstree-hovered { 795 | background: transparent; 796 | } 797 | .jstree-proton-large .jstree-disabled.jstree-clicked { 798 | background: #efefef; 799 | } 800 | .jstree-proton-large .jstree-checkbox { 801 | background-position: -160px 0px; 802 | } 803 | .jstree-proton-large .jstree-checkbox:hover { 804 | background-position: -160px -32px; 805 | } 806 | .jstree-proton-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 807 | .jstree-proton-large .jstree-checked > .jstree-checkbox { 808 | background-position: -224px 0px; 809 | } 810 | .jstree-proton-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 811 | .jstree-proton-large .jstree-checked > .jstree-checkbox:hover { 812 | background-position: -224px -32px; 813 | } 814 | .jstree-proton-large .jstree-anchor > .jstree-undetermined { 815 | background-position: -192px 0px; 816 | } 817 | .jstree-proton-large .jstree-anchor > .jstree-undetermined:hover { 818 | background-position: -192px -32px; 819 | } 820 | .jstree-proton-large > .jstree-striped { 821 | background-size: auto 64px; 822 | } 823 | .jstree-proton-large.jstree-rtl .jstree-node { 824 | background-size: 320px 96px; 825 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 826 | background-position: 100% 1px; 827 | background-repeat: repeat-y; 828 | } 829 | .jstree-proton-large.jstree-rtl .jstree-last { 830 | background: transparent; 831 | } 832 | .jstree-proton-large.jstree-rtl .jstree-open > .jstree-ocl { 833 | background-position: -128px -32px; 834 | } 835 | .jstree-proton-large.jstree-rtl .jstree-closed > .jstree-ocl { 836 | background-position: -96px -32px; 837 | } 838 | .jstree-proton-large.jstree-rtl .jstree-leaf > .jstree-ocl { 839 | background-position: -64px -32px; 840 | } 841 | .jstree-proton-large.jstree-rtl > .jstree-no-dots .jstree-node, 842 | .jstree-proton-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 843 | background: transparent; 844 | } 845 | .jstree-proton-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 846 | background-position: -32px -32px; 847 | } 848 | .jstree-proton-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 849 | background-position: 0px -32px; 850 | } 851 | .jstree-proton-large .jstree-themeicon-custom { 852 | background-color: transparent; 853 | background-size: 320px 96px; 854 | background-image: none; 855 | background-position: 0 0; 856 | } 857 | .jstree-proton-large > .jstree-container-ul .jstree-loading > .jstree-ocl { 858 | background: url("throbber.gif") center center no-repeat; 859 | } 860 | .jstree-proton-large .jstree-file { 861 | background: url("32px.png") -96px -64px no-repeat; 862 | } 863 | .jstree-proton-large .jstree-folder { 864 | background: url("32px.png") -256px 0px no-repeat; 865 | } 866 | .jstree-proton-large > .jstree-container-ul > .jstree-node { 867 | margin-left: 0; 868 | margin-right: 0; 869 | } 870 | #jstree-dnd.jstree-proton-large { 871 | line-height: 32px; 872 | padding: 0 4px; 873 | } 874 | #jstree-dnd.jstree-proton-large .jstree-ok, 875 | #jstree-dnd.jstree-proton-large .jstree-er { 876 | background-size: 320px 96px; 877 | background-image: url("32px.png"); 878 | background-repeat: no-repeat; 879 | background-color: transparent; 880 | } 881 | #jstree-dnd.jstree-proton-large i { 882 | background: transparent; 883 | width: 32px; 884 | height: 32px; 885 | line-height: 32px; 886 | } 887 | #jstree-dnd.jstree-proton-large .jstree-ok { 888 | background-position: 0px -64px; 889 | } 890 | #jstree-dnd.jstree-proton-large .jstree-er { 891 | background-position: -32px -64px; 892 | } 893 | .jstree-proton-large.jstree-rtl .jstree-node { 894 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); 895 | } 896 | .jstree-proton-large.jstree-rtl .jstree-last { 897 | background: transparent; 898 | } 899 | @media (max-width: 768px) { 900 | #jstree-dnd.jstree-dnd-responsive { 901 | line-height: 30px; 902 | font-weight: bold; 903 | font-size: 1.1em; 904 | text-shadow: 1px 1px white; 905 | } 906 | #jstree-dnd.jstree-dnd-responsive > i { 907 | background: transparent; 908 | width: 30px; 909 | height: 30px; 910 | } 911 | #jstree-dnd.jstree-dnd-responsive > .jstree-ok { 912 | background-image: url("30px.png"); 913 | background-position: 0 -150px; 914 | background-size: 90px 180px; 915 | } 916 | #jstree-dnd.jstree-dnd-responsive > .jstree-er { 917 | background-image: url("30px.png"); 918 | background-position: -30px -150px; 919 | background-size: 90px 180px; 920 | } 921 | #jstree-marker.jstree-dnd-responsive { 922 | border-left-width: 10px; 923 | border-top-width: 10px; 924 | border-bottom-width: 10px; 925 | margin-top: -10px; 926 | } 927 | } 928 | @media (max-width: 768px) { 929 | .jstree-proton-responsive { 930 | /* 931 | .jstree-open > .jstree-ocl, 932 | .jstree-closed > .jstree-ocl { 933 | border-radius:20px; 934 | background-color:white; 935 | } 936 | */ 937 | } 938 | .jstree-proton-responsive .jstree-container-ul { 939 | overflow: hidden; 940 | } 941 | .jstree-proton-responsive .jstree-icon { 942 | background-image: url("30px.png"); 943 | background-size: 90px 180px; 944 | } 945 | .jstree-proton-responsive .jstree-node, 946 | .jstree-proton-responsive .jstree-leaf > .jstree-ocl { 947 | background: transparent; 948 | } 949 | .jstree-proton-responsive .jstree-node { 950 | min-height: 30px; 951 | line-height: 30px; 952 | margin-left: 30px; 953 | min-width: 30px; 954 | white-space: nowrap; 955 | } 956 | .jstree-proton-responsive .jstree-anchor { 957 | line-height: 38px; 958 | height: 38px; 959 | margin: 0; 960 | } 961 | .jstree-proton-responsive .jstree-icon, 962 | .jstree-proton-responsive .jstree-icon:empty { 963 | margin-top: 4px; 964 | width: 30px; 965 | height: 30px; 966 | line-height: 30px; 967 | } 968 | .jstree-proton-responsive > .jstree-container-ul > .jstree-node { 969 | margin-left: 0; 970 | } 971 | .jstree-proton-responsive.jstree-rtl .jstree-node { 972 | margin-left: 0; 973 | margin-right: 30px; 974 | } 975 | .jstree-proton-responsive.jstree-rtl .jstree-container-ul > .jstree-node { 976 | margin-right: 0; 977 | } 978 | .jstree-proton-responsive .jstree-ocl, 979 | .jstree-proton-responsive .jstree-themeicon, 980 | .jstree-proton-responsive .jstree-checkbox { 981 | background-size: 90px 180px; 982 | } 983 | .jstree-proton-responsive .jstree-leaf > .jstree-ocl { 984 | background: transparent; 985 | } 986 | .jstree-proton-responsive .jstree-open > .jstree-ocl { 987 | background-position: 0 0px !important; 988 | } 989 | .jstree-proton-responsive .jstree-closed > .jstree-ocl { 990 | background-position: 0 -30px !important; 991 | } 992 | .jstree-proton-responsive.jstree-rtl .jstree-closed > .jstree-ocl { 993 | background-position: -30px 0px !important; 994 | } 995 | .jstree-proton-responsive .jstree-themeicon { 996 | background-position: -30px -30px; 997 | } 998 | .jstree-proton-responsive .jstree-checkbox, 999 | .jstree-proton-responsive .jstree-checkbox:hover { 1000 | background-position: -30px -60px; 1001 | } 1002 | .jstree-proton-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 1003 | .jstree-proton-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 1004 | .jstree-proton-responsive .jstree-checked > .jstree-checkbox, 1005 | .jstree-proton-responsive .jstree-checked > .jstree-checkbox:hover { 1006 | background-position: 0 -60px; 1007 | } 1008 | .jstree-proton-responsive .jstree-anchor > .jstree-undetermined, 1009 | .jstree-proton-responsive .jstree-anchor > .jstree-undetermined:hover { 1010 | background-position: 0 -90px; 1011 | } 1012 | .jstree-proton-responsive > .jstree-striped { 1013 | background: transparent; 1014 | } 1015 | .jstree-proton-responsive .jstree-wholerow-ul li { 1016 | position: relative; 1017 | } 1018 | .jstree-proton-responsive .jstree-wholerow-ul .jstree-wholerow { 1019 | position: absolute; 1020 | top: 0; 1021 | left: -1000px; 1022 | right: -1000px; 1023 | width: auto; 1024 | height: 100%; 1025 | } 1026 | .jstree-proton-responsive .jstree-wholerow { 1027 | border-top: 1px solid rgba(0, 0, 0, 0.05); 1028 | background: rgba(0, 0, 0, 0.02); 1029 | height: 30px; 1030 | } 1031 | .jstree-proton-responsive .jstree-wholerow-hovered { 1032 | background: #76b6ec; 1033 | } 1034 | .jstree-proton-responsive .jstree-wholerow-clicked { 1035 | background: #3392e3; 1036 | } 1037 | .jstree-proton-responsive .jstree-children .jstree-open + .jstree-open { 1038 | box-shadow: none; 1039 | } 1040 | .jstree-proton-responsive .jstree-node, 1041 | .jstree-proton-responsive .jstree-icon, 1042 | .jstree-proton-responsive .jstree-node > .jstree-ocl, 1043 | .jstree-proton-responsive .jstree-themeicon, 1044 | .jstree-proton-responsive .jstree-checkbox { 1045 | background-image: url("30px.png"); 1046 | background-size: 90px 180px; 1047 | } 1048 | .jstree-proton-responsive .jstree-node { 1049 | background-position: -60px 0; 1050 | background-repeat: repeat-y; 1051 | } 1052 | .jstree-proton-responsive .jstree-last { 1053 | background: transparent; 1054 | } 1055 | .jstree-proton-responsive .jstree-leaf > .jstree-ocl { 1056 | background-position: -30px -90px; 1057 | } 1058 | .jstree-proton-responsive .jstree-last > .jstree-ocl { 1059 | background-position: -30px -120px; 1060 | } 1061 | .jstree-proton-responsive .jstree-themeicon-custom { 1062 | background-color: transparent; 1063 | background-image: none; 1064 | background-position: 0 0; 1065 | } 1066 | .jstree-proton-responsive .jstree-file { 1067 | background: url("30px.png") 0 -120px no-repeat; 1068 | background-size: 90px 180px; 1069 | } 1070 | .jstree-proton-responsive .jstree-folder { 1071 | background: url("30px.png") -30px -30px no-repeat; 1072 | background-size: 90px 180px; 1073 | } 1074 | .jstree-proton-responsive > .jstree-container-ul > .jstree-node { 1075 | margin-left: 0; 1076 | margin-right: 0; 1077 | } 1078 | } 1079 | @font-face { 1080 | font-family: 'Titillium Web'; 1081 | src: url('fonts/titillium/titilliumweb-extralight-webfont.eot'); 1082 | src: url('fonts/titillium/titilliumweb-extralight-webfont.eot?#iefix') format('embedded-opentype'), url('fonts/titillium/titilliumweb-extralight-webfont.woff') format('woff'), url('fonts/titillium/titilliumweb-extralight-webfont.ttf') format('truetype'), url('fonts/titillium/titilliumweb-extralight-webfont.svg#titillium_webthin') format('svg'); 1083 | font-weight: 300; 1084 | font-style: normal; 1085 | } 1086 | @font-face { 1087 | font-family: 'Titillium Web'; 1088 | src: url('fonts/titillium/titilliumweb-regular-webfont.eot'); 1089 | src: url('fonts/titillium/titilliumweb-regular-webfont.eot?#iefix') format('embedded-opentype'), url('fonts/titillium/titilliumweb-regular-webfont.woff') format('woff'), url('fonts/titillium/titilliumweb-regular-webfont.ttf') format('truetype'), url('fonts/titillium/titilliumweb-regular-webfont.svg#titillium_webregular') format('svg'); 1090 | font-weight: 400; 1091 | font-style: normal; 1092 | } 1093 | @font-face { 1094 | font-family: 'Titillium Web'; 1095 | src: url('fonts/titillium/titilliumweb-bold-webfont.eot'); 1096 | src: url('fonts/titillium/titilliumweb-bold-webfont.eot?#iefix') format('embedded-opentype'), url('fonts/titillium/titilliumweb-bold-webfont.woff') format('woff'), url('fonts/titillium/titilliumweb-bold-webfont.ttf') format('truetype'), url('fonts/titillium/titilliumweb-bold-webfont.svg#titillium_webbold') format('svg'); 1097 | font-weight: 700; 1098 | font-style: normal; 1099 | } 1100 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 1101 | @font-face { 1102 | font-family: 'Titillium Web'; 1103 | src: url('fonts/titillium/titilliumweb-extralight-webfont.svg#titillium_webthin') format('svg'); 1104 | font-weight: 300; 1105 | font-style: normal; 1106 | } 1107 | @font-face { 1108 | font-family: 'Titillium Web'; 1109 | src: url('fonts/titillium/titilliumweb-regular-webfont.svg#titillium_webregular') format('svg'); 1110 | font-weight: 400; 1111 | font-style: normal; 1112 | } 1113 | @font-face { 1114 | font-family: 'Titillium Web'; 1115 | src: url('fonts/titillium/titilliumweb-bold-webfont.svg#titillium_webbold') format('svg'); 1116 | font-weight: 700; 1117 | font-style: normal; 1118 | } 1119 | } 1120 | .jstree-proton { 1121 | font-family: 'Titillium Web', sans-serif, Arial, sans-serif; 1122 | } 1123 | --------------------------------------------------------------------------------