├── .bowerrc ├── .gitignore ├── .jshintrc ├── .travis.yml ├── Gruntfile.js ├── LICENSE ├── README.md ├── bower.json ├── examples ├── 1.html ├── checkspelling.php ├── css │ └── bootstrap.css ├── demo1.html ├── demo2.html ├── inlineall.html ├── spellcheck │ └── handler.php └── test.php ├── ng-ckeditor.css ├── ng-ckeditor.js ├── ng-ckeditor.min.js ├── ng-ckeditor.min.js.map ├── package.json ├── styles └── ng-ckeditor.less └── test ├── .jshintrc ├── karma.conf.js └── spec ├── directiveOnFormSpec.js └── directiveSpec.js /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "bower_components", 3 | "json": "bower.json" 4 | } 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .temp 2 | node_modules 3 | components 4 | .idea 5 | bower_components 6 | vendor 7 | out -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": false, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": true, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": true, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "globals": { 22 | "angular": false, 23 | "define": false, 24 | "CKEDITOR": false 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - '0.10' 4 | before_script: 5 | - 'npm install -g bower grunt-cli' 6 | - 'npm install' 7 | - 'bower install' 8 | - 'grunt' 9 | -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function (grunt) { 4 | 5 | // Load grunt tasks automatically 6 | require('load-grunt-tasks')(grunt); 7 | 8 | // Time how long tasks take. Can help when optimizing build times 9 | require('time-grunt')(grunt); 10 | 11 | grunt.initConfig({ 12 | 13 | // Project settings 14 | app: require('./bower.json'), 15 | 16 | banner: '/*! ngCkeditor v<%= app.version %> by Vitalii Savchuk(esvit666@gmail.com) - ' + 17 | 'https://github.com/esvit/ng-ckeditor - New BSD License */\n', 18 | copy: { 19 | styles: { 20 | files: [ 21 | { 22 | src: './styles/ng-ckeditor.css', 23 | dest: './ng-ckeditor.css' 24 | } 25 | ] 26 | } 27 | }, 28 | uglify: { 29 | js: { 30 | src: ['ng-ckeditor.js'], 31 | dest: 'ng-ckeditor.min.js', 32 | options: { 33 | banner: '<%= banner %>', 34 | sourceMap: function (fileName) { 35 | return fileName.replace(/\.js$/, '.map'); 36 | } 37 | } 38 | } 39 | }, 40 | less: { 41 | css: { 42 | files: { 43 | 'ng-ckeditor.css': './styles/ng-ckeditor.less' 44 | } 45 | } 46 | }, 47 | cssmin: { 48 | css: { 49 | files: { 50 | 'ng-ckeditor.css': 'ng-ckeditor.css' 51 | } 52 | } 53 | }, 54 | 55 | // Make sure code styles are up to par and there are no obvious mistakes 56 | jshint: { 57 | options: { 58 | jshintrc: '.jshintrc', 59 | reporter: require('jshint-stylish') 60 | }, 61 | all: { 62 | src: [ 63 | 'Gruntfile.js', 64 | 'src/scripts/{,*/}*.js' 65 | ] 66 | }, 67 | test: { 68 | options: { 69 | jshintrc: 'test/.jshintrc' 70 | }, 71 | src: ['test/spec/{,*/}*.js'] 72 | } 73 | }, 74 | 75 | // Test settings 76 | karma: { 77 | unit: { 78 | configFile: 'test/karma.conf.js', 79 | singleRun: true 80 | } 81 | } 82 | }); 83 | 84 | grunt.registerTask('test', [ 85 | 'karma' 86 | ]); 87 | 88 | grunt.registerTask('dev', [ 89 | 'jshint', 90 | 'less' 91 | ]); 92 | 93 | grunt.registerTask('default', [ 94 | 'dev', 95 | 'uglify', 96 | 'cssmin' 97 | ]); 98 | }; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013, esvit. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | Neither the name of the esvit nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | CKEditor + AngularJS 2 | ==================== 3 | [![Build Status](https://travis-ci.org/esvit/ng-ckeditor.png)](https://travis-ci.org/esvit/ng-ckeditor) [![Coverage Status](https://coveralls.io/repos/esvit/ng-ckeditor/badge.png)](https://coveralls.io/r/esvit/ng-ckeditor) 4 | 5 | 6 | Code licensed under New BSD License. 7 | 8 | ## Installing via Bower 9 | ``` 10 | bower install ng-ckeditor 11 | ``` 12 | 13 | ##Usage 14 | ```html 15 | 16 | ``` 17 | 18 | ```js 19 | // add dependency 20 | angular.module('app', ['ngCkeditor']) 21 | 22 | // setup editor options 23 | $scope.editorOptions = { 24 | language: 'ru', 25 | uiColor: '#000000' 26 | }; 27 | ``` 28 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-ckeditor", 3 | "version": "0.2.1", 4 | "main": [ 5 | "ng-ckeditor.js", 6 | "ng-ckeditor.css" 7 | ], 8 | "dependencies": { 9 | "angular": "^1.3.0", 10 | "ckeditor": "^4.4.0" 11 | }, 12 | "devDependencies": { 13 | "es5-shim": "~2.1.0", 14 | "jquery": "^2.1.3", 15 | "angular-mocks": "^1.3.0", 16 | "jquery-simulate": "^1.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /examples/1.html: -------------------------------------------------------------------------------- 1 |

asdasdasdasdasdasasdasdasdas

2 |
____________________________

asdasdasdasdasdasasdasdasdas

3 | -------------------------------------------------------------------------------- /examples/checkspelling.php: -------------------------------------------------------------------------------- 1 | sendHeaders(); 27 | if (isset($_REQUEST['lang']) and $_REQUEST['lang']) $this->lang = $_REQUEST['lang']; 28 | $this->pspell_personal_dictionary .= '/'.$this->lang.'.pws'; 29 | method_exists($this, $rpc) and $this->$rpc(); 30 | } 31 | 32 | private function pspell() { 33 | 34 | foreach($_REQUEST as $key => $value) { 35 | $$key = html_entity_decode(urldecode(stripslashes(trim($value)))); 36 | } 37 | 38 | // load the dictionary 39 | $pspell_link = pspell_new_personal($this->pspell_personal_dictionary, $this->lang); 40 | 41 | // return suggestions 42 | if (isset($suggest)) { 43 | exit(json_encode(pspell_suggest($pspell_link, urldecode($suggest)))); 44 | } 45 | // return badly spelt words 46 | elseif (isset($text)) { 47 | $words = array(); 48 | foreach($text = explode(' ', urldecode($text)) as $word) { 49 | if (!pspell_check($pspell_link, $word) and !in_array($word, $words)) { 50 | $words[] = $word; 51 | } 52 | } 53 | exit(json_encode($words)); 54 | } 55 | // add word to personal dictionary 56 | elseif (isset($addtodictionary)) { 57 | $pspell_config = pspell_config_create('en'); 58 | @pspell_config_personal($pspell_config, $this->pspell_personal_dictionary) or die('can\'t find pspell dictionary'); 59 | $pspell_link = pspell_new_config($pspell_config); 60 | @pspell_add_to_personal($pspell_link, strtolower($addtodictionary)) or die('You can\'t add a word to the dictionary that contains any punctuation.'); 61 | pspell_save_wordlist($pspell_link); 62 | exit(array()); 63 | } 64 | 65 | } 66 | 67 | private function google() { 68 | 69 | foreach($_REQUEST as $key => $value) { 70 | $$key = html_entity_decode(urldecode(stripslashes(trim($value)))); 71 | } 72 | 73 | // return badly spelt words from a chunk of text 74 | if (isset($text)) { 75 | $words = array(); 76 | foreach($matches = $this->getGoogleMatches($text) as $word) { 77 | // position & length of badly spelt word 78 | $word = mb_substr($text, $word[1], $word[2]); 79 | 80 | if (!in_array($word, $words)){ 81 | $words[] = $word; 82 | } 83 | 84 | } 85 | exit(json_encode($words)); 86 | } 87 | // return suggestions for a specific word 88 | else if (isset($suggest)) { 89 | $matches = 90 | $this->getGoogleMatches($suggest) and 91 | $matches[0][4] and 92 | exit(json_encode(explode("\t", $matches[0][4]))) or 93 | exit(json_encode(array())); 94 | } 95 | } 96 | 97 | private function getGoogleMatches($str) { 98 | $url = 'https://www.google.com'; 99 | $path = '/tbproxy/spell?lang='.$this->lang; 100 | 101 | // setup XML request 102 | $xml = ''; 103 | $xml .= ''; 104 | $xml .= ''.$str.''; 105 | 106 | // setup headers to be sent 107 | $header = "POST {$path} HTTP/1.0 \r\n"; 108 | $header .= "MIME-Version: 1.0 \r\n"; 109 | $header .= "Content-type: text/xml; charset=utf-8 \r\n"; 110 | $header .= "Content-length: ".strlen($xml)." \r\n"; 111 | $header .= "Request-number: 1 \r\n"; 112 | $header .= "Document-type: Request \r\n"; 113 | $header .= "Connection: close \r\n\r\n"; 114 | $header .= $xml; 115 | 116 | // response data 117 | $xml_response = ''; 118 | 119 | // use curl if it exists 120 | if (function_exists('curl_init')) { 121 | $ch = curl_init(); 122 | curl_setopt($ch, CURLOPT_URL,$url); 123 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 124 | curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header); 125 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 126 | $xml_response = curl_exec($ch); 127 | curl_close($ch); 128 | } else { 129 | exit; 130 | } 131 | 132 | // grab and parse content, remove google XML formatting 133 | $matches = array(); 134 | preg_match_all('/([^<]*)<\/c>/', $xml_response, $matches, PREG_SET_ORDER); 135 | 136 | // note: google will return encoded data, no need to encode ut8 characters 137 | return $matches; 138 | } 139 | 140 | private static function sendHeaders() { 141 | header('Content-type: application/json'); // data type 142 | header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // no cache 143 | header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // no cache 144 | header("Cache-Control: no-store, no-cache, must-revalidate"); // no cache 145 | header("Cache-Control: post-check=0, pre-check=0", false); // no cache 146 | } 147 | } -------------------------------------------------------------------------------- /examples/css/bootstrap.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.0.0 3 | * 4 | * Copyright 2013 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world by @mdo and @fat. 9 | */ 10 | 11 | /*! normalize.css v2.1.0 | MIT License | git.io/normalize */ 12 | 13 | article, 14 | aside, 15 | details, 16 | figcaption, 17 | figure, 18 | footer, 19 | header, 20 | hgroup, 21 | main, 22 | nav, 23 | section, 24 | summary { 25 | display: block; 26 | } 27 | 28 | audio, 29 | canvas, 30 | video { 31 | display: inline-block; 32 | } 33 | 34 | audio:not([controls]) { 35 | display: none; 36 | height: 0; 37 | } 38 | 39 | [hidden] { 40 | display: none; 41 | } 42 | 43 | html { 44 | font-family: sans-serif; 45 | -webkit-text-size-adjust: 100%; 46 | -ms-text-size-adjust: 100%; 47 | } 48 | 49 | body { 50 | margin: 0; 51 | } 52 | 53 | a:focus { 54 | outline: thin dotted; 55 | } 56 | 57 | a:active, 58 | a:hover { 59 | outline: 0; 60 | } 61 | 62 | h1 { 63 | margin: 0.67em 0; 64 | font-size: 2em; 65 | } 66 | 67 | abbr[title] { 68 | border-bottom: 1px dotted; 69 | } 70 | 71 | b, 72 | strong { 73 | font-weight: bold; 74 | } 75 | 76 | dfn { 77 | font-style: italic; 78 | } 79 | 80 | hr { 81 | height: 0; 82 | -moz-box-sizing: content-box; 83 | box-sizing: content-box; 84 | } 85 | 86 | mark { 87 | color: #000; 88 | background: #ff0; 89 | } 90 | 91 | code, 92 | kbd, 93 | pre, 94 | samp { 95 | font-family: monospace, serif; 96 | font-size: 1em; 97 | } 98 | 99 | pre { 100 | white-space: pre-wrap; 101 | } 102 | 103 | q { 104 | quotes: "\201C" "\201D" "\2018" "\2019"; 105 | } 106 | 107 | small { 108 | font-size: 80%; 109 | } 110 | 111 | sub, 112 | sup { 113 | position: relative; 114 | font-size: 75%; 115 | line-height: 0; 116 | vertical-align: baseline; 117 | } 118 | 119 | sup { 120 | top: -0.5em; 121 | } 122 | 123 | sub { 124 | bottom: -0.25em; 125 | } 126 | 127 | img { 128 | border: 0; 129 | } 130 | 131 | svg:not(:root) { 132 | overflow: hidden; 133 | } 134 | 135 | figure { 136 | margin: 0; 137 | } 138 | 139 | fieldset { 140 | padding: 0.35em 0.625em 0.75em; 141 | margin: 0 2px; 142 | border: 1px solid #c0c0c0; 143 | } 144 | 145 | legend { 146 | padding: 0; 147 | border: 0; 148 | } 149 | 150 | button, 151 | input, 152 | select, 153 | textarea { 154 | margin: 0; 155 | font-family: inherit; 156 | font-size: 100%; 157 | } 158 | 159 | button, 160 | input { 161 | line-height: normal; 162 | } 163 | 164 | button, 165 | select { 166 | text-transform: none; 167 | } 168 | 169 | button, 170 | html input[type="button"], 171 | input[type="reset"], 172 | input[type="submit"] { 173 | cursor: pointer; 174 | -webkit-appearance: button; 175 | } 176 | 177 | button[disabled], 178 | html input[disabled] { 179 | cursor: default; 180 | } 181 | 182 | input[type="checkbox"], 183 | input[type="radio"] { 184 | padding: 0; 185 | box-sizing: border-box; 186 | } 187 | 188 | input[type="search"] { 189 | -webkit-box-sizing: content-box; 190 | -moz-box-sizing: content-box; 191 | box-sizing: content-box; 192 | -webkit-appearance: textfield; 193 | } 194 | 195 | input[type="search"]::-webkit-search-cancel-button, 196 | input[type="search"]::-webkit-search-decoration { 197 | -webkit-appearance: none; 198 | } 199 | 200 | button::-moz-focus-inner, 201 | input::-moz-focus-inner { 202 | padding: 0; 203 | border: 0; 204 | } 205 | 206 | textarea { 207 | overflow: auto; 208 | vertical-align: top; 209 | } 210 | 211 | table { 212 | border-collapse: collapse; 213 | border-spacing: 0; 214 | } 215 | 216 | @media print { 217 | * { 218 | color: #000 !important; 219 | text-shadow: none !important; 220 | background: transparent !important; 221 | box-shadow: none !important; 222 | } 223 | a, 224 | a:visited { 225 | text-decoration: underline; 226 | } 227 | a[href]:after { 228 | content: " (" attr(href) ")"; 229 | } 230 | abbr[title]:after { 231 | content: " (" attr(title) ")"; 232 | } 233 | .ir a:after, 234 | a[href^="javascript:"]:after, 235 | a[href^="#"]:after { 236 | content: ""; 237 | } 238 | pre, 239 | blockquote { 240 | border: 1px solid #999; 241 | page-break-inside: avoid; 242 | } 243 | thead { 244 | display: table-header-group; 245 | } 246 | tr, 247 | img { 248 | page-break-inside: avoid; 249 | } 250 | img { 251 | max-width: 100% !important; 252 | } 253 | @page { 254 | margin: 0.5cm; 255 | } 256 | p, 257 | h2, 258 | h3 { 259 | orphans: 3; 260 | widows: 3; 261 | } 262 | h2, 263 | h3 { 264 | page-break-after: avoid; 265 | } 266 | .navbar-toggle { 267 | display: none; 268 | } 269 | } 270 | 271 | * { 272 | -webkit-box-sizing: border-box; 273 | -moz-box-sizing: border-box; 274 | box-sizing: border-box; 275 | } 276 | 277 | html { 278 | font-size: 62.5%; 279 | -webkit-overflow-scrolling: touch; 280 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 281 | } 282 | 283 | @media screen and (max-device-width: 480px) { 284 | html { 285 | -webkit-text-size-adjust: 100%; 286 | -ms-text-size-adjust: 100%; 287 | } 288 | } 289 | 290 | body { 291 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 292 | font-size: 14px; 293 | line-height: 20px; 294 | color: #333333; 295 | background-color: #ffffff; 296 | } 297 | 298 | input, 299 | button, 300 | select, 301 | textarea { 302 | font-family: inherit; 303 | font-size: inherit; 304 | line-height: inherit; 305 | } 306 | 307 | a { 308 | color: #428bca; 309 | text-decoration: none; 310 | } 311 | 312 | a:hover, 313 | a:focus { 314 | color: #2a6496; 315 | text-decoration: underline; 316 | } 317 | 318 | a:focus { 319 | outline: thin dotted #333; 320 | outline: 5px auto -webkit-focus-ring-color; 321 | outline-offset: -2px; 322 | } 323 | 324 | img { 325 | width: auto\9; 326 | height: auto; 327 | max-width: 100%; 328 | vertical-align: middle; 329 | } 330 | 331 | .img-rounded { 332 | border-radius: 6px; 333 | } 334 | 335 | .img-circle { 336 | border-radius: 500px; 337 | } 338 | 339 | p { 340 | margin: 0 0 10px; 341 | } 342 | 343 | .lead { 344 | margin-bottom: 20px; 345 | font-size: 21px; 346 | font-weight: 200; 347 | line-height: 1.4; 348 | } 349 | 350 | small { 351 | font-size: 85%; 352 | } 353 | 354 | strong { 355 | font-weight: bold; 356 | } 357 | 358 | em { 359 | font-style: italic; 360 | } 361 | 362 | cite { 363 | font-style: normal; 364 | } 365 | 366 | .text-muted { 367 | color: #999999; 368 | } 369 | 370 | a.text-muted:hover, 371 | a.text-muted:focus { 372 | color: #808080; 373 | } 374 | 375 | .text-warning { 376 | color: #c09853; 377 | } 378 | 379 | a.text-warning:hover, 380 | a.text-warning:focus { 381 | color: #a47e3c; 382 | } 383 | 384 | .text-danger { 385 | color: #b94a48; 386 | } 387 | 388 | a.text-danger:hover, 389 | a.text-danger:focus { 390 | color: #953b39; 391 | } 392 | 393 | .text-success { 394 | color: #468847; 395 | } 396 | 397 | a.text-success:hover, 398 | a.text-success:focus { 399 | color: #356635; 400 | } 401 | 402 | .text-left { 403 | text-align: left; 404 | } 405 | 406 | .text-right { 407 | text-align: right; 408 | } 409 | 410 | .text-center { 411 | text-align: center; 412 | } 413 | 414 | h1, 415 | h2, 416 | h3, 417 | h4, 418 | h5, 419 | h6, 420 | .h1, 421 | .h2, 422 | .h3, 423 | .h4, 424 | .h5, 425 | .h6 { 426 | font-family: inherit; 427 | font-weight: 500; 428 | line-height: 20px; 429 | } 430 | 431 | h1 small, 432 | h2 small, 433 | h3 small, 434 | h4 small, 435 | h5 small, 436 | h6 small, 437 | .h1 small, 438 | .h2 small, 439 | .h3 small, 440 | .h4 small, 441 | .h5 small, 442 | .h6 small { 443 | font-weight: normal; 444 | line-height: 1; 445 | color: #999999; 446 | } 447 | 448 | h1, 449 | h2, 450 | h3 { 451 | margin-top: 20px; 452 | margin-bottom: 10px; 453 | line-height: 40px; 454 | } 455 | 456 | h3 { 457 | line-height: 30px; 458 | } 459 | 460 | h4, 461 | h5, 462 | h6 { 463 | margin-top: 10px; 464 | margin-bottom: 10px; 465 | } 466 | 467 | h1, 468 | .h1 { 469 | font-size: 38.5px; 470 | } 471 | 472 | h2, 473 | .h2 { 474 | font-size: 31.5px; 475 | } 476 | 477 | h3, 478 | .h3 { 479 | font-size: 24.5px; 480 | } 481 | 482 | h4, 483 | .h4 { 484 | font-size: 17.5px; 485 | } 486 | 487 | h5, 488 | .h5 { 489 | font-size: 14px; 490 | } 491 | 492 | h6, 493 | .h6 { 494 | font-size: 11.9px; 495 | } 496 | 497 | h1 small, 498 | .h1 small { 499 | font-size: 24.5px; 500 | } 501 | 502 | h2 small, 503 | .h2 small { 504 | font-size: 17.5px; 505 | } 506 | 507 | h3 small, 508 | .h3 small { 509 | font-size: 14px; 510 | } 511 | 512 | h4 small, 513 | .h4 small { 514 | font-size: 14px; 515 | } 516 | 517 | .page-header { 518 | padding-bottom: 9px; 519 | margin: 40px 0 20px; 520 | border-bottom: 1px solid #eeeeee; 521 | } 522 | 523 | ul, 524 | ol { 525 | padding: 0; 526 | margin: 0 0 10px 25px; 527 | } 528 | 529 | ul ul, 530 | ul ol, 531 | ol ol, 532 | ol ul { 533 | margin-bottom: 0; 534 | } 535 | 536 | li { 537 | line-height: 20px; 538 | } 539 | 540 | .list-unstyled { 541 | margin-left: 0; 542 | list-style: none; 543 | } 544 | 545 | .list-inline { 546 | margin-left: 0; 547 | list-style: none; 548 | } 549 | 550 | .list-inline > li { 551 | display: inline-block; 552 | padding-right: 5px; 553 | padding-left: 5px; 554 | } 555 | 556 | dl { 557 | margin-bottom: 20px; 558 | } 559 | 560 | dt, 561 | dd { 562 | line-height: 20px; 563 | } 564 | 565 | dt { 566 | font-weight: bold; 567 | } 568 | 569 | dd { 570 | margin-left: 10px; 571 | } 572 | 573 | .dl-horizontal:before, 574 | .dl-horizontal:after { 575 | display: table; 576 | content: " "; 577 | } 578 | 579 | .dl-horizontal:after { 580 | clear: both; 581 | } 582 | 583 | .dl-horizontal:before, 584 | .dl-horizontal:after { 585 | display: table; 586 | content: " "; 587 | } 588 | 589 | .dl-horizontal:after { 590 | clear: both; 591 | } 592 | 593 | .dl-horizontal dt { 594 | float: left; 595 | width: 160px; 596 | overflow: hidden; 597 | clear: left; 598 | text-align: right; 599 | text-overflow: ellipsis; 600 | white-space: nowrap; 601 | } 602 | 603 | .dl-horizontal dd { 604 | margin-left: 180px; 605 | } 606 | 607 | hr { 608 | margin: 20px 0; 609 | border: 0; 610 | border-top: 1px solid #eeeeee; 611 | border-bottom: 1px solid #fff; 612 | border-bottom: 1px solid rgba(255, 255, 255, 0.5); 613 | } 614 | 615 | abbr[title], 616 | abbr[data-original-title] { 617 | cursor: help; 618 | border-bottom: 1px dotted #999999; 619 | } 620 | 621 | abbr.initialism { 622 | font-size: 90%; 623 | text-transform: uppercase; 624 | } 625 | 626 | blockquote { 627 | padding: 0 0 0 15px; 628 | margin: 0 0 20px; 629 | border-left: 5px solid #eeeeee; 630 | } 631 | 632 | blockquote p { 633 | margin-bottom: 0; 634 | font-size: 17.5px; 635 | font-weight: 300; 636 | line-height: 1.25; 637 | } 638 | 639 | blockquote small { 640 | display: block; 641 | line-height: 20px; 642 | color: #999999; 643 | } 644 | 645 | blockquote small:before { 646 | content: '\2014 \00A0'; 647 | } 648 | 649 | blockquote.pull-right { 650 | float: right; 651 | padding-right: 15px; 652 | padding-left: 0; 653 | border-right: 5px solid #eeeeee; 654 | border-left: 0; 655 | } 656 | 657 | blockquote.pull-right p, 658 | blockquote.pull-right small { 659 | text-align: right; 660 | } 661 | 662 | blockquote.pull-right small:before { 663 | content: ''; 664 | } 665 | 666 | blockquote.pull-right small:after { 667 | content: '\00A0 \2014'; 668 | } 669 | 670 | q:before, 671 | q:after, 672 | blockquote:before, 673 | blockquote:after { 674 | content: ""; 675 | } 676 | 677 | address { 678 | display: block; 679 | margin-bottom: 20px; 680 | font-style: normal; 681 | line-height: 20px; 682 | } 683 | 684 | code, 685 | pre { 686 | padding: 0 3px 2px; 687 | font-family: Monaco, Menlo, Consolas, "Courier New", monospace; 688 | font-size: 12px; 689 | color: #333333; 690 | border-radius: 4px; 691 | } 692 | 693 | code { 694 | padding: 2px 4px; 695 | font-size: 90%; 696 | color: #c7254e; 697 | white-space: nowrap; 698 | background-color: #f9f2f4; 699 | } 700 | 701 | pre { 702 | display: block; 703 | padding: 9.5px; 704 | margin: 0 0 10px; 705 | font-size: 13px; 706 | line-height: 20px; 707 | word-break: break-all; 708 | word-wrap: break-word; 709 | white-space: pre; 710 | white-space: pre-wrap; 711 | background-color: #f5f5f5; 712 | border: 1px solid #ccc; 713 | border: 1px solid rgba(0, 0, 0, 0.15); 714 | border-radius: 4px; 715 | } 716 | 717 | pre.prettyprint { 718 | margin-bottom: 20px; 719 | } 720 | 721 | pre code { 722 | padding: 0; 723 | color: inherit; 724 | white-space: pre; 725 | white-space: pre-wrap; 726 | background-color: transparent; 727 | border: 0; 728 | } 729 | 730 | .pre-scrollable { 731 | max-height: 340px; 732 | overflow-y: scroll; 733 | } 734 | 735 | .container { 736 | margin-right: auto; 737 | margin-left: auto; 738 | } 739 | 740 | .container:before, 741 | .container:after { 742 | display: table; 743 | content: " "; 744 | } 745 | 746 | .container:after { 747 | clear: both; 748 | } 749 | 750 | .container:before, 751 | .container:after { 752 | display: table; 753 | content: " "; 754 | } 755 | 756 | .container:after { 757 | clear: both; 758 | } 759 | 760 | .row:before, 761 | .row:after { 762 | display: table; 763 | content: " "; 764 | } 765 | 766 | .row:after { 767 | clear: both; 768 | } 769 | 770 | .row:before, 771 | .row:after { 772 | display: table; 773 | content: " "; 774 | } 775 | 776 | .row:after { 777 | clear: both; 778 | } 779 | 780 | .row .row { 781 | margin-right: -15px; 782 | margin-left: -15px; 783 | } 784 | 785 | [class*="col-span-"], 786 | [class*="col-small-"] { 787 | position: relative; 788 | min-height: 1px; 789 | padding-right: 15px; 790 | padding-left: 15px; 791 | } 792 | 793 | [class*="col-small-"] { 794 | float: left; 795 | } 796 | 797 | .col-small-span-12 { 798 | width: 100%; 799 | } 800 | 801 | .col-small-span-11 { 802 | width: 91.66666666666666%; 803 | } 804 | 805 | .col-small-span-10 { 806 | width: 83.33333333333334%; 807 | } 808 | 809 | .col-small-span-9 { 810 | width: 75%; 811 | } 812 | 813 | .col-small-span-8 { 814 | width: 66.66666666666666%; 815 | } 816 | 817 | .col-small-span-7 { 818 | width: 58.333333333333336%; 819 | } 820 | 821 | .col-small-span-6 { 822 | width: 50%; 823 | } 824 | 825 | .col-small-span-5 { 826 | width: 41.66666666666667%; 827 | } 828 | 829 | .col-small-span-4 { 830 | width: 33.33333333333333%; 831 | } 832 | 833 | .col-small-span-3 { 834 | width: 25%; 835 | } 836 | 837 | .col-small-span-2 { 838 | width: 16.666666666666664%; 839 | } 840 | 841 | .col-small-span-1 { 842 | width: 8.333333333333332%; 843 | } 844 | 845 | @media screen and (min-width: 768px) { 846 | .container { 847 | max-width: 728px; 848 | } 849 | [class*="col-span-"] { 850 | float: left; 851 | } 852 | .col-span-12 { 853 | width: 100%; 854 | } 855 | .col-span-11 { 856 | width: 91.66666666666666%; 857 | } 858 | .col-span-10 { 859 | width: 83.33333333333334%; 860 | } 861 | .col-span-9 { 862 | width: 75%; 863 | } 864 | .col-span-8 { 865 | width: 66.66666666666666%; 866 | } 867 | .col-span-7 { 868 | width: 58.333333333333336%; 869 | } 870 | .col-span-6 { 871 | width: 50%; 872 | } 873 | .col-span-5 { 874 | width: 41.66666666666667%; 875 | } 876 | .col-span-4 { 877 | width: 33.33333333333333%; 878 | } 879 | .col-span-3 { 880 | width: 25%; 881 | } 882 | .col-span-2 { 883 | width: 16.666666666666664%; 884 | } 885 | .col-span-1 { 886 | width: 8.333333333333332%; 887 | } 888 | .col-offset-12 { 889 | margin-left: 100%; 890 | } 891 | .col-offset-11 { 892 | margin-left: 91.66666666666666%; 893 | } 894 | .col-offset-10 { 895 | margin-left: 83.33333333333334%; 896 | } 897 | .col-offset-9 { 898 | margin-left: 75%; 899 | } 900 | .col-offset-8 { 901 | margin-left: 66.66666666666666%; 902 | } 903 | .col-offset-7 { 904 | margin-left: 58.333333333333336%; 905 | } 906 | .col-offset-6 { 907 | margin-left: 50%; 908 | } 909 | .col-offset-5 { 910 | margin-left: 41.66666666666667%; 911 | } 912 | .col-offset-4 { 913 | margin-left: 33.33333333333333%; 914 | } 915 | .col-offset-3 { 916 | margin-left: 25%; 917 | } 918 | .col-offset-2 { 919 | margin-left: 16.666666666666664%; 920 | } 921 | .col-offset-1 { 922 | margin-left: 8.333333333333332%; 923 | } 924 | .col-push-12 { 925 | left: 100%; 926 | } 927 | .col-push-11 { 928 | left: 91.66666666666666%; 929 | } 930 | .col-push-10 { 931 | left: 83.33333333333334%; 932 | } 933 | .col-push-9 { 934 | left: 75%; 935 | } 936 | .col-push-8 { 937 | left: 66.66666666666666%; 938 | } 939 | .col-push-7 { 940 | left: 58.333333333333336%; 941 | } 942 | .col-push-6 { 943 | left: 50%; 944 | } 945 | .col-push-5 { 946 | left: 41.66666666666667%; 947 | } 948 | .col-push-4 { 949 | left: 33.33333333333333%; 950 | } 951 | .col-push-3 { 952 | left: 25%; 953 | } 954 | .col-push-2 { 955 | left: 16.666666666666664%; 956 | } 957 | .col-push-1 { 958 | left: 8.333333333333332%; 959 | } 960 | .col-pull-12 { 961 | right: 100%; 962 | } 963 | .col-pull-11 { 964 | right: 91.66666666666666%; 965 | } 966 | .col-pull-10 { 967 | right: 83.33333333333334%; 968 | } 969 | .col-pull-9 { 970 | right: 75%; 971 | } 972 | .col-pull-8 { 973 | right: 66.66666666666666%; 974 | } 975 | .col-pull-7 { 976 | right: 58.333333333333336%; 977 | } 978 | .col-pull-6 { 979 | right: 50%; 980 | } 981 | .col-pull-5 { 982 | right: 41.66666666666667%; 983 | } 984 | .col-pull-4 { 985 | right: 33.33333333333333%; 986 | } 987 | .col-pull-3 { 988 | right: 25%; 989 | } 990 | .col-pull-2 { 991 | right: 16.666666666666664%; 992 | } 993 | .col-pull-1 { 994 | right: 8.333333333333332%; 995 | } 996 | } 997 | 998 | @media screen and (min-width: 992px) { 999 | .container { 1000 | max-width: 940px; 1001 | } 1002 | } 1003 | 1004 | @media screen and (min-width: 1200px) { 1005 | .container { 1006 | max-width: 1170px; 1007 | } 1008 | } 1009 | 1010 | [class*="col-span-"].pull-right { 1011 | float: right; 1012 | } 1013 | 1014 | table { 1015 | max-width: 100%; 1016 | background-color: transparent; 1017 | border-collapse: collapse; 1018 | border-spacing: 0; 1019 | } 1020 | 1021 | th { 1022 | text-align: left; 1023 | } 1024 | 1025 | .table { 1026 | width: 100%; 1027 | margin-bottom: 20px; 1028 | } 1029 | 1030 | .table th, 1031 | .table td { 1032 | padding: 8px; 1033 | line-height: 20px; 1034 | vertical-align: top; 1035 | border-top: 1px solid #dddddd; 1036 | } 1037 | 1038 | .table thead th { 1039 | vertical-align: bottom; 1040 | } 1041 | 1042 | .table caption + thead tr:first-child th, 1043 | .table caption + thead tr:first-child td, 1044 | .table colgroup + thead tr:first-child th, 1045 | .table colgroup + thead tr:first-child td, 1046 | .table thead:first-child tr:first-child th, 1047 | .table thead:first-child tr:first-child td { 1048 | border-top: 0; 1049 | } 1050 | 1051 | .table tbody + tbody { 1052 | border-top: 2px solid #dddddd; 1053 | } 1054 | 1055 | .table .table { 1056 | background-color: #ffffff; 1057 | } 1058 | 1059 | .table-condensed th, 1060 | .table-condensed td { 1061 | padding: 4px 5px; 1062 | } 1063 | 1064 | .table-bordered { 1065 | border: 1px solid #dddddd; 1066 | border-collapse: separate; 1067 | border-left: 0; 1068 | border-radius: 4px; 1069 | } 1070 | 1071 | .table-bordered th, 1072 | .table-bordered td { 1073 | border-left: 1px solid #dddddd; 1074 | } 1075 | 1076 | .table-bordered caption + thead tr:first-child th, 1077 | .table-bordered caption + tbody tr:first-child th, 1078 | .table-bordered caption + tbody tr:first-child td, 1079 | .table-bordered colgroup + thead tr:first-child th, 1080 | .table-bordered colgroup + tbody tr:first-child th, 1081 | .table-bordered colgroup + tbody tr:first-child td, 1082 | .table-bordered thead:first-child tr:first-child th, 1083 | .table-bordered tbody:first-child tr:first-child th, 1084 | .table-bordered tbody:first-child tr:first-child td { 1085 | border-top: 0; 1086 | } 1087 | 1088 | .table-bordered thead:first-child tr:first-child > th:first-child, 1089 | .table-bordered tbody:first-child tr:first-child > td:first-child, 1090 | .table-bordered tbody:first-child tr:first-child > th:first-child { 1091 | border-top-left-radius: 4px; 1092 | } 1093 | 1094 | .table-bordered thead:first-child tr:first-child > th:last-child, 1095 | .table-bordered tbody:first-child tr:first-child > td:last-child, 1096 | .table-bordered tbody:first-child tr:first-child > th:last-child { 1097 | border-top-right-radius: 4px; 1098 | } 1099 | 1100 | .table-bordered thead:last-child tr:last-child > th:first-child, 1101 | .table-bordered tbody:last-child tr:last-child > td:first-child, 1102 | .table-bordered tbody:last-child tr:last-child > th:first-child, 1103 | .table-bordered tfoot:last-child tr:last-child > td:first-child, 1104 | .table-bordered tfoot:last-child tr:last-child > th:first-child { 1105 | border-bottom-left-radius: 4px; 1106 | } 1107 | 1108 | .table-bordered thead:last-child tr:last-child > th:last-child, 1109 | .table-bordered tbody:last-child tr:last-child > td:last-child, 1110 | .table-bordered tbody:last-child tr:last-child > th:last-child, 1111 | .table-bordered tfoot:last-child tr:last-child > td:last-child, 1112 | .table-bordered tfoot:last-child tr:last-child > th:last-child { 1113 | border-bottom-right-radius: 4px; 1114 | } 1115 | 1116 | .table-bordered tfoot + tbody:last-child tr:last-child > td:first-child { 1117 | border-bottom-left-radius: 0; 1118 | } 1119 | 1120 | .table-bordered tfoot + tbody:last-child tr:last-child > td:last-child { 1121 | border-bottom-right-radius: 0; 1122 | } 1123 | 1124 | .table-bordered caption + thead tr:first-child th:first-child, 1125 | .table-bordered caption + tbody tr:first-child td:first-child, 1126 | .table-bordered colgroup + thead tr:first-child th:first-child, 1127 | .table-bordered colgroup + tbody tr:first-child td:first-child { 1128 | border-top-left-radius: 4px; 1129 | } 1130 | 1131 | .table-bordered caption + thead tr:first-child th:last-child, 1132 | .table-bordered caption + tbody tr:first-child td:last-child, 1133 | .table-bordered colgroup + thead tr:first-child th:last-child, 1134 | .table-bordered colgroup + tbody tr:first-child td:last-child { 1135 | border-top-right-radius: 4px; 1136 | } 1137 | 1138 | .table-striped > tbody > tr:nth-child(odd) > td, 1139 | .table-striped > tbody > tr:nth-child(odd) > th { 1140 | background-color: #f9f9f9; 1141 | } 1142 | 1143 | .table-hover > tbody > tr:hover > td, 1144 | .table-hover > tbody > tr:hover > th { 1145 | background-color: #f5f5f5; 1146 | } 1147 | 1148 | table col[class*="col-span-"] { 1149 | display: table-column; 1150 | float: none; 1151 | } 1152 | 1153 | table td[class*="col-span-"], 1154 | table th[class*="col-span-"] { 1155 | display: table-cell; 1156 | float: none; 1157 | } 1158 | 1159 | .table > tbody > tr > td.success, 1160 | .table > tbody > tr > th.success, 1161 | .table > tbody > tr.success > td { 1162 | background-color: #dff0d8; 1163 | border-color: #d6e9c6; 1164 | } 1165 | 1166 | .table > tbody > tr > td.danger, 1167 | .table > tbody > tr > th.danger, 1168 | .table > tbody > tr.danger > td { 1169 | background-color: #f2dede; 1170 | border-color: #eed3d7; 1171 | } 1172 | 1173 | .table > tbody > tr > td.warning, 1174 | .table > tbody > tr > th.warning, 1175 | .table > tbody > tr.warning > td { 1176 | background-color: #fcf8e3; 1177 | border-color: #fbeed5; 1178 | } 1179 | 1180 | .table-hover > tbody > tr > td.success:hover, 1181 | .table-hover > tbody > tr > th.success:hover, 1182 | .table-hover > tbody > tr.success:hover > td { 1183 | background-color: #d0e9c6; 1184 | border-color: #c9e2b3; 1185 | } 1186 | 1187 | .table-hover > tbody > tr > td.danger:hover, 1188 | .table-hover > tbody > tr > th.danger:hover, 1189 | .table-hover > tbody > tr.danger:hover > td { 1190 | background-color: #ebcccc; 1191 | border-color: #e6c1c7; 1192 | } 1193 | 1194 | .table-hover > tbody > tr > td.warning:hover, 1195 | .table-hover > tbody > tr > th.warning:hover, 1196 | .table-hover > tbody > tr.warning:hover > td { 1197 | background-color: #faf2cc; 1198 | border-color: #f8e5be; 1199 | } 1200 | 1201 | form { 1202 | margin: 0; 1203 | } 1204 | 1205 | fieldset { 1206 | padding: 0; 1207 | margin: 0; 1208 | border: 0; 1209 | } 1210 | 1211 | legend { 1212 | display: block; 1213 | width: 100%; 1214 | padding: 0; 1215 | margin-bottom: 20px; 1216 | font-size: 21px; 1217 | line-height: 40px; 1218 | color: #333333; 1219 | border: 0; 1220 | border-bottom: 1px solid #e5e5e5; 1221 | } 1222 | 1223 | label { 1224 | display: inline-block; 1225 | margin-bottom: 5px; 1226 | font-weight: bold; 1227 | } 1228 | 1229 | select, 1230 | textarea, 1231 | input[type="text"], 1232 | input[type="password"], 1233 | input[type="datetime"], 1234 | input[type="datetime-local"], 1235 | input[type="date"], 1236 | input[type="month"], 1237 | input[type="time"], 1238 | input[type="week"], 1239 | input[type="number"], 1240 | input[type="email"], 1241 | input[type="url"], 1242 | input[type="search"], 1243 | input[type="tel"], 1244 | input[type="color"] { 1245 | display: inline-block; 1246 | min-height: 34px; 1247 | padding: 6px 9px; 1248 | font-size: 14px; 1249 | line-height: 20px; 1250 | color: #555555; 1251 | vertical-align: middle; 1252 | background-color: #ffffff; 1253 | border: 1px solid #cccccc; 1254 | border-radius: 4px; 1255 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1256 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1257 | -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; 1258 | -moz-transition: border linear 0.2s, box-shadow linear 0.2s; 1259 | -o-transition: border linear 0.2s, box-shadow linear 0.2s; 1260 | transition: border linear 0.2s, box-shadow linear 0.2s; 1261 | } 1262 | 1263 | input, 1264 | select, 1265 | textarea { 1266 | width: 100%; 1267 | } 1268 | 1269 | input[type="file"], 1270 | input[type="image"], 1271 | input[type="submit"], 1272 | input[type="reset"], 1273 | input[type="button"], 1274 | input[type="radio"], 1275 | input[type="checkbox"] { 1276 | width: auto; 1277 | } 1278 | 1279 | textarea { 1280 | height: auto; 1281 | } 1282 | 1283 | textarea:focus, 1284 | input[type="text"]:focus, 1285 | input[type="password"]:focus, 1286 | input[type="datetime"]:focus, 1287 | input[type="datetime-local"]:focus, 1288 | input[type="date"]:focus, 1289 | input[type="month"]:focus, 1290 | input[type="time"]:focus, 1291 | input[type="week"]:focus, 1292 | input[type="number"]:focus, 1293 | input[type="email"]:focus, 1294 | input[type="url"]:focus, 1295 | input[type="search"]:focus, 1296 | input[type="tel"]:focus, 1297 | input[type="color"]:focus { 1298 | border-color: rgba(82, 168, 236, 0.8); 1299 | outline: 0; 1300 | outline: thin dotted \9; 1301 | /* IE6-9 */ 1302 | 1303 | -webkit-box-shadow: 0 0 8px rgba(82, 168, 236, 0.6); 1304 | box-shadow: 0 0 8px rgba(82, 168, 236, 0.6); 1305 | } 1306 | 1307 | input[type="radio"], 1308 | input[type="checkbox"] { 1309 | margin: 4px 0 0; 1310 | margin-top: 1px \9; 1311 | /* IE8-9 */ 1312 | 1313 | line-height: normal; 1314 | } 1315 | 1316 | select, 1317 | input[type="file"] { 1318 | height: 34px; 1319 | /* In IE7, the height of the select element cannot be changed by height, only font-size. TODO: Check if this is still needed when dropping IE7 support */ 1320 | 1321 | line-height: 34px; 1322 | } 1323 | 1324 | select[multiple], 1325 | select[size] { 1326 | height: auto; 1327 | } 1328 | 1329 | select:focus, 1330 | input[type="file"]:focus, 1331 | input[type="radio"]:focus, 1332 | input[type="checkbox"]:focus { 1333 | outline: thin dotted #333; 1334 | outline: 5px auto -webkit-focus-ring-color; 1335 | outline-offset: -2px; 1336 | } 1337 | 1338 | input:-moz-placeholder, 1339 | textarea:-moz-placeholder { 1340 | color: #999999; 1341 | } 1342 | 1343 | input::-moz-placeholder, 1344 | textarea::-moz-placeholder { 1345 | color: #999999; 1346 | } 1347 | 1348 | input:-ms-input-placeholder, 1349 | textarea:-ms-input-placeholder { 1350 | color: #999999; 1351 | } 1352 | 1353 | input::-webkit-input-placeholder, 1354 | textarea::-webkit-input-placeholder { 1355 | color: #999999; 1356 | } 1357 | 1358 | .radio, 1359 | .checkbox { 1360 | display: block; 1361 | min-height: 20px; 1362 | padding-left: 20px; 1363 | margin-bottom: 10px; 1364 | } 1365 | 1366 | .radio label, 1367 | .checkbox label { 1368 | display: inline; 1369 | margin-bottom: 0; 1370 | font-weight: normal; 1371 | } 1372 | 1373 | .radio input[type="radio"], 1374 | .radio-inline input[type="radio"], 1375 | .checkbox input[type="checkbox"], 1376 | .checkbox-inline input[type="checkbox"] { 1377 | float: left; 1378 | margin-left: -20px; 1379 | } 1380 | 1381 | .radio + .radio, 1382 | .checkbox + .checkbox { 1383 | margin-top: -5px; 1384 | } 1385 | 1386 | .controls > .radio:first-child, 1387 | .controls > .checkbox:first-child { 1388 | padding-top: 5px; 1389 | } 1390 | 1391 | .radio-inline, 1392 | .checkbox-inline { 1393 | display: inline-block; 1394 | padding-top: 5px; 1395 | padding-left: 20px; 1396 | margin-bottom: 0; 1397 | font-weight: normal; 1398 | vertical-align: middle; 1399 | } 1400 | 1401 | .radio-inline + .radio-inline, 1402 | .checkbox-inline + .checkbox-inline { 1403 | margin-top: 0; 1404 | margin-left: 10px; 1405 | } 1406 | 1407 | select.input-large, 1408 | textarea.input-large, 1409 | input[type="text"].input-large, 1410 | input[type="password"].input-large, 1411 | input[type="datetime"].input-large, 1412 | input[type="datetime-local"].input-large, 1413 | input[type="date"].input-large, 1414 | input[type="month"].input-large, 1415 | input[type="time"].input-large, 1416 | input[type="week"].input-large, 1417 | input[type="number"].input-large, 1418 | input[type="email"].input-large, 1419 | input[type="url"].input-large, 1420 | input[type="search"].input-large, 1421 | input[type="tel"].input-large, 1422 | input[type="color"].input-large { 1423 | padding: 11px 14px; 1424 | font-size: 17.5px; 1425 | border-radius: 6px; 1426 | } 1427 | 1428 | select.input-small, 1429 | textarea.input-small, 1430 | input[type="text"].input-small, 1431 | input[type="password"].input-small, 1432 | input[type="datetime"].input-small, 1433 | input[type="datetime-local"].input-small, 1434 | input[type="date"].input-small, 1435 | input[type="month"].input-small, 1436 | input[type="time"].input-small, 1437 | input[type="week"].input-small, 1438 | input[type="number"].input-small, 1439 | input[type="email"].input-small, 1440 | input[type="url"].input-small, 1441 | input[type="search"].input-small, 1442 | input[type="tel"].input-small, 1443 | input[type="color"].input-small { 1444 | min-height: 26px; 1445 | padding: 2px 10px; 1446 | font-size: 11.9px; 1447 | border-radius: 3px; 1448 | } 1449 | 1450 | input[class*="span"], 1451 | select[class*="span"], 1452 | textarea[class*="span"] { 1453 | float: none; 1454 | margin-right: 0; 1455 | margin-left: 0; 1456 | } 1457 | 1458 | .input-append input[class*="span"], 1459 | .input-prepend input[class*="span"] { 1460 | display: inline-block; 1461 | } 1462 | 1463 | input[class*="span"], 1464 | select[class*="span"], 1465 | textarea[class*="span"] { 1466 | height: 34px; 1467 | } 1468 | 1469 | input[disabled], 1470 | select[disabled], 1471 | textarea[disabled], 1472 | input[readonly], 1473 | select[readonly], 1474 | textarea[readonly], 1475 | fieldset[disabled] input, 1476 | fieldset[disabled] select, 1477 | fieldset[disabled] textarea { 1478 | cursor: not-allowed; 1479 | background-color: #eeeeee; 1480 | } 1481 | 1482 | input[type="radio"][disabled], 1483 | input[type="checkbox"][disabled], 1484 | input[type="radio"][readonly], 1485 | input[type="checkbox"][readonly], 1486 | fieldset[disabled] input[type="radio"], 1487 | fieldset[disabled] input[type="checkbox"] { 1488 | background-color: transparent; 1489 | } 1490 | 1491 | .has-warning .control-label { 1492 | color: #c09853; 1493 | } 1494 | 1495 | .has-warning .input-with-feedback { 1496 | padding-right: 32px; 1497 | border-color: #c09853; 1498 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1499 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1500 | } 1501 | 1502 | .has-warning .input-with-feedback:focus { 1503 | border-color: #a47e3c; 1504 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; 1505 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; 1506 | } 1507 | 1508 | .has-error .control-label { 1509 | color: #b94a48; 1510 | } 1511 | 1512 | .has-error .input-with-feedback { 1513 | padding-right: 32px; 1514 | border-color: #b94a48; 1515 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1516 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1517 | } 1518 | 1519 | .has-error .input-with-feedback:focus { 1520 | border-color: #953b39; 1521 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; 1522 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; 1523 | } 1524 | 1525 | .has-success .control-label { 1526 | color: #468847; 1527 | } 1528 | 1529 | .has-success .input-with-feedback { 1530 | padding-right: 32px; 1531 | border-color: #468847; 1532 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1533 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1534 | } 1535 | 1536 | .has-success .input-with-feedback:focus { 1537 | border-color: #356635; 1538 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; 1539 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; 1540 | } 1541 | 1542 | input:focus:invalid, 1543 | textarea:focus:invalid, 1544 | select:focus:invalid { 1545 | color: #b94a48; 1546 | border-color: #ee5f5b; 1547 | } 1548 | 1549 | input:focus:invalid:focus, 1550 | textarea:focus:invalid:focus, 1551 | select:focus:invalid:focus { 1552 | border-color: #e9322d; 1553 | -webkit-box-shadow: 0 0 6px #f8b9b7; 1554 | box-shadow: 0 0 6px #f8b9b7; 1555 | } 1556 | 1557 | .form-actions { 1558 | padding: 19px 20px 20px; 1559 | margin-top: 20px; 1560 | margin-bottom: 20px; 1561 | background-color: #f5f5f5; 1562 | border-top: 1px solid #e5e5e5; 1563 | } 1564 | 1565 | .form-actions:before, 1566 | .form-actions:after { 1567 | display: table; 1568 | content: " "; 1569 | } 1570 | 1571 | .form-actions:after { 1572 | clear: both; 1573 | } 1574 | 1575 | .form-actions:before, 1576 | .form-actions:after { 1577 | display: table; 1578 | content: " "; 1579 | } 1580 | 1581 | .form-actions:after { 1582 | clear: both; 1583 | } 1584 | 1585 | .help-block, 1586 | .help-inline { 1587 | color: #737373; 1588 | } 1589 | 1590 | .help-block { 1591 | display: block; 1592 | margin-bottom: 10px; 1593 | } 1594 | 1595 | .help-inline { 1596 | display: inline-block; 1597 | padding-left: 5px; 1598 | vertical-align: middle; 1599 | } 1600 | 1601 | .input-group { 1602 | display: table; 1603 | } 1604 | 1605 | .input-group[class*="span"] { 1606 | float: none; 1607 | padding: 0; 1608 | } 1609 | 1610 | .input-group input, 1611 | .input-group select { 1612 | width: 100%; 1613 | } 1614 | 1615 | .input-group-addon, 1616 | .input-group-btn, 1617 | .input-group input { 1618 | display: table-cell; 1619 | margin: 0; 1620 | border-radius: 0; 1621 | } 1622 | 1623 | .input-group-addon.input-small, 1624 | .input-group-btn.input-small, 1625 | .input-group input.input-small { 1626 | border-radius: 0; 1627 | } 1628 | 1629 | .input-group-addon.input-large, 1630 | .input-group-btn.input-large, 1631 | .input-group input.input-large { 1632 | border-radius: 0; 1633 | } 1634 | 1635 | .input-group-addon, 1636 | .input-group-btn { 1637 | width: 1%; 1638 | vertical-align: middle; 1639 | } 1640 | 1641 | .input-group-addon { 1642 | padding: 6px 8px; 1643 | font-size: 14px; 1644 | font-weight: normal; 1645 | line-height: 20px; 1646 | text-align: center; 1647 | text-shadow: 0 1px 0 #fff; 1648 | background-color: #eeeeee; 1649 | border: 1px solid #ccc; 1650 | -webkit-box-sizing: border-box; 1651 | -moz-box-sizing: border-box; 1652 | box-sizing: border-box; 1653 | } 1654 | 1655 | .input-group-addon.input-small { 1656 | padding: 2px 10px; 1657 | font-size: 11.9px; 1658 | } 1659 | 1660 | .input-group-addon.input-large { 1661 | padding: 11px 14px; 1662 | font-size: 17.5px; 1663 | } 1664 | 1665 | .input-group input:first-child, 1666 | .input-group-addon:first-child { 1667 | border-bottom-left-radius: 4px; 1668 | border-top-left-radius: 4px; 1669 | } 1670 | 1671 | .input-group input:first-child.input-small, 1672 | .input-group-addon:first-child.input-small { 1673 | border-bottom-left-radius: 3px; 1674 | border-top-left-radius: 3px; 1675 | } 1676 | 1677 | .input-group input:first-child.input-large, 1678 | .input-group-addon:first-child.input-large { 1679 | border-bottom-left-radius: 6px; 1680 | border-top-left-radius: 6px; 1681 | } 1682 | 1683 | .input-group-addon:first-child { 1684 | border-right: 0; 1685 | } 1686 | 1687 | .input-group input:last-child, 1688 | .input-group-addon:last-child { 1689 | border-top-right-radius: 4px; 1690 | border-bottom-right-radius: 4px; 1691 | } 1692 | 1693 | .input-group input:last-child.input-small, 1694 | .input-group-addon:last-child.input-small { 1695 | border-top-right-radius: 3px; 1696 | border-bottom-right-radius: 3px; 1697 | } 1698 | 1699 | .input-group input:last-child.input-large, 1700 | .input-group-addon:last-child.input-large { 1701 | border-top-right-radius: 6px; 1702 | border-bottom-right-radius: 6px; 1703 | } 1704 | 1705 | .input-group-addon:last-child { 1706 | border-left: 0; 1707 | } 1708 | 1709 | .input-group-btn { 1710 | position: relative; 1711 | white-space: nowrap; 1712 | } 1713 | 1714 | .input-group-btn > .btn { 1715 | position: relative; 1716 | float: left; 1717 | border-radius: 0; 1718 | } 1719 | 1720 | .input-group-btn > .btn + .btn { 1721 | margin-left: -1px; 1722 | } 1723 | 1724 | .input-group-btn > .btn:hover, 1725 | .input-group-btn > .btn:active { 1726 | z-index: 2; 1727 | } 1728 | 1729 | .input-group-btn:first-child > .btn:first-child, 1730 | .input-group-btn:first-child > .dropdown-toggle:first-child { 1731 | border-bottom-left-radius: 4px; 1732 | border-top-left-radius: 4px; 1733 | } 1734 | 1735 | .input-group-btn:first-child > .btn:first-child.btn-large, 1736 | .input-group-btn:first-child > .dropdown-toggle:first-child.btn-large { 1737 | border-bottom-left-radius: 6px; 1738 | border-top-left-radius: 6px; 1739 | } 1740 | 1741 | .input-group-btn:first-child > .btn:first-child.btn-small, 1742 | .input-group-btn:first-child > .dropdown-toggle:first-child.btn-small { 1743 | border-bottom-left-radius: 3px; 1744 | border-top-left-radius: 3px; 1745 | } 1746 | 1747 | .input-group-btn:last-child > .btn:last-child, 1748 | .input-group-btn:last-child > .dropdown-toggle { 1749 | border-top-right-radius: 4px; 1750 | border-bottom-right-radius: 4px; 1751 | } 1752 | 1753 | .input-group-btn:last-child > .btn:last-child.btn-large, 1754 | .input-group-btn:last-child > .dropdown-toggle.btn-large { 1755 | border-top-right-radius: 6px; 1756 | border-bottom-right-radius: 6px; 1757 | } 1758 | 1759 | .input-group-btn:last-child > .btn:last-child.btn-small, 1760 | .input-group-btn:last-child > .dropdown-toggle.btn-small { 1761 | border-top-right-radius: 3px; 1762 | border-bottom-right-radius: 3px; 1763 | } 1764 | 1765 | @media screen and (min-width: 768px) { 1766 | .form-horizontal .control-group { 1767 | position: relative; 1768 | margin-bottom: 20px; 1769 | } 1770 | .form-horizontal .control-group:before, 1771 | .form-horizontal .control-group:after { 1772 | display: table; 1773 | content: " "; 1774 | } 1775 | .form-horizontal .control-group:after { 1776 | clear: both; 1777 | } 1778 | .form-horizontal .control-group:before, 1779 | .form-horizontal .control-group:after { 1780 | display: table; 1781 | content: " "; 1782 | } 1783 | .form-horizontal .control-group:after { 1784 | clear: both; 1785 | } 1786 | .form-horizontal .control-group input, 1787 | .form-horizontal .control-group select, 1788 | .form-horizontal .control-group textarea { 1789 | margin-bottom: 0; 1790 | } 1791 | .form-horizontal .control-group > .control-label { 1792 | float: left; 1793 | width: 160px; 1794 | padding-top: 6px; 1795 | text-align: right; 1796 | } 1797 | .form-horizontal .control-group > .controls { 1798 | margin-left: 180px; 1799 | } 1800 | .form-horizontal .form-actions { 1801 | padding-left: 180px; 1802 | } 1803 | } 1804 | 1805 | .btn { 1806 | display: inline-block; 1807 | padding: 6px 12px; 1808 | margin-bottom: 0; 1809 | font-size: 14px; 1810 | font-weight: 500; 1811 | line-height: 20px; 1812 | text-align: center; 1813 | white-space: nowrap; 1814 | vertical-align: middle; 1815 | cursor: pointer; 1816 | border: 1px solid #a7a9aa; 1817 | border-radius: 4px; 1818 | } 1819 | 1820 | .btn:focus { 1821 | outline: thin dotted #333; 1822 | outline: 5px auto -webkit-focus-ring-color; 1823 | outline-offset: -2px; 1824 | } 1825 | 1826 | .btn:hover, 1827 | .btn:focus { 1828 | color: #fff; 1829 | text-decoration: none; 1830 | } 1831 | 1832 | .btn:active, 1833 | .btn.active { 1834 | background-image: none; 1835 | outline: 0; 1836 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 1837 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 1838 | } 1839 | 1840 | .btn.disabled, 1841 | .btn[disabled], 1842 | fieldset[disabled] .btn { 1843 | pointer-events: none; 1844 | cursor: default; 1845 | opacity: 0.65; 1846 | filter: alpha(opacity=65); 1847 | -webkit-box-shadow: none; 1848 | box-shadow: none; 1849 | } 1850 | 1851 | .btn-large { 1852 | padding: 11px 14px; 1853 | font-size: 17.5px; 1854 | border-radius: 6px; 1855 | } 1856 | 1857 | .btn-small { 1858 | padding: 2px 10px; 1859 | font-size: 11.9px; 1860 | border-radius: 3px; 1861 | } 1862 | 1863 | .btn-mini { 1864 | padding: 0 6px; 1865 | font-size: 10.5px; 1866 | border-radius: 3px; 1867 | } 1868 | 1869 | .btn-block { 1870 | display: block; 1871 | width: 100%; 1872 | padding-right: 0; 1873 | padding-left: 0; 1874 | } 1875 | 1876 | .btn-block + .btn-block { 1877 | margin-top: 5px; 1878 | } 1879 | 1880 | input[type="submit"].btn-block, 1881 | input[type="reset"].btn-block, 1882 | input[type="button"].btn-block { 1883 | width: 100%; 1884 | } 1885 | 1886 | .btn { 1887 | color: #ffffff; 1888 | background-color: #a7a9aa; 1889 | border-color: #a7a9aa; 1890 | } 1891 | 1892 | .btn:hover, 1893 | .btn:focus, 1894 | .btn:active, 1895 | .btn.active { 1896 | background-color: #9a9c9d; 1897 | border-color: #8d9091; 1898 | } 1899 | 1900 | .btn.disabled:hover, 1901 | .btn[disabled]:hover, 1902 | fieldset[disabled] .btn:hover, 1903 | .btn.disabled:focus, 1904 | .btn[disabled]:focus, 1905 | fieldset[disabled] .btn:focus, 1906 | .btn.disabled:active, 1907 | .btn[disabled]:active, 1908 | fieldset[disabled] .btn:active, 1909 | .btn.disabled.active, 1910 | .btn[disabled].active, 1911 | fieldset[disabled] .btn.active { 1912 | background-color: #a7a9aa; 1913 | border-color: #a7a9aa; 1914 | } 1915 | 1916 | .btn-primary { 1917 | background-color: #428bca; 1918 | border-color: #428bca; 1919 | } 1920 | 1921 | .btn-primary:hover, 1922 | .btn-primary:focus, 1923 | .btn-primary:active, 1924 | .btn-primary.active { 1925 | background-color: #357ebd; 1926 | border-color: #3071a9; 1927 | } 1928 | 1929 | .btn-primary.disabled:hover, 1930 | .btn-primary[disabled]:hover, 1931 | fieldset[disabled] .btn-primary:hover, 1932 | .btn-primary.disabled:focus, 1933 | .btn-primary[disabled]:focus, 1934 | fieldset[disabled] .btn-primary:focus, 1935 | .btn-primary.disabled:active, 1936 | .btn-primary[disabled]:active, 1937 | fieldset[disabled] .btn-primary:active, 1938 | .btn-primary.disabled.active, 1939 | .btn-primary[disabled].active, 1940 | fieldset[disabled] .btn-primary.active { 1941 | background-color: #428bca; 1942 | border-color: #428bca; 1943 | } 1944 | 1945 | .btn-warning { 1946 | background-color: #f0ad4e; 1947 | border-color: #f0ad4e; 1948 | } 1949 | 1950 | .btn-warning:hover, 1951 | .btn-warning:focus, 1952 | .btn-warning:active, 1953 | .btn-warning.active { 1954 | background-color: #eea236; 1955 | border-color: #ec971f; 1956 | } 1957 | 1958 | .btn-warning.disabled:hover, 1959 | .btn-warning[disabled]:hover, 1960 | fieldset[disabled] .btn-warning:hover, 1961 | .btn-warning.disabled:focus, 1962 | .btn-warning[disabled]:focus, 1963 | fieldset[disabled] .btn-warning:focus, 1964 | .btn-warning.disabled:active, 1965 | .btn-warning[disabled]:active, 1966 | fieldset[disabled] .btn-warning:active, 1967 | .btn-warning.disabled.active, 1968 | .btn-warning[disabled].active, 1969 | fieldset[disabled] .btn-warning.active { 1970 | background-color: #f0ad4e; 1971 | border-color: #f0ad4e; 1972 | } 1973 | 1974 | .btn-danger { 1975 | background-color: #d9534f; 1976 | border-color: #d9534f; 1977 | } 1978 | 1979 | .btn-danger:hover, 1980 | .btn-danger:focus, 1981 | .btn-danger:active, 1982 | .btn-danger.active { 1983 | background-color: #d43f3a; 1984 | border-color: #c9302c; 1985 | } 1986 | 1987 | .btn-danger.disabled:hover, 1988 | .btn-danger[disabled]:hover, 1989 | fieldset[disabled] .btn-danger:hover, 1990 | .btn-danger.disabled:focus, 1991 | .btn-danger[disabled]:focus, 1992 | fieldset[disabled] .btn-danger:focus, 1993 | .btn-danger.disabled:active, 1994 | .btn-danger[disabled]:active, 1995 | fieldset[disabled] .btn-danger:active, 1996 | .btn-danger.disabled.active, 1997 | .btn-danger[disabled].active, 1998 | fieldset[disabled] .btn-danger.active { 1999 | background-color: #d9534f; 2000 | border-color: #d9534f; 2001 | } 2002 | 2003 | .btn-success { 2004 | background-color: #5cb85c; 2005 | border-color: #5cb85c; 2006 | } 2007 | 2008 | .btn-success:hover, 2009 | .btn-success:focus, 2010 | .btn-success:active, 2011 | .btn-success.active { 2012 | background-color: #4cae4c; 2013 | border-color: #449d44; 2014 | } 2015 | 2016 | .btn-success.disabled:hover, 2017 | .btn-success[disabled]:hover, 2018 | fieldset[disabled] .btn-success:hover, 2019 | .btn-success.disabled:focus, 2020 | .btn-success[disabled]:focus, 2021 | fieldset[disabled] .btn-success:focus, 2022 | .btn-success.disabled:active, 2023 | .btn-success[disabled]:active, 2024 | fieldset[disabled] .btn-success:active, 2025 | .btn-success.disabled.active, 2026 | .btn-success[disabled].active, 2027 | fieldset[disabled] .btn-success.active { 2028 | background-color: #5cb85c; 2029 | border-color: #5cb85c; 2030 | } 2031 | 2032 | .btn-info { 2033 | background-color: #5bc0de; 2034 | border-color: #5bc0de; 2035 | } 2036 | 2037 | .btn-info:hover, 2038 | .btn-info:focus, 2039 | .btn-info:active, 2040 | .btn-info.active { 2041 | background-color: #46b8da; 2042 | border-color: #31b0d5; 2043 | } 2044 | 2045 | .btn-info.disabled:hover, 2046 | .btn-info[disabled]:hover, 2047 | fieldset[disabled] .btn-info:hover, 2048 | .btn-info.disabled:focus, 2049 | .btn-info[disabled]:focus, 2050 | fieldset[disabled] .btn-info:focus, 2051 | .btn-info.disabled:active, 2052 | .btn-info[disabled]:active, 2053 | fieldset[disabled] .btn-info:active, 2054 | .btn-info.disabled.active, 2055 | .btn-info[disabled].active, 2056 | fieldset[disabled] .btn-info.active { 2057 | background-color: #5bc0de; 2058 | border-color: #5bc0de; 2059 | } 2060 | 2061 | .btn-link, 2062 | .btn-link:active, 2063 | .btn-link[disabled], 2064 | fieldset[disabled] .btn-link { 2065 | background-color: transparent; 2066 | background-image: none; 2067 | -webkit-box-shadow: none; 2068 | box-shadow: none; 2069 | } 2070 | 2071 | .btn-link, 2072 | .btn-link:hover, 2073 | .btn-link:focus, 2074 | .btn-link:active { 2075 | border-color: transparent; 2076 | } 2077 | 2078 | .btn-link { 2079 | font-weight: normal; 2080 | color: #428bca; 2081 | cursor: pointer; 2082 | border-radius: 0; 2083 | } 2084 | 2085 | .btn-link:hover, 2086 | .btn-link:focus { 2087 | color: #2a6496; 2088 | text-decoration: underline; 2089 | background-color: transparent; 2090 | } 2091 | 2092 | .btn-link[disabled]:hover, 2093 | fieldset[disabled] .btn-link:hover, 2094 | .btn-link[disabled]:focus, 2095 | fieldset[disabled] .btn-link:focus { 2096 | color: #333333; 2097 | text-decoration: none; 2098 | } 2099 | 2100 | .fade { 2101 | opacity: 0; 2102 | -webkit-transition: opacity 0.15s linear; 2103 | -moz-transition: opacity 0.15s linear; 2104 | -o-transition: opacity 0.15s linear; 2105 | transition: opacity 0.15s linear; 2106 | } 2107 | 2108 | .fade.in { 2109 | opacity: 1; 2110 | } 2111 | 2112 | /*.collapse { 2113 | position: relative; 2114 | height: 0; 2115 | overflow: hidden; 2116 | .transition(height .35s ease); 2117 | &.in { 2118 | height: auto; 2119 | } 2120 | }*/ 2121 | 2122 | .collapse { 2123 | position: relative; 2124 | height: 0; 2125 | overflow: hidden; 2126 | -webkit-transition: height 0.35s ease; 2127 | -moz-transition: height 0.35s ease; 2128 | -o-transition: height 0.35s ease; 2129 | transition: height 0.35s ease; 2130 | } 2131 | 2132 | .collapse.in { 2133 | height: auto; 2134 | } 2135 | 2136 | @font-face { 2137 | font-family: 'Glyphicons Halflings'; 2138 | font-style: normal; 2139 | font-weight: normal; 2140 | src: url('../fonts/glyphiconshalflings-regular.eot'); 2141 | src: url('../fonts/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphiconshalflings-regular.woff') format('woff'), url('../fonts/glyphiconshalflings-regular.ttf') format('truetype'), url('../fonts/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg'); 2142 | } 2143 | 2144 | .glyphicon:before { 2145 | font-family: 'Glyphicons Halflings'; 2146 | font-style: normal; 2147 | line-height: 1; 2148 | } 2149 | 2150 | .glyphicon-glass:before { 2151 | content: "\e001"; 2152 | } 2153 | 2154 | .glyphicon-music:before { 2155 | content: "\e002"; 2156 | } 2157 | 2158 | .glyphicon-search:before { 2159 | content: "\e003"; 2160 | } 2161 | 2162 | .glyphicon-envelope:before { 2163 | content: "\2709"; 2164 | } 2165 | 2166 | .glyphicon-heart:before { 2167 | content: "\e005"; 2168 | } 2169 | 2170 | .glyphicon-star:before { 2171 | content: "\e006"; 2172 | } 2173 | 2174 | .glyphicon-star-empty:before { 2175 | content: "\e007"; 2176 | } 2177 | 2178 | .glyphicon-user:before { 2179 | content: "\e008"; 2180 | } 2181 | 2182 | .glyphicon-film:before { 2183 | content: "\e009"; 2184 | } 2185 | 2186 | .glyphicon-th-large:before { 2187 | content: "\e010"; 2188 | } 2189 | 2190 | .glyphicon-th:before { 2191 | content: "\e011"; 2192 | } 2193 | 2194 | .glyphicon-th-list:before { 2195 | content: "\e012"; 2196 | } 2197 | 2198 | .glyphicon-ok:before { 2199 | content: "\e013"; 2200 | } 2201 | 2202 | .glyphicon-remove:before { 2203 | content: "\e014"; 2204 | } 2205 | 2206 | .glyphicon-zoom-in:before { 2207 | content: "\e015"; 2208 | } 2209 | 2210 | .glyphicon-zoom-out:before { 2211 | content: "\e016"; 2212 | } 2213 | 2214 | .glyphicon-off:before { 2215 | content: "\e017"; 2216 | } 2217 | 2218 | .glyphicon-signal:before { 2219 | content: "\e018"; 2220 | } 2221 | 2222 | .glyphicon-cog:before { 2223 | content: "\e019"; 2224 | } 2225 | 2226 | .glyphicon-trash:before { 2227 | content: "\e020"; 2228 | } 2229 | 2230 | .glyphicon-home:before { 2231 | content: "\e021"; 2232 | } 2233 | 2234 | .glyphicon-file:before { 2235 | content: "\e022"; 2236 | } 2237 | 2238 | .glyphicon-time:before { 2239 | content: "\e023"; 2240 | } 2241 | 2242 | .glyphicon-road:before { 2243 | content: "\e024"; 2244 | } 2245 | 2246 | .glyphicon-download-alt:before { 2247 | content: "\e025"; 2248 | } 2249 | 2250 | .glyphicon-download:before { 2251 | content: "\e026"; 2252 | } 2253 | 2254 | .glyphicon-upload:before { 2255 | content: "\e027"; 2256 | } 2257 | 2258 | .glyphicon-inbox:before { 2259 | content: "\e028"; 2260 | } 2261 | 2262 | .glyphicon-play-circle:before { 2263 | content: "\e029"; 2264 | } 2265 | 2266 | .glyphicon-repeat:before { 2267 | content: "\e030"; 2268 | } 2269 | 2270 | .glyphicon-refresh:before { 2271 | content: "\e031"; 2272 | } 2273 | 2274 | .glyphicon-list-alt:before { 2275 | content: "\e032"; 2276 | } 2277 | 2278 | .glyphicon-lock:before { 2279 | content: "\e033"; 2280 | } 2281 | 2282 | .glyphicon-flag:before { 2283 | content: "\e034"; 2284 | } 2285 | 2286 | .glyphicon-headphones:before { 2287 | content: "\e035"; 2288 | } 2289 | 2290 | .glyphicon-volume-off:before { 2291 | content: "\e036"; 2292 | } 2293 | 2294 | .glyphicon-volume-down:before { 2295 | content: "\e037"; 2296 | } 2297 | 2298 | .glyphicon-volume-up:before { 2299 | content: "\e038"; 2300 | } 2301 | 2302 | .glyphicon-qrcode:before { 2303 | content: "\e039"; 2304 | } 2305 | 2306 | .glyphicon-barcode:before { 2307 | content: "\e040"; 2308 | } 2309 | 2310 | .glyphicon-tag:before { 2311 | content: "\e041"; 2312 | } 2313 | 2314 | .glyphicon-tags:before { 2315 | content: "\e042"; 2316 | } 2317 | 2318 | .glyphicon-book:before { 2319 | content: "\e043"; 2320 | } 2321 | 2322 | .glyphicon-bookmark:before { 2323 | content: "\e044"; 2324 | } 2325 | 2326 | .glyphicon-print:before { 2327 | content: "\e045"; 2328 | } 2329 | 2330 | .glyphicon-camera:before { 2331 | content: "\e046"; 2332 | } 2333 | 2334 | .glyphicon-font:before { 2335 | content: "\e047"; 2336 | } 2337 | 2338 | .glyphicon-bold:before { 2339 | content: "\e048"; 2340 | } 2341 | 2342 | .glyphicon-italic:before { 2343 | content: "\e049"; 2344 | } 2345 | 2346 | .glyphicon-text-height:before { 2347 | content: "\e050"; 2348 | } 2349 | 2350 | .glyphicon-text-width:before { 2351 | content: "\e051"; 2352 | } 2353 | 2354 | .glyphicon-align-left:before { 2355 | content: "\e052"; 2356 | } 2357 | 2358 | .glyphicon-align-center:before { 2359 | content: "\e053"; 2360 | } 2361 | 2362 | .glyphicon-align-right:before { 2363 | content: "\e054"; 2364 | } 2365 | 2366 | .glyphicon-align-justify:before { 2367 | content: "\e055"; 2368 | } 2369 | 2370 | .glyphicon-list:before { 2371 | content: "\e056"; 2372 | } 2373 | 2374 | .glyphicon-indent-left:before { 2375 | content: "\e057"; 2376 | } 2377 | 2378 | .glyphicon-indent-right:before { 2379 | content: "\e058"; 2380 | } 2381 | 2382 | .glyphicon-facetime-video:before { 2383 | content: "\e059"; 2384 | } 2385 | 2386 | .glyphicon-picture:before { 2387 | content: "\e060"; 2388 | } 2389 | 2390 | .glyphicon-pencil:before { 2391 | content: "\270f"; 2392 | } 2393 | 2394 | .glyphicon-map-marker:before { 2395 | content: "\e062"; 2396 | } 2397 | 2398 | .glyphicon-adjust:before { 2399 | content: "\e063"; 2400 | } 2401 | 2402 | .glyphicon-tint:before { 2403 | content: "\e064"; 2404 | } 2405 | 2406 | .glyphicon-edit:before { 2407 | content: "\e065"; 2408 | } 2409 | 2410 | .glyphicon-share:before { 2411 | content: "\e066"; 2412 | } 2413 | 2414 | .glyphicon-check:before { 2415 | content: "\e067"; 2416 | } 2417 | 2418 | .glyphicon-move:before { 2419 | content: "\e068"; 2420 | } 2421 | 2422 | .glyphicon-step-backward:before { 2423 | content: "\e069"; 2424 | } 2425 | 2426 | .glyphicon-fast-backward:before { 2427 | content: "\e070"; 2428 | } 2429 | 2430 | .glyphicon-backward:before { 2431 | content: "\e071"; 2432 | } 2433 | 2434 | .glyphicon-play:before { 2435 | content: "\e072"; 2436 | } 2437 | 2438 | .glyphicon-pause:before { 2439 | content: "\e073"; 2440 | } 2441 | 2442 | .glyphicon-stop:before { 2443 | content: "\e074"; 2444 | } 2445 | 2446 | .glyphicon-forward:before { 2447 | content: "\e075"; 2448 | } 2449 | 2450 | .glyphicon-fast-forward:before { 2451 | content: "\e076"; 2452 | } 2453 | 2454 | .glyphicon-step-forward:before { 2455 | content: "\e077"; 2456 | } 2457 | 2458 | .glyphicon-eject:before { 2459 | content: "\e078"; 2460 | } 2461 | 2462 | .glyphicon-chevron-left:before { 2463 | content: "\e079"; 2464 | } 2465 | 2466 | .glyphicon-chevron-right:before { 2467 | content: "\e080"; 2468 | } 2469 | 2470 | .glyphicon-plus-sign:before { 2471 | content: "\e081"; 2472 | } 2473 | 2474 | .glyphicon-minus-sign:before { 2475 | content: "\e082"; 2476 | } 2477 | 2478 | .glyphicon-remove-sign:before { 2479 | content: "\e083"; 2480 | } 2481 | 2482 | .glyphicon-ok-sign:before { 2483 | content: "\e084"; 2484 | } 2485 | 2486 | .glyphicon-question-sign:before { 2487 | content: "\e085"; 2488 | } 2489 | 2490 | .glyphicon-info-sign:before { 2491 | content: "\e086"; 2492 | } 2493 | 2494 | .glyphicon-screenshot:before { 2495 | content: "\e087"; 2496 | } 2497 | 2498 | .glyphicon-remove-circle:before { 2499 | content: "\e088"; 2500 | } 2501 | 2502 | .glyphicon-ok-circle:before { 2503 | content: "\e089"; 2504 | } 2505 | 2506 | .glyphicon-ban-circle:before { 2507 | content: "\e090"; 2508 | } 2509 | 2510 | .glyphicon-arrow-left:before { 2511 | content: "\e091"; 2512 | } 2513 | 2514 | .glyphicon-arrow-right:before { 2515 | content: "\e092"; 2516 | } 2517 | 2518 | .glyphicon-arrow-up:before { 2519 | content: "\e093"; 2520 | } 2521 | 2522 | .glyphicon-arrow-down:before { 2523 | content: "\e094"; 2524 | } 2525 | 2526 | .glyphicon-share-alt:before { 2527 | content: "\e095"; 2528 | } 2529 | 2530 | .glyphicon-resize-full:before { 2531 | content: "\e096"; 2532 | } 2533 | 2534 | .glyphicon-resize-small:before { 2535 | content: "\e097"; 2536 | } 2537 | 2538 | .glyphicon-plus:before { 2539 | content: "\002b"; 2540 | } 2541 | 2542 | .glyphicon-minus:before { 2543 | content: "\2212"; 2544 | } 2545 | 2546 | .glyphicon-asterisk:before { 2547 | content: "\002a"; 2548 | } 2549 | 2550 | .glyphicon-exclamation-sign:before { 2551 | content: "\e101"; 2552 | } 2553 | 2554 | .glyphicon-gift:before { 2555 | content: "\e102"; 2556 | } 2557 | 2558 | .glyphicon-leaf:before { 2559 | content: "\e103"; 2560 | } 2561 | 2562 | .glyphicon-fire:before { 2563 | content: "\e104"; 2564 | } 2565 | 2566 | .glyphicon-eye-open:before { 2567 | content: "\e105"; 2568 | } 2569 | 2570 | .glyphicon-eye-close:before { 2571 | content: "\e106"; 2572 | } 2573 | 2574 | .glyphicon-warning-sign:before { 2575 | content: "\e107"; 2576 | } 2577 | 2578 | .glyphicon-plane:before { 2579 | content: "\e108"; 2580 | } 2581 | 2582 | .glyphicon-calendar:before { 2583 | content: "\e109"; 2584 | } 2585 | 2586 | .glyphicon-random:before { 2587 | content: "\e110"; 2588 | } 2589 | 2590 | .glyphicon-comment:before { 2591 | content: "\e111"; 2592 | } 2593 | 2594 | .glyphicon-magnet:before { 2595 | content: "\e112"; 2596 | } 2597 | 2598 | .glyphicon-chevron-up:before { 2599 | content: "\e113"; 2600 | } 2601 | 2602 | .glyphicon-chevron-down:before { 2603 | content: "\e114"; 2604 | } 2605 | 2606 | .glyphicon-retweet:before { 2607 | content: "\e115"; 2608 | } 2609 | 2610 | .glyphicon-shopping-cart:before { 2611 | content: "\e116"; 2612 | } 2613 | 2614 | .glyphicon-folder-close:before { 2615 | content: "\e117"; 2616 | } 2617 | 2618 | .glyphicon-folder-open:before { 2619 | content: "\e118"; 2620 | } 2621 | 2622 | .glyphicon-resize-vertical:before { 2623 | content: "\e119"; 2624 | } 2625 | 2626 | .glyphicon-resize-horizontal:before { 2627 | content: "\e120"; 2628 | } 2629 | 2630 | .glyphicon-hdd:before { 2631 | content: "\e121"; 2632 | } 2633 | 2634 | .glyphicon-bullhorn:before { 2635 | content: "\e122"; 2636 | } 2637 | 2638 | .glyphicon-bell:before { 2639 | content: "\e123"; 2640 | } 2641 | 2642 | .glyphicon-certificate:before { 2643 | content: "\e124"; 2644 | } 2645 | 2646 | .glyphicon-thumbs-up:before { 2647 | content: "\e125"; 2648 | } 2649 | 2650 | .glyphicon-thumbs-down:before { 2651 | content: "\e126"; 2652 | } 2653 | 2654 | .glyphicon-hand-right:before { 2655 | content: "\e127"; 2656 | } 2657 | 2658 | .glyphicon-hand-left:before { 2659 | content: "\e128"; 2660 | } 2661 | 2662 | .glyphicon-hand-up:before { 2663 | content: "\e129"; 2664 | } 2665 | 2666 | .glyphicon-hand-down:before { 2667 | content: "\e130"; 2668 | } 2669 | 2670 | .glyphicon-circle-arrow-right:before { 2671 | content: "\e131"; 2672 | } 2673 | 2674 | .glyphicon-circle-arrow-left:before { 2675 | content: "\e132"; 2676 | } 2677 | 2678 | .glyphicon-circle-arrow-up:before { 2679 | content: "\e133"; 2680 | } 2681 | 2682 | .glyphicon-circle-arrow-down:before { 2683 | content: "\e134"; 2684 | } 2685 | 2686 | .glyphicon-globe:before { 2687 | content: "\e135"; 2688 | } 2689 | 2690 | .glyphicon-wrench:before { 2691 | content: "\e136"; 2692 | } 2693 | 2694 | .glyphicon-tasks:before { 2695 | content: "\e137"; 2696 | } 2697 | 2698 | .glyphicon-filter:before { 2699 | content: "\e138"; 2700 | } 2701 | 2702 | .glyphicon-briefcase:before { 2703 | content: "\e139"; 2704 | } 2705 | 2706 | .glyphicon-fullscreen:before { 2707 | content: "\e140"; 2708 | } 2709 | 2710 | .glyphicon-dashboard:before { 2711 | content: "\e141"; 2712 | } 2713 | 2714 | .glyphicon-paperclip:before { 2715 | content: "\e142"; 2716 | } 2717 | 2718 | .glyphicon-heart-empty:before { 2719 | content: "\e143"; 2720 | } 2721 | 2722 | .glyphicon-link:before { 2723 | content: "\e144"; 2724 | } 2725 | 2726 | .glyphicon-phone:before { 2727 | content: "\e145"; 2728 | } 2729 | 2730 | .glyphicon-pushpin:before { 2731 | content: "\e146"; 2732 | } 2733 | 2734 | .glyphicon-euro:before { 2735 | content: "\20ac"; 2736 | } 2737 | 2738 | .glyphicon-usd:before { 2739 | content: "\e148"; 2740 | } 2741 | 2742 | .glyphicon-gbp:before { 2743 | content: "\e149"; 2744 | } 2745 | 2746 | .glyphicon-sort:before { 2747 | content: "\e150"; 2748 | } 2749 | 2750 | .glyphicon-sort-by-alphabet:before { 2751 | content: "\e151"; 2752 | } 2753 | 2754 | .glyphicon-sort-by-alphabet-alt:before { 2755 | content: "\e152"; 2756 | } 2757 | 2758 | .glyphicon-sort-by-order:before { 2759 | content: "\e153"; 2760 | } 2761 | 2762 | .glyphicon-sort-by-order-alt:before { 2763 | content: "\e154"; 2764 | } 2765 | 2766 | .glyphicon-sort-by-attributes:before { 2767 | content: "\e155"; 2768 | } 2769 | 2770 | .glyphicon-sort-by-attributes-alt:before { 2771 | content: "\e156"; 2772 | } 2773 | 2774 | .glyphicon-unchecked:before { 2775 | content: "\e157"; 2776 | } 2777 | 2778 | .glyphicon-expand:before { 2779 | content: "\e158"; 2780 | } 2781 | 2782 | .glyphicon-collapse:before { 2783 | content: "\e159"; 2784 | } 2785 | 2786 | .glyphicon-collapse-top:before { 2787 | content: "\e160"; 2788 | } 2789 | 2790 | .dropup, 2791 | .dropdown { 2792 | position: relative; 2793 | } 2794 | 2795 | .dropdown-toggle:active, 2796 | .open .dropdown-toggle { 2797 | outline: 0; 2798 | } 2799 | 2800 | .caret { 2801 | display: inline-block; 2802 | width: 0; 2803 | height: 0; 2804 | vertical-align: top; 2805 | border-top: 4px solid #000; 2806 | border-right: 4px solid transparent; 2807 | border-left: 4px solid transparent; 2808 | content: ""; 2809 | } 2810 | 2811 | .dropdown .caret { 2812 | margin-top: 8px; 2813 | margin-left: 2px; 2814 | } 2815 | 2816 | .dropdown-menu { 2817 | position: absolute; 2818 | top: 100%; 2819 | left: 0; 2820 | z-index: 1000; 2821 | display: none; 2822 | float: left; 2823 | min-width: 160px; 2824 | padding: 5px 0; 2825 | margin: 2px 0 0; 2826 | list-style: none; 2827 | background-color: #ffffff; 2828 | border: 1px solid #ccc; 2829 | border: 1px solid rgba(0, 0, 0, 0.15); 2830 | border-radius: 4px; 2831 | -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); 2832 | box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); 2833 | -webkit-background-clip: padding-box; 2834 | -moz-background-clip: padding-box; 2835 | background-clip: padding-box; 2836 | } 2837 | 2838 | .dropdown-menu.pull-right { 2839 | right: 0; 2840 | left: auto; 2841 | } 2842 | 2843 | .dropdown-menu .divider { 2844 | height: 2px; 2845 | margin: 9px 0; 2846 | overflow: hidden; 2847 | background-color: #e5e5e5; 2848 | border-bottom: 1px solid #ffffff; 2849 | } 2850 | 2851 | .dropdown-menu > li > a { 2852 | display: block; 2853 | padding: 3px 20px; 2854 | clear: both; 2855 | font-weight: normal; 2856 | line-height: 20px; 2857 | color: #333333; 2858 | } 2859 | 2860 | .dropdown-menu > li > a:hover, 2861 | .dropdown-menu > li > a:focus, 2862 | .dropdown-submenu:hover > a, 2863 | .dropdown-submenu:focus > a { 2864 | color: #ffffff; 2865 | text-decoration: none; 2866 | background-color: #357ebd; 2867 | background-image: -moz-linear-gradient(top, #428bca, #357ebd); 2868 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#428bca), to(#357ebd)); 2869 | background-image: -webkit-linear-gradient(top, #428bca, #357ebd); 2870 | background-image: -o-linear-gradient(top, #428bca, #357ebd); 2871 | background-image: linear-gradient(to bottom, #428bca, #357ebd); 2872 | background-repeat: repeat-x; 2873 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 2874 | } 2875 | 2876 | .dropdown-menu > .active > a, 2877 | .dropdown-menu > .active > a:hover, 2878 | .dropdown-menu > .active > a:focus { 2879 | color: #ffffff; 2880 | text-decoration: none; 2881 | background-color: #357ebd; 2882 | background-image: -moz-linear-gradient(top, #428bca, #357ebd); 2883 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#428bca), to(#357ebd)); 2884 | background-image: -webkit-linear-gradient(top, #428bca, #357ebd); 2885 | background-image: -o-linear-gradient(top, #428bca, #357ebd); 2886 | background-image: linear-gradient(to bottom, #428bca, #357ebd); 2887 | background-repeat: repeat-x; 2888 | outline: 0; 2889 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); 2890 | } 2891 | 2892 | .dropdown-menu > .disabled > a, 2893 | .dropdown-menu > .disabled > a:hover, 2894 | .dropdown-menu > .disabled > a:focus { 2895 | color: #999999; 2896 | } 2897 | 2898 | .dropdown-menu > .disabled > a:hover, 2899 | .dropdown-menu > .disabled > a:focus { 2900 | text-decoration: none; 2901 | cursor: default; 2902 | background-color: transparent; 2903 | background-image: none; 2904 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 2905 | } 2906 | 2907 | .open > .dropdown-menu { 2908 | display: block; 2909 | } 2910 | 2911 | .pull-right > .dropdown-menu { 2912 | right: 0; 2913 | left: auto; 2914 | } 2915 | 2916 | .dropup .caret, 2917 | .navbar-fixed-bottom .dropdown .caret { 2918 | border-top: 0; 2919 | border-bottom: 4px solid #000; 2920 | content: ""; 2921 | } 2922 | 2923 | .dropup .dropdown-menu, 2924 | .navbar-fixed-bottom .dropdown .dropdown-menu { 2925 | top: auto; 2926 | bottom: 100%; 2927 | margin-bottom: 1px; 2928 | } 2929 | 2930 | .dropdown-submenu { 2931 | position: relative; 2932 | } 2933 | 2934 | .dropdown-submenu > .dropdown-menu { 2935 | top: 0; 2936 | left: 100%; 2937 | margin-top: -6px; 2938 | margin-left: -1px; 2939 | border-top-left-radius: 0; 2940 | } 2941 | 2942 | .dropdown-submenu:hover > .dropdown-menu { 2943 | display: block; 2944 | } 2945 | 2946 | .dropup .dropdown-submenu > .dropdown-menu { 2947 | top: auto; 2948 | bottom: 0; 2949 | margin-top: 0; 2950 | margin-bottom: -2px; 2951 | border-bottom-left-radius: 0; 2952 | } 2953 | 2954 | .dropdown-submenu > a:after { 2955 | display: block; 2956 | float: right; 2957 | width: 0; 2958 | height: 0; 2959 | margin-top: 5px; 2960 | margin-right: -10px; 2961 | border-color: transparent; 2962 | border-left-color: #cccccc; 2963 | border-style: solid; 2964 | border-width: 5px 0 5px 5px; 2965 | content: " "; 2966 | } 2967 | 2968 | .dropdown-submenu:hover > a:after { 2969 | border-left-color: #ffffff; 2970 | } 2971 | 2972 | .dropdown-submenu.pull-left { 2973 | float: none; 2974 | } 2975 | 2976 | .dropdown-submenu.pull-left > .dropdown-menu { 2977 | left: -100%; 2978 | margin-left: 10px; 2979 | border-top-right-radius: 0; 2980 | } 2981 | 2982 | .dropdown .dropdown-menu .nav-header { 2983 | padding-right: 20px; 2984 | padding-left: 20px; 2985 | } 2986 | 2987 | .typeahead { 2988 | z-index: 1051; 2989 | } 2990 | 2991 | .list-group { 2992 | margin: 0 0 20px; 2993 | background-color: #ffffff; 2994 | } 2995 | 2996 | .list-group-item { 2997 | position: relative; 2998 | display: block; 2999 | padding: 10px 30px 10px 15px; 3000 | margin-bottom: -1px; 3001 | border: 1px solid #dddddd; 3002 | } 3003 | 3004 | .list-group-item:first-child { 3005 | border-top-right-radius: 4px; 3006 | border-top-left-radius: 4px; 3007 | } 3008 | 3009 | .list-group-item:last-child { 3010 | margin-bottom: 0; 3011 | border-bottom-right-radius: 4px; 3012 | border-bottom-left-radius: 4px; 3013 | } 3014 | 3015 | .list-group-item-heading { 3016 | margin-top: 0; 3017 | margin-bottom: 5px; 3018 | } 3019 | 3020 | .list-group-item-text { 3021 | margin-bottom: 0; 3022 | line-height: 1.3; 3023 | } 3024 | 3025 | a.list-group-item .list-group-item-heading { 3026 | color: #333; 3027 | } 3028 | 3029 | a.list-group-item .list-group-item-text { 3030 | color: #555; 3031 | } 3032 | 3033 | a.list-group-item:hover, 3034 | a.list-group-item:focus { 3035 | text-decoration: none; 3036 | background-color: #f5f5f5; 3037 | } 3038 | 3039 | a.list-group-item.active { 3040 | z-index: 2; 3041 | color: #ffffff; 3042 | background-color: #428bca; 3043 | border-color: #428bca; 3044 | } 3045 | 3046 | a.list-group-item.active .list-group-item-heading { 3047 | color: inherit; 3048 | } 3049 | 3050 | a.list-group-item.active .list-group-item-text { 3051 | color: #e1edf7; 3052 | } 3053 | 3054 | .list-group-item > .badge, 3055 | .list-group-item > .glyphicon-chevron-right { 3056 | float: right; 3057 | margin-right: -15px; 3058 | } 3059 | 3060 | .list-group-item > .glyphicon-chevron-right { 3061 | margin-right: -15px; 3062 | } 3063 | 3064 | .list-group-item > .glyphicon + .badge { 3065 | margin-right: 5px; 3066 | } 3067 | 3068 | .panel { 3069 | padding: 15px; 3070 | margin-bottom: 20px; 3071 | background-color: #ffffff; 3072 | border: 1px solid #dddddd; 3073 | border-radius: 4px; 3074 | -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); 3075 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); 3076 | } 3077 | 3078 | .panel-heading { 3079 | padding: 10px 15px; 3080 | margin: -15px -15px 15px; 3081 | font-size: 17.5px; 3082 | font-weight: 500; 3083 | background-color: #f5f5f5; 3084 | border-bottom: 1px solid #dddddd; 3085 | border-top-right-radius: 3px; 3086 | border-top-left-radius: 3px; 3087 | } 3088 | 3089 | .panel-primary { 3090 | border-color: #428bca; 3091 | } 3092 | 3093 | .panel-primary .panel-heading { 3094 | color: #ffffff; 3095 | background-color: #428bca; 3096 | border-color: #428bca; 3097 | } 3098 | 3099 | .panel-success { 3100 | border-color: #d6e9c6; 3101 | } 3102 | 3103 | .panel-success .panel-heading { 3104 | color: #468847; 3105 | background-color: #dff0d8; 3106 | border-color: #d6e9c6; 3107 | } 3108 | 3109 | .panel-warning { 3110 | border-color: #fbeed5; 3111 | } 3112 | 3113 | .panel-warning .panel-heading { 3114 | color: #c09853; 3115 | background-color: #fcf8e3; 3116 | border-color: #fbeed5; 3117 | } 3118 | 3119 | .panel-danger { 3120 | border-color: #eed3d7; 3121 | } 3122 | 3123 | .panel-danger .panel-heading { 3124 | color: #b94a48; 3125 | background-color: #f2dede; 3126 | border-color: #eed3d7; 3127 | } 3128 | 3129 | .panel-info { 3130 | border-color: #bce8f1; 3131 | } 3132 | 3133 | .panel-info .panel-heading { 3134 | color: #3a87ad; 3135 | background-color: #d9edf7; 3136 | border-color: #bce8f1; 3137 | } 3138 | 3139 | .list-group-flush { 3140 | margin: 15px -15px -15px; 3141 | } 3142 | 3143 | .list-group-flush .list-group-item { 3144 | border-width: 1px 0; 3145 | } 3146 | 3147 | .list-group-flush .list-group-item:first-child { 3148 | border-top-right-radius: 0; 3149 | border-top-left-radius: 0; 3150 | } 3151 | 3152 | .list-group-flush .list-group-item:last-child { 3153 | border-bottom: 0; 3154 | } 3155 | 3156 | .well { 3157 | min-height: 20px; 3158 | padding: 19px; 3159 | margin-bottom: 20px; 3160 | background-color: #f5f5f5; 3161 | border: 1px solid #e3e3e3; 3162 | border-radius: 4px; 3163 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 3164 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 3165 | } 3166 | 3167 | .well blockquote { 3168 | border-color: #ddd; 3169 | border-color: rgba(0, 0, 0, 0.15); 3170 | } 3171 | 3172 | .well-large { 3173 | padding: 24px; 3174 | border-radius: 6px; 3175 | } 3176 | 3177 | .well-small { 3178 | padding: 9px; 3179 | border-radius: 3px; 3180 | } 3181 | 3182 | .close { 3183 | float: right; 3184 | font-size: 20px; 3185 | font-weight: bold; 3186 | line-height: 20px; 3187 | color: #000; 3188 | text-shadow: 0 1px 0 #ffffff; 3189 | opacity: 0.2; 3190 | filter: alpha(opacity=20); 3191 | } 3192 | 3193 | .close:hover, 3194 | .close:focus { 3195 | color: #000; 3196 | text-decoration: none; 3197 | cursor: pointer; 3198 | opacity: 0.5; 3199 | filter: alpha(opacity=50); 3200 | } 3201 | 3202 | button.close { 3203 | padding: 0; 3204 | cursor: pointer; 3205 | background: transparent; 3206 | border: 0; 3207 | -webkit-appearance: none; 3208 | } 3209 | 3210 | .nav { 3211 | padding-left: 0; 3212 | margin-bottom: 0; 3213 | margin-left: 0; 3214 | list-style: none; 3215 | } 3216 | 3217 | .nav:before, 3218 | .nav:after { 3219 | display: table; 3220 | content: " "; 3221 | } 3222 | 3223 | .nav:after { 3224 | clear: both; 3225 | } 3226 | 3227 | .nav:before, 3228 | .nav:after { 3229 | display: table; 3230 | content: " "; 3231 | } 3232 | 3233 | .nav:after { 3234 | clear: both; 3235 | } 3236 | 3237 | .nav > li { 3238 | display: block; 3239 | } 3240 | 3241 | .nav > li > a { 3242 | position: relative; 3243 | display: block; 3244 | padding: 10px 15px; 3245 | } 3246 | 3247 | .nav > li > a:hover, 3248 | .nav > li > a:focus { 3249 | text-decoration: none; 3250 | background-color: #eeeeee; 3251 | } 3252 | 3253 | .nav > .pull-right { 3254 | float: right; 3255 | } 3256 | 3257 | .nav-tabs { 3258 | border-bottom: 1px solid #ddd; 3259 | } 3260 | 3261 | .nav-tabs > li { 3262 | float: left; 3263 | margin-bottom: -1px; 3264 | } 3265 | 3266 | .nav-tabs > li > a { 3267 | margin-right: 2px; 3268 | line-height: 20px; 3269 | border: 1px solid transparent; 3270 | border-radius: 4px 4px 0 0; 3271 | } 3272 | 3273 | .nav-tabs > li > a:hover { 3274 | border-color: #eeeeee #eeeeee #dddddd; 3275 | } 3276 | 3277 | .nav-tabs > .active > a, 3278 | .nav-tabs > .active > a:hover, 3279 | .nav-tabs > .active > a:focus { 3280 | color: #555555; 3281 | cursor: default; 3282 | background-color: #ffffff; 3283 | border: 1px solid #ddd; 3284 | border-bottom-color: transparent; 3285 | } 3286 | 3287 | .nav-pills > li { 3288 | float: left; 3289 | } 3290 | 3291 | .nav-pills > li > a { 3292 | border-radius: 5px; 3293 | } 3294 | 3295 | .nav-pills > li + li > a { 3296 | margin-left: 2px; 3297 | } 3298 | 3299 | .nav-pills > .active > a, 3300 | .nav-pills > .active > a:hover, 3301 | .nav-pills > .active > a:focus { 3302 | color: #fff; 3303 | background-color: #428bca; 3304 | } 3305 | 3306 | .nav-stacked > li { 3307 | float: none; 3308 | } 3309 | 3310 | .nav-stacked > li + li > a { 3311 | margin-top: 2px; 3312 | margin-left: 0; 3313 | } 3314 | 3315 | .nav-justified { 3316 | width: 100%; 3317 | } 3318 | 3319 | .nav-justified > li { 3320 | display: table-cell; 3321 | float: none; 3322 | width: 1%; 3323 | text-align: center; 3324 | } 3325 | 3326 | .nav-justified.nav-tabs { 3327 | border-bottom: 0; 3328 | } 3329 | 3330 | .nav-justified.nav-tabs > li > a { 3331 | border-bottom: 1px solid #ddd; 3332 | } 3333 | 3334 | .nav-justified.nav-tabs > .active > a { 3335 | border-bottom-color: #ffffff; 3336 | } 3337 | 3338 | .nav-justified > li > a { 3339 | margin-right: 0; 3340 | } 3341 | 3342 | .nav > .disabled > a { 3343 | color: #999999; 3344 | } 3345 | 3346 | .nav > .disabled > a:hover, 3347 | .nav > .disabled > a:focus { 3348 | color: #999999; 3349 | text-decoration: none; 3350 | cursor: default; 3351 | background-color: transparent; 3352 | } 3353 | 3354 | .nav-header { 3355 | display: block; 3356 | padding: 3px 15px; 3357 | font-size: 11px; 3358 | font-weight: bold; 3359 | line-height: 20px; 3360 | color: #999999; 3361 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 3362 | text-transform: uppercase; 3363 | } 3364 | 3365 | .nav li + .nav-header { 3366 | margin-top: 9px; 3367 | } 3368 | 3369 | .nav .divider { 3370 | height: 2px; 3371 | margin: 9px 0; 3372 | overflow: hidden; 3373 | background-color: #e5e5e5; 3374 | border-bottom: 1px solid #ffffff; 3375 | } 3376 | 3377 | .tabbable:before, 3378 | .tabbable:after { 3379 | display: table; 3380 | content: " "; 3381 | } 3382 | 3383 | .tabbable:after { 3384 | clear: both; 3385 | } 3386 | 3387 | .tabbable:before, 3388 | .tabbable:after { 3389 | display: table; 3390 | content: " "; 3391 | } 3392 | 3393 | .tabbable:after { 3394 | clear: both; 3395 | } 3396 | 3397 | .tab-content > .tab-pane, 3398 | .pill-content > .pill-pane { 3399 | display: none; 3400 | } 3401 | 3402 | .tab-content > .active, 3403 | .pill-content > .active { 3404 | display: block; 3405 | } 3406 | 3407 | /* 3408 | // Prevent IE8 from misplacing imgs 3409 | // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 3410 | .nav > li > a > img { 3411 | max-width: none; 3412 | } 3413 | 3414 | // Dropdowns 3415 | // ------------------------- 3416 | 3417 | .nav-tabs .dropdown-menu { 3418 | // Remove the top rounded corners here since there is a hard edge above the menu 3419 | .border-top-radius(0); 3420 | } 3421 | 3422 | // Default dropdown links 3423 | // ------------------------- 3424 | // Make carets use linkColor to start 3425 | .nav .dropdown-toggle .caret { 3426 | border-top-color: @link-color; 3427 | border-bottom-color: @link-color; 3428 | margin-top: 8px; 3429 | } 3430 | .nav .dropdown-toggle:hover .caret { 3431 | border-top-color: @link-hover-color; 3432 | border-bottom-color: @link-hover-color; 3433 | } 3434 | 3435 | // Active dropdown links 3436 | // ------------------------- 3437 | .nav .active .dropdown-toggle .caret { 3438 | border-top-color: #fff; 3439 | border-bottom-color: #fff; 3440 | } 3441 | .nav-tabs .active .dropdown-toggle .caret { 3442 | border-top-color: @gray; 3443 | border-bottom-color: @gray; 3444 | } 3445 | 3446 | // Active:hover dropdown links 3447 | // ------------------------- 3448 | .nav > .dropdown.active > a:hover { 3449 | cursor: pointer; 3450 | } 3451 | 3452 | // Open dropdowns 3453 | // ------------------------- 3454 | .nav-tabs .open .dropdown-toggle, 3455 | .nav-pills .open .dropdown-toggle, 3456 | .nav > li.dropdown.open.active > a:hover { 3457 | color: #fff; 3458 | background-color: @grayLight; 3459 | border-color: @grayLight; 3460 | } 3461 | .nav li.dropdown.open .caret, 3462 | .nav li.dropdown.open.active .caret, 3463 | .nav li.dropdown.open a:hover .caret { 3464 | border-top-color: #fff; 3465 | border-bottom-color: #fff; 3466 | .opacity(1); 3467 | } 3468 | 3469 | // Dropdowns in stacked tabs 3470 | .tabs-stacked .open > a:hover { 3471 | border-color: @grayLight; 3472 | } 3473 | 3474 | */ 3475 | 3476 | .navbar { 3477 | position: relative; 3478 | padding: 10px 15px; 3479 | background-color: #eeeeee; 3480 | border-radius: 4px; 3481 | } 3482 | 3483 | .navbar:before, 3484 | .navbar:after { 3485 | display: table; 3486 | content: " "; 3487 | } 3488 | 3489 | .navbar:after { 3490 | clear: both; 3491 | } 3492 | 3493 | .navbar:before, 3494 | .navbar:after { 3495 | display: table; 3496 | content: " "; 3497 | } 3498 | 3499 | .navbar:after { 3500 | clear: both; 3501 | } 3502 | 3503 | .navbar .nav { 3504 | margin-top: 15px; 3505 | } 3506 | 3507 | .navbar .nav > li > a { 3508 | padding-top: 15px; 3509 | padding-bottom: 15px; 3510 | line-height: 20px; 3511 | color: #777777; 3512 | } 3513 | 3514 | .navbar .nav > li > a:hover, 3515 | .navbar .nav > li > a:focus { 3516 | color: #333333; 3517 | background-color: transparent; 3518 | } 3519 | 3520 | .navbar .nav > .active > a, 3521 | .navbar .nav > .active > a:hover, 3522 | .navbar .nav > .active > a:focus { 3523 | color: #555555; 3524 | background-color: #d5d5d5; 3525 | } 3526 | 3527 | .navbar .nav > .disabled > a, 3528 | .navbar .nav > .disabled > a:hover, 3529 | .navbar .nav > .disabled > a:focus { 3530 | color: #cccccc; 3531 | background-color: transparent; 3532 | } 3533 | 3534 | .navbar-static-top { 3535 | border-radius: 0; 3536 | } 3537 | 3538 | .navbar-fixed-top, 3539 | .navbar-fixed-bottom { 3540 | position: fixed; 3541 | right: 0; 3542 | left: 0; 3543 | z-index: 1030; 3544 | border-radius: 0; 3545 | } 3546 | 3547 | .navbar-fixed-top { 3548 | top: 0; 3549 | } 3550 | 3551 | .navbar-fixed-bottom { 3552 | bottom: 0; 3553 | } 3554 | 3555 | .navbar-brand { 3556 | display: block; 3557 | max-width: 200px; 3558 | padding: 7px 15px; 3559 | margin-right: auto; 3560 | margin-left: auto; 3561 | font-size: 18px; 3562 | font-weight: 500; 3563 | line-height: 20px; 3564 | color: #777777; 3565 | text-align: center; 3566 | } 3567 | 3568 | .navbar-brand:hover, 3569 | .navbar-brand:focus { 3570 | color: #5e5e5e; 3571 | text-decoration: none; 3572 | background-color: transparent; 3573 | } 3574 | 3575 | .navbar-toggle { 3576 | position: absolute; 3577 | top: 10px; 3578 | right: 10px; 3579 | padding: 8px 12px; 3580 | background-color: transparent; 3581 | border: 1px solid #ddd; 3582 | border-radius: 4px; 3583 | } 3584 | 3585 | .navbar-toggle:hover, 3586 | .navbar-toggle:focus { 3587 | background-color: #ddd; 3588 | } 3589 | 3590 | .navbar-toggle .icon-bar { 3591 | display: block; 3592 | width: 22px; 3593 | height: 2px; 3594 | background-color: #ccc; 3595 | border-radius: 1px; 3596 | } 3597 | 3598 | .navbar-toggle .icon-bar + .icon-bar { 3599 | margin-top: 4px; 3600 | } 3601 | 3602 | .navbar .nav > .divider { 3603 | height: 2px; 3604 | margin: 9px 0; 3605 | overflow: hidden; 3606 | background-color: #e1e1e1; 3607 | border-bottom: 1px solid #fbfbfb; 3608 | } 3609 | 3610 | .navbar-form { 3611 | margin-top: 8px; 3612 | margin-bottom: 8px; 3613 | } 3614 | 3615 | .navbar .nav > li > .dropdown-menu { 3616 | margin-top: 0; 3617 | border-top-right-radius: 0; 3618 | border-top-left-radius: 0; 3619 | } 3620 | 3621 | .navbar-fixed-bottom .nav > li > .dropdown-menu { 3622 | border-bottom-right-radius: 0; 3623 | border-bottom-left-radius: 0; 3624 | } 3625 | 3626 | .navbar .nav li.dropdown > a:hover .caret, 3627 | .navbar .nav li.dropdown > a:focus .caret { 3628 | border-top-color: #333333; 3629 | border-bottom-color: #333333; 3630 | } 3631 | 3632 | .navbar .nav li.dropdown.open > .dropdown-toggle, 3633 | .navbar .nav li.dropdown.active > .dropdown-toggle, 3634 | .navbar .nav li.dropdown.open.active > .dropdown-toggle { 3635 | color: #555555; 3636 | background-color: #d5d5d5; 3637 | } 3638 | 3639 | .navbar .nav li.dropdown > .dropdown-toggle .caret { 3640 | border-top-color: #777777; 3641 | border-bottom-color: #777777; 3642 | } 3643 | 3644 | .navbar .nav li.dropdown.open > .dropdown-toggle .caret, 3645 | .navbar .nav li.dropdown.active > .dropdown-toggle .caret, 3646 | .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { 3647 | border-top-color: #555555; 3648 | border-bottom-color: #555555; 3649 | } 3650 | 3651 | .navbar .pull-right > li > .dropdown-menu, 3652 | .navbar .nav > li > .dropdown-menu.pull-right { 3653 | right: 0; 3654 | left: auto; 3655 | } 3656 | 3657 | .navbar-inverse { 3658 | background-color: #222222; 3659 | } 3660 | 3661 | .navbar-inverse .navbar-brand { 3662 | color: #999999; 3663 | } 3664 | 3665 | .navbar-inverse .navbar-brand:hover, 3666 | .navbar-inverse .navbar-brand:focus { 3667 | color: #ffffff; 3668 | background-color: transparent; 3669 | } 3670 | 3671 | .navbar-inverse .navbar-text { 3672 | color: #999999; 3673 | } 3674 | 3675 | .navbar-inverse .nav > li > a { 3676 | color: #999999; 3677 | } 3678 | 3679 | .navbar-inverse .nav > li > a:hover, 3680 | .navbar-inverse .nav > li > a:focus { 3681 | color: #ffffff; 3682 | background-color: transparent; 3683 | } 3684 | 3685 | .navbar-inverse .nav > .active > a, 3686 | .navbar-inverse .nav > .active > a:hover, 3687 | .navbar-inverse .nav > .active > a:focus { 3688 | color: #ffffff; 3689 | background-color: #080808; 3690 | } 3691 | 3692 | .navbar-inverse .nav > .disabled > a, 3693 | .navbar-inverse .nav > .disabled > a:hover, 3694 | .navbar-inverse .nav > .disabled > a:focus { 3695 | color: #444444; 3696 | background-color: transparent; 3697 | } 3698 | 3699 | .navbar-inverse .navbar-toggle { 3700 | border-color: #333; 3701 | } 3702 | 3703 | .navbar-inverse .navbar-toggle:hover, 3704 | .navbar-inverse .navbar-toggle:focus { 3705 | background-color: #333; 3706 | } 3707 | 3708 | .navbar-inverse .navbar-toggle .icon-bar { 3709 | background-color: #fff; 3710 | } 3711 | 3712 | .navbar-inverse .nav > .divider { 3713 | background-color: #151515; 3714 | border-bottom-color: #2f2f2f; 3715 | } 3716 | 3717 | .navbar-inverse .nav li.dropdown.open > .dropdown-toggle, 3718 | .navbar-inverse .nav li.dropdown.active > .dropdown-toggle, 3719 | .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { 3720 | color: #ffffff; 3721 | background-color: #080808; 3722 | } 3723 | 3724 | .navbar-inverse .nav li.dropdown > a:hover .caret { 3725 | border-top-color: #ffffff; 3726 | border-bottom-color: #ffffff; 3727 | } 3728 | 3729 | .navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { 3730 | border-top-color: #999999; 3731 | border-bottom-color: #999999; 3732 | } 3733 | 3734 | .navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, 3735 | .navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, 3736 | .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { 3737 | border-top-color: #ffffff; 3738 | border-bottom-color: #ffffff; 3739 | } 3740 | 3741 | @media screen and (min-width: 768px) { 3742 | .navbar { 3743 | padding-top: 0; 3744 | padding-bottom: 0; 3745 | } 3746 | .navbar-brand { 3747 | float: left; 3748 | padding-top: 15px; 3749 | padding-bottom: 15px; 3750 | margin-left: -10px; 3751 | } 3752 | .navbar .nav { 3753 | float: left; 3754 | margin-top: 0; 3755 | } 3756 | .navbar .nav:before, 3757 | .navbar .nav:after { 3758 | display: table; 3759 | content: " "; 3760 | } 3761 | .navbar .nav:after { 3762 | clear: both; 3763 | } 3764 | .navbar .nav:before, 3765 | .navbar .nav:after { 3766 | display: table; 3767 | content: " "; 3768 | } 3769 | .navbar .nav:after { 3770 | clear: both; 3771 | } 3772 | .navbar .nav.pull-right { 3773 | float: right; 3774 | } 3775 | .navbar .nav > li { 3776 | float: left; 3777 | } 3778 | .navbar .nav > .divider { 3779 | width: 1px; 3780 | height: 30px; 3781 | margin: 10px 9px; 3782 | border-right: 1px solid #fbfbfb; 3783 | border-bottom: 0; 3784 | } 3785 | .navbar-inverse .nav > .divider { 3786 | border-right-color: #2f2f2f; 3787 | } 3788 | .navbar-fixed-left { 3789 | padding-right: 0; 3790 | padding-left: 0; 3791 | } 3792 | .navbar-fixed-left .navbar-brand, 3793 | .navbar-fixed-left .nav, 3794 | .navbar-fixed-left .nav > li { 3795 | float: none; 3796 | } 3797 | .navbar-toggle { 3798 | position: relative; 3799 | top: auto; 3800 | left: auto; 3801 | display: none; 3802 | } 3803 | .nav-collapse.collapse { 3804 | height: auto !important; 3805 | overflow: visible !important; 3806 | } 3807 | } 3808 | 3809 | /* 3810 | 3811 | // Janky solution for now to account for links outside the .nav 3812 | // ------------------------- 3813 | .navbar-link { 3814 | color: @navbar-link-color; 3815 | &:hover { 3816 | color: @navbar-link-hover-color; 3817 | } 3818 | } 3819 | 3820 | // Buttons in navbar 3821 | // ------------------------- 3822 | .navbar .btn, 3823 | .navbar .btn-group { 3824 | .navbarVerticalAlign(30px); // Vertically center in navbar 3825 | } 3826 | .navbar .btn-group .btn, 3827 | .navbar .input-prepend .btn, 3828 | .navbar .input-append .btn { 3829 | margin-top: 0; // then undo the margin here so we don't accidentally double it 3830 | } 3831 | 3832 | // Navbar forms 3833 | // ------------------------- 3834 | .navbar-form { 3835 | margin-bottom: 0; // remove default bottom margin 3836 | .clearfix(); 3837 | input, 3838 | select, 3839 | .radio, 3840 | .checkbox { 3841 | .navbarVerticalAlign(30px); // Vertically center in navbar 3842 | } 3843 | input, 3844 | select, 3845 | .btn { 3846 | display: inline-block; 3847 | margin-bottom: 0; 3848 | } 3849 | input[type="image"], 3850 | input[type="checkbox"], 3851 | input[type="radio"] { 3852 | margin-top: 3px; 3853 | } 3854 | .input-append, 3855 | .input-prepend { 3856 | margin-top: 5px; 3857 | white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left 3858 | input { 3859 | margin-top: 0; // remove the margin on top since it's on the parent 3860 | } 3861 | } 3862 | } 3863 | 3864 | */ 3865 | 3866 | .btn .caret { 3867 | border-top-color: #ffffff; 3868 | } 3869 | 3870 | .dropup .btn .caret { 3871 | border-bottom-color: #ffffff; 3872 | } 3873 | 3874 | .btn-group { 3875 | position: relative; 3876 | display: inline-block; 3877 | vertical-align: middle; 3878 | } 3879 | 3880 | .btn-group > .btn { 3881 | position: relative; 3882 | float: left; 3883 | } 3884 | 3885 | .btn-group > .btn + btn { 3886 | margin-left: -1px; 3887 | } 3888 | 3889 | .btn-group > .btn:hover, 3890 | .btn-group > .btn:active { 3891 | z-index: 2; 3892 | } 3893 | 3894 | .btn-toolbar:before, 3895 | .btn-toolbar:after { 3896 | display: table; 3897 | content: " "; 3898 | } 3899 | 3900 | .btn-toolbar:after { 3901 | clear: both; 3902 | } 3903 | 3904 | .btn-toolbar:before, 3905 | .btn-toolbar:after { 3906 | display: table; 3907 | content: " "; 3908 | } 3909 | 3910 | .btn-toolbar:after { 3911 | clear: both; 3912 | } 3913 | 3914 | .btn-toolbar .btn-group { 3915 | float: left; 3916 | } 3917 | 3918 | .btn-toolbar > .btn + .btn, 3919 | .btn-toolbar > .btn-group + .btn, 3920 | .btn-toolbar > .btn + .btn-group, 3921 | .btn-toolbar > .btn-group + .btn-group { 3922 | margin-left: 5px; 3923 | } 3924 | 3925 | .btn-group > .btn { 3926 | position: relative; 3927 | border-radius: 0; 3928 | } 3929 | 3930 | .btn-group > .btn:first-child { 3931 | margin-left: 0; 3932 | border-bottom-left-radius: 4px; 3933 | border-top-left-radius: 4px; 3934 | } 3935 | 3936 | .btn-group > .btn:last-child, 3937 | .btn-group > .dropdown-toggle { 3938 | border-top-right-radius: 4px; 3939 | border-bottom-right-radius: 4px; 3940 | } 3941 | 3942 | .btn-group > .btn.large:first-child { 3943 | margin-left: 0; 3944 | border-bottom-left-radius: 6px; 3945 | border-top-left-radius: 6px; 3946 | } 3947 | 3948 | .btn-group > .btn.large:last-child, 3949 | .btn-group > .large.dropdown-toggle { 3950 | border-top-right-radius: 6px; 3951 | border-bottom-right-radius: 6px; 3952 | } 3953 | 3954 | .btn-group .dropdown-toggle:active, 3955 | .btn-group.open .dropdown-toggle { 3956 | outline: 0; 3957 | } 3958 | 3959 | .btn-group > .btn + .dropdown-toggle { 3960 | padding-right: 8px; 3961 | padding-left: 8px; 3962 | } 3963 | 3964 | .btn-group > .btn-mini + .dropdown-toggle { 3965 | padding-right: 5px; 3966 | padding-left: 5px; 3967 | } 3968 | 3969 | .btn-group > .btn-large + .dropdown-toggle { 3970 | padding-right: 12px; 3971 | padding-left: 12px; 3972 | } 3973 | 3974 | .btn-group.open .dropdown-toggle { 3975 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 3976 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); 3977 | } 3978 | 3979 | .btn .caret { 3980 | margin-top: 8px; 3981 | margin-left: 0; 3982 | } 3983 | 3984 | .btn-large .caret { 3985 | border-width: 5px; 3986 | } 3987 | 3988 | .dropup .btn-large .caret { 3989 | border-bottom-width: 5px; 3990 | } 3991 | 3992 | .btn-group-vertical > .btn { 3993 | display: block; 3994 | float: none; 3995 | width: 100%; 3996 | max-width: 100%; 3997 | } 3998 | 3999 | .btn-group-vertical .btn:first-child { 4000 | border-radius: 0; 4001 | border-top-right-radius: 4px; 4002 | border-top-left-radius: 4px; 4003 | } 4004 | 4005 | .btn-group-vertical .btn:last-child { 4006 | border-radius: 0; 4007 | border-bottom-right-radius: 4px; 4008 | border-bottom-left-radius: 4px; 4009 | } 4010 | 4011 | .btn-group-vertical .btn-large:first-child { 4012 | border-top-right-radius: 6px; 4013 | border-top-left-radius: 6px; 4014 | } 4015 | 4016 | .btn-group-vertical .btn-large:last-child { 4017 | border-bottom-right-radius: 6px; 4018 | border-bottom-left-radius: 6px; 4019 | } 4020 | 4021 | .btn-group-justified { 4022 | display: table; 4023 | width: 100%; 4024 | } 4025 | 4026 | .btn-group-justified .btn { 4027 | display: table-cell; 4028 | float: none; 4029 | width: 1%; 4030 | } 4031 | 4032 | .btn-group[data-toggle="buttons-radio"] > .btn > input[type="radio"], 4033 | .btn-group[data-toggle="buttons-checkbox"] > .btn > input[type="checkbox"] { 4034 | display: none; 4035 | } 4036 | 4037 | .breadcrumb { 4038 | padding: 8px 15px; 4039 | margin: 0 0 20px; 4040 | list-style: none; 4041 | background-color: #f5f5f5; 4042 | border-radius: 4px; 4043 | } 4044 | 4045 | .breadcrumb > li { 4046 | display: inline-block; 4047 | text-shadow: 0 1px 0 #fff; 4048 | } 4049 | 4050 | .breadcrumb > li:after { 4051 | display: inline-block; 4052 | padding: 0 5px; 4053 | color: #ccc; 4054 | content: "\00a0 /"; 4055 | } 4056 | 4057 | .breadcrumb > li:last-child:after { 4058 | content: ""; 4059 | } 4060 | 4061 | .breadcrumb > .active { 4062 | color: #999999; 4063 | } 4064 | 4065 | .pagination { 4066 | display: inline-block; 4067 | margin: 20px 0; 4068 | border-radius: 4px; 4069 | } 4070 | 4071 | .pagination > li { 4072 | display: inline; 4073 | } 4074 | 4075 | .pagination > li > a, 4076 | .pagination > li > span { 4077 | float: left; 4078 | padding: 4px 12px; 4079 | line-height: 20px; 4080 | text-decoration: none; 4081 | background-color: #ffffff; 4082 | border: 1px solid #dddddd; 4083 | border-left-width: 0; 4084 | } 4085 | 4086 | .pagination > li > a:hover, 4087 | .pagination > li > a:focus, 4088 | .pagination > .active > a, 4089 | .pagination > .active > span { 4090 | background-color: #f5f5f5; 4091 | } 4092 | 4093 | .pagination > .active > a, 4094 | .pagination > .active > span { 4095 | color: #999999; 4096 | cursor: default; 4097 | } 4098 | 4099 | .pagination > .disabled > span, 4100 | .pagination > .disabled > a, 4101 | .pagination > .disabled > a:hover, 4102 | .pagination > .disabled > a:focus { 4103 | color: #999999; 4104 | cursor: default; 4105 | background-color: #ffffff; 4106 | } 4107 | 4108 | .pagination > li:first-child > a, 4109 | .pagination > li:first-child > span { 4110 | border-left-width: 1px; 4111 | border-bottom-left-radius: 4px; 4112 | border-top-left-radius: 4px; 4113 | } 4114 | 4115 | .pagination > li:last-child > a, 4116 | .pagination > li:last-child > span { 4117 | border-top-right-radius: 4px; 4118 | border-bottom-right-radius: 4px; 4119 | } 4120 | 4121 | .pagination-large > li > a, 4122 | .pagination-large > li > span { 4123 | padding: 11px 14px; 4124 | font-size: 17.5px; 4125 | } 4126 | 4127 | .pagination-large > li:first-child > a, 4128 | .pagination-large > li:first-child > span { 4129 | border-bottom-left-radius: 6px; 4130 | border-top-left-radius: 6px; 4131 | } 4132 | 4133 | .pagination-large > li:last-child > a, 4134 | .pagination-large > li:last-child > span { 4135 | border-top-right-radius: 6px; 4136 | border-bottom-right-radius: 6px; 4137 | } 4138 | 4139 | .pagination-mini > li:first-child > a, 4140 | .pagination-small > li:first-child > a, 4141 | .pagination-mini > li:first-child > span, 4142 | .pagination-small > li:first-child > span { 4143 | border-bottom-left-radius: 3px; 4144 | border-top-left-radius: 3px; 4145 | } 4146 | 4147 | .pagination-mini > li:last-child > a, 4148 | .pagination-small > li:last-child > a, 4149 | .pagination-mini > li:last-child > span, 4150 | .pagination-small > li:last-child > span { 4151 | border-top-right-radius: 3px; 4152 | border-bottom-right-radius: 3px; 4153 | } 4154 | 4155 | .pagination-small > li > a, 4156 | .pagination-small > li > span { 4157 | padding: 2px 10px; 4158 | font-size: 11.9px; 4159 | } 4160 | 4161 | .pagination-mini > li > a, 4162 | .pagination-mini > li > span { 4163 | padding: 0 6px; 4164 | font-size: 10.5px; 4165 | } 4166 | 4167 | .pager { 4168 | margin: 20px 0; 4169 | text-align: center; 4170 | list-style: none; 4171 | } 4172 | 4173 | .pager:before, 4174 | .pager:after { 4175 | display: table; 4176 | content: " "; 4177 | } 4178 | 4179 | .pager:after { 4180 | clear: both; 4181 | } 4182 | 4183 | .pager:before, 4184 | .pager:after { 4185 | display: table; 4186 | content: " "; 4187 | } 4188 | 4189 | .pager:after { 4190 | clear: both; 4191 | } 4192 | 4193 | .pager li { 4194 | display: inline; 4195 | } 4196 | 4197 | .pager li > a, 4198 | .pager li > span { 4199 | display: inline-block; 4200 | padding: 5px 14px; 4201 | background-color: #ffffff; 4202 | border: 1px solid #dddddd; 4203 | border-radius: 15px; 4204 | } 4205 | 4206 | .pager li > a:hover, 4207 | .pager li > a:focus { 4208 | text-decoration: none; 4209 | background-color: #f5f5f5; 4210 | } 4211 | 4212 | .pager .next > a, 4213 | .pager .next > span { 4214 | float: right; 4215 | } 4216 | 4217 | .pager .previous > a, 4218 | .pager .previous > span { 4219 | float: left; 4220 | } 4221 | 4222 | .pager .disabled > a, 4223 | .pager .disabled > a:hover, 4224 | .pager .disabled > a:focus, 4225 | .pager .disabled > span { 4226 | color: #999999; 4227 | cursor: default; 4228 | background-color: #fff; 4229 | } 4230 | 4231 | .modal-open { 4232 | overflow: hidden; 4233 | } 4234 | 4235 | .modal { 4236 | position: fixed; 4237 | top: 0; 4238 | right: 0; 4239 | bottom: 0; 4240 | left: 0; 4241 | z-index: 1040; 4242 | display: none; 4243 | overflow: auto; 4244 | overflow-y: scroll; 4245 | -webkit-overflow-scrolling: touch; 4246 | } 4247 | 4248 | .modal.fade { 4249 | top: -25%; 4250 | -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; 4251 | -moz-transition: opacity 0.3s linear, top 0.3s ease-out; 4252 | -o-transition: opacity 0.3s linear, top 0.3s ease-out; 4253 | transition: opacity 0.3s linear, top 0.3s ease-out; 4254 | } 4255 | 4256 | .modal.fade.in { 4257 | top: 0; 4258 | } 4259 | 4260 | .modal-dialog { 4261 | position: relative; 4262 | top: 0; 4263 | right: 0; 4264 | left: 0; 4265 | z-index: 1050; 4266 | width: auto; 4267 | padding: 10px; 4268 | } 4269 | 4270 | .modal-content { 4271 | position: relative; 4272 | background-color: #fff; 4273 | border: 1px solid #999; 4274 | border: 1px solid rgba(0, 0, 0, 0.2); 4275 | border-radius: 6px; 4276 | outline: none; 4277 | -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); 4278 | box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); 4279 | -webkit-background-clip: padding-box; 4280 | -moz-background-clip: padding-box; 4281 | background-clip: padding-box; 4282 | } 4283 | 4284 | .modal-backdrop { 4285 | position: fixed; 4286 | top: 0; 4287 | right: 0; 4288 | bottom: 0; 4289 | left: 0; 4290 | z-index: 1030; 4291 | background-color: #000; 4292 | } 4293 | 4294 | .modal-backdrop.fade { 4295 | opacity: 0; 4296 | filter: alpha(opacity=0); 4297 | } 4298 | 4299 | .modal-backdrop.fade.in { 4300 | opacity: 0.5; 4301 | filter: alpha(opacity=50); 4302 | } 4303 | 4304 | .modal-header { 4305 | padding: 9px 15px; 4306 | border-bottom: 1px solid #e5e5e5; 4307 | } 4308 | 4309 | .modal-header .close { 4310 | margin-top: 2px; 4311 | } 4312 | 4313 | .modal-title { 4314 | margin: 0; 4315 | line-height: 30px; 4316 | } 4317 | 4318 | .modal-body { 4319 | position: relative; 4320 | padding: 20px; 4321 | } 4322 | 4323 | .modal-footer { 4324 | padding: 19px 20px 20px; 4325 | margin-top: 15px; 4326 | text-align: right; 4327 | border-top: 1px solid #e5e5e5; 4328 | } 4329 | 4330 | .modal-footer:before, 4331 | .modal-footer:after { 4332 | display: table; 4333 | content: " "; 4334 | } 4335 | 4336 | .modal-footer:after { 4337 | clear: both; 4338 | } 4339 | 4340 | .modal-footer:before, 4341 | .modal-footer:after { 4342 | display: table; 4343 | content: " "; 4344 | } 4345 | 4346 | .modal-footer:after { 4347 | clear: both; 4348 | } 4349 | 4350 | .modal-footer .btn + .btn { 4351 | margin-bottom: 0; 4352 | margin-left: 5px; 4353 | } 4354 | 4355 | .modal-footer .btn-group .btn + .btn { 4356 | margin-left: -1px; 4357 | } 4358 | 4359 | .modal-footer .btn-block + .btn-block { 4360 | margin-left: 0; 4361 | } 4362 | 4363 | @media screen and (min-width: 768px) { 4364 | .modal-dialog { 4365 | right: auto; 4366 | left: 50%; 4367 | width: 560px; 4368 | padding-top: 30px; 4369 | padding-bottom: 30px; 4370 | margin-left: -280px; 4371 | } 4372 | .modal-content { 4373 | -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); 4374 | box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); 4375 | } 4376 | } 4377 | 4378 | .tooltip { 4379 | position: absolute; 4380 | z-index: 1030; 4381 | display: block; 4382 | font-size: 11px; 4383 | line-height: 1.4; 4384 | opacity: 0; 4385 | filter: alpha(opacity=0); 4386 | visibility: visible; 4387 | } 4388 | 4389 | .tooltip.in { 4390 | opacity: 1; 4391 | filter: alpha(opacity=100); 4392 | } 4393 | 4394 | .tooltip.top { 4395 | padding: 5px 0; 4396 | margin-top: -3px; 4397 | } 4398 | 4399 | .tooltip.right { 4400 | padding: 0 5px; 4401 | margin-left: 3px; 4402 | } 4403 | 4404 | .tooltip.bottom { 4405 | padding: 5px 0; 4406 | margin-top: 3px; 4407 | } 4408 | 4409 | .tooltip.left { 4410 | padding: 0 5px; 4411 | margin-left: -3px; 4412 | } 4413 | 4414 | .tooltip-inner { 4415 | max-width: 200px; 4416 | padding: 3px 8px; 4417 | color: #ffffff; 4418 | text-align: center; 4419 | text-decoration: none; 4420 | background-color: rgba(0, 0, 0, 0.9); 4421 | border-radius: 4px; 4422 | } 4423 | 4424 | .tooltip-arrow { 4425 | position: absolute; 4426 | width: 0; 4427 | height: 0; 4428 | border-color: transparent; 4429 | border-style: solid; 4430 | } 4431 | 4432 | .tooltip.top .tooltip-arrow { 4433 | bottom: 0; 4434 | left: 50%; 4435 | margin-left: -5px; 4436 | border-top-color: rgba(0, 0, 0, 0.9); 4437 | border-width: 5px 5px 0; 4438 | } 4439 | 4440 | .tooltip.right .tooltip-arrow { 4441 | top: 50%; 4442 | left: 0; 4443 | margin-top: -5px; 4444 | border-right-color: rgba(0, 0, 0, 0.9); 4445 | border-width: 5px 5px 5px 0; 4446 | } 4447 | 4448 | .tooltip.left .tooltip-arrow { 4449 | top: 50%; 4450 | right: 0; 4451 | margin-top: -5px; 4452 | border-left-color: rgba(0, 0, 0, 0.9); 4453 | border-width: 5px 0 5px 5px; 4454 | } 4455 | 4456 | .tooltip.bottom .tooltip-arrow { 4457 | top: 0; 4458 | left: 50%; 4459 | margin-left: -5px; 4460 | border-bottom-color: rgba(0, 0, 0, 0.9); 4461 | border-width: 0 5px 5px; 4462 | } 4463 | 4464 | .popover { 4465 | position: absolute; 4466 | top: 0; 4467 | left: 0; 4468 | z-index: 1010; 4469 | display: none; 4470 | max-width: 276px; 4471 | padding: 1px; 4472 | text-align: left; 4473 | white-space: normal; 4474 | background-color: #ffffff; 4475 | border: 1px solid #ccc; 4476 | border: 1px solid rgba(0, 0, 0, 0.2); 4477 | border-radius: 6px; 4478 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 4479 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 4480 | background-clip: padding-box; 4481 | -webkit-bg-clip: padding-box; 4482 | -moz-bg-clip: padding; 4483 | } 4484 | 4485 | .popover.top { 4486 | margin-top: -10px; 4487 | } 4488 | 4489 | .popover.right { 4490 | margin-left: 10px; 4491 | } 4492 | 4493 | .popover.bottom { 4494 | margin-top: 10px; 4495 | } 4496 | 4497 | .popover.left { 4498 | margin-left: -10px; 4499 | } 4500 | 4501 | .popover-title { 4502 | padding: 8px 14px; 4503 | margin: 0; 4504 | font-size: 14px; 4505 | font-weight: normal; 4506 | line-height: 18px; 4507 | background-color: #f7f7f7; 4508 | border-bottom: 1px solid #ebebeb; 4509 | border-radius: 5px 5px 0 0; 4510 | } 4511 | 4512 | .popover-title:empty { 4513 | display: none; 4514 | } 4515 | 4516 | .popover-content { 4517 | padding: 9px 14px; 4518 | } 4519 | 4520 | .popover .arrow, 4521 | .popover .arrow:after { 4522 | position: absolute; 4523 | display: block; 4524 | width: 0; 4525 | height: 0; 4526 | border-color: transparent; 4527 | border-style: solid; 4528 | } 4529 | 4530 | .popover .arrow { 4531 | border-width: 11px; 4532 | } 4533 | 4534 | .popover .arrow:after { 4535 | border-width: 10px; 4536 | content: ""; 4537 | } 4538 | 4539 | .popover.top .arrow { 4540 | bottom: -11px; 4541 | left: 50%; 4542 | margin-left: -11px; 4543 | border-top-color: #999; 4544 | border-top-color: rgba(0, 0, 0, 0.25); 4545 | border-bottom-width: 0; 4546 | } 4547 | 4548 | .popover.top .arrow:after { 4549 | bottom: 1px; 4550 | margin-left: -10px; 4551 | border-top-color: #ffffff; 4552 | border-bottom-width: 0; 4553 | } 4554 | 4555 | .popover.right .arrow { 4556 | top: 50%; 4557 | left: -11px; 4558 | margin-top: -11px; 4559 | border-right-color: #999; 4560 | border-right-color: rgba(0, 0, 0, 0.25); 4561 | border-left-width: 0; 4562 | } 4563 | 4564 | .popover.right .arrow:after { 4565 | bottom: -10px; 4566 | left: 1px; 4567 | border-right-color: #ffffff; 4568 | border-left-width: 0; 4569 | } 4570 | 4571 | .popover.bottom .arrow { 4572 | top: -11px; 4573 | left: 50%; 4574 | margin-left: -11px; 4575 | border-bottom-color: #999; 4576 | border-bottom-color: rgba(0, 0, 0, 0.25); 4577 | border-top-width: 0; 4578 | } 4579 | 4580 | .popover.bottom .arrow:after { 4581 | top: 1px; 4582 | margin-left: -10px; 4583 | border-bottom-color: #ffffff; 4584 | border-top-width: 0; 4585 | } 4586 | 4587 | .popover.left .arrow { 4588 | top: 50%; 4589 | right: -11px; 4590 | margin-top: -11px; 4591 | border-left-color: #999; 4592 | border-left-color: rgba(0, 0, 0, 0.25); 4593 | border-right-width: 0; 4594 | } 4595 | 4596 | .popover.left .arrow:after { 4597 | right: 1px; 4598 | bottom: -10px; 4599 | border-left-color: #ffffff; 4600 | border-right-width: 0; 4601 | } 4602 | 4603 | .alert { 4604 | padding: 8px 35px 8px 14px; 4605 | margin-bottom: 20px; 4606 | color: #c09853; 4607 | background-color: #fcf8e3; 4608 | border: 1px solid #fbeed5; 4609 | border-radius: 4px; 4610 | } 4611 | 4612 | .alert h4 { 4613 | margin-top: 0; 4614 | color: inherit; 4615 | } 4616 | 4617 | .alert hr { 4618 | border-top-color: #f8e5be; 4619 | } 4620 | 4621 | .alert > a, 4622 | .alert > p > a { 4623 | font-weight: 500; 4624 | color: #a47e3c; 4625 | } 4626 | 4627 | .alert .close { 4628 | position: relative; 4629 | top: -2px; 4630 | right: -21px; 4631 | color: inherit; 4632 | } 4633 | 4634 | .alert-success { 4635 | color: #468847; 4636 | background-color: #dff0d8; 4637 | border-color: #d6e9c6; 4638 | } 4639 | 4640 | .alert-success hr { 4641 | border-top-color: #c9e2b3; 4642 | } 4643 | 4644 | .alert-success > a, 4645 | .alert-success > p > a { 4646 | color: #356635; 4647 | } 4648 | 4649 | .alert-danger, 4650 | .alert-error { 4651 | color: #b94a48; 4652 | background-color: #f2dede; 4653 | border-color: #eed3d7; 4654 | } 4655 | 4656 | .alert-danger hr, 4657 | .alert-error hr { 4658 | border-top-color: #e6c1c7; 4659 | } 4660 | 4661 | .alert-danger > a, 4662 | .alert-error > a, 4663 | .alert-danger > p > a, 4664 | .alert-error > p > a { 4665 | color: #953b39; 4666 | } 4667 | 4668 | .alert-info { 4669 | color: #3a87ad; 4670 | background-color: #d9edf7; 4671 | border-color: #bce8f1; 4672 | } 4673 | 4674 | .alert-info hr { 4675 | border-top-color: #a6e1ec; 4676 | } 4677 | 4678 | .alert-info > a, 4679 | .alert-info > p > a { 4680 | color: #2d6987; 4681 | } 4682 | 4683 | .alert-block { 4684 | padding-top: 14px; 4685 | padding-bottom: 14px; 4686 | } 4687 | 4688 | .alert-block > p, 4689 | .alert-block > ul { 4690 | margin-bottom: 0; 4691 | } 4692 | 4693 | .alert-block p + p { 4694 | margin-top: 5px; 4695 | } 4696 | 4697 | .thumbnail, 4698 | .img-thumbnail { 4699 | padding: 4px; 4700 | line-height: 20px; 4701 | border: 1px solid #ddd; 4702 | border-radius: 4px; 4703 | -webkit-transition: all 0.2s ease-in-out; 4704 | -moz-transition: all 0.2s ease-in-out; 4705 | -o-transition: all 0.2s ease-in-out; 4706 | transition: all 0.2s ease-in-out; 4707 | } 4708 | 4709 | .thumbnail { 4710 | display: block; 4711 | } 4712 | 4713 | .img-thumbnail { 4714 | display: inline-block; 4715 | } 4716 | 4717 | a.thumbnail:hover, 4718 | a.thumbnail:focus { 4719 | border-color: #428bca; 4720 | } 4721 | 4722 | .thumbnail > img { 4723 | display: block; 4724 | max-width: 100%; 4725 | margin-right: auto; 4726 | margin-left: auto; 4727 | } 4728 | 4729 | .thumbnail .caption { 4730 | padding: 9px; 4731 | color: #555555; 4732 | } 4733 | 4734 | .media, 4735 | .media-body { 4736 | overflow: hidden; 4737 | zoom: 1; 4738 | } 4739 | 4740 | .media, 4741 | .media .media { 4742 | margin-top: 15px; 4743 | } 4744 | 4745 | .media:first-child { 4746 | margin-top: 0; 4747 | } 4748 | 4749 | .media-object { 4750 | display: block; 4751 | } 4752 | 4753 | .media-heading { 4754 | margin: 0 0 5px; 4755 | } 4756 | 4757 | .media > .pull-left { 4758 | margin-right: 10px; 4759 | } 4760 | 4761 | .media > .pull-right { 4762 | margin-left: 10px; 4763 | } 4764 | 4765 | .media-list { 4766 | margin-left: 0; 4767 | list-style: none; 4768 | } 4769 | 4770 | .label { 4771 | padding: .25em .6em; 4772 | font-size: 75%; 4773 | font-weight: 500; 4774 | line-height: 1; 4775 | color: #fff; 4776 | text-align: center; 4777 | white-space: nowrap; 4778 | vertical-align: middle; 4779 | background-color: #999999; 4780 | border-radius: .25em; 4781 | } 4782 | 4783 | a.label:hover, 4784 | a.label:focus { 4785 | color: #fff; 4786 | text-decoration: none; 4787 | cursor: pointer; 4788 | } 4789 | 4790 | .label-danger { 4791 | background-color: #d9534f; 4792 | } 4793 | 4794 | .label-danger[href] { 4795 | background-color: #c9302c; 4796 | } 4797 | 4798 | .label-warning { 4799 | background-color: #f0ad4e; 4800 | } 4801 | 4802 | .label-warning[href] { 4803 | background-color: #ec971f; 4804 | } 4805 | 4806 | .label-success { 4807 | background-color: #5cb85c; 4808 | } 4809 | 4810 | .label-success[href] { 4811 | background-color: #449d44; 4812 | } 4813 | 4814 | .label-info { 4815 | background-color: #5bc0de; 4816 | } 4817 | 4818 | .label-info[href] { 4819 | background-color: #31b0d5; 4820 | } 4821 | 4822 | .badge { 4823 | display: inline-block; 4824 | min-width: 10px; 4825 | padding: 3px 7px; 4826 | font-size: 12px; 4827 | font-weight: bold; 4828 | line-height: 1; 4829 | color: #fff; 4830 | text-align: center; 4831 | white-space: nowrap; 4832 | vertical-align: middle; 4833 | background-color: #999999; 4834 | border-radius: 10px; 4835 | } 4836 | 4837 | .badge:empty { 4838 | display: none; 4839 | } 4840 | 4841 | a.badge:hover, 4842 | a.badge:focus { 4843 | color: #fff; 4844 | text-decoration: none; 4845 | cursor: pointer; 4846 | } 4847 | 4848 | .btn .badge { 4849 | position: relative; 4850 | top: -1px; 4851 | } 4852 | 4853 | .btn-mini .badge { 4854 | top: 0; 4855 | } 4856 | 4857 | a.list-group-item.active > .badge, 4858 | .nav-pills > .active > a > .badge { 4859 | color: #428bca; 4860 | background-color: #fff; 4861 | } 4862 | 4863 | .nav-pills > li > a > .badge { 4864 | margin-left: 3px; 4865 | } 4866 | 4867 | @-webkit-keyframes progress-bar-stripes { 4868 | from { 4869 | background-position: 40px 0; 4870 | } 4871 | to { 4872 | background-position: 0 0; 4873 | } 4874 | } 4875 | 4876 | @-moz-keyframes progress-bar-stripes { 4877 | from { 4878 | background-position: 40px 0; 4879 | } 4880 | to { 4881 | background-position: 0 0; 4882 | } 4883 | } 4884 | 4885 | @-ms-keyframes progress-bar-stripes { 4886 | from { 4887 | background-position: 40px 0; 4888 | } 4889 | to { 4890 | background-position: 0 0; 4891 | } 4892 | } 4893 | 4894 | @-o-keyframes progress-bar-stripes { 4895 | from { 4896 | background-position: 0 0; 4897 | } 4898 | to { 4899 | background-position: 40px 0; 4900 | } 4901 | } 4902 | 4903 | @keyframes progress-bar-stripes { 4904 | from { 4905 | background-position: 40px 0; 4906 | } 4907 | to { 4908 | background-position: 0 0; 4909 | } 4910 | } 4911 | 4912 | .progress { 4913 | height: 20px; 4914 | margin-bottom: 20px; 4915 | overflow: hidden; 4916 | background-color: #f5f5f5; 4917 | border-radius: 4px; 4918 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); 4919 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); 4920 | } 4921 | 4922 | .progress-bar { 4923 | float: left; 4924 | width: 0; 4925 | height: 100%; 4926 | font-size: 12px; 4927 | color: #fff; 4928 | text-align: center; 4929 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 4930 | background-color: #428bca; 4931 | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); 4932 | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); 4933 | -webkit-transition: width 0.6s ease; 4934 | -moz-transition: width 0.6s ease; 4935 | -o-transition: width 0.6s ease; 4936 | transition: width 0.6s ease; 4937 | } 4938 | 4939 | .progress-striped .progress-bar { 4940 | background-color: #428bca; 4941 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 4942 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4943 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4944 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4945 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4946 | -webkit-background-size: 40px 40px; 4947 | -moz-background-size: 40px 40px; 4948 | -o-background-size: 40px 40px; 4949 | background-size: 40px 40px; 4950 | } 4951 | 4952 | .progress.active .progress-bar { 4953 | -webkit-animation: progress-bar-stripes 2s linear infinite; 4954 | -moz-animation: progress-bar-stripes 2s linear infinite; 4955 | -ms-animation: progress-bar-stripes 2s linear infinite; 4956 | -o-animation: progress-bar-stripes 2s linear infinite; 4957 | animation: progress-bar-stripes 2s linear infinite; 4958 | } 4959 | 4960 | .progress-bar-danger { 4961 | background-color: #d9534f; 4962 | } 4963 | 4964 | .progress-striped .progress-bar-danger { 4965 | background-color: #d9534f; 4966 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 4967 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4968 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4969 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4970 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4971 | } 4972 | 4973 | .progress-bar-success { 4974 | background-color: #5cb85c; 4975 | } 4976 | 4977 | .progress-striped .progress-bar-success { 4978 | background-color: #5cb85c; 4979 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 4980 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4981 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4982 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4983 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4984 | } 4985 | 4986 | .progress-bar-warning { 4987 | background-color: #f0ad4e; 4988 | } 4989 | 4990 | .progress-striped .progress-bar-warning { 4991 | background-color: #f0ad4e; 4992 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 4993 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4994 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4995 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4996 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 4997 | } 4998 | 4999 | .progress-bar-info { 5000 | background-color: #5bc0de; 5001 | } 5002 | 5003 | .progress-striped .progress-bar-info { 5004 | background-color: #5bc0de; 5005 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5006 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5007 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5008 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5009 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5010 | } 5011 | 5012 | .accordion { 5013 | margin-bottom: 20px; 5014 | } 5015 | 5016 | .accordion-group { 5017 | margin-bottom: 2px; 5018 | border: 1px solid #e5e5e5; 5019 | border-radius: 4px; 5020 | } 5021 | 5022 | .accordion-heading { 5023 | border-bottom: 0; 5024 | } 5025 | 5026 | .accordion-heading .accordion-toggle { 5027 | display: block; 5028 | padding: 8px 15px; 5029 | } 5030 | 5031 | .accordion-toggle { 5032 | cursor: pointer; 5033 | } 5034 | 5035 | .accordion-inner { 5036 | padding: 9px 15px; 5037 | border-top: 1px solid #e5e5e5; 5038 | } 5039 | 5040 | .carousel { 5041 | position: relative; 5042 | } 5043 | 5044 | .carousel-inner { 5045 | position: relative; 5046 | width: 100%; 5047 | overflow: hidden; 5048 | } 5049 | 5050 | .carousel-inner > .item { 5051 | position: relative; 5052 | display: none; 5053 | -webkit-transition: 0.6s ease-in-out left; 5054 | -moz-transition: 0.6s ease-in-out left; 5055 | -o-transition: 0.6s ease-in-out left; 5056 | transition: 0.6s ease-in-out left; 5057 | } 5058 | 5059 | .carousel-inner > .item > img, 5060 | .carousel-inner > .item > a > img { 5061 | display: block; 5062 | line-height: 1; 5063 | } 5064 | 5065 | .carousel-inner > .active, 5066 | .carousel-inner > .next, 5067 | .carousel-inner > .prev { 5068 | display: block; 5069 | } 5070 | 5071 | .carousel-inner > .active { 5072 | left: 0; 5073 | } 5074 | 5075 | .carousel-inner > .next, 5076 | .carousel-inner > .prev { 5077 | position: absolute; 5078 | top: 0; 5079 | width: 100%; 5080 | } 5081 | 5082 | .carousel-inner > .next { 5083 | left: 100%; 5084 | } 5085 | 5086 | .carousel-inner > .prev { 5087 | left: -100%; 5088 | } 5089 | 5090 | .carousel-inner > .next.left, 5091 | .carousel-inner > .prev.right { 5092 | left: 0; 5093 | } 5094 | 5095 | .carousel-inner > .active.left { 5096 | left: -100%; 5097 | } 5098 | 5099 | .carousel-inner > .active.right { 5100 | left: 100%; 5101 | } 5102 | 5103 | .carousel-control { 5104 | position: absolute; 5105 | top: 0; 5106 | bottom: 0; 5107 | left: 0; 5108 | width: 15%; 5109 | font-size: 20px; 5110 | color: #fff; 5111 | text-align: center; 5112 | text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); 5113 | opacity: 0.5; 5114 | filter: alpha(opacity=50); 5115 | } 5116 | 5117 | .carousel-control.left { 5118 | background-color: rgba(0, 0, 0, 0.0001); 5119 | background-color: transparent; 5120 | background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001)); 5121 | background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); 5122 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001)); 5123 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001)); 5124 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.0001)); 5125 | background-repeat: repeat-x; 5126 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); 5127 | } 5128 | 5129 | .carousel-control.right { 5130 | right: 0; 5131 | left: auto; 5132 | background-color: rgba(0, 0, 0, 0.5); 5133 | background-color: transparent; 5134 | background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5)); 5135 | background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); 5136 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5)); 5137 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5)); 5138 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001), rgba(0, 0, 0, 0.5)); 5139 | background-repeat: repeat-x; 5140 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); 5141 | } 5142 | 5143 | .carousel-control:hover, 5144 | .carousel-control:focus { 5145 | color: #fff; 5146 | text-decoration: none; 5147 | opacity: 0.9; 5148 | filter: alpha(opacity=90); 5149 | } 5150 | 5151 | .carousel-control .glyphicon { 5152 | position: absolute; 5153 | top: 50%; 5154 | left: 50%; 5155 | z-index: 5; 5156 | display: inline-block; 5157 | width: 20px; 5158 | height: 20px; 5159 | margin-top: -10px; 5160 | margin-left: -10px; 5161 | } 5162 | 5163 | .carousel-indicators { 5164 | position: absolute; 5165 | bottom: 20px; 5166 | left: 50%; 5167 | z-index: 5; 5168 | width: 100px; 5169 | margin: 0 0 0 -50px; 5170 | text-align: center; 5171 | list-style: none; 5172 | } 5173 | 5174 | .carousel-indicators li { 5175 | display: inline-block; 5176 | width: 8px; 5177 | height: 8px; 5178 | margin-right: 0; 5179 | margin-left: 0; 5180 | text-indent: -999px; 5181 | cursor: pointer; 5182 | border: 1px solid #fff; 5183 | border-radius: 5px; 5184 | } 5185 | 5186 | .carousel-indicators .active { 5187 | background-color: #fff; 5188 | } 5189 | 5190 | .carousel-caption { 5191 | position: absolute; 5192 | right: 15%; 5193 | bottom: 20px; 5194 | left: 15%; 5195 | z-index: 10; 5196 | padding-top: 20px; 5197 | padding-bottom: 20px; 5198 | color: #fff; 5199 | text-align: center; 5200 | text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); 5201 | } 5202 | 5203 | .carousel-caption .btn { 5204 | text-shadow: none; 5205 | } 5206 | 5207 | @media screen and (min-width: 768px) { 5208 | .carousel-control .glyphicon { 5209 | width: 30px; 5210 | height: 30px; 5211 | margin-top: -15px; 5212 | margin-left: -15px; 5213 | font-size: 30px; 5214 | } 5215 | .carousel-caption { 5216 | right: 20%; 5217 | left: 20%; 5218 | padding-bottom: 30px; 5219 | } 5220 | } 5221 | 5222 | .jumbotron { 5223 | padding: 30px; 5224 | margin-bottom: 30px; 5225 | font-size: 21px; 5226 | font-weight: 200; 5227 | line-height: 30px; 5228 | color: inherit; 5229 | background-color: #eeeeee; 5230 | } 5231 | 5232 | .jumbotron h1 { 5233 | line-height: 1; 5234 | color: inherit; 5235 | } 5236 | 5237 | .jumbotron p { 5238 | line-height: 1.4; 5239 | } 5240 | 5241 | @media screen and (min-width: 768px) { 5242 | .jumbotron { 5243 | padding: 50px 60px; 5244 | border-radius: 6px; 5245 | } 5246 | .jumbotron h1 { 5247 | font-size: 60px; 5248 | } 5249 | } 5250 | 5251 | .clearfix:before, 5252 | .clearfix:after { 5253 | display: table; 5254 | content: " "; 5255 | } 5256 | 5257 | .clearfix:after { 5258 | clear: both; 5259 | } 5260 | 5261 | .pull-right { 5262 | float: right; 5263 | } 5264 | 5265 | .pull-left { 5266 | float: left; 5267 | } 5268 | 5269 | .hide { 5270 | display: none !important; 5271 | } 5272 | 5273 | .show { 5274 | display: block !important; 5275 | } 5276 | 5277 | .invisible { 5278 | visibility: hidden; 5279 | } 5280 | 5281 | .text-hide { 5282 | font: 0/0 a; 5283 | color: transparent; 5284 | text-shadow: none; 5285 | background-color: transparent; 5286 | border: 0; 5287 | } 5288 | 5289 | .affix { 5290 | position: fixed; 5291 | } 5292 | 5293 | @-ms-viewport { 5294 | width: device-width; 5295 | } 5296 | 5297 | .hidden { 5298 | display: none; 5299 | visibility: hidden; 5300 | } 5301 | 5302 | .visible-phone { 5303 | display: none !important; 5304 | } 5305 | 5306 | .visible-tablet { 5307 | display: none !important; 5308 | } 5309 | 5310 | .hidden-desktop { 5311 | display: none !important; 5312 | } 5313 | 5314 | .visible-desktop { 5315 | display: inherit !important; 5316 | } 5317 | 5318 | @media (min-width: 768px) and (max-width: 979px) { 5319 | .hidden-desktop { 5320 | display: inherit !important; 5321 | } 5322 | .visible-desktop { 5323 | display: none !important ; 5324 | } 5325 | .visible-tablet { 5326 | display: inherit !important; 5327 | } 5328 | .hidden-tablet { 5329 | display: none !important; 5330 | } 5331 | } 5332 | 5333 | @media (max-width: 767px) { 5334 | .hidden-desktop { 5335 | display: inherit !important; 5336 | } 5337 | .visible-desktop { 5338 | display: none !important; 5339 | } 5340 | .visible-phone { 5341 | display: inherit !important; 5342 | } 5343 | .hidden-phone { 5344 | display: none !important; 5345 | } 5346 | } 5347 | 5348 | .visible-print { 5349 | display: none !important; 5350 | } 5351 | 5352 | @media print { 5353 | .visible-print { 5354 | display: inherit !important; 5355 | } 5356 | .hidden-print { 5357 | display: none !important; 5358 | } 5359 | } 5360 | -------------------------------------------------------------------------------- /examples/demo1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

Simple editor

20 | 21 |
22 | 23 |
24 | 25 |
26 | Initialising ... 27 |
28 | 29 |
30 | 31 |
32 | 33 | {{test}} 34 | 35 | 36 | {{frm.editor.$dirty}} 37 | {{frm.$dirty}} 38 |
39 | 40 | 63 |
64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /examples/demo2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |

Editor on form

20 | 21 |
22 | 23 |
24 | {{testForm.body.$pristine}} 25 | {{test}} 26 | 27 |
28 | 29 | 30 | 31 | 47 |
48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /examples/inlineall.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | Massive inline editing — CKEditor Sample 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 54 | 55 | 197 | 198 | 199 |
200 |

CKEditor Samples » Massive inline editing

201 |
202 |

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

203 |
<div contenteditable="true" > ... </div>
204 |

Click inside of any element below to start editing.

205 |
206 |
207 |
208 | {{article}} 209 | 229 |
230 |
231 |
232 |

233 | Fusce vitae porttitor 234 |

235 |

236 | 237 | Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. 238 | 239 |

240 |

241 | Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. 242 |

243 |
244 |

245 | Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. 246 | Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum 247 |

248 |
249 |
250 |

251 | Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. 252 |

253 |
254 |

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

255 |

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

256 |
257 |
258 |
259 |
260 |

261 | Integer condimentum sit amet 262 |

263 |

264 | Aenean nonummy a, mattis varius. Cras aliquet. 265 | Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

266 |

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

267 |

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

268 |
269 |
270 |

271 | Praesent wisi accumsan sit amet nibh 272 |

273 |

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

274 |

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

275 |

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

276 |
277 |
278 |
279 |
280 |

281 | CKEditor logo 282 |

283 |

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

284 |

285 | Nullam laoreet vel consectetuer tellus suscipit 286 |

287 |
    288 |
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • 289 |
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • 290 |
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • 291 |
292 |

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

293 |

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

294 |

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

295 |
296 |
297 |
298 |
299 | Tags of this article: 300 |

301 | inline, editing, floating, CKEditor 302 |

303 |
304 |
305 | 316 | 317 | 333 | 334 | 335 | -------------------------------------------------------------------------------- /examples/spellcheck/handler.php: -------------------------------------------------------------------------------- 1 | $val ) { 27 | # $val = str_replace( "'", "%27", $val ); 28 | echo "textinputs[$key] = decodeURIComponent(\"" . $val . "\");\n"; 29 | } 30 | } 31 | 32 | # make declarations for the text input index 33 | function print_textindex_decl( $text_input_idx ) { 34 | echo "words[$text_input_idx] = [];\n"; 35 | echo "suggs[$text_input_idx] = [];\n"; 36 | } 37 | 38 | # set an element of the JavaScript 'words' array to a misspelled word 39 | function print_words_elem( $word, $index, $text_input_idx ) { 40 | echo "words[$text_input_idx][$index] = '" . escape_quote( $word ) . "';\n"; 41 | } 42 | 43 | 44 | # set an element of the JavaScript 'suggs' array to a list of suggestions 45 | function print_suggs_elem( $suggs, $index, $text_input_idx ) { 46 | echo "suggs[$text_input_idx][$index] = ["; 47 | foreach( $suggs as $key=>$val ) { 48 | if( $val ) { 49 | echo "'" . escape_quote( $val ) . "'"; 50 | if ( $key+1 < count( $suggs )) { 51 | echo ", "; 52 | } 53 | } 54 | } 55 | echo "];\n"; 56 | } 57 | 58 | # escape single quote 59 | function escape_quote( $str ) { 60 | return preg_replace ( "/'/", "\\'", $str ); 61 | } 62 | 63 | 64 | # handle a server-side error. 65 | function error_handler( $err ) { 66 | echo "error = '" . preg_replace( "/['\\\\]/", "\\\\$0", $err ) . "';\n"; 67 | } 68 | 69 | ## get the list of misspelled words. Put the results in the javascript words array 70 | ## for each misspelled word, get suggestions and put in the javascript suggs array 71 | function print_checker_results() { 72 | 73 | global $aspell_prog; 74 | global $aspell_opts; 75 | global $tempfiledir; 76 | global $textinputs; 77 | global $input_separator; 78 | $aspell_err = ""; 79 | # create temp file 80 | $tempfile = tempnam( $tempfiledir, 'aspell_data_' ); 81 | 82 | # open temp file, add the submitted text. 83 | if( $fh = fopen( $tempfile, 'w' )) { 84 | for( $i = 0; $i < count( $textinputs ); $i++ ) { 85 | $text = urldecode( $textinputs[$i] ); 86 | 87 | // Strip all tags for the text. (by FredCK - #339 / #681) 88 | $text = preg_replace( "/<[^>]+>/", " ", $text ) ; 89 | 90 | $lines = explode( "\n", $text ); 91 | fwrite ( $fh, "%\n" ); # exit terse mode 92 | fwrite ( $fh, "^$input_separator\n" ); 93 | fwrite ( $fh, "!\n" ); # enter terse mode 94 | foreach( $lines as $key=>$value ) { 95 | # use carat on each line to escape possible aspell commands 96 | fwrite( $fh, "^$value\n" ); 97 | } 98 | } 99 | fclose( $fh ); 100 | 101 | # exec aspell command - redirect STDERR to STDOUT 102 | $cmd = "$aspell_prog $aspell_opts < $tempfile 2>&1"; 103 | if( $aspellret = shell_exec( $cmd )) { 104 | $linesout = explode( "\n", $aspellret ); 105 | $index = 0; 106 | $text_input_index = -1; 107 | # parse each line of aspell return 108 | foreach( $linesout as $key=>$val ) { 109 | $chardesc = substr( $val, 0, 1 ); 110 | # if '&', then not in dictionary but has suggestions 111 | # if '#', then not in dictionary and no suggestions 112 | # if '*', then it is a delimiter between text inputs 113 | # if '@' then version info 114 | if( $chardesc == '&' || $chardesc == '#' ) { 115 | $line = explode( " ", $val, 5 ); 116 | print_words_elem( $line[1], $index, $text_input_index ); 117 | if( isset( $line[4] )) { 118 | $suggs = explode( ", ", $line[4] ); 119 | } else { 120 | $suggs = array(); 121 | } 122 | print_suggs_elem( $suggs, $index, $text_input_index ); 123 | $index++; 124 | } elseif( $chardesc == '*' ) { 125 | $text_input_index++; 126 | print_textindex_decl( $text_input_index ); 127 | $index = 0; 128 | } elseif( $chardesc != '@' && $chardesc != "" ) { 129 | # assume this is error output 130 | $aspell_err .= $val; 131 | } 132 | } 133 | if( $aspell_err ) { 134 | $aspell_err = "Error executing `$cmd`\\n$aspell_err"; 135 | error_handler( $aspell_err ); 136 | } 137 | } else { 138 | error_handler( "System error: Aspell program execution failed (`$cmd`)" ); 139 | } 140 | } else { 141 | error_handler( "System error: Could not open file '$tempfile' for writing" ); 142 | } 143 | 144 | # close temp file, delete file 145 | unlink( $tempfile ); 146 | } 147 | 148 | 149 | ?> 150 | 151 | 152 | 153 | 154 | 155 | 190 | 191 | 192 | 193 | 194 | 195 | 198 | 199 | 200 | 201 | -------------------------------------------------------------------------------- /examples/test.php: -------------------------------------------------------------------------------- 1 | set('Core.Encoding', 'UTF-8'); 11 | $config->set('URI.Base', 'http://news.mistinfo.com'); 12 | 13 | $config->set('HTML.AllowedElements', 'p,b,strong,i,em,u,s,a,ol,ul,li,hr,blockquote,img,table,tr,td,th,span,object,param,embed,iframe'); 14 | $config->set('HTML.AllowedAttributes', 'a.href,img.src,img.class,img.width,img.height,img.alt,img.title,span.class,object.style,object.data,object.width,object.height,param.name,param.value,embed.src,embed.type,embed.wmode,embed.width,embed.height'); 15 | $config->set('HTML.SafeObject', true); 16 | $config->set('HTML.SafeEmbed', true); 17 | $config->set('Filter.YouTube', true); 18 | $config->set('Output.FlashCompat', true); 19 | 20 | $config->set('Filter.Custom', array(new \Bazalt\CKEditor\HtmlPurifier\Filter\Video())); 21 | 22 | $content = json_decode(file_get_contents('php://input')); 23 | $pur = new HTMLPurifier($config); 24 | 25 | $html = $content->content; 26 | $content = $pur->purify($content->content); 27 | 28 | file_put_contents('1.html', $html . '
____________________________
' . $content); -------------------------------------------------------------------------------- /ng-ckeditor.css: -------------------------------------------------------------------------------- 1 | .ng-ckeditor{border:0} -------------------------------------------------------------------------------- /ng-ckeditor.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | (function (angular, factory) { 4 | if (typeof define === 'function' && define.amd) { 5 | define(['angular', 'ckeditor'], function (angular) { 6 | return factory(angular); 7 | }); 8 | } else { 9 | return factory(angular); 10 | } 11 | }(angular || null, function (angular) { 12 | var app = angular.module('ngCkeditor', []); 13 | var $defer, loaded = false; 14 | 15 | app.run(['$q', '$timeout', function ($q, $timeout) { 16 | $defer = $q.defer(); 17 | 18 | if (angular.isUndefined(CKEDITOR)) { 19 | throw new Error('CKEDITOR not found'); 20 | } 21 | CKEDITOR.disableAutoInline = true; 22 | function checkLoaded() { 23 | if (CKEDITOR.status === 'loaded') { 24 | loaded = true; 25 | $defer.resolve(); 26 | } else { 27 | checkLoaded(); 28 | } 29 | } 30 | 31 | CKEDITOR.on('loaded', checkLoaded); 32 | $timeout(checkLoaded, 100); 33 | }]); 34 | 35 | app.directive('ckeditor', ['$timeout', '$q', function ($timeout, $q) { 36 | 37 | return { 38 | restrict: 'AC', 39 | require: ['ngModel', '^?form'], 40 | scope: false, 41 | link: function (scope, element, attrs, ctrls) { 42 | var ngModel = ctrls[0]; 43 | var form = ctrls[1] || null; 44 | var EMPTY_HTML = '

', 45 | isTextarea = element[0].tagName.toLowerCase() === 'textarea', 46 | data = [], 47 | isReady = false; 48 | 49 | if (!isTextarea) { 50 | element.attr('contenteditable', true); 51 | } 52 | 53 | var onLoad = function () { 54 | var options = { 55 | toolbar: 'full', 56 | toolbar_full: [ //jshint ignore:line 57 | { 58 | name: 'basicstyles', 59 | items: ['Bold', 'Italic', 'Strike', 'Underline'] 60 | }, 61 | {name: 'paragraph', items: ['BulletedList', 'NumberedList', 'Blockquote']}, 62 | {name: 'editing', items: ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']}, 63 | {name: 'links', items: ['Link', 'Unlink', 'Anchor']}, 64 | {name: 'tools', items: ['SpellChecker', 'Maximize']}, 65 | '/', 66 | { 67 | name: 'styles', 68 | items: ['Format', 'FontSize', 'TextColor', 'PasteText', 'PasteFromWord', 'RemoveFormat'] 69 | }, 70 | {name: 'insert', items: ['Image', 'Table', 'SpecialChar']}, 71 | {name: 'forms', items: ['Outdent', 'Indent']}, 72 | {name: 'clipboard', items: ['Undo', 'Redo']}, 73 | {name: 'document', items: ['PageBreak', 'Source']} 74 | ], 75 | disableNativeSpellChecker: false, 76 | uiColor: '#FAFAFA', 77 | height: '400px', 78 | width: '100%' 79 | }; 80 | options = angular.extend(options, scope[attrs.ckeditor]); 81 | 82 | var instance = (isTextarea) ? CKEDITOR.replace(element[0], options) : CKEDITOR.inline(element[0], options), 83 | configLoaderDef = $q.defer(); 84 | 85 | element.bind('$destroy', function () { 86 | if (instance && CKEDITOR.instances[instance.name]) { 87 | CKEDITOR.instances[instance.name].destroy(); 88 | } 89 | }); 90 | var setModelData = function (setPristine) { 91 | var data = instance.getData(); 92 | if (data === '') { 93 | data = null; 94 | } 95 | $timeout(function () { // for key up event 96 | if (setPristine !== true || data !== ngModel.$viewValue) { 97 | ngModel.$setViewValue(data); 98 | } 99 | 100 | if (setPristine === true && form) { 101 | form.$setPristine(); 102 | } 103 | }, 0); 104 | }, onUpdateModelData = function (setPristine) { 105 | if (!data.length) { 106 | return; 107 | } 108 | 109 | var item = data.pop() || EMPTY_HTML; 110 | isReady = false; 111 | instance.setData(item, function () { 112 | setModelData(setPristine); 113 | isReady = true; 114 | }); 115 | }; 116 | 117 | instance.on('pasteState', setModelData); 118 | instance.on('change', setModelData); 119 | instance.on('blur', setModelData); 120 | //instance.on('key', setModelData); // for source view 121 | 122 | instance.on('instanceReady', function () { 123 | scope.$broadcast('ckeditor.ready'); 124 | scope.$apply(function () { 125 | onUpdateModelData(true); 126 | }); 127 | 128 | instance.document.on('keyup', setModelData); 129 | }); 130 | instance.on('customConfigLoaded', function () { 131 | configLoaderDef.resolve(); 132 | }); 133 | 134 | ngModel.$render = function () { 135 | data.push(ngModel.$viewValue); 136 | if (isReady) { 137 | onUpdateModelData(); 138 | } 139 | }; 140 | }; 141 | 142 | if (CKEDITOR.status === 'loaded') { 143 | loaded = true; 144 | } 145 | if (loaded) { 146 | onLoad(); 147 | } else { 148 | $defer.promise.then(onLoad); 149 | } 150 | } 151 | }; 152 | }]); 153 | 154 | return app; 155 | })); -------------------------------------------------------------------------------- /ng-ckeditor.min.js: -------------------------------------------------------------------------------- 1 | /*! ngCkeditor v0.2.1 by Vitalii Savchuk(esvit666@gmail.com) - https://github.com/esvit/ng-ckeditor - New BSD License */ 2 | 3 | "use strict";!function(a,b){return"function"==typeof define&&define.amd?void define(["angular","ckeditor"],function(a){return b(a)}):b(a)}(angular||null,function(a){var b,c=a.module("ngCkeditor",[]),d=!1;return c.run(["$q","$timeout",function(c,e){function f(){"loaded"===CKEDITOR.status?(d=!0,b.resolve()):f()}if(b=c.defer(),a.isUndefined(CKEDITOR))throw new Error("CKEDITOR not found");CKEDITOR.disableAutoInline=!0,CKEDITOR.on("loaded",f),e(f,100)}]),c.directive("ckeditor",["$timeout","$q",function(c,e){return{restrict:"AC",require:["ngModel","^?form"],scope:!1,link:function(f,g,h,i){var j=i[0],k=i[1]||null,l="

",m="textarea"===g[0].tagName.toLowerCase(),n=[],o=!1;m||g.attr("contenteditable",!0);var p=function(){var b={toolbar:"full",toolbar_full:[{name:"basicstyles",items:["Bold","Italic","Strike","Underline"]},{name:"paragraph",items:["BulletedList","NumberedList","Blockquote"]},{name:"editing",items:["JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock"]},{name:"links",items:["Link","Unlink","Anchor"]},{name:"tools",items:["SpellChecker","Maximize"]},"/",{name:"styles",items:["Format","FontSize","TextColor","PasteText","PasteFromWord","RemoveFormat"]},{name:"insert",items:["Image","Table","SpecialChar"]},{name:"forms",items:["Outdent","Indent"]},{name:"clipboard",items:["Undo","Redo"]},{name:"document",items:["PageBreak","Source"]}],disableNativeSpellChecker:!1,uiColor:"#FAFAFA",height:"400px",width:"100%"};b=a.extend(b,f[h.ckeditor]);var d=m?CKEDITOR.replace(g[0],b):CKEDITOR.inline(g[0],b),i=e.defer();g.bind("$destroy",function(){d&&CKEDITOR.instances[d.name]&&CKEDITOR.instances[d.name].destroy()});var p=function(a){var b=d.getData();""===b&&(b=null),c(function(){(a!==!0||b!==j.$viewValue)&&j.$setViewValue(b),a===!0&&k&&k.$setPristine()},0)},q=function(a){if(n.length){var b=n.pop()||l;o=!1,d.setData(b,function(){p(a),o=!0})}};d.on("change",p),d.on("blur",p),d.on("instanceReady",function(){f.$broadcast("ckeditor.ready"),f.$apply(function(){q(!0)}),d.document.on("keyup",p)}),d.on("customConfigLoaded",function(){i.resolve()}),j.$render=function(){n.push(j.$viewValue),o&&q()}};"loaded"===CKEDITOR.status&&(d=!0),d?p():b.promise.then(p)}}}]),c}); 4 | //# sourceMappingURL=ng-ckeditor.min.js.map -------------------------------------------------------------------------------- /ng-ckeditor.min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ng-ckeditor.min.js","sources":["ng-ckeditor.js"],"names":["angular","factory","define","amd","$defer","app","module","loaded","run","$q","$timeout","checkLoaded","CKEDITOR","status","resolve","defer","isUndefined","Error","disableAutoInline","on","directive","restrict","require","scope","link","element","attrs","ctrls","ngModel","form","EMPTY_HTML","isTextarea","tagName","toLowerCase","data","isReady","attr","onLoad","options","toolbar","toolbar_full","name","items","disableNativeSpellChecker","uiColor","height","width","extend","ckeditor","instance","replace","inline","configLoaderDef","bind","instances","destroy","setModelData","setPristine","getData","$viewValue","$setViewValue","$setPristine","onUpdateModelData","length","item","pop","setData","$broadcast","$apply","document","$render","push","promise","then"],"mappings":";;AAAA,cAEC,SAAUA,EAASC,GAChB,MAAsB,kBAAXC,SAAyBA,OAAOC,QACvCD,SAAQ,UAAW,YAAa,SAAUF,GACtC,MAAOC,GAAQD,KAGZC,EAAQD,IAErBA,SAAW,KAAM,SAAUA,GACzB,GACII,GADAC,EAAML,EAAQM,OAAO,iBACbC,GAAS,CA6IrB,OA3IAF,GAAIG,KAAK,KAAM,WAAY,SAAUC,EAAIC,GAOrC,QAASC,KACmB,WAApBC,SAASC,QACTN,GAAS,EACTH,EAAOU,WAEPH,IATR,GAFAP,EAASK,EAAGM,QAERf,EAAQgB,YAAYJ,UACpB,KAAM,IAAIK,OAAM,qBAEpBL,UAASM,mBAAoB,EAU7BN,SAASO,GAAG,SAAUR,GACtBD,EAASC,EAAa,QAG1BN,EAAIe,UAAU,YAAa,WAAY,KAAM,SAAUV,EAAUD,GAE7D,OACIY,SAAU,KACVC,SAAU,UAAW,UACrBC,OAAO,EACPC,KAAM,SAAUD,EAAOE,EAASC,EAAOC,GACnC,GAAIC,GAAUD,EAAM,GAChBE,EAAOF,EAAM,IAAM,KACnBG,EAAa,UACbC,EAAkD,aAArCN,EAAQ,GAAGO,QAAQC,cAChCC,KACAC,GAAU,CAETJ,IACDN,EAAQW,KAAK,mBAAmB,EAGpC,IAAIC,GAAS,WACT,GAAIC,IACAC,QAAS,OACTC,eAEQC,KAAM,cACNC,OAAQ,OAAQ,SAAU,SAAU,eAEvCD,KAAM,YAAaC,OAAQ,eAAgB,eAAgB,gBAC3DD,KAAM,UAAWC,OAAQ,cAAe,gBAAiB,eAAgB,kBACzED,KAAM,QAASC,OAAQ,OAAQ,SAAU,YACzCD,KAAM,QAASC,OAAQ,eAAgB,aACxC,KAEID,KAAM,SACNC,OAAQ,SAAU,WAAY,YAAa,YAAa,gBAAiB,kBAE5ED,KAAM,SAAUC,OAAQ,QAAS,QAAS,iBAC1CD,KAAM,QAASC,OAAQ,UAAW,YAClCD,KAAM,YAAaC,OAAQ,OAAQ,UACnCD,KAAM,WAAYC,OAAQ,YAAa,YAE5CC,2BAA2B,EAC3BC,QAAS,UACTC,OAAQ,QACRC,MAAO,OAEXR,GAAUtC,EAAQ+C,OAAOT,EAASf,EAAMG,EAAMsB,UAE9C,IAAIC,GAAW,EAAerC,SAASsC,QAAQzB,EAAQ,GAAIa,GAAW1B,SAASuC,OAAO1B,EAAQ,GAAIa,GAC9Fc,EAAkB3C,EAAGM,OAEzBU,GAAQ4B,KAAK,WAAY,WACjBJ,GAAYrC,SAAS0C,UAAUL,EAASR,OACxC7B,SAAS0C,UAAUL,EAASR,MAAMc,WAG1C,IAAIC,GAAe,SAAUC,GACzB,GAAIvB,GAAOe,EAASS,SACP,MAATxB,IACAA,EAAO,MAEXxB,EAAS,YACD+C,KAAgB,GAAQvB,IAASN,EAAQ+B,aACzC/B,EAAQgC,cAAc1B,GAGtBuB,KAAgB,GAAQ5B,GACxBA,EAAKgC,gBAEV,IACJC,EAAoB,SAAUL,GAC7B,GAAKvB,EAAK6B,OAAV,CAIA,GAAIC,GAAO9B,EAAK+B,OAASnC,CACzBK,IAAU,EACVc,EAASiB,QAAQF,EAAM,WACnBR,EAAaC,GACbtB,GAAU,KAKlBc,GAAS9B,GAAG,SAAUqC,GACtBP,EAAS9B,GAAG,OAAQqC,GAGpBP,EAAS9B,GAAG,gBAAiB,WACzBI,EAAM4C,WAAW,kBACjB5C,EAAM6C,OAAO,WACTN,GAAkB,KAGtBb,EAASoB,SAASlD,GAAG,QAASqC,KAElCP,EAAS9B,GAAG,qBAAsB,WAC9BiC,EAAgBtC,YAGpBc,EAAQ0C,QAAU,WACdpC,EAAKqC,KAAK3C,EAAQ+B,YACdxB,GACA2B,KAKY,YAApBlD,SAASC,SACTN,GAAS,GAETA,EACA8B,IAEAjC,EAAOoE,QAAQC,KAAKpC,QAM7BhC"} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ng-ckeditor", 3 | "version": "0.2.0", 4 | "devDependencies": { 5 | "grunt": "^0.4.5", 6 | "grunt-contrib-watch": "^0.6.1", 7 | "grunt-contrib-clean": "^0.6.0", 8 | "grunt-contrib-concat": "^0.5.0", 9 | "grunt-contrib-copy": "^0.7.0", 10 | "grunt-contrib-uglify": "^0.7.0", 11 | "grunt-contrib-cssmin": "^0.12.0", 12 | "grunt-contrib-less": "^1.0.0", 13 | "grunt-contrib-jshint": "^0.11.0", 14 | "grunt-karma": "^0.10.1", 15 | "jasmine-core": "^2.2.0", 16 | "jshint-stylish": "^1.0.0", 17 | "karma": "^0.12.31", 18 | "karma-jasmine": "^0.3.5", 19 | "karma-phantomjs-launcher": "^0.1.4", 20 | "load-grunt-tasks": "^3.1.0", 21 | "time-grunt": "^1.0.0" 22 | }, 23 | "engines": { 24 | "node": ">=0.10.0" 25 | }, 26 | "scripts": { 27 | "test": "grunt test" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /styles/ng-ckeditor.less: -------------------------------------------------------------------------------- 1 | .ng-ckeditor { 2 | border: 0 none; 3 | } -------------------------------------------------------------------------------- /test/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "browser": true, 4 | "esnext": true, 5 | "bitwise": true, 6 | "camelcase": true, 7 | "curly": true, 8 | "eqeqeq": true, 9 | "immed": true, 10 | "indent": 2, 11 | "latedef": true, 12 | "newcap": true, 13 | "noarg": true, 14 | "quotmark": "single", 15 | "regexp": true, 16 | "undef": true, 17 | "unused": true, 18 | "strict": true, 19 | "trailing": true, 20 | "smarttabs": true, 21 | "jasmine": true, 22 | "globals": { 23 | "angular": false, 24 | "browser": false, 25 | "inject": false, 26 | "CKEDITOR": false 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /test/karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration 2 | // http://karma-runner.github.io/0.12/config/configuration-file.html 3 | // Generated on 2015-02-20 using 4 | // generator-karma 0.9.0 5 | 6 | module.exports = function (config) { 7 | 'use strict'; 8 | 9 | config.set({ 10 | // enable / disable watching file and executing tests whenever any file changes 11 | autoWatch: true, 12 | 13 | // base path, that will be used to resolve files and exclude 14 | basePath: '../', 15 | 16 | // testing framework to use (jasmine/mocha/qunit/...) 17 | frameworks: ['jasmine'], 18 | 19 | // list of files / patterns to load in the browser 20 | files: [ 21 | 'bower_components/jquery/dist/jquery.js', 22 | 'bower_components/jquery-simulate/jquery.simulate.js', 23 | 'bower_components/angular/angular.js', 24 | 'bower_components/angular-mocks/angular-mocks.js', 25 | 'bower_components/ckeditor/ckeditor.js', 26 | 27 | { 28 | pattern: 'bower_components/ckeditor/**/*', 29 | watched: false, 30 | included: false, 31 | served: true 32 | }, 33 | 34 | 'ng-ckeditor.js', 35 | 'test/spec/**/*.js' 36 | ], 37 | 38 | // list of files / patterns to exclude 39 | exclude: [], 40 | 41 | // web server port 42 | port: 8080, 43 | 44 | // Start these browsers, currently available: 45 | // - Chrome 46 | // - ChromeCanary 47 | // - Firefox 48 | // - Opera 49 | // - Safari (only Mac) 50 | // - PhantomJS 51 | // - IE (only Windows) 52 | browsers: [ 53 | 'PhantomJS' 54 | ], 55 | 56 | // Which plugins to enable 57 | plugins: [ 58 | 'karma-phantomjs-launcher', 59 | 'karma-jasmine' 60 | ], 61 | 62 | // Continuous Integration mode 63 | // if true, it capture browsers, run tests and exit 64 | singleRun: true, 65 | 66 | colors: true, 67 | 68 | // level of logging 69 | // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 70 | logLevel: config.LOG_INFO 71 | 72 | // Uncomment the following lines if you are using grunt's server to run the tests 73 | // proxies: { 74 | // '/': 'http://localhost:9000/' 75 | // }, 76 | // URL root prevent conflicts with the site root 77 | // urlRoot: '_karma_' 78 | }); 79 | }; 80 | -------------------------------------------------------------------------------- /test/spec/directiveOnFormSpec.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('ng-ckeditor-form', function () { 4 | var element, scope, controller, instance, i = 1; 5 | 6 | beforeEach(module('ngCkeditor')); 7 | 8 | beforeEach(function (done) { 9 | inject(function ($rootScope, $compile, $document) { 10 | element = angular.element( 11 | '
{{test}}
'); 12 | 13 | scope = $rootScope.$new(true); 14 | scope.test = 'test'; 15 | 16 | $document.find('body').append(element); 17 | 18 | $compile(element)(scope); 19 | 20 | controller = element.controller('ngModel'); 21 | instance = CKEDITOR.instances['editor' + i++]; 22 | 23 | scope.$digest(); 24 | done(); 25 | }); 26 | }); 27 | 28 | afterEach(function (done) { 29 | scope.$destroy(); 30 | done(); 31 | }); 32 | 33 | it('should create editor', function (done) { 34 | expect(CKEDITOR.instances['editor' + (i - 1)]).toBeDefined(); 35 | expect(scope.test).toBe('test'); 36 | done(); 37 | }, 1000); 38 | 39 | it('should change model value editor', function (done) { 40 | inject(function ($rootScope) { 41 | scope.test = 'new value'; 42 | $rootScope.$apply(); 43 | 44 | setTimeout(function () { 45 | instance.on('instanceReady', function () { 46 | expect(instance.getData()).toBe('new value'); 47 | expect(scope.test).toBe('new value'); 48 | expect(scope.testForm.$dirty).toBe(false); 49 | done(); 50 | }); 51 | }, 10); 52 | }); 53 | }); 54 | }); 55 | -------------------------------------------------------------------------------- /test/spec/directiveSpec.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | describe('ng-ckeditor', function () { 4 | var element, scope, controller, instance, i = 1; 5 | 6 | beforeEach(module('ngCkeditor')); 7 | 8 | beforeEach(function (done) { 9 | inject(function ($rootScope, $compile, $document) { 10 | element = angular.element( 11 | '{{test}}'); 12 | 13 | scope = $rootScope.$new(true); 14 | scope.test = 'test'; 15 | 16 | $document.find('body').append(element); 17 | 18 | $compile(element)(scope); 19 | 20 | controller = element.controller('ngModel'); 21 | instance = CKEDITOR.instances['editor' + i++]; 22 | 23 | scope.$digest(); 24 | done(); 25 | }); 26 | }); 27 | 28 | afterEach(function (done) { 29 | scope.$destroy(); 30 | done(); 31 | }); 32 | 33 | it('should create editor', function (done) { 34 | expect(CKEDITOR.instances['editor' + (i - 1)]).toBeDefined(); 35 | expect(scope.test).toBe('test'); 36 | done(); 37 | }, 1000); 38 | 39 | it('should change model value editor', function (done) { 40 | inject(function ($rootScope) { 41 | scope.test = 'new value'; 42 | $rootScope.$apply(); 43 | 44 | setTimeout(function () { 45 | instance.on('instanceReady', function () { 46 | expect(instance.getData()).toBe('new value'); 47 | expect(scope.test).toBe('new value'); 48 | done(); 49 | }); 50 | }, 10); 51 | }); 52 | }); 53 | }); 54 | --------------------------------------------------------------------------------