├── .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 | [](https://travis-ci.org/esvit/ng-ckeditor) [](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 |
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 | Save
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 |
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 |
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 |
--------------------------------------------------------------------------------