├── .gitignore ├── LICENSE ├── README.md ├── app.json ├── package-lock.json ├── package.json ├── readme ├── CreateAppBundle.png ├── OssManagerPresignedUrl.png ├── VerifyJson.png └── Workitems.png ├── server ├── .gitignore ├── config.js ├── design.automation.js ├── oauth.js └── server.js ├── start.js ├── thumbnail.png └── www ├── css ├── 32px.png ├── 40px.png ├── bootstrap-theme.css ├── bootstrap-theme.css.map ├── bootstrap-theme.min.css ├── bootstrap-theme.min.css.map ├── bootstrap.css ├── bootstrap.css.map ├── bootstrap.min.css ├── bootstrap.min.css.map ├── index.css ├── jstree.style.css ├── jstree.style.min.css ├── styles.css └── throbber.gif ├── favicon.ico ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── img ├── favicon.svg └── indexpage.png ├── index.html └── js ├── bootstrap.js ├── bootstrap.min.js ├── html5.js ├── jquery.min.js ├── jquery.storageapi.min.js ├── jstree.js ├── jstree.min.js ├── npm.js └── scripts.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Autodesk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Design Automation Tools 2 | 3 | [![Node.js](https://img.shields.io/badge/Node.js-10.16.2-blue.svg)](https://nodejs.org/) 4 | [![npm](https://img.shields.io/badge/npm-6.9.0-blue.svg)](https://www.npmjs.com/) 5 | ![Platforms](https://img.shields.io/badge/platform-windows%20%7C%20osx%20%7C%20linux-lightgray.svg) 6 | [![License](https://img.shields.io/:license-mit-blue.svg)](https://opensource.org/licenses/MIT) 7 | 8 | [![OAuth2](https://img.shields.io/badge/OAuth2-v2-green.svg)](https://aps.autodesk.com/) 9 | [![Design Automation](https://img.shields.io/badge/Design%20Automation-v3-green.svg)](https://aps.autodesk.com/) 10 | 11 | This utility app enables you to see and create new app bundles, activities and workitems - including creating new version of those and aliases for them 12 | 13 | ### Thumbnail 14 | 15 | ![thumbnail](/thumbnail.png) 16 | 17 | ### Live version 18 | 19 | [https://da-manager.autodesk.io/](https://da-manager.autodesk.io/) 20 | 21 | # Usage 22 | 23 | 1. In the top text boxes Provide the **Client Id** and **Client Secret** of the app you created on the **Autodesk Developer Site** and click **Log In** button 24 | 25 | 2. On both the **AppBundles** and **Activities** tabs you'll find a list of all the items you have on APS. \ 26 | In case of clicking on an **Alias**, the infomration box on the right will show the reply coming from the **APS** server. \ 27 | You'll find three buttons on the bottom left: 28 | - **Refresh**: refreshes the content of the tree control on the left side 29 | - **Create**: creates a new item. Depending on which item in the tree is selected it will create a different element: e.g. if an **Activity version** is selected then it will enable you to create an **Alias** for that version 30 | - **Delete**: will try to delete the selected item 31 | 32 | 3. Whenever you use the **Create** button a dialog box will pop up that enables you to provide the necessary info in order to create the specific item: 33 | 34 | ![create appbundle](/readme/CreateAppBundle.png) 35 | 36 | 4. In the **Info** dialog box, some of the input fields will have a drop down menu with various functions: 37 | - they might enable you to populate the control with some text - often these are just templates that need to be filled in with the relevant information 38 | - verify if the input is a valid json: 39 | 40 | ![verify JSON](/readme/VerifyJson.png) 41 | 42 | 4. When an **Activity Alias** is selected in the tree, the plus button will turn into a **play/run** button showing that you could start a **Workitem** based on the selected **Activity** 43 | 44 | 5. Once you started a **Workitem** the **WorkItems** tab will be activated and it will show a list of the **Workitems** you started during this session \ 45 | There will be two buttons available: 46 | - **Stop**: it will try to stop the selected **Workitem** 47 | - **Delete**: it will remove the selected item from the list (it won't try to stop it) 48 | 49 | ![workitems](/readme/Workitems.png) 50 | 51 | If you click any of the items then an update will be requested from the server and the reply will be shown in the info box 52 | 53 | 6. Whenever you are requested to provide a file (for an **AppBundle** or for a **Workitem**) you need to provide a publicly accessible **URL** to it \ 54 | One easy way to generate such **URLs** is to use the **APS OSS** and a utility like [https://oss-manager.autodesk.io](https://oss-manager.autodesk.io) to upload files and generate *read/write* **URLs** for them 55 | ![thumbnail](/readme/OssManagerPresignedUrl.png) 56 | 57 | # Setup 58 | 59 | ## Prerequisites 60 | 61 | 1. **APS Account**: Learn how to create a APS Account, activate subscription and create an app at [this tutorial](https://tutorials.autodesk.io/). 62 | 2. **Visual Studio**: Either Community (Windows) or Code (Windows, MacOS). 63 | 3. **JavaScript** basic knowledge with **jQuery** 64 | 65 | ### Run locally 66 | 67 | Install [NodeJS](https://nodejs.org). 68 | 69 | Clone this project or download it. It's recommended to install [GitHub desktop](https://desktop.github.com/). To clone it via command line, use the following (**Terminal** on MacOSX/Linux, **Git Shell** on Windows): 70 | 71 | git clone https://github.com/adamenagy/da.manager-nodejs 72 | 73 | To run it, install the required packages, set the enviroment variables with your client ID & secret and finally start it. Via command line, navigate to the folder where this repository was cloned and use the following: 74 | 75 | Mac OSX/Linux (Terminal) / Windows (use Node.js command line from Start menu) 76 | 77 | npm install 78 | npm start 79 | 80 | Open the browser: [http://localhost:3000](http://localhost:3000). 81 | 82 | **Important:** do not use **npm start** locally, this is intended for PRODUCTION only with HTTPS (SSL) secure cookies. 83 | 84 | ## Deployment 85 | 86 | To deploy this application to Heroku, the **Callback URL** must use your `.herokuapp.com` address. After clicking on the button below, at the Heroku Create New App page, set your Client ID, Secret and Callback URL. 87 | 88 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/adamenagy/da.manager-nodejs) 89 | 90 | Watch [this video](https://www.youtube.com/watch?v=Oqa9O20Gj0c) on how deploy samples to Heroku. 91 | 92 | 93 | ## Packages used 94 | 95 | All APS NPM packages are included by default, see complete list of what's available at [NPM website](https://www.npmjs.com/browse/keyword/autodesk). OAuth, Model Derivative and OSS are used. Some other non-Autodesk packaged are used, including [express](https://www.npmjs.com/package/express) and its session/cookie middlewares ([express-session](https://www.npmjs.com/package/express-session) and [cookie-parser](https://www.npmjs.com/package/cookie-parser)) for user session handling. The front-end uses [bootsrap](https://www.npmjs.com/package/bootstrap) and [jquery](https://www.npmjs.com/package/jquery). 96 | 97 | ## Tips & tricks 98 | 99 | For local development/testing, consider use [nodemon](https://www.npmjs.com/package/nodemon) package, which auto restart your node application after any modification on your code. To install it, use: 100 | 101 | sudo npm install -g nodemon 102 | 103 | Then, instead of npm run dev, use the following: 104 | 105 | npm run nodemon 106 | 107 | Which executes **nodemon server.js --ignore www/**, where the **--ignore** parameter indicates that the app should not restart if files under **www** folder are modified. 108 | 109 | ## Further Reading 110 | 111 | Documentation: 112 | 113 | - [Design Automation API](https://aps.autodesk.com/en/docs/design-automation/v3/developers_guide/overview/) 114 | 115 | Tutorials: 116 | 117 | - [Modify your models](https://learnforge.autodesk.io/#/tutorials/modifymodels) 118 | - [Step-by-Step Tutorials](https://aps.autodesk.com/en/docs/design-automation/v3/tutorials/) 119 | 120 | Blogs: 121 | 122 | - [APS Blog](https://aps.autodesk.com/blog) 123 | 124 | ## License 125 | 126 | This sample is licensed under the terms of the [MIT License](http://opensource.org/licenses/MIT). 127 | Please see the [LICENSE](LICENSE) file for full details. 128 | 129 | ## Written by 130 | 131 | Adam Nagy (Autodesk Partner Development)
132 | http://aps.autodesk.com
133 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Design Automation Tools", 3 | "description": "Node.js sample for the Design Automation API", 4 | "repository": "https://github.com/autodesk-platform-services/aps-design-automation-tools", 5 | "logo": "https://cdn.autodesk.io/logo/black/logo.png", 6 | "keywords": [ 7 | "express", 8 | "framework", 9 | "autodesk", 10 | "aps", 11 | "template" 12 | ], 13 | "website": "https://aps.autodesk.com/", 14 | "success_url": "/" 15 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aps-design-automation-tools", 3 | "version": "2.0.0", 4 | "description": "A sample that shows how to use the Model Derivative API.", 5 | "dependencies": { 6 | "body-parser": "^1.19.0", 7 | "cookie-parser": "^1.4.5", 8 | "cookie-session": "^2.0.0", 9 | "ejs": "^3.1.8", 10 | "express": "^4.17.1", 11 | "forge-apis": "^0.9.9", 12 | "formidable": "^1.2.2", 13 | "morgan": "^1.10.0", 14 | "oauth": "^0.9.14", 15 | "request": "^2.88.2", 16 | "request-promise": "^4.2.6", 17 | "trim": "^1.0.1" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git://github.com/autodesk-platform-services/aps-design-automation-tools" 22 | }, 23 | "scripts": { 24 | "start": "NODE_ENV=production node start.js", 25 | "dev": "node start.js", 26 | "nodemon": "nodemon start.js --ignore www/" 27 | }, 28 | "author": "Autodesk Partner Development", 29 | "license": "MIT" 30 | } 31 | -------------------------------------------------------------------------------- /readme/CreateAppBundle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/readme/CreateAppBundle.png -------------------------------------------------------------------------------- /readme/OssManagerPresignedUrl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/readme/OssManagerPresignedUrl.png -------------------------------------------------------------------------------- /readme/VerifyJson.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/readme/VerifyJson.png -------------------------------------------------------------------------------- /readme/Workitems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/readme/Workitems.png -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/server/.gitignore -------------------------------------------------------------------------------- /server/config.js: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Autodesk, Inc. All rights reserved 3 | // Written by Autodesk Partner Development 4 | // 5 | // Permission to use, copy, modify, and distribute this software in 6 | // object code form for any purpose and without fee is hereby granted, 7 | // provided that the above copyright notice appears in all copies and 8 | // that both that copyright notice and the limited warranty and 9 | // restricted rights notice below appear in all supporting 10 | // documentation. 11 | // 12 | // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 13 | // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF 14 | // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. 15 | // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE 16 | // UNINTERRUPTED OR ERROR FREE. 17 | ///////////////////////////////////////////////////////////////////// 18 | 19 | 'use strict'; // http://www.w3schools.com/js/js_strict.asp 20 | 21 | module.exports = { 22 | // Required scopes for your application on server-side 23 | scopeInternal: [ 24 | 'data:read', 'data:write', 'data:create', 'data:search', 25 | 'bucket:create', 'bucket:read', 'bucket:update', 'bucket:delete', 'code:all' 26 | ], 27 | 28 | // Required scope of the token sent to the client 29 | scopePublic: ['viewables:read'], 30 | sessionSecret: process.env.SERVER_SESSION_SECRET || 'autodesksecret', 31 | }; -------------------------------------------------------------------------------- /server/design.automation.js: -------------------------------------------------------------------------------- 1 | 'use strict'; // http://www.w3schools.com/js/js_strict.asp 2 | 3 | // web framework 4 | var express = require('express'); 5 | var router = express.Router(); 6 | 7 | var bodyParser = require('body-parser'); 8 | var jsonParser = bodyParser.json(); 9 | const request = require('request'); 10 | const requestPromise = require('request-promise'); 11 | 12 | async function daRequest(req, path, method, headers, body) { 13 | headers = headers || {}; 14 | if (!headers['Authorization']) { 15 | headers['Authorization'] = 'Bearer ' + req.session.access_token; 16 | headers['content-type'] = 'application/json'; 17 | } 18 | 19 | let url = 'https://developer.api.autodesk.com/da/us-east/v3/' + path; 20 | let options = { 21 | uri: url, 22 | method: method, 23 | headers: headers, 24 | json: true 25 | }; 26 | 27 | if (body) { 28 | options.body = body; 29 | } 30 | 31 | let data = []; 32 | while (true) { 33 | let response; 34 | try { 35 | response = await requestPromise(options); 36 | } catch (ex) { 37 | console.log(ex.message); 38 | throw ex; 39 | } 40 | 41 | if (response && response.paginationToken) { 42 | options.uri = url + "?page=" + response.paginationToken; 43 | data = [...data, ...response.data]; 44 | } else { 45 | if (data.length > 0) { 46 | response.data = [...response.data, ...data]; 47 | } 48 | 49 | return response; 50 | } 51 | } 52 | } 53 | 54 | ///////////////////////////////////////////////////////////////// 55 | // Items (AppBundles and Activities) 56 | ///////////////////////////////////////////////////////////////// 57 | 58 | function getNameParts(name) { 59 | var parts1 = name.split('.'); 60 | var parts2 = parts1[1].split('+'); 61 | 62 | return [parts1[0], parts2[0], parts2[1]]; 63 | } 64 | 65 | function getFullName(nickName, name, alias) { 66 | return `${nickName}.${name}+${alias}`; 67 | } 68 | 69 | async function getItems(req, type, isPersonal) { 70 | let response = await daRequest(req, type, 'GET'); 71 | let nickname = await daRequest(req, 'forgeapps/me', 'GET'); 72 | // The response body structure depends on whether we set a nickname or not 73 | nickname = nickname.nickname ? nickname.nickname : nickname; 74 | let items = []; 75 | 76 | response.data.forEach((item, index) => { 77 | if (!item.startsWith(nickname) ^ isPersonal) { 78 | // Show only personal items 79 | let nameParts = getNameParts(item); 80 | if (!includesItem(items, nameParts[1])) { 81 | items.push({ 82 | id: nameParts[1], 83 | nickName: nameParts[0], 84 | alias: nameParts[2], 85 | children: isPersonal 86 | }); 87 | } 88 | } 89 | }) 90 | 91 | return items; 92 | } 93 | 94 | async function getItem(req, type, id) { 95 | let response = await daRequest(req, `${type}/${id}`, 'GET'); 96 | 97 | return response; 98 | } 99 | 100 | async function uploadFile(inputUrl, uploadParameters) { 101 | var downloadOptions = { 102 | uri: inputUrl, 103 | method: 'GET' 104 | } 105 | 106 | var uploadOptions = { 107 | uri: uploadParameters.endpointURL, 108 | method: 'POST', 109 | headers: { 110 | 'Content-Type': 'multipart/form-data', 111 | 'Cache-Control': 'no-cache' 112 | }, 113 | formData: uploadParameters.formData 114 | } 115 | uploadOptions.formData.file = request(downloadOptions); 116 | 117 | await requestPromise(uploadOptions); 118 | } 119 | 120 | async function createItem(req, type, body) { 121 | let response = await daRequest(req, `${type}`, 'POST', null, body); 122 | 123 | // Upload the file from OSS 124 | if (response.uploadParameters) { 125 | try { 126 | await uploadFile(body.bundle, response.uploadParameters) 127 | } catch { } 128 | } 129 | 130 | return response; 131 | } 132 | 133 | async function deleteItem(req, type, id) { 134 | let response = await daRequest(req, `${type}/${id}`, 'DELETE'); 135 | 136 | return { response: 'done' }; 137 | } 138 | 139 | function includesItem(list, id) { 140 | return list.find(item => { 141 | if (item.id === id) { 142 | return true; 143 | } 144 | }); 145 | } 146 | 147 | function setItemVersionsChildren(versions, aliases) { 148 | aliases.forEach(alias => { 149 | versions.find(version => { 150 | if (version.id === alias.version) { 151 | version.children = true; 152 | return true; 153 | } 154 | }); 155 | }) 156 | } 157 | 158 | async function getItemVersions(req, type, id) { 159 | let versions = []; 160 | let page = ''; 161 | 162 | while (true) { 163 | let response = await daRequest(req, `${type}/${id}/versions${page}`, 'GET'); 164 | response.data.map((item) => { 165 | versions.push({ id: item, children: false }); 166 | }) 167 | 168 | if (!response.paginationToken) 169 | break; 170 | 171 | page = `?page=${response.paginationToken}`; 172 | } 173 | 174 | return versions; 175 | } 176 | 177 | async function createItemVersion(req, type, id, body) { 178 | let response = await daRequest(req, `${type}/${id}/versions`, 'POST', null, body); 179 | 180 | // Upload the file from OSS 181 | if (response.uploadParameters) { 182 | try { 183 | await uploadFile(body.bundle, response.uploadParameters) 184 | } catch { } 185 | } 186 | 187 | return response; 188 | } 189 | 190 | async function deleteItemVersion(req, type, id, version) { 191 | let response = await daRequest(req, `${type}/${id}/versions/${version}`, 'DELETE'); 192 | 193 | return { response: 'done' }; 194 | } 195 | 196 | async function getItemAliases(req, type, id) { 197 | let aliases = []; 198 | 199 | while (true) { 200 | let response = await daRequest(req, `${type}/${id}/aliases`, 'GET'); 201 | 202 | aliases = aliases.concat(response.data); 203 | 204 | if (!response.paginationToken) 205 | break; 206 | } 207 | 208 | return aliases; 209 | } 210 | 211 | function getAliasesForVersion(aliases, version) { 212 | let versionAliases = []; 213 | 214 | aliases.forEach((item, index) => { 215 | if (item.version === version) { 216 | versionAliases.push(item); 217 | } 218 | }) 219 | 220 | return versionAliases; 221 | } 222 | 223 | async function createItemAlias(req, type, id, version, alias, receiver) { 224 | let data = { 225 | "version": parseInt(version), // has to be numeric 226 | "id": alias 227 | }; 228 | if (receiver && receiver != "") 229 | data.receiver = receiver; 230 | 231 | let response = await daRequest(req, `${type}/${id}/aliases`, 'POST', null, data); 232 | 233 | return response; 234 | } 235 | 236 | async function deleteItemAlias(req, type, id, alias) { 237 | let response = await daRequest(req, `${type}/${id}/aliases/${alias}`, 'DELETE'); 238 | 239 | return { response: 'done' }; 240 | } 241 | 242 | router.get('/:type/treeNode', async function(req, res) { 243 | console.log('GET /:type/treeNode'); 244 | try { 245 | var id = decodeURIComponent(req.query.id); 246 | var type = req.params.type; 247 | console.log(`GET /:type/treeNode, :type = ${type}, id = ${id}`); 248 | 249 | var folders = [ 250 | { id: 'Personal', children: true }, 251 | { id: 'Shared', children: true } 252 | ]; 253 | var paths = id.split('/'); 254 | var level = paths.length; 255 | 256 | // Levels are: 257 | // Root >> Personal/Shared >> Items >> Versions >> Aliases 258 | // Root >> Personal/Shared >> Activities >> Versions >> Aliases 259 | // e.g. "Personal/ChangeParams/98/prod" 260 | 261 | if (id === '#') { 262 | // # stands for ROOT 263 | res.json(makeTree(folders, 'folder', '', true)); 264 | } else if (level === 1) { 265 | var items = await getItems(req, type, id === 'Personal'); 266 | res.json(makeTree(items, 'item', `${id}/`)); 267 | } else if (level === 2) { 268 | var appName = paths[1]; 269 | var versions = await getItemVersions(req, type, appName); 270 | var aliases = await getItemAliases(req, type, appName); 271 | setItemVersionsChildren(versions, aliases); 272 | res.json(makeTree(versions, 'version', `${id}/`)); 273 | } else if (level === 3) { 274 | var appName = paths[1]; 275 | var aliases = await getItemAliases(req, type, appName); 276 | var versionAliases = getAliasesForVersion(aliases, parseInt(paths[2])); 277 | res.json(makeTree(versionAliases, 'alias', `${id}/`)); 278 | } 279 | } catch (ex) { 280 | res.status(ex.statusCode ? ex.statusCode : 500).json({ message: (ex.message ? ex.message : ex) }); 281 | } 282 | }); 283 | 284 | router.get('/:type/info', async function(req, res) { 285 | console.log('GET /:type/info'); 286 | try { 287 | var id = decodeURIComponent(req.query.id); 288 | var type = req.params.type; 289 | console.log(`GET /:type/info, :type = ${type}, id = ${id}`); 290 | 291 | var paths = id.split('/'); 292 | var level = paths.length; 293 | 294 | if (level === 1) { 295 | var info = await getItem(req, type, id); 296 | console.log(info); 297 | res.json(info); 298 | } else if (level === 2) { 299 | // item 300 | if (paths[0] === 'Shared') { 301 | var nickName = req.query.nickName; 302 | var alias = req.query.alias; 303 | var fullName = getFullName(nickName, paths[1], alias); 304 | var info = await getItem(req, type, fullName); 305 | console.log(info); 306 | res.json(info); 307 | } 308 | } else if (level === 3) { 309 | // version 310 | 311 | } else if (level === 4) { 312 | // alias 313 | var nickName = decodeURIComponent(req.query.nickName); 314 | var fullName = getFullName(nickName, paths[1], paths[3]); 315 | var info = await getItem(req, type, fullName); 316 | console.log(info); 317 | res.json(info); 318 | } else { 319 | // Bad daRequest 320 | res.status(400).end(); 321 | } 322 | } catch (ex) { 323 | res.status(ex.statusCode ? ex.statusCode : 500).json({ message: (ex.message ? ex.message : ex) }); 324 | } 325 | }); 326 | 327 | router.post('/:type', jsonParser, async function(req, res) { 328 | console.log('POST /:type'); 329 | try { 330 | var id = req.body.id; 331 | var type = req.params.type; 332 | console.log(`POST /:type, :type = ${type}, id = ${id}`); 333 | 334 | var paths = id.split('/'); 335 | var level = paths.length; 336 | 337 | if (level === 1) { 338 | // create item for folder 339 | var reply = await createItem(req, type, req.body.body); 340 | res.json(reply); 341 | } else if (level === 2) { 342 | // create version for item 343 | var reply = await createItemVersion(req, type, paths[1], req.body.body); 344 | res.json(reply); 345 | } else if (level === 3) { 346 | // create alias for version 347 | var reply = await createItemAlias(req, type, paths[1], paths[2], req.body.alias, req.body.receiver); 348 | res.json(reply); 349 | } else { 350 | // create workitem 351 | var reply = await createItem(req, type, req.body.body); 352 | res.json(reply); 353 | } 354 | } catch (ex) { 355 | console.log(ex); 356 | res.status(ex.statusCode ? ex.statusCode : 500).json({ message: (ex.message ? ex.message : ex) }); 357 | } 358 | }); 359 | 360 | router.delete('/:type/:id', async function(req, res) { 361 | console.log('DELETE /:type/:id'); 362 | try { 363 | var id = decodeURIComponent(req.params.id); 364 | var type = req.params.type; 365 | console.log(`DELETE /:type, :type = ${type}, id = ${id}`); 366 | 367 | var paths = id.split('/'); 368 | var level = paths.length; 369 | 370 | if (level === 1) { 371 | // item 372 | var reply = await deleteItem(req, type, paths[0]); 373 | res.json(reply); 374 | } else if (level === 2) { 375 | // item 376 | var reply = await deleteItem(req, type, paths[1]); 377 | res.json(reply); 378 | } else if (level === 3) { 379 | // version 380 | var reply = await deleteItemVersion(req, type, paths[1], paths[2]); 381 | res.json(reply); 382 | } else if (level === 4) { 383 | // version 384 | var reply = await deleteItemAlias(req, type, paths[1], paths[3]); 385 | res.json(reply); 386 | } 387 | } catch (ex) { 388 | res.status(ex.statusCode ? ex.statusCode : 500).json({ message: (ex.message ? ex.message : ex) }); 389 | } 390 | }); 391 | 392 | ///////////////////////////////////////////////////////////////// 393 | // WorkItems 394 | ///////////////////////////////////////////////////////////////// 395 | 396 | router.get('/workitems/treeNode', async function(req, res) { 397 | console.log('GET /workitems/treeNode'); 398 | try { 399 | var id = decodeURIComponent(req.query.id); 400 | console.log("GET /workitems/treeNode, id = " + id); 401 | 402 | var tokenSession = new token(req.session); 403 | var folders = [ 404 | { id: 'Personal', children: true }, 405 | { id: 'Shared', children: true } 406 | ]; 407 | var paths = id.split('/'); 408 | var level = paths.length; 409 | 410 | // Levels are: 411 | // Root >> Personal/Shared >> Bundles >> Versions >> Aliases 412 | // e.g. "Personal/ChangeParams/98/prod" 413 | 414 | if (id === '#') { 415 | // # stands for ROOT 416 | res.json(makeTree(folders, 'folder', '', true)); 417 | } else if (level === 1) { 418 | var items = await getItems(req, type, id === 'Personal'); 419 | res.json(makeTree(items, 'appbundle', `${id}/`)); 420 | } else if (level === 2) { 421 | var appName = paths[1]; 422 | var versions = await getItemVersions(req, type, appName); 423 | var aliases = await getItemAliases(req, appName); 424 | setItemVersionsChildren(versions, aliases); 425 | res.json(makeTree(versions, 'version', `${id}/`)); 426 | } else { 427 | var appName = paths[1]; 428 | var aliases = await getItemAliases(req, appName); 429 | //var versionAliases = getVersionAliases(paths[2], aliases); 430 | res.json(makeTree(aliases, 'alias', `${id}/`)); 431 | } 432 | } catch (ex) { 433 | res.status(ex.statusCode ? ex.statusCode : 500).json({ message: (ex.message ? ex.message : ex) }); 434 | } 435 | }); 436 | 437 | router.get('/report/:url', async function(req, res) { 438 | console.log('GET /report'); 439 | var inputUrl = req.params.url; 440 | 441 | var downloadOptions = { 442 | uri: inputUrl, 443 | method: 'GET' 444 | } 445 | 446 | try { 447 | var result = await requestPromise(downloadOptions); 448 | 449 | res.end(result); 450 | } catch (ex) { 451 | res.status(500).end(ex.message); 452 | } 453 | }); 454 | 455 | ///////////////////////////////////////////////////////////////// 456 | // Collects the information that we need to pass to the 457 | // file tree object on the client 458 | ///////////////////////////////////////////////////////////////// 459 | function makeTree(items, type, prefix) { 460 | if (!items) return ''; 461 | var treeList = []; 462 | items.forEach(function(item, index) { 463 | var treeItem = { 464 | id: prefix + item.id, 465 | nickName: item.nickName, 466 | alias: item.alias, 467 | text: item.id, 468 | type: type, 469 | children: item.children 470 | }; 471 | console.log(treeItem); 472 | treeList.push(treeItem); 473 | }); 474 | 475 | return treeList; 476 | } 477 | 478 | ///////////////////////////////////////////////////////////////// 479 | // Return the router object that contains the endpoints 480 | ///////////////////////////////////////////////////////////////// 481 | module.exports = router; -------------------------------------------------------------------------------- /server/oauth.js: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Autodesk, Inc. All rights reserved 3 | // Written by Autodesk Partner Development 4 | // 5 | // Permission to use, copy, modify, and distribute this software in 6 | // object code form for any purpose and without fee is hereby granted, 7 | // provided that the above copyright notice appears in all copies and 8 | // that both that copyright notice and the limited warranty and 9 | // restricted rights notice below appear in all supporting 10 | // documentation. 11 | // 12 | // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 13 | // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF 14 | // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. 15 | // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE 16 | // UNINTERRUPTED OR ERROR FREE. 17 | ///////////////////////////////////////////////////////////////////// 18 | 19 | 'use strict'; // http://www.w3schools.com/js/js_strict.asp 20 | 21 | // web framework 22 | var express = require('express'); 23 | var router = express.Router(); 24 | 25 | var apsSDK = require('forge-apis'); 26 | 27 | // APS config information, such as client ID and secret 28 | var config = require('./config'); 29 | 30 | router.use(express.json()); 31 | 32 | // this end point will logoff the user by destroying the session 33 | // as of now there is no APS endpoint to invalidate tokens 34 | router.get('/user/logoff', function(req, res) { 35 | req.session.destroy(); 36 | res.end('/'); 37 | }); 38 | 39 | async function getToken(session, client_id, client_secret) { 40 | var client = new apsSDK.AuthClientTwoLeggedV2(client_id, client_secret, config.scopeInternal); 41 | var credentials = await client.authenticate(); 42 | 43 | session.client_id = client_id; 44 | session.client_secret = client_secret; 45 | session.access_token = credentials.access_token; 46 | 47 | console.log('Token: ' + credentials.access_token); 48 | 49 | return credentials; 50 | } 51 | 52 | // wait for Autodesk callback (oAuth callback) 53 | router.post('/user/token', async function(req, res) { 54 | console.log('/user/token'); 55 | try { 56 | var client_id = req.body.client_id; 57 | var client_secret = req.body.client_secret; 58 | 59 | var credentials = await getToken(req.session, client_id, client_secret); 60 | 61 | res.json({ token: credentials.access_token, expires_in: credentials.expires_in }); 62 | 63 | // Will call it a bit earlier than the actual expiration time, that's why 64 | // multiplying it with 900 instead of 1000 to convert from s to ms 65 | setTimeout(() => getToken(req.session, client_id, client_secret), credentials.expires_in * 900); 66 | } catch (err) { 67 | res.status(500).end(err.developerMessage); 68 | } 69 | }); 70 | 71 | module.exports = router; -------------------------------------------------------------------------------- /server/server.js: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Autodesk, Inc. All rights reserved 3 | // Written by Autodesk Partner Development 4 | // 5 | // Permission to use, copy, modify, and distribute this software in 6 | // object code form for any purpose and without fee is hereby granted, 7 | // provided that the above copyright notice appears in all copies and 8 | // that both that copyright notice and the limited warranty and 9 | // restricted rights notice below appear in all supporting 10 | // documentation. 11 | // 12 | // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 13 | // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF 14 | // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. 15 | // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE 16 | // UNINTERRUPTED OR ERROR FREE. 17 | ///////////////////////////////////////////////////////////////////// 18 | 'use strict'; 19 | 20 | var express = require('express'); 21 | var cookieParser = require('cookie-parser'); 22 | var session = require('cookie-session'); 23 | var config = require('./config'); 24 | var app = express(); 25 | 26 | // this session will be used to save the oAuth token 27 | app.use(cookieParser()); 28 | app.set('trust proxy', 1) // trust first proxy - HTTPS on Heroku 29 | app.use(session({ 30 | secret: config.sessionSecret, 31 | maxAge: 1000 * 60 * 60, // 1 hours to expire the session and avoid memory leak 32 | })); 33 | 34 | // prepare server routing 35 | app.use('/', express.static(__dirname + '/../www')); // redirect static calls 36 | app.use('/js', express.static(__dirname + '/../node_modules/bootstrap/dist/js')); // redirect static calls 37 | app.use('/js', express.static(__dirname + '/../node_modules/jquery/dist')); // redirect static calls 38 | app.use('/css', express.static(__dirname + '/../node_modules/bootstrap/dist/css')); // redirect static calls 39 | app.use('/fonts', express.static(__dirname + '/../node_modules/bootstrap/dist/fonts')); // redirect static calls 40 | app.set('port', process.env.PORT || 3000); // main port 41 | 42 | // prepare our API endpoint routing 43 | var oauth = require('./oauth'); 44 | var da = require('./design.automation'); 45 | app.use('/', oauth); // redirect oauth API calls 46 | app.use('/da', da); // redirect our Design Automation API calls 47 | 48 | module.exports = app; -------------------------------------------------------------------------------- /start.js: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////// 2 | // Copyright (c) Autodesk, Inc. All rights reserved 3 | // Written by Autodesk Partner Development 4 | // 5 | // Permission to use, copy, modify, and distribute this software in 6 | // object code form for any purpose and without fee is hereby granted, 7 | // provided that the above copyright notice appears in all copies and 8 | // that both that copyright notice and the limited warranty and 9 | // restricted rights notice below appear in all supporting 10 | // documentation. 11 | // 12 | // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 13 | // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF 14 | // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. 15 | // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE 16 | // UNINTERRUPTED OR ERROR FREE. 17 | ///////////////////////////////////////////////////////////////////// 18 | 19 | 'use strict'; 20 | 21 | var app = require('./server/server'); 22 | 23 | // start server 24 | var server = app.listen(app.get('port'), function () { 25 | console.log('Starting at ' + (new Date()).toString()); 26 | console.log('Server listening on port ' + server.address().port); 27 | }); -------------------------------------------------------------------------------- /thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/thumbnail.png -------------------------------------------------------------------------------- /www/css/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/css/32px.png -------------------------------------------------------------------------------- /www/css/40px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/css/40px.png -------------------------------------------------------------------------------- /www/css/bootstrap-theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | .btn-default, 7 | .btn-primary, 8 | .btn-success, 9 | .btn-info, 10 | .btn-warning, 11 | .btn-danger { 12 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); 13 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 14 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); 15 | } 16 | .btn-default:active, 17 | .btn-primary:active, 18 | .btn-success:active, 19 | .btn-info:active, 20 | .btn-warning:active, 21 | .btn-danger:active, 22 | .btn-default.active, 23 | .btn-primary.active, 24 | .btn-success.active, 25 | .btn-info.active, 26 | .btn-warning.active, 27 | .btn-danger.active { 28 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 29 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 30 | } 31 | .btn-default.disabled, 32 | .btn-primary.disabled, 33 | .btn-success.disabled, 34 | .btn-info.disabled, 35 | .btn-warning.disabled, 36 | .btn-danger.disabled, 37 | .btn-default[disabled], 38 | .btn-primary[disabled], 39 | .btn-success[disabled], 40 | .btn-info[disabled], 41 | .btn-warning[disabled], 42 | .btn-danger[disabled], 43 | fieldset[disabled] .btn-default, 44 | fieldset[disabled] .btn-primary, 45 | fieldset[disabled] .btn-success, 46 | fieldset[disabled] .btn-info, 47 | fieldset[disabled] .btn-warning, 48 | fieldset[disabled] .btn-danger { 49 | -webkit-box-shadow: none; 50 | box-shadow: none; 51 | } 52 | .btn-default .badge, 53 | .btn-primary .badge, 54 | .btn-success .badge, 55 | .btn-info .badge, 56 | .btn-warning .badge, 57 | .btn-danger .badge { 58 | text-shadow: none; 59 | } 60 | .btn:active, 61 | .btn.active { 62 | background-image: none; 63 | } 64 | .btn-default { 65 | text-shadow: 0 1px 0 #fff; 66 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); 67 | background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); 68 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); 69 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); 70 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); 71 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 72 | background-repeat: repeat-x; 73 | border-color: #dbdbdb; 74 | border-color: #ccc; 75 | } 76 | .btn-default:hover, 77 | .btn-default:focus { 78 | background-color: #e0e0e0; 79 | background-position: 0 -15px; 80 | } 81 | .btn-default:active, 82 | .btn-default.active { 83 | background-color: #e0e0e0; 84 | border-color: #dbdbdb; 85 | } 86 | .btn-default.disabled, 87 | .btn-default[disabled], 88 | fieldset[disabled] .btn-default, 89 | .btn-default.disabled:hover, 90 | .btn-default[disabled]:hover, 91 | fieldset[disabled] .btn-default:hover, 92 | .btn-default.disabled:focus, 93 | .btn-default[disabled]:focus, 94 | fieldset[disabled] .btn-default:focus, 95 | .btn-default.disabled.focus, 96 | .btn-default[disabled].focus, 97 | fieldset[disabled] .btn-default.focus, 98 | .btn-default.disabled:active, 99 | .btn-default[disabled]:active, 100 | fieldset[disabled] .btn-default:active, 101 | .btn-default.disabled.active, 102 | .btn-default[disabled].active, 103 | fieldset[disabled] .btn-default.active { 104 | background-color: #e0e0e0; 105 | background-image: none; 106 | } 107 | .btn-primary { 108 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); 109 | background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); 110 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); 111 | background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); 112 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); 113 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 114 | background-repeat: repeat-x; 115 | border-color: #245580; 116 | } 117 | .btn-primary:hover, 118 | .btn-primary:focus { 119 | background-color: #265a88; 120 | background-position: 0 -15px; 121 | } 122 | .btn-primary:active, 123 | .btn-primary.active { 124 | background-color: #265a88; 125 | border-color: #245580; 126 | } 127 | .btn-primary.disabled, 128 | .btn-primary[disabled], 129 | fieldset[disabled] .btn-primary, 130 | .btn-primary.disabled:hover, 131 | .btn-primary[disabled]:hover, 132 | fieldset[disabled] .btn-primary:hover, 133 | .btn-primary.disabled:focus, 134 | .btn-primary[disabled]:focus, 135 | fieldset[disabled] .btn-primary:focus, 136 | .btn-primary.disabled.focus, 137 | .btn-primary[disabled].focus, 138 | fieldset[disabled] .btn-primary.focus, 139 | .btn-primary.disabled:active, 140 | .btn-primary[disabled]:active, 141 | fieldset[disabled] .btn-primary:active, 142 | .btn-primary.disabled.active, 143 | .btn-primary[disabled].active, 144 | fieldset[disabled] .btn-primary.active { 145 | background-color: #265a88; 146 | background-image: none; 147 | } 148 | .btn-success { 149 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); 150 | background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); 151 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); 152 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); 153 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); 154 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 155 | background-repeat: repeat-x; 156 | border-color: #3e8f3e; 157 | } 158 | .btn-success:hover, 159 | .btn-success:focus { 160 | background-color: #419641; 161 | background-position: 0 -15px; 162 | } 163 | .btn-success:active, 164 | .btn-success.active { 165 | background-color: #419641; 166 | border-color: #3e8f3e; 167 | } 168 | .btn-success.disabled, 169 | .btn-success[disabled], 170 | fieldset[disabled] .btn-success, 171 | .btn-success.disabled:hover, 172 | .btn-success[disabled]:hover, 173 | fieldset[disabled] .btn-success:hover, 174 | .btn-success.disabled:focus, 175 | .btn-success[disabled]:focus, 176 | fieldset[disabled] .btn-success:focus, 177 | .btn-success.disabled.focus, 178 | .btn-success[disabled].focus, 179 | fieldset[disabled] .btn-success.focus, 180 | .btn-success.disabled:active, 181 | .btn-success[disabled]:active, 182 | fieldset[disabled] .btn-success:active, 183 | .btn-success.disabled.active, 184 | .btn-success[disabled].active, 185 | fieldset[disabled] .btn-success.active { 186 | background-color: #419641; 187 | background-image: none; 188 | } 189 | .btn-info { 190 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 191 | background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); 192 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); 193 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); 194 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); 195 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 196 | background-repeat: repeat-x; 197 | border-color: #28a4c9; 198 | } 199 | .btn-info:hover, 200 | .btn-info:focus { 201 | background-color: #2aabd2; 202 | background-position: 0 -15px; 203 | } 204 | .btn-info:active, 205 | .btn-info.active { 206 | background-color: #2aabd2; 207 | border-color: #28a4c9; 208 | } 209 | .btn-info.disabled, 210 | .btn-info[disabled], 211 | fieldset[disabled] .btn-info, 212 | .btn-info.disabled:hover, 213 | .btn-info[disabled]:hover, 214 | fieldset[disabled] .btn-info:hover, 215 | .btn-info.disabled:focus, 216 | .btn-info[disabled]:focus, 217 | fieldset[disabled] .btn-info:focus, 218 | .btn-info.disabled.focus, 219 | .btn-info[disabled].focus, 220 | fieldset[disabled] .btn-info.focus, 221 | .btn-info.disabled:active, 222 | .btn-info[disabled]:active, 223 | fieldset[disabled] .btn-info:active, 224 | .btn-info.disabled.active, 225 | .btn-info[disabled].active, 226 | fieldset[disabled] .btn-info.active { 227 | background-color: #2aabd2; 228 | background-image: none; 229 | } 230 | .btn-warning { 231 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 232 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); 233 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); 234 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); 235 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); 236 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 237 | background-repeat: repeat-x; 238 | border-color: #e38d13; 239 | } 240 | .btn-warning:hover, 241 | .btn-warning:focus { 242 | background-color: #eb9316; 243 | background-position: 0 -15px; 244 | } 245 | .btn-warning:active, 246 | .btn-warning.active { 247 | background-color: #eb9316; 248 | border-color: #e38d13; 249 | } 250 | .btn-warning.disabled, 251 | .btn-warning[disabled], 252 | fieldset[disabled] .btn-warning, 253 | .btn-warning.disabled:hover, 254 | .btn-warning[disabled]:hover, 255 | fieldset[disabled] .btn-warning:hover, 256 | .btn-warning.disabled:focus, 257 | .btn-warning[disabled]:focus, 258 | fieldset[disabled] .btn-warning:focus, 259 | .btn-warning.disabled.focus, 260 | .btn-warning[disabled].focus, 261 | fieldset[disabled] .btn-warning.focus, 262 | .btn-warning.disabled:active, 263 | .btn-warning[disabled]:active, 264 | fieldset[disabled] .btn-warning:active, 265 | .btn-warning.disabled.active, 266 | .btn-warning[disabled].active, 267 | fieldset[disabled] .btn-warning.active { 268 | background-color: #eb9316; 269 | background-image: none; 270 | } 271 | .btn-danger { 272 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 273 | background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); 274 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); 275 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); 276 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); 277 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 278 | background-repeat: repeat-x; 279 | border-color: #b92c28; 280 | } 281 | .btn-danger:hover, 282 | .btn-danger:focus { 283 | background-color: #c12e2a; 284 | background-position: 0 -15px; 285 | } 286 | .btn-danger:active, 287 | .btn-danger.active { 288 | background-color: #c12e2a; 289 | border-color: #b92c28; 290 | } 291 | .btn-danger.disabled, 292 | .btn-danger[disabled], 293 | fieldset[disabled] .btn-danger, 294 | .btn-danger.disabled:hover, 295 | .btn-danger[disabled]:hover, 296 | fieldset[disabled] .btn-danger:hover, 297 | .btn-danger.disabled:focus, 298 | .btn-danger[disabled]:focus, 299 | fieldset[disabled] .btn-danger:focus, 300 | .btn-danger.disabled.focus, 301 | .btn-danger[disabled].focus, 302 | fieldset[disabled] .btn-danger.focus, 303 | .btn-danger.disabled:active, 304 | .btn-danger[disabled]:active, 305 | fieldset[disabled] .btn-danger:active, 306 | .btn-danger.disabled.active, 307 | .btn-danger[disabled].active, 308 | fieldset[disabled] .btn-danger.active { 309 | background-color: #c12e2a; 310 | background-image: none; 311 | } 312 | .thumbnail, 313 | .img-thumbnail { 314 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 315 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 316 | } 317 | .dropdown-menu > li > a:hover, 318 | .dropdown-menu > li > a:focus { 319 | background-color: #e8e8e8; 320 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 321 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 322 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 323 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 324 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 325 | background-repeat: repeat-x; 326 | } 327 | .dropdown-menu > .active > a, 328 | .dropdown-menu > .active > a:hover, 329 | .dropdown-menu > .active > a:focus { 330 | background-color: #2e6da4; 331 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 332 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 333 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 334 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 335 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 336 | background-repeat: repeat-x; 337 | } 338 | .navbar-default { 339 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); 340 | background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); 341 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); 342 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); 343 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); 344 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 345 | background-repeat: repeat-x; 346 | border-radius: 4px; 347 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 348 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); 349 | } 350 | .navbar-default .navbar-nav > .open > a, 351 | .navbar-default .navbar-nav > .active > a { 352 | background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); 353 | background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); 354 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); 355 | background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); 356 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); 357 | background-repeat: repeat-x; 358 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 359 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); 360 | } 361 | .navbar-brand, 362 | .navbar-nav > li > a { 363 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25); 364 | } 365 | .navbar-inverse { 366 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); 367 | background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); 368 | background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); 369 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); 370 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); 371 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 372 | background-repeat: repeat-x; 373 | border-radius: 4px; 374 | } 375 | .navbar-inverse .navbar-nav > .open > a, 376 | .navbar-inverse .navbar-nav > .active > a { 377 | background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); 378 | background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); 379 | background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); 380 | background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); 381 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); 382 | background-repeat: repeat-x; 383 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 384 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); 385 | } 386 | .navbar-inverse .navbar-brand, 387 | .navbar-inverse .navbar-nav > li > a { 388 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); 389 | } 390 | .navbar-static-top, 391 | .navbar-fixed-top, 392 | .navbar-fixed-bottom { 393 | border-radius: 0; 394 | } 395 | @media (max-width: 767px) { 396 | .navbar .navbar-nav .open .dropdown-menu > .active > a, 397 | .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, 398 | .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { 399 | color: #fff; 400 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 401 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 402 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 403 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 404 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 405 | background-repeat: repeat-x; 406 | } 407 | } 408 | .alert { 409 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2); 410 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 411 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); 412 | } 413 | .alert-success { 414 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 415 | background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); 416 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); 417 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); 418 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); 419 | background-repeat: repeat-x; 420 | border-color: #b2dba1; 421 | } 422 | .alert-info { 423 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 424 | background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); 425 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); 426 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); 427 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); 428 | background-repeat: repeat-x; 429 | border-color: #9acfea; 430 | } 431 | .alert-warning { 432 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 433 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); 434 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); 435 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); 436 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); 437 | background-repeat: repeat-x; 438 | border-color: #f5e79e; 439 | } 440 | .alert-danger { 441 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 442 | background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); 443 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); 444 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); 445 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); 446 | background-repeat: repeat-x; 447 | border-color: #dca7a7; 448 | } 449 | .progress { 450 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 451 | background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); 452 | background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); 453 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); 454 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); 455 | background-repeat: repeat-x; 456 | } 457 | .progress-bar { 458 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); 459 | background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); 460 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); 461 | background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); 462 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); 463 | background-repeat: repeat-x; 464 | } 465 | .progress-bar-success { 466 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); 467 | background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); 468 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); 469 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); 470 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); 471 | background-repeat: repeat-x; 472 | } 473 | .progress-bar-info { 474 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 475 | background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); 476 | background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); 477 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); 478 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); 479 | background-repeat: repeat-x; 480 | } 481 | .progress-bar-warning { 482 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 483 | background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); 484 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); 485 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); 486 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); 487 | background-repeat: repeat-x; 488 | } 489 | .progress-bar-danger { 490 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); 491 | background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); 492 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); 493 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); 494 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); 495 | background-repeat: repeat-x; 496 | } 497 | .progress-bar-striped { 498 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 499 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 500 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 501 | } 502 | .list-group { 503 | border-radius: 4px; 504 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 505 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075); 506 | } 507 | .list-group-item.active, 508 | .list-group-item.active:hover, 509 | .list-group-item.active:focus { 510 | text-shadow: 0 -1px 0 #286090; 511 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); 512 | background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); 513 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); 514 | background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); 515 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); 516 | background-repeat: repeat-x; 517 | border-color: #2b669a; 518 | } 519 | .list-group-item.active .badge, 520 | .list-group-item.active:hover .badge, 521 | .list-group-item.active:focus .badge { 522 | text-shadow: none; 523 | } 524 | .panel { 525 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 526 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05); 527 | } 528 | .panel-default > .panel-heading { 529 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 530 | background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); 531 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); 532 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); 533 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); 534 | background-repeat: repeat-x; 535 | } 536 | .panel-primary > .panel-heading { 537 | background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 538 | background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); 539 | background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); 540 | background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); 541 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); 542 | background-repeat: repeat-x; 543 | } 544 | .panel-success > .panel-heading { 545 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 546 | background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); 547 | background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); 548 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); 549 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); 550 | background-repeat: repeat-x; 551 | } 552 | .panel-info > .panel-heading { 553 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 554 | background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); 555 | background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); 556 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); 557 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); 558 | background-repeat: repeat-x; 559 | } 560 | .panel-warning > .panel-heading { 561 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 562 | background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); 563 | background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); 564 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); 565 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); 566 | background-repeat: repeat-x; 567 | } 568 | .panel-danger > .panel-heading { 569 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 570 | background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); 571 | background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); 572 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); 573 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); 574 | background-repeat: repeat-x; 575 | } 576 | .well { 577 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 578 | background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); 579 | background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); 580 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); 581 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); 582 | background-repeat: repeat-x; 583 | border-color: #dcdcdc; 584 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 585 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); 586 | } 587 | /*# sourceMappingURL=bootstrap-theme.css.map */ 588 | -------------------------------------------------------------------------------- /www/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} 6 | /*# sourceMappingURL=bootstrap-theme.min.css.map */ -------------------------------------------------------------------------------- /www/css/bootstrap-theme.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA"} -------------------------------------------------------------------------------- /www/css/index.css: -------------------------------------------------------------------------------- 1 | .nav-pills>li.active>a:focus, .nav-pills>li.active>a:hover { 2 | color: #fff; 3 | background-color: #337ab7; 4 | } 5 | 6 | .nav-pills>li>a:hover { 7 | color: #337ab7; 8 | background-color: #fff; 9 | } 10 | 11 | .dropdown-menu { 12 | /*position: static*/ 13 | left: 40px; 14 | top: 0px; 15 | } 16 | 17 | .pt-3 { 18 | padding-top: 1rem; 19 | } 20 | 21 | 22 | 23 | 24 | .apsTreeContainer { 25 | overflow: hidden; padding:0; border:1px solid silver; height:500px; 26 | } 27 | .apsControlContainer { 28 | padding: 10px; 29 | width: 100%; position: absolute; 30 | display: inline-block; overflow: auto; 31 | } 32 | .apsControl { 33 | width: 100%; position: absolute; 34 | display: inline-block; overflow: auto; 35 | } 36 | .glyphicon-spin { 37 | -webkit-animation: spin 1000ms infinite linear; 38 | animation: spin 1000ms infinite linear; 39 | } 40 | 41 | 42 | #apsHierarchy { 43 | height: 250px; top: 0; 44 | } 45 | #apsFileOptions { 46 | height: 55px; top: 245px; 47 | border-top-width: 1px; border-top-color: silver; border-top-style: solid; 48 | } 49 | #apsProperties { 50 | height: 195px; bottom: 0; 51 | border-top-width: 1px; border-top-color: silver; border-top-style: solid; 52 | } 53 | #apsCreateBucket { 54 | height: 135px; bottom: 0px; 55 | border-top-width: 1px; border-top-color: silver; border-top-style: solid; 56 | overflow: hidden; 57 | } 58 | #appbundlesTree, #appbundlesInfo, #activitiesTree, #activitiesInfo, #workitemsTree, #workitemsInfo { 59 | height: 363px; 60 | overflow: auto; 61 | } 62 | #workitemsTree { 63 | height: 203px; 64 | overflow: auto; 65 | } 66 | #chartCanvasContainer { 67 | width: 100%; 68 | height: 160px; 69 | position: relative; 70 | } 71 | #copyChartData { 72 | position: absolute; 73 | top: 0px; 74 | left: 2px; 75 | color: grey; 76 | } 77 | #copyChartData:hover { 78 | color: black; 79 | } 80 | .tab-pane { 81 | margin: 15px; 82 | } 83 | #apsFormats { 84 | vertical-align: middle; 85 | } 86 | #apsUploadHidden { 87 | visibility: hidden; 88 | } 89 | 90 | @-webkit-keyframes spin { 91 | 0% { 92 | -webkit-transform: rotate(0deg); 93 | transform: rotate(0deg); 94 | } 95 | 100% { 96 | -webkit-transform: rotate(359deg); 97 | transform: rotate(359deg); 98 | } 99 | } 100 | @keyframes spin { 101 | 0% { 102 | -webkit-transform: rotate(0deg); 103 | transform: rotate(0deg); 104 | } 105 | 100% { 106 | -webkit-transform: rotate(359deg); 107 | transform: rotate(359deg); 108 | } 109 | } 110 | 111 | .btn-primary.active { 112 | background-color: limegreen; 113 | } 114 | -------------------------------------------------------------------------------- /www/css/jstree.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-hidden, 70 | .jstree-node.jstree-hidden { 71 | display: none; 72 | } 73 | .jstree-rtl .jstree-anchor { 74 | padding: 0 1px 0 4px; 75 | } 76 | .jstree-rtl .jstree-anchor > .jstree-themeicon { 77 | margin-left: 2px; 78 | margin-right: 0; 79 | } 80 | .jstree-rtl .jstree-node { 81 | margin-left: 0; 82 | } 83 | .jstree-rtl .jstree-container-ul > .jstree-node { 84 | margin-right: 0; 85 | } 86 | .jstree-wholerow-ul { 87 | position: relative; 88 | display: inline-block; 89 | min-width: 100%; 90 | } 91 | .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { 92 | cursor: pointer; 93 | } 94 | .jstree-wholerow-ul .jstree-anchor, 95 | .jstree-wholerow-ul .jstree-icon { 96 | position: relative; 97 | } 98 | .jstree-wholerow-ul .jstree-wholerow { 99 | width: 100%; 100 | cursor: pointer; 101 | position: absolute; 102 | left: 0; 103 | -webkit-user-select: none; 104 | -moz-user-select: none; 105 | -ms-user-select: none; 106 | user-select: none; 107 | } 108 | .vakata-context { 109 | display: none; 110 | } 111 | .vakata-context, 112 | .vakata-context ul { 113 | margin: 0; 114 | padding: 2px; 115 | position: absolute; 116 | background: #f5f5f5; 117 | border: 1px solid #979797; 118 | box-shadow: 2px 2px 2px #999999; 119 | } 120 | .vakata-context ul { 121 | list-style: none; 122 | left: 100%; 123 | margin-top: -2.7em; 124 | margin-left: -4px; 125 | } 126 | .vakata-context .vakata-context-right ul { 127 | left: auto; 128 | right: 100%; 129 | margin-left: auto; 130 | margin-right: -4px; 131 | } 132 | .vakata-context li { 133 | list-style: none; 134 | } 135 | .vakata-context li > a { 136 | display: block; 137 | padding: 0 2em 0 2em; 138 | text-decoration: none; 139 | width: auto; 140 | color: black; 141 | white-space: nowrap; 142 | line-height: 2.4em; 143 | text-shadow: 1px 1px 0 white; 144 | border-radius: 1px; 145 | } 146 | .vakata-context li > a:hover { 147 | position: relative; 148 | background-color: #e8eff7; 149 | box-shadow: 0 0 2px #0a6aa1; 150 | } 151 | .vakata-context li > a.vakata-context-parent { 152 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); 153 | background-position: right center; 154 | background-repeat: no-repeat; 155 | } 156 | .vakata-context li > a:focus { 157 | outline: 0; 158 | } 159 | .vakata-context .vakata-context-hover > a { 160 | position: relative; 161 | background-color: #e8eff7; 162 | box-shadow: 0 0 2px #0a6aa1; 163 | } 164 | .vakata-context .vakata-context-separator > a, 165 | .vakata-context .vakata-context-separator > a:hover { 166 | background: white; 167 | border: 0; 168 | border-top: 1px solid #e2e3e3; 169 | height: 1px; 170 | min-height: 1px; 171 | max-height: 1px; 172 | padding: 0; 173 | margin: 0 0 0 2.4em; 174 | border-left: 1px solid #e0e0e0; 175 | text-shadow: 0 0 0 transparent; 176 | box-shadow: 0 0 0 transparent; 177 | border-radius: 0; 178 | } 179 | .vakata-context .vakata-contextmenu-disabled a, 180 | .vakata-context .vakata-contextmenu-disabled a:hover { 181 | color: silver; 182 | background-color: transparent; 183 | border: 0; 184 | box-shadow: 0 0 0; 185 | } 186 | .vakata-context li > a > i { 187 | text-decoration: none; 188 | display: inline-block; 189 | width: 2.4em; 190 | height: 2.4em; 191 | background: transparent; 192 | margin: 0 0 0 -2em; 193 | vertical-align: top; 194 | text-align: center; 195 | line-height: 2.4em; 196 | } 197 | .vakata-context li > a > i:empty { 198 | width: 2.4em; 199 | line-height: 2.4em; 200 | } 201 | .vakata-context li > a .vakata-contextmenu-sep { 202 | display: inline-block; 203 | width: 1px; 204 | height: 2.4em; 205 | background: white; 206 | margin: 0 0.5em 0 0; 207 | border-left: 1px solid #e2e3e3; 208 | } 209 | .vakata-context .vakata-contextmenu-shortcut { 210 | font-size: 0.8em; 211 | color: silver; 212 | opacity: 0.5; 213 | display: none; 214 | } 215 | .vakata-context-rtl ul { 216 | left: auto; 217 | right: 100%; 218 | margin-left: auto; 219 | margin-right: -4px; 220 | } 221 | .vakata-context-rtl li > a.vakata-context-parent { 222 | background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); 223 | background-position: left center; 224 | background-repeat: no-repeat; 225 | } 226 | .vakata-context-rtl .vakata-context-separator > a { 227 | margin: 0 2.4em 0 0; 228 | border-left: 0; 229 | border-right: 1px solid #e2e3e3; 230 | } 231 | .vakata-context-rtl .vakata-context-left ul { 232 | right: auto; 233 | left: 100%; 234 | margin-left: -4px; 235 | margin-right: auto; 236 | } 237 | .vakata-context-rtl li > a > i { 238 | margin: 0 -2em 0 0; 239 | } 240 | .vakata-context-rtl li > a .vakata-contextmenu-sep { 241 | margin: 0 0 0 0.5em; 242 | border-left-color: white; 243 | background: #e2e3e3; 244 | } 245 | #jstree-marker { 246 | position: absolute; 247 | top: 0; 248 | left: 0; 249 | margin: -5px 0 0 0; 250 | padding: 0; 251 | border-right: 0; 252 | border-top: 5px solid transparent; 253 | border-bottom: 5px solid transparent; 254 | border-left: 5px solid; 255 | width: 0; 256 | height: 0; 257 | font-size: 0; 258 | line-height: 0; 259 | } 260 | #jstree-dnd { 261 | line-height: 16px; 262 | margin: 0; 263 | padding: 4px; 264 | } 265 | #jstree-dnd .jstree-icon, 266 | #jstree-dnd .jstree-copy { 267 | display: inline-block; 268 | text-decoration: none; 269 | margin: 0 2px 0 0; 270 | padding: 0; 271 | width: 16px; 272 | height: 16px; 273 | } 274 | #jstree-dnd .jstree-ok { 275 | background: green; 276 | } 277 | #jstree-dnd .jstree-er { 278 | background: red; 279 | } 280 | #jstree-dnd .jstree-copy { 281 | margin: 0 2px 0 2px; 282 | } 283 | .jstree-default .jstree-node, 284 | .jstree-default .jstree-icon { 285 | background-repeat: no-repeat; 286 | background-color: transparent; 287 | } 288 | .jstree-default .jstree-anchor, 289 | .jstree-default .jstree-wholerow { 290 | transition: background-color 0.15s, box-shadow 0.15s; 291 | } 292 | .jstree-default .jstree-hovered { 293 | background: #e7f4f9; 294 | border-radius: 2px; 295 | box-shadow: inset 0 0 1px #cccccc; 296 | } 297 | .jstree-default .jstree-context { 298 | background: #e7f4f9; 299 | border-radius: 2px; 300 | box-shadow: inset 0 0 1px #cccccc; 301 | } 302 | .jstree-default .jstree-clicked { 303 | background: #beebff; 304 | border-radius: 2px; 305 | box-shadow: inset 0 0 1px #999999; 306 | } 307 | .jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { 308 | display: none; 309 | } 310 | .jstree-default .jstree-disabled { 311 | background: transparent; 312 | color: #666666; 313 | } 314 | .jstree-default .jstree-disabled.jstree-hovered { 315 | background: transparent; 316 | box-shadow: none; 317 | } 318 | .jstree-default .jstree-disabled.jstree-clicked { 319 | background: #efefef; 320 | } 321 | .jstree-default .jstree-disabled > .jstree-icon { 322 | opacity: 0.8; 323 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 324 | /* Firefox 10+ */ 325 | filter: gray; 326 | /* IE6-9 */ 327 | -webkit-filter: grayscale(100%); 328 | /* Chrome 19+ & Safari 6+ */ 329 | } 330 | .jstree-default .jstree-search { 331 | font-style: italic; 332 | color: #8b0000; 333 | font-weight: bold; 334 | } 335 | .jstree-default .jstree-no-checkboxes .jstree-checkbox { 336 | display: none !important; 337 | } 338 | .jstree-default.jstree-checkbox-no-clicked .jstree-clicked { 339 | background: transparent; 340 | box-shadow: none; 341 | } 342 | .jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { 343 | background: #e7f4f9; 344 | } 345 | .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { 346 | background: transparent; 347 | } 348 | .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { 349 | background: #e7f4f9; 350 | } 351 | .jstree-default > .jstree-striped { 352 | min-width: 100%; 353 | display: inline-block; 354 | background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; 355 | } 356 | .jstree-default > .jstree-wholerow-ul .jstree-hovered, 357 | .jstree-default > .jstree-wholerow-ul .jstree-clicked { 358 | background: transparent; 359 | box-shadow: none; 360 | border-radius: 0; 361 | } 362 | .jstree-default .jstree-wholerow { 363 | -moz-box-sizing: border-box; 364 | -webkit-box-sizing: border-box; 365 | box-sizing: border-box; 366 | } 367 | .jstree-default .jstree-wholerow-hovered { 368 | background: #e7f4f9; 369 | } 370 | .jstree-default .jstree-wholerow-clicked { 371 | background: #beebff; 372 | background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); 373 | background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); 374 | } 375 | .jstree-default .jstree-node { 376 | min-height: 24px; 377 | line-height: 24px; 378 | margin-left: 24px; 379 | min-width: 24px; 380 | } 381 | .jstree-default .jstree-anchor { 382 | line-height: 24px; 383 | height: 24px; 384 | } 385 | .jstree-default .jstree-icon { 386 | width: 24px; 387 | height: 24px; 388 | line-height: 24px; 389 | } 390 | .jstree-default .jstree-icon:empty { 391 | width: 24px; 392 | height: 24px; 393 | line-height: 24px; 394 | } 395 | .jstree-default.jstree-rtl .jstree-node { 396 | margin-right: 24px; 397 | } 398 | .jstree-default .jstree-wholerow { 399 | height: 24px; 400 | } 401 | .jstree-default .jstree-node, 402 | .jstree-default .jstree-icon { 403 | background-image: url("32px.png"); 404 | } 405 | .jstree-default .jstree-node { 406 | background-position: -292px -4px; 407 | background-repeat: repeat-y; 408 | } 409 | .jstree-default .jstree-last { 410 | background: transparent; 411 | } 412 | .jstree-default .jstree-open > .jstree-ocl { 413 | background-position: -132px -4px; 414 | } 415 | .jstree-default .jstree-closed > .jstree-ocl { 416 | background-position: -100px -4px; 417 | } 418 | .jstree-default .jstree-leaf > .jstree-ocl { 419 | background-position: -68px -4px; 420 | } 421 | .jstree-default .jstree-themeicon { 422 | background-position: -260px -4px; 423 | } 424 | .jstree-default > .jstree-no-dots .jstree-node, 425 | .jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { 426 | background: transparent; 427 | } 428 | .jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { 429 | background-position: -36px -4px; 430 | } 431 | .jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { 432 | background-position: -4px -4px; 433 | } 434 | .jstree-default .jstree-disabled { 435 | background: transparent; 436 | } 437 | .jstree-default .jstree-disabled.jstree-hovered { 438 | background: transparent; 439 | } 440 | .jstree-default .jstree-disabled.jstree-clicked { 441 | background: #efefef; 442 | } 443 | .jstree-default .jstree-checkbox { 444 | background-position: -164px -4px; 445 | } 446 | .jstree-default .jstree-checkbox:hover { 447 | background-position: -164px -36px; 448 | } 449 | .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 450 | .jstree-default .jstree-checked > .jstree-checkbox { 451 | background-position: -228px -4px; 452 | } 453 | .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 454 | .jstree-default .jstree-checked > .jstree-checkbox:hover { 455 | background-position: -228px -36px; 456 | } 457 | .jstree-default .jstree-anchor > .jstree-undetermined { 458 | background-position: -196px -4px; 459 | } 460 | .jstree-default .jstree-anchor > .jstree-undetermined:hover { 461 | background-position: -196px -36px; 462 | } 463 | .jstree-default .jstree-checkbox-disabled { 464 | opacity: 0.8; 465 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 466 | /* Firefox 10+ */ 467 | filter: gray; 468 | /* IE6-9 */ 469 | -webkit-filter: grayscale(100%); 470 | /* Chrome 19+ & Safari 6+ */ 471 | } 472 | .jstree-default > .jstree-striped { 473 | background-size: auto 48px; 474 | } 475 | .jstree-default.jstree-rtl .jstree-node { 476 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 477 | background-position: 100% 1px; 478 | background-repeat: repeat-y; 479 | } 480 | .jstree-default.jstree-rtl .jstree-last { 481 | background: transparent; 482 | } 483 | .jstree-default.jstree-rtl .jstree-open > .jstree-ocl { 484 | background-position: -132px -36px; 485 | } 486 | .jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { 487 | background-position: -100px -36px; 488 | } 489 | .jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { 490 | background-position: -68px -36px; 491 | } 492 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, 493 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 494 | background: transparent; 495 | } 496 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 497 | background-position: -36px -36px; 498 | } 499 | .jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 500 | background-position: -4px -36px; 501 | } 502 | .jstree-default .jstree-themeicon-custom { 503 | background-color: transparent; 504 | background-image: none; 505 | background-position: 0 0; 506 | } 507 | .jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { 508 | background: url("throbber.gif") center center no-repeat; 509 | } 510 | .jstree-default .jstree-file { 511 | background: url("32px.png") -100px -68px no-repeat; 512 | } 513 | .jstree-default .jstree-folder { 514 | background: url("32px.png") -260px -4px no-repeat; 515 | } 516 | .jstree-default > .jstree-container-ul > .jstree-node { 517 | margin-left: 0; 518 | margin-right: 0; 519 | } 520 | #jstree-dnd.jstree-default { 521 | line-height: 24px; 522 | padding: 0 4px; 523 | } 524 | #jstree-dnd.jstree-default .jstree-ok, 525 | #jstree-dnd.jstree-default .jstree-er { 526 | background-image: url("32px.png"); 527 | background-repeat: no-repeat; 528 | background-color: transparent; 529 | } 530 | #jstree-dnd.jstree-default i { 531 | background: transparent; 532 | width: 24px; 533 | height: 24px; 534 | line-height: 24px; 535 | } 536 | #jstree-dnd.jstree-default .jstree-ok { 537 | background-position: -4px -68px; 538 | } 539 | #jstree-dnd.jstree-default .jstree-er { 540 | background-position: -36px -68px; 541 | } 542 | .jstree-default.jstree-rtl .jstree-node { 543 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 544 | } 545 | .jstree-default.jstree-rtl .jstree-last { 546 | background: transparent; 547 | } 548 | .jstree-default-small .jstree-node { 549 | min-height: 18px; 550 | line-height: 18px; 551 | margin-left: 18px; 552 | min-width: 18px; 553 | } 554 | .jstree-default-small .jstree-anchor { 555 | line-height: 18px; 556 | height: 18px; 557 | } 558 | .jstree-default-small .jstree-icon { 559 | width: 18px; 560 | height: 18px; 561 | line-height: 18px; 562 | } 563 | .jstree-default-small .jstree-icon:empty { 564 | width: 18px; 565 | height: 18px; 566 | line-height: 18px; 567 | } 568 | .jstree-default-small.jstree-rtl .jstree-node { 569 | margin-right: 18px; 570 | } 571 | .jstree-default-small .jstree-wholerow { 572 | height: 18px; 573 | } 574 | .jstree-default-small .jstree-node, 575 | .jstree-default-small .jstree-icon { 576 | background-image: url("32px.png"); 577 | } 578 | .jstree-default-small .jstree-node { 579 | background-position: -295px -7px; 580 | background-repeat: repeat-y; 581 | } 582 | .jstree-default-small .jstree-last { 583 | background: transparent; 584 | } 585 | .jstree-default-small .jstree-open > .jstree-ocl { 586 | background-position: -135px -7px; 587 | } 588 | .jstree-default-small .jstree-closed > .jstree-ocl { 589 | background-position: -103px -7px; 590 | } 591 | .jstree-default-small .jstree-leaf > .jstree-ocl { 592 | background-position: -71px -7px; 593 | } 594 | .jstree-default-small .jstree-themeicon { 595 | background-position: -263px -7px; 596 | } 597 | .jstree-default-small > .jstree-no-dots .jstree-node, 598 | .jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { 599 | background: transparent; 600 | } 601 | .jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { 602 | background-position: -39px -7px; 603 | } 604 | .jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { 605 | background-position: -7px -7px; 606 | } 607 | .jstree-default-small .jstree-disabled { 608 | background: transparent; 609 | } 610 | .jstree-default-small .jstree-disabled.jstree-hovered { 611 | background: transparent; 612 | } 613 | .jstree-default-small .jstree-disabled.jstree-clicked { 614 | background: #efefef; 615 | } 616 | .jstree-default-small .jstree-checkbox { 617 | background-position: -167px -7px; 618 | } 619 | .jstree-default-small .jstree-checkbox:hover { 620 | background-position: -167px -39px; 621 | } 622 | .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 623 | .jstree-default-small .jstree-checked > .jstree-checkbox { 624 | background-position: -231px -7px; 625 | } 626 | .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 627 | .jstree-default-small .jstree-checked > .jstree-checkbox:hover { 628 | background-position: -231px -39px; 629 | } 630 | .jstree-default-small .jstree-anchor > .jstree-undetermined { 631 | background-position: -199px -7px; 632 | } 633 | .jstree-default-small .jstree-anchor > .jstree-undetermined:hover { 634 | background-position: -199px -39px; 635 | } 636 | .jstree-default-small .jstree-checkbox-disabled { 637 | opacity: 0.8; 638 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 639 | /* Firefox 10+ */ 640 | filter: gray; 641 | /* IE6-9 */ 642 | -webkit-filter: grayscale(100%); 643 | /* Chrome 19+ & Safari 6+ */ 644 | } 645 | .jstree-default-small > .jstree-striped { 646 | background-size: auto 36px; 647 | } 648 | .jstree-default-small.jstree-rtl .jstree-node { 649 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 650 | background-position: 100% 1px; 651 | background-repeat: repeat-y; 652 | } 653 | .jstree-default-small.jstree-rtl .jstree-last { 654 | background: transparent; 655 | } 656 | .jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { 657 | background-position: -135px -39px; 658 | } 659 | .jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { 660 | background-position: -103px -39px; 661 | } 662 | .jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { 663 | background-position: -71px -39px; 664 | } 665 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, 666 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 667 | background: transparent; 668 | } 669 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 670 | background-position: -39px -39px; 671 | } 672 | .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 673 | background-position: -7px -39px; 674 | } 675 | .jstree-default-small .jstree-themeicon-custom { 676 | background-color: transparent; 677 | background-image: none; 678 | background-position: 0 0; 679 | } 680 | .jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { 681 | background: url("throbber.gif") center center no-repeat; 682 | } 683 | .jstree-default-small .jstree-file { 684 | background: url("32px.png") -103px -71px no-repeat; 685 | } 686 | .jstree-default-small .jstree-folder { 687 | background: url("32px.png") -263px -7px no-repeat; 688 | } 689 | .jstree-default-small > .jstree-container-ul > .jstree-node { 690 | margin-left: 0; 691 | margin-right: 0; 692 | } 693 | #jstree-dnd.jstree-default-small { 694 | line-height: 18px; 695 | padding: 0 4px; 696 | } 697 | #jstree-dnd.jstree-default-small .jstree-ok, 698 | #jstree-dnd.jstree-default-small .jstree-er { 699 | background-image: url("32px.png"); 700 | background-repeat: no-repeat; 701 | background-color: transparent; 702 | } 703 | #jstree-dnd.jstree-default-small i { 704 | background: transparent; 705 | width: 18px; 706 | height: 18px; 707 | line-height: 18px; 708 | } 709 | #jstree-dnd.jstree-default-small .jstree-ok { 710 | background-position: -7px -71px; 711 | } 712 | #jstree-dnd.jstree-default-small .jstree-er { 713 | background-position: -39px -71px; 714 | } 715 | .jstree-default-small.jstree-rtl .jstree-node { 716 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); 717 | } 718 | .jstree-default-small.jstree-rtl .jstree-last { 719 | background: transparent; 720 | } 721 | .jstree-default-large .jstree-node { 722 | min-height: 32px; 723 | line-height: 32px; 724 | margin-left: 32px; 725 | min-width: 32px; 726 | } 727 | .jstree-default-large .jstree-anchor { 728 | line-height: 32px; 729 | height: 32px; 730 | } 731 | .jstree-default-large .jstree-icon { 732 | width: 32px; 733 | height: 32px; 734 | line-height: 32px; 735 | } 736 | .jstree-default-large .jstree-icon:empty { 737 | width: 32px; 738 | height: 32px; 739 | line-height: 32px; 740 | } 741 | .jstree-default-large.jstree-rtl .jstree-node { 742 | margin-right: 32px; 743 | } 744 | .jstree-default-large .jstree-wholerow { 745 | height: 32px; 746 | } 747 | .jstree-default-large .jstree-node, 748 | .jstree-default-large .jstree-icon { 749 | background-image: url("32px.png"); 750 | } 751 | .jstree-default-large .jstree-node { 752 | background-position: -288px 0px; 753 | background-repeat: repeat-y; 754 | } 755 | .jstree-default-large .jstree-last { 756 | background: transparent; 757 | } 758 | .jstree-default-large .jstree-open > .jstree-ocl { 759 | background-position: -128px 0px; 760 | } 761 | .jstree-default-large .jstree-closed > .jstree-ocl { 762 | background-position: -96px 0px; 763 | } 764 | .jstree-default-large .jstree-leaf > .jstree-ocl { 765 | background-position: -64px 0px; 766 | } 767 | .jstree-default-large .jstree-themeicon { 768 | background-position: -256px 0px; 769 | } 770 | .jstree-default-large > .jstree-no-dots .jstree-node, 771 | .jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { 772 | background: transparent; 773 | } 774 | .jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { 775 | background-position: -32px 0px; 776 | } 777 | .jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { 778 | background-position: 0px 0px; 779 | } 780 | .jstree-default-large .jstree-disabled { 781 | background: transparent; 782 | } 783 | .jstree-default-large .jstree-disabled.jstree-hovered { 784 | background: transparent; 785 | } 786 | .jstree-default-large .jstree-disabled.jstree-clicked { 787 | background: #efefef; 788 | } 789 | .jstree-default-large .jstree-checkbox { 790 | background-position: -160px 0px; 791 | } 792 | .jstree-default-large .jstree-checkbox:hover { 793 | background-position: -160px -32px; 794 | } 795 | .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 796 | .jstree-default-large .jstree-checked > .jstree-checkbox { 797 | background-position: -224px 0px; 798 | } 799 | .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 800 | .jstree-default-large .jstree-checked > .jstree-checkbox:hover { 801 | background-position: -224px -32px; 802 | } 803 | .jstree-default-large .jstree-anchor > .jstree-undetermined { 804 | background-position: -192px 0px; 805 | } 806 | .jstree-default-large .jstree-anchor > .jstree-undetermined:hover { 807 | background-position: -192px -32px; 808 | } 809 | .jstree-default-large .jstree-checkbox-disabled { 810 | opacity: 0.8; 811 | filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); 812 | /* Firefox 10+ */ 813 | filter: gray; 814 | /* IE6-9 */ 815 | -webkit-filter: grayscale(100%); 816 | /* Chrome 19+ & Safari 6+ */ 817 | } 818 | .jstree-default-large > .jstree-striped { 819 | background-size: auto 64px; 820 | } 821 | .jstree-default-large.jstree-rtl .jstree-node { 822 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); 823 | background-position: 100% 1px; 824 | background-repeat: repeat-y; 825 | } 826 | .jstree-default-large.jstree-rtl .jstree-last { 827 | background: transparent; 828 | } 829 | .jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { 830 | background-position: -128px -32px; 831 | } 832 | .jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { 833 | background-position: -96px -32px; 834 | } 835 | .jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { 836 | background-position: -64px -32px; 837 | } 838 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, 839 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { 840 | background: transparent; 841 | } 842 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { 843 | background-position: -32px -32px; 844 | } 845 | .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { 846 | background-position: 0px -32px; 847 | } 848 | .jstree-default-large .jstree-themeicon-custom { 849 | background-color: transparent; 850 | background-image: none; 851 | background-position: 0 0; 852 | } 853 | .jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { 854 | background: url("throbber.gif") center center no-repeat; 855 | } 856 | .jstree-default-large .jstree-file { 857 | background: url("32px.png") -96px -64px no-repeat; 858 | } 859 | .jstree-default-large .jstree-folder { 860 | background: url("32px.png") -256px 0px no-repeat; 861 | } 862 | .jstree-default-large > .jstree-container-ul > .jstree-node { 863 | margin-left: 0; 864 | margin-right: 0; 865 | } 866 | #jstree-dnd.jstree-default-large { 867 | line-height: 32px; 868 | padding: 0 4px; 869 | } 870 | #jstree-dnd.jstree-default-large .jstree-ok, 871 | #jstree-dnd.jstree-default-large .jstree-er { 872 | background-image: url("32px.png"); 873 | background-repeat: no-repeat; 874 | background-color: transparent; 875 | } 876 | #jstree-dnd.jstree-default-large i { 877 | background: transparent; 878 | width: 32px; 879 | height: 32px; 880 | line-height: 32px; 881 | } 882 | #jstree-dnd.jstree-default-large .jstree-ok { 883 | background-position: 0px -64px; 884 | } 885 | #jstree-dnd.jstree-default-large .jstree-er { 886 | background-position: -32px -64px; 887 | } 888 | .jstree-default-large.jstree-rtl .jstree-node { 889 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); 890 | } 891 | .jstree-default-large.jstree-rtl .jstree-last { 892 | background: transparent; 893 | } 894 | @media (max-width: 768px) { 895 | #jstree-dnd.jstree-dnd-responsive { 896 | line-height: 40px; 897 | font-weight: bold; 898 | font-size: 1.1em; 899 | text-shadow: 1px 1px white; 900 | } 901 | #jstree-dnd.jstree-dnd-responsive > i { 902 | background: transparent; 903 | width: 40px; 904 | height: 40px; 905 | } 906 | #jstree-dnd.jstree-dnd-responsive > .jstree-ok { 907 | background-image: url("40px.png"); 908 | background-position: 0 -200px; 909 | background-size: 120px 240px; 910 | } 911 | #jstree-dnd.jstree-dnd-responsive > .jstree-er { 912 | background-image: url("40px.png"); 913 | background-position: -40px -200px; 914 | background-size: 120px 240px; 915 | } 916 | #jstree-marker.jstree-dnd-responsive { 917 | border-left-width: 10px; 918 | border-top-width: 10px; 919 | border-bottom-width: 10px; 920 | margin-top: -10px; 921 | } 922 | } 923 | @media (max-width: 768px) { 924 | .jstree-default-responsive { 925 | /* 926 | .jstree-open > .jstree-ocl, 927 | .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } 928 | */ 929 | } 930 | .jstree-default-responsive .jstree-icon { 931 | background-image: url("40px.png"); 932 | } 933 | .jstree-default-responsive .jstree-node, 934 | .jstree-default-responsive .jstree-leaf > .jstree-ocl { 935 | background: transparent; 936 | } 937 | .jstree-default-responsive .jstree-node { 938 | min-height: 40px; 939 | line-height: 40px; 940 | margin-left: 40px; 941 | min-width: 40px; 942 | white-space: nowrap; 943 | } 944 | .jstree-default-responsive .jstree-anchor { 945 | line-height: 40px; 946 | height: 40px; 947 | } 948 | .jstree-default-responsive .jstree-icon, 949 | .jstree-default-responsive .jstree-icon:empty { 950 | width: 40px; 951 | height: 40px; 952 | line-height: 40px; 953 | } 954 | .jstree-default-responsive > .jstree-container-ul > .jstree-node { 955 | margin-left: 0; 956 | } 957 | .jstree-default-responsive.jstree-rtl .jstree-node { 958 | margin-left: 0; 959 | margin-right: 40px; 960 | background: transparent; 961 | } 962 | .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { 963 | margin-right: 0; 964 | } 965 | .jstree-default-responsive .jstree-ocl, 966 | .jstree-default-responsive .jstree-themeicon, 967 | .jstree-default-responsive .jstree-checkbox { 968 | background-size: 120px 240px; 969 | } 970 | .jstree-default-responsive .jstree-leaf > .jstree-ocl, 971 | .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { 972 | background: transparent; 973 | } 974 | .jstree-default-responsive .jstree-open > .jstree-ocl { 975 | background-position: 0 0px !important; 976 | } 977 | .jstree-default-responsive .jstree-closed > .jstree-ocl { 978 | background-position: 0 -40px !important; 979 | } 980 | .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { 981 | background-position: -40px 0px !important; 982 | } 983 | .jstree-default-responsive .jstree-themeicon { 984 | background-position: -40px -40px; 985 | } 986 | .jstree-default-responsive .jstree-checkbox, 987 | .jstree-default-responsive .jstree-checkbox:hover { 988 | background-position: -40px -80px; 989 | } 990 | .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, 991 | .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, 992 | .jstree-default-responsive .jstree-checked > .jstree-checkbox, 993 | .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { 994 | background-position: 0 -80px; 995 | } 996 | .jstree-default-responsive .jstree-anchor > .jstree-undetermined, 997 | .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { 998 | background-position: 0 -120px; 999 | } 1000 | .jstree-default-responsive .jstree-anchor { 1001 | font-weight: bold; 1002 | font-size: 1.1em; 1003 | text-shadow: 1px 1px white; 1004 | } 1005 | .jstree-default-responsive > .jstree-striped { 1006 | background: transparent; 1007 | } 1008 | .jstree-default-responsive .jstree-wholerow { 1009 | border-top: 1px solid rgba(255, 255, 255, 0.7); 1010 | border-bottom: 1px solid rgba(64, 64, 64, 0.2); 1011 | background: #ebebeb; 1012 | height: 40px; 1013 | } 1014 | .jstree-default-responsive .jstree-wholerow-hovered { 1015 | background: #e7f4f9; 1016 | } 1017 | .jstree-default-responsive .jstree-wholerow-clicked { 1018 | background: #beebff; 1019 | } 1020 | .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { 1021 | box-shadow: inset 0 -6px 3px -5px #666666; 1022 | } 1023 | .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { 1024 | box-shadow: inset 0 6px 3px -5px #666666; 1025 | border-top: 0; 1026 | } 1027 | .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { 1028 | box-shadow: none; 1029 | } 1030 | .jstree-default-responsive .jstree-node, 1031 | .jstree-default-responsive .jstree-icon, 1032 | .jstree-default-responsive .jstree-node > .jstree-ocl, 1033 | .jstree-default-responsive .jstree-themeicon, 1034 | .jstree-default-responsive .jstree-checkbox { 1035 | background-image: url("40px.png"); 1036 | background-size: 120px 240px; 1037 | } 1038 | .jstree-default-responsive .jstree-node { 1039 | background-position: -80px 0; 1040 | background-repeat: repeat-y; 1041 | } 1042 | .jstree-default-responsive .jstree-last { 1043 | background: transparent; 1044 | } 1045 | .jstree-default-responsive .jstree-leaf > .jstree-ocl { 1046 | background-position: -40px -120px; 1047 | } 1048 | .jstree-default-responsive .jstree-last > .jstree-ocl { 1049 | background-position: -40px -160px; 1050 | } 1051 | .jstree-default-responsive .jstree-themeicon-custom { 1052 | background-color: transparent; 1053 | background-image: none; 1054 | background-position: 0 0; 1055 | } 1056 | .jstree-default-responsive .jstree-file { 1057 | background: url("40px.png") 0 -160px no-repeat; 1058 | background-size: 120px 240px; 1059 | } 1060 | .jstree-default-responsive .jstree-folder { 1061 | background: url("40px.png") -40px -40px no-repeat; 1062 | background-size: 120px 240px; 1063 | } 1064 | .jstree-default-responsive > .jstree-container-ul > .jstree-node { 1065 | margin-left: 0; 1066 | margin-right: 0; 1067 | } 1068 | } 1069 | -------------------------------------------------------------------------------- /www/css/jstree.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-hidden,.jstree-node.jstree-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;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}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;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;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;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;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-context{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{min-width:100%;display:inline-block;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:-webkit-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-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.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-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.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-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.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;background:0 0}.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,.jstree-default-responsive.jstree-rtl .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}} -------------------------------------------------------------------------------- /www/css/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/css/throbber.gif -------------------------------------------------------------------------------- /www/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/favicon.ico -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /www/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /www/img/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /www/img/indexpage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/autodesk-platform-services/aps-design-automation-tools/a8ff782f44e9f5b3aef0e73b49eafdf77dc7cc44/www/img/indexpage.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Design Automation Tools 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |

Design Automation Tools

32 | 33 |
34 |
35 | 36 |
37 |
38 | 39 |
40 | 46 |
47 | 48 | 60 | 61 |
 
62 | 63 |
64 |
65 | 79 |
80 |
81 |
82 |
83 |
84 | 85 |
86 | 88 | 89 | 90 | 92 | 93 | 94 | 96 | 97 | 98 |
99 | 100 |
101 | 102 | 107 |
108 |
109 |
110 |
111 |
112 | 113 |
114 | 116 | 117 | 118 | 120 | 121 | 122 | 124 | 125 | 126 |
127 | 128 |
129 | 130 | 135 |
136 |
137 |
138 |
139 |
140 | 141 |
142 | 151 |
152 | 153 |
154 | 155 |
156 |
157 | 158 | 160 | 161 | 162 | 163 | 165 | 166 | 167 | 169 | 170 | 171 | 173 | 174 | 175 |
176 | 177 |
178 | 179 | 184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 | 193 | 194 | 211 | 212 | 213 | -------------------------------------------------------------------------------- /www/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under the MIT license 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /www/js/html5.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.7.0 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:"3.7.0",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f); 8 | if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;dn)throw new Error("Minimum 1 argument must be given");if(e.isArray(l)){r={};for(var f in l){t=l[f];try{r[t]=JSON.parse(s.getItem(t))}catch(c){r[t]=s.getItem(t)}}return r}if(1!=n){try{r=JSON.parse(s.getItem(l))}catch(c){throw new ReferenceError(l+" is not defined in this storage")}for(var f=1;n-1>f;f++)if(r=r[a[f]],void 0===r)throw new ReferenceError([].slice.call(a,1,f+1).join(".")+" is not defined in this storage");if(e.isArray(a[f])){i=r,r={};for(var h in a[f])r[a[f][h]]=i[a[f][h]];return r}return r[a[f]]}try{return JSON.parse(s.getItem(l))}catch(c){return s.getItem(l)}}function r(){var t,r,i=this._type,o=arguments.length,n=window[i],s=arguments,a=s[0],l=s[1],f={};if(1>o||!e.isPlainObject(a)&&2>o)throw new Error("Minimum 2 arguments must be given or first parameter must be an object");if(e.isPlainObject(a)){for(var c in a)t=a[c],e.isPlainObject(t)||this.alwaysUseJson?n.setItem(c,JSON.stringify(t)):n.setItem(c,t);return a}if(2==o)return"object"==typeof l||this.alwaysUseJson?n.setItem(a,JSON.stringify(l)):n.setItem(a,l),l;try{r=n.getItem(a),null!=r&&(f=JSON.parse(r))}catch(h){}r=f;for(var c=1;o-2>c;c++)t=s[c],r[t]&&e.isPlainObject(r[t])||(r[t]={}),r=r[t];return r[s[c]]=s[c+1],n.setItem(a,JSON.stringify(f)),f}function i(){var t,r,i=this._type,o=arguments.length,n=window[i],s=arguments,a=s[0];if(1>o)throw new Error("Minimum 1 argument must be given");if(e.isArray(a)){for(var l in a)n.removeItem(a[l]);return!0}if(1==o)return n.removeItem(a),!0;try{t=r=JSON.parse(n.getItem(a))}catch(f){throw new ReferenceError(a+" is not defined in this storage")}for(var l=1;o-1>l;l++)if(r=r[s[l]],void 0===r)throw new ReferenceError([].slice.call(s,1,l).join(".")+" is not defined in this storage");if(e.isArray(s[l]))for(var c in s[l])delete r[s[l][c]];else delete r[s[l]];return n.setItem(a,JSON.stringify(t)),!0}function o(t){var r=a.call(this);for(var o in r)i.call(this,r[o]);if(t)for(var o in e.namespaceStorages)l(o)}function n(){var r=arguments.length,i=arguments,o=i[0];if(0==r)return 0==a.call(this).length;if(e.isArray(o)){for(var s=0;sr)throw new Error("Minimum 1 argument must be given");if(e.isArray(o)){for(var n=0;n0?t.apply(this,o):i,s&&s._cookie)for(var a in Cookies.get())""!=a&&n.push(a.replace(s._prefix,""));else for(var l in s)s.hasOwnProperty(l)&&n.push(l);return n}function l(t){if(!t||"string"!=typeof t)throw new Error("First parameter must be a string");u?(window.localStorage.getItem(t)||window.localStorage.setItem(t,"{}"),window.sessionStorage.getItem(t)||window.sessionStorage.setItem(t,"{}")):(window.localCookieStorage.getItem(t)||window.localCookieStorage.setItem(t,"{}"),window.sessionCookieStorage.getItem(t)||window.sessionCookieStorage.setItem(t,"{}"));var r={localStorage:e.extend({},e.localStorage,{_ns:t}),sessionStorage:e.extend({},e.sessionStorage,{_ns:t})};return"object"==typeof Cookies&&(window.cookieStorage.getItem(t)||window.cookieStorage.setItem(t,"{}"),r.cookieStorage=e.extend({},e.cookieStorage,{_ns:t})),e.namespaceStorages[t]=r,r}function f(e){var t="jsapi";try{return window[e]?(window[e].setItem(t,t),window[e].removeItem(t),!0):!1}catch(r){return!1}}var c="ls_",h="ss_",u=f("localStorage"),g={_type:"",_ns:"",_callMethod:function(e,t){var r=[],t=Array.prototype.slice.call(t),i=t[0];return this._ns&&r.push(this._ns),"string"==typeof i&&-1!==i.indexOf(".")&&(t.shift(),[].unshift.apply(t,i.split("."))),[].push.apply(r,t),e.apply(this,r)},alwaysUseJson:!1,get:function(){return this._callMethod(t,arguments)},set:function(){var t=arguments.length,i=arguments,o=i[0];if(1>t||!e.isPlainObject(o)&&2>t)throw new Error("Minimum 2 arguments must be given or first parameter must be an object");if(e.isPlainObject(o)&&this._ns){for(var n in o)this._callMethod(r,[n,o[n]]);return o}var s=this._callMethod(r,i);return this._ns?s[o.split(".")[0]]:s},remove:function(){if(arguments.length<1)throw new Error("Minimum 1 argument must be given");return this._callMethod(i,arguments)},removeAll:function(e){return this._ns?(this._callMethod(r,[{}]),!0):this._callMethod(o,[e])},isEmpty:function(){return this._callMethod(n,arguments)},isSet:function(){if(arguments.length<1)throw new Error("Minimum 1 argument must be given");return this._callMethod(s,arguments)},keys:function(){return this._callMethod(a,arguments)}};if("object"==typeof Cookies){window.name||(window.name=Math.floor(1e8*Math.random()));var m={_cookie:!0,_prefix:"",_expires:null,_path:null,_domain:null,setItem:function(e,t){Cookies.set(this._prefix+e,t,{expires:this._expires,path:this._path,domain:this._domain})},getItem:function(e){return Cookies.get(this._prefix+e)},removeItem:function(e){return Cookies.remove(this._prefix+e,{path:this._path})},clear:function(){for(var t in Cookies.get())""!=t&&(!this._prefix&&-1===t.indexOf(c)&&-1===t.indexOf(h)||this._prefix&&0===t.indexOf(this._prefix))&&e.removeCookie(t)},setExpires:function(e){return this._expires=e,this},setPath:function(e){return this._path=e,this},setDomain:function(e){return this._domain=e,this},setConf:function(e){return e.path&&(this._path=e.path),e.domain&&(this._domain=e.domain),e.expires&&(this._expires=e.expires),this},setDefaultConf:function(){this._path=this._domain=this._expires=null}};u||(window.localCookieStorage=e.extend({},m,{_prefix:c,_expires:3650}),window.sessionCookieStorage=e.extend({},m,{_prefix:h+window.name+"_"})),window.cookieStorage=e.extend({},m),e.cookieStorage=e.extend({},g,{_type:"cookieStorage",setExpires:function(e){return window.cookieStorage.setExpires(e),this},setPath:function(e){return window.cookieStorage.setPath(e),this},setDomain:function(e){return window.cookieStorage.setDomain(e),this},setConf:function(e){return window.cookieStorage.setConf(e),this},setDefaultConf:function(){return window.cookieStorage.setDefaultConf(),this}})}e.initNamespaceStorage=function(e){return l(e)},u?(e.localStorage=e.extend({},g,{_type:"localStorage"}),e.sessionStorage=e.extend({},g,{_type:"sessionStorage"})):(e.localStorage=e.extend({},g,{_type:"localCookieStorage"}),e.sessionStorage=e.extend({},g,{_type:"sessionCookieStorage"})),e.namespaceStorages={},e.removeAllStorages=function(t){e.localStorage.removeAll(t),e.sessionStorage.removeAll(t),e.cookieStorage&&e.cookieStorage.removeAll(t),t||(e.namespaceStorages={})},e.alwaysUseJsonInStorage=function(t){g.alwaysUseJson=t,e.localStorage.alwaysUseJson=t,e.sessionStorage.alwaysUseJson=t,e.cookieStorage&&(e.cookieStorage.alwaysUseJson=t)}}); -------------------------------------------------------------------------------- /www/js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') --------------------------------------------------------------------------------